From d80e8164c88e2ea802207fb0afeae63ffe76206f Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Wed, 23 Oct 2024 09:16:11 +0100 Subject: [PATCH 01/10] Update dependencies Further tidy up some config around phpactor and unit testing --- .phpactor.json | 5 + composer.lock | 1486 ++++++++++++++++++++++----------------------- package-lock.json | 1199 +++++++++++++++++++----------------- phpunit.xml | 2 +- 4 files changed, 1376 insertions(+), 1316 deletions(-) create mode 100644 .phpactor.json diff --git a/.phpactor.json b/.phpactor.json new file mode 100644 index 00000000..028bb10a --- /dev/null +++ b/.phpactor.json @@ -0,0 +1,5 @@ +{ + "$schema": "/Users/jonny/git/phpactor/phpactor.schema.json", + "language_server_phpstan.enabled": false, + "language_server_psalm.enabled": true +} diff --git a/composer.lock b/composer.lock index 68aea629..8f587dec 100644 --- a/composer.lock +++ b/composer.lock @@ -8,16 +8,16 @@ "packages": [ { "name": "aws/aws-crt-php", - "version": "v1.2.5", + "version": "v1.2.6", "source": { "type": "git", "url": "https://github.com/awslabs/aws-crt-php.git", - "reference": "0ea1f04ec5aa9f049f97e012d1ed63b76834a31b" + "reference": "a63485b65b6b3367039306496d49737cf1995408" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/0ea1f04ec5aa9f049f97e012d1ed63b76834a31b", - "reference": "0ea1f04ec5aa9f049f97e012d1ed63b76834a31b", + "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/a63485b65b6b3367039306496d49737cf1995408", + "reference": "a63485b65b6b3367039306496d49737cf1995408", "shasum": "" }, "require": { @@ -56,22 +56,22 @@ ], "support": { "issues": "https://github.com/awslabs/aws-crt-php/issues", - "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.5" + "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.6" }, - "time": "2024-04-19T21:30:56+00:00" + "time": "2024-06-13T17:21:28+00:00" }, { "name": "aws/aws-sdk-php", - "version": "3.314.6", + "version": "3.324.8", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "d04da330b0201edab71edd33a03b8d5ad6e4a313" + "reference": "22ac6655d95ac9e068f39364c7756fbc1460ffbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/d04da330b0201edab71edd33a03b8d5ad6e4a313", - "reference": "d04da330b0201edab71edd33a03b8d5ad6e4a313", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/22ac6655d95ac9e068f39364c7756fbc1460ffbb", + "reference": "22ac6655d95ac9e068f39364c7756fbc1460ffbb", "shasum": "" }, "require": { @@ -124,7 +124,10 @@ ], "psr-4": { "Aws\\": "src/" - } + }, + "exclude-from-classmap": [ + "src/data/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -151,9 +154,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.314.6" + "source": "https://github.com/aws/aws-sdk-php/tree/3.324.8" }, - "time": "2024-06-20T18:09:51+00:00" + "time": "2024-10-22T18:32:28+00:00" }, { "name": "brick/math", @@ -286,21 +289,21 @@ }, { "name": "cocur/slugify", - "version": "v4.5.1", + "version": "v4.6.0", "source": { "type": "git", "url": "https://github.com/cocur/slugify.git", - "reference": "7c6e088228b9f082050876ae8b0cd287b117b840" + "reference": "1d674022e9cbefa80b4f51aa3e2375b6e3c14fdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cocur/slugify/zipball/7c6e088228b9f082050876ae8b0cd287b117b840", - "reference": "7c6e088228b9f082050876ae8b0cd287b117b840", + "url": "https://api.github.com/repos/cocur/slugify/zipball/1d674022e9cbefa80b4f51aa3e2375b6e3c14fdb", + "reference": "1d674022e9cbefa80b4f51aa3e2375b6e3c14fdb", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "conflict": { "symfony/config": "<3.4 || >=4,<4.3", @@ -354,9 +357,9 @@ ], "support": { "issues": "https://github.com/cocur/slugify/issues", - "source": "https://github.com/cocur/slugify/tree/v4.5.1" + "source": "https://github.com/cocur/slugify/tree/v4.6.0" }, - "time": "2023-09-17T07:26:20+00:00" + "time": "2024-09-10T14:09:25+00:00" }, { "name": "composer/installers", @@ -875,16 +878,16 @@ }, { "name": "dragonmantank/cron-expression", - "version": "v3.3.3", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a" + "reference": "8c784d071debd117328803d86b2097615b457500" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", - "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8c784d071debd117328803d86b2097615b457500", + "reference": "8c784d071debd117328803d86b2097615b457500", "shasum": "" }, "require": { @@ -897,10 +900,14 @@ "require-dev": { "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^1.0", - "phpstan/phpstan-webmozart-assert": "^1.0", "phpunit/phpunit": "^7.0|^8.0|^9.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, "autoload": { "psr-4": { "Cron\\": "src/Cron/" @@ -924,7 +931,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0" }, "funding": [ { @@ -932,7 +939,7 @@ "type": "github" } ], - "time": "2023-08-10T19:36:49+00:00" + "time": "2024-10-09T13:47:03+00:00" }, { "name": "egulias/email-validator", @@ -1074,24 +1081,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": { @@ -1120,7 +1127,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": [ { @@ -1132,20 +1139,20 @@ "type": "tidelift" } ], - "time": "2023-11-12T22:16:48+00:00" + "time": "2024-07-20T21:45:45+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.9.1", + "version": "7.9.2", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "a629e5b69db96eb4939c1b34114130077dd4c6fc" + "reference": "d281ed313b989f213357e3be1a179f02196ac99b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a629e5b69db96eb4939c1b34114130077dd4c6fc", - "reference": "a629e5b69db96eb4939c1b34114130077dd4c6fc", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b", + "reference": "d281ed313b989f213357e3be1a179f02196ac99b", "shasum": "" }, "require": { @@ -1242,7 +1249,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.9.1" + "source": "https://github.com/guzzle/guzzle/tree/7.9.2" }, "funding": [ { @@ -1258,20 +1265,20 @@ "type": "tidelift" } ], - "time": "2024-07-19T16:19:57+00:00" + "time": "2024-07-24T11:22:20+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8" + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", - "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", + "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455", + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455", "shasum": "" }, "require": { @@ -1325,7 +1332,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.3" + "source": "https://github.com/guzzle/promises/tree/2.0.4" }, "funding": [ { @@ -1341,7 +1348,7 @@ "type": "tidelift" } ], - "time": "2024-07-18T10:29:17+00:00" + "time": "2024-10-17T10:06:22+00:00" }, { "name": "guzzlehttp/psr7", @@ -1698,16 +1705,16 @@ }, { "name": "intervention/gif", - "version": "4.1.0", + "version": "4.2.0", "source": { "type": "git", "url": "https://github.com/Intervention/gif.git", - "reference": "3a2b5f8a8856e8877cdab5c47e51aab2d4cb23a3" + "reference": "42c131a31b93c440ad49061b599fa218f06f93be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/gif/zipball/3a2b5f8a8856e8877cdab5c47e51aab2d4cb23a3", - "reference": "3a2b5f8a8856e8877cdab5c47e51aab2d4cb23a3", + "url": "https://api.github.com/repos/Intervention/gif/zipball/42c131a31b93c440ad49061b599fa218f06f93be", + "reference": "42c131a31b93c440ad49061b599fa218f06f93be", "shasum": "" }, "require": { @@ -1746,7 +1753,7 @@ ], "support": { "issues": "https://github.com/Intervention/gif/issues", - "source": "https://github.com/Intervention/gif/tree/4.1.0" + "source": "https://github.com/Intervention/gif/tree/4.2.0" }, "funding": [ { @@ -1756,27 +1763,31 @@ { "url": "https://github.com/Intervention", "type": "github" + }, + { + "url": "https://ko-fi.com/interventionphp", + "type": "ko_fi" } ], - "time": "2024-03-26T17:23:47+00:00" + "time": "2024-09-20T13:35:02+00:00" }, { "name": "intervention/image", - "version": "3.7.2", + "version": "3.9.0", "source": { "type": "git", "url": "https://github.com/Intervention/image.git", - "reference": "5451ff9f909c2fc836722e5ed6831b9f9a6db68c" + "reference": "1e0a2b6d767ef22a095924c6bcb2981da6de6f1e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/5451ff9f909c2fc836722e5ed6831b9f9a6db68c", - "reference": "5451ff9f909c2fc836722e5ed6831b9f9a6db68c", + "url": "https://api.github.com/repos/Intervention/image/zipball/1e0a2b6d767ef22a095924c6bcb2981da6de6f1e", + "reference": "1e0a2b6d767ef22a095924c6bcb2981da6de6f1e", "shasum": "" }, "require": { "ext-mbstring": "*", - "intervention/gif": "^4.1", + "intervention/gif": "^4.2", "php": "^8.1" }, "require-dev": { @@ -1818,7 +1829,7 @@ ], "support": { "issues": "https://github.com/Intervention/image/issues", - "source": "https://github.com/Intervention/image/tree/3.7.2" + "source": "https://github.com/Intervention/image/tree/3.9.0" }, "funding": [ { @@ -1828,9 +1839,13 @@ { "url": "https://github.com/Intervention", "type": "github" + }, + { + "url": "https://ko-fi.com/interventionphp", + "type": "ko_fi" } ], - "time": "2024-07-05T13:35:01+00:00" + "time": "2024-10-06T15:37:56+00:00" }, { "name": "jonnybarnes/indieweb", @@ -1999,16 +2014,16 @@ }, { "name": "laravel/framework", - "version": "v11.16.0", + "version": "v11.29.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "bd4808aaf103ccb5cb4b00bcee46140c070c0ec4" + "reference": "425054512c362835ba9c0307561973c8eeac7385" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/bd4808aaf103ccb5cb4b00bcee46140c070c0ec4", - "reference": "bd4808aaf103ccb5cb4b00bcee46140c070c0ec4", + "url": "https://api.github.com/repos/laravel/framework/zipball/425054512c362835ba9c0307561973c8eeac7385", + "reference": "425054512c362835ba9c0307561973c8eeac7385", "shasum": "" }, "require": { @@ -2027,7 +2042,7 @@ "fruitcake/php-cors": "^1.3", "guzzlehttp/guzzle": "^7.8", "guzzlehttp/uri-template": "^1.0", - "laravel/prompts": "^0.1.18", + "laravel/prompts": "^0.1.18|^0.2.0|^0.3.0", "laravel/serializable-closure": "^1.3", "league/commonmark": "^2.2.1", "league/flysystem": "^3.8.0", @@ -2070,6 +2085,7 @@ "illuminate/bus": "self.version", "illuminate/cache": "self.version", "illuminate/collections": "self.version", + "illuminate/concurrency": "self.version", "illuminate/conditionable": "self.version", "illuminate/config": "self.version", "illuminate/console": "self.version", @@ -2112,7 +2128,7 @@ "league/flysystem-sftp-v3": "^3.0", "mockery/mockery": "^1.6", "nyholm/psr7": "^1.2", - "orchestra/testbench-core": "^9.1.5", + "orchestra/testbench-core": "^9.5", "pda/pheanstalk": "^5.0", "phpstan/phpstan": "^1.11.5", "phpunit/phpunit": "^10.5|^11.0", @@ -2170,6 +2186,8 @@ "src/Illuminate/Events/functions.php", "src/Illuminate/Filesystem/functions.php", "src/Illuminate/Foundation/helpers.php", + "src/Illuminate/Log/functions.php", + "src/Illuminate/Support/functions.php", "src/Illuminate/Support/helpers.php" ], "psr-4": { @@ -2201,20 +2219,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-07-16T14:33:07+00:00" + "time": "2024-10-22T14:13:31+00:00" }, { "name": "laravel/horizon", - "version": "v5.25.0", + "version": "v5.29.2", "source": { "type": "git", "url": "https://github.com/laravel/horizon.git", - "reference": "81e62cee5b3feaf169d683b8890e33bf454698ab" + "reference": "d9c39ce4e9050b33a2ff9d2cee21646a18d4cc92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/horizon/zipball/81e62cee5b3feaf169d683b8890e33bf454698ab", - "reference": "81e62cee5b3feaf169d683b8890e33bf454698ab", + "url": "https://api.github.com/repos/laravel/horizon/zipball/d9c39ce4e9050b33a2ff9d2cee21646a18d4cc92", + "reference": "d9c39ce4e9050b33a2ff9d2cee21646a18d4cc92", "shasum": "" }, "require": { @@ -2229,6 +2247,7 @@ "ramsey/uuid": "^4.0", "symfony/console": "^6.0|^7.0", "symfony/error-handler": "^6.0|^7.0", + "symfony/polyfill-php83": "^1.28", "symfony/process": "^6.0|^7.0" }, "require-dev": { @@ -2278,27 +2297,27 @@ ], "support": { "issues": "https://github.com/laravel/horizon/issues", - "source": "https://github.com/laravel/horizon/tree/v5.25.0" + "source": "https://github.com/laravel/horizon/tree/v5.29.2" }, - "time": "2024-07-05T16:46:31+00:00" + "time": "2024-10-16T21:36:57+00:00" }, { "name": "laravel/prompts", - "version": "v0.1.24", + "version": "v0.3.1", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "409b0b4305273472f3754826e68f4edbd0150149" + "reference": "0f3848a445562dac376b27968f753c65e7e1036e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/409b0b4305273472f3754826e68f4edbd0150149", - "reference": "409b0b4305273472f3754826e68f4edbd0150149", + "url": "https://api.github.com/repos/laravel/prompts/zipball/0f3848a445562dac376b27968f753c65e7e1036e", + "reference": "0f3848a445562dac376b27968f753c65e7e1036e", "shasum": "" }, "require": { + "composer-runtime-api": "^2.2", "ext-mbstring": "*", - "illuminate/collections": "^10.0|^11.0", "php": "^8.1", "symfony/console": "^6.2|^7.0" }, @@ -2307,6 +2326,7 @@ "laravel/framework": ">=10.17.0 <10.25.0" }, "require-dev": { + "illuminate/collections": "^10.0|^11.0", "mockery/mockery": "^1.5", "pestphp/pest": "^2.3", "phpstan/phpstan": "^1.11", @@ -2318,7 +2338,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "0.1.x-dev" + "dev-main": "0.3.x-dev" } }, "autoload": { @@ -2336,22 +2356,22 @@ "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.3.1" }, - "time": "2024-06-17T13:58:22+00:00" + "time": "2024-10-09T19:42:26+00:00" }, { "name": "laravel/sanctum", - "version": "v4.0.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/laravel/sanctum.git", - "reference": "9cfc0ce80cabad5334efff73ec856339e8ec1ac1" + "reference": "54aea9d13743ae8a6cdd3c28dbef128a17adecab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/9cfc0ce80cabad5334efff73ec856339e8ec1ac1", - "reference": "9cfc0ce80cabad5334efff73ec856339e8ec1ac1", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/54aea9d13743ae8a6cdd3c28dbef128a17adecab", + "reference": "54aea9d13743ae8a6cdd3c28dbef128a17adecab", "shasum": "" }, "require": { @@ -2402,20 +2422,20 @@ "issues": "https://github.com/laravel/sanctum/issues", "source": "https://github.com/laravel/sanctum" }, - "time": "2024-04-10T19:39:58+00:00" + "time": "2024-09-27T14:55:41+00:00" }, { "name": "laravel/scout", - "version": "v10.10.1", + "version": "v10.11.4", "source": { "type": "git", "url": "https://github.com/laravel/scout.git", - "reference": "b8f429f0be3a023ec182839a9b58d4aa5f903bbb" + "reference": "f9cf4f79163e3c5f13f81369d4992d66e6700502" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/scout/zipball/b8f429f0be3a023ec182839a9b58d4aa5f903bbb", - "reference": "b8f429f0be3a023ec182839a9b58d4aa5f903bbb", + "url": "https://api.github.com/repos/laravel/scout/zipball/f9cf4f79163e3c5f13f81369d4992d66e6700502", + "reference": "f9cf4f79163e3c5f13f81369d4992d66e6700502", "shasum": "" }, "require": { @@ -2480,30 +2500,31 @@ "issues": "https://github.com/laravel/scout/issues", "source": "https://github.com/laravel/scout" }, - "time": "2024-07-02T18:13:16+00:00" + "time": "2024-10-01T14:39:33+00:00" }, { "name": "laravel/serializable-closure", - "version": "v1.3.3", + "version": "v1.3.5", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "3dbf8a8e914634c48d389c1234552666b3d43754" + "reference": "1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c" }, "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/1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c", + "reference": "1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c", "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": { @@ -2540,20 +2561,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-09-23T13:33:08+00:00" }, { "name": "laravel/tinker", - "version": "v2.9.0", + "version": "v2.10.0", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe" + "reference": "ba4d51eb56de7711b3a37d63aa0643e99a339ae5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe", - "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "url": "https://api.github.com/repos/laravel/tinker/zipball/ba4d51eb56de7711b3a37d63aa0643e99a339ae5", + "reference": "ba4d51eb56de7711b3a37d63aa0643e99a339ae5", "shasum": "" }, "require": { @@ -2604,44 +2625,44 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.9.0" + "source": "https://github.com/laravel/tinker/tree/v2.10.0" }, - "time": "2024-01-04T16:10:04+00:00" + "time": "2024-09-23T13:32:56+00:00" }, { "name": "lcobucci/jwt", - "version": "5.3.0", + "version": "5.4.0", "source": { "type": "git", "url": "https://github.com/lcobucci/jwt.git", - "reference": "08071d8d2c7f4b00222cc4b1fb6aa46990a80f83" + "reference": "aac4fd512681fd5cb4b77d2105ab7ec700c72051" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/jwt/zipball/08071d8d2c7f4b00222cc4b1fb6aa46990a80f83", - "reference": "08071d8d2c7f4b00222cc4b1fb6aa46990a80f83", + "url": "https://api.github.com/repos/lcobucci/jwt/zipball/aac4fd512681fd5cb4b77d2105ab7ec700c72051", + "reference": "aac4fd512681fd5cb4b77d2105ab7ec700c72051", "shasum": "" }, "require": { "ext-openssl": "*", "ext-sodium": "*", - "php": "~8.1.0 || ~8.2.0 || ~8.3.0", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0", "psr/clock": "^1.0" }, "require-dev": { - "infection/infection": "^0.27.0", - "lcobucci/clock": "^3.0", + "infection/infection": "^0.29", + "lcobucci/clock": "^3.2", "lcobucci/coding-standard": "^11.0", - "phpbench/phpbench": "^1.2.9", + "phpbench/phpbench": "^1.2", "phpstan/extension-installer": "^1.2", "phpstan/phpstan": "^1.10.7", "phpstan/phpstan-deprecation-rules": "^1.1.3", "phpstan/phpstan-phpunit": "^1.3.10", "phpstan/phpstan-strict-rules": "^1.5.0", - "phpunit/phpunit": "^10.2.6" + "phpunit/phpunit": "^11.1" }, "suggest": { - "lcobucci/clock": ">= 3.0" + "lcobucci/clock": ">= 3.2" }, "type": "library", "autoload": { @@ -2667,7 +2688,7 @@ ], "support": { "issues": "https://github.com/lcobucci/jwt/issues", - "source": "https://github.com/lcobucci/jwt/tree/5.3.0" + "source": "https://github.com/lcobucci/jwt/tree/5.4.0" }, "funding": [ { @@ -2679,20 +2700,20 @@ "type": "patreon" } ], - "time": "2024-04-11T23:07:54+00:00" + "time": "2024-10-08T22:06:45+00:00" }, { "name": "league/commonmark", - "version": "2.5.0", + "version": "2.5.3", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "0026475f5c9a104410ae824cb5a4d63fa3bdb1df" + "reference": "b650144166dfa7703e62a22e493b853b58d874b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/0026475f5c9a104410ae824cb5a4d63fa3bdb1df", - "reference": "0026475f5c9a104410ae824cb5a4d63fa3bdb1df", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/b650144166dfa7703e62a22e493b853b58d874b0", + "reference": "b650144166dfa7703e62a22e493b853b58d874b0", "shasum": "" }, "require": { @@ -2705,8 +2726,8 @@ }, "require-dev": { "cebe/markdown": "^1.0", - "commonmark/cmark": "0.31.0", - "commonmark/commonmark.js": "0.31.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", @@ -2785,7 +2806,7 @@ "type": "tidelift" } ], - "time": "2024-07-22T18:18:14+00:00" + "time": "2024-08-16T11:46:16+00:00" }, { "name": "league/config", @@ -2871,16 +2892,16 @@ }, { "name": "league/flysystem", - "version": "3.28.0", + "version": "3.29.1", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c" + "reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c", - "reference": "e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/edc1bb7c86fab0776c3287dbd19b5fa278347319", + "reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319", "shasum": "" }, "require": { @@ -2948,22 +2969,22 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.28.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.29.1" }, - "time": "2024-05-22T10:09:12+00:00" + "time": "2024-10-08T08:58:34+00:00" }, { "name": "league/flysystem-aws-s3-v3", - "version": "3.28.0", + "version": "3.29.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "22071ef1604bc776f5ff2468ac27a752514665c8" + "reference": "c6ff6d4606e48249b63f269eba7fabdb584e76a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/22071ef1604bc776f5ff2468ac27a752514665c8", - "reference": "22071ef1604bc776f5ff2468ac27a752514665c8", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/c6ff6d4606e48249b63f269eba7fabdb584e76a9", + "reference": "c6ff6d4606e48249b63f269eba7fabdb584e76a9", "shasum": "" }, "require": { @@ -3003,22 +3024,22 @@ "storage" ], "support": { - "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.28.0" + "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.29.0" }, - "time": "2024-05-06T20:05:52+00:00" + "time": "2024-08-17T13:10:48+00:00" }, { "name": "league/flysystem-local", - "version": "3.28.0", + "version": "3.29.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "13f22ea8be526ea58c2ddff9e158ef7c296e4f40" + "reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/13f22ea8be526ea58c2ddff9e158ef7c296e4f40", - "reference": "13f22ea8be526ea58c2ddff9e158ef7c296e4f40", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/e0e8d52ce4b2ed154148453d321e97c8e931bd27", + "reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27", "shasum": "" }, "require": { @@ -3052,22 +3073,22 @@ "local" ], "support": { - "source": "https://github.com/thephpleague/flysystem-local/tree/3.28.0" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.29.0" }, - "time": "2024-05-06T20:05:52+00:00" + "time": "2024-08-09T21:24:39+00:00" }, { "name": "league/mime-type-detection", - "version": "1.15.0", + "version": "1.16.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301" + "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", - "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/2d6702ff215bf922936ccc1ad31007edc76451b9", + "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9", "shasum": "" }, "require": { @@ -3098,7 +3119,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.16.0" }, "funding": [ { @@ -3110,7 +3131,7 @@ "type": "tidelift" } ], - "time": "2024-01-28T23:22:08+00:00" + "time": "2024-09-21T08:32:55+00:00" }, { "name": "league/uri", @@ -3518,16 +3539,16 @@ }, { "name": "mtdowling/jmespath.php", - "version": "2.7.0", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/jmespath/jmespath.php.git", - "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b" + "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/bbb69a935c2cbb0c03d7f481a238027430f6440b", - "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b", + "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/a2a865e05d5f420b50cc2f85bb78d565db12a6bc", + "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc", "shasum": "" }, "require": { @@ -3544,7 +3565,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev" + "dev-master": "2.8-dev" } }, "autoload": { @@ -3578,22 +3599,22 @@ ], "support": { "issues": "https://github.com/jmespath/jmespath.php/issues", - "source": "https://github.com/jmespath/jmespath.php/tree/2.7.0" + "source": "https://github.com/jmespath/jmespath.php/tree/2.8.0" }, - "time": "2023-08-25T10:54:48+00:00" + "time": "2024-09-04T18:46:31+00:00" }, { "name": "nesbot/carbon", - "version": "3.7.0", + "version": "3.8.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "cb4374784c87d0a0294e8513a52eb63c0aff3139" + "reference": "bbd3eef89af8ba66a3aa7952b5439168fbcc529f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/cb4374784c87d0a0294e8513a52eb63c0aff3139", - "reference": "cb4374784c87d0a0294e8513a52eb63c0aff3139", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bbd3eef89af8ba66a3aa7952b5439168fbcc529f", + "reference": "bbd3eef89af8ba66a3aa7952b5439168fbcc529f", "shasum": "" }, "require": { @@ -3686,28 +3707,28 @@ "type": "tidelift" } ], - "time": "2024-07-16T22:29:20+00:00" + "time": "2024-08-19T06:22:39+00:00" }, { "name": "nette/schema", - "version": "v1.3.0", + "version": "v1.3.2", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188" + "reference": "da801d52f0354f70a638673c4a0f04e16529431d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", - "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", + "url": "https://api.github.com/repos/nette/schema/zipball/da801d52f0354f70a638673c4a0f04e16529431d", + "reference": "da801d52f0354f70a638673c4a0f04e16529431d", "shasum": "" }, "require": { "nette/utils": "^4.0", - "php": "8.1 - 8.3" + "php": "8.1 - 8.4" }, "require-dev": { - "nette/tester": "^2.4", + "nette/tester": "^2.5.2", "phpstan/phpstan-nette": "^1.0", "tracy/tracy": "^2.8" }, @@ -3746,26 +3767,26 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.3.0" + "source": "https://github.com/nette/schema/tree/v1.3.2" }, - "time": "2023-12-11T11:54:22+00:00" + "time": "2024-10-06T23:10:23+00:00" }, { "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", @@ -3832,22 +3853,22 @@ ], "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": "nikic/php-parser", - "version": "v4.19.1", + "version": "v4.19.4", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b" + "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b", - "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/715f4d25e225bc47b293a8b997fe6ce99bf987d2", + "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2", "shasum": "" }, "require": { @@ -3856,7 +3877,7 @@ }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "bin": [ "bin/php-parse" @@ -3888,38 +3909,37 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.4" }, - "time": "2024-03-17T08:10:35+00:00" + "time": "2024-09-29T15:01:53+00:00" }, { "name": "nunomaduro/termwind", - "version": "v2.0.1", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "58c4c58cf23df7f498daeb97092e34f5259feb6a" + "reference": "42c84e4e8090766bbd6445d06cd6e57650626ea3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/58c4c58cf23df7f498daeb97092e34f5259feb6a", - "reference": "58c4c58cf23df7f498daeb97092e34f5259feb6a", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/42c84e4e8090766bbd6445d06cd6e57650626ea3", + "reference": "42c84e4e8090766bbd6445d06cd6e57650626ea3", "shasum": "" }, "require": { "ext-mbstring": "*", "php": "^8.2", - "symfony/console": "^7.0.4" + "symfony/console": "^7.1.5" }, "require-dev": { - "ergebnis/phpstan-rules": "^2.2.0", - "illuminate/console": "^11.0.0", - "laravel/pint": "^1.14.0", - "mockery/mockery": "^1.6.7", - "pestphp/pest": "^2.34.1", - "phpstan/phpstan": "^1.10.59", - "phpstan/phpstan-strict-rules": "^1.5.2", - "symfony/var-dumper": "^7.0.4", + "illuminate/console": "^11.28.0", + "laravel/pint": "^1.18.1", + "mockery/mockery": "^1.6.12", + "pestphp/pest": "^2.36.0", + "phpstan/phpstan": "^1.12.6", + "phpstan/phpstan-strict-rules": "^1.6.1", + "symfony/var-dumper": "^7.1.5", "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", @@ -3962,7 +3982,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v2.0.1" + "source": "https://github.com/nunomaduro/termwind/tree/v2.2.0" }, "funding": [ { @@ -3978,20 +3998,20 @@ "type": "github" } ], - "time": "2024-03-06T16:17:14+00:00" + "time": "2024-10-15T16:15:16+00:00" }, { "name": "p3k/http", - "version": "0.1.12", + "version": "0.1.13", "source": { "type": "git", "url": "https://github.com/aaronpk/p3k-http.git", - "reference": "cf9c5b7cdbe1800bfb9587a20953ed8d20322e0b" + "reference": "ae4988ba19f4bc57ca3fe1f6dcd2087478fea53a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aaronpk/p3k-http/zipball/cf9c5b7cdbe1800bfb9587a20953ed8d20322e0b", - "reference": "cf9c5b7cdbe1800bfb9587a20953ed8d20322e0b", + "url": "https://api.github.com/repos/aaronpk/p3k-http/zipball/ae4988ba19f4bc57ca3fe1f6dcd2087478fea53a", + "reference": "ae4988ba19f4bc57ca3fe1f6dcd2087478fea53a", "shasum": "" }, "require": { @@ -4018,9 +4038,9 @@ "homepage": "https://github.com/aaronpk/p3k-http", "support": { "issues": "https://github.com/aaronpk/p3k-http/issues", - "source": "https://github.com/aaronpk/p3k-http/tree/0.1.12" + "source": "https://github.com/aaronpk/p3k-http/tree/0.1.13" }, - "time": "2021-10-12T14:12:29+00:00" + "time": "2024-10-20T19:46:46+00:00" }, { "name": "paragonie/constant_time_encoding", @@ -4266,16 +4286,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": { @@ -4283,13 +4303,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" @@ -4325,7 +4345,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": [ { @@ -4337,20 +4357,20 @@ "type": "tidelift" } ], - "time": "2023-11-12T21:59:55+00:00" + "time": "2024-07-20T21:41:07+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.29.1", + "version": "1.33.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4" + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fcaefacf2d5c417e928405b71b400d4ce10daaf4", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/82a311fd3690fb2bf7b64d5c98f912b3dd746140", + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140", "shasum": "" }, "require": { @@ -4382,9 +4402,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.33.0" }, - "time": "2024-05-31T08:52:43+00:00" + "time": "2024-10-13T11:25:22+00:00" }, { "name": "psr/clock", @@ -4699,16 +4719,16 @@ }, { "name": "psr/log", - "version": "3.0.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { @@ -4743,9 +4763,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" + "source": "https://github.com/php-fig/log/tree/3.0.2" }, - "time": "2021-07-14T16:46:02+00:00" + "time": "2024-09-11T13:17:53+00:00" }, { "name": "psr/simple-cache", @@ -4800,16 +4820,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.2", + "version": "v0.12.4", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "9185c66c2165bbf4d71de78a69dccf4974f9538d" + "reference": "2fd717afa05341b4f8152547f142cd2f130f6818" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/9185c66c2165bbf4d71de78a69dccf4974f9538d", - "reference": "9185c66c2165bbf4d71de78a69dccf4974f9538d", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/2fd717afa05341b4f8152547f142cd2f130f6818", + "reference": "2fd717afa05341b4f8152547f142cd2f130f6818", "shasum": "" }, "require": { @@ -4873,9 +4893,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.2" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.4" }, - "time": "2024-03-17T01:53:00+00:00" + "time": "2024-06-10T01:18:23+00:00" }, { "name": "ralouphie/getallheaders", @@ -5182,16 +5202,16 @@ }, { "name": "spatie/backtrace", - "version": "1.6.1", + "version": "1.6.2", "source": { "type": "git", "url": "https://github.com/spatie/backtrace.git", - "reference": "8373b9d51638292e3bfd736a9c19a654111b4a23" + "reference": "1a9a145b044677ae3424693f7b06479fc8c137a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/backtrace/zipball/8373b9d51638292e3bfd736a9c19a654111b4a23", - "reference": "8373b9d51638292e3bfd736a9c19a654111b4a23", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/1a9a145b044677ae3424693f7b06479fc8c137a9", + "reference": "1a9a145b044677ae3424693f7b06479fc8c137a9", "shasum": "" }, "require": { @@ -5229,7 +5249,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/backtrace/tree/1.6.1" + "source": "https://github.com/spatie/backtrace/tree/1.6.2" }, "funding": [ { @@ -5241,7 +5261,7 @@ "type": "other" } ], - "time": "2024-04-24T13:22:11+00:00" + "time": "2024-07-22T08:21:24+00:00" }, { "name": "spatie/commonmark-highlighter", @@ -5299,16 +5319,16 @@ }, { "name": "spatie/error-solutions", - "version": "1.0.4", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/spatie/error-solutions.git", - "reference": "264a7eef892aceb2fd65e206127ad3af4f3a2d6b" + "reference": "ae7393122eda72eed7cc4f176d1e96ea444f2d67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/error-solutions/zipball/264a7eef892aceb2fd65e206127ad3af4f3a2d6b", - "reference": "264a7eef892aceb2fd65e206127ad3af4f3a2d6b", + "url": "https://api.github.com/repos/spatie/error-solutions/zipball/ae7393122eda72eed7cc4f176d1e96ea444f2d67", + "reference": "ae7393122eda72eed7cc4f176d1e96ea444f2d67", "shasum": "" }, "require": { @@ -5361,7 +5381,7 @@ ], "support": { "issues": "https://github.com/spatie/error-solutions/issues", - "source": "https://github.com/spatie/error-solutions/tree/1.0.4" + "source": "https://github.com/spatie/error-solutions/tree/1.1.1" }, "funding": [ { @@ -5369,20 +5389,20 @@ "type": "github" } ], - "time": "2024-06-28T13:33:04+00:00" + "time": "2024-07-25T11:06:04+00:00" }, { "name": "spatie/flare-client-php", - "version": "1.7.0", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "097040ff51e660e0f6fc863684ac4b02c93fa234" + "reference": "180f8ca4c0d0d6fc51477bd8c53ce37ab5a96122" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/097040ff51e660e0f6fc863684ac4b02c93fa234", - "reference": "097040ff51e660e0f6fc863684ac4b02c93fa234", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/180f8ca4c0d0d6fc51477bd8c53ce37ab5a96122", + "reference": "180f8ca4c0d0d6fc51477bd8c53ce37ab5a96122", "shasum": "" }, "require": { @@ -5400,7 +5420,7 @@ "phpstan/extension-installer": "^1.1", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-phpunit": "^1.0", - "spatie/phpunit-snapshot-assertions": "^4.0|^5.0" + "spatie/pest-plugin-snapshots": "^1.0|^2.0" }, "type": "library", "extra": { @@ -5430,7 +5450,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.7.0" + "source": "https://github.com/spatie/flare-client-php/tree/1.8.0" }, "funding": [ { @@ -5438,7 +5458,7 @@ "type": "github" } ], - "time": "2024-06-12T14:39:14+00:00" + "time": "2024-08-01T08:27:26+00:00" }, { "name": "spatie/ignition", @@ -5884,16 +5904,16 @@ }, { "name": "symfony/console", - "version": "v7.1.2", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0aa29ca177f432ab68533432db0de059f39c92ae" + "reference": "0fa539d12b3ccf068a722bbbffa07ca7079af9ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0aa29ca177f432ab68533432db0de059f39c92ae", - "reference": "0aa29ca177f432ab68533432db0de059f39c92ae", + "url": "https://api.github.com/repos/symfony/console/zipball/0fa539d12b3ccf068a722bbbffa07ca7079af9ee", + "reference": "0fa539d12b3ccf068a722bbbffa07ca7079af9ee", "shasum": "" }, "require": { @@ -5957,7 +5977,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.1.2" + "source": "https://github.com/symfony/console/tree/v7.1.5" }, "funding": [ { @@ -5973,7 +5993,7 @@ "type": "tidelift" } ], - "time": "2024-06-28T10:03:55+00:00" + "time": "2024-09-20T08:28:38+00:00" }, { "name": "symfony/css-selector", @@ -6109,16 +6129,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.1.2", + "version": "v7.1.3", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "2412d3dddb5c9ea51a39cfbff1c565fc9844ca32" + "reference": "432bb369952795c61ca1def65e078c4a80dad13c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/2412d3dddb5c9ea51a39cfbff1c565fc9844ca32", - "reference": "2412d3dddb5c9ea51a39cfbff1c565fc9844ca32", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/432bb369952795c61ca1def65e078c4a80dad13c", + "reference": "432bb369952795c61ca1def65e078c4a80dad13c", "shasum": "" }, "require": { @@ -6164,7 +6184,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.2" + "source": "https://github.com/symfony/error-handler/tree/v7.1.3" }, "funding": [ { @@ -6180,7 +6200,7 @@ "type": "tidelift" } ], - "time": "2024-06-25T19:55:06+00:00" + "time": "2024-07-26T13:02:51+00:00" }, { "name": "symfony/event-dispatcher", @@ -6340,16 +6360,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": { @@ -6384,7 +6404,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": [ { @@ -6400,20 +6420,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-08-13T14:28:19+00:00" }, { "name": "symfony/html-sanitizer", - "version": "v7.1.1", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/html-sanitizer.git", - "reference": "737cbaa8082b696d0574afd91b9f471eca67fc65" + "reference": "89bf376c056926bd7fe8a81c0f486a060e20fdbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/737cbaa8082b696d0574afd91b9f471eca67fc65", - "reference": "737cbaa8082b696d0574afd91b9f471eca67fc65", + "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/89bf376c056926bd7fe8a81c0f486a060e20fdbc", + "reference": "89bf376c056926bd7fe8a81c0f486a060e20fdbc", "shasum": "" }, "require": { @@ -6453,7 +6473,7 @@ "sanitizer" ], "support": { - "source": "https://github.com/symfony/html-sanitizer/tree/v7.1.1" + "source": "https://github.com/symfony/html-sanitizer/tree/v7.1.5" }, "funding": [ { @@ -6469,20 +6489,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:55:39+00:00" + "time": "2024-09-20T13:35:23+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.1.1", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "74d171d5b6a1d9e4bfee09a41937c17a7536acfa" + "reference": "e30ef73b1e44eea7eb37ba69600a354e553f694b" }, "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/e30ef73b1e44eea7eb37ba69600a354e553f694b", + "reference": "e30ef73b1e44eea7eb37ba69600a354e553f694b", "shasum": "" }, "require": { @@ -6530,7 +6550,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.5" }, "funding": [ { @@ -6546,20 +6566,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-20T08:28:38+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.1.2", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "ae3fa717db4d41a55d14c2bd92399e37cf5bc0f6" + "reference": "44204d96150a9df1fc57601ec933d23fefc2d65b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/ae3fa717db4d41a55d14c2bd92399e37cf5bc0f6", - "reference": "ae3fa717db4d41a55d14c2bd92399e37cf5bc0f6", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/44204d96150a9df1fc57601ec933d23fefc2d65b", + "reference": "44204d96150a9df1fc57601ec933d23fefc2d65b", "shasum": "" }, "require": { @@ -6644,7 +6664,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.2" + "source": "https://github.com/symfony/http-kernel/tree/v7.1.5" }, "funding": [ { @@ -6660,20 +6680,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T13:13:31+00:00" + "time": "2024-09-21T06:09:21+00:00" }, { "name": "symfony/mailer", - "version": "v7.1.2", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "8fcff0af9043c8f8a8e229437cea363e282f9aee" + "reference": "bbf21460c56f29810da3df3e206e38dfbb01e80b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/8fcff0af9043c8f8a8e229437cea363e282f9aee", - "reference": "8fcff0af9043c8f8a8e229437cea363e282f9aee", + "url": "https://api.github.com/repos/symfony/mailer/zipball/bbf21460c56f29810da3df3e206e38dfbb01e80b", + "reference": "bbf21460c56f29810da3df3e206e38dfbb01e80b", "shasum": "" }, "require": { @@ -6724,7 +6744,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.1.2" + "source": "https://github.com/symfony/mailer/tree/v7.1.5" }, "funding": [ { @@ -6740,20 +6760,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T08:00:31+00:00" + "time": "2024-09-08T12:32:26+00:00" }, { "name": "symfony/mime", - "version": "v7.1.2", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "26a00b85477e69a4bab63b66c5dce64f18b0cbfc" + "reference": "711d2e167e8ce65b05aea6b258c449671cdd38ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/26a00b85477e69a4bab63b66c5dce64f18b0cbfc", - "reference": "26a00b85477e69a4bab63b66c5dce64f18b0cbfc", + "url": "https://api.github.com/repos/symfony/mime/zipball/711d2e167e8ce65b05aea6b258c449671cdd38ff", + "reference": "711d2e167e8ce65b05aea6b258c449671cdd38ff", "shasum": "" }, "require": { @@ -6808,7 +6828,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.1.2" + "source": "https://github.com/symfony/mime/tree/v7.1.5" }, "funding": [ { @@ -6824,24 +6844,24 @@ "type": "tidelift" } ], - "time": "2024-06-28T10:03:55+00:00" + "time": "2024-09-20T08:28:38+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "0424dff1c58f028c451efff2045f5d92410bd540" + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540", - "reference": "0424dff1c58f028c451efff2045f5d92410bd540", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-ctype": "*" @@ -6887,7 +6907,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" }, "funding": [ { @@ -6903,24 +6923,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a" + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a", - "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" @@ -6965,7 +6985,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" }, "funding": [ { @@ -6981,26 +7001,25 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "a6e83bdeb3c84391d1dfe16f42e40727ce524a5c" + "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a6e83bdeb3c84391d1dfe16f42e40727ce524a5c", - "reference": "a6e83bdeb3c84391d1dfe16f42e40727ce524a5c", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773", + "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773", "shasum": "" }, "require": { - "php": ">=7.1", - "symfony/polyfill-intl-normalizer": "^1.10", - "symfony/polyfill-php72": "^1.10" + "php": ">=7.2", + "symfony/polyfill-intl-normalizer": "^1.10" }, "suggest": { "ext-intl": "For best performance" @@ -7049,7 +7068,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0" }, "funding": [ { @@ -7065,24 +7084,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb" + "reference": "3833d7255cc303546435cb650316bff708a1c75c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb", - "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" @@ -7130,7 +7149,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" }, "funding": [ { @@ -7146,24 +7165,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c" + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c", - "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-mbstring": "*" @@ -7210,7 +7229,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" }, "funding": [ { @@ -7226,97 +7245,24 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+00:00" - }, - { - "name": "symfony/polyfill-php72", - "version": "v1.30.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "10112722600777e02d2745716b70c5db4ca70442" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/10112722600777e02d2745716b70c5db4ca70442", - "reference": "10112722600777e02d2745716b70c5db4ca70442", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.30.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-06-19T12:30:46+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", - "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { @@ -7363,7 +7309,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" }, "funding": [ { @@ -7379,24 +7325,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9" + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", - "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { @@ -7439,7 +7385,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0" }, "funding": [ { @@ -7455,24 +7401,24 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:35:24+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-uuid", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", - "reference": "2ba1f33797470debcda07fe9dce20a0003df18e9" + "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/2ba1f33797470debcda07fe9dce20a0003df18e9", - "reference": "2ba1f33797470debcda07fe9dce20a0003df18e9", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2", + "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-uuid": "*" @@ -7518,7 +7464,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.31.0" }, "funding": [ { @@ -7534,20 +7480,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/process", - "version": "v7.1.1", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "febf90124323a093c7ee06fdb30e765ca3c20028" + "reference": "5c03ee6369281177f07f7c68252a280beccba847" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/febf90124323a093c7ee06fdb30e765ca3c20028", - "reference": "febf90124323a093c7ee06fdb30e765ca3c20028", + "url": "https://api.github.com/repos/symfony/process/zipball/5c03ee6369281177f07f7c68252a280beccba847", + "reference": "5c03ee6369281177f07f7c68252a280beccba847", "shasum": "" }, "require": { @@ -7579,7 +7525,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.5" }, "funding": [ { @@ -7595,20 +7541,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-19T21:48:23+00:00" }, { "name": "symfony/property-access", - "version": "v7.1.1", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "74e39e6a6276b8e384f34c6ddbc10a6c9a60193a" + "reference": "6c709f97103355016e5782d0622437ae381012ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/74e39e6a6276b8e384f34c6ddbc10a6c9a60193a", - "reference": "74e39e6a6276b8e384f34c6ddbc10a6c9a60193a", + "url": "https://api.github.com/repos/symfony/property-access/zipball/6c709f97103355016e5782d0622437ae381012ad", + "reference": "6c709f97103355016e5782d0622437ae381012ad", "shasum": "" }, "require": { @@ -7655,7 +7601,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v7.1.1" + "source": "https://github.com/symfony/property-access/tree/v7.1.4" }, "funding": [ { @@ -7671,20 +7617,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-08-30T16:12:47+00:00" }, { "name": "symfony/property-info", - "version": "v7.1.2", + "version": "v7.1.3", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "d7b91e4aa07e822a9b935fc29a7254c12d502f16" + "reference": "88a279df2db5b7919cac6f35d6a5d1d7147e6a9b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/d7b91e4aa07e822a9b935fc29a7254c12d502f16", - "reference": "d7b91e4aa07e822a9b935fc29a7254c12d502f16", + "url": "https://api.github.com/repos/symfony/property-info/zipball/88a279df2db5b7919cac6f35d6a5d1d7147e6a9b", + "reference": "88a279df2db5b7919cac6f35d6a5d1d7147e6a9b", "shasum": "" }, "require": { @@ -7739,7 +7685,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v7.1.2" + "source": "https://github.com/symfony/property-info/tree/v7.1.3" }, "funding": [ { @@ -7755,20 +7701,20 @@ "type": "tidelift" } ], - "time": "2024-06-26T07:21:35+00:00" + "time": "2024-07-26T07:36:36+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": { @@ -7820,7 +7766,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.1.1" + "source": "https://github.com/symfony/routing/tree/v7.1.4" }, "funding": [ { @@ -7836,20 +7782,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-08-29T08:16:25+00:00" }, { "name": "symfony/serializer", - "version": "v7.1.2", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "d2077674aaaff02a95f290de512aa358947e6bbe" + "reference": "71d6e1f70f00752d1469d0f5e83b0a51716f288b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/d2077674aaaff02a95f290de512aa358947e6bbe", - "reference": "d2077674aaaff02a95f290de512aa358947e6bbe", + "url": "https://api.github.com/repos/symfony/serializer/zipball/71d6e1f70f00752d1469d0f5e83b0a51716f288b", + "reference": "71d6e1f70f00752d1469d0f5e83b0a51716f288b", "shasum": "" }, "require": { @@ -7863,12 +7809,14 @@ "symfony/dependency-injection": "<6.4", "symfony/property-access": "<6.4", "symfony/property-info": "<6.4", + "symfony/type-info": "<7.1.5", "symfony/uid": "<6.4", "symfony/validator": "<6.4", "symfony/yaml": "<6.4" }, "require-dev": { "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", + "phpstan/phpdoc-parser": "^1.0", "seld/jsonlint": "^1.10", "symfony/cache": "^6.4|^7.0", "symfony/config": "^6.4|^7.0", @@ -7884,7 +7832,7 @@ "symfony/property-access": "^6.4|^7.0", "symfony/property-info": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3", - "symfony/type-info": "^7.1", + "symfony/type-info": "^7.1.5", "symfony/uid": "^6.4|^7.0", "symfony/validator": "^6.4|^7.0", "symfony/var-dumper": "^6.4|^7.0", @@ -7917,7 +7865,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v7.1.2" + "source": "https://github.com/symfony/serializer/tree/v7.1.5" }, "funding": [ { @@ -7933,7 +7881,7 @@ "type": "tidelift" } ], - "time": "2024-06-28T07:42:43+00:00" + "time": "2024-09-20T12:13:15+00:00" }, { "name": "symfony/service-contracts", @@ -8020,16 +7968,16 @@ }, { "name": "symfony/string", - "version": "v7.1.2", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8" + "reference": "d66f9c343fa894ec2037cc928381df90a7ad4306" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/14221089ac66cf82e3cf3d1c1da65de305587ff8", - "reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8", + "url": "https://api.github.com/repos/symfony/string/zipball/d66f9c343fa894ec2037cc928381df90a7ad4306", + "reference": "d66f9c343fa894ec2037cc928381df90a7ad4306", "shasum": "" }, "require": { @@ -8087,7 +8035,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.2" + "source": "https://github.com/symfony/string/tree/v7.1.5" }, "funding": [ { @@ -8103,20 +8051,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T09:27:18+00:00" + "time": "2024-09-20T08:28:38+00:00" }, { "name": "symfony/translation", - "version": "v7.1.1", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "cf5ae136e124fc7681b34ce9fac9d5b9ae8ceee3" + "reference": "235535e3f84f3dfbdbde0208ede6ca75c3a489ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/cf5ae136e124fc7681b34ce9fac9d5b9ae8ceee3", - "reference": "cf5ae136e124fc7681b34ce9fac9d5b9ae8ceee3", + "url": "https://api.github.com/repos/symfony/translation/zipball/235535e3f84f3dfbdbde0208ede6ca75c3a489ea", + "reference": "235535e3f84f3dfbdbde0208ede6ca75c3a489ea", "shasum": "" }, "require": { @@ -8181,7 +8129,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.5" }, "funding": [ { @@ -8197,7 +8145,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-16T06:30:38+00:00" }, { "name": "symfony/translation-contracts", @@ -8279,16 +8227,16 @@ }, { "name": "symfony/type-info", - "version": "v7.1.1", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/type-info.git", - "reference": "60b28eb733f1453287f1263ed305b96091e0d1dc" + "reference": "9f6094aa900d2c06bd61576a6f279d4ac441515f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/type-info/zipball/60b28eb733f1453287f1263ed305b96091e0d1dc", - "reference": "60b28eb733f1453287f1263ed305b96091e0d1dc", + "url": "https://api.github.com/repos/symfony/type-info/zipball/9f6094aa900d2c06bd61576a6f279d4ac441515f", + "reference": "9f6094aa900d2c06bd61576a6f279d4ac441515f", "shasum": "" }, "require": { @@ -8341,7 +8289,7 @@ "type" ], "support": { - "source": "https://github.com/symfony/type-info/tree/v7.1.1" + "source": "https://github.com/symfony/type-info/tree/v7.1.5" }, "funding": [ { @@ -8357,20 +8305,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:59:31+00:00" + "time": "2024-09-19T21:48:23+00:00" }, { "name": "symfony/uid", - "version": "v7.1.1", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "bb59febeecc81528ff672fad5dab7f06db8c8277" + "reference": "8c7bb8acb933964055215d89f9a9871df0239317" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/bb59febeecc81528ff672fad5dab7f06db8c8277", - "reference": "bb59febeecc81528ff672fad5dab7f06db8c8277", + "url": "https://api.github.com/repos/symfony/uid/zipball/8c7bb8acb933964055215d89f9a9871df0239317", + "reference": "8c7bb8acb933964055215d89f9a9871df0239317", "shasum": "" }, "require": { @@ -8415,7 +8363,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.1.1" + "source": "https://github.com/symfony/uid/tree/v7.1.5" }, "funding": [ { @@ -8431,20 +8379,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-17T09:16:35+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.1.2", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "5857c57c6b4b86524c08cf4f4bc95327270a816d" + "reference": "e20e03889539fd4e4211e14d2179226c513c010d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/5857c57c6b4b86524c08cf4f4bc95327270a816d", - "reference": "5857c57c6b4b86524c08cf4f4bc95327270a816d", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e20e03889539fd4e4211e14d2179226c513c010d", + "reference": "e20e03889539fd4e4211e14d2179226c513c010d", "shasum": "" }, "require": { @@ -8498,7 +8446,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.1.2" + "source": "https://github.com/symfony/var-dumper/tree/v7.1.5" }, "funding": [ { @@ -8514,7 +8462,7 @@ "type": "tidelift" } ], - "time": "2024-06-28T08:00:31+00:00" + "time": "2024-09-16T10:07:02+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -8571,23 +8519,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" @@ -8604,7 +8552,7 @@ "extra": { "bamarni-bin": { "bin-links": true, - "forward-command": true + "forward-command": false }, "branch-alias": { "dev-master": "5.6-dev" @@ -8639,7 +8587,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": [ { @@ -8651,7 +8599,7 @@ "type": "tidelift" } ], - "time": "2023-11-12T22:43:29+00:00" + "time": "2024-07-20T21:52:34+00:00" }, { "name": "voku/portable-ascii", @@ -9117,23 +9065,23 @@ }, { "name": "barryvdh/laravel-debugbar", - "version": "v3.13.5", + "version": "v3.14.6", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-debugbar.git", - "reference": "92d86be45ee54edff735e46856f64f14b6a8bb07" + "reference": "14e4517bd49130d6119228107eb21ae47ae120ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/92d86be45ee54edff735e46856f64f14b6a8bb07", - "reference": "92d86be45ee54edff735e46856f64f14b6a8bb07", + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/14e4517bd49130d6119228107eb21ae47ae120ab", + "reference": "14e4517bd49130d6119228107eb21ae47ae120ab", "shasum": "" }, "require": { "illuminate/routing": "^9|^10|^11", "illuminate/session": "^9|^10|^11", "illuminate/support": "^9|^10|^11", - "maximebf/debugbar": "~1.22.0", + "maximebf/debugbar": "~1.23.0", "php": "^8.0", "symfony/finder": "^6|^7" }, @@ -9146,7 +9094,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.13-dev" + "dev-master": "3.14-dev" }, "laravel": { "providers": [ @@ -9185,7 +9133,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-debugbar/issues", - "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.13.5" + "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.14.6" }, "funding": [ { @@ -9197,41 +9145,41 @@ "type": "github" } ], - "time": "2024-04-12T11:20:37+00:00" + "time": "2024-10-18T13:15:12+00:00" }, { "name": "barryvdh/laravel-ide-helper", - "version": "v3.1.0", + "version": "v3.2.0", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-ide-helper.git", - "reference": "591e7d665fbab8a3b682e451641706341573eb80" + "reference": "7956ccb4943f8532d008c17a1094b34bb6394d56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/591e7d665fbab8a3b682e451641706341573eb80", - "reference": "591e7d665fbab8a3b682e451641706341573eb80", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/7956ccb4943f8532d008c17a1094b34bb6394d56", + "reference": "7956ccb4943f8532d008c17a1094b34bb6394d56", "shasum": "" }, "require": { - "barryvdh/reflection-docblock": "^2.1.1", + "barryvdh/reflection-docblock": "^2.1.2", "composer/class-map-generator": "^1.0", "ext-json": "*", - "illuminate/console": "^10 || ^11", - "illuminate/database": "^10.38 || ^11", - "illuminate/filesystem": "^10 || ^11", - "illuminate/support": "^10 || ^11", + "illuminate/console": "^11.15", + "illuminate/database": "^11.15", + "illuminate/filesystem": "^11.15", + "illuminate/support": "^11.15", "nikic/php-parser": "^4.18 || ^5", - "php": "^8.1", + "php": "^8.2", "phpdocumentor/type-resolver": "^1.1.0" }, "require-dev": { "ext-pdo_sqlite": "*", "friendsofphp/php-cs-fixer": "^3", - "illuminate/config": "^9 || ^10 || ^11", - "illuminate/view": "^9 || ^10 || ^11", + "illuminate/config": "^11.15", + "illuminate/view": "^11.15", "mockery/mockery": "^1.4", - "orchestra/testbench": "^8 || ^9", + "orchestra/testbench": "^9.2", "phpunit/phpunit": "^10.5", "spatie/phpunit-snapshot-assertions": "^4 || ^5", "vimeo/psalm": "^5.4" @@ -9242,7 +9190,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.2-dev" }, "laravel": { "providers": [ @@ -9279,7 +9227,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-ide-helper/issues", - "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v3.1.0" + "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v3.2.0" }, "funding": [ { @@ -9291,20 +9239,20 @@ "type": "github" } ], - "time": "2024-07-12T14:20:51+00:00" + "time": "2024-10-17T16:43:13+00:00" }, { "name": "barryvdh/reflection-docblock", - "version": "v2.1.1", + "version": "v2.1.2", "source": { "type": "git", "url": "https://github.com/barryvdh/ReflectionDocBlock.git", - "reference": "e6811e927f0ecc37cc4deaa6627033150343e597" + "reference": "bba116ba9d5794fbf12e03ed40f10804e51acf76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/e6811e927f0ecc37cc4deaa6627033150343e597", - "reference": "e6811e927f0ecc37cc4deaa6627033150343e597", + "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/bba116ba9d5794fbf12e03ed40f10804e51acf76", + "reference": "bba116ba9d5794fbf12e03ed40f10804e51acf76", "shasum": "" }, "require": { @@ -9341,22 +9289,22 @@ } ], "support": { - "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.1.1" + "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.1.2" }, - "time": "2023-06-14T05:06:27+00:00" + "time": "2024-10-16T11:06:28+00:00" }, { "name": "composer/class-map-generator", - "version": "1.3.4", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/composer/class-map-generator.git", - "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3" + "reference": "98bbf6780e56e0fd2404fe4b82eb665a0f93b783" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3", - "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/98bbf6780e56e0fd2404fe4b82eb665a0f93b783", + "reference": "98bbf6780e56e0fd2404fe4b82eb665a0f93b783", "shasum": "" }, "require": { @@ -9369,8 +9317,8 @@ "phpstan/phpstan-deprecation-rules": "^1", "phpstan/phpstan-phpunit": "^1", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/filesystem": "^5.4 || ^6", - "symfony/phpunit-bridge": "^5" + "phpunit/phpunit": "^8", + "symfony/filesystem": "^5.4 || ^6" }, "type": "library", "extra": { @@ -9400,7 +9348,7 @@ ], "support": { "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.3.4" + "source": "https://github.com/composer/class-map-generator/tree/1.4.0" }, "funding": [ { @@ -9416,34 +9364,42 @@ "type": "tidelift" } ], - "time": "2024-06-12T14:13:04+00:00" + "time": "2024-10-03T18:14:00+00:00" }, { "name": "composer/pcre", - "version": "3.1.4", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "04229f163664973f68f38f6f73d917799168ef24" + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/04229f163664973f68f38f6f73d917799168ef24", - "reference": "04229f163664973f68f38f6f73d917799168ef24", + "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4", + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4", "shasum": "" }, "require": { "php": "^7.4 || ^8.0" }, + "conflict": { + "phpstan/phpstan": "<1.11.10" + }, "require-dev": { - "phpstan/phpstan": "^1.3", + "phpstan/phpstan": "^1.11.10", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" + "phpunit/phpunit": "^8 || ^9" }, "type": "library", "extra": { "branch-alias": { "dev-main": "3.x-dev" + }, + "phpstan": { + "includes": [ + "extension.neon" + ] } }, "autoload": { @@ -9471,7 +9427,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.4" + "source": "https://github.com/composer/pcre/tree/3.3.1" }, "funding": [ { @@ -9487,28 +9443,28 @@ "type": "tidelift" } ], - "time": "2024-05-27T13:40:54+00:00" + "time": "2024-08-27T18:44:43+00:00" }, { "name": "composer/semver", - "version": "3.4.0", + "version": "3.4.3", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", + "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" }, "type": "library", "extra": { @@ -9552,7 +9508,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.0" + "source": "https://github.com/composer/semver/tree/3.4.3" }, "funding": [ { @@ -9568,7 +9524,7 @@ "type": "tidelift" } ], - "time": "2023-08-31T09:50:34+00:00" + "time": "2024-09-19T14:15:21+00:00" }, { "name": "composer/xdebug-handler", @@ -9783,16 +9739,16 @@ }, { "name": "felixfbecker/language-server-protocol", - "version": "v1.5.2", + "version": "v1.5.3", "source": { "type": "git", "url": "https://github.com/felixfbecker/php-language-server-protocol.git", - "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842" + "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842", - "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9", + "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9", "shasum": "" }, "require": { @@ -9833,22 +9789,22 @@ ], "support": { "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", - "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2" + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3" }, - "time": "2022-03-02T22:36:06+00:00" + "time": "2024-04-30T00:40:11+00:00" }, { "name": "fidry/cpu-core-counter", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42" + "reference": "8520451a140d3f46ac33042715115e290cf5785f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/f92996c4d5c1a696a6a970e20f7c4216200fcc42", - "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f", + "reference": "8520451a140d3f46ac33042715115e290cf5785f", "shasum": "" }, "require": { @@ -9888,7 +9844,7 @@ ], "support": { "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/1.1.0" + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0" }, "funding": [ { @@ -9896,30 +9852,30 @@ "type": "github" } ], - "time": "2024-02-07T09:43:46+00:00" + "time": "2024-08-06T10:04:20+00:00" }, { "name": "filp/whoops", - "version": "2.15.4", + "version": "2.16.0", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546" + "reference": "befcdc0e5dce67252aa6322d82424be928214fa2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546", - "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546", + "url": "https://api.github.com/repos/filp/whoops/zipball/befcdc0e5dce67252aa6322d82424be928214fa2", + "reference": "befcdc0e5dce67252aa6322d82424be928214fa2", "shasum": "" }, "require": { - "php": "^5.5.9 || ^7.0 || ^8.0", + "php": "^7.1 || ^8.0", "psr/log": "^1.0.1 || ^2.0 || ^3.0" }, "require-dev": { - "mockery/mockery": "^0.9 || ^1.0", - "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3", - "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^4.0 || ^5.0" }, "suggest": { "symfony/var-dumper": "Pretty print complex values better with var-dumper available", @@ -9959,7 +9915,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.15.4" + "source": "https://github.com/filp/whoops/tree/2.16.0" }, "funding": [ { @@ -9967,7 +9923,7 @@ "type": "github" } ], - "time": "2023-11-03T12:00:00+00:00" + "time": "2024-09-25T12:00:00+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -10022,16 +9978,16 @@ }, { "name": "laravel/dusk", - "version": "v8.2.1", + "version": "v8.2.10", "source": { "type": "git", "url": "https://github.com/laravel/dusk.git", - "reference": "f2c0957aa4fbb4a78394e77b8caf969903f28050" + "reference": "fde2ae6c1b32d2f8dbdcff300bbd6e2ccffb1bb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/dusk/zipball/f2c0957aa4fbb4a78394e77b8caf969903f28050", - "reference": "f2c0957aa4fbb4a78394e77b8caf969903f28050", + "url": "https://api.github.com/repos/laravel/dusk/zipball/fde2ae6c1b32d2f8dbdcff300bbd6e2ccffb1bb4", + "reference": "fde2ae6c1b32d2f8dbdcff300bbd6e2ccffb1bb4", "shasum": "" }, "require": { @@ -10088,22 +10044,22 @@ ], "support": { "issues": "https://github.com/laravel/dusk/issues", - "source": "https://github.com/laravel/dusk/tree/v8.2.1" + "source": "https://github.com/laravel/dusk/tree/v8.2.10" }, - "time": "2024-07-08T06:42:12+00:00" + "time": "2024-10-22T13:58:17+00:00" }, { "name": "laravel/pint", - "version": "v1.16.2", + "version": "v1.18.1", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "51f1ba679a6afe0315621ad143d788bd7ded0eca" + "reference": "35c00c05ec43e6b46d295efc0f4386ceb30d50d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/51f1ba679a6afe0315621ad143d788bd7ded0eca", - "reference": "51f1ba679a6afe0315621ad143d788bd7ded0eca", + "url": "https://api.github.com/repos/laravel/pint/zipball/35c00c05ec43e6b46d295efc0f4386ceb30d50d9", + "reference": "35c00c05ec43e6b46d295efc0f4386ceb30d50d9", "shasum": "" }, "require": { @@ -10114,13 +10070,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.64.0", + "illuminate/view": "^10.48.20", + "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.1" }, "bin": [ "builds/pint" @@ -10156,20 +10112,20 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2024-07-09T15:58:08+00:00" + "time": "2024-09-24T17:22:50+00:00" }, { "name": "laravel/sail", - "version": "v1.30.2", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "f5a9699a1001e15de1aa5e7cb5c9f50a3f63f887" + "reference": "5d385f2e698f0f774cdead82aff5d989fb95309b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/f5a9699a1001e15de1aa5e7cb5c9f50a3f63f887", - "reference": "f5a9699a1001e15de1aa5e7cb5c9f50a3f63f887", + "url": "https://api.github.com/repos/laravel/sail/zipball/5d385f2e698f0f774cdead82aff5d989fb95309b", + "reference": "5d385f2e698f0f774cdead82aff5d989fb95309b", "shasum": "" }, "require": { @@ -10219,20 +10175,20 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2024-07-05T16:01:51+00:00" + "time": "2024-10-21T17:13:38+00:00" }, { "name": "maximebf/debugbar", - "version": "v1.22.3", + "version": "v1.23.2", "source": { "type": "git", "url": "https://github.com/maximebf/php-debugbar.git", - "reference": "7aa9a27a0b1158ed5ad4e7175e8d3aee9a818b96" + "reference": "689720d724c771ac4add859056744b7b3f2406da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/7aa9a27a0b1158ed5ad4e7175e8d3aee9a818b96", - "reference": "7aa9a27a0b1158ed5ad4e7175e8d3aee9a818b96", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/689720d724c771ac4add859056744b7b3f2406da", + "reference": "689720d724c771ac4add859056744b7b3f2406da", "shasum": "" }, "require": { @@ -10254,7 +10210,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.22-dev" + "dev-master": "1.23-dev" } }, "autoload": { @@ -10285,9 +10241,9 @@ ], "support": { "issues": "https://github.com/maximebf/php-debugbar/issues", - "source": "https://github.com/maximebf/php-debugbar/tree/v1.22.3" + "source": "https://github.com/maximebf/php-debugbar/tree/v1.23.2" }, - "time": "2024-04-03T19:39:26+00:00" + "time": "2024-09-16T11:23:09+00:00" }, { "name": "mockery/mockery", @@ -10374,16 +10330,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.11.1", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", "shasum": "" }, "require": { @@ -10391,11 +10347,12 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", @@ -10421,7 +10378,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" }, "funding": [ { @@ -10429,20 +10386,20 @@ "type": "tidelift" } ], - "time": "2023-03-08T13:26:56+00:00" + "time": "2024-06-12T14:39:25+00:00" }, { "name": "netresearch/jsonmapper", - "version": "v4.4.1", + "version": "v4.5.0", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0" + "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/132c75c7dd83e45353ebb9c6c9f591952995bbf0", - "reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8e76efb98ee8b6afc54687045e1b8dba55ac76e5", + "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5", "shasum": "" }, "require": { @@ -10478,29 +10435,29 @@ "support": { "email": "cweiske@cweiske.de", "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.4.1" + "source": "https://github.com/cweiske/jsonmapper/tree/v4.5.0" }, - "time": "2024-01-31T06:18:54+00:00" + "time": "2024-09-08T10:13:13+00:00" }, { "name": "nunomaduro/collision", - "version": "v8.3.0", + "version": "v8.5.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "b49f5b2891ce52726adfd162841c69d4e4c84229" + "reference": "f5c101b929c958e849a633283adff296ed5f38f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/b49f5b2891ce52726adfd162841c69d4e4c84229", - "reference": "b49f5b2891ce52726adfd162841c69d4e4c84229", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/f5c101b929c958e849a633283adff296ed5f38f5", + "reference": "f5c101b929c958e849a633283adff296ed5f38f5", "shasum": "" }, "require": { - "filp/whoops": "^2.15.4", - "nunomaduro/termwind": "^2.0.1", + "filp/whoops": "^2.16.0", + "nunomaduro/termwind": "^2.1.0", "php": "^8.2.0", - "symfony/console": "^7.1.2" + "symfony/console": "^7.1.5" }, "conflict": { "laravel/framework": "<11.0.0 || >=12.0.0", @@ -10508,14 +10465,14 @@ }, "require-dev": { "larastan/larastan": "^2.9.8", - "laravel/framework": "^11.16.0", - "laravel/pint": "^1.16.2", - "laravel/sail": "^1.30.2", - "laravel/sanctum": "^4.0.2", - "laravel/tinker": "^2.9.0", - "orchestra/testbench-core": "^9.2.1", - "pestphp/pest": "^2.34.9 || ^3.0.0", - "sebastian/environment": "^6.1.0 || ^7.0.0" + "laravel/framework": "^11.28.0", + "laravel/pint": "^1.18.1", + "laravel/sail": "^1.36.0", + "laravel/sanctum": "^4.0.3", + "laravel/tinker": "^2.10.0", + "orchestra/testbench-core": "^9.5.3", + "pestphp/pest": "^2.36.0 || ^3.4.0", + "sebastian/environment": "^6.1.0 || ^7.2.0" }, "type": "library", "extra": { @@ -10577,43 +10534,43 @@ "type": "patreon" } ], - "time": "2024-07-16T22:41:01+00:00" + "time": "2024-10-15T16:06:32+00:00" }, { "name": "openai-php/client", - "version": "v0.10.1", + "version": "v0.10.2", "source": { "type": "git", "url": "https://github.com/openai-php/client.git", - "reference": "8b63d27a2f009a7ce4714fda77769e93d883c8da" + "reference": "efa92628ba9fb56f7877c0d616f5221c4a447856" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/openai-php/client/zipball/8b63d27a2f009a7ce4714fda77769e93d883c8da", - "reference": "8b63d27a2f009a7ce4714fda77769e93d883c8da", + "url": "https://api.github.com/repos/openai-php/client/zipball/efa92628ba9fb56f7877c0d616f5221c4a447856", + "reference": "efa92628ba9fb56f7877c0d616f5221c4a447856", "shasum": "" }, "require": { "php": "^8.1.0", - "php-http/discovery": "^1.19.4", - "php-http/multipart-stream-builder": "^1.3.0", + "php-http/discovery": "^1.20.0", + "php-http/multipart-stream-builder": "^1.4.2", "psr/http-client": "^1.0.3", "psr/http-client-implementation": "^1.0.1", "psr/http-factory-implementation": "*", "psr/http-message": "^1.1.0|^2.0.0" }, "require-dev": { - "guzzlehttp/guzzle": "^7.8.1", - "guzzlehttp/psr7": "^2.6.2", - "laravel/pint": "^1.16.0", + "guzzlehttp/guzzle": "^7.9.2", + "guzzlehttp/psr7": "^2.7.0", + "laravel/pint": "^1.18.1", "mockery/mockery": "^1.6.12", - "nunomaduro/collision": "^7.10.0", - "pestphp/pest": "^2.34.7", - "pestphp/pest-plugin-arch": "^2.7", - "pestphp/pest-plugin-type-coverage": "^2.8.2", - "phpstan/phpstan": "^1.11.2", - "rector/rector": "^1.1.0", - "symfony/var-dumper": "^6.4.7" + "nunomaduro/collision": "^7.11.0|^8.5.0", + "pestphp/pest": "^2.36.0|^3.4.1", + "pestphp/pest-plugin-arch": "^2.7|^3.0", + "pestphp/pest-plugin-type-coverage": "^2.8.7|^3.1.0", + "phpstan/phpstan": "^1.12.6", + "rector/rector": "^1.2.7", + "symfony/var-dumper": "^6.4.11|^7.1.5" }, "type": "library", "autoload": { @@ -10653,7 +10610,7 @@ ], "support": { "issues": "https://github.com/openai-php/client/issues", - "source": "https://github.com/openai-php/client/tree/v0.10.1" + "source": "https://github.com/openai-php/client/tree/v0.10.2" }, "funding": [ { @@ -10669,20 +10626,20 @@ "type": "github" } ], - "time": "2024-06-06T20:27:51+00:00" + "time": "2024-10-17T20:28:25+00:00" }, { "name": "orchestra/testbench-core", - "version": "v9.1.4", + "version": "v9.5.3", "source": { "type": "git", "url": "https://github.com/orchestral/testbench-core.git", - "reference": "8738ddaf1fc657053bc466b81a136b60b7b8256f" + "reference": "9a5754622881f601951427a94c04c50e448cbf09" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/8738ddaf1fc657053bc466b81a136b60b7b8256f", - "reference": "8738ddaf1fc657053bc466b81a136b60b7b8256f", + "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/9a5754622881f601951427a94c04c50e448cbf09", + "reference": "9a5754622881f601951427a94c04c50e448cbf09", "shasum": "" }, "require": { @@ -10692,14 +10649,15 @@ }, "conflict": { "brianium/paratest": "<7.3.0 || >=8.0.0", - "laravel/framework": "<11.1.0 || >=12.0.0", + "laravel/framework": "<11.11.0 || >=12.0.0", + "laravel/serializable-closure": "<1.3.0 || >=2.0.0", "nunomaduro/collision": "<8.0.0 || >=9.0.0", - "phpunit/phpunit": "<10.5.0 || 11.0.0 || >=11.2.0" + "phpunit/phpunit": "<10.5.0 || 11.0.0 || >=11.5.0" }, "require-dev": { "fakerphp/faker": "^1.23", - "laravel/framework": "^11.1", - "laravel/pint": "^1.6", + "laravel/framework": "^11.11", + "laravel/pint": "^1.17", "mockery/mockery": "^1.6", "phpstan/phpstan": "^1.11", "phpunit/phpunit": "^10.5 || ^11.0.1", @@ -10712,7 +10670,7 @@ "brianium/paratest": "Allow using parallel tresting (^7.3).", "ext-pcntl": "Required to use all features of the console signal trapping.", "fakerphp/faker": "Allow using Faker for testing (^1.23).", - "laravel/framework": "Required for testing (^11.1).", + "laravel/framework": "Required for testing (^11.11).", "mockery/mockery": "Allow using Mockery for testing (^1.6).", "nunomaduro/collision": "Allow using Laravel style tests output and parallel testing (^8.0).", "orchestra/testbench-dusk": "Allow using Laravel Dusk for testing (^9.0).", @@ -10758,7 +10716,7 @@ "issues": "https://github.com/orchestral/testbench/issues", "source": "https://github.com/orchestral/testbench-core" }, - "time": "2024-06-06T07:15:36+00:00" + "time": "2024-10-06T11:20:27+00:00" }, { "name": "phar-io/manifest", @@ -10935,16 +10893,16 @@ }, { "name": "php-di/php-di", - "version": "7.0.6", + "version": "7.0.7", "source": { "type": "git", "url": "https://github.com/PHP-DI/PHP-DI.git", - "reference": "8097948a89f6ec782839b3e958432f427cac37fd" + "reference": "e87435e3c0e8f22977adc5af0d5cdcc467e15cf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/8097948a89f6ec782839b3e958432f427cac37fd", - "reference": "8097948a89f6ec782839b3e958432f427cac37fd", + "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/e87435e3c0e8f22977adc5af0d5cdcc467e15cf1", + "reference": "e87435e3c0e8f22977adc5af0d5cdcc467e15cf1", "shasum": "" }, "require": { @@ -10992,7 +10950,7 @@ ], "support": { "issues": "https://github.com/PHP-DI/PHP-DI/issues", - "source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.6" + "source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.7" }, "funding": [ { @@ -11004,20 +10962,20 @@ "type": "tidelift" } ], - "time": "2023-11-02T10:04:50+00:00" + "time": "2024-07-21T15:55:45+00:00" }, { "name": "php-http/discovery", - "version": "1.19.4", + "version": "1.20.0", "source": { "type": "git", "url": "https://github.com/php-http/discovery.git", - "reference": "0700efda8d7526335132360167315fdab3aeb599" + "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/discovery/zipball/0700efda8d7526335132360167315fdab3aeb599", - "reference": "0700efda8d7526335132360167315fdab3aeb599", + "url": "https://api.github.com/repos/php-http/discovery/zipball/82fe4c73ef3363caed49ff8dd1539ba06044910d", + "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d", "shasum": "" }, "require": { @@ -11081,22 +11039,22 @@ ], "support": { "issues": "https://github.com/php-http/discovery/issues", - "source": "https://github.com/php-http/discovery/tree/1.19.4" + "source": "https://github.com/php-http/discovery/tree/1.20.0" }, - "time": "2024-03-29T13:00:05+00:00" + "time": "2024-10-02T11:20:13+00:00" }, { "name": "php-http/multipart-stream-builder", - "version": "1.3.1", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/php-http/multipart-stream-builder.git", - "reference": "ed56da23b95949ae4747378bed8a5b61a2fdae24" + "reference": "10086e6de6f53489cca5ecc45b6f468604d3460e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/multipart-stream-builder/zipball/ed56da23b95949ae4747378bed8a5b61a2fdae24", - "reference": "ed56da23b95949ae4747378bed8a5b61a2fdae24", + "url": "https://api.github.com/repos/php-http/multipart-stream-builder/zipball/10086e6de6f53489cca5ecc45b6f468604d3460e", + "reference": "10086e6de6f53489cca5ecc45b6f468604d3460e", "shasum": "" }, "require": { @@ -11137,9 +11095,9 @@ ], "support": { "issues": "https://github.com/php-http/multipart-stream-builder/issues", - "source": "https://github.com/php-http/multipart-stream-builder/tree/1.3.1" + "source": "https://github.com/php-http/multipart-stream-builder/tree/1.4.2" }, - "time": "2024-06-10T14:51:55+00:00" + "time": "2024-09-04T13:22:54+00:00" }, { "name": "php-webdriver/webdriver", @@ -11209,16 +11167,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.11.7", + "version": "1.12.7", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "52d2bbfdcae7f895915629e4694e9497d0f8e28d" + "reference": "dc2b9976bd8b0f84ec9b0e50cc35378551de7af0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/52d2bbfdcae7f895915629e4694e9497d0f8e28d", - "reference": "52d2bbfdcae7f895915629e4694e9497d0f8e28d", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/dc2b9976bd8b0f84ec9b0e50cc35378551de7af0", + "reference": "dc2b9976bd8b0f84ec9b0e50cc35378551de7af0", "shasum": "" }, "require": { @@ -11263,36 +11221,36 @@ "type": "github" } ], - "time": "2024-07-06T11:17:41+00:00" + "time": "2024-10-18T11:12:07+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "10.1.14", + "version": "10.1.16", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b" + "reference": "7e308268858ed6baedc8704a304727d20bc07c77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", - "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7e308268858ed6baedc8704a304727d20bc07c77", + "reference": "7e308268858ed6baedc8704a304727d20bc07c77", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.18 || ^5.0", + "nikic/php-parser": "^4.19.1 || ^5.1.0", "php": ">=8.1", - "phpunit/php-file-iterator": "^4.0", - "phpunit/php-text-template": "^3.0", - "sebastian/code-unit-reverse-lookup": "^3.0", - "sebastian/complexity": "^3.0", - "sebastian/environment": "^6.0", - "sebastian/lines-of-code": "^2.0", - "sebastian/version": "^4.0", - "theseer/tokenizer": "^1.2.0" + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-text-template": "^3.0.1", + "sebastian/code-unit-reverse-lookup": "^3.0.0", + "sebastian/complexity": "^3.2.0", + "sebastian/environment": "^6.1.0", + "sebastian/lines-of-code": "^2.0.2", + "sebastian/version": "^4.0.1", + "theseer/tokenizer": "^1.2.3" }, "require-dev": { "phpunit/phpunit": "^10.1" @@ -11304,7 +11262,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.1-dev" + "dev-main": "10.1.x-dev" } }, "autoload": { @@ -11333,7 +11291,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/10.1.14" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.16" }, "funding": [ { @@ -11341,7 +11299,7 @@ "type": "github" } ], - "time": "2024-03-12T15:33:41+00:00" + "time": "2024-08-22T04:31:57+00:00" }, { "name": "phpunit/php-file-iterator", @@ -11588,16 +11546,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.20", + "version": "10.5.37", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3" + "reference": "c7cffa0efa2b70c22366523e6d804c9419eb2400" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3", - "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c7cffa0efa2b70c22366523e6d804c9419eb2400", + "reference": "c7cffa0efa2b70c22366523e6d804c9419eb2400", "shasum": "" }, "require": { @@ -11607,26 +11565,26 @@ "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.1", - "phpunit/php-code-coverage": "^10.1.5", - "phpunit/php-file-iterator": "^4.0", - "phpunit/php-invoker": "^4.0", - "phpunit/php-text-template": "^3.0", - "phpunit/php-timer": "^6.0", - "sebastian/cli-parser": "^2.0", - "sebastian/code-unit": "^2.0", - "sebastian/comparator": "^5.0", - "sebastian/diff": "^5.0", - "sebastian/environment": "^6.0", - "sebastian/exporter": "^5.1", - "sebastian/global-state": "^6.0.1", - "sebastian/object-enumerator": "^5.0", - "sebastian/recursion-context": "^5.0", - "sebastian/type": "^4.0", - "sebastian/version": "^4.0" + "phpunit/php-code-coverage": "^10.1.16", + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-invoker": "^4.0.0", + "phpunit/php-text-template": "^3.0.1", + "phpunit/php-timer": "^6.0.0", + "sebastian/cli-parser": "^2.0.1", + "sebastian/code-unit": "^2.0.0", + "sebastian/comparator": "^5.0.3", + "sebastian/diff": "^5.1.1", + "sebastian/environment": "^6.1.0", + "sebastian/exporter": "^5.1.2", + "sebastian/global-state": "^6.0.2", + "sebastian/object-enumerator": "^5.0.0", + "sebastian/recursion-context": "^5.0.0", + "sebastian/type": "^4.0.0", + "sebastian/version": "^4.0.1" }, "suggest": { "ext-soap": "To be able to generate mocks based on WSDL files" @@ -11669,7 +11627,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.20" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.37" }, "funding": [ { @@ -11685,7 +11643,7 @@ "type": "tidelift" } ], - "time": "2024-04-24T06:32:35+00:00" + "time": "2024-10-19T13:03:41+00:00" }, { "name": "psalm/plugin-laravel", @@ -11761,21 +11719,21 @@ }, { "name": "rector/rector", - "version": "1.2.1", + "version": "1.2.8", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "b38a3eed3ce2046f40c001255e2fec9d2746bacf" + "reference": "05755bf43617449c08ee8e50fb840c85ad3b1240" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/b38a3eed3ce2046f40c001255e2fec9d2746bacf", - "reference": "b38a3eed3ce2046f40c001255e2fec9d2746bacf", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/05755bf43617449c08ee8e50fb840c85ad3b1240", + "reference": "05755bf43617449c08ee8e50fb840c85ad3b1240", "shasum": "" }, "require": { "php": "^7.2|^8.0", - "phpstan/phpstan": "^1.11" + "phpstan/phpstan": "^1.12.5" }, "conflict": { "rector/rector-doctrine": "*", @@ -11808,7 +11766,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/1.2.1" + "source": "https://github.com/rectorphp/rector/tree/1.2.8" }, "funding": [ { @@ -11816,7 +11774,7 @@ "type": "github" } ], - "time": "2024-07-16T00:22:54+00:00" + "time": "2024-10-18T11:54:27+00:00" }, { "name": "sebastian/cli-parser", @@ -11988,16 +11946,16 @@ }, { "name": "sebastian/comparator", - "version": "5.0.1", + "version": "5.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2db5010a484d53ebf536087a70b4a5423c102372" + "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372", - "reference": "2db5010a484d53ebf536087a70b4a5423c102372", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", + "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", "shasum": "" }, "require": { @@ -12008,7 +11966,7 @@ "sebastian/exporter": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^10.3" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { @@ -12053,7 +12011,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1" + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.3" }, "funding": [ { @@ -12061,7 +12019,7 @@ "type": "github" } ], - "time": "2023-08-14T13:18:12+00:00" + "time": "2024-10-18T14:56:07+00:00" }, { "name": "sebastian/complexity", @@ -13026,16 +12984,16 @@ }, { "name": "symfony/filesystem", - "version": "v7.1.2", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "92a91985250c251de9b947a14bb2c9390b1a562c" + "reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/92a91985250c251de9b947a14bb2c9390b1a562c", - "reference": "92a91985250c251de9b947a14bb2c9390b1a562c", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/61fe0566189bf32e8cfee78335d8776f64a66f5a", + "reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a", "shasum": "" }, "require": { @@ -13072,7 +13030,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.1.2" + "source": "https://github.com/symfony/filesystem/tree/v7.1.5" }, "funding": [ { @@ -13088,24 +13046,24 @@ "type": "tidelift" } ], - "time": "2024-06-28T10:03:55+00:00" + "time": "2024-09-17T09:16:35+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "c027e6a3c6aee334663ec21f5852e89738abc805" + "reference": "48becf00c920479ca2e910c22a5a39e5d47ca956" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/c027e6a3c6aee334663ec21f5852e89738abc805", - "reference": "c027e6a3c6aee334663ec21f5852e89738abc805", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/48becf00c920479ca2e910c22a5a39e5d47ca956", + "reference": "48becf00c920479ca2e910c22a5a39e5d47ca956", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-iconv": "*" @@ -13152,7 +13110,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.31.0" }, "funding": [ { @@ -13168,7 +13126,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/stopwatch", @@ -13234,16 +13192,16 @@ }, { "name": "symfony/yaml", - "version": "v7.1.1", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "fa34c77015aa6720469db7003567b9f772492bf2" + "reference": "4e561c316e135e053bd758bf3b3eb291d9919de4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/fa34c77015aa6720469db7003567b9f772492bf2", - "reference": "fa34c77015aa6720469db7003567b9f772492bf2", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4e561c316e135e053bd758bf3b3eb291d9919de4", + "reference": "4e561c316e135e053bd758bf3b3eb291d9919de4", "shasum": "" }, "require": { @@ -13285,7 +13243,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.1.1" + "source": "https://github.com/symfony/yaml/tree/v7.1.5" }, "funding": [ { @@ -13301,7 +13259,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-17T12:49:58+00:00" }, { "name": "theseer/tokenizer", @@ -13355,16 +13313,16 @@ }, { "name": "vimeo/psalm", - "version": "5.25.0", + "version": "5.26.1", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "01a8eb06b9e9cc6cfb6a320bf9fb14331919d505" + "reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/01a8eb06b9e9cc6cfb6a320bf9fb14331919d505", - "reference": "01a8eb06b9e9cc6cfb6a320bf9fb14331919d505", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/d747f6500b38ac4f7dfc5edbcae6e4b637d7add0", + "reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0", "shasum": "" }, "require": { @@ -13385,7 +13343,7 @@ "felixfbecker/language-server-protocol": "^1.5.2", "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1 || ^1.0.0", "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "nikic/php-parser": "^4.16", + "nikic/php-parser": "^4.17", "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", "sebastian/diff": "^4.0 || ^5.0 || ^6.0", "spatie/array-to-xml": "^2.17.0 || ^3.0", @@ -13461,20 +13419,20 @@ "issues": "https://github.com/vimeo/psalm/issues", "source": "https://github.com/vimeo/psalm" }, - "time": "2024-06-16T15:08:35+00:00" + "time": "2024-09-08T18:53:08+00:00" }, { "name": "zbateson/mail-mime-parser", - "version": "3.0.1", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/zbateson/mail-mime-parser.git", - "reference": "6ade63b0a43047935791d7977e22717a68cc388b" + "reference": "e0d4423fe27850c9dd301190767dbc421acc2f19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/6ade63b0a43047935791d7977e22717a68cc388b", - "reference": "6ade63b0a43047935791d7977e22717a68cc388b", + "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/e0d4423fe27850c9dd301190767dbc421acc2f19", + "reference": "e0d4423fe27850c9dd301190767dbc421acc2f19", "shasum": "" }, "require": { @@ -13537,7 +13495,7 @@ "type": "github" } ], - "time": "2024-04-29T21:53:01+00:00" + "time": "2024-08-10T18:44:09+00:00" }, { "name": "zbateson/mb-wrapper", diff --git a/package-lock.json b/package-lock.json index 3d215865..73db94a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,122 +25,47 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@11ty/is-land/-/is-land-4.0.0.tgz", "integrity": "sha512-RxbjF2+FzSu3rerHrWLRsvsPX2YM47RwXpdWCCzLhwRSsz5sJe9TnK7mphEld1gZnp2GeD5ByvhqjIc4CqidsQ==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/11ty" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.9.tgz", + "integrity": "sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/highlight": "^7.25.9", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.9.tgz", + "integrity": "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.25.9", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -151,6 +76,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -163,6 +89,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -177,6 +104,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -185,13 +113,15 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -201,6 +131,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -210,6 +141,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -218,9 +150,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz", - "integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.2.tgz", + "integrity": "sha512-6tC/MnlEvs5suR4Ahef4YlBccJDHZuxGsAlxXmybWjZ5jPxlzLSMlRZ9mVHSRvlD+CmtE7+hJ+UQbfXrws/rUQ==", "dev": true, "funding": [ { @@ -232,17 +164,18 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { - "node": "^14 || ^16 || >=18" + "node": ">=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.4.1" + "@csstools/css-tokenizer": "^3.0.2" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz", - "integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.2.tgz", + "integrity": "sha512-IuTRcD53WHsXPCZ6W7ubfGqReTJ9Ra0yRRFmXYP/Re8hFYYfoIYIK4080X5luslVLWimhIeFq0hj09urVMQzTw==", "dev": true, "funding": [ { @@ -254,14 +187,15 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { - "node": "^14 || ^16 || >=18" + "node": ">=18" } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz", - "integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-3.0.1.tgz", + "integrity": "sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==", "dev": true, "funding": [ { @@ -273,18 +207,19 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { - "node": "^14 || ^16 || >=18" + "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.7.1", - "@csstools/css-tokenizer": "^2.4.1" + "@csstools/css-parser-algorithms": "^3.0.1", + "@csstools/css-tokenizer": "^3.0.1" } }, "node_modules/@csstools/selector-specificity": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz", - "integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-4.0.0.tgz", + "integrity": "sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ==", "dev": true, "funding": [ { @@ -296,11 +231,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { - "node": "^14 || ^16 || >=18" + "node": ">=18" }, "peerDependencies": { - "postcss-selector-parser": "^6.0.13" + "postcss-selector-parser": "^6.1.0" } }, "node_modules/@dual-bundle/import-meta-resolve": { @@ -308,6 +244,7 @@ "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", "integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -318,6 +255,7 @@ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -328,20 +266,35 @@ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", + "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/config-array": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.0.tgz", - "integrity": "sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.4", "debug": "^4.3.1", @@ -351,11 +304,46 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/core": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz", + "integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -374,11 +362,23 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "14.0.0", "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -386,11 +386,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/js": { - "version": "9.7.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.7.0.tgz", - "integrity": "sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==", + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.13.0.tgz", + "integrity": "sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==", + "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -400,15 +414,54 @@ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.1.tgz", + "integrity": "sha512-HFZ4Mp26nbWk9d/BpvP0YNL6W4UoZF0VFcTw/aPPA8RpOxeFQgK+ClABGgAUXs9Y/RGX/l1vOmrqz1MQt9MNuw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz", + "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.5", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.5.tgz", + "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.0", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -418,10 +471,11 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", - "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -435,6 +489,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -448,6 +503,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -457,6 +513,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -466,62 +523,15 @@ } }, "node_modules/@stylistic/eslint-plugin": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.3.0.tgz", - "integrity": "sha512-rtiz6u5gRyyEZp36FcF1/gHJbsbT3qAgXZ1qkad6Nr/xJ9wrSJkiSFFQhpYVTIZ7FJNRJurEcumZDCwN9dEI4g==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.9.0.tgz", + "integrity": "sha512-OrDyFAYjBT61122MIY1a3SfEgy3YCMgt2vL4eoPmvTwDBwyQhAXurxNQznlRD/jESNfYWfID8Ej+31LljvF7Xg==", "dev": true, + "license": "MIT", "dependencies": { - "@stylistic/eslint-plugin-js": "2.3.0", - "@stylistic/eslint-plugin-jsx": "2.3.0", - "@stylistic/eslint-plugin-plus": "2.3.0", - "@stylistic/eslint-plugin-ts": "2.3.0", - "@types/eslint": "^8.56.10" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "peerDependencies": { - "eslint": ">=8.40.0" - } - }, - "node_modules/@stylistic/eslint-plugin-js": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-2.3.0.tgz", - "integrity": "sha512-lQwoiYb0Fs6Yc5QS3uT8+T9CPKK2Eoxc3H8EnYJgM26v/DgtW+1lvy2WNgyBflU+ThShZaHm3a6CdD9QeKx23w==", - "dev": true, - "dependencies": { - "@types/eslint": "^8.56.10", - "acorn": "^8.11.3", - "eslint-visitor-keys": "^4.0.0", - "espree": "^10.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "peerDependencies": { - "eslint": ">=8.40.0" - } - }, - "node_modules/@stylistic/eslint-plugin-js/node_modules/eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@stylistic/eslint-plugin-jsx": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-2.3.0.tgz", - "integrity": "sha512-tsQ0IEKB195H6X9A4iUSgLLLKBc8gUBWkBIU8tp1/3g2l8stu+PtMQVV/VmK1+3bem5FJCyvfcZIQ/WF1fsizA==", - "dev": true, - "dependencies": { - "@stylistic/eslint-plugin-js": "^2.3.0", - "@types/eslint": "^8.56.10", + "@typescript-eslint/utils": "^8.8.0", + "eslint-visitor-keys": "^4.1.0", + "espree": "^10.2.0", "estraverse": "^5.3.0", "picomatch": "^4.0.2" }, @@ -532,125 +542,32 @@ "eslint": ">=8.40.0" } }, - "node_modules/@stylistic/eslint-plugin-jsx/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/@stylistic/eslint-plugin-plus": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-plus/-/eslint-plugin-plus-2.3.0.tgz", - "integrity": "sha512-xboPWGUU5yaPlR+WR57GwXEuY4PSlPqA0C3IdNA/+1o2MuBi95XgDJcZiJ9N+aXsqBXAPIpFFb+WQ7QEHo4f7g==", - "dev": true, - "dependencies": { - "@types/eslint": "^8.56.10", - "@typescript-eslint/utils": "^7.12.0" - }, - "peerDependencies": { - "eslint": "*" - } - }, - "node_modules/@stylistic/eslint-plugin-plus/node_modules/@typescript-eslint/utils": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.14.1.tgz", - "integrity": "sha512-CMmVVELns3nak3cpJhZosDkm63n+DwBlDX8g0k4QUa9BMnF+lH2lr3d130M1Zt1xxmB3LLk3NV7KQCq86ZBBhQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.14.1", - "@typescript-eslint/types": "7.14.1", - "@typescript-eslint/typescript-estree": "7.14.1" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/@stylistic/eslint-plugin-ts": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.3.0.tgz", - "integrity": "sha512-wqOR38/uz/0XPnHX68ftp8sNMSAqnYGjovOTN7w00xnjS6Lxr3Sk7q6AaxWWqbMvOj7V2fQiMC5HWAbTruJsCg==", - "dev": true, - "dependencies": { - "@stylistic/eslint-plugin-js": "2.3.0", - "@types/eslint": "^8.56.10", - "@typescript-eslint/utils": "^7.12.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "peerDependencies": { - "eslint": ">=8.40.0" - } - }, - "node_modules/@stylistic/eslint-plugin-ts/node_modules/@typescript-eslint/utils": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.14.1.tgz", - "integrity": "sha512-CMmVVELns3nak3cpJhZosDkm63n+DwBlDX8g0k4QUa9BMnF+lH2lr3d130M1Zt1xxmB3LLk3NV7KQCq86ZBBhQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.14.1", - "@typescript-eslint/types": "7.14.1", - "@typescript-eslint/typescript-estree": "7.14.1" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/@types/eslint": { - "version": "8.56.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", - "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.14.1.tgz", - "integrity": "sha512-gPrFSsoYcsffYXTOZ+hT7fyJr95rdVe4kGVX1ps/dJ+DfmlnjFN/GcMxXcVkeHDKqsq6uAcVaQaIi3cFffmAbA==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.11.0.tgz", + "integrity": "sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.14.1", - "@typescript-eslint/visitor-keys": "7.14.1" + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/visitor-keys": "8.11.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -658,12 +575,13 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.14.1.tgz", - "integrity": "sha512-mL7zNEOQybo5R3AavY+Am7KLv8BorIv7HCYS5rKoNZKQD9tsfGUpO4KdAn3sSUvTiS4PQkr2+K0KJbxj8H9NDg==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.11.0.tgz", + "integrity": "sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==", "dev": true, + "license": "MIT", "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -671,22 +589,23 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.14.1.tgz", - "integrity": "sha512-k5d0VuxViE2ulIO6FbxxSZaxqDVUyMbXcidC8rHvii0I56XZPv8cq+EhMns+d/EVIL41sMXqRbK3D10Oza1bbA==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.11.0.tgz", + "integrity": "sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "7.14.1", - "@typescript-eslint/visitor-keys": "7.14.1", + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/visitor-keys": "8.11.0", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -698,57 +617,72 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/@typescript-eslint/utils": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.11.0.tgz", + "integrity": "sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==", "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.11.0", + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/typescript-estree": "8.11.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.14.1.tgz", - "integrity": "sha512-Crb+F75U1JAEtBeQGxSKwI60hZmmzaqA3z9sYsVm8X7W5cwLEm5bRe0/uXS6+MR/y8CVpKSR/ontIAIEPFcEkA==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz", + "integrity": "sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.14.1", + "@typescript-eslint/types": "8.11.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@zachleat/snow-fall": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@zachleat/snow-fall/-/snow-fall-1.0.2.tgz", - "integrity": "sha512-nyNeliowryq+roSMktyV3o14DduSuU4BvBzruVSPV6e8U8Eid2zNzSj1AzCQByPId7Q4MrIP2QWL2UHeHGfmcA==" + "integrity": "sha512-nyNeliowryq+roSMktyV3o14DduSuU4BvBzruVSPV6e8U8Eid2zNzSj1AzCQByPId7Q4MrIP2QWL2UHeHGfmcA==", + "license": "MIT" }, "node_modules/acorn": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", - "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", + "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -761,6 +695,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -770,6 +705,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -786,6 +722,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -795,6 +732,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -809,13 +747,15 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -825,6 +765,7 @@ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -833,16 +774,17 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -850,6 +792,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -862,6 +805,7 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -871,6 +815,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -887,6 +832,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -898,25 +844,29 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cosmiconfig": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, + "license": "MIT", "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", @@ -943,6 +893,7 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -953,21 +904,23 @@ } }, "node_modules/css-functions-list": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz", - "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz", + "integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12 || >=16" } }, "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.0.0.tgz", + "integrity": "sha512-o88DVQ6GzsABn1+6+zo2ct801dBO5OASVyxbbvA2W20ue2puSh/VOuqUj90eUeMSX/xqGqBmOKiRQN7tJOuBXw==", "dev": true, + "license": "MIT", "dependencies": { - "mdn-data": "2.0.30", + "mdn-data": "2.10.0", "source-map-js": "^1.0.1" }, "engines": { @@ -979,6 +932,7 @@ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -987,12 +941,13 @@ } }, "node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1007,13 +962,15 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -1025,13 +982,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -1041,6 +1000,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } @@ -1050,6 +1010,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -1058,27 +1019,32 @@ } }, "node_modules/eslint": { - "version": "9.7.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.7.0.tgz", - "integrity": "sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==", + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.13.0.tgz", + "integrity": "sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.11.0", - "@eslint/config-array": "^0.17.0", + "@eslint/config-array": "^0.18.0", + "@eslint/core": "^0.7.0", "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.7.0", + "@eslint/js": "9.13.0", + "@eslint/plugin-kit": "^0.2.0", + "@humanfs/node": "^0.16.5", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.3.0", - "@nodelib/fs.walk": "^1.2.8", + "@humanwhocodes/retry": "^0.3.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.0.2", - "eslint-visitor-keys": "^4.0.0", - "espree": "^10.1.0", + "eslint-scope": "^8.1.0", + "eslint-visitor-keys": "^4.1.0", + "espree": "^10.2.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -1088,14 +1054,11 @@ "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", "text-table": "^0.2.0" }, "bin": { @@ -1106,13 +1069,22 @@ }, "funding": { "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-scope": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", - "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz", + "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -1125,22 +1097,11 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -1148,15 +1109,40 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/espree": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", - "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz", + "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.0.0" + "eslint-visitor-keys": "^4.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1165,23 +1151,12 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -1194,6 +1169,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -1206,6 +1182,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -1215,6 +1192,7 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -1223,13 +1201,15 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -1246,6 +1226,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -1257,28 +1238,39 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.9.1" } }, "node_modules/fastq": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", - "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -1288,6 +1280,7 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^4.0.0" }, @@ -1300,6 +1293,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1312,6 +1306,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -1328,6 +1323,7 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" @@ -1340,13 +1336,15 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -1359,6 +1357,7 @@ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, + "license": "MIT", "dependencies": { "global-prefix": "^3.0.0" }, @@ -1371,6 +1370,7 @@ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, + "license": "MIT", "dependencies": { "ini": "^1.3.5", "kind-of": "^6.0.2", @@ -1385,6 +1385,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -1393,10 +1394,11 @@ } }, "node_modules/globals": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.8.0.tgz", - "integrity": "sha512-VZAJ4cewHTExBWDHR6yptdIBlx9YSSZuwojj9Nt5mBRXQzrKakDsVKQ1J63sklLvzAJm0X5+RpO4i3Y2hcOnFw==", + "version": "15.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", + "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -1409,6 +1411,7 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -1428,13 +1431,15 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1444,6 +1449,7 @@ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -1452,10 +1458,11 @@ } }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -1465,6 +1472,7 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -1481,6 +1489,7 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -1489,19 +1498,22 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1511,6 +1523,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1520,6 +1533,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -1532,24 +1546,17 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1558,19 +1565,22 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -1582,31 +1592,36 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -1616,6 +1631,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1624,13 +1640,15 @@ "version": "0.34.0", "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz", "integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -1643,13 +1661,15 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -1664,35 +1684,40 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/mathml-tag-names": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.10.0.tgz", + "integrity": "sha512-qq7C3EtK3yJXMwz1zAab65pjl+UhohqMOctTgcqjLOWABqmwj+me02LSsCuEUxnst9X1lCBpoE0WArGKgdGDzw==", + "dev": true, + "license": "CC0-1.0" }, "node_modules/meow": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -1705,15 +1730,17 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -1722,23 +1749,41 @@ "node": ">=8.6" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.7", @@ -1751,6 +1796,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -1762,29 +1808,32 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -1795,6 +1844,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -1810,6 +1860,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -1825,6 +1876,7 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -1837,6 +1889,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -1855,6 +1908,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1864,6 +1918,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1873,32 +1928,35 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/postcss": { - "version": "8.4.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", - "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "dev": true, "funding": [ { @@ -1914,25 +1972,27 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" } }, "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", - "dev": true + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz", + "integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==", + "dev": true, + "license": "MIT" }, "node_modules/postcss-safe-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz", - "integrity": "sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", "dev": true, "funding": [ { @@ -1948,6 +2008,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "engines": { "node": ">=18.0" }, @@ -1956,10 +2017,11 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", - "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -1972,13 +2034,15 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -1988,6 +2052,7 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -2010,13 +2075,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2026,6 +2093,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -2035,6 +2103,7 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -2059,15 +2128,17 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -2080,6 +2151,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -2092,6 +2164,7 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2101,6 +2174,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -2113,6 +2187,7 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2122,6 +2197,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -2135,10 +2211,11 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -2148,6 +2225,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -2162,6 +2240,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2174,6 +2253,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -2182,9 +2262,9 @@ } }, "node_modules/stylelint": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.7.0.tgz", - "integrity": "sha512-Q1ATiXlz+wYr37a7TGsfvqYn2nSR3T/isw3IWlZQzFzCNoACHuGBb6xBplZXz56/uDRJHIygxjh7jbV/8isewA==", + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.10.0.tgz", + "integrity": "sha512-z/8X2rZ52dt2c0stVwI9QL2AFJhLhbPkyfpDFcizs200V/g7v+UYY6SNcB9hKOLcDDX/yGLDsY/pX08sLkz9xQ==", "dev": true, "funding": [ { @@ -2196,43 +2276,43 @@ "url": "https://github.com/sponsors/stylelint" } ], + "license": "MIT", "dependencies": { - "@csstools/css-parser-algorithms": "^2.7.1", - "@csstools/css-tokenizer": "^2.4.1", - "@csstools/media-query-list-parser": "^2.1.13", - "@csstools/selector-specificity": "^3.1.1", + "@csstools/css-parser-algorithms": "^3.0.1", + "@csstools/css-tokenizer": "^3.0.1", + "@csstools/media-query-list-parser": "^3.0.1", + "@csstools/selector-specificity": "^4.0.0", "@dual-bundle/import-meta-resolve": "^4.1.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", "cosmiconfig": "^9.0.0", - "css-functions-list": "^3.2.2", - "css-tree": "^2.3.1", - "debug": "^4.3.5", + "css-functions-list": "^3.2.3", + "css-tree": "^3.0.0", + "debug": "^4.3.7", "fast-glob": "^3.3.2", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^9.0.0", + "file-entry-cache": "^9.1.0", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", - "ignore": "^5.3.1", + "ignore": "^6.0.2", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", "known-css-properties": "^0.34.0", "mathml-tag-names": "^2.1.3", "meow": "^13.2.0", - "micromatch": "^4.0.7", + "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "picocolors": "^1.0.1", - "postcss": "^8.4.39", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^7.0.0", - "postcss-selector-parser": "^6.1.0", + "postcss": "^8.4.47", + "postcss-resolve-nested-selector": "^0.1.6", + "postcss-safe-parser": "^7.0.1", + "postcss-selector-parser": "^6.1.2", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", - "strip-ansi": "^7.1.0", - "supports-hyperlinks": "^3.0.0", + "supports-hyperlinks": "^3.1.0", "svg-tags": "^1.0.0", "table": "^6.8.2", "write-file-atomic": "^5.0.1" @@ -2259,6 +2339,7 @@ "url": "https://github.com/sponsors/stylelint" } ], + "license": "MIT", "engines": { "node": ">=18.12.0" }, @@ -2281,6 +2362,7 @@ "url": "https://github.com/sponsors/stylelint" } ], + "license": "MIT", "dependencies": { "stylelint-config-recommended": "^14.0.1" }, @@ -2291,29 +2373,19 @@ "stylelint": "^16.1.0" } }, - "node_modules/stylelint/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/stylelint/node_modules/balanced-match": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.0.0.tgz", - "integrity": "sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz", + "integrity": "sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^5.0.0" }, @@ -2326,6 +2398,7 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-5.0.0.tgz", "integrity": "sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.3.1", "keyv": "^4.5.4" @@ -2334,35 +2407,32 @@ "node": ">=18" } }, + "node_modules/stylelint/node_modules/ignore": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", + "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/stylelint/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/stylelint/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -2371,16 +2441,20 @@ } }, "node_modules/supports-hyperlinks": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", - "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz", + "integrity": "sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, "engines": { "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/svg-tags": { @@ -2394,6 +2468,7 @@ "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -2406,15 +2481,16 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -2425,19 +2501,22 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -2450,6 +2529,7 @@ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -2462,6 +2542,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -2470,10 +2551,11 @@ } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "dev": true, + "license": "Apache-2.0", "peer": true, "bin": { "tsc": "bin/tsc", @@ -2488,6 +2570,7 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -2496,13 +2579,15 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -2513,11 +2598,22 @@ "node": ">= 8" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/write-file-atomic": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" @@ -2531,6 +2627,7 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, diff --git a/phpunit.xml b/phpunit.xml index 1d924c4b..5dd3edaa 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -24,7 +24,7 @@ - + From d7da42b626e8284bf1a32a50eef902dc247ee3eb Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Fri, 25 Oct 2024 20:40:52 +0100 Subject: [PATCH 02/10] Host images locally MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We don’t need the complexity of S3. Sepcifically the complexity of managing my own AWS account, flysystem made the Laravel side easy. A command is added to copy the the S3 files over to local storage. --- app/Console/Commands/CopyMediaToLocal.php | 69 +++++++++++++++++++ .../Controllers/Admin/ContactsController.php | 6 +- .../Controllers/Admin/PasskeysController.php | 32 ++++----- app/Http/Controllers/ContactsController.php | 4 +- app/Http/Controllers/MicropubController.php | 12 ++-- .../Controllers/MicropubMediaController.php | 30 ++++---- app/Http/Controllers/NotesController.php | 2 +- app/Jobs/DownloadWebMention.php | 2 +- app/Jobs/ProcessMedia.php | 34 ++++----- app/Jobs/ProcessWebMention.php | 4 +- app/Jobs/SendWebMentions.php | 2 +- app/Models/Article.php | 8 +-- app/Models/Media.php | 4 +- app/Models/Note.php | 16 ++--- app/Models/WebMention.php | 4 +- app/Providers/AppServiceProvider.php | 6 +- app/Services/BookmarkService.php | 4 +- app/Services/Micropub/UpdateService.php | 2 +- app/Services/PlaceService.php | 4 +- app/Services/TokenService.php | 2 +- database/seeders/ContactsTableSeeder.php | 2 +- database/seeders/LikesTableSeeder.php | 2 +- database/seeders/NotesTableSeeder.php | 6 +- database/seeders/PlacesTableSeeder.php | 2 +- storage/app/.gitignore | 1 + storage/app/private/.gitignore | 2 + tests/DuskTestCase.php | 2 +- tests/Feature/LikesTest.php | 20 +++--- tests/Feature/MicropubControllerTest.php | 2 +- tests/Feature/MicropubMediaTest.php | 60 ++++++++-------- tests/Feature/ParseCachedWebMentionsTest.php | 2 +- tests/Feature/TokenServiceTest.php | 6 +- tests/TestCase.php | 9 +++ tests/TestToken.php | 6 +- tests/Unit/ArticlesTest.php | 4 +- tests/Unit/BookmarksTest.php | 6 +- tests/Unit/Jobs/DownloadWebMentionJobTest.php | 2 +- tests/Unit/Jobs/ProcessBookmarkJobTest.php | 2 +- tests/Unit/Jobs/ProcessMediaJobTest.php | 32 ++++++--- tests/Unit/Jobs/ProcessWebMentionJobTest.php | 20 +++--- tests/Unit/Jobs/SaveProfileImageJobTest.php | 2 +- tests/Unit/Jobs/SendWebMentionJobTest.php | 16 ++--- tests/Unit/LikesTest.php | 8 +-- tests/Unit/MediaTest.php | 2 +- tests/Unit/NotesTest.php | 20 +++--- tests/Unit/PlacesTest.php | 8 +-- tests/Unit/WebMentionTest.php | 18 ++--- 47 files changed, 295 insertions(+), 214 deletions(-) create mode 100644 app/Console/Commands/CopyMediaToLocal.php create mode 100644 storage/app/private/.gitignore diff --git a/app/Console/Commands/CopyMediaToLocal.php b/app/Console/Commands/CopyMediaToLocal.php new file mode 100644 index 00000000..2e8d2bce --- /dev/null +++ b/app/Console/Commands/CopyMediaToLocal.php @@ -0,0 +1,69 @@ +path; + + $this->info('Processing: ' . $filename); + + // If the file is already saved locally skip to next one + if (Storage::disk('local')->exists('public/' . $filename)) { + $this->info('File already exists locally, skipping'); + + continue; + } + + // Copy the file from S3 to the local filesystem + if (! Storage::disk('s3')->exists($filename)) { + $this->error('File does not exist on S3'); + + continue; + } + $contents = Storage::disk('s3')->get($filename); + Storage::disk('local')->put('public/' . $filename, $contents); + + // Copy -medium and -small versions if they exist + $filenameParts = explode('.', $filename); + $extension = array_pop($filenameParts); + $basename = trim(implode('.', $filenameParts), '.'); + $mediumFilename = $basename . '-medium.' . $extension; + $smallFilename = $basename . '-small.' . $extension; + if (Storage::disk('s3')->exists($mediumFilename)) { + Storage::disk('local')->put('public/' . $mediumFilename, Storage::disk('s3')->get($mediumFilename)); + } + if (Storage::disk('s3')->exists($smallFilename)) { + Storage::disk('local')->put('public/' . $smallFilename, Storage::disk('s3')->get($smallFilename)); + } + } + } +} diff --git a/app/Http/Controllers/Admin/ContactsController.php b/app/Http/Controllers/Admin/ContactsController.php index 836c99cc..f29397e3 100644 --- a/app/Http/Controllers/Admin/ContactsController.php +++ b/app/Http/Controllers/Admin/ContactsController.php @@ -40,7 +40,7 @@ class ContactsController extends Controller */ public function store(): RedirectResponse { - $contact = new Contact(); + $contact = new Contact; $contact->name = request()->input('name'); $contact->nick = request()->input('nick'); $contact->homepage = request()->input('homepage'); @@ -79,7 +79,7 @@ class ContactsController extends Controller if (request()->hasFile('avatar') && (request()->input('homepage') != '')) { $dir = parse_url(request()->input('homepage'), PHP_URL_HOST); $destination = public_path() . '/assets/profile-images/' . $dir; - $filesystem = new Filesystem(); + $filesystem = new Filesystem; if ($filesystem->isDirectory($destination) === false) { $filesystem->makeDirectory($destination); } @@ -139,7 +139,7 @@ class ContactsController extends Controller } if ($avatar !== null) { $directory = public_path() . '/assets/profile-images/' . parse_url($contact->homepage, PHP_URL_HOST); - $filesystem = new Filesystem(); + $filesystem = new Filesystem; if ($filesystem->isDirectory($directory) === false) { $filesystem->makeDirectory($directory); } diff --git a/app/Http/Controllers/Admin/PasskeysController.php b/app/Http/Controllers/Admin/PasskeysController.php index 49ca481b..8325a59e 100644 --- a/app/Http/Controllers/Admin/PasskeysController.php +++ b/app/Http/Controllers/Admin/PasskeysController.php @@ -116,8 +116,8 @@ class PasskeysController extends Controller throw new WebAuthnException('No public key credential request options found'); } - $attestationStatementSupportManager = new AttestationStatementSupportManager(); - $attestationStatementSupportManager->add(new NoneAttestationStatementSupport()); + $attestationStatementSupportManager = new AttestationStatementSupportManager; + $attestationStatementSupportManager->add(new NoneAttestationStatementSupport); $webauthnSerializer = (new WebauthnSerializerFactory( $attestationStatementSupportManager @@ -133,12 +133,12 @@ class PasskeysController extends Controller throw new WebAuthnException('Invalid response type'); } - $algorithmManager = new Manager(); - $algorithmManager->add(new Ed25519()); - $algorithmManager->add(new ES256()); - $algorithmManager->add(new RS256()); + $algorithmManager = new Manager; + $algorithmManager->add(new Ed25519); + $algorithmManager->add(new ES256); + $algorithmManager->add(new RS256); - $ceremonyStepManagerFactory = new CeremonyStepManagerFactory(); + $ceremonyStepManagerFactory = new CeremonyStepManagerFactory; $ceremonyStepManagerFactory->setAlgorithmManager($algorithmManager); $ceremonyStepManagerFactory->setAttestationStatementSupportManager( $attestationStatementSupportManager @@ -206,8 +206,8 @@ class PasskeysController extends Controller ], 400); } - $attestationStatementSupportManager = new AttestationStatementSupportManager(); - $attestationStatementSupportManager->add(new NoneAttestationStatementSupport()); + $attestationStatementSupportManager = new AttestationStatementSupportManager; + $attestationStatementSupportManager->add(new NoneAttestationStatementSupport); $webauthnSerializer = (new WebauthnSerializerFactory( $attestationStatementSupportManager @@ -240,15 +240,15 @@ class PasskeysController extends Controller 'json' ); - $algorithmManager = new Manager(); - $algorithmManager->add(new Ed25519()); - $algorithmManager->add(new ES256()); - $algorithmManager->add(new RS256()); + $algorithmManager = new Manager; + $algorithmManager->add(new Ed25519); + $algorithmManager->add(new ES256); + $algorithmManager->add(new RS256); - $attestationStatementSupportManager = new AttestationStatementSupportManager(); - $attestationStatementSupportManager->add(new NoneAttestationStatementSupport()); + $attestationStatementSupportManager = new AttestationStatementSupportManager; + $attestationStatementSupportManager->add(new NoneAttestationStatementSupport); - $ceremonyStepManagerFactory = new CeremonyStepManagerFactory(); + $ceremonyStepManagerFactory = new CeremonyStepManagerFactory; $ceremonyStepManagerFactory->setAlgorithmManager($algorithmManager); $ceremonyStepManagerFactory->setAttestationStatementSupportManager( $attestationStatementSupportManager diff --git a/app/Http/Controllers/ContactsController.php b/app/Http/Controllers/ContactsController.php index 503a75ff..75b103a8 100644 --- a/app/Http/Controllers/ContactsController.php +++ b/app/Http/Controllers/ContactsController.php @@ -18,7 +18,7 @@ class ContactsController extends Controller */ public function index(): View { - $filesystem = new Filesystem(); + $filesystem = new Filesystem; $contacts = Contact::all(); foreach ($contacts as $contact) { $contact->homepageHost = parse_url($contact->homepage, PHP_URL_HOST); @@ -40,7 +40,7 @@ class ContactsController extends Controller $contact->homepageHost = parse_url($contact->homepage, PHP_URL_HOST); $file = public_path() . '/assets/profile-images/' . $contact->homepageHost . '/image'; - $filesystem = new Filesystem(); + $filesystem = new Filesystem; $image = ($filesystem->exists($file)) ? '/assets/profile-images/' . $contact->homepageHost . '/image' : diff --git a/app/Http/Controllers/MicropubController.php b/app/Http/Controllers/MicropubController.php index 8a395ee0..ac25a815 100644 --- a/app/Http/Controllers/MicropubController.php +++ b/app/Http/Controllers/MicropubController.php @@ -53,13 +53,13 @@ class MicropubController extends Controller try { $tokenData = $this->tokenService->validateToken($request->input('access_token')); } catch (RequiredConstraintsViolated|InvalidTokenStructure|CannotDecodeContent) { - $micropubResponses = new MicropubResponses(); + $micropubResponses = new MicropubResponses; return $micropubResponses->invalidTokenResponse(); } if ($tokenData->claims()->has('scope') === false) { - $micropubResponses = new MicropubResponses(); + $micropubResponses = new MicropubResponses; return $micropubResponses->tokenHasNoScopeResponse(); } @@ -73,7 +73,7 @@ class MicropubController extends Controller } if (! in_array('create', $scopes)) { - $micropubResponses = new MicropubResponses(); + $micropubResponses = new MicropubResponses; return $micropubResponses->insufficientScopeResponse(); } @@ -91,7 +91,7 @@ class MicropubController extends Controller $scopes = explode(' ', $scopes); } if (! in_array('create', $scopes)) { - $micropubResponses = new MicropubResponses(); + $micropubResponses = new MicropubResponses; return $micropubResponses->insufficientScopeResponse(); } @@ -109,7 +109,7 @@ class MicropubController extends Controller $scopes = explode(' ', $scopes); } if (! in_array('update', $scopes)) { - $micropubResponses = new MicropubResponses(); + $micropubResponses = new MicropubResponses; return $micropubResponses->insufficientScopeResponse(); } @@ -136,7 +136,7 @@ class MicropubController extends Controller try { $tokenData = $this->tokenService->validateToken($request->input('access_token')); } catch (RequiredConstraintsViolated|InvalidTokenStructure) { - return (new MicropubResponses())->invalidTokenResponse(); + return (new MicropubResponses)->invalidTokenResponse(); } if ($request->input('q') === 'syndicate-to') { diff --git a/app/Http/Controllers/MicropubMediaController.php b/app/Http/Controllers/MicropubMediaController.php index e07e979f..e3ed8b61 100644 --- a/app/Http/Controllers/MicropubMediaController.php +++ b/app/Http/Controllers/MicropubMediaController.php @@ -39,13 +39,13 @@ class MicropubMediaController extends Controller try { $tokenData = $this->tokenService->validateToken($request->input('access_token')); } catch (RequiredConstraintsViolated|InvalidTokenStructure) { - $micropubResponses = new MicropubResponses(); + $micropubResponses = new MicropubResponses; return $micropubResponses->invalidTokenResponse(); } if ($tokenData->claims()->has('scope') === false) { - $micropubResponses = new MicropubResponses(); + $micropubResponses = new MicropubResponses; return $micropubResponses->tokenHasNoScopeResponse(); } @@ -55,7 +55,7 @@ class MicropubMediaController extends Controller $scopes = explode(' ', $scopes); } if (! in_array('create', $scopes)) { - $micropubResponses = new MicropubResponses(); + $micropubResponses = new MicropubResponses; return $micropubResponses->insufficientScopeResponse(); } @@ -111,13 +111,13 @@ class MicropubMediaController extends Controller try { $tokenData = $this->tokenService->validateToken($request->input('access_token')); } catch (RequiredConstraintsViolated|InvalidTokenStructure) { - $micropubResponses = new MicropubResponses(); + $micropubResponses = new MicropubResponses; return $micropubResponses->invalidTokenResponse(); } if ($tokenData->claims()->has('scope') === false) { - $micropubResponses = new MicropubResponses(); + $micropubResponses = new MicropubResponses; return $micropubResponses->tokenHasNoScopeResponse(); } @@ -127,7 +127,7 @@ class MicropubMediaController extends Controller $scopes = explode(' ', $scopes); } if (! in_array('create', $scopes)) { - $micropubResponses = new MicropubResponses(); + $micropubResponses = new MicropubResponses; return $micropubResponses->insufficientScopeResponse(); } @@ -140,7 +140,10 @@ class MicropubMediaController extends Controller ], 400); } - if ($request->file('file')->isValid() === false) { + /** @var UploadedFile $file */ + $file = $request->file('file'); + + if ($file->isValid() === false) { return response()->json([ 'response' => 'error', 'error' => 'invalid_request', @@ -148,7 +151,7 @@ class MicropubMediaController extends Controller ], 400); } - $filename = $this->saveFile($request->file('file')); + $filename = Storage::disk('local')->putFile('media', $file); /** @var ImageManager $manager */ $manager = resolve(ImageManager::class); @@ -162,18 +165,11 @@ class MicropubMediaController extends Controller $media = Media::create([ 'token' => $request->bearerToken(), - 'path' => 'media/' . $filename, + 'path' => $filename, 'type' => $this->getFileTypeFromMimeType($request->file('file')->getMimeType()), 'image_widths' => $width, ]); - // put the file on S3 initially, the ProcessMedia job may edit this - Storage::disk('s3')->putFileAs( - 'media', - new File(storage_path('app') . '/' . $filename), - $filename - ); - ProcessMedia::dispatch($filename); return response()->json([ @@ -237,7 +233,7 @@ class MicropubMediaController extends Controller * * @throws Exception */ - private function saveFile(UploadedFile $file): string + private function saveFileToLocal(UploadedFile $file): string { $filename = Uuid::uuid4()->toString() . '.' . $file->extension(); Storage::disk('local')->putFileAs('', $file, $filename); diff --git a/app/Http/Controllers/NotesController.php b/app/Http/Controllers/NotesController.php index bef422cb..5c25771f 100644 --- a/app/Http/Controllers/NotesController.php +++ b/app/Http/Controllers/NotesController.php @@ -67,7 +67,7 @@ class NotesController extends Controller */ public function redirect(int $decId): RedirectResponse { - return redirect(config('app.url') . '/notes/' . (new Numbers())->numto60($decId)); + return redirect(config('app.url') . '/notes/' . (new Numbers)->numto60($decId)); } /** diff --git a/app/Jobs/DownloadWebMention.php b/app/Jobs/DownloadWebMention.php index a32b25a9..d8f97328 100644 --- a/app/Jobs/DownloadWebMention.php +++ b/app/Jobs/DownloadWebMention.php @@ -38,7 +38,7 @@ class DownloadWebMention implements ShouldQueue //4XX and 5XX responses should get Guzzle to throw an exception, //Laravel should catch and retry these automatically. if ($response->getStatusCode() === 200) { - $filesystem = new FileSystem(); + $filesystem = new FileSystem; $filename = storage_path('HTML') . '/' . $this->createFilenameFromURL($this->source); //backup file first $filenameBackup = $filename . '.' . date('Y-m-d') . '.backup'; diff --git a/app/Jobs/ProcessMedia.php b/app/Jobs/ProcessMedia.php index 6b6a1dcf..e57acf3e 100644 --- a/app/Jobs/ProcessMedia.php +++ b/app/Jobs/ProcessMedia.php @@ -32,35 +32,35 @@ class ProcessMedia implements ShouldQueue */ public function handle(ImageManager $manager): void { - //open file + // Open file try { - $image = $manager->read(storage_path('app') . '/' . $this->filename); + $image = $manager->read(storage_path('app/media/') . $this->filename); } catch (DecoderException) { // not an image; delete file and end job - unlink(storage_path('app') . '/' . $this->filename); + unlink(storage_path('app/media/') . $this->filename); return; } - //create smaller versions if necessary + + // Save the file publicly + Storage::disk('local')->copy('media/' . $this->filename, 'public/media/' . $this->filename); + + // Create smaller versions if necessary if ($image->width() > 1000) { $filenameParts = explode('.', $this->filename); $extension = array_pop($filenameParts); // the following achieves this data flow // foo.bar.png => ['foo', 'bar', 'png'] => ['foo', 'bar'] => foo.bar - $basename = ltrim(array_reduce($filenameParts, function ($carry, $item) { - return $carry . '.' . $item; - }, ''), '.'); - $medium = $image->resize(1000, null, function ($constraint) { - $constraint->aspectRatio(); - }); - Storage::disk('s3')->put('media/' . $basename . '-medium.' . $extension, (string) $medium->encode()); - $small = $image->resize(500, null, function ($constraint) { - $constraint->aspectRatio(); - }); - Storage::disk('s3')->put('media/' . $basename . '-small.' . $extension, (string) $small->encode()); + $basename = trim(implode('.', $filenameParts), '.'); + + $medium = $image->resize(width: 1000); + Storage::disk('local')->put('public/media/' . $basename . '-medium.' . $extension, (string) $medium->encode()); + + $small = $image->resize(width: 500); + Storage::disk('local')->put('public/media/' . $basename . '-small.' . $extension, (string) $small->encode()); } - // now we can delete the locally saved image - unlink(storage_path('app') . '/' . $this->filename); + // Now we can delete the locally saved image + unlink(storage_path('app/media/') . $this->filename); } } diff --git a/app/Jobs/ProcessWebMention.php b/app/Jobs/ProcessWebMention.php index a5afd300..24c7f477 100644 --- a/app/Jobs/ProcessWebMention.php +++ b/app/Jobs/ProcessWebMention.php @@ -44,7 +44,7 @@ class ProcessWebMention implements ShouldQueue try { $response = $guzzle->request('GET', $this->source); } catch (RequestException $e) { - throw new RemoteContentNotFoundException(); + throw new RemoteContentNotFoundException; } $this->saveRemoteContent((string) $response->getBody(), $this->source); $microformats = Mf2\parse((string) $response->getBody(), $this->source); @@ -85,7 +85,7 @@ class ProcessWebMention implements ShouldQueue }// foreach // no webmention in the db so create new one - $webmention = new WebMention(); + $webmention = new WebMention; $type = $parser->getMentionType($microformats); // throw error here? dispatch(new SaveProfileImage($microformats)); $webmention->source = $this->source; diff --git a/app/Jobs/SendWebMentions.php b/app/Jobs/SendWebMentions.php index 89babc89..4252f8e0 100644 --- a/app/Jobs/SendWebMentions.php +++ b/app/Jobs/SendWebMentions.php @@ -108,7 +108,7 @@ class SendWebMentions implements ShouldQueue } $urls = []; - $dom = new \DOMDocument(); + $dom = new \DOMDocument; $dom->loadHTML($html); $anchors = $dom->getElementsByTagName('a'); foreach ($anchors as $anchor) { diff --git a/app/Models/Article.php b/app/Models/Article.php index 42895f8d..bfbd5d51 100644 --- a/app/Models/Article.php +++ b/app/Models/Article.php @@ -58,10 +58,10 @@ class Article extends Model { return Attribute::get( get: function () { - $environment = new Environment(); - $environment->addExtension(new CommonMarkCoreExtension()); - $environment->addRenderer(FencedCode::class, new FencedCodeRenderer()); - $environment->addRenderer(IndentedCode::class, new IndentedCodeRenderer()); + $environment = new Environment; + $environment->addExtension(new CommonMarkCoreExtension); + $environment->addRenderer(FencedCode::class, new FencedCodeRenderer); + $environment->addRenderer(IndentedCode::class, new IndentedCodeRenderer); $markdownConverter = new MarkdownConverter($environment); return $markdownConverter->convert($this->main)->getContent(); diff --git a/app/Models/Media.php b/app/Models/Media.php index c4dd6d5c..3d923bed 100644 --- a/app/Models/Media.php +++ b/app/Models/Media.php @@ -33,7 +33,7 @@ class Media extends Model return $attributes['path']; } - return config('filesystems.disks.s3.url') . '/' . $attributes['path']; + return config('app.url') . '/storage/' . $attributes['path']; } ); } @@ -78,7 +78,7 @@ class Media extends Model $basename = $this->getBasename($path); $extension = $this->getExtension($path); - return config('filesystems.disks.s3.url') . '/' . $basename . '-' . $size . '.' . $extension; + return config('app.url') . '/storage/' . $basename . '-' . $size . '.' . $extension; } private function getBasename(string $path): string diff --git a/app/Models/Note.php b/app/Models/Note.php index f854b598..9c58bb3e 100644 --- a/app/Models/Note.php +++ b/app/Models/Note.php @@ -271,7 +271,7 @@ class Note extends Model ]); if ($oEmbed->httpstatus >= 400) { - throw new Exception(); + throw new Exception; } } catch (Exception $e) { return null; @@ -388,18 +388,18 @@ class Note extends Model 'mentions_handle' => [ 'prefix' => '@', 'pattern' => '([\w@.])+(\b)', - 'generator' => new MentionGenerator(), + 'generator' => new MentionGenerator, ], ], ]; $environment = new Environment($config); - $environment->addExtension(new CommonMarkCoreExtension()); - $environment->addExtension(new AutolinkExtension()); - $environment->addExtension(new MentionExtension()); - $environment->addRenderer(Mention::class, new MentionRenderer()); - $environment->addRenderer(FencedCode::class, new FencedCodeRenderer()); - $environment->addRenderer(IndentedCode::class, new IndentedCodeRenderer()); + $environment->addExtension(new CommonMarkCoreExtension); + $environment->addExtension(new AutolinkExtension); + $environment->addExtension(new MentionExtension); + $environment->addRenderer(Mention::class, new MentionRenderer); + $environment->addRenderer(FencedCode::class, new FencedCodeRenderer); + $environment->addRenderer(IndentedCode::class, new IndentedCodeRenderer); $markdownConverter = new MarkdownConverter($environment); return $markdownConverter->convert($note)->getContent(); diff --git a/app/Models/WebMention.php b/app/Models/WebMention.php index cf418b90..a9930851 100644 --- a/app/Models/WebMention.php +++ b/app/Models/WebMention.php @@ -42,7 +42,7 @@ class WebMention extends Model return null; } - $authorship = new Authorship(); + $authorship = new Authorship; $hCard = $authorship->findAuthor(json_decode($attributes['mf2'], true)); if ($hCard === false) { @@ -140,7 +140,7 @@ class WebMention extends Model return $profile_image; } - $filesystem = new Filesystem(); + $filesystem = new Filesystem; if ($filesystem->exists(public_path() . '/assets/profile-images/' . $host . '/image')) { return '/assets/profile-images/' . $host . '/image'; } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index d073e1d1..4c9573b2 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -88,9 +88,9 @@ class AppServiceProvider extends ServiceProvider $this->app->bind('Lcobucci\JWT\Configuration', function () { $key = InMemory::plainText(config('app.key')); - $config = Configuration::forSymmetricSigner(new Sha256(), $key); + $config = Configuration::forSymmetricSigner(new Sha256, $key); - $config->setValidationConstraints(new SignedWith(new Sha256(), $key)); + $config->setValidationConstraints(new SignedWith(new Sha256, $key)); return $config; }); @@ -98,7 +98,7 @@ class AppServiceProvider extends ServiceProvider // Configure HtmlSanitizer $this->app->bind(HtmlSanitizer::class, function () { return new HtmlSanitizer( - (new HtmlSanitizerConfig()) + (new HtmlSanitizerConfig) ->allowSafeElements() ->forceAttribute('a', 'rel', 'noopener nofollow') ); diff --git a/app/Services/BookmarkService.php b/app/Services/BookmarkService.php index 792cb81c..1a17dd08 100644 --- a/app/Services/BookmarkService.php +++ b/app/Services/BookmarkService.php @@ -62,7 +62,7 @@ class BookmarkService extends Service $response = $client->request('GET', 'https://web.archive.org/save/' . $url); } catch (ClientException $e) { //throw an exception to be caught - throw new InternetArchiveException(); + throw new InternetArchiveException; } if ($response->hasHeader('Content-Location')) { if (Str::startsWith(Arr::get($response->getHeader('Content-Location'), 0), '/web')) { @@ -71,6 +71,6 @@ class BookmarkService extends Service } //throw an exception to be caught - throw new InternetArchiveException(); + throw new InternetArchiveException; } } diff --git a/app/Services/Micropub/UpdateService.php b/app/Services/Micropub/UpdateService.php index ac9d360a..144984c2 100644 --- a/app/Services/Micropub/UpdateService.php +++ b/app/Services/Micropub/UpdateService.php @@ -83,7 +83,7 @@ class UpdateService if ($property === 'photo') { foreach ($value as $photoURL) { if (Str::startsWith($photoURL, 'https://')) { - $media = new Media(); + $media = new Media; $media->path = $photoURL; $media->type = 'image'; $media->save(); diff --git a/app/Services/PlaceService.php b/app/Services/PlaceService.php index d3756253..a63caa98 100644 --- a/app/Services/PlaceService.php +++ b/app/Services/PlaceService.php @@ -25,7 +25,7 @@ class PlaceService $data['latitude'] = $matches[0][0]; $data['longitude'] = $matches[0][1]; } - $place = new Place(); + $place = new Place; $place->name = $data['name']; $place->description = $data['description']; $place->latitude = $data['latitude']; @@ -53,7 +53,7 @@ class PlaceService if (Arr::has($checkin, 'properties.latitude') === false) { throw new \InvalidArgumentException('Missing required longitude/latitude'); } - $place = new Place(); + $place = new Place; $place->name = Arr::get($checkin, 'properties.name.0'); $place->external_urls = Arr::get($checkin, 'properties.url.0'); $place->latitude = Arr::get($checkin, 'properties.latitude.0'); diff --git a/app/Services/TokenService.php b/app/Services/TokenService.php index fddccff0..d0240f6a 100644 --- a/app/Services/TokenService.php +++ b/app/Services/TokenService.php @@ -19,7 +19,7 @@ class TokenService $config = resolve(Configuration::class); $token = $config->builder() - ->issuedAt(new DateTimeImmutable()) + ->issuedAt(new DateTimeImmutable) ->withClaim('client_id', $data['client_id']) ->withClaim('me', $data['me']) ->withClaim('scope', $data['scope']) diff --git a/database/seeders/ContactsTableSeeder.php b/database/seeders/ContactsTableSeeder.php index b3097ce3..577fe153 100644 --- a/database/seeders/ContactsTableSeeder.php +++ b/database/seeders/ContactsTableSeeder.php @@ -27,7 +27,7 @@ class ContactsTableSeeder extends Seeder 'homepage' => 'https://aaronparecki.com', 'facebook' => '123456', ]); - $fs = new FileSystem(); + $fs = new FileSystem; if (! $fs->exists(public_path('assets/profile-images/aaronparecki.com'))) { $fs->makeDirectory(public_path('assets/profile-images/aaronparecki.com')); } diff --git a/database/seeders/LikesTableSeeder.php b/database/seeders/LikesTableSeeder.php index 5a1f365c..0436ad64 100644 --- a/database/seeders/LikesTableSeeder.php +++ b/database/seeders/LikesTableSeeder.php @@ -20,7 +20,7 @@ class LikesTableSeeder extends Seeder Like::factory(10)->create(); $now = Carbon::now()->subDays(rand(3, 6)); - $faker = new Generator(); + $faker = new Generator; $faker->addProvider(new \Faker\Provider\en_US\Person($faker)); $faker->addProvider(new \Faker\Provider\Lorem($faker)); $faker->addProvider(new \Faker\Provider\Internet($faker)); diff --git a/database/seeders/NotesTableSeeder.php b/database/seeders/NotesTableSeeder.php index 298205e3..b73c2e34 100644 --- a/database/seeders/NotesTableSeeder.php +++ b/database/seeders/NotesTableSeeder.php @@ -154,7 +154,7 @@ class NotesTableSeeder extends Seeder ->update(['updated_at' => $now->toDateTimeString()]); $now = Carbon::now()->subHours(5); - $noteJustCheckin = new Note(); + $noteJustCheckin = new Note; $noteJustCheckin->setCreatedAt($now); $place = Place::find(1); $noteJustCheckin->place()->associate($place); @@ -164,12 +164,12 @@ class NotesTableSeeder extends Seeder ->update(['updated_at' => $now->toDateTimeString()]); $now = Carbon::now()->subHours(4); - $media = new Media(); + $media = new Media; $media->path = 'media/f1bc8faa-1a8f-45b8-a9b1-57282fa73f87.jpg'; $media->type = 'image'; $media->image_widths = '3648'; $media->save(); - $noteWithOnlyImage = new Note(); + $noteWithOnlyImage = new Note; $noteWithOnlyImage->setCreatedAt($now); $noteWithOnlyImage->setUpdatedAt($now); $noteWithOnlyImage->save(); diff --git a/database/seeders/PlacesTableSeeder.php b/database/seeders/PlacesTableSeeder.php index f9f0884f..90a63ff8 100644 --- a/database/seeders/PlacesTableSeeder.php +++ b/database/seeders/PlacesTableSeeder.php @@ -14,7 +14,7 @@ class PlacesTableSeeder extends Seeder */ public function run(): void { - $place = new Place(); + $place = new Place; $place->name = 'The Bridgewater Pub'; $place->description = 'A lovely local pub with a decent selection of cask ales'; $place->latitude = 53.4983; diff --git a/storage/app/.gitignore b/storage/app/.gitignore index 8f4803c0..fedb287f 100644 --- a/storage/app/.gitignore +++ b/storage/app/.gitignore @@ -1,3 +1,4 @@ * +!private/ !public/ !.gitignore diff --git a/storage/app/private/.gitignore b/storage/app/private/.gitignore new file mode 100644 index 00000000..d6b7ef32 --- /dev/null +++ b/storage/app/private/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/tests/DuskTestCase.php b/tests/DuskTestCase.php index 3f9e26fc..0f891ea1 100644 --- a/tests/DuskTestCase.php +++ b/tests/DuskTestCase.php @@ -32,7 +32,7 @@ abstract class DuskTestCase extends BaseTestCase { $desiredCapabilities = DesiredCapabilities::chrome(); - $options = new ChromeOptions(); + $options = new ChromeOptions; $options->addArguments([ 'headless', 'disable-gpu', diff --git a/tests/Feature/LikesTest.php b/tests/Feature/LikesTest.php index a4899e21..45c24e63 100644 --- a/tests/Feature/LikesTest.php +++ b/tests/Feature/LikesTest.php @@ -78,7 +78,7 @@ class LikesTest extends TestCase /** @test */ public function likeWithSimpleAuthor(): void { - $like = new Like(); + $like = new Like; $like->url = 'http://example.org/note/id'; $like->save(); $id = $like->id; @@ -107,7 +107,7 @@ class LikesTest extends TestCase $this->app->bind(Client::class, function () use ($client) { return $client; }); - $authorship = new Authorship(); + $authorship = new Authorship; $job->handle($client, $authorship); @@ -117,7 +117,7 @@ class LikesTest extends TestCase /** @test */ public function likeWithHCard(): void { - $like = new Like(); + $like = new Like; $like->url = 'http://example.org/note/id'; $like->save(); $id = $like->id; @@ -150,7 +150,7 @@ class LikesTest extends TestCase $this->app->bind(Client::class, function () use ($client) { return $client; }); - $authorship = new Authorship(); + $authorship = new Authorship; $job->handle($client, $authorship); @@ -160,7 +160,7 @@ class LikesTest extends TestCase /** @test */ public function likeWithoutMicroformats(): void { - $like = new Like(); + $like = new Like; $like->url = 'http://example.org/note/id'; $like->save(); $id = $like->id; @@ -186,7 +186,7 @@ class LikesTest extends TestCase $this->app->bind(Client::class, function () use ($client) { return $client; }); - $authorship = new Authorship(); + $authorship = new Authorship; $job->handle($client, $authorship); @@ -196,7 +196,7 @@ class LikesTest extends TestCase /** @test */ public function likeThatIsATweet(): void { - $like = new Like(); + $like = new Like; $like->url = 'https://twitter.com/jonnybarnes/status/1050823255123251200'; $like->save(); $id = $like->id; @@ -226,7 +226,7 @@ class LikesTest extends TestCase ->willReturn($info); $this->app->instance(Codebird::class, $codebirdMock); - $authorship = new Authorship(); + $authorship = new Authorship; $job->handle($client, $authorship); @@ -236,7 +236,7 @@ class LikesTest extends TestCase /** @test */ public function noErrorForFailureToPosseWithBridgy(): void { - $like = new Like(); + $like = new Like; $like->url = 'https://twitter.com/jonnybarnes/status/1050823255123251200'; $like->save(); $id = $like->id; @@ -264,7 +264,7 @@ class LikesTest extends TestCase ->willReturn($info); $this->app->instance(Codebird::class, $codebirdMock); - $authorship = new Authorship(); + $authorship = new Authorship; $job->handle($client, $authorship); diff --git a/tests/Feature/MicropubControllerTest.php b/tests/Feature/MicropubControllerTest.php index 412401d1..06935d55 100644 --- a/tests/Feature/MicropubControllerTest.php +++ b/tests/Feature/MicropubControllerTest.php @@ -291,7 +291,7 @@ class MicropubControllerTest extends TestCase */ public function micropubClientApiRequestCreatesNewNoteWithExistingPlaceInLocationData(): void { - $place = new Place(); + $place = new Place; $place->name = 'Test Place'; $place->latitude = 1.23; $place->longitude = 4.56; diff --git a/tests/Feature/MicropubMediaTest.php b/tests/Feature/MicropubMediaTest.php index be05cb4e..7abafd9b 100644 --- a/tests/Feature/MicropubMediaTest.php +++ b/tests/Feature/MicropubMediaTest.php @@ -10,6 +10,7 @@ use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Http\UploadedFile; use Illuminate\Support\Facades\Queue; use Illuminate\Support\Facades\Storage; +use Illuminate\Support\Str; use Tests\TestCase; use Tests\TestToken; @@ -22,9 +23,7 @@ class MicropubMediaTest extends TestCase public function emptyResponseForLastUploadWhenNoneFound(): void { // Make sure there’s no media - Media::all()->each(function ($media) { - $media->delete(); - }); + $this->assertCount(0, Media::all()); $response = $this->get( '/api/media?q=last', @@ -82,10 +81,8 @@ class MicropubMediaTest extends TestCase public function clientCanListLastUpload(): void { Queue::fake(); - Storage::fake('s3'); $file = __DIR__ . '/../aaron.png'; $token = $this->getToken(); - config(['filesystems.disks.s3.url' => 'https://s3.example.com']); $response = $this->post( '/api/media', @@ -95,12 +92,8 @@ class MicropubMediaTest extends TestCase ['HTTP_Authorization' => 'Bearer ' . $token] ); - $location = $response->headers->get('Location'); - - $this->assertStringStartsWith('https://s3.example.com/', $location); - $path = parse_url($response->headers->get('Location'), PHP_URL_PATH); - $filename = substr($path, 7); + $filename = Str::chopStart($path, '/media/'); $lastUploadResponse = $this->get( '/api/media?q=last', @@ -109,14 +102,14 @@ class MicropubMediaTest extends TestCase $lastUploadResponse->assertJson(['url' => $response->headers->get('Location')]); // now remove file - unlink(storage_path('app/') . $filename); + unlink(storage_path('app/media/') . $filename); + $this->removeDirIfEmpty(storage_path('app/media')); } /** @test */ public function clientCanSourceUploads(): void { Queue::fake(); - Storage::fake('s3'); $file = __DIR__ . '/../aaron.png'; $token = $this->getToken(); @@ -129,7 +122,7 @@ class MicropubMediaTest extends TestCase ); $path = parse_url($response->headers->get('Location'), PHP_URL_PATH); - $filename = substr($path, 7); + $filename = Str::chopStart($path, '/media/'); $sourceUploadResponse = $this->get( '/api/media?q=source', @@ -141,14 +134,14 @@ class MicropubMediaTest extends TestCase ]]]); // now remove file - unlink(storage_path('app/') . $filename); + unlink(storage_path('app/media/') . $filename); + $this->removeDirIfEmpty(storage_path('app/media')); } /** @test */ public function clientCanSourceUploadsWithLimit(): void { Queue::fake(); - Storage::fake('s3'); $file = __DIR__ . '/../aaron.png'; $token = $this->getToken(); @@ -161,7 +154,7 @@ class MicropubMediaTest extends TestCase ); $path = parse_url($response->headers->get('Location'), PHP_URL_PATH); - $filename = substr($path, 7); + $filename = Str::chopStart($path, '/media/'); $sourceUploadResponse = $this->get( '/api/media?q=source&limit=1', @@ -175,7 +168,8 @@ class MicropubMediaTest extends TestCase $this->assertCount(1, json_decode($sourceUploadResponse->getContent(), true)['items']); // now remove file - unlink(storage_path('app/') . $filename); + unlink(storage_path('app/media/') . $filename); + $this->removeDirIfEmpty(storage_path('app/media')); } /** @test */ @@ -256,7 +250,6 @@ class MicropubMediaTest extends TestCase public function mediaEndpointUploadFile(): void { Queue::fake(); - Storage::fake('s3'); $file = __DIR__ . '/../aaron.png'; $response = $this->post( @@ -268,18 +261,18 @@ class MicropubMediaTest extends TestCase ); $path = parse_url($response->headers->get('Location'), PHP_URL_PATH); - $filename = substr($path, 7); + $filename = Str::chopStart($path, '/media/'); Queue::assertPushed(ProcessMedia::class); - Storage::disk('local')->assertExists($filename); + Storage::disk('local')->assertExists($path); // now remove file - unlink(storage_path('app/') . $filename); + unlink(storage_path('app/media/') . $filename); + $this->removeDirIfEmpty(storage_path('app/media')); } /** @test */ public function mediaEndpointUploadAudioFile(): void { Queue::fake(); - Storage::fake('s3'); $file = __DIR__ . '/../audio.mp3'; $response = $this->post( @@ -291,18 +284,18 @@ class MicropubMediaTest extends TestCase ); $path = parse_url($response->headers->get('Location'), PHP_URL_PATH); - $filename = substr($path, 7); + $filename = Str::chopStart($path, '/media/'); Queue::assertPushed(ProcessMedia::class); - Storage::disk('local')->assertExists($filename); + Storage::disk('local')->assertExists($path); // now remove file - unlink(storage_path('app/') . $filename); + unlink(storage_path('app/media/') . $filename); + $this->removeDirIfEmpty(storage_path('app/media')); } /** @test */ public function mediaEndpointUploadVideoFile(): void { Queue::fake(); - Storage::fake('s3'); $file = __DIR__ . '/../video.ogv'; $response = $this->post( @@ -314,18 +307,18 @@ class MicropubMediaTest extends TestCase ); $path = parse_url($response->headers->get('Location'), PHP_URL_PATH); - $filename = substr($path, 7); + $filename = Str::chopStart($path, '/media/'); Queue::assertPushed(ProcessMedia::class); - Storage::disk('local')->assertExists($filename); + Storage::disk('local')->assertExists($path); // now remove file - unlink(storage_path('app/') . $filename); + unlink(storage_path('app/media/') . $filename); + $this->removeDirIfEmpty(storage_path('app/media')); } /** @test */ public function mediaEndpointUploadDocumentFile(): void { Queue::fake(); - Storage::fake('s3'); $response = $this->post( '/api/media', @@ -336,11 +329,12 @@ class MicropubMediaTest extends TestCase ); $path = parse_url($response->headers->get('Location'), PHP_URL_PATH); - $filename = substr($path, 7); + $filename = Str::chopStart($path, '/media/'); Queue::assertPushed(ProcessMedia::class); - Storage::disk('local')->assertExists($filename); + Storage::disk('local')->assertExists($path); // now remove file - unlink(storage_path('app/') . $filename); + unlink(storage_path('app/media/') . $filename); + $this->removeDirIfEmpty(storage_path('app/media')); } /** @test */ diff --git a/tests/Feature/ParseCachedWebMentionsTest.php b/tests/Feature/ParseCachedWebMentionsTest.php index 6d54e37c..ca829491 100644 --- a/tests/Feature/ParseCachedWebMentionsTest.php +++ b/tests/Feature/ParseCachedWebMentionsTest.php @@ -60,7 +60,7 @@ class ParseCachedWebMentionsTest extends TestCase protected function tearDown(): void { - $fs = new FileSystem(); + $fs = new FileSystem; if ($fs->exists(storage_path() . '/HTML/https')) { $fs->deleteDirectory(storage_path() . '/HTML/https'); } diff --git a/tests/Feature/TokenServiceTest.php b/tests/Feature/TokenServiceTest.php index d5e3136d..f9b3773c 100644 --- a/tests/Feature/TokenServiceTest.php +++ b/tests/Feature/TokenServiceTest.php @@ -21,7 +21,7 @@ class TokenServiceTest extends TestCase */ public function tokenserviceCreatesAndValidatesTokens(): void { - $tokenService = new TokenService(); + $tokenService = new TokenService; $data = [ 'me' => 'https://example.org', 'client_id' => 'https://quill.p3k.io', @@ -55,7 +55,7 @@ class TokenServiceTest extends TestCase $config = resolve(Configuration::class); $token = $config->builder() - ->issuedAt(new DateTimeImmutable()) + ->issuedAt(new DateTimeImmutable) ->withClaim('client_id', $data['client_id']) ->withClaim('me', $data['me']) ->withClaim('scope', $data['scope']) @@ -63,7 +63,7 @@ class TokenServiceTest extends TestCase ->getToken($config->signer(), InMemory::plainText(random_bytes(32))) ->toString(); - $service = new TokenService(); + $service = new TokenService; $service->validateToken($token); } } diff --git a/tests/TestCase.php b/tests/TestCase.php index 2932d4a6..cade29d9 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -7,4 +7,13 @@ use Illuminate\Foundation\Testing\TestCase as BaseTestCase; abstract class TestCase extends BaseTestCase { use CreatesApplication; + + public function removeDirIfEmpty(string $dir): void + { + // scandir() will always return `.` and `..` so even an “empty” + // directory will have a count of 2 + if (is_dir($dir) && count(scandir($dir)) === 2) { + rmdir($dir); + } + } } diff --git a/tests/TestToken.php b/tests/TestToken.php index 397967dc..287e2757 100644 --- a/tests/TestToken.php +++ b/tests/TestToken.php @@ -12,7 +12,7 @@ trait TestToken $config = $this->app->make(Configuration::class); return $config->builder() - ->issuedAt(new DateTimeImmutable()) + ->issuedAt(new DateTimeImmutable) ->withClaim('client_id', 'https://quill.p3k.io') ->withClaim('me', 'http://jonnybarnes.localhost') ->withClaim('scope', ['create', 'update']) @@ -25,7 +25,7 @@ trait TestToken $config = $this->app->make(Configuration::class); return $config->builder() - ->issuedAt(new DateTimeImmutable()) + ->issuedAt(new DateTimeImmutable) ->withClaim('client_id', 'https://quill.p3k.io') ->withClaim('me', 'https://jonnybarnes.localhost') ->withClaim('scope', 'view') @@ -38,7 +38,7 @@ trait TestToken $config = $this->app->make(Configuration::class); return $config->builder() - ->issuedAt(new DateTimeImmutable()) + ->issuedAt(new DateTimeImmutable) ->withClaim('client_id', 'https://quill.p3k.io') ->withClaim('me', 'https://jonnybarnes.localhost') ->getToken($config->signer(), $config->signingKey()) diff --git a/tests/Unit/ArticlesTest.php b/tests/Unit/ArticlesTest.php index 2327eac2..e214d9d1 100644 --- a/tests/Unit/ArticlesTest.php +++ b/tests/Unit/ArticlesTest.php @@ -16,7 +16,7 @@ class ArticlesTest extends TestCase /** @test */ public function titleSlugIsGeneratedAutomatically(): void { - $article = new Article(); + $article = new Article; $article->title = 'My Title'; $article->main = 'Content'; $article->save(); @@ -27,7 +27,7 @@ class ArticlesTest extends TestCase /** @test */ public function markdownContentIsConverted(): void { - $article = new Article(); + $article = new Article; $article->main = 'Some *markdown*'; $this->assertEquals('

Some markdown

' . PHP_EOL, $article->html); diff --git a/tests/Unit/BookmarksTest.php b/tests/Unit/BookmarksTest.php index 7916b7a7..3a4aabd7 100644 --- a/tests/Unit/BookmarksTest.php +++ b/tests/Unit/BookmarksTest.php @@ -34,7 +34,7 @@ class BookmarksTest extends TestCase $handler = HandlerStack::create($mock); $client = new Client(['handler' => $handler]); $this->app->instance(Client::class, $client); - $url = (new BookmarkService())->getArchiveLink('https://example.org'); + $url = (new BookmarkService)->getArchiveLink('https://example.org'); $this->assertEquals('/web/1234/example.org', $url); } @@ -49,7 +49,7 @@ class BookmarksTest extends TestCase $handler = HandlerStack::create($mock); $client = new Client(['handler' => $handler]); $this->app->instance(Client::class, $client); - (new BookmarkService())->getArchiveLink('https://example.org'); + (new BookmarkService)->getArchiveLink('https://example.org'); } /** @test */ @@ -63,6 +63,6 @@ class BookmarksTest extends TestCase $handler = HandlerStack::create($mock); $client = new Client(['handler' => $handler]); $this->app->instance(Client::class, $client); - (new BookmarkService())->getArchiveLink('https://example.org'); + (new BookmarkService)->getArchiveLink('https://example.org'); } } diff --git a/tests/Unit/Jobs/DownloadWebMentionJobTest.php b/tests/Unit/Jobs/DownloadWebMentionJobTest.php index 94b23dce..03e15a82 100644 --- a/tests/Unit/Jobs/DownloadWebMentionJobTest.php +++ b/tests/Unit/Jobs/DownloadWebMentionJobTest.php @@ -16,7 +16,7 @@ class DownloadWebMentionJobTest extends TestCase { protected function tearDown(): void { - $fs = new FileSystem(); + $fs = new FileSystem; if ($fs->exists(storage_path() . '/HTML/https')) { $fs->deleteDirectory(storage_path() . '/HTML/https'); } diff --git a/tests/Unit/Jobs/ProcessBookmarkJobTest.php b/tests/Unit/Jobs/ProcessBookmarkJobTest.php index b0584adc..4078712e 100644 --- a/tests/Unit/Jobs/ProcessBookmarkJobTest.php +++ b/tests/Unit/Jobs/ProcessBookmarkJobTest.php @@ -46,7 +46,7 @@ class ProcessBookmarkJobTest extends TestCase $bookmark = Bookmark::factory()->create(); $service = $this->createMock(BookmarkService::class); $service->method('getArchiveLink') - ->will($this->throwException(new InternetArchiveException())); + ->will($this->throwException(new InternetArchiveException)); $this->app->instance(BookmarkService::class, $service); $job = new ProcessBookmark($bookmark); diff --git a/tests/Unit/Jobs/ProcessMediaJobTest.php b/tests/Unit/Jobs/ProcessMediaJobTest.php index 64d7396f..ae870d18 100644 --- a/tests/Unit/Jobs/ProcessMediaJobTest.php +++ b/tests/Unit/Jobs/ProcessMediaJobTest.php @@ -14,38 +14,48 @@ class ProcessMediaJobTest extends TestCase /** @test */ public function nonMediaFilesAreNotSaved(): void { - Storage::fake('s3'); $manager = app()->make(ImageManager::class); - Storage::disk('local')->put('file.txt', 'This is not an image'); + Storage::disk('local')->put('media/file.txt', 'This is not an image'); $job = new ProcessMedia('file.txt'); $job->handle($manager); - $this->assertFalse(file_exists(storage_path('app') . '/file.txt')); + $this->assertFileDoesNotExist(storage_path('app/media/') . 'file.txt'); } /** @test */ public function smallImagesAreNotResized(): void { - Storage::fake('s3'); $manager = app()->make(ImageManager::class); - Storage::disk('local')->put('aaron.png', file_get_contents(__DIR__ . '/../../aaron.png')); + Storage::disk('local')->put('media/aaron.png', file_get_contents(__DIR__ . '/../../aaron.png')); $job = new ProcessMedia('aaron.png'); $job->handle($manager); - $this->assertFalse(file_exists(storage_path('app') . '/aaron.png')); + $this->assertFileDoesNotExist(storage_path('app/media/') . 'aaron.png'); + + // Tidy up files created by the job + Storage::disk('local')->delete('public/media/aaron.png'); + Storage::disk('local')->delete('public/media'); } /** @test */ public function largeImagesHaveSmallerImagesCreated(): void { $manager = app()->make(ImageManager::class); - Storage::disk('local')->put('test-image.jpg', file_get_contents(__DIR__.'/../../test-image.jpg')); - Storage::fake('s3'); + Storage::disk('local')->put('media/test-image.jpg', file_get_contents(__DIR__.'/../../test-image.jpg')); $job = new ProcessMedia('test-image.jpg'); $job->handle($manager); - Storage::disk('s3')->assertExists('media/test-image-small.jpg'); - Storage::disk('s3')->assertExists('media/test-image-medium.jpg'); - $this->assertFalse(file_exists(storage_path('app') . '/test-image.jpg')); + Storage::disk('local')->assertExists('public/media/test-image.jpg'); + Storage::disk('local')->assertExists('public/media/test-image-small.jpg'); + Storage::disk('local')->assertExists('public/media/test-image-medium.jpg'); + + $this->assertFileDoesNotExist(storage_path('app/media/') . 'test-image.jpg'); + + // Tidy up files created by the job + Storage::disk('local')->delete('public/media/test-image.jpg'); + Storage::disk('local')->delete('public/media/test-image-small.jpg'); + Storage::disk('local')->delete('public/media/test-image-medium.jpg'); + $this->removeDirIfEmpty(storage_path('app/public/media')); + $this->removeDirIfEmpty(storage_path('app/media')); } } diff --git a/tests/Unit/Jobs/ProcessWebMentionJobTest.php b/tests/Unit/Jobs/ProcessWebMentionJobTest.php index b792b8d2..e9b24bde 100644 --- a/tests/Unit/Jobs/ProcessWebMentionJobTest.php +++ b/tests/Unit/Jobs/ProcessWebMentionJobTest.php @@ -25,7 +25,7 @@ class ProcessWebMentionJobTest extends TestCase protected function tearDown(): void { - $fs = new FileSystem(); + $fs = new FileSystem; if ($fs->exists(storage_path() . '/HTML/https')) { $fs->deleteDirectory(storage_path() . '/HTML/https'); } @@ -37,7 +37,7 @@ class ProcessWebMentionJobTest extends TestCase { $this->expectException(RemoteContentNotFoundException::class); - $parser = new Parser(); + $parser = new Parser; $mock = new MockHandler([ new Response(404), ]); @@ -56,7 +56,7 @@ class ProcessWebMentionJobTest extends TestCase { Queue::fake(); - $parser = new Parser(); + $parser = new Parser; $html = <<<'HTML'
@@ -88,7 +88,7 @@ class ProcessWebMentionJobTest extends TestCase { Queue::fake(); - $parser = new Parser(); + $parser = new Parser; $note = Note::factory()->create(); $source = 'https://aaronpk.localhost/reply/1'; WebMention::factory()->create([ @@ -123,7 +123,7 @@ class ProcessWebMentionJobTest extends TestCase /** @test */ public function webmentionReplyGetsDeletedWhenReplyToValueChanges(): void { - $parser = new Parser(); + $parser = new Parser; $html = <<<'HTML'
@@ -139,7 +139,7 @@ class ProcessWebMentionJobTest extends TestCase $note = Note::factory()->create(); $source = 'https://example.org/reply/1'; - $webmention = new WebMention(); + $webmention = new WebMention; $webmention->source = $source; $webmention->target = config('app.url') . '/notes/E'; $webmention->type = 'in-reply-to'; @@ -160,7 +160,7 @@ class ProcessWebMentionJobTest extends TestCase /** @test */ public function webmentionLikeGetsDeletedWhenLikeOfValueChanges(): void { - $parser = new Parser(); + $parser = new Parser; $html = <<<'HTML'
@@ -176,7 +176,7 @@ class ProcessWebMentionJobTest extends TestCase $note = Note::factory()->create(); $source = 'https://example.org/reply/1'; - $webmention = new WebMention(); + $webmention = new WebMention; $webmention->source = $source; $webmention->target = config('app.url') . '/notes/E'; $webmention->type = 'like-of'; @@ -197,7 +197,7 @@ class ProcessWebMentionJobTest extends TestCase /** @test */ public function webmentionRepostGetsDeletedWhenRepostOfValueChanges(): void { - $parser = new Parser(); + $parser = new Parser; $html = <<<'HTML'
@@ -213,7 +213,7 @@ class ProcessWebMentionJobTest extends TestCase $note = Note::factory()->create(); $source = 'https://example.org/reply/1'; - $webmention = new WebMention(); + $webmention = new WebMention; $webmention->source = $source; $webmention->target = config('app.url') . '/notes/E'; $webmention->type = 'repost-of'; diff --git a/tests/Unit/Jobs/SaveProfileImageJobTest.php b/tests/Unit/Jobs/SaveProfileImageJobTest.php index e2bbdd4b..83f476e1 100644 --- a/tests/Unit/Jobs/SaveProfileImageJobTest.php +++ b/tests/Unit/Jobs/SaveProfileImageJobTest.php @@ -30,7 +30,7 @@ class SaveProfileImageJobTest extends TestCase $mf = ['items' => []]; $authorship = $this->createMock(Authorship::class); $authorship->method('findAuthor') - ->will($this->throwException(new AuthorshipParserException())); + ->will($this->throwException(new AuthorshipParserException)); $job = new SaveProfileImage($mf); $this->assertNull($job->handle($authorship)); diff --git a/tests/Unit/Jobs/SendWebMentionJobTest.php b/tests/Unit/Jobs/SendWebMentionJobTest.php index 95789eef..f52686be 100644 --- a/tests/Unit/Jobs/SendWebMentionJobTest.php +++ b/tests/Unit/Jobs/SendWebMentionJobTest.php @@ -17,7 +17,7 @@ class SendWebMentionJobTest extends TestCase /** @test */ public function discoverWebmentionEndpointOnOwnDomain(): void { - $note = new Note(); + $note = new Note; $job = new SendWebMentions($note); $this->assertNull($job->discoverWebmentionEndpoint(config('app.url'))); $this->assertNull($job->discoverWebmentionEndpoint('/notes/tagged/test')); @@ -34,7 +34,7 @@ class SendWebMentionJobTest extends TestCase $client = new Client(['handler' => $handler]); $this->app->instance(Client::class, $client); - $job = new SendWebMentions(new Note()); + $job = new SendWebMentions(new Note); $this->assertEquals($url, $job->discoverWebmentionEndpoint('https://example.org')); } @@ -49,7 +49,7 @@ class SendWebMentionJobTest extends TestCase $client = new Client(['handler' => $handler]); $this->app->instance(Client::class, $client); - $job = new SendWebMentions(new Note()); + $job = new SendWebMentions(new Note); $this->assertEquals( 'https://example.org/webmention', $job->discoverWebmentionEndpoint('https://example.org') @@ -67,7 +67,7 @@ class SendWebMentionJobTest extends TestCase $client = new Client(['handler' => $handler]); $this->app->instance(Client::class, $client); - $job = new SendWebMentions(new Note()); + $job = new SendWebMentions(new Note); $this->assertEquals( 'https://example.org/webmention', $job->discoverWebmentionEndpoint('https://example.org') @@ -77,7 +77,7 @@ class SendWebMentionJobTest extends TestCase /** @test */ public function ensureEmptyNoteDoesNotTriggerAnyActions(): void { - $job = new SendWebMentions(new Note()); + $job = new SendWebMentions(new Note); $this->assertNull($job->handle()); } @@ -86,7 +86,7 @@ class SendWebMentionJobTest extends TestCase { $uri = '/blog/post'; $base = 'https://example.org/'; - $job = new SendWebMentions(new Note()); + $job = new SendWebMentions(new Note); $this->assertEquals('https://example.org/blog/post', $job->resolveUri($uri, $base)); } @@ -102,7 +102,7 @@ class SendWebMentionJobTest extends TestCase $client = new Client(['handler' => $handler]); $this->app->instance(Client::class, $client); - $note = new Note(); + $note = new Note; $note->note = 'Hi [Aaron](https://aaronparecki.com)'; $note->save(); $job = new SendWebMentions($note); @@ -121,7 +121,7 @@ class SendWebMentionJobTest extends TestCase $client = new Client(['handler' => $handler]); $this->app->instance(Client::class, $client); - $job = new SendWebMentions(new Note()); + $job = new SendWebMentions(new Note); $this->assertNull($job->discoverWebmentionEndpoint('https://example.org')); } } diff --git a/tests/Unit/LikesTest.php b/tests/Unit/LikesTest.php index f9203d8d..dc243967 100644 --- a/tests/Unit/LikesTest.php +++ b/tests/Unit/LikesTest.php @@ -15,7 +15,7 @@ class LikesTest extends TestCase /** @test */ public function weCanSetTheAuthorUrl(): void { - $like = new Like(); + $like = new Like; $like->author_url = 'https://joe.bloggs/'; $this->assertEquals('https://joe.bloggs', $like->author_url); } @@ -23,7 +23,7 @@ class LikesTest extends TestCase /** @test */ public function weDoNotModifyPlainTextContent(): void { - $like = new Like(); + $like = new Like; $like->url = 'https://example.org/post/123'; $like->content = 'some plaintext content'; $like->save(); @@ -34,7 +34,7 @@ class LikesTest extends TestCase /** @test */ public function weCanHandleBlankContent(): void { - $like = new Like(); + $like = new Like; $like->url = 'https://example.org/post/123'; $like->content = null; $like->save(); @@ -57,7 +57,7 @@ class LikesTest extends TestCase

Hello

HTML; - $like = new Like(); + $like = new Like; $like->url = 'https://example.org/post/123'; $like->content = $htmlEvil; $like->save(); diff --git a/tests/Unit/MediaTest.php b/tests/Unit/MediaTest.php index e4f06d16..df1a22cf 100644 --- a/tests/Unit/MediaTest.php +++ b/tests/Unit/MediaTest.php @@ -25,7 +25,7 @@ class MediaTest extends TestCase public function absoluteUrlsAreReturnedUnmodified(): void { $absoluteUrl = 'https://instagram-cdn.com/image/uuid'; - $media = new Media(); + $media = new Media; $media->path = $absoluteUrl; $this->assertEquals($absoluteUrl, $media->url); diff --git a/tests/Unit/NotesTest.php b/tests/Unit/NotesTest.php index a9c595d2..3679349d 100644 --- a/tests/Unit/NotesTest.php +++ b/tests/Unit/NotesTest.php @@ -82,7 +82,7 @@ class NotesTest extends TestCase 'twitter' => null, 'facebook' => 123456, ]); - $fileSystem = new Filesystem(); + $fileSystem = new Filesystem; $fileSystem->ensureDirectoryExists(public_path('/assets/profile-images/aaronparecki.com')); if (! $fileSystem->exists(public_path('/assets/profile-images/aaronparecki.com/image'))) { $fileSystem->copy('./tests/aaron.png', public_path('/assets/profile-images/aaronparecki.com/image')); @@ -201,7 +201,7 @@ class NotesTest extends TestCase $this->app->instance(Client::class, $client); - $note = new Note(); + $note = new Note; $address = $note->reverseGeoCode(51.50084, -0.14264); $this->assertEquals( @@ -226,7 +226,7 @@ class NotesTest extends TestCase $this->app->instance(Client::class, $client); - $note = new Note(); + $note = new Note; $address = $note->reverseGeoCode(51.02, 0.91); $this->assertEquals( @@ -253,7 +253,7 @@ class NotesTest extends TestCase $this->app->instance(Client::class, $client); - $note = new Note(); + $note = new Note; $address = $note->reverseGeoCode(53.466277988406, -2.2304474827445); $this->assertEquals( @@ -280,7 +280,7 @@ class NotesTest extends TestCase $this->app->instance(Client::class, $client); - $note = new Note(); + $note = new Note; $address = $note->reverseGeoCode(51.1, 0.61); $this->assertEquals('Kent, UK', $address); @@ -304,7 +304,7 @@ class NotesTest extends TestCase $this->app->instance(Client::class, $client); - $note = new Note(); + $note = new Note; $address = $note->reverseGeoCode(54.3, 9.4); $this->assertEquals('Ireland', $address); @@ -323,7 +323,7 @@ class NotesTest extends TestCase $note->media()->save($media); $expected = 'A nice image -'; +'; $this->assertEquals($expected, $note->content); } @@ -340,7 +340,7 @@ class NotesTest extends TestCase $note->media()->save($media); $expected = 'A nice video -
diff --git a/tests/Feature/MicropubMediaTest.php b/tests/Feature/MicropubMediaTest.php index abdb2619..527116cf 100644 --- a/tests/Feature/MicropubMediaTest.php +++ b/tests/Feature/MicropubMediaTest.php @@ -261,7 +261,6 @@ class MicropubMediaTest extends TestCase ); $path = parse_url($response->headers->get('Location'), PHP_URL_PATH); - dump($path); $filename = Str::chopStart($path, '/storage/'); Queue::assertPushed(ProcessMedia::class); Storage::disk('local')->assertExists($filename); From 84383ecd311f891640576b3427e89caae2702b70 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sat, 30 Nov 2024 15:31:17 +0000 Subject: [PATCH 05/10] Apply the same fix to replies and reposts --- resources/views/notes/show.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/notes/show.blade.php b/resources/views/notes/show.blade.php index 73de4216..11e347bf 100644 --- a/resources/views/notes/show.blade.php +++ b/resources/views/notes/show.blade.php @@ -13,7 +13,7 @@ @if (array_key_exists('photo', $reply['author']['properties'])) @endif - {{ $reply['author']['properties']['name'][0] }} + {{ $reply['author']['properties']['name'][0] ?? $reply['author']['properties']['nickname'][0] ?? 'unknown' }} @else Unknown author @@ -47,7 +47,7 @@ return ($webmention->type == 'repost-of'); }) as $repost) - {{ $repost['author']['properties']['name'][0] }} reposted this at {{ $repost['published'] }} + {{ $repost['author']['properties']['name'][0] ?? $repost['author']['properties']['nickname'][0] ?? 'unknown' }} reposted this at {{ $repost['published'] }} @endforeach
From 70e5b9bec7ee3d10e717718a178922f61e20ed5a Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sat, 30 Nov 2024 15:58:25 +0000 Subject: [PATCH 06/10] Add snow fall to the site Some tweaks to the node dependencies and compression script also done --- package-lock.json | 456 ++++++++++--------------- public/assets/frontend/is-land.js.br | Bin 2690 -> 2448 bytes public/assets/frontend/snow-fall.js.br | Bin 1129 -> 1048 bytes resources/views/master.blade.php | 10 + scripts/compress.sh | 15 +- 5 files changed, 198 insertions(+), 283 deletions(-) diff --git a/package-lock.json b/package-lock.json index 73db94a1..6cd6c9c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,13 +32,14 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.9.tgz", - "integrity": "sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/highlight": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -55,104 +56,10 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.9.tgz", - "integrity": "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.2.tgz", - "integrity": "sha512-6tC/MnlEvs5suR4Ahef4YlBccJDHZuxGsAlxXmybWjZ5jPxlzLSMlRZ9mVHSRvlD+CmtE7+hJ+UQbfXrws/rUQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", + "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", "dev": true, "funding": [ { @@ -169,13 +76,13 @@ "node": ">=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.2" + "@csstools/css-tokenizer": "^3.0.3" } }, "node_modules/@csstools/css-tokenizer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.2.tgz", - "integrity": "sha512-IuTRcD53WHsXPCZ6W7ubfGqReTJ9Ra0yRRFmXYP/Re8hFYYfoIYIK4080X5luslVLWimhIeFq0hj09urVMQzTw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", + "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", "dev": true, "funding": [ { @@ -193,9 +100,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-3.0.1.tgz", - "integrity": "sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz", + "integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==", "dev": true, "funding": [ { @@ -212,14 +119,14 @@ "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1" + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" } }, "node_modules/@csstools/selector-specificity": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-4.0.0.tgz", - "integrity": "sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", "dev": true, "funding": [ { @@ -236,7 +143,7 @@ "node": ">=18" }, "peerDependencies": { - "postcss-selector-parser": "^6.1.0" + "postcss-selector-parser": "^7.0.0" } }, "node_modules/@dual-bundle/import-meta-resolve": { @@ -251,17 +158,20 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } @@ -280,9 +190,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", - "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { @@ -290,9 +200,9 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", - "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", + "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -329,9 +239,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz", - "integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", + "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", "dev": true, "license": "Apache-2.0", "engines": { @@ -339,9 +249,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", - "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "license": "MIT", "dependencies": { @@ -400,9 +310,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.13.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.13.0.tgz", - "integrity": "sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==", + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz", + "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==", "dev": true, "license": "MIT", "engines": { @@ -420,9 +330,9 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.1.tgz", - "integrity": "sha512-HFZ4Mp26nbWk9d/BpvP0YNL6W4UoZF0VFcTw/aPPA8RpOxeFQgK+ClABGgAUXs9Y/RGX/l1vOmrqz1MQt9MNuw==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", + "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -433,9 +343,9 @@ } }, "node_modules/@humanfs/core": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz", - "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -443,19 +353,33 @@ } }, "node_modules/@humanfs/node": { - "version": "0.16.5", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.5.tgz", - "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==", + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@humanfs/core": "^0.19.0", + "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.3.0" }, "engines": { "node": ">=18.18.0" } }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -471,9 +395,9 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -523,15 +447,15 @@ } }, "node_modules/@stylistic/eslint-plugin": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.9.0.tgz", - "integrity": "sha512-OrDyFAYjBT61122MIY1a3SfEgy3YCMgt2vL4eoPmvTwDBwyQhAXurxNQznlRD/jESNfYWfID8Ej+31LljvF7Xg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.11.0.tgz", + "integrity": "sha512-PNRHbydNG5EH8NK4c+izdJlxajIR6GxcUhzsYNRsn6Myep4dsZt0qFCz3rCPnkvgO5FYibDcMqgNHUT+zvjYZw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^8.8.0", - "eslint-visitor-keys": "^4.1.0", - "espree": "^10.2.0", + "@typescript-eslint/utils": "^8.13.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", "estraverse": "^5.3.0", "picomatch": "^4.0.2" }, @@ -557,14 +481,14 @@ "license": "MIT" }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.11.0.tgz", - "integrity": "sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.16.0.tgz", + "integrity": "sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.11.0", - "@typescript-eslint/visitor-keys": "8.11.0" + "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/visitor-keys": "8.16.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -575,9 +499,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.11.0.tgz", - "integrity": "sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.16.0.tgz", + "integrity": "sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==", "dev": true, "license": "MIT", "engines": { @@ -589,14 +513,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.11.0.tgz", - "integrity": "sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.16.0.tgz", + "integrity": "sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "8.11.0", - "@typescript-eslint/visitor-keys": "8.11.0", + "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/visitor-keys": "8.16.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -618,16 +542,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.11.0.tgz", - "integrity": "sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.16.0.tgz", + "integrity": "sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.11.0", - "@typescript-eslint/types": "8.11.0", - "@typescript-eslint/typescript-estree": "8.11.0" + "@typescript-eslint/scope-manager": "8.16.0", + "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/typescript-estree": "8.16.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -638,17 +562,22 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz", - "integrity": "sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.16.0.tgz", + "integrity": "sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.11.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "8.16.0", + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -658,19 +587,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@zachleat/snow-fall": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@zachleat/snow-fall/-/snow-fall-1.0.2.tgz", @@ -678,9 +594,9 @@ "license": "MIT" }, "node_modules/acorn": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", - "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", "bin": { @@ -889,9 +805,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -914,13 +830,13 @@ } }, "node_modules/css-tree": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.0.0.tgz", - "integrity": "sha512-o88DVQ6GzsABn1+6+zo2ct801dBO5OASVyxbbvA2W20ue2puSh/VOuqUj90eUeMSX/xqGqBmOKiRQN7tJOuBXw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.0.1.tgz", + "integrity": "sha512-8Fxxv+tGhORlshCdCwnNJytvlvq46sOLSYEx2ZIGurahWvMucSRnyjPA3AmrMq4VPRYbHVpWj5VkiVasrM2H4Q==", "dev": true, "license": "MIT", "dependencies": { - "mdn-data": "2.10.0", + "mdn-data": "2.12.1", "source-map-js": "^1.0.1" }, "engines": { @@ -1019,32 +935,32 @@ } }, "node_modules/eslint": { - "version": "9.13.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.13.0.tgz", - "integrity": "sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==", + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.16.0.tgz", + "integrity": "sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.11.0", - "@eslint/config-array": "^0.18.0", - "@eslint/core": "^0.7.0", - "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.13.0", - "@eslint/plugin-kit": "^0.2.0", - "@humanfs/node": "^0.16.5", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.16.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.3.1", + "@humanwhocodes/retry": "^0.4.1", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.5", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.1.0", - "eslint-visitor-keys": "^4.1.0", - "espree": "^10.2.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -1058,8 +974,7 @@ "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" @@ -1080,9 +995,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz", - "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -1097,9 +1012,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", - "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1134,15 +1049,15 @@ } }, "node_modules/espree": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz", - "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.12.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.1.0" + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1333,9 +1248,9 @@ } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true, "license": "ISC" }, @@ -1394,9 +1309,9 @@ } }, "node_modules/globals": { - "version": "15.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", - "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", + "version": "15.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz", + "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==", "dev": true, "license": "MIT", "engines": { @@ -1637,9 +1552,9 @@ } }, "node_modules/known-css-properties": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz", - "integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==", + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz", + "integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==", "dev": true, "license": "MIT" }, @@ -1706,9 +1621,9 @@ } }, "node_modules/mdn-data": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.10.0.tgz", - "integrity": "sha512-qq7C3EtK3yJXMwz1zAab65pjl+UhohqMOctTgcqjLOWABqmwj+me02LSsCuEUxnst9X1lCBpoE0WArGKgdGDzw==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.1.tgz", + "integrity": "sha512-rsfnCbOHjqrhWxwt5/wtSLzpoKTzW7OXdT5lLOIH1OTYhWu9rRJveGq0sKvDZODABH7RX+uoR+DYcpFnq4Tf6Q==", "dev": true, "license": "CC0-1.0" }, @@ -1786,9 +1701,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, "funding": [ { @@ -1954,9 +1869,9 @@ } }, "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "funding": [ { @@ -1975,7 +1890,7 @@ "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.1.0", + "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, "engines": { @@ -2017,9 +1932,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2262,9 +2177,9 @@ } }, "node_modules/stylelint": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.10.0.tgz", - "integrity": "sha512-z/8X2rZ52dt2c0stVwI9QL2AFJhLhbPkyfpDFcizs200V/g7v+UYY6SNcB9hKOLcDDX/yGLDsY/pX08sLkz9xQ==", + "version": "16.11.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.11.0.tgz", + "integrity": "sha512-zrl4IrKmjJQ+h9FoMp69UMCq5SxeHk0URhxUBj4d3ISzo/DplOFBJZc7t7Dr6otB+1bfbbKNLOmCDpzKSlW+Nw==", "dev": true, "funding": [ { @@ -2278,16 +2193,16 @@ ], "license": "MIT", "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.1", - "@csstools/css-tokenizer": "^3.0.1", - "@csstools/media-query-list-parser": "^3.0.1", - "@csstools/selector-specificity": "^4.0.0", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/media-query-list-parser": "^4.0.2", + "@csstools/selector-specificity": "^5.0.0", "@dual-bundle/import-meta-resolve": "^4.1.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", "cosmiconfig": "^9.0.0", "css-functions-list": "^3.2.3", - "css-tree": "^3.0.0", + "css-tree": "^3.0.1", "debug": "^4.3.7", "fast-glob": "^3.3.2", "fastest-levenshtein": "^1.0.16", @@ -2299,16 +2214,16 @@ "ignore": "^6.0.2", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.34.0", + "known-css-properties": "^0.35.0", "mathml-tag-names": "^2.1.3", "meow": "^13.2.0", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", - "picocolors": "^1.0.1", - "postcss": "^8.4.47", + "picocolors": "^1.1.1", + "postcss": "^8.4.49", "postcss-resolve-nested-selector": "^0.1.6", "postcss-safe-parser": "^7.0.1", - "postcss-selector-parser": "^6.1.2", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", @@ -2504,13 +2419,6 @@ "dev": true, "license": "MIT" }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2525,9 +2433,9 @@ } }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", "dev": true, "license": "MIT", "engines": { @@ -2551,9 +2459,9 @@ } }, "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "dev": true, "license": "Apache-2.0", "peer": true, diff --git a/public/assets/frontend/is-land.js.br b/public/assets/frontend/is-land.js.br index fd1d38ff2b87f548980e55c08aa572831af87e69..1fb2d6e07b58b495ec81c15fa18dfad2510a6b0c 100644 GIT binary patch literal 2448 zcmaDTA;9?1!pFR9)4?YnbOjeV)#V58F1GxeaoZ>Cfv%`hzJ7SngtHQ-SwBv=*^KX*A8cTBdw9dg-5Gi?8t&o?X?(;9eIN?!K)K6_Q{+Paw7D<>6MtP#1$#uDvJb-8lSY2OGoAiOzU#TDFIU^Q!#vZ=v6u0;(bVmBK}+4{PCoJbrO-6-*o~(g z9X=n9*J{7WWXx}T#^Unw2EjYcE5Cg(Fxj=;dZxs(LrgyZ#3MbAlst`I=~>isMdGis z!j~k0B`@9d_U$csRvqP;GqrfWA+xDxlRL8^v+aT#Ej=pTd#h3}2#Vj}uP@!|uXo`= zjkfyMx<`-a$1808=I}h6y=;DQuj8*pyQe=Bwa)*4|CC_kqeVhxr=LvR@h%qESIwKI%Nnt8o98X#8JC1v-Uj~s?sdVxzca$S zbZX(cALdMDo80*sv(CR{Iq|iT`_AXK`^wv^dOtZTKHlo2C3<4-Lt)9oX4}^0yuJT1 zQSK7EOF#GC+PKF~XJ)0|@%eXH?r)m7`}tpSw)6Dmu14%mt=0Xu_-4(FpLySx#(6AO zKS z&NFU>evX?caFKat+4STuSO0%tG~~Q|;;34xT~6hJW+mGI*Qe1DZ{!LWcC>BWQDRkd z%qr)yM@`7lc-2O?j(yeTrwUtFXuF7LY&YiHVEjNV?Yq*MH9Or8uH7b3eEx03rLEI0 zX)M^ZVTy*tO1U;ewn;5vSH5uS${T(B{Ez>c*&6`~?n%*X!S4=p9tq-4;8Qd>-J{Wy zKSBQXkqxW1DMxti-_*;%xy655Imt#`!|(t zGrql}Hhbf#Pn}!eu2_8HvR?N#wQ09sPxQJyHPHLJT$|G7yaO-!s{IaT6`>+TVGxAnJYCC@6YnV8NVeQe&}nF)Izl~}kP3S8SA{CU|F!Li{y(udH}5MO|4$P#)Ld|*+&HF7 zDeCyOy{CPhzV+2Lsd?Y9`XqluAZbzb6>pi?*4b|!Op(boUEdSxvq|&)yjyO+L|5xP zN!YQUPnPzV%6ho{fy?C&|29AO558z( zkz7(Gw={UWu*EB%#g5YEJjr(hjC8`IU-GZ|m7yB;RapBwyP43%-BNb8IY&Zdc9wok z*vK!<-1=qjD*LpsG(F?&*XM3IA8t;})puL^FO4DdOw)8p>u)6@o;7KU?synp_gc|c zak4Yzv*9Pxly%S@9G%a(TTBe7Urn$`S*F zDlI!@vhxHP&z-(rovZRrY|dYCX=miXtFt{W{~_^MVU z^cbg~MpL0x_WCBT&3RGQCdpTy-%?e$?=zvrqcqTYrJMralv8(W&uqLFJM-M7E1#T2 zR>(|W$)ggsGyRE>#xl8x%erP3*|M1|&)<~gS}#|%zY^WpwX=HV&)oU$5!U~o#NIHR z^uKY(E4#jpCF+N)pZ80P7uw*U}H1W=j4rkN4CZU}b&1-*R&ZgS@+bjIF>nG>_&|h{~!1K!THHV~w@*9$r zQnFsNH`Q9(gdP#Lv?=ZjuKsxCc%}9Z!4w0jySvj!i&>5MXBB9Cp3{|*BYI<{`?h7f8a7P) zYR@26w&%WRcZ0&wYAL@-kN>4w6mu{g%y3a&p?Ga|vDDoQ0m*Z#PA#}PbvsAl^$(Gy zAJVyXe@o9>)_kODp31gxHb?E+Hq-7U%(B@>%L_k;Z0up3&b8~rI{O#*)^Fp@ zwm+O6S2Q`HAo<0GuTy=^k8@i*Z1{HXLgdB6#{#cDIj#{Q{B2^0F>jP+`3^t56W0#R z|JvVK!+GY}l%+XWCZ81k`mBsM*y8Wu6Jn8)pOv=WF=>f&y~@5|MWy)9pbG}Orrw`* zZyG;A?Cave8*b?=5{+%?d7AYva<20at?3otzuy*Y zvhqA|+Qod&dWo%>vQ`Bd)@hMGn~!eEzNOG`;ritndn?_Z>-R3$mb=+%LA09U%%F8w z>o)2JJA6KoK_Tj9ixtq-OtR0opA}>npJ2b=P8EftDZX-qjZo{)F literal 2690 zcmaDTA)vTu27iN6%8c9pr_H=uYPnbKK z)G|B3sA161w#mWwX63!V-A?HiayHOm%QDx^7qVh7V6Ru%jU1BIbpKeE>!bx@Y*QD&9A46 zh<3c5{66VLZW61#)|8BAs;^SlXFEhXaSEQAx_tJ0am)w5!cP}~1Skk_zVfIWtmsi|ZFNs?PCHq}SGMqRiMqJ|h zM&%cerM@=2wtCu;`76@*{!Qm*d+X$yJ2TDZJid7Qy29>%-4adG*01NxF}i7Ip`XF$ zwq$9)T}z|FB8{lSHeWVP_e6Q)k%Szh&}K|CVkj`7~YR z^WlSuEXG>4PLKPt6$(_YxbaMIS+d^GE5)-ycW3O6NrL^i9!E^dm6x@YocYA*$D5DE z8#wPimCtE#xOT-&ev(=9Rr7_ZR_@b+iYm^ms6KvJw%BKz?dH>!C-%hOx;5qNwP$w| zh0QE;|I6p-t&h#mi+z4udfxm`YoBG6XFa=fCObN- z;A@k+A-?T{+Hrw(m#s^7f4lljc59lH+LM;_M}b#vzD`}_(9-|%@J}suC1q}{b&9Gb zYW${Z@{1aOEKL4CZ}O{|KYKS{4q-cb_h;=B=}%S4@-G}$PO5Kad?fPu>@*WKrzM^V zx1P;uP>QO2XY77)3tQx}EkccyhcqBhR+YxnH`;>5a$*?>+Jg0`pr=I`t@B?lqM= z_H>KyO7YIcH+Q}5xEr>n%HpBz)+MeB7G79!AdUM&kd)-?vy0bdhsh*6zDW+ruXu%$UFu}KGoDfTtXb_Fq2&GcTJU&HnElo!_;hhHDX z%AF><@~)p1WzK8)XUE$Wt_`;ow%*!f|LD94v#ijs*5kazc{yfBTyy8VE?#QR%&T_O zIAa&%q(ETuSZWDGUu+@ zn@4MQ++eJIV_J}7b>Qz@1$m>IxAUV6%~j@G&foD&B=str-3dp@lFz#jdd<_FqMhpV zXA$FSV@c<4UK?F{=G1ikOzIC{j6cM2w13mY^4slkAHz=xai}6lfU`F{SD%`{ngt1?K#?YS6f8p2}H$<{i!fdbaOek1bVCI~Wsf zG3CCd-KQ|;R)!6x(pzuslAQjpM>Ld6ebW5^k80~Dx4HDDPMPBMlCL+l=tRXDn*+?( zelIlJ@YOYJP13i$sgnQQ7UwQsuV41j;naTi--iEP_&#Nr3d(I?zRtU1N>y~=1kN*O zSkBt);pS5G%u0Fd!dm8_v36yh<0YGIE=9qw1fDI+zI$qsh-J>vGwgh7+(E~3xZ3C4 zU<%}B<(t>RB;n|t&UA|9i2=`t*DhDi?G0fvxUJ@D#jf{5Fve-2)brIxc7`upbDF(w z|A!OaXSgSd{8o|4c(XETCfkAl&*mf%ht2oe7~A+SO;=H|E^v6<6TLro(J_UDjLj|9 z6NFD3dZ=_@F5iYtmp|XX6w|^bDJJhD%abIVX?rIrzb&-CZ2yv*lj7DUFY+u=%;u~& zZTgn||5V3>RJ9C?4MFQZ7~PKW6J)<3*T!k&w@ga^hk;JhIi`*-v0+f{Mrv&Gu2 zmLA^@SIgB)W?nYbzkO!5|F<-YfVg+}mE;dC5V%~vr)S=U{VUkirK;}dDXgCNWBsc| z8mB+Xlpk;Q-|+X9-JF}fhAVj&u4m|A@b5M-Jggo$ODI;IGi0LcnuLZOt6aAg8fWKi zJji})Sz-Lc?ca%;?RGnq?<#;F|G{@`5t{#h^9-Vfv0 zCuCV7QQq2P+{btzqP)OPv%1&oQo2vm-33oQLS3TTL(6^F+xF!2>Mp&wjw84*OQM)l z)_?KaAA*N^)bqGmnCBPFk+tMIara0Nf2ZZ~7N%<&HZq|WX=y*gF0uBWt_-!i9Y2q2 z+G8_4m!#~6m9H(9>{|I_#kV6qS=$X}ev+>~klGY5_14VVJfFmkQeU)U+Wy(ywNr^s zynS-Ny4p&+iF#UK!hJjICti>Jy-O7`z*BV?lR7jC358>=gS~!Dge?;8- z?rrMt-*UcC@N6sk>tFGx^QoMP1zTKr?iKmA8SO4pW;nfk9)4V8t;>9kw?7snm+t#@ zbFalG=DS&4+iciA`gF~VJM8DM*HepY+3EvL(;17VoOr&mZS&^uwg=WII`}-k6ya61 z(b~mfuga}s*PFux;$&uIW$m&RPPkroxa`XJ10||gzIeW!G;iPYc?Rbur`)(UlXHER zfz}4o9WM1PKi(hkb<>&fNYw0NZ^Yq8f6LDo_BrfuEnh1lnb%ucu%)-A<^qj}b!@J6N+UW_* iX-@6*&zIk88~&i->yBm5io5XF!nbFBCJiHFKww@X%@&WaDt6%k4}RP|;W4M3U52CcB6OTAO z|E|F2)wpco+tenmt9oe`w_ReUy_<2_-s!;iQ%`(ey9iNyr|mnyccL-(@WQ4I zs|)wG=Qm7SqTsC~bt6j8r%^QG|J7R?z8U%*n;|55_-K{w;y+>buECOZ(Xmq^I&O$@ z)pH!38~pHkM#0OOxq(*i;=Io8-u3Kh&fdO$KmVUEJ8V?nyty@ThxD0mS`o{u;y-`T z{&YTNX3&j0*Lc&?=g%>Ynrs(T;8=3>5Vz&TSD(8KJuLZEC;sWa=2Y5jQ6ld4Ok--6 z_~m^&7_YBCmO9;L{?y~yrM5;%m$j#I8#T|FdQ#_+PSDyiGovp>3tow*oPL+9tv^A{ zb8Bn7Yfo6F!LIIA&QB{2J>C-(&B9l|`(w&74W`nk->>Yb{*wB+enM(+{G+cbhlJM6 zl$jQOT~1T4&yY=&QE7eZhl>XfN!`;aZ#45%S*;$h{q1>2%@xv&MjX>TCB@wIZ_Rr7 zG3L2-J-_?D>=5^a&k?Uh1g{<2SCAQIBzpXM(jB2xW>K@7HJ3i0?v0+19b{{8eakwz zog7bo)=e(HQ8@LVevx)aTX~Mh%!{X|%?Qj=m?kmjg~j7XF)G_d_gvQxK7G{gcKL>H zRe?7OBCZ8xUta7Jw=4OsXs-Ib*SEJ^FFz`~$ycW3{pB=)4>pZ`RZ((m(!cDtNVM<0 zcc+RgSxQw;Q^s~rLGXeD1>22wMEmZFsZ~4CAlSQi-$|*=|3#*zzZ<^lhsPg0mu7Bm zb4~T_OAmd4TFJQ%2Lml%sJ+c~za(B5Il1v-2?OVAiM^IfIvb;ZEoPZ=uiRa;{$Ah? zS5dVOPt|8{6h2z^(UOZXR&9Q~=9#v0y-d=J`;I96NIW&~eg2Ju9b3K?$s9a%uz&h= zamQHwnJwyq7oAqGd(5|6qq#*wI^@V9nHJ@{lQR^jan9qAT(^u>@zuPurGIPUSOgbb z{dK~lw$ybJ`yt*vMrT3~eURPJ`)6^2V&i4`RMjxuGexeuOpmYy8eCp`pX2hRCu?#z zB3Y+41iESYnx(D1a&3z3kB~1#w&<}n)gDS5C;*?nCZFA}13?vYis{&TJ57kiYG zOyaK8Uh|dSYtk-yV|D1e2WKuGIJ)sf_2GNIb~}#rT!~lh^U`AEF%>LS+BiWYI`GKD R{k1C28;&T+1xl;10|1_T_?`d& literal 1129 zcmX>o5XGQixAte{vC}VG3)4T`Hh4MX-q~F3pP#OC^+g>2T7Uh@x>9DLLuYUN`#;&~ z9otD!b|23wSpiPg6}NNG`?nixUD>o<^Yi?_=B2?CGL4nPFC8kn_G zx^Ve&MuSD$Ql~vzRQsJhvWrw5)a7_nHqJ9#a4+)ox?skzl=Q&K2QR*AxFk1>I zO_^%ZGJ7t>J$huxlBAY2$(GwWN1DTbQ)WT>BCZJ^@;oh$FOkvMyhqEL+tlpqex@(m z|Euo)|01y9j)d)}8yhpbKcpH6yK8^wm>(&(+wq^G(<6x)yHaKuzAD;~yUF_DoowYO z@s?#T4y~Wq@|oe8zqiHld7mbzD4gHSaUpXV<2B=6*1KC*eYzs%{_)XKZkIW;o`|`~ z$DDfH(b2niQmLbiqnTUtOpb^hk^iocX}nYTJob* z=;tpxqgc8UU%2@(^xd3$DKIms>;I9tmkRg&GyD7Js^XKBDzWAAT6-KOEvovr$lcF7 z@TVOUqe~;}f%axsolIUsKFO#VE+X?9EgssmHXkwJRuI_Yd9sCb{&SOu_Ybd*2@?bDlp%j?a4YaN*CMj^cSs zWO{$z;GcKxsjA&9KIP=!H+$@jAAh(# zJ#+o@yiET1!Z*93`DI`7uq}S=VkIGc9Vbe7UkY>PwR!+L|G$Zt9(2BFA8oNLJ%E&$0@b%5H*ZXC6oL={fBd5bEr2Ege z>oXY3%Xb{t$W(~-2+Z1ZdXrCp!Rqc)!q;E_PpOh9FX&;Lka3hd#C64)6$LA*leQ`- z@jVPZapCF?1&6!6E7x8ZztqJLmB+96_1r?C$_pvt-#Ks0cxzC@uzrF)+niQLnQMHU zi{ew+nN~bGm*^BRGxJ!uL6pi(3DqX|3+{;}2fS0AjhbygyZx@7>RL88X||;#W0bL3 z@Eb16`O;JW&hm^%f4J&h5dWchM#rTiwr$!n`PtJeX=f7`v+)Nw+pa&(XJ)7)@y2TD z=LyGe?D#(S;;ZE+ML$1!-hH^=Gk}LvOKF=jXXwqILz@G4&QIB*6KLWP@^UEvB5fgb diff --git a/resources/views/master.blade.php b/resources/views/master.blade.php index ae409f35..17a74653 100644 --- a/resources/views/master.blade.php +++ b/resources/views/master.blade.php @@ -72,6 +72,16 @@ @section('scripts') + + + + + + + @show diff --git a/scripts/compress.sh b/scripts/compress.sh index 4fe1b83e..727f1b83 100755 --- a/scripts/compress.sh +++ b/scripts/compress.sh @@ -1,16 +1,13 @@ #!/usr/bin/env zsh +if ! type fd &> /dev/null; then + echo "fd not installed" + exit 1 +fi + if ! type brotli &> /dev/null; then echo "brotli not installed" exit 1 fi -for file in ./public/assets/css/*.css -do - brotli --force --quality=11 --output=$file.br -- $file -done - -for file in ./public/assets/js/*.js -do - brotli --force --quality=11 --output=$file.br -- $file -done +fd -e css -e js --search-path ./public/assets --type f -x brotli --force --best --output={}.br {} From cf6e65cc03c5d66cf1a24516669c04bdcafe08bb Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sat, 28 Dec 2024 11:07:48 +0000 Subject: [PATCH 07/10] Improve compress script Generate zst and br files, then remove any that are actually larger than the source file --- public/assets/css/app.css.zst | Bin 0 -> 98 bytes public/assets/css/code.css.br | Bin 39 -> 0 bytes public/assets/css/colours.css.zst | Bin 0 -> 163 bytes public/assets/css/content.css.zst | Bin 0 -> 467 bytes public/assets/css/fonts.css.zst | Bin 0 -> 121 bytes public/assets/css/h-card.css.zst | Bin 0 -> 293 bytes public/assets/css/indieauth.css.zst | Bin 0 -> 175 bytes public/assets/css/layout.css.zst | Bin 0 -> 335 bytes public/assets/css/notes.css.zst | Bin 0 -> 342 bytes public/assets/css/variables.css.zst | Bin 0 -> 492 bytes public/assets/frontend/is-land.js.zst | Bin 0 -> 2816 bytes public/assets/frontend/snow-fall.js.zst | Bin 0 -> 1255 bytes public/assets/highlight/zenburn.css.zst | Bin 0 -> 439 bytes public/assets/js/app.js.zst | Bin 0 -> 173 bytes public/assets/js/auth.js.zst | Bin 0 -> 1538 bytes scripts/compress.sh | 34 +++++++++++++++++++++--- 16 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 public/assets/css/app.css.zst delete mode 100644 public/assets/css/code.css.br create mode 100644 public/assets/css/colours.css.zst create mode 100644 public/assets/css/content.css.zst create mode 100644 public/assets/css/fonts.css.zst create mode 100644 public/assets/css/h-card.css.zst create mode 100644 public/assets/css/indieauth.css.zst create mode 100644 public/assets/css/layout.css.zst create mode 100644 public/assets/css/notes.css.zst create mode 100644 public/assets/css/variables.css.zst create mode 100644 public/assets/frontend/is-land.js.zst create mode 100644 public/assets/frontend/snow-fall.js.zst create mode 100644 public/assets/highlight/zenburn.css.zst create mode 100644 public/assets/js/app.js.zst create mode 100644 public/assets/js/auth.js.zst diff --git a/public/assets/css/app.css.zst b/public/assets/css/app.css.zst new file mode 100644 index 0000000000000000000000000000000000000000..f27d4f69b40a88492db239de5cc7c41599e04e6a GIT binary patch literal 98 zcmdPcs{dEz&RQmhNiO_?8*CGDXILvfydd_ur^sklfWrZShx5FC?>wzpcK^)lO3mq; z*^8I)JEi;5iDe9S)k@n>yY(Iks0!b@*$ GkOu&m8Y|2I literal 0 HcmV?d00001 diff --git a/public/assets/css/code.css.br b/public/assets/css/code.css.br deleted file mode 100644 index c0809f08172d9553ed797467ba318443143ef206..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39 ucmY#vVPMhA$jK^JsOC~oNXjotNiEVXN=(TtEw)n7Gc8KZwdShjVg>-^;0tj8 diff --git a/public/assets/css/colours.css.zst b/public/assets/css/colours.css.zst new file mode 100644 index 0000000000000000000000000000000000000000..fd30b78caaa631cca520e68a3d36600883536445 GIT binary patch literal 163 zcmdPcs{c2olwmCk!>2Ye@q%3GfRwU?ETvYrMIoVQTQ>ZAzu@1$-X9f8pmG-47YZRK?i0JEo*2d^lCT#@su$?YdRC W5rb!_AbV5Hs)oc#jAqm3KL!9AK}yyD literal 0 HcmV?d00001 diff --git a/public/assets/css/content.css.zst b/public/assets/css/content.css.zst new file mode 100644 index 0000000000000000000000000000000000000000..01cfa187949e4bc6f98f7596d60239f926159143 GIT binary patch literal 467 zcmdPcs{c3T9Fr~|gIR=&OhP^%a~Y3jf2Md`i)C-rskzCQBCMWj?3Lqqe`rhB;%C3s zyqqI;F+Sz^x}5t`n^s>a;eWoNB;eNMUs`KkRGsT&I^!C=sqGhc;1|`^(aPIRR|j$L z^pi>m;E9vYH;NHBXYgam?w~C@F5Zs%{o$MQ#+KAW>7~<`6pLK?*Q?6pw_>4SepWFMR!5hQ`QW3@#Oi_5_n_hHQ~FWJkjAxS9+Y-v-hw@ z$HQEOJ=^BY)VDYLmc4zQmrhypgOHWG8;{Amy&@GO7S_aE0mZ!Y32!&vB&B z*_)C5Ec;Yd-9_0cZ(UE$FO=cGW_(5d?eE8V;T7}voVatR*ylY73wm{YKmYyROb5-k z7;e1(c#*-D&<{uNWqb8|w{CTPfAi8}7PtOeI(14n{l7kZ!n?3htKnsJ*=+$vZH)jI zh2v-V9GI3((aODcMK?!O&cRqfp8GvZBl`o^soaYjxFrp@Oe?h9$Rjp0{2EvGVh8gE z;m;r5m~hA)G-Z?7)~S}3l2{vfXWmrvi^^r^-%MPq8nENF`pU+V!%1a|Ei;`0K0gNl D+1iR# literal 0 HcmV?d00001 diff --git a/public/assets/css/indieauth.css.zst b/public/assets/css/indieauth.css.zst new file mode 100644 index 0000000000000000000000000000000000000000..5e9e979fec4c0d61e798d10781faade3dd7a5091 GIT binary patch literal 175 zcmdPcs{c2|fPt5l!N^Natl>Q41ZN*-uO87wMpHOTE6Ze#IetELfHme;_t{hF%wL_} zayZSAiB@>p>9|MstX*Nw>}X@Hv#VYP+@6#iYW6%a_gnYF8^Rl(EiU@}T%+CM+v@j| zv-S8Fl|5N+;33!cVRea?65ISs8^1q0argIszVe1rZjq;(%=j7k7y@s!tO|U?<9P7+ i<5RcQ{#EgD@i8n36-}HIWq(E1AUb#99mf1^hZ6zzLs2aN literal 0 HcmV?d00001 diff --git a/public/assets/css/layout.css.zst b/public/assets/css/layout.css.zst new file mode 100644 index 0000000000000000000000000000000000000000..aa9bded43d051e6618661180a99c752fc47d4a88 GIT binary patch literal 335 zcmdPcs{c3TAR{jqgA>25WI-kKjDP1>SqWAxIdu8I@$I1YBTO29tBsjVi?(ktTkN@U za%Iz>ITPx8t{o8Jo_}n;jpgL5h$@%lR1c@<+r}n8wM#jo?&N(*mFIr?rF_<}!%@Kj z=0`3m*oNJG_d2d?k80XKQE{*T72Bi}L;a5L471AF@LR4}!TZg|3DLLwb2@+TWqM!Q zzjBro_gaaMr|T?br^V^6xw%Bd$n5Zx*3d9T`uAq-9Xr3pidGs9 zZU%j!l@mQWcFa;>)m-tn-!PRW(VbnQ`8K1qm*VoamFrt%Pg~u38I-c@_#LeW6~ec= zFNkV}DO4#W^?#69vEZztBO6cr=~+CQjWUh>e$82DJPZ0{zHU;=;1E(sJi^7pq`?z7 sKe#X;R(WB)!S)BSY5W1(WE3|P8}O7I_T}v0&pdH?BZmx|-}Q|d0RKOfn*aa+ literal 0 HcmV?d00001 diff --git a/public/assets/css/notes.css.zst b/public/assets/css/notes.css.zst new file mode 100644 index 0000000000000000000000000000000000000000..f9cdbf82b10f00f413f6c2d4721944e9bf876d40 GIT binary patch literal 342 zcmdPcs{c1-Iio8V16!c6OhT@-PVd5tDW{(J=V+wVim<-^`E^6n6?Yz{gZ^3!Ao%XX zMXvp?=H7gEbxp!=HlO!jcjlPvn~_r%C;8}g>Y3RsA~6dX1QiaZr853r6ZG-M(E}_O zugYkQ|G96^Ntr!X0Ux=}M>G0}`K&VEpkQFxG4)@y z%)RH8UCQRI<0{ zrpHE|P7lq5TO7M<-uA@y%QNpRkv7yYXc0KJMov+}^JG_x#>PZ@=6}2niZa3>W-|Rp z4>`%q58_%{>m;QmV#*ZU{C9@TsZ*a?Ed9a-I@V8m6_Qq+=p0ez$h&4E)BSY~ZAV01 y8RiGInBKVU*xkrbR_Iz9RUda%J9`RCs?mI>t&wW&Rc1Hofo=7Gepw=-OV=n%&X60uubapxBiCs>Ph)arwMs3 z(%Y}nbw`o;pyiLEl83SXT7`MuO*p>0zLxd!L&yC)WOHxtlx%sL{^MLp@E_~{k8>o~ z%jTK)Rz}-D{1Ue7ZTH91d0#f!+qE+4t=MhW)rmTNw z^KuL}mNs3Uo$}?!0_Iijo=m6Obl;1+2fusey+r>1Hq&Px)ipFvzG^TpZdy1+|5vD` zevV$qm(zKxa`lX?jz!8|U_ZphAffwH<>kgnxBQIO3fo!UUA3%y!MAG+7Iz;MH(mL% zX2nl0P3u_!pERD=d8KV-*h3yWPxGxkl zJY!ha6~tc1)3Vg0?U~Z7-llu%J}cRGhHymr7g*XBE_}%HagvwL?4yT1N6(6xGv|(m zXH!&y>m840hFhKP`=+&BU2=%YEkQORc#dH7lIE+cBt_OnS~6bN(tVJ&)OlM{!Qw*+ z35Sw5FWb7aBc$Z|&h=s(|7M6z!;V7+MPt8UAwh6k07FSw+T+50>`F`HG=-mdLD E00ofk@c;k- literal 0 HcmV?d00001 diff --git a/public/assets/frontend/is-land.js.zst b/public/assets/frontend/is-land.js.zst new file mode 100644 index 0000000000000000000000000000000000000000..fda6b38cb7ebf6a204cfff28e4d90c7862955318 GIT binary patch literal 2816 zcmdPcs{c2IMR964!>^DFd^!&{Y_mL9Enr%Bxoq!*xA#3+zU1@1is_E%->j}5`#&H~ z`)IUPv`S)IuE2ZN2MmuG?lAmO`!YF4CiB{qyL|ft&jw3N9cY@@<`RACBwq{vss(dQ zUbRPdO-x)U@zU&8#Era(h4YU3$fkdsy~?I*AM2!SFOIy)6GS84|IP7PBxLsXaNS2& zOV3T2PiJ)Jtnyqw;h)k{|K5&(xf51=zH@TL`JbLeaS>9PGN+yt_Ve%RwppFpVj5Aro60=PA8?w(Ioto^Yqe-C(-Z?2_Br z?i0NxLV20mu|0yTU)(s~<)Re0Eu?|rsr%aSqz}gf)Y3c6j;hT5+88e`QZi7^)F`f$L@+*?<)-L1AWdu<2l@W{?oH5XRk+S+hr{)4EnosQJv&H zF~9lzex~7*H0CuV{Mhz>O5}~{$IkyZI=_ZRPgnTD%jE}p4Yw)rF$F&0(`ne^e2t-G zf#D9u6WYA<8XUbF6c*iAd8l757}UCH!?X0xj*bskWIz5{+!efedTZY%UH15phmV$L z&ir(_?TVMh%>L488%$-bR$Mmu6|m$a7vH1lPt)e_zH-fW;^9+|%L{M0U08OpUA*PC zME3>z@Sp3C-go`;s98(r)RXlNJ68G6zuqO}B|G<_>1C5ZvwE-6e6KGecTOMqVzsR2 zw}oBZuMel2e{r&(l9|Huo5LWJ@7RHd2WzL)Y&h~f?2z$N(H=?B+^8v?jNhNV4$j~& zjlY=YWhFYldi!zqgvKUT9zK(f6)CLB(e8836l#dAF7xA>$N$KG|K-!yvJ9=>E?%~J z&##{z=Rb?5)-HN#sQCc zToAgRc_ZpxYVzmLKbBtZ<`#)MxHEsg%{~>*#gRf&uQBWAKB;{1$W2)E`v%MSK&K@N z$0IMz_WNwIT7J$9OW)7Ns!QD#1!?*gU(vY9zl|+UeqVL*zeyjT2F&wZYFQ$FcE0Zu zXZhM$YWseM?r-ss2>sm1`TuNR{HCV-mzwTb z$CfjvsXn$zIQZJwlgs^?GDG|1$e6u{7u~$q?6YE1Pk?5qvEw8WRY^W00TuxnmGi=h z8)Xl5_;i#AwDxGIs2HhuIy!P$XD?bS8B*h0Pr7FKgM^~*FJA8ui-U&*c|40{yW*g|_* zos9Y)G4Bb<-B*Y$R@HxC`Bou1=6C2)$_rSC_4kE);KO1mE3?6CP|~MdY;{8Ec3Wa+I#1Ewv^WLd z>oJ=+E^Tz3_}KITi{ORUzhd0?=gx=~x;1CpmzzQtToa~cC~l}x)9t*-8b0kvk6VAw z=8w!jL>o?bU*+jODQvB*^7@qY2hnh|Hl;-c5AHk^FxB9{^2%wW@AQ?Pb5`74JELOi zE0$-h646(@zXjY_yXuX3gN<`ws@m~@X=?+gY-TMzDa)_0pVLy;|F}b8PT)2JL!m>N zoW-`s?u7U}X1nFI&2Z+a-vO_my*uO9x_!ZsFOH^*rpps?haJ|5iI?^JAgXkW*zJwOqD%op?E`CMT^rb{q37zExsf z-sd(hEcQ_?tz~+#>^qB#r)#e-i~V7TuRkXG9NwkA)%ND(2oA50M)gt?!~g!tX7Mtx zR-9~o_~x#8oOhCE7%dM^=6S^t6`MQzHB08D1FvermU5Ns+sC1s@@MgWuaLtNJ{e9o z-+RDr^P&w|PLEkbcKF?nb5uV1hew8CRi)(Bc|kHOw)=Z7DN362cq8YZBa!BuvCodM z@cld-^C8+Nm*#Uk6bZchhSTfvf*3X)`$|pLt!|7{ zH>?caY@L#)@qGWBi&nEVgHq?4UeR-^dnUUtgX=6yrsC;^dYA9r-#;<1q^@g{{PNYy zCqDghe!=f~lWuE$>)6ua_;%~;8w)J%lvMPvsS2(%{<%%{g;}BRkG}9LuU$_3Rb5%h zYs?3%|a_~LkTD_bB>#-r~a_|Bvm z=*O)|F|3RUIs2Atqx9l+T7_y4(+gGxueUnq^?0*D`kJ*~(T}YrE6h3hXJgsqqoVG7 zY<4!X=8DD6PyTJ#!FSiTMyllP3{AV@r`M$tr2Z7om?-`Ah3M~jD$>GMt;aT~pS-Cs z`A}Qqj9VUT=k$KHcCD1W6O_Z%vOzC^A;|5x{B4`dTx;LoIq+*+)rRxeC;j-rdF0Of zy*#}2H^SxR_;aq#*lw8N;B{7QajNmMCoINI^KFmLxl*0#9n8J=K;Sh2zB$LaE($Oi zhHMN^R-JCraXgoA_L7L>uC@Lmj86X>T>V8Vw9oIZx|Xzot6>Hk&%X!zqvf2%i`V`! zzGis&sKnF4Z5~gj3AdaTJR*ErU_ptSguZ9eq9~&q{Eb^3t9EVubJ}F-dMAb__J!Ix zQgc-;r8We|N6l+f5jxpo(IMx+(5L&l#$>{wWt#8VT~hm;bCf86PyGam$4R zslF^Tj2?Y)7d@7q%&8fja$w{BWE;Lnp3TuYMJK&V66!hlI@q6>zF)MiO-laPu^qwE zrO(xNH+w`i{knN1Q*^e?wb=X+r*q*Ja_`+YuKjd~VMp=5I=!7Koxg8=V@_bp74|Qe zjkop=`MI*@YZP0-NukY56UtmgcbLiTdHeax{OSeA_dj-;XWe*_Gtcy4=?bgUQm;M1& literal 0 HcmV?d00001 diff --git a/public/assets/frontend/snow-fall.js.zst b/public/assets/frontend/snow-fall.js.zst new file mode 100644 index 0000000000000000000000000000000000000000..96c25cccd41a352d77ad04cf4fadb1c59304b2b3 GIT binary patch literal 1255 zcmdPcs{c2|nd__?L)f?ZS`YdU&@{RH!Tz-ozjy7)Y|n*4&z3wD^fEZ@ptj}v zGL>U4i~np=_}+emrT&-p)y#K-zw`9gA4wD|yP9F~V_RCw|E+AyVr3kpt5 zr6+z*yXsZ!a(8YG<29v5WyMqMj*=@ozDuf~Q2xr@>Y!kCv}d6~=?t#cz>}X&gvdVa zI~VPG?ADWOQ|=?r+C^RbFc619eh2&e8;2)N3ZJ^COiJ?#!i|xJM`1@rEiSCTUu!_wof|p^YW=S zuQ2-S+Q*7SUQz`Idaaq^><;>MeyWa$= zZ*~xGJG1Hi60fUoPReJ+NQ4}+vr8`xD@@FIzi^%`|Fb7%yo`BqA09S@?Rq{zFyM0S zldTIgIWl@puNBzrxAT>C{neqsUMeG2ThYL?;zIl4MQ7)Ug{0XZNDy(ARgB9{+^;d| z&adTSe(sT%BrmKsoV#JMQp&XcWtU_E+avofJDpfvw_onE3H#~03rr;!2z#~o+%C74 zFWEb-;kVcn&BNJSN{^aJSuP@i6>Av}0 z9TlJ=)ajz(o~q=-yg*#?6cpzg@Fm{l_LdBqpi;7NwY;=ZY)Snl}4O*T}=rQn)>9g4S=J+>GS=sW+=5!OfxY~B0dZ5Z^E5ZT>kt#)|7%M^-#0C(!_l|i z7EM+vn%tl;%T_DQ_wJpe96UPe&JI(Lu)9rQ$k5;ZDr=rv8Oy|%Gn-oNl5f9#%U%+0 z(Kxen{~Z?o+YUkVpUQLZuhHNU(skJ&y-xZ1p5^l`J_Yy}7M%F^`H}90AA&EJ=385} zwq1-cZfW%kJLmMXN9D(jiGGIv**qsT6&{UMS#x?$?;LL@^Vb5C&iiJ?t#uLXa^nd4 z@nOkL!GFL0&r7vE{OrTW4huU6(*m#exl$jFuR8mpw!T@mJD)SH*E!#}WWk@84|W$G z&q#D!yX2)0!_k&?Sw9p0U5OR?w*T^#{BJ7x6Hl$|eKvWa!%p#ALYgir`|en#E&m&N c@Y6iC=BT2!5Yuy;MJ5~9z6@jBaBCk606Yd@JOBUy literal 0 HcmV?d00001 diff --git a/public/assets/highlight/zenburn.css.zst b/public/assets/highlight/zenburn.css.zst new file mode 100644 index 0000000000000000000000000000000000000000..f7ddaa93525364eaffa5c740cc0a4531d905c471 GIT binary patch literal 439 zcmdPcs{c1-Gm|ebL)c6&IfG)k&HcG?=0e&UQp(W@Q(Jh2um8|7CZR_~(pstha)|gtb2-P>9%YPfo*>}!&xpC|HEED(T=f5c&aPteA>^1Y4 zPT8S`8y=G`Sk8MEyhm{PhME5|!i&pIjdHDSuQ+TM`l4)ly7n>V`|m_PpG-=>80_x% zV{O>CX9@1p`2W|YhSdJKHS?Qu{+gZF{S7_-&%AI>B50jLdqJ+_Y*(*uoBcP=FEn3a zEB$)2)H(IrFZ6}p^s1=;Wt%IX7gAvv-#S%4_|5W)p5+hT->}#0eIt?He9rJlgTz`- zjfGETy@W2UfBROU%|dx0yO~CU3(M6~W`#Z$VS{NuKJOU~=Ob({HruCzy$dFwI35?=rI zzGUH+HwUK{YxOyF@6c#x+r{-<{pa~;dG+J&qS7j_qqg>?M}?(S%5ibNk5B{v!(Pv6 literal 0 HcmV?d00001 diff --git a/public/assets/js/app.js.zst b/public/assets/js/app.js.zst new file mode 100644 index 0000000000000000000000000000000000000000..5db3d9e5871821e7a626537aa6c562bc0fe92065 GIT binary patch literal 173 zcmdPcs{c2|p5ZSG!=jUNk_G3P1C9zCwOV9seg3I*H;d!}4tw{j|FyXL&n>H(W>|lj z|7YO?10$C9Z=sIy_YPacp*WVXQ0G~lo;{X5v literal 0 HcmV?d00001 diff --git a/public/assets/js/auth.js.zst b/public/assets/js/auth.js.zst new file mode 100644 index 0000000000000000000000000000000000000000..9c96525de9317ad98aea69f606489a987ce5e9c2 GIT binary patch literal 1538 zcmdPcs{c2|QFN(3Ls-ci^$jvR8Mo|PsN$#n%(GK9b@Fq^CN8UrMHgJxZ@Jii$>!*} zbLYDLar5;vOlIg~P>{aeazr=JO>BSE?Qbt$RON+7T@JaL?-in} zq1T_d&zIX~-r3&U_*-Ppwe2q@d%oS{iaTzlnzdoo=B6!0g7asqIbKN5j`)9DCSdi% zRXg6OvL!yt`!AV&H7=)eOAKq^otXJEcm7GK_-*4sAkNEG%g+G)_@_UZSO8`r$6 zDzqHe)vK3oTX`o&=hZ@;?IxF(Y&yOo|3K!$2Z=>9grsy2o=NvoxeeV;^`9*)s`dxFjvfIqO_jDs8n_$Qcg%edCQ)BMVzxZ&Wx=(uIsCnqjEA?kYa=DOoIneTqz&nK#4 z#cyW4({Iy*N#u%VsT^NvaB$m+4QdHQahE;>s$C??)NmpX->SAX7QmibPaDLXTgx%ypAfkuUQj4X#zL8ICd&2`r6Rd!rb`FMPZ z_|$9PUc{W}DQ;f#toHUr-v3uu-~0NdTYvJ$4XWEK;|GKh%;SsD{AiL@TuJrVpWNI84k?8m9+7l8>@w+ zU$s2boI52eL{rKw?_DoiX)cz|AZp1qQ8z2&$4+H~Enfwm6_04G zC~ITl$bULL-Ta{y#|zzce-)ndeL{*O||6XSn?iy8mnPeh0?Y>gOCJ-i7bfNl7afNoO{>>>SGSWz|c$ z31=E+P0{b%sx)F1`5|r(1PwH@l#rpT)E4&7lD`?NST&JTLwHQ+J(^ z?VFk?+btP2HTUM2uAC#55$o5IyQ+9g1W^W1J zS5>{M^=ZesExyKAt!7;HuH)o6BfZ2TLD-G=IN!-zlk}vGj(R;+O=@~`SSNcAPj~!; zFdhx*CXIs&7tJ;PTvHX+|8du`b$=e*_N@K3PtqnzIB8#I@Yl$LJ112J7&^=`+Bls# zbB49fj3W8UMaQ#GSZ$cb=(MT3_LxgBn`P&j-mD1>4aXI43V0`;nIuv!bi#SsrIb4k z$M-!xU&pjtEnaY@S(%!GisY+}`sUL+dTNw6{@A~J?T(t4PaZ|o37)F@mJn1C{OQSy RHL4lETbOyWc79sj3jm`B_2&Qp literal 0 HcmV?d00001 diff --git a/scripts/compress.sh b/scripts/compress.sh index 727f1b83..eb9e34a2 100755 --- a/scripts/compress.sh +++ b/scripts/compress.sh @@ -1,13 +1,41 @@ #!/usr/bin/env zsh -if ! type fd &> /dev/null; then +if ! (( $+commands[fd] )) &> /dev/null; then echo "fd not installed" exit 1 fi -if ! type brotli &> /dev/null; then +if ! (( $+commands[brotli] )) &> /dev/null; then echo "brotli not installed" exit 1 fi -fd -e css -e js --search-path ./public/assets --type f -x brotli --force --best --output={}.br {} +if ! (( $+commands[zstd] )) &> /dev/null; then + echo "zstd not installed" + exit 1 +fi + +# Make .br files +fd --extension css --extension js --search-path ./public/assets --type f --exec brotli --force --best --output={}.br {} +# Make .zst files +fd --extension css --extension js --search-path ./public/assets --type f --exec zstd --quiet --force --ultra -22 --exclude-compressed {} -o {}.zst + +# Remove files that actually got bigger! +fd --extension br --extension zst --search-path ./public/assets --type f --exec sh -c ' +for file; do + src="${file%.br}" + src="${src%.zst}" + if [ -f "$src" ]; then + # Get file sizes using stat with cross-platform compatibility + if [ "$(uname)" = "Darwin" ]; then + file_size=$(stat -f%z "$file") + src_size=$(stat -f%z "$src") + else + file_size=$(stat -c%s "$file") + src_size=$(stat -c%s "$src") + fi + # Compare sizes and conditionally echo rm command + [ "$file_size" -ge "$src_size" ] && rm "$file" + fi +done +' _ {} From 4e7b911fe9918d57f17ef883097e208aebc64e20 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sat, 25 Jan 2025 11:20:37 +0000 Subject: [PATCH 08/10] Improve commentt in script --- scripts/compress.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/compress.sh b/scripts/compress.sh index eb9e34a2..a6a0b028 100755 --- a/scripts/compress.sh +++ b/scripts/compress.sh @@ -34,7 +34,7 @@ for file; do file_size=$(stat -c%s "$file") src_size=$(stat -c%s "$src") fi - # Compare sizes and conditionally echo rm command + # Compare sizes and rm compressed file if larger than the source [ "$file_size" -ge "$src_size" ] && rm "$file" fi done From f2025b801bbb02b0187a83bb51995570acc7a8ad Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sat, 25 Jan 2025 11:47:43 +0000 Subject: [PATCH 09/10] Update dependencies --- composer.json | 3 +- composer.lock | 1796 +++++++++++++++++++++++---------------------- package-lock.json | 380 ++++++---- package.json | 4 +- 4 files changed, 1175 insertions(+), 1008 deletions(-) diff --git a/composer.json b/composer.json index 5fdf0bfd..17312637 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "jonnybarnes/jonnybarnes.uk", "type": "project", - "description": "The code for jonnybarnes.uk, based on Laravel 10", + "description": "The code for jonnybarnes.uk, based on Laravel 11", "keywords": ["laravel", "framework", "indieweb"], "license": "CC0-1.0", "require": { @@ -40,6 +40,7 @@ "barryvdh/laravel-ide-helper": "^3.0", "fakerphp/faker": "^1.9.2", "laravel/dusk": "^8.0", + "laravel/pail": "^1.2", "laravel/pint": "^1.0", "laravel/sail": "^1.18", "mockery/mockery": "^1.4.4", diff --git a/composer.lock b/composer.lock index 8f587dec..ca4775e8 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "fcd321c087aabdc3da9887c0b0b04f73", + "content-hash": "c0b2ab80898a42868cc33845917f45d4", "packages": [ { "name": "aws/aws-crt-php", - "version": "v1.2.6", + "version": "v1.2.7", "source": { "type": "git", "url": "https://github.com/awslabs/aws-crt-php.git", - "reference": "a63485b65b6b3367039306496d49737cf1995408" + "reference": "d71d9906c7bb63a28295447ba12e74723bd3730e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/a63485b65b6b3367039306496d49737cf1995408", - "reference": "a63485b65b6b3367039306496d49737cf1995408", + "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/d71d9906c7bb63a28295447ba12e74723bd3730e", + "reference": "d71d9906c7bb63a28295447ba12e74723bd3730e", "shasum": "" }, "require": { @@ -56,22 +56,22 @@ ], "support": { "issues": "https://github.com/awslabs/aws-crt-php/issues", - "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.6" + "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.7" }, - "time": "2024-06-13T17:21:28+00:00" + "time": "2024-10-18T22:15:13+00:00" }, { "name": "aws/aws-sdk-php", - "version": "3.324.8", + "version": "3.338.2", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "22ac6655d95ac9e068f39364c7756fbc1460ffbb" + "reference": "7a52364e053d74363f9976dfb4473bace5b7790e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/22ac6655d95ac9e068f39364c7756fbc1460ffbb", - "reference": "22ac6655d95ac9e068f39364c7756fbc1460ffbb", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/7a52364e053d74363f9976dfb4473bace5b7790e", + "reference": "7a52364e053d74363f9976dfb4473bace5b7790e", "shasum": "" }, "require": { @@ -79,31 +79,31 @@ "ext-json": "*", "ext-pcre": "*", "ext-simplexml": "*", - "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5", - "guzzlehttp/promises": "^1.4.0 || ^2.0", - "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", - "mtdowling/jmespath.php": "^2.6", - "php": ">=7.2.5", - "psr/http-message": "^1.0 || ^2.0" + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/promises": "^2.0", + "guzzlehttp/psr7": "^2.4.5", + "mtdowling/jmespath.php": "^2.8.0", + "php": ">=8.1", + "psr/http-message": "^2.0" }, "require-dev": { "andrewsville/php-token-reflection": "^1.4", "aws/aws-php-sns-message-validator": "~1.0", "behat/behat": "~3.0", - "composer/composer": "^1.10.22", + "composer/composer": "^2.7.8", "dms/phpunit-arraysubset-asserts": "^0.4.0", "doctrine/cache": "~1.4", "ext-dom": "*", "ext-openssl": "*", "ext-pcntl": "*", "ext-sockets": "*", - "nette/neon": "^2.3", "paragonie/random_compat": ">= 2", "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5", - "psr/cache": "^1.0", - "psr/simple-cache": "^1.0", - "sebastian/comparator": "^1.2.3 || ^4.0", - "yoast/phpunit-polyfills": "^1.0" + "psr/cache": "^2.0 || ^3.0", + "psr/simple-cache": "^2.0 || ^3.0", + "sebastian/comparator": "^1.2.3 || ^4.0 || ^5.0", + "symfony/filesystem": "^v6.4.0 || ^v7.1.0", + "yoast/phpunit-polyfills": "^2.0" }, "suggest": { "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications", @@ -152,11 +152,11 @@ "sdk" ], "support": { - "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", + "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.324.8" + "source": "https://github.com/aws/aws-sdk-php/tree/3.338.2" }, - "time": "2024-10-22T18:32:28+00:00" + "time": "2025-01-24T19:09:22+00:00" }, { "name": "brick/math", @@ -514,16 +514,16 @@ }, { "name": "cviebrock/eloquent-sluggable", - "version": "11.0.0", + "version": "11.0.1", "source": { "type": "git", "url": "https://github.com/cviebrock/eloquent-sluggable.git", - "reference": "8fafec4b3c61e1b87ec9cbe728a75ce3b6ca1c06" + "reference": "a4281cf0284a21efc1031a065b112ddd6c826eea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cviebrock/eloquent-sluggable/zipball/8fafec4b3c61e1b87ec9cbe728a75ce3b6ca1c06", - "reference": "8fafec4b3c61e1b87ec9cbe728a75ce3b6ca1c06", + "url": "https://api.github.com/repos/cviebrock/eloquent-sluggable/zipball/a4281cf0284a21efc1031a065b112ddd6c826eea", + "reference": "a4281cf0284a21efc1031a065b112ddd6c826eea", "shasum": "" }, "require": { @@ -576,7 +576,7 @@ ], "support": { "issues": "https://github.com/cviebrock/eloquent-sluggable/issues", - "source": "https://github.com/cviebrock/eloquent-sluggable/tree/11.0.0" + "source": "https://github.com/cviebrock/eloquent-sluggable/tree/11.0.1" }, "funding": [ { @@ -584,7 +584,7 @@ "type": "github" } ], - "time": "2024-03-13T02:44:01+00:00" + "time": "2024-11-29T01:32:17+00:00" }, { "name": "dflydev/dot-access-data", @@ -663,29 +663,27 @@ }, { "name": "doctrine/deprecations", - "version": "1.1.3", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" + "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", - "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9", + "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9", - "phpstan/phpstan": "1.4.10 || 1.10.15", - "phpstan/phpstan-phpunit": "^1.0", + "doctrine/coding-standard": "^9 || ^12", + "phpstan/phpstan": "1.4.10 || 2.0.3", + "phpstan/phpstan-phpunit": "^1.0 || ^2", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psalm/plugin-phpunit": "0.18.4", - "psr/log": "^1 || ^2 || ^3", - "vimeo/psalm": "4.30.0 || 5.12.0" + "psr/log": "^1 || ^2 || ^3" }, "suggest": { "psr/log": "Allows logging deprecations via PSR-3 logger implementation" @@ -693,7 +691,7 @@ "type": "library", "autoload": { "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + "Doctrine\\Deprecations\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -704,9 +702,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.3" + "source": "https://github.com/doctrine/deprecations/tree/1.1.4" }, - "time": "2024-01-30T19:34:25+00:00" + "time": "2024-12-07T21:18:45+00:00" }, { "name": "doctrine/inflector", @@ -943,16 +941,16 @@ }, { "name": "egulias/email-validator", - "version": "4.0.2", + "version": "4.0.3", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" + "reference": "b115554301161fa21467629f1e1391c1936de517" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", - "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/b115554301161fa21467629f1e1391c1936de517", + "reference": "b115554301161fa21467629f1e1391c1936de517", "shasum": "" }, "require": { @@ -998,7 +996,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" + "source": "https://github.com/egulias/EmailValidator/tree/4.0.3" }, "funding": [ { @@ -1006,7 +1004,7 @@ "type": "github" } ], - "time": "2023-10-06T06:47:41+00:00" + "time": "2024-12-27T00:36:43+00:00" }, { "name": "fruitcake/php-cors", @@ -1705,24 +1703,24 @@ }, { "name": "intervention/gif", - "version": "4.2.0", + "version": "4.2.1", "source": { "type": "git", "url": "https://github.com/Intervention/gif.git", - "reference": "42c131a31b93c440ad49061b599fa218f06f93be" + "reference": "6addac2c68b4bc0e37d0d3ccedda57eb84729c49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/gif/zipball/42c131a31b93c440ad49061b599fa218f06f93be", - "reference": "42c131a31b93c440ad49061b599fa218f06f93be", + "url": "https://api.github.com/repos/Intervention/gif/zipball/6addac2c68b4bc0e37d0d3ccedda57eb84729c49", + "reference": "6addac2c68b4bc0e37d0d3ccedda57eb84729c49", "shasum": "" }, "require": { "php": "^8.1" }, "require-dev": { - "phpstan/phpstan": "^1", - "phpunit/phpunit": "^10.0", + "phpstan/phpstan": "^2.1", + "phpunit/phpunit": "^10.0 || ^11.0", "slevomat/coding-standard": "~8.0", "squizlabs/php_codesniffer": "^3.8" }, @@ -1753,7 +1751,7 @@ ], "support": { "issues": "https://github.com/Intervention/gif/issues", - "source": "https://github.com/Intervention/gif/tree/4.2.0" + "source": "https://github.com/Intervention/gif/tree/4.2.1" }, "funding": [ { @@ -1769,20 +1767,20 @@ "type": "ko_fi" } ], - "time": "2024-09-20T13:35:02+00:00" + "time": "2025-01-05T10:52:39+00:00" }, { "name": "intervention/image", - "version": "3.9.0", + "version": "3.11.0", "source": { "type": "git", "url": "https://github.com/Intervention/image.git", - "reference": "1e0a2b6d767ef22a095924c6bcb2981da6de6f1e" + "reference": "6b9ce4fc4485d30117e13935b25bc55a8b894a79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/1e0a2b6d767ef22a095924c6bcb2981da6de6f1e", - "reference": "1e0a2b6d767ef22a095924c6bcb2981da6de6f1e", + "url": "https://api.github.com/repos/Intervention/image/zipball/6b9ce4fc4485d30117e13935b25bc55a8b894a79", + "reference": "6b9ce4fc4485d30117e13935b25bc55a8b894a79", "shasum": "" }, "require": { @@ -1792,8 +1790,8 @@ }, "require-dev": { "mockery/mockery": "^1.6", - "phpstan/phpstan": "^1", - "phpunit/phpunit": "^10.0", + "phpstan/phpstan": "^2.1", + "phpunit/phpunit": "^10.0 || ^11.0", "slevomat/coding-standard": "~8.0", "squizlabs/php_codesniffer": "^3.8" }, @@ -1829,7 +1827,7 @@ ], "support": { "issues": "https://github.com/Intervention/image/issues", - "source": "https://github.com/Intervention/image/tree/3.9.0" + "source": "https://github.com/Intervention/image/tree/3.11.0" }, "funding": [ { @@ -1845,7 +1843,7 @@ "type": "ko_fi" } ], - "time": "2024-10-06T15:37:56+00:00" + "time": "2025-01-18T15:42:14+00:00" }, { "name": "jonnybarnes/indieweb", @@ -2014,23 +2012,23 @@ }, { "name": "laravel/framework", - "version": "v11.29.0", + "version": "v11.40.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "425054512c362835ba9c0307561973c8eeac7385" + "reference": "599a28196d284fee158cc10086fd56ac625ad7a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/425054512c362835ba9c0307561973c8eeac7385", - "reference": "425054512c362835ba9c0307561973c8eeac7385", + "url": "https://api.github.com/repos/laravel/framework/zipball/599a28196d284fee158cc10086fd56ac625ad7a3", + "reference": "599a28196d284fee158cc10086fd56ac625ad7a3", "shasum": "" }, "require": { "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12", "composer-runtime-api": "^2.2", "doctrine/inflector": "^2.0.5", - "dragonmantank/cron-expression": "^3.3.2", + "dragonmantank/cron-expression": "^3.4", "egulias/email-validator": "^3.2.1|^4.0", "ext-ctype": "*", "ext-filter": "*", @@ -2040,38 +2038,39 @@ "ext-session": "*", "ext-tokenizer": "*", "fruitcake/php-cors": "^1.3", - "guzzlehttp/guzzle": "^7.8", + "guzzlehttp/guzzle": "^7.8.2", "guzzlehttp/uri-template": "^1.0", "laravel/prompts": "^0.1.18|^0.2.0|^0.3.0", - "laravel/serializable-closure": "^1.3", - "league/commonmark": "^2.2.1", - "league/flysystem": "^3.8.0", + "laravel/serializable-closure": "^1.3|^2.0", + "league/commonmark": "^2.6", + "league/flysystem": "^3.25.1", + "league/flysystem-local": "^3.25.1", + "league/uri": "^7.5.1", "monolog/monolog": "^3.0", - "nesbot/carbon": "^2.72.2|^3.0", + "nesbot/carbon": "^2.72.6|^3.8.4", "nunomaduro/termwind": "^2.0", "php": "^8.2", "psr/container": "^1.1.1|^2.0.1", "psr/log": "^1.0|^2.0|^3.0", "psr/simple-cache": "^1.0|^2.0|^3.0", "ramsey/uuid": "^4.7", - "symfony/console": "^7.0", - "symfony/error-handler": "^7.0", - "symfony/finder": "^7.0", - "symfony/http-foundation": "^7.0", - "symfony/http-kernel": "^7.0", - "symfony/mailer": "^7.0", - "symfony/mime": "^7.0", - "symfony/polyfill-php83": "^1.28", - "symfony/process": "^7.0", - "symfony/routing": "^7.0", - "symfony/uid": "^7.0", - "symfony/var-dumper": "^7.0", + "symfony/console": "^7.0.3", + "symfony/error-handler": "^7.0.3", + "symfony/finder": "^7.0.3", + "symfony/http-foundation": "^7.2.0", + "symfony/http-kernel": "^7.0.3", + "symfony/mailer": "^7.0.3", + "symfony/mime": "^7.0.3", + "symfony/polyfill-php83": "^1.31", + "symfony/process": "^7.0.3", + "symfony/routing": "^7.0.3", + "symfony/uid": "^7.0.3", + "symfony/var-dumper": "^7.0.3", "tijsverkoyen/css-to-inline-styles": "^2.2.5", - "vlucas/phpdotenv": "^5.4.1", - "voku/portable-ascii": "^2.0" + "vlucas/phpdotenv": "^5.6.1", + "voku/portable-ascii": "^2.0.2" }, "conflict": { - "mockery/mockery": "1.6.8", "tightenco/collect": "<5.5.33" }, "provide": { @@ -2118,29 +2117,33 @@ }, "require-dev": { "ably/ably-php": "^1.0", - "aws/aws-sdk-php": "^3.235.5", + "aws/aws-sdk-php": "^3.322.9", "ext-gmp": "*", - "fakerphp/faker": "^1.23", - "league/flysystem-aws-s3-v3": "^3.0", - "league/flysystem-ftp": "^3.0", - "league/flysystem-path-prefixing": "^3.3", - "league/flysystem-read-only": "^3.3", - "league/flysystem-sftp-v3": "^3.0", - "mockery/mockery": "^1.6", - "nyholm/psr7": "^1.2", - "orchestra/testbench-core": "^9.5", - "pda/pheanstalk": "^5.0", + "fakerphp/faker": "^1.24", + "guzzlehttp/promises": "^2.0.3", + "guzzlehttp/psr7": "^2.4", + "laravel/pint": "^1.18", + "league/flysystem-aws-s3-v3": "^3.25.1", + "league/flysystem-ftp": "^3.25.1", + "league/flysystem-path-prefixing": "^3.25.1", + "league/flysystem-read-only": "^3.25.1", + "league/flysystem-sftp-v3": "^3.25.1", + "mockery/mockery": "^1.6.10", + "orchestra/testbench-core": "^9.6", + "pda/pheanstalk": "^5.0.6", + "php-http/discovery": "^1.15", "phpstan/phpstan": "^1.11.5", - "phpunit/phpunit": "^10.5|^11.0", - "predis/predis": "^2.0.2", + "phpunit/phpunit": "^10.5.35|^11.3.6", + "predis/predis": "^2.3", "resend/resend-php": "^0.10.0", - "symfony/cache": "^7.0", - "symfony/http-client": "^7.0", - "symfony/psr-http-message-bridge": "^7.0" + "symfony/cache": "^7.0.3", + "symfony/http-client": "^7.0.3", + "symfony/psr-http-message-bridge": "^7.0.3", + "symfony/translation": "^7.0.3" }, "suggest": { "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", - "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.322.9).", "brianium/paratest": "Required to run tests in parallel (^7.0|^8.0).", "ext-apcu": "Required to use the APC cache driver.", "ext-fileinfo": "Required to use the Filesystem class.", @@ -2154,16 +2157,16 @@ "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", "filp/whoops": "Required for friendly error pages in development (^2.14.3).", "laravel/tinker": "Required to use the tinker console command (^2.0).", - "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).", - "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).", - "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).", - "league/flysystem-read-only": "Required to use read-only disks (^3.3)", - "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.25.1).", + "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.25.1).", + "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.25.1).", + "league/flysystem-read-only": "Required to use read-only disks (^3.25.1)", + "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.25.1).", "mockery/mockery": "Required to use mocking (^1.6).", - "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).", + "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).", "phpunit/phpunit": "Required to use assertions and run tests (^10.5|^11.0).", - "predis/predis": "Required to use the predis connector (^2.0.2).", + "predis/predis": "Required to use the predis connector (^2.3).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0).", @@ -2182,6 +2185,7 @@ }, "autoload": { "files": [ + "src/Illuminate/Collections/functions.php", "src/Illuminate/Collections/helpers.php", "src/Illuminate/Events/functions.php", "src/Illuminate/Filesystem/functions.php", @@ -2219,20 +2223,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-10-22T14:13:31+00:00" + "time": "2025-01-24T16:17:42+00:00" }, { "name": "laravel/horizon", - "version": "v5.29.2", + "version": "v5.30.2", "source": { "type": "git", "url": "https://github.com/laravel/horizon.git", - "reference": "d9c39ce4e9050b33a2ff9d2cee21646a18d4cc92" + "reference": "baef526f036717b0090754cbd9c9b67f879739fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/horizon/zipball/d9c39ce4e9050b33a2ff9d2cee21646a18d4cc92", - "reference": "d9c39ce4e9050b33a2ff9d2cee21646a18d4cc92", + "url": "https://api.github.com/repos/laravel/horizon/zipball/baef526f036717b0090754cbd9c9b67f879739fd", + "reference": "baef526f036717b0090754cbd9c9b67f879739fd", "shasum": "" }, "require": { @@ -2263,16 +2267,16 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - }, "laravel": { - "providers": [ - "Laravel\\Horizon\\HorizonServiceProvider" - ], "aliases": { "Horizon": "Laravel\\Horizon\\Horizon" - } + }, + "providers": [ + "Laravel\\Horizon\\HorizonServiceProvider" + ] + }, + "branch-alias": { + "dev-master": "5.x-dev" } }, "autoload": { @@ -2297,22 +2301,22 @@ ], "support": { "issues": "https://github.com/laravel/horizon/issues", - "source": "https://github.com/laravel/horizon/tree/v5.29.2" + "source": "https://github.com/laravel/horizon/tree/v5.30.2" }, - "time": "2024-10-16T21:36:57+00:00" + "time": "2025-01-13T16:51:22+00:00" }, { "name": "laravel/prompts", - "version": "v0.3.1", + "version": "v0.3.3", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "0f3848a445562dac376b27968f753c65e7e1036e" + "reference": "749395fcd5f8f7530fe1f00dfa84eb22c83d94ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/0f3848a445562dac376b27968f753c65e7e1036e", - "reference": "0f3848a445562dac376b27968f753c65e7e1036e", + "url": "https://api.github.com/repos/laravel/prompts/zipball/749395fcd5f8f7530fe1f00dfa84eb22c83d94ea", + "reference": "749395fcd5f8f7530fe1f00dfa84eb22c83d94ea", "shasum": "" }, "require": { @@ -2328,7 +2332,7 @@ "require-dev": { "illuminate/collections": "^10.0|^11.0", "mockery/mockery": "^1.5", - "pestphp/pest": "^2.3", + "pestphp/pest": "^2.3|^3.4", "phpstan/phpstan": "^1.11", "phpstan/phpstan-mockery": "^1.1" }, @@ -2356,22 +2360,22 @@ "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.3.1" + "source": "https://github.com/laravel/prompts/tree/v0.3.3" }, - "time": "2024-10-09T19:42:26+00:00" + "time": "2024-12-30T15:53:31+00:00" }, { "name": "laravel/sanctum", - "version": "v4.0.3", + "version": "v4.0.7", "source": { "type": "git", "url": "https://github.com/laravel/sanctum.git", - "reference": "54aea9d13743ae8a6cdd3c28dbef128a17adecab" + "reference": "698064236a46df016e64a7eb059b1414e0b281df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/54aea9d13743ae8a6cdd3c28dbef128a17adecab", - "reference": "54aea9d13743ae8a6cdd3c28dbef128a17adecab", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/698064236a46df016e64a7eb059b1414e0b281df", + "reference": "698064236a46df016e64a7eb059b1414e0b281df", "shasum": "" }, "require": { @@ -2422,20 +2426,20 @@ "issues": "https://github.com/laravel/sanctum/issues", "source": "https://github.com/laravel/sanctum" }, - "time": "2024-09-27T14:55:41+00:00" + "time": "2024-12-11T16:40:21+00:00" }, { "name": "laravel/scout", - "version": "v10.11.4", + "version": "v10.12.1", "source": { "type": "git", "url": "https://github.com/laravel/scout.git", - "reference": "f9cf4f79163e3c5f13f81369d4992d66e6700502" + "reference": "f40f14b7a63be753a425eae4f56cd71d08478242" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/scout/zipball/f9cf4f79163e3c5f13f81369d4992d66e6700502", - "reference": "f9cf4f79163e3c5f13f81369d4992d66e6700502", + "url": "https://api.github.com/repos/laravel/scout/zipball/f40f14b7a63be753a425eae4f56cd71d08478242", + "reference": "f40f14b7a63be753a425eae4f56cd71d08478242", "shasum": "" }, "require": { @@ -2449,8 +2453,11 @@ "php": "^8.0", "symfony/console": "^6.0|^7.0" }, + "conflict": { + "algolia/algoliasearch-client-php": "<3.2.0|>=5.0.0" + }, "require-dev": { - "algolia/algoliasearch-client-php": "^3.2", + "algolia/algoliasearch-client-php": "^3.2|^4.0", "meilisearch/meilisearch-php": "^1.0", "mockery/mockery": "^1.0", "orchestra/testbench": "^7.31|^8.11|^9.0", @@ -2466,13 +2473,13 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "10.x-dev" - }, "laravel": { "providers": [ "Laravel\\Scout\\ScoutServiceProvider" ] + }, + "branch-alias": { + "dev-master": "10.x-dev" } }, "autoload": { @@ -2500,20 +2507,20 @@ "issues": "https://github.com/laravel/scout/issues", "source": "https://github.com/laravel/scout" }, - "time": "2024-10-01T14:39:33+00:00" + "time": "2025-01-21T15:07:47+00:00" }, { "name": "laravel/serializable-closure", - "version": "v1.3.5", + "version": "v1.3.7", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c" + "reference": "4f48ade902b94323ca3be7646db16209ec76be3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c", - "reference": "1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/4f48ade902b94323ca3be7646db16209ec76be3d", + "reference": "4f48ade902b94323ca3be7646db16209ec76be3d", "shasum": "" }, "require": { @@ -2561,7 +2568,7 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2024-09-23T13:33:08+00:00" + "time": "2024-11-14T18:34:49+00:00" }, { "name": "laravel/tinker", @@ -2631,16 +2638,16 @@ }, { "name": "lcobucci/jwt", - "version": "5.4.0", + "version": "5.4.2", "source": { "type": "git", "url": "https://github.com/lcobucci/jwt.git", - "reference": "aac4fd512681fd5cb4b77d2105ab7ec700c72051" + "reference": "ea1ce71cbf9741e445a5914e2f67cdbb484ff712" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/jwt/zipball/aac4fd512681fd5cb4b77d2105ab7ec700c72051", - "reference": "aac4fd512681fd5cb4b77d2105ab7ec700c72051", + "url": "https://api.github.com/repos/lcobucci/jwt/zipball/ea1ce71cbf9741e445a5914e2f67cdbb484ff712", + "reference": "ea1ce71cbf9741e445a5914e2f67cdbb484ff712", "shasum": "" }, "require": { @@ -2688,7 +2695,7 @@ ], "support": { "issues": "https://github.com/lcobucci/jwt/issues", - "source": "https://github.com/lcobucci/jwt/tree/5.4.0" + "source": "https://github.com/lcobucci/jwt/tree/5.4.2" }, "funding": [ { @@ -2700,20 +2707,20 @@ "type": "patreon" } ], - "time": "2024-10-08T22:06:45+00:00" + "time": "2024-11-07T12:54:35+00:00" }, { "name": "league/commonmark", - "version": "2.5.3", + "version": "2.6.1", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "b650144166dfa7703e62a22e493b853b58d874b0" + "reference": "d990688c91cedfb69753ffc2512727ec646df2ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/b650144166dfa7703e62a22e493b853b58d874b0", - "reference": "b650144166dfa7703e62a22e493b853b58d874b0", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d990688c91cedfb69753ffc2512727ec646df2ad", + "reference": "d990688c91cedfb69753ffc2512727ec646df2ad", "shasum": "" }, "require": { @@ -2738,8 +2745,9 @@ "phpstan/phpstan": "^1.8.2", "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", "scrutinizer/ocular": "^1.8.1", - "symfony/finder": "^5.3 | ^6.0 || ^7.0", - "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0", + "symfony/finder": "^5.3 | ^6.0 | ^7.0", + "symfony/process": "^5.4 | ^6.0 | ^7.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0", "unleashedtech/php-coding-standard": "^3.1.1", "vimeo/psalm": "^4.24.0 || ^5.0.0" }, @@ -2749,7 +2757,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.6-dev" + "dev-main": "2.7-dev" } }, "autoload": { @@ -2806,7 +2814,7 @@ "type": "tidelift" } ], - "time": "2024-08-16T11:46:16+00:00" + "time": "2024-12-29T14:10:59+00:00" }, { "name": "league/config", @@ -3135,20 +3143,20 @@ }, { "name": "league/uri", - "version": "7.4.1", + "version": "7.5.1", "source": { "type": "git", "url": "https://github.com/thephpleague/uri.git", - "reference": "bedb6e55eff0c933668addaa7efa1e1f2c417cc4" + "reference": "81fb5145d2644324614cc532b28efd0215bda430" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri/zipball/bedb6e55eff0c933668addaa7efa1e1f2c417cc4", - "reference": "bedb6e55eff0c933668addaa7efa1e1f2c417cc4", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/81fb5145d2644324614cc532b28efd0215bda430", + "reference": "81fb5145d2644324614cc532b28efd0215bda430", "shasum": "" }, "require": { - "league/uri-interfaces": "^7.3", + "league/uri-interfaces": "^7.5", "php": "^8.1" }, "conflict": { @@ -3213,7 +3221,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri/tree/7.4.1" + "source": "https://github.com/thephpleague/uri/tree/7.5.1" }, "funding": [ { @@ -3221,20 +3229,20 @@ "type": "github" } ], - "time": "2024-03-23T07:42:40+00:00" + "time": "2024-12-08T08:40:02+00:00" }, { "name": "league/uri-interfaces", - "version": "7.4.1", + "version": "7.5.0", "source": { "type": "git", "url": "https://github.com/thephpleague/uri-interfaces.git", - "reference": "8d43ef5c841032c87e2de015972c06f3865ef718" + "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/8d43ef5c841032c87e2de015972c06f3865ef718", - "reference": "8d43ef5c841032c87e2de015972c06f3865ef718", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", + "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", "shasum": "" }, "require": { @@ -3297,7 +3305,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri-interfaces/tree/7.4.1" + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.5.0" }, "funding": [ { @@ -3305,7 +3313,7 @@ "type": "github" } ], - "time": "2024-03-23T07:42:40+00:00" + "time": "2024-12-08T08:18:47+00:00" }, { "name": "masterminds/html5", @@ -3438,16 +3446,16 @@ }, { "name": "monolog/monolog", - "version": "3.7.0", + "version": "3.8.1", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8" + "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f4393b648b78a5408747de94fca38beb5f7e9ef8", - "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/aef6ee73a77a66e404dd6540934a9ef1b3c855b4", + "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4", "shasum": "" }, "require": { @@ -3467,12 +3475,14 @@ "guzzlehttp/psr7": "^2.2", "mongodb/mongodb": "^1.8", "php-amqplib/php-amqplib": "~2.4 || ^3", - "phpstan/phpstan": "^1.9", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-strict-rules": "^1.4", - "phpunit/phpunit": "^10.5.17", + "php-console/php-console": "^3.1.8", + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^10.5.17 || ^11.0.7", "predis/predis": "^1.1 || ^2", - "ruflin/elastica": "^7", + "rollbar/rollbar": "^4.0", + "ruflin/elastica": "^7 || ^8", "symfony/mailer": "^5.4 || ^6", "symfony/mime": "^5.4 || ^6" }, @@ -3523,7 +3533,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.7.0" + "source": "https://github.com/Seldaek/monolog/tree/3.8.1" }, "funding": [ { @@ -3535,7 +3545,7 @@ "type": "tidelift" } ], - "time": "2024-06-28T09:40:51+00:00" + "time": "2024-12-05T17:15:07+00:00" }, { "name": "mtdowling/jmespath.php", @@ -3605,20 +3615,20 @@ }, { "name": "nesbot/carbon", - "version": "3.8.0", + "version": "3.8.4", "source": { "type": "git", - "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "bbd3eef89af8ba66a3aa7952b5439168fbcc529f" + "url": "https://github.com/CarbonPHP/carbon.git", + "reference": "129700ed449b1f02d70272d2ac802357c8c30c58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bbd3eef89af8ba66a3aa7952b5439168fbcc529f", - "reference": "bbd3eef89af8ba66a3aa7952b5439168fbcc529f", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/129700ed449b1f02d70272d2ac802357c8c30c58", + "reference": "129700ed449b1f02d70272d2ac802357c8c30c58", "shasum": "" }, "require": { - "carbonphp/carbon-doctrine-types": "*", + "carbonphp/carbon-doctrine-types": "<100.0", "ext-json": "*", "php": "^8.1", "psr/clock": "^1.0", @@ -3646,10 +3656,6 @@ ], "type": "library", "extra": { - "branch-alias": { - "dev-master": "3.x-dev", - "dev-2.x": "2.x-dev" - }, "laravel": { "providers": [ "Carbon\\Laravel\\ServiceProvider" @@ -3659,6 +3665,10 @@ "includes": [ "extension.neon" ] + }, + "branch-alias": { + "dev-2.x": "2.x-dev", + "dev-master": "3.x-dev" } }, "autoload": { @@ -3707,7 +3717,7 @@ "type": "tidelift" } ], - "time": "2024-08-19T06:22:39+00:00" + "time": "2024-12-27T09:25:35+00:00" }, { "name": "nette/schema", @@ -3915,31 +3925,31 @@ }, { "name": "nunomaduro/termwind", - "version": "v2.2.0", + "version": "v2.3.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "42c84e4e8090766bbd6445d06cd6e57650626ea3" + "reference": "52915afe6a1044e8b9cee1bcff836fb63acf9cda" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/42c84e4e8090766bbd6445d06cd6e57650626ea3", - "reference": "42c84e4e8090766bbd6445d06cd6e57650626ea3", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/52915afe6a1044e8b9cee1bcff836fb63acf9cda", + "reference": "52915afe6a1044e8b9cee1bcff836fb63acf9cda", "shasum": "" }, "require": { "ext-mbstring": "*", "php": "^8.2", - "symfony/console": "^7.1.5" + "symfony/console": "^7.1.8" }, "require-dev": { - "illuminate/console": "^11.28.0", - "laravel/pint": "^1.18.1", + "illuminate/console": "^11.33.2", + "laravel/pint": "^1.18.2", "mockery/mockery": "^1.6.12", "pestphp/pest": "^2.36.0", - "phpstan/phpstan": "^1.12.6", + "phpstan/phpstan": "^1.12.11", "phpstan/phpstan-strict-rules": "^1.6.1", - "symfony/var-dumper": "^7.1.5", + "symfony/var-dumper": "^7.1.8", "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", @@ -3982,7 +3992,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v2.2.0" + "source": "https://github.com/nunomaduro/termwind/tree/v2.3.0" }, "funding": [ { @@ -3998,7 +4008,7 @@ "type": "github" } ], - "time": "2024-10-15T16:15:16+00:00" + "time": "2024-11-21T10:39:51+00:00" }, { "name": "p3k/http", @@ -4164,16 +4174,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.4.1", + "version": "5.6.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c" + "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", - "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8", + "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8", "shasum": "" }, "require": { @@ -4182,17 +4192,17 @@ "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.2", "phpdocumentor/type-resolver": "^1.7", - "phpstan/phpdoc-parser": "^1.7", + "phpstan/phpdoc-parser": "^1.7|^2.0", "webmozart/assert": "^1.9.1" }, "require-dev": { - "mockery/mockery": "~1.3.5", + "mockery/mockery": "~1.3.5 || ~1.6.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan": "^1.8", "phpstan/phpstan-mockery": "^1.1", "phpstan/phpstan-webmozart-assert": "^1.2", "phpunit/phpunit": "^9.5", - "vimeo/psalm": "^5.13" + "psalm/phar": "^5.26" }, "type": "library", "extra": { @@ -4222,29 +4232,29 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.1" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.1" }, - "time": "2024-05-21T05:55:05+00:00" + "time": "2024-12-07T09:39:29+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.8.2", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "153ae662783729388a584b4361f2545e4d841e3c" + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c", - "reference": "153ae662783729388a584b4361f2545e4d841e3c", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a", + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a", "shasum": "" }, "require": { "doctrine/deprecations": "^1.0", "php": "^7.3 || ^8.0", "phpdocumentor/reflection-common": "^2.0", - "phpstan/phpdoc-parser": "^1.13" + "phpstan/phpdoc-parser": "^1.18|^2.0" }, "require-dev": { "ext-tokenizer": "*", @@ -4280,9 +4290,9 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0" }, - "time": "2024-02-23T11:10:43+00:00" + "time": "2024-11-09T15:12:26+00:00" }, { "name": "phpoption/phpoption", @@ -4361,30 +4371,30 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.33.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140" + "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/82a311fd3690fb2bf7b64d5c98f912b3dd746140", - "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/c00d78fb6b29658347f9d37ebe104bffadf36299", + "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "doctrine/annotations": "^2.0", - "nikic/php-parser": "^4.15", + "nikic/php-parser": "^5.3.0", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.5", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", "symfony/process": "^5.2" }, "type": "library", @@ -4402,9 +4412,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.33.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.0.0" }, - "time": "2024-10-13T11:25:22+00:00" + "time": "2024-10-13T11:29:49+00:00" }, { "name": "psr/clock", @@ -4820,16 +4830,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.4", + "version": "v0.12.7", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "2fd717afa05341b4f8152547f142cd2f130f6818" + "reference": "d73fa3c74918ef4522bb8a3bf9cab39161c4b57c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/2fd717afa05341b4f8152547f142cd2f130f6818", - "reference": "2fd717afa05341b4f8152547f142cd2f130f6818", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/d73fa3c74918ef4522bb8a3bf9cab39161c4b57c", + "reference": "d73fa3c74918ef4522bb8a3bf9cab39161c4b57c", "shasum": "" }, "require": { @@ -4856,12 +4866,12 @@ ], "type": "library", "extra": { - "branch-alias": { - "dev-main": "0.12.x-dev" - }, "bamarni-bin": { "bin-links": false, "forward-command": false + }, + "branch-alias": { + "dev-main": "0.12.x-dev" } }, "autoload": { @@ -4893,9 +4903,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.4" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.7" }, - "time": "2024-06-10T01:18:23+00:00" + "time": "2024-12-10T01:58:33+00:00" }, { "name": "ralouphie/getallheaders", @@ -5202,27 +5212,27 @@ }, { "name": "spatie/backtrace", - "version": "1.6.2", + "version": "1.7.1", "source": { "type": "git", "url": "https://github.com/spatie/backtrace.git", - "reference": "1a9a145b044677ae3424693f7b06479fc8c137a9" + "reference": "0f2477c520e3729de58e061b8192f161c99f770b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/backtrace/zipball/1a9a145b044677ae3424693f7b06479fc8c137a9", - "reference": "1a9a145b044677ae3424693f7b06479fc8c137a9", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/0f2477c520e3729de58e061b8192f161c99f770b", + "reference": "0f2477c520e3729de58e061b8192f161c99f770b", "shasum": "" }, "require": { - "php": "^7.3|^8.0" + "php": "^7.3 || ^8.0" }, "require-dev": { "ext-json": "*", - "laravel/serializable-closure": "^1.3", - "phpunit/phpunit": "^9.3", - "spatie/phpunit-snapshot-assertions": "^4.2", - "symfony/var-dumper": "^5.1" + "laravel/serializable-closure": "^1.3 || ^2.0", + "phpunit/phpunit": "^9.3 || ^11.4.3", + "spatie/phpunit-snapshot-assertions": "^4.2 || ^5.1.6", + "symfony/var-dumper": "^5.1 || ^6.0 || ^7.0" }, "type": "library", "autoload": { @@ -5249,7 +5259,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/backtrace/tree/1.6.2" + "source": "https://github.com/spatie/backtrace/tree/1.7.1" }, "funding": [ { @@ -5261,7 +5271,7 @@ "type": "other" } ], - "time": "2024-07-22T08:21:24+00:00" + "time": "2024-12-02T13:28:15+00:00" }, { "name": "spatie/commonmark-highlighter", @@ -5319,16 +5329,16 @@ }, { "name": "spatie/error-solutions", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/spatie/error-solutions.git", - "reference": "ae7393122eda72eed7cc4f176d1e96ea444f2d67" + "reference": "d239a65235a1eb128dfa0a4e4c4ef032ea11b541" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/error-solutions/zipball/ae7393122eda72eed7cc4f176d1e96ea444f2d67", - "reference": "ae7393122eda72eed7cc4f176d1e96ea444f2d67", + "url": "https://api.github.com/repos/spatie/error-solutions/zipball/d239a65235a1eb128dfa0a4e4c4ef032ea11b541", + "reference": "d239a65235a1eb128dfa0a4e4c4ef032ea11b541", "shasum": "" }, "require": { @@ -5381,7 +5391,7 @@ ], "support": { "issues": "https://github.com/spatie/error-solutions/issues", - "source": "https://github.com/spatie/error-solutions/tree/1.1.1" + "source": "https://github.com/spatie/error-solutions/tree/1.1.2" }, "funding": [ { @@ -5389,20 +5399,20 @@ "type": "github" } ], - "time": "2024-07-25T11:06:04+00:00" + "time": "2024-12-11T09:51:56+00:00" }, { "name": "spatie/flare-client-php", - "version": "1.8.0", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "180f8ca4c0d0d6fc51477bd8c53ce37ab5a96122" + "reference": "140a42b2c5d59ac4ecf8f5b493386a4f2eb28272" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/180f8ca4c0d0d6fc51477bd8c53ce37ab5a96122", - "reference": "180f8ca4c0d0d6fc51477bd8c53ce37ab5a96122", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/140a42b2c5d59ac4ecf8f5b493386a4f2eb28272", + "reference": "140a42b2c5d59ac4ecf8f5b493386a4f2eb28272", "shasum": "" }, "require": { @@ -5450,7 +5460,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.8.0" + "source": "https://github.com/spatie/flare-client-php/tree/1.10.0" }, "funding": [ { @@ -5458,7 +5468,7 @@ "type": "github" } ], - "time": "2024-08-01T08:27:26+00:00" + "time": "2024-12-02T14:30:06+00:00" }, { "name": "spatie/ignition", @@ -5545,16 +5555,16 @@ }, { "name": "spatie/laravel-ignition", - "version": "2.8.0", + "version": "2.9.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "3c067b75bfb50574db8f7e2c3978c65eed71126c" + "reference": "62042df15314b829d0f26e02108f559018e2aad0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/3c067b75bfb50574db8f7e2c3978c65eed71126c", - "reference": "3c067b75bfb50574db8f7e2c3978c65eed71126c", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/62042df15314b829d0f26e02108f559018e2aad0", + "reference": "62042df15314b829d0f26e02108f559018e2aad0", "shasum": "" }, "require": { @@ -5585,12 +5595,12 @@ "type": "library", "extra": { "laravel": { - "providers": [ - "Spatie\\LaravelIgnition\\IgnitionServiceProvider" - ], "aliases": { "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare" - } + }, + "providers": [ + "Spatie\\LaravelIgnition\\IgnitionServiceProvider" + ] } }, "autoload": { @@ -5632,7 +5642,7 @@ "type": "github" } ], - "time": "2024-06-12T15:01:18+00:00" + "time": "2024-12-02T08:43:31+00:00" }, { "name": "spomky-labs/cbor-php", @@ -5719,16 +5729,16 @@ }, { "name": "spomky-labs/pki-framework", - "version": "1.2.1", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/Spomky-Labs/pki-framework.git", - "reference": "0b10c8b53366729417d6226ae89a665f9e2d61b6" + "reference": "5ac374c3e295c8b917208ff41b4d30f76668478c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Spomky-Labs/pki-framework/zipball/0b10c8b53366729417d6226ae89a665f9e2d61b6", - "reference": "0b10c8b53366729417d6226ae89a665f9e2d61b6", + "url": "https://api.github.com/repos/Spomky-Labs/pki-framework/zipball/5ac374c3e295c8b917208ff41b4d30f76668478c", + "reference": "5ac374c3e295c8b917208ff41b4d30f76668478c", "shasum": "" }, "require": { @@ -5737,21 +5747,19 @@ "php": ">=8.1" }, "require-dev": { - "ekino/phpstan-banned-code": "^1.0", + "ekino/phpstan-banned-code": "^1.0|^2.0|^3.0", "ext-gmp": "*", "ext-openssl": "*", - "infection/infection": "^0.28", + "infection/infection": "^0.28|^0.29", "php-parallel-lint/php-parallel-lint": "^1.3", - "phpstan/extension-installer": "^1.3", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-beberlei-assert": "^1.0", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.3", + "phpstan/extension-installer": "^1.3|^2.0", + "phpstan/phpstan": "^1.8|^2.0", + "phpstan/phpstan-deprecation-rules": "^1.0|^2.0", + "phpstan/phpstan-phpunit": "^1.1|^2.0", + "phpstan/phpstan-strict-rules": "^1.3|^2.0", "phpunit/phpunit": "^10.1|^11.0", - "rector/rector": "^1.0", + "rector/rector": "^1.0|^2.0", "roave/security-advisories": "dev-latest", - "symfony/phpunit-bridge": "^6.4|^7.0", "symfony/string": "^6.4|^7.0", "symfony/var-dumper": "^6.4|^7.0", "symplify/easy-coding-standard": "^12.0" @@ -5814,7 +5822,7 @@ ], "support": { "issues": "https://github.com/Spomky-Labs/pki-framework/issues", - "source": "https://github.com/Spomky-Labs/pki-framework/tree/1.2.1" + "source": "https://github.com/Spomky-Labs/pki-framework/tree/1.2.2" }, "funding": [ { @@ -5826,20 +5834,20 @@ "type": "patreon" } ], - "time": "2024-03-30T18:03:49+00:00" + "time": "2025-01-03T09:35:48+00:00" }, { "name": "symfony/clock", - "version": "v7.1.1", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "3dfc8b084853586de51dd1441c6242c76a28cbe7" + "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/3dfc8b084853586de51dd1441c6242c76a28cbe7", - "reference": "3dfc8b084853586de51dd1441c6242c76a28cbe7", + "url": "https://api.github.com/repos/symfony/clock/zipball/b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", + "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", "shasum": "" }, "require": { @@ -5884,7 +5892,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v7.1.1" + "source": "https://github.com/symfony/clock/tree/v7.2.0" }, "funding": [ { @@ -5900,20 +5908,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/console", - "version": "v7.1.5", + "version": "v7.2.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0fa539d12b3ccf068a722bbbffa07ca7079af9ee" + "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0fa539d12b3ccf068a722bbbffa07ca7079af9ee", - "reference": "0fa539d12b3ccf068a722bbbffa07ca7079af9ee", + "url": "https://api.github.com/repos/symfony/console/zipball/fefcc18c0f5d0efe3ab3152f15857298868dc2c3", + "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3", "shasum": "" }, "require": { @@ -5977,7 +5985,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.1.5" + "source": "https://github.com/symfony/console/tree/v7.2.1" }, "funding": [ { @@ -5993,20 +6001,20 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:28:38+00:00" + "time": "2024-12-11T03:49:26+00:00" }, { "name": "symfony/css-selector", - "version": "v7.1.1", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4" + "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/1c7cee86c6f812896af54434f8ce29c8d94f9ff4", - "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/601a5ce9aaad7bf10797e3663faefce9e26c24e2", + "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2", "shasum": "" }, "require": { @@ -6042,7 +6050,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.1.1" + "source": "https://github.com/symfony/css-selector/tree/v7.2.0" }, "funding": [ { @@ -6058,20 +6066,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", "shasum": "" }, "require": { @@ -6079,12 +6087,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -6109,7 +6117,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" }, "funding": [ { @@ -6125,20 +6133,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/error-handler", - "version": "v7.1.3", + "version": "v7.2.1", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "432bb369952795c61ca1def65e078c4a80dad13c" + "reference": "6150b89186573046167796fa5f3f76601d5145f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/432bb369952795c61ca1def65e078c4a80dad13c", - "reference": "432bb369952795c61ca1def65e078c4a80dad13c", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/6150b89186573046167796fa5f3f76601d5145f8", + "reference": "6150b89186573046167796fa5f3f76601d5145f8", "shasum": "" }, "require": { @@ -6184,7 +6192,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.3" + "source": "https://github.com/symfony/error-handler/tree/v7.2.1" }, "funding": [ { @@ -6200,20 +6208,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T13:02:51+00:00" + "time": "2024-12-07T08:50:44+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.1.1", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7" + "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7", - "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/910c5db85a5356d0fea57680defec4e99eb9c8c1", + "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1", "shasum": "" }, "require": { @@ -6264,7 +6272,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.1.1" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.2.0" }, "funding": [ { @@ -6280,20 +6288,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" + "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", - "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f", + "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f", "shasum": "" }, "require": { @@ -6302,12 +6310,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -6340,7 +6348,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1" }, "funding": [ { @@ -6356,20 +6364,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/finder", - "version": "v7.1.4", + "version": "v7.2.2", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "d95bbf319f7d052082fb7af147e0f835a695e823" + "reference": "87a71856f2f56e4100373e92529eed3171695cfb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/d95bbf319f7d052082fb7af147e0f835a695e823", - "reference": "d95bbf319f7d052082fb7af147e0f835a695e823", + "url": "https://api.github.com/repos/symfony/finder/zipball/87a71856f2f56e4100373e92529eed3171695cfb", + "reference": "87a71856f2f56e4100373e92529eed3171695cfb", "shasum": "" }, "require": { @@ -6404,7 +6412,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.4" + "source": "https://github.com/symfony/finder/tree/v7.2.2" }, "funding": [ { @@ -6420,20 +6428,20 @@ "type": "tidelift" } ], - "time": "2024-08-13T14:28:19+00:00" + "time": "2024-12-30T19:00:17+00:00" }, { "name": "symfony/html-sanitizer", - "version": "v7.1.5", + "version": "v7.2.2", "source": { "type": "git", "url": "https://github.com/symfony/html-sanitizer.git", - "reference": "89bf376c056926bd7fe8a81c0f486a060e20fdbc" + "reference": "f6bc679b024e30f27e33815930a5b8b304c79813" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/89bf376c056926bd7fe8a81c0f486a060e20fdbc", - "reference": "89bf376c056926bd7fe8a81c0f486a060e20fdbc", + "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/f6bc679b024e30f27e33815930a5b8b304c79813", + "reference": "f6bc679b024e30f27e33815930a5b8b304c79813", "shasum": "" }, "require": { @@ -6473,7 +6481,7 @@ "sanitizer" ], "support": { - "source": "https://github.com/symfony/html-sanitizer/tree/v7.1.5" + "source": "https://github.com/symfony/html-sanitizer/tree/v7.2.2" }, "funding": [ { @@ -6489,35 +6497,36 @@ "type": "tidelift" } ], - "time": "2024-09-20T13:35:23+00:00" + "time": "2024-12-30T18:35:15+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.1.5", + "version": "v7.2.2", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "e30ef73b1e44eea7eb37ba69600a354e553f694b" + "reference": "62d1a43796ca3fea3f83a8470dfe63a4af3bc588" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e30ef73b1e44eea7eb37ba69600a354e553f694b", - "reference": "e30ef73b1e44eea7eb37ba69600a354e553f694b", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/62d1a43796ca3fea3f83a8470dfe63a4af3bc588", + "reference": "62d1a43796ca3fea3f83a8470dfe63a4af3bc588", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/polyfill-mbstring": "~1.1", "symfony/polyfill-php83": "^1.27" }, "conflict": { "doctrine/dbal": "<3.6", - "symfony/cache": "<6.4" + "symfony/cache": "<6.4.12|>=7.0,<7.1.5" }, "require-dev": { "doctrine/dbal": "^3.6|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.4|^7.0", + "symfony/cache": "^6.4.12|^7.1.5", "symfony/dependency-injection": "^6.4|^7.0", "symfony/expression-language": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", @@ -6550,7 +6559,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.5" + "source": "https://github.com/symfony/http-foundation/tree/v7.2.2" }, "funding": [ { @@ -6566,20 +6575,20 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:28:38+00:00" + "time": "2024-12-30T19:00:17+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.1.5", + "version": "v7.2.2", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "44204d96150a9df1fc57601ec933d23fefc2d65b" + "reference": "3c432966bd8c7ec7429663105f5a02d7e75b4306" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/44204d96150a9df1fc57601ec933d23fefc2d65b", - "reference": "44204d96150a9df1fc57601ec933d23fefc2d65b", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/3c432966bd8c7ec7429663105f5a02d7e75b4306", + "reference": "3c432966bd8c7ec7429663105f5a02d7e75b4306", "shasum": "" }, "require": { @@ -6608,7 +6617,7 @@ "symfony/twig-bridge": "<6.4", "symfony/validator": "<6.4", "symfony/var-dumper": "<6.4", - "twig/twig": "<3.0.4" + "twig/twig": "<3.12" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" @@ -6636,7 +6645,7 @@ "symfony/validator": "^6.4|^7.0", "symfony/var-dumper": "^6.4|^7.0", "symfony/var-exporter": "^6.4|^7.0", - "twig/twig": "^3.0.4" + "twig/twig": "^3.12" }, "type": "library", "autoload": { @@ -6664,7 +6673,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.5" + "source": "https://github.com/symfony/http-kernel/tree/v7.2.2" }, "funding": [ { @@ -6680,20 +6689,20 @@ "type": "tidelift" } ], - "time": "2024-09-21T06:09:21+00:00" + "time": "2024-12-31T14:59:40+00:00" }, { "name": "symfony/mailer", - "version": "v7.1.5", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "bbf21460c56f29810da3df3e206e38dfbb01e80b" + "reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/bbf21460c56f29810da3df3e206e38dfbb01e80b", - "reference": "bbf21460c56f29810da3df3e206e38dfbb01e80b", + "url": "https://api.github.com/repos/symfony/mailer/zipball/e4d358702fb66e4c8a2af08e90e7271a62de39cc", + "reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc", "shasum": "" }, "require": { @@ -6702,7 +6711,7 @@ "psr/event-dispatcher": "^1", "psr/log": "^1|^2|^3", "symfony/event-dispatcher": "^6.4|^7.0", - "symfony/mime": "^6.4|^7.0", + "symfony/mime": "^7.2", "symfony/service-contracts": "^2.5|^3" }, "conflict": { @@ -6744,7 +6753,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.1.5" + "source": "https://github.com/symfony/mailer/tree/v7.2.0" }, "funding": [ { @@ -6760,20 +6769,20 @@ "type": "tidelift" } ], - "time": "2024-09-08T12:32:26+00:00" + "time": "2024-11-25T15:21:05+00:00" }, { "name": "symfony/mime", - "version": "v7.1.5", + "version": "v7.2.1", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "711d2e167e8ce65b05aea6b258c449671cdd38ff" + "reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/711d2e167e8ce65b05aea6b258c449671cdd38ff", - "reference": "711d2e167e8ce65b05aea6b258c449671cdd38ff", + "url": "https://api.github.com/repos/symfony/mime/zipball/7f9617fcf15cb61be30f8b252695ed5e2bfac283", + "reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283", "shasum": "" }, "require": { @@ -6828,7 +6837,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.1.5" + "source": "https://github.com/symfony/mime/tree/v7.2.1" }, "funding": [ { @@ -6844,7 +6853,7 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:28:38+00:00" + "time": "2024-12-07T08:50:44+00:00" }, { "name": "symfony/polyfill-ctype", @@ -6872,8 +6881,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -6948,8 +6957,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -7027,8 +7036,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -7109,8 +7118,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -7193,8 +7202,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -7267,8 +7276,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -7347,8 +7356,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -7429,8 +7438,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -7484,16 +7493,16 @@ }, { "name": "symfony/process", - "version": "v7.1.5", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "5c03ee6369281177f07f7c68252a280beccba847" + "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/5c03ee6369281177f07f7c68252a280beccba847", - "reference": "5c03ee6369281177f07f7c68252a280beccba847", + "url": "https://api.github.com/repos/symfony/process/zipball/d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", + "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", "shasum": "" }, "require": { @@ -7525,7 +7534,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.1.5" + "source": "https://github.com/symfony/process/tree/v7.2.0" }, "funding": [ { @@ -7541,20 +7550,20 @@ "type": "tidelift" } ], - "time": "2024-09-19T21:48:23+00:00" + "time": "2024-11-06T14:24:19+00:00" }, { "name": "symfony/property-access", - "version": "v7.1.4", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "6c709f97103355016e5782d0622437ae381012ad" + "reference": "3ae42efba01e45aaedecf5c93c8d6a3ab3a82276" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/6c709f97103355016e5782d0622437ae381012ad", - "reference": "6c709f97103355016e5782d0622437ae381012ad", + "url": "https://api.github.com/repos/symfony/property-access/zipball/3ae42efba01e45aaedecf5c93c8d6a3ab3a82276", + "reference": "3ae42efba01e45aaedecf5c93c8d6a3ab3a82276", "shasum": "" }, "require": { @@ -7601,7 +7610,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v7.1.4" + "source": "https://github.com/symfony/property-access/tree/v7.2.0" }, "funding": [ { @@ -7617,36 +7626,35 @@ "type": "tidelift" } ], - "time": "2024-08-30T16:12:47+00:00" + "time": "2024-09-26T12:28:35+00:00" }, { "name": "symfony/property-info", - "version": "v7.1.3", + "version": "v7.2.2", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "88a279df2db5b7919cac6f35d6a5d1d7147e6a9b" + "reference": "1dfeb0dac7a99f7b3be42db9ccc299c5a6483fcf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/88a279df2db5b7919cac6f35d6a5d1d7147e6a9b", - "reference": "88a279df2db5b7919cac6f35d6a5d1d7147e6a9b", + "url": "https://api.github.com/repos/symfony/property-info/zipball/1dfeb0dac7a99f7b3be42db9ccc299c5a6483fcf", + "reference": "1dfeb0dac7a99f7b3be42db9ccc299c5a6483fcf", "shasum": "" }, "require": { "php": ">=8.2", "symfony/string": "^6.4|^7.0", - "symfony/type-info": "^7.1" + "symfony/type-info": "~7.1.9|^7.2.2" }, "conflict": { "phpdocumentor/reflection-docblock": "<5.2", "phpdocumentor/type-resolver": "<1.5.1", - "symfony/dependency-injection": "<6.4", - "symfony/serializer": "<6.4" + "symfony/dependency-injection": "<6.4" }, "require-dev": { "phpdocumentor/reflection-docblock": "^5.2", - "phpstan/phpdoc-parser": "^1.0", + "phpstan/phpdoc-parser": "^1.0|^2.0", "symfony/cache": "^6.4|^7.0", "symfony/dependency-injection": "^6.4|^7.0", "symfony/serializer": "^6.4|^7.0" @@ -7685,7 +7693,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v7.1.3" + "source": "https://github.com/symfony/property-info/tree/v7.2.2" }, "funding": [ { @@ -7701,20 +7709,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T07:36:36+00:00" + "time": "2024-12-31T11:04:50+00:00" }, { "name": "symfony/routing", - "version": "v7.1.4", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "1500aee0094a3ce1c92626ed8cf3c2037e86f5a7" + "reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/1500aee0094a3ce1c92626ed8cf3c2037e86f5a7", - "reference": "1500aee0094a3ce1c92626ed8cf3c2037e86f5a7", + "url": "https://api.github.com/repos/symfony/routing/zipball/e10a2450fa957af6c448b9b93c9010a4e4c0725e", + "reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e", "shasum": "" }, "require": { @@ -7766,7 +7774,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.1.4" + "source": "https://github.com/symfony/routing/tree/v7.2.0" }, "funding": [ { @@ -7782,20 +7790,20 @@ "type": "tidelift" } ], - "time": "2024-08-29T08:16:25+00:00" + "time": "2024-11-25T11:08:51+00:00" }, { "name": "symfony/serializer", - "version": "v7.1.5", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "71d6e1f70f00752d1469d0f5e83b0a51716f288b" + "reference": "3f5ed9f5e6c02e3853109190ba38408f5e1d2dd0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/71d6e1f70f00752d1469d0f5e83b0a51716f288b", - "reference": "71d6e1f70f00752d1469d0f5e83b0a51716f288b", + "url": "https://api.github.com/repos/symfony/serializer/zipball/3f5ed9f5e6c02e3853109190ba38408f5e1d2dd0", + "reference": "3f5ed9f5e6c02e3853109190ba38408f5e1d2dd0", "shasum": "" }, "require": { @@ -7809,19 +7817,18 @@ "symfony/dependency-injection": "<6.4", "symfony/property-access": "<6.4", "symfony/property-info": "<6.4", - "symfony/type-info": "<7.1.5", "symfony/uid": "<6.4", "symfony/validator": "<6.4", "symfony/yaml": "<6.4" }, "require-dev": { "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", - "phpstan/phpdoc-parser": "^1.0", + "phpstan/phpdoc-parser": "^1.0|^2.0", "seld/jsonlint": "^1.10", "symfony/cache": "^6.4|^7.0", "symfony/config": "^6.4|^7.0", "symfony/console": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", + "symfony/dependency-injection": "^7.2", "symfony/error-handler": "^6.4|^7.0", "symfony/filesystem": "^6.4|^7.0", "symfony/form": "^6.4|^7.0", @@ -7832,7 +7839,7 @@ "symfony/property-access": "^6.4|^7.0", "symfony/property-info": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3", - "symfony/type-info": "^7.1.5", + "symfony/type-info": "^7.1", "symfony/uid": "^6.4|^7.0", "symfony/validator": "^6.4|^7.0", "symfony/var-dumper": "^6.4|^7.0", @@ -7865,7 +7872,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v7.1.5" + "source": "https://github.com/symfony/serializer/tree/v7.2.0" }, "funding": [ { @@ -7881,20 +7888,20 @@ "type": "tidelift" } ], - "time": "2024-09-20T12:13:15+00:00" + "time": "2024-11-25T15:21:05+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" + "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0", + "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0", "shasum": "" }, "require": { @@ -7907,12 +7914,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -7948,7 +7955,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.5.1" }, "funding": [ { @@ -7964,20 +7971,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/string", - "version": "v7.1.5", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "d66f9c343fa894ec2037cc928381df90a7ad4306" + "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/d66f9c343fa894ec2037cc928381df90a7ad4306", - "reference": "d66f9c343fa894ec2037cc928381df90a7ad4306", + "url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82", + "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82", "shasum": "" }, "require": { @@ -8035,7 +8042,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.5" + "source": "https://github.com/symfony/string/tree/v7.2.0" }, "funding": [ { @@ -8051,24 +8058,25 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:28:38+00:00" + "time": "2024-11-13T13:31:26+00:00" }, { "name": "symfony/translation", - "version": "v7.1.5", + "version": "v7.2.2", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "235535e3f84f3dfbdbde0208ede6ca75c3a489ea" + "reference": "e2674a30132b7cc4d74540d6c2573aa363f05923" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/235535e3f84f3dfbdbde0208ede6ca75c3a489ea", - "reference": "235535e3f84f3dfbdbde0208ede6ca75c3a489ea", + "url": "https://api.github.com/repos/symfony/translation/zipball/e2674a30132b7cc4d74540d6c2573aa363f05923", + "reference": "e2674a30132b7cc4d74540d6c2573aa363f05923", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/translation-contracts": "^2.5|^3.0" }, @@ -8129,7 +8137,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.1.5" + "source": "https://github.com/symfony/translation/tree/v7.2.2" }, "funding": [ { @@ -8145,20 +8153,20 @@ "type": "tidelift" } ], - "time": "2024-09-16T06:30:38+00:00" + "time": "2024-12-07T08:18:10+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" + "reference": "4667ff3bd513750603a09c8dedbea942487fb07c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", - "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c", + "reference": "4667ff3bd513750603a09c8dedbea942487fb07c", "shasum": "" }, "require": { @@ -8166,12 +8174,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -8207,7 +8215,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1" }, "funding": [ { @@ -8223,35 +8231,28 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/type-info", - "version": "v7.1.5", + "version": "v7.2.2", "source": { "type": "git", "url": "https://github.com/symfony/type-info.git", - "reference": "9f6094aa900d2c06bd61576a6f279d4ac441515f" + "reference": "3b5a17470fff0034f25fd4287cbdaa0010d2f749" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/type-info/zipball/9f6094aa900d2c06bd61576a6f279d4ac441515f", - "reference": "9f6094aa900d2c06bd61576a6f279d4ac441515f", + "url": "https://api.github.com/repos/symfony/type-info/zipball/3b5a17470fff0034f25fd4287cbdaa0010d2f749", + "reference": "3b5a17470fff0034f25fd4287cbdaa0010d2f749", "shasum": "" }, "require": { "php": ">=8.2", "psr/container": "^1.1|^2.0" }, - "conflict": { - "phpstan/phpdoc-parser": "<1.0", - "symfony/dependency-injection": "<6.4", - "symfony/property-info": "<6.4" - }, "require-dev": { - "phpstan/phpdoc-parser": "^1.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/property-info": "^6.4|^7.0" + "phpstan/phpdoc-parser": "^1.0|^2.0" }, "type": "library", "autoload": { @@ -8289,7 +8290,7 @@ "type" ], "support": { - "source": "https://github.com/symfony/type-info/tree/v7.1.5" + "source": "https://github.com/symfony/type-info/tree/v7.2.2" }, "funding": [ { @@ -8305,20 +8306,20 @@ "type": "tidelift" } ], - "time": "2024-09-19T21:48:23+00:00" + "time": "2024-12-20T13:38:37+00:00" }, { "name": "symfony/uid", - "version": "v7.1.5", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "8c7bb8acb933964055215d89f9a9871df0239317" + "reference": "2d294d0c48df244c71c105a169d0190bfb080426" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/8c7bb8acb933964055215d89f9a9871df0239317", - "reference": "8c7bb8acb933964055215d89f9a9871df0239317", + "url": "https://api.github.com/repos/symfony/uid/zipball/2d294d0c48df244c71c105a169d0190bfb080426", + "reference": "2d294d0c48df244c71c105a169d0190bfb080426", "shasum": "" }, "require": { @@ -8363,7 +8364,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.1.5" + "source": "https://github.com/symfony/uid/tree/v7.2.0" }, "funding": [ { @@ -8379,20 +8380,20 @@ "type": "tidelift" } ], - "time": "2024-09-17T09:16:35+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.1.5", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "e20e03889539fd4e4211e14d2179226c513c010d" + "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e20e03889539fd4e4211e14d2179226c513c010d", - "reference": "e20e03889539fd4e4211e14d2179226c513c010d", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c6a22929407dec8765d6e2b6ff85b800b245879c", + "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c", "shasum": "" }, "require": { @@ -8408,7 +8409,7 @@ "symfony/http-kernel": "^6.4|^7.0", "symfony/process": "^6.4|^7.0", "symfony/uid": "^6.4|^7.0", - "twig/twig": "^3.0.4" + "twig/twig": "^3.12" }, "bin": [ "Resources/bin/var-dump-server" @@ -8446,7 +8447,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.1.5" + "source": "https://github.com/symfony/var-dumper/tree/v7.2.0" }, "funding": [ { @@ -8462,35 +8463,37 @@ "type": "tidelift" } ], - "time": "2024-09-16T10:07:02+00:00" + "time": "2024-11-08T15:48:14+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "v2.2.7", + "version": "v2.3.0", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb" + "reference": "0d72ac1c00084279c1816675284073c5a337c20d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb", - "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0d72ac1c00084279c1816675284073c5a337c20d", + "reference": "0d72ac1c00084279c1816675284073c5a337c20d", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", - "php": "^5.5 || ^7.0 || ^8.0", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0" + "php": "^7.4 || ^8.0", + "symfony/css-selector": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^8.5.21 || ^9.5.10" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -8513,9 +8516,9 @@ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7" + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.3.0" }, - "time": "2023-12-08T13:03:43+00:00" + "time": "2024-12-21T16:25:41+00:00" }, { "name": "vlucas/phpdotenv", @@ -8603,16 +8606,16 @@ }, { "name": "voku/portable-ascii", - "version": "2.0.1", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/voku/portable-ascii.git", - "reference": "b56450eed252f6801410d810c8e1727224ae0743" + "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", - "reference": "b56450eed252f6801410d810c8e1727224ae0743", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", + "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", "shasum": "" }, "require": { @@ -8637,7 +8640,7 @@ "authors": [ { "name": "Lars Moelleken", - "homepage": "http://www.moelleken.org/" + "homepage": "https://www.moelleken.org/" } ], "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", @@ -8649,7 +8652,7 @@ ], "support": { "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/2.0.1" + "source": "https://github.com/voku/portable-ascii/tree/2.0.3" }, "funding": [ { @@ -8673,7 +8676,7 @@ "type": "tidelift" } ], - "time": "2022-03-08T17:03:00+00:00" + "time": "2024-11-21T01:49:47+00:00" }, { "name": "web-auth/cose-lib", @@ -8759,16 +8762,16 @@ }, { "name": "web-auth/webauthn-lib", - "version": "5.0.1", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/web-auth/webauthn-lib.git", - "reference": "2cc8262b885cf01eee3c4c10ca3985bdd2614c97" + "reference": "6b95b2b3902d943796c3c2bac2dd14af9d031fc2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/web-auth/webauthn-lib/zipball/2cc8262b885cf01eee3c4c10ca3985bdd2614c97", - "reference": "2cc8262b885cf01eee3c4c10ca3985bdd2614c97", + "url": "https://api.github.com/repos/web-auth/webauthn-lib/zipball/6b95b2b3902d943796c3c2bac2dd14af9d031fc2", + "reference": "6b95b2b3902d943796c3c2bac2dd14af9d031fc2", "shasum": "" }, "require": { @@ -8798,8 +8801,8 @@ "type": "library", "extra": { "thanks": { - "name": "web-auth/webauthn-framework", - "url": "https://github.com/web-auth/webauthn-framework" + "url": "https://github.com/web-auth/webauthn-framework", + "name": "web-auth/webauthn-framework" } }, "autoload": { @@ -8829,7 +8832,7 @@ "webauthn" ], "support": { - "source": "https://github.com/web-auth/webauthn-lib/tree/5.0.1" + "source": "https://github.com/web-auth/webauthn-lib/tree/5.1.1" }, "funding": [ { @@ -8841,7 +8844,7 @@ "type": "patreon" } ], - "time": "2024-07-20T05:24:59+00:00" + "time": "2025-01-03T23:01:20+00:00" }, { "name": "webmozart/assert", @@ -9065,16 +9068,16 @@ }, { "name": "barryvdh/laravel-debugbar", - "version": "v3.14.6", + "version": "v3.14.10", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-debugbar.git", - "reference": "14e4517bd49130d6119228107eb21ae47ae120ab" + "reference": "56b9bd235e3fe62e250124804009ce5bab97cc63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/14e4517bd49130d6119228107eb21ae47ae120ab", - "reference": "14e4517bd49130d6119228107eb21ae47ae120ab", + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/56b9bd235e3fe62e250124804009ce5bab97cc63", + "reference": "56b9bd235e3fe62e250124804009ce5bab97cc63", "shasum": "" }, "require": { @@ -9093,16 +9096,16 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "3.14-dev" - }, "laravel": { - "providers": [ - "Barryvdh\\Debugbar\\ServiceProvider" - ], "aliases": { "Debugbar": "Barryvdh\\Debugbar\\Facades\\Debugbar" - } + }, + "providers": [ + "Barryvdh\\Debugbar\\ServiceProvider" + ] + }, + "branch-alias": { + "dev-master": "3.14-dev" } }, "autoload": { @@ -9133,7 +9136,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-debugbar/issues", - "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.14.6" + "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.14.10" }, "funding": [ { @@ -9145,33 +9148,31 @@ "type": "github" } ], - "time": "2024-10-18T13:15:12+00:00" + "time": "2024-12-23T10:10:42+00:00" }, { "name": "barryvdh/laravel-ide-helper", - "version": "v3.2.0", + "version": "v3.5.4", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-ide-helper.git", - "reference": "7956ccb4943f8532d008c17a1094b34bb6394d56" + "reference": "980a87e250fc2a7558bc46e07f61c7594500ea53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/7956ccb4943f8532d008c17a1094b34bb6394d56", - "reference": "7956ccb4943f8532d008c17a1094b34bb6394d56", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/980a87e250fc2a7558bc46e07f61c7594500ea53", + "reference": "980a87e250fc2a7558bc46e07f61c7594500ea53", "shasum": "" }, "require": { - "barryvdh/reflection-docblock": "^2.1.2", + "barryvdh/reflection-docblock": "^2.3", "composer/class-map-generator": "^1.0", "ext-json": "*", "illuminate/console": "^11.15", "illuminate/database": "^11.15", "illuminate/filesystem": "^11.15", "illuminate/support": "^11.15", - "nikic/php-parser": "^4.18 || ^5", - "php": "^8.2", - "phpdocumentor/type-resolver": "^1.1.0" + "php": "^8.2" }, "require-dev": { "ext-pdo_sqlite": "*", @@ -9182,20 +9183,21 @@ "orchestra/testbench": "^9.2", "phpunit/phpunit": "^10.5", "spatie/phpunit-snapshot-assertions": "^4 || ^5", - "vimeo/psalm": "^5.4" + "vimeo/psalm": "^5.4", + "vlucas/phpdotenv": "^5" }, "suggest": { "illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9|^10|^11)." }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - }, "laravel": { "providers": [ "Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider" ] + }, + "branch-alias": { + "dev-master": "3.5-dev" } }, "autoload": { @@ -9217,6 +9219,7 @@ "keywords": [ "autocomplete", "codeintel", + "dev", "helper", "ide", "laravel", @@ -9227,7 +9230,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-ide-helper/issues", - "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v3.2.0" + "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v3.5.4" }, "funding": [ { @@ -9239,24 +9242,24 @@ "type": "github" } ], - "time": "2024-10-17T16:43:13+00:00" + "time": "2025-01-14T09:07:00+00:00" }, { "name": "barryvdh/reflection-docblock", - "version": "v2.1.2", + "version": "v2.3.1", "source": { "type": "git", "url": "https://github.com/barryvdh/ReflectionDocBlock.git", - "reference": "bba116ba9d5794fbf12e03ed40f10804e51acf76" + "reference": "b6ff9f93603561f50e53b64310495d20b8dff5d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/bba116ba9d5794fbf12e03ed40f10804e51acf76", - "reference": "bba116ba9d5794fbf12e03ed40f10804e51acf76", + "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/b6ff9f93603561f50e53b64310495d20b8dff5d8", + "reference": "b6ff9f93603561f50e53b64310495d20b8dff5d8", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^8.5.14|^9" @@ -9268,7 +9271,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.3.x-dev" } }, "autoload": { @@ -9289,22 +9292,22 @@ } ], "support": { - "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.1.2" + "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.3.1" }, - "time": "2024-10-16T11:06:28+00:00" + "time": "2025-01-18T19:26:32+00:00" }, { "name": "composer/class-map-generator", - "version": "1.4.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/composer/class-map-generator.git", - "reference": "98bbf6780e56e0fd2404fe4b82eb665a0f93b783" + "reference": "4b0a223cf5be7c9ee7e0ef1bc7db42b4a97c9915" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/98bbf6780e56e0fd2404fe4b82eb665a0f93b783", - "reference": "98bbf6780e56e0fd2404fe4b82eb665a0f93b783", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/4b0a223cf5be7c9ee7e0ef1bc7db42b4a97c9915", + "reference": "4b0a223cf5be7c9ee7e0ef1bc7db42b4a97c9915", "shasum": "" }, "require": { @@ -9313,10 +9316,10 @@ "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7" }, "require-dev": { - "phpstan/phpstan": "^1.6", - "phpstan/phpstan-deprecation-rules": "^1", - "phpstan/phpstan-phpunit": "^1", - "phpstan/phpstan-strict-rules": "^1.1", + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-deprecation-rules": "^1 || ^2", + "phpstan/phpstan-phpunit": "^1 || ^2", + "phpstan/phpstan-strict-rules": "^1.1 || ^2", "phpunit/phpunit": "^8", "symfony/filesystem": "^5.4 || ^6" }, @@ -9348,7 +9351,7 @@ ], "support": { "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.4.0" + "source": "https://github.com/composer/class-map-generator/tree/1.5.0" }, "funding": [ { @@ -9364,20 +9367,20 @@ "type": "tidelift" } ], - "time": "2024-10-03T18:14:00+00:00" + "time": "2024-11-25T16:11:06+00:00" }, { "name": "composer/pcre", - "version": "3.3.1", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4" + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4", - "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4", + "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", "shasum": "" }, "require": { @@ -9387,19 +9390,19 @@ "phpstan/phpstan": "<1.11.10" }, "require-dev": { - "phpstan/phpstan": "^1.11.10", - "phpstan/phpstan-strict-rules": "^1.1", + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-strict-rules": "^1 || ^2", "phpunit/phpunit": "^8 || ^9" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - }, "phpstan": { "includes": [ "extension.neon" ] + }, + "branch-alias": { + "dev-main": "3.x-dev" } }, "autoload": { @@ -9427,7 +9430,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.3.1" + "source": "https://github.com/composer/pcre/tree/3.3.2" }, "funding": [ { @@ -9443,7 +9446,7 @@ "type": "tidelift" } ], - "time": "2024-08-27T18:44:43+00:00" + "time": "2024-11-12T16:29:46+00:00" }, { "name": "composer/semver", @@ -9631,16 +9634,16 @@ }, { "name": "fakerphp/faker", - "version": "v1.23.1", + "version": "v1.24.1", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b" + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b", - "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", "shasum": "" }, "require": { @@ -9688,9 +9691,9 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1" + "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1" }, - "time": "2024-01-02T13:46:09+00:00" + "time": "2024-11-21T13:46:39+00:00" }, { "name": "felixfbecker/advanced-json-rpc", @@ -9978,16 +9981,16 @@ }, { "name": "laravel/dusk", - "version": "v8.2.10", + "version": "v8.2.13", "source": { "type": "git", "url": "https://github.com/laravel/dusk.git", - "reference": "fde2ae6c1b32d2f8dbdcff300bbd6e2ccffb1bb4" + "reference": "8ddd53a74c2e6f9c3b68cf8189dad44077b585b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/dusk/zipball/fde2ae6c1b32d2f8dbdcff300bbd6e2ccffb1bb4", - "reference": "fde2ae6c1b32d2f8dbdcff300bbd6e2ccffb1bb4", + "url": "https://api.github.com/repos/laravel/dusk/zipball/8ddd53a74c2e6f9c3b68cf8189dad44077b585b0", + "reference": "8ddd53a74c2e6f9c3b68cf8189dad44077b585b0", "shasum": "" }, "require": { @@ -9997,7 +10000,7 @@ "illuminate/console": "^10.0|^11.0", "illuminate/support": "^10.0|^11.0", "php": "^8.1", - "php-webdriver/webdriver": "^1.9.0", + "php-webdriver/webdriver": "^1.15.2", "symfony/console": "^6.2|^7.0", "symfony/finder": "^6.2|^7.0", "symfony/process": "^6.2|^7.0", @@ -10044,22 +10047,100 @@ ], "support": { "issues": "https://github.com/laravel/dusk/issues", - "source": "https://github.com/laravel/dusk/tree/v8.2.10" + "source": "https://github.com/laravel/dusk/tree/v8.2.13" }, - "time": "2024-10-22T13:58:17+00:00" + "time": "2025-01-06T14:52:17+00:00" }, { - "name": "laravel/pint", - "version": "v1.18.1", + "name": "laravel/pail", + "version": "v1.2.1", "source": { "type": "git", - "url": "https://github.com/laravel/pint.git", - "reference": "35c00c05ec43e6b46d295efc0f4386ceb30d50d9" + "url": "https://github.com/laravel/pail.git", + "reference": "353ac12134b98e2e7c3333d916bd3e523931e583" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/35c00c05ec43e6b46d295efc0f4386ceb30d50d9", - "reference": "35c00c05ec43e6b46d295efc0f4386ceb30d50d9", + "url": "https://api.github.com/repos/laravel/pail/zipball/353ac12134b98e2e7c3333d916bd3e523931e583", + "reference": "353ac12134b98e2e7c3333d916bd3e523931e583", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "illuminate/console": "^10.24|^11.0", + "illuminate/contracts": "^10.24|^11.0", + "illuminate/log": "^10.24|^11.0", + "illuminate/process": "^10.24|^11.0", + "illuminate/support": "^10.24|^11.0", + "nunomaduro/termwind": "^1.15|^2.0", + "php": "^8.2", + "symfony/console": "^6.0|^7.0" + }, + "require-dev": { + "laravel/framework": "^10.24|^11.0", + "laravel/pint": "^1.13", + "orchestra/testbench-core": "^8.12|^9.0", + "pestphp/pest": "^2.20", + "pestphp/pest-plugin-type-coverage": "^2.3", + "phpstan/phpstan": "^1.10", + "symfony/var-dumper": "^6.3|^7.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Pail\\PailServiceProvider" + ] + }, + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\Pail\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Easily delve into your Laravel application's log files directly from the command line.", + "homepage": "https://github.com/laravel/pail", + "keywords": [ + "laravel", + "logs", + "php", + "tail" + ], + "support": { + "issues": "https://github.com/laravel/pail/issues", + "source": "https://github.com/laravel/pail" + }, + "time": "2024-10-23T12:56:23+00:00" + }, + { + "name": "laravel/pint", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/pint.git", + "reference": "53072e8ea22213a7ed168a8a15b96fbb8b82d44b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/pint/zipball/53072e8ea22213a7ed168a8a15b96fbb8b82d44b", + "reference": "53072e8ea22213a7ed168a8a15b96fbb8b82d44b", "shasum": "" }, "require": { @@ -10070,13 +10151,13 @@ "php": "^8.1.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.64.0", - "illuminate/view": "^10.48.20", - "larastan/larastan": "^2.9.8", - "laravel-zero/framework": "^10.4.0", + "friendsofphp/php-cs-fixer": "^3.66.0", + "illuminate/view": "^10.48.25", + "larastan/larastan": "^2.9.12", + "laravel-zero/framework": "^10.48.25", "mockery/mockery": "^1.6.12", - "nunomaduro/termwind": "^1.15.1", - "pestphp/pest": "^2.35.1" + "nunomaduro/termwind": "^1.17.0", + "pestphp/pest": "^2.36.0" }, "bin": [ "builds/pint" @@ -10112,20 +10193,20 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2024-09-24T17:22:50+00:00" + "time": "2025-01-14T16:20:53+00:00" }, { "name": "laravel/sail", - "version": "v1.37.0", + "version": "v1.40.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "5d385f2e698f0f774cdead82aff5d989fb95309b" + "reference": "237e70656d8eface4839de51d101284bd5d0cf71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/5d385f2e698f0f774cdead82aff5d989fb95309b", - "reference": "5d385f2e698f0f774cdead82aff5d989fb95309b", + "url": "https://api.github.com/repos/laravel/sail/zipball/237e70656d8eface4839de51d101284bd5d0cf71", + "reference": "237e70656d8eface4839de51d101284bd5d0cf71", "shasum": "" }, "require": { @@ -10175,20 +10256,20 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2024-10-21T17:13:38+00:00" + "time": "2025-01-13T16:57:11+00:00" }, { "name": "maximebf/debugbar", - "version": "v1.23.2", + "version": "v1.23.5", "source": { "type": "git", - "url": "https://github.com/maximebf/php-debugbar.git", - "reference": "689720d724c771ac4add859056744b7b3f2406da" + "url": "https://github.com/php-debugbar/php-debugbar.git", + "reference": "eeabd61a1f19ba5dcd5ac4585a477130ee03ce25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/689720d724c771ac4add859056744b7b3f2406da", - "reference": "689720d724c771ac4add859056744b7b3f2406da", + "url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/eeabd61a1f19ba5dcd5ac4585a477130ee03ce25", + "reference": "eeabd61a1f19ba5dcd5ac4585a477130ee03ce25", "shasum": "" }, "require": { @@ -10240,10 +10321,10 @@ "debugbar" ], "support": { - "issues": "https://github.com/maximebf/php-debugbar/issues", - "source": "https://github.com/maximebf/php-debugbar/tree/v1.23.2" + "issues": "https://github.com/php-debugbar/php-debugbar/issues", + "source": "https://github.com/php-debugbar/php-debugbar/tree/v1.23.5" }, - "time": "2024-09-16T11:23:09+00:00" + "time": "2024-12-15T19:20:42+00:00" }, { "name": "mockery/mockery", @@ -10330,16 +10411,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.12.0", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845", + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845", "shasum": "" }, "require": { @@ -10378,7 +10459,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1" }, "funding": [ { @@ -10386,7 +10467,7 @@ "type": "tidelift" } ], - "time": "2024-06-12T14:39:25+00:00" + "time": "2024-11-08T17:47:46+00:00" }, { "name": "netresearch/jsonmapper", @@ -10538,16 +10619,16 @@ }, { "name": "openai-php/client", - "version": "v0.10.2", + "version": "v0.10.3", "source": { "type": "git", "url": "https://github.com/openai-php/client.git", - "reference": "efa92628ba9fb56f7877c0d616f5221c4a447856" + "reference": "4a565d145e0fb3ea1baba8fffe39d86c56b6dc2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/openai-php/client/zipball/efa92628ba9fb56f7877c0d616f5221c4a447856", - "reference": "efa92628ba9fb56f7877c0d616f5221c4a447856", + "url": "https://api.github.com/repos/openai-php/client/zipball/4a565d145e0fb3ea1baba8fffe39d86c56b6dc2c", + "reference": "4a565d145e0fb3ea1baba8fffe39d86c56b6dc2c", "shasum": "" }, "require": { @@ -10565,11 +10646,10 @@ "laravel/pint": "^1.18.1", "mockery/mockery": "^1.6.12", "nunomaduro/collision": "^7.11.0|^8.5.0", - "pestphp/pest": "^2.36.0|^3.4.1", + "pestphp/pest": "^2.36.0|^3.5.0", "pestphp/pest-plugin-arch": "^2.7|^3.0", "pestphp/pest-plugin-type-coverage": "^2.8.7|^3.1.0", - "phpstan/phpstan": "^1.12.6", - "rector/rector": "^1.2.7", + "phpstan/phpstan": "^1.12.7", "symfony/var-dumper": "^6.4.11|^7.1.5" }, "type": "library", @@ -10610,7 +10690,7 @@ ], "support": { "issues": "https://github.com/openai-php/client/issues", - "source": "https://github.com/openai-php/client/tree/v0.10.2" + "source": "https://github.com/openai-php/client/tree/v0.10.3" }, "funding": [ { @@ -10626,51 +10706,54 @@ "type": "github" } ], - "time": "2024-10-17T20:28:25+00:00" + "time": "2024-11-12T20:51:16+00:00" }, { "name": "orchestra/testbench-core", - "version": "v9.5.3", + "version": "v9.9.2", "source": { "type": "git", "url": "https://github.com/orchestral/testbench-core.git", - "reference": "9a5754622881f601951427a94c04c50e448cbf09" + "reference": "c7bcf7ab14fa09941278a7b1b731362db77e1745" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/9a5754622881f601951427a94c04c50e448cbf09", - "reference": "9a5754622881f601951427a94c04c50e448cbf09", + "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/c7bcf7ab14fa09941278a7b1b731362db77e1745", + "reference": "c7bcf7ab14fa09941278a7b1b731362db77e1745", "shasum": "" }, "require": { "composer-runtime-api": "^2.2", "php": "^8.2", - "symfony/polyfill-php83": "^1.28" + "symfony/polyfill-php83": "^1.31", + "symfony/polyfill-php84": "^1.31" }, "conflict": { "brianium/paratest": "<7.3.0 || >=8.0.0", - "laravel/framework": "<11.11.0 || >=12.0.0", - "laravel/serializable-closure": "<1.3.0 || >=2.0.0", + "laravel/framework": "<11.35.0 || >=12.0.0", + "laravel/serializable-closure": "<1.3.0 || >=3.0.0", "nunomaduro/collision": "<8.0.0 || >=9.0.0", - "phpunit/phpunit": "<10.5.0 || 11.0.0 || >=11.5.0" + "orchestra/testbench-dusk": "<9.10.0 || >=10.0.0", + "phpunit/phpunit": "<10.5.35 || >=11.0.0 <11.3.6 || >=11.6.0" }, "require-dev": { - "fakerphp/faker": "^1.23", - "laravel/framework": "^11.11", + "fakerphp/faker": "^1.24", + "laravel/framework": "^11.35.0", "laravel/pint": "^1.17", - "mockery/mockery": "^1.6", - "phpstan/phpstan": "^1.11", - "phpunit/phpunit": "^10.5 || ^11.0.1", - "spatie/laravel-ray": "^1.35", - "symfony/process": "^7.0", - "symfony/yaml": "^7.0", - "vlucas/phpdotenv": "^5.4.1" + "laravel/serializable-closure": "^1.3 || ^2.0", + "mockery/mockery": "^1.6.10", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^10.5.35 || ^11.3.6", + "spatie/laravel-ray": "^1.39", + "symfony/process": "^7.0.3", + "symfony/yaml": "^7.0.3", + "vlucas/phpdotenv": "^5.6.1" }, "suggest": { - "brianium/paratest": "Allow using parallel tresting (^7.3).", + "brianium/paratest": "Allow using parallel testing (^7.3).", "ext-pcntl": "Required to use all features of the console signal trapping.", "fakerphp/faker": "Allow using Faker for testing (^1.23).", - "laravel/framework": "Required for testing (^11.11).", + "laravel/framework": "Required for testing (^11.35.0).", "mockery/mockery": "Allow using Mockery for testing (^1.6).", "nunomaduro/collision": "Allow using Laravel style tests output and parallel testing (^8.0).", "orchestra/testbench-dusk": "Allow using Laravel Dusk for testing (^9.0).", @@ -10716,7 +10799,7 @@ "issues": "https://github.com/orchestral/testbench/issues", "source": "https://github.com/orchestral/testbench-core" }, - "time": "2024-10-06T11:20:27+00:00" + "time": "2025-01-22T03:23:53+00:00" }, { "name": "phar-io/manifest", @@ -10838,16 +10921,16 @@ }, { "name": "php-di/invoker", - "version": "2.3.4", + "version": "2.3.6", "source": { "type": "git", "url": "https://github.com/PHP-DI/Invoker.git", - "reference": "33234b32dafa8eb69202f950a1fc92055ed76a86" + "reference": "59f15608528d8a8838d69b422a919fd6b16aa576" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-DI/Invoker/zipball/33234b32dafa8eb69202f950a1fc92055ed76a86", - "reference": "33234b32dafa8eb69202f950a1fc92055ed76a86", + "url": "https://api.github.com/repos/PHP-DI/Invoker/zipball/59f15608528d8a8838d69b422a919fd6b16aa576", + "reference": "59f15608528d8a8838d69b422a919fd6b16aa576", "shasum": "" }, "require": { @@ -10881,7 +10964,7 @@ ], "support": { "issues": "https://github.com/PHP-DI/Invoker/issues", - "source": "https://github.com/PHP-DI/Invoker/tree/2.3.4" + "source": "https://github.com/PHP-DI/Invoker/tree/2.3.6" }, "funding": [ { @@ -10889,7 +10972,7 @@ "type": "github" } ], - "time": "2023-09-08T09:24:21+00:00" + "time": "2025-01-17T12:49:27+00:00" }, { "name": "php-di/php-di", @@ -11101,16 +11184,16 @@ }, { "name": "php-webdriver/webdriver", - "version": "1.15.1", + "version": "1.15.2", "source": { "type": "git", "url": "https://github.com/php-webdriver/php-webdriver.git", - "reference": "cd52d9342c5aa738c2e75a67e47a1b6df97154e8" + "reference": "998e499b786805568deaf8cbf06f4044f05d91bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-webdriver/php-webdriver/zipball/cd52d9342c5aa738c2e75a67e47a1b6df97154e8", - "reference": "cd52d9342c5aa738c2e75a67e47a1b6df97154e8", + "url": "https://api.github.com/repos/php-webdriver/php-webdriver/zipball/998e499b786805568deaf8cbf06f4044f05d91bf", + "reference": "998e499b786805568deaf8cbf06f4044f05d91bf", "shasum": "" }, "require": { @@ -11132,7 +11215,7 @@ "php-parallel-lint/php-parallel-lint": "^1.2", "phpunit/phpunit": "^9.3", "squizlabs/php_codesniffer": "^3.5", - "symfony/var-dumper": "^5.0 || ^6.0" + "symfony/var-dumper": "^5.0 || ^6.0 || ^7.0" }, "suggest": { "ext-SimpleXML": "For Firefox profile creation" @@ -11161,67 +11244,9 @@ ], "support": { "issues": "https://github.com/php-webdriver/php-webdriver/issues", - "source": "https://github.com/php-webdriver/php-webdriver/tree/1.15.1" + "source": "https://github.com/php-webdriver/php-webdriver/tree/1.15.2" }, - "time": "2023-10-20T12:21:20+00:00" - }, - { - "name": "phpstan/phpstan", - "version": "1.12.7", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "dc2b9976bd8b0f84ec9b0e50cc35378551de7af0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/dc2b9976bd8b0f84ec9b0e50cc35378551de7af0", - "reference": "dc2b9976bd8b0f84ec9b0e50cc35378551de7af0", - "shasum": "" - }, - "require": { - "php": "^7.2|^8.0" - }, - "conflict": { - "phpstan/phpstan-shim": "*" - }, - "bin": [ - "phpstan", - "phpstan.phar" - ], - "type": "library", - "autoload": { - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHPStan - PHP Static Analysis Tool", - "keywords": [ - "dev", - "static analysis" - ], - "support": { - "docs": "https://phpstan.org/user-guide/getting-started", - "forum": "https://github.com/phpstan/phpstan/discussions", - "issues": "https://github.com/phpstan/phpstan/issues", - "security": "https://github.com/phpstan/phpstan/security/policy", - "source": "https://github.com/phpstan/phpstan-src" - }, - "funding": [ - { - "url": "https://github.com/ondrejmirtes", - "type": "github" - }, - { - "url": "https://github.com/phpstan", - "type": "github" - } - ], - "time": "2024-10-18T11:12:07+00:00" + "time": "2024-11-21T15:12:59+00:00" }, { "name": "phpunit/php-code-coverage", @@ -11546,16 +11571,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.37", + "version": "10.5.41", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c7cffa0efa2b70c22366523e6d804c9419eb2400" + "reference": "e76586fa3d49714f230221734b44892e384109d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c7cffa0efa2b70c22366523e6d804c9419eb2400", - "reference": "c7cffa0efa2b70c22366523e6d804c9419eb2400", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e76586fa3d49714f230221734b44892e384109d7", + "reference": "e76586fa3d49714f230221734b44892e384109d7", "shasum": "" }, "require": { @@ -11565,7 +11590,7 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.12.0", + "myclabs/deep-copy": "^1.12.1", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.1", @@ -11627,7 +11652,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.37" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.41" }, "funding": [ { @@ -11643,7 +11668,7 @@ "type": "tidelift" } ], - "time": "2024-10-19T13:03:41+00:00" + "time": "2025-01-13T09:33:05+00:00" }, { "name": "psalm/plugin-laravel", @@ -11717,65 +11742,6 @@ }, "time": "2024-03-19T21:40:03+00:00" }, - { - "name": "rector/rector", - "version": "1.2.8", - "source": { - "type": "git", - "url": "https://github.com/rectorphp/rector.git", - "reference": "05755bf43617449c08ee8e50fb840c85ad3b1240" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/05755bf43617449c08ee8e50fb840c85ad3b1240", - "reference": "05755bf43617449c08ee8e50fb840c85ad3b1240", - "shasum": "" - }, - "require": { - "php": "^7.2|^8.0", - "phpstan/phpstan": "^1.12.5" - }, - "conflict": { - "rector/rector-doctrine": "*", - "rector/rector-downgrade-php": "*", - "rector/rector-phpunit": "*", - "rector/rector-symfony": "*" - }, - "suggest": { - "ext-dom": "To manipulate phpunit.xml via the custom-rule command" - }, - "bin": [ - "bin/rector" - ], - "type": "library", - "autoload": { - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Instant Upgrade and Automated Refactoring of any PHP code", - "keywords": [ - "automation", - "dev", - "migration", - "refactoring" - ], - "support": { - "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/1.2.8" - }, - "funding": [ - { - "url": "https://github.com/tomasvotruba", - "type": "github" - } - ], - "time": "2024-10-18T11:54:27+00:00" - }, { "name": "sebastian/cli-parser", "version": "2.0.1", @@ -12694,16 +12660,16 @@ }, { "name": "spatie/array-to-xml", - "version": "3.3.0", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/spatie/array-to-xml.git", - "reference": "f56b220fe2db1ade4c88098d83413ebdfc3bf876" + "reference": "7dcfc67d60b0272926dabad1ec01f6b8a5fb5e67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/f56b220fe2db1ade4c88098d83413ebdfc3bf876", - "reference": "f56b220fe2db1ade4c88098d83413ebdfc3bf876", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/7dcfc67d60b0272926dabad1ec01f6b8a5fb5e67", + "reference": "7dcfc67d60b0272926dabad1ec01f6b8a5fb5e67", "shasum": "" }, "require": { @@ -12746,7 +12712,7 @@ "xml" ], "support": { - "source": "https://github.com/spatie/array-to-xml/tree/3.3.0" + "source": "https://github.com/spatie/array-to-xml/tree/3.4.0" }, "funding": [ { @@ -12758,54 +12724,55 @@ "type": "github" } ], - "time": "2024-05-01T10:20:27+00:00" + "time": "2024-12-16T12:45:15+00:00" }, { "name": "spatie/laravel-ray", - "version": "1.37.1", + "version": "1.39.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ray.git", - "reference": "c2bedfd1172648df2c80aaceb2541d70f1d9a5b9" + "reference": "31b601f98590606d20e76b5dd68578dc1642cd2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/c2bedfd1172648df2c80aaceb2541d70f1d9a5b9", - "reference": "c2bedfd1172648df2c80aaceb2541d70f1d9a5b9", + "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/31b601f98590606d20e76b5dd68578dc1642cd2c", + "reference": "31b601f98590606d20e76b5dd68578dc1642cd2c", "shasum": "" }, "require": { + "composer-runtime-api": "^2.2", "ext-json": "*", - "illuminate/contracts": "^7.20|^8.19|^9.0|^10.0|^11.0", - "illuminate/database": "^7.20|^8.19|^9.0|^10.0|^11.0", - "illuminate/queue": "^7.20|^8.19|^9.0|^10.0|^11.0", - "illuminate/support": "^7.20|^8.19|^9.0|^10.0|^11.0", - "php": "^7.4|^8.0", - "rector/rector": "^0.19.2|^1.0", + "illuminate/contracts": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0", + "illuminate/database": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0", + "illuminate/queue": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0", + "illuminate/support": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0", + "php": "^7.4 || ^8.0", "spatie/backtrace": "^1.0", - "spatie/ray": "^1.41.1", - "symfony/stopwatch": "4.2|^5.1|^6.0|^7.0", - "zbateson/mail-mime-parser": "^1.3.1|^2.0|^3.0" + "spatie/ray": "^1.41.3", + "symfony/stopwatch": "4.2 || ^5.1 || ^6.0 || ^7.0", + "zbateson/mail-mime-parser": "^1.3.1 || ^2.0 || ^3.0" }, "require-dev": { "guzzlehttp/guzzle": "^7.3", - "laravel/framework": "^7.20|^8.19|^9.0|^10.0|^11.0", - "orchestra/testbench-core": "^5.0|^6.0|^7.0|^8.0|^9.0", - "pestphp/pest": "^1.22|^2.0", - "phpstan/phpstan": "^1.10.57", - "phpunit/phpunit": "^9.3|^10.1", - "spatie/pest-plugin-snapshots": "^1.1|^2.0", - "symfony/var-dumper": "^4.2|^5.1|^6.0|^7.0.3" + "laravel/framework": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0", + "orchestra/testbench-core": "^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0", + "pestphp/pest": "^1.22 || ^2.0", + "phpstan/phpstan": "^1.10.57 || ^2.0.2", + "phpunit/phpunit": "^9.3 || ^10.1", + "rector/rector": "dev-main", + "spatie/pest-plugin-snapshots": "^1.1 || ^2.0", + "symfony/var-dumper": "^4.2 || ^5.1 || ^6.0 || ^7.0.3" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - }, "laravel": { "providers": [ "Spatie\\LaravelRay\\RayServiceProvider" ] + }, + "branch-alias": { + "dev-main": "1.x-dev" } }, "autoload": { @@ -12833,7 +12800,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-ray/issues", - "source": "https://github.com/spatie/laravel-ray/tree/1.37.1" + "source": "https://github.com/spatie/laravel-ray/tree/1.39.0" }, "funding": [ { @@ -12845,7 +12812,7 @@ "type": "other" } ], - "time": "2024-07-12T12:35:17+00:00" + "time": "2024-12-11T09:34:41+00:00" }, { "name": "spatie/macroable", @@ -12899,35 +12866,35 @@ }, { "name": "spatie/ray", - "version": "1.41.2", + "version": "1.41.4", "source": { "type": "git", "url": "https://github.com/spatie/ray.git", - "reference": "c44f8cfbf82c69909b505de61d8d3f2d324e93fc" + "reference": "c5dbda0548c1881b30549ccc0b6d485f7471aaa5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ray/zipball/c44f8cfbf82c69909b505de61d8d3f2d324e93fc", - "reference": "c44f8cfbf82c69909b505de61d8d3f2d324e93fc", + "url": "https://api.github.com/repos/spatie/ray/zipball/c5dbda0548c1881b30549ccc0b6d485f7471aaa5", + "reference": "c5dbda0548c1881b30549ccc0b6d485f7471aaa5", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", - "php": "^7.3|^8.0", - "ramsey/uuid": "^3.0|^4.1", + "php": "^7.4 || ^8.0", + "ramsey/uuid": "^3.0 || ^4.1", "spatie/backtrace": "^1.1", - "spatie/macroable": "^1.0|^2.0", - "symfony/stopwatch": "^4.0|^5.1|^6.0|^7.0", - "symfony/var-dumper": "^4.2|^5.1|^6.0|^7.0.3" + "spatie/macroable": "^1.0 || ^2.0", + "symfony/stopwatch": "^4.2 || ^5.1 || ^6.0 || ^7.0", + "symfony/var-dumper": "^4.2 || ^5.1 || ^6.0 || ^7.0.3" }, "require-dev": { - "illuminate/support": "6.x|^8.18|^9.0", + "illuminate/support": "^7.20 || ^8.18 || ^9.0 || ^10.0 || ^11.0", "nesbot/carbon": "^2.63", "pestphp/pest": "^1.22", - "phpstan/phpstan": "^1.10", + "phpstan/phpstan": "^1.10.57 || ^2.0.2", "phpunit/phpunit": "^9.5", - "rector/rector": "^0.19.2", + "rector/rector": "dev-main", "spatie/phpunit-snapshot-assertions": "^4.2", "spatie/test-time": "^1.2" }, @@ -12968,7 +12935,7 @@ ], "support": { "issues": "https://github.com/spatie/ray/issues", - "source": "https://github.com/spatie/ray/tree/1.41.2" + "source": "https://github.com/spatie/ray/tree/1.41.4" }, "funding": [ { @@ -12980,20 +12947,20 @@ "type": "other" } ], - "time": "2024-04-24T14:21:46+00:00" + "time": "2024-12-09T11:32:15+00:00" }, { "name": "symfony/filesystem", - "version": "v7.1.5", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a" + "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/61fe0566189bf32e8cfee78335d8776f64a66f5a", - "reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/b8dce482de9d7c9fe2891155035a7248ab5c7fdb", + "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb", "shasum": "" }, "require": { @@ -13030,7 +12997,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.1.5" + "source": "https://github.com/symfony/filesystem/tree/v7.2.0" }, "funding": [ { @@ -13046,7 +13013,7 @@ "type": "tidelift" } ], - "time": "2024-09-17T09:16:35+00:00" + "time": "2024-10-25T15:15:23+00:00" }, { "name": "symfony/polyfill-iconv", @@ -13074,8 +13041,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -13129,17 +13096,93 @@ "time": "2024-09-09T11:45:10+00:00" }, { - "name": "symfony/stopwatch", - "version": "v7.1.1", + "name": "symfony/polyfill-php84", + "version": "v1.31.0", "source": { "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d" + "url": "https://github.com/symfony/polyfill-php84.git", + "reference": "e5493eb51311ab0b1cc2243416613f06ed8f18bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d", - "reference": "5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/e5493eb51311ab0b1cc2243416613f06ed8f18bd", + "reference": "e5493eb51311ab0b1cc2243416613f06ed8f18bd", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php84\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php84/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T12:04:04+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v7.2.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "e46690d5b9d7164a6d061cab1e8d46141b9f49df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/e46690d5b9d7164a6d061cab1e8d46141b9f49df", + "reference": "e46690d5b9d7164a6d061cab1e8d46141b9f49df", "shasum": "" }, "require": { @@ -13172,7 +13215,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.1.1" + "source": "https://github.com/symfony/stopwatch/tree/v7.2.2" }, "funding": [ { @@ -13188,24 +13231,25 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-12-18T14:28:33+00:00" }, { "name": "symfony/yaml", - "version": "v7.1.5", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "4e561c316e135e053bd758bf3b3eb291d9919de4" + "reference": "099581e99f557e9f16b43c5916c26380b54abb22" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/4e561c316e135e053bd758bf3b3eb291d9919de4", - "reference": "4e561c316e135e053bd758bf3b3eb291d9919de4", + "url": "https://api.github.com/repos/symfony/yaml/zipball/099581e99f557e9f16b43c5916c26380b54abb22", + "reference": "099581e99f557e9f16b43c5916c26380b54abb22", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { @@ -13243,7 +13287,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.1.5" + "source": "https://github.com/symfony/yaml/tree/v7.2.0" }, "funding": [ { @@ -13259,7 +13303,7 @@ "type": "tidelift" } ], - "time": "2024-09-17T12:49:58+00:00" + "time": "2024-10-23T06:56:12+00:00" }, { "name": "theseer/tokenizer", @@ -13386,11 +13430,11 @@ "type": "project", "extra": { "branch-alias": { - "dev-master": "5.x-dev", - "dev-4.x": "4.x-dev", - "dev-3.x": "3.x-dev", + "dev-1.x": "1.x-dev", "dev-2.x": "2.x-dev", - "dev-1.x": "1.x-dev" + "dev-3.x": "3.x-dev", + "dev-4.x": "4.x-dev", + "dev-master": "5.x-dev" } }, "autoload": { @@ -13499,16 +13543,16 @@ }, { "name": "zbateson/mb-wrapper", - "version": "2.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/zbateson/mb-wrapper.git", - "reference": "9e4373a153585d12b6c621ac4a6bb143264d4619" + "reference": "50a14c0c9537f978a61cde9fdc192a0267cc9cff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/mb-wrapper/zipball/9e4373a153585d12b6c621ac4a6bb143264d4619", - "reference": "9e4373a153585d12b6c621ac4a6bb143264d4619", + "url": "https://api.github.com/repos/zbateson/mb-wrapper/zipball/50a14c0c9537f978a61cde9fdc192a0267cc9cff", + "reference": "50a14c0c9537f978a61cde9fdc192a0267cc9cff", "shasum": "" }, "require": { @@ -13519,7 +13563,7 @@ "require-dev": { "friendsofphp/php-cs-fixer": "*", "phpstan/phpstan": "*", - "phpunit/phpunit": "<10.0" + "phpunit/phpunit": "^9.6|^10.0" }, "suggest": { "ext-iconv": "For best support/performance", @@ -13556,7 +13600,7 @@ ], "support": { "issues": "https://github.com/zbateson/mb-wrapper/issues", - "source": "https://github.com/zbateson/mb-wrapper/tree/2.0.0" + "source": "https://github.com/zbateson/mb-wrapper/tree/2.0.1" }, "funding": [ { @@ -13564,7 +13608,7 @@ "type": "github" } ], - "time": "2024-03-20T01:38:07+00:00" + "time": "2024-12-20T22:05:33+00:00" }, { "name": "zbateson/stream-decorators", @@ -13645,6 +13689,6 @@ "ext-pgsql": "*", "ext-sodium": "*" }, - "platform-dev": [], + "platform-dev": {}, "plugin-api-version": "2.6.0" } diff --git a/package-lock.json b/package-lock.json index 6cd6c9c4..aa3f3839 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,11 +14,11 @@ }, "devDependencies": { "@eslint/js": "^9.6.0", - "@stylistic/eslint-plugin": "^2.3.0", + "@stylistic/eslint-plugin": "^3.0.0", "eslint": "^9.7.0", "globals": "^15.8.0", "stylelint": "^16.7.0", - "stylelint-config-standard": "^36.0.1" + "stylelint-config-standard": "^37.0.0" } }, "node_modules/@11ty/is-land": { @@ -200,13 +200,13 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", - "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.4", + "@eslint/object-schema": "^2.1.5", "debug": "^4.3.1", "minimatch": "^3.1.2" }, @@ -239,11 +239,14 @@ } }, "node_modules/@eslint/core": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", - "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -310,9 +313,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.16.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz", - "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==", + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz", + "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==", "dev": true, "license": "MIT", "engines": { @@ -320,9 +323,9 @@ } }, "node_modules/@eslint/object-schema": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -330,12 +333,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", - "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, "license": "Apache-2.0", "dependencies": { + "@eslint/core": "^0.10.0", "levn": "^0.4.1" }, "engines": { @@ -408,6 +412,16 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@keyv/serialize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.0.2.tgz", + "integrity": "sha512-+E/LyaAeuABniD/RvUezWVXKpeuvwLEA9//nE9952zBaOdBd2mQ3pPoM8cUe2X6IcMByfuSLzmYqnYshG60+HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -447,13 +461,13 @@ } }, "node_modules/@stylistic/eslint-plugin": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.11.0.tgz", - "integrity": "sha512-PNRHbydNG5EH8NK4c+izdJlxajIR6GxcUhzsYNRsn6Myep4dsZt0qFCz3rCPnkvgO5FYibDcMqgNHUT+zvjYZw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-3.0.0.tgz", + "integrity": "sha512-9GJI6iBtGjOqSsyCKUvE6Vn7qDT52hbQaoq/SwxH6A1bciymZfvBfHIIrD3E7Koi2sjzOa/MNQ2XOguHtVJOyw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^8.13.0", + "@typescript-eslint/utils": "8.13.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "estraverse": "^5.3.0", @@ -481,14 +495,14 @@ "license": "MIT" }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.16.0.tgz", - "integrity": "sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz", + "integrity": "sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.16.0", - "@typescript-eslint/visitor-keys": "8.16.0" + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -499,9 +513,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.16.0.tgz", - "integrity": "sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz", + "integrity": "sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==", "dev": true, "license": "MIT", "engines": { @@ -513,14 +527,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.16.0.tgz", - "integrity": "sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz", + "integrity": "sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "8.16.0", - "@typescript-eslint/visitor-keys": "8.16.0", + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -542,16 +556,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.16.0.tgz", - "integrity": "sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz", + "integrity": "sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.16.0", - "@typescript-eslint/types": "8.16.0", - "@typescript-eslint/typescript-estree": "8.16.0" + "@typescript-eslint/scope-manager": "8.13.0", + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/typescript-estree": "8.13.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -562,22 +576,17 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.16.0.tgz", - "integrity": "sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz", + "integrity": "sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.16.0", - "eslint-visitor-keys": "^4.2.0" + "@typescript-eslint/types": "8.13.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -587,10 +596,23 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@zachleat/snow-fall": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@zachleat/snow-fall/-/snow-fall-1.0.2.tgz", - "integrity": "sha512-nyNeliowryq+roSMktyV3o14DduSuU4BvBzruVSPV6e8U8Eid2zNzSj1AzCQByPId7Q4MrIP2QWL2UHeHGfmcA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@zachleat/snow-fall/-/snow-fall-1.0.3.tgz", + "integrity": "sha512-Y9srRbmO+k31vSm+eINYRV9DRoeWGV5/hlAn9o34bLpoWo+T5945v6XGBrFzQYjhyEGB4j/4zXuTW1zTxp2Reg==", "license": "MIT" }, "node_modules/acorn": { @@ -693,6 +715,27 @@ "dev": true, "license": "MIT" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -716,6 +759,52 @@ "node": ">=8" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/cacheable": { + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.8.8.tgz", + "integrity": "sha512-OE1/jlarWxROUIpd0qGBSKFLkNsotY8pt4GeiVErUYh/NUeTNrT+SBksUgllQv4m6a0W/VZsLuiHb88maavqEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "^1.7.0", + "keyv": "^5.2.3" + } + }, + "node_modules/cacheable/node_modules/keyv": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.2.3.tgz", + "integrity": "sha512-AGKecUfzrowabUv0bH1RIR5Vf7w+l4S3xtQAypKaUpTdIR1EbrAcTxHCrpo9Q+IWeUlFE2palRtgIQcgm+PQJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.0.2" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -830,13 +919,13 @@ } }, "node_modules/css-tree": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.0.1.tgz", - "integrity": "sha512-8Fxxv+tGhORlshCdCwnNJytvlvq46sOLSYEx2ZIGurahWvMucSRnyjPA3AmrMq4VPRYbHVpWj5VkiVasrM2H4Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", + "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", "dev": true, "license": "MIT", "dependencies": { - "mdn-data": "2.12.1", + "mdn-data": "2.12.2", "source-map-js": "^1.0.1" }, "engines": { @@ -857,9 +946,9 @@ } }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, "license": "MIT", "dependencies": { @@ -935,19 +1024,19 @@ } }, "node_modules/eslint": { - "version": "9.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.16.0.tgz", - "integrity": "sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==", + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz", + "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.9.0", + "@eslint/core": "^0.10.0", "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.16.0", - "@eslint/plugin-kit": "^0.2.3", + "@eslint/js": "9.19.0", + "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.1", @@ -955,7 +1044,7 @@ "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.5", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.2.0", @@ -1120,9 +1209,9 @@ "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -1130,7 +1219,7 @@ "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -1164,10 +1253,20 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], "license": "BSD-3-Clause" }, "node_modules/fastest-levenshtein": { @@ -1181,9 +1280,9 @@ } }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "dev": true, "license": "ISC", "dependencies": { @@ -1309,9 +1408,9 @@ } }, "node_modules/globals": { - "version": "15.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz", - "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==", + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", "dev": true, "license": "MIT", "engines": { @@ -1359,6 +1458,13 @@ "node": ">=8" } }, + "node_modules/hookified": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.7.0.tgz", + "integrity": "sha512-XQdMjqC1AyeOzfs+17cnIk7Wdfu1hh2JtcyNfBf5u9jHrT3iZUlGHxLTntFBuk5lwkqJ6l3+daeQdHK5yByHVA==", + "dev": true, + "license": "MIT" + }, "node_modules/html-tags": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", @@ -1372,6 +1478,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -1621,9 +1748,9 @@ } }, "node_modules/mdn-data": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.1.tgz", - "integrity": "sha512-rsfnCbOHjqrhWxwt5/wtSLzpoKTzW7OXdT5lLOIH1OTYhWu9rRJveGq0sKvDZODABH7RX+uoR+DYcpFnq4Tf6Q==", + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", "dev": true, "license": "CC0-1.0" }, @@ -1869,9 +1996,9 @@ } }, "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", "dev": true, "funding": [ { @@ -1889,7 +2016,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", + "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -2177,9 +2304,9 @@ } }, "node_modules/stylelint": { - "version": "16.11.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.11.0.tgz", - "integrity": "sha512-zrl4IrKmjJQ+h9FoMp69UMCq5SxeHk0URhxUBj4d3ISzo/DplOFBJZc7t7Dr6otB+1bfbbKNLOmCDpzKSlW+Nw==", + "version": "16.13.2", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.13.2.tgz", + "integrity": "sha512-wDlgh0mRO9RtSa3TdidqHd0nOG8MmUyVKl+dxA6C1j8aZRzpNeEgdhFmU5y4sZx4Fc6r46p0fI7p1vR5O2DZqA==", "dev": true, "funding": [ { @@ -2202,16 +2329,16 @@ "colord": "^2.9.3", "cosmiconfig": "^9.0.0", "css-functions-list": "^3.2.3", - "css-tree": "^3.0.1", + "css-tree": "^3.1.0", "debug": "^4.3.7", - "fast-glob": "^3.3.2", + "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^9.1.0", + "file-entry-cache": "^10.0.5", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", - "ignore": "^6.0.2", + "ignore": "^7.0.1", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", "known-css-properties": "^0.35.0", @@ -2229,7 +2356,7 @@ "string-width": "^4.2.3", "supports-hyperlinks": "^3.1.0", "svg-tags": "^1.0.0", - "table": "^6.8.2", + "table": "^6.9.0", "write-file-atomic": "^5.0.1" }, "bin": { @@ -2240,9 +2367,9 @@ } }, "node_modules/stylelint-config-recommended": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz", - "integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-15.0.0.tgz", + "integrity": "sha512-9LejMFsat7L+NXttdHdTq94byn25TD+82bzGRiV1Pgasl99pWnwipXS5DguTpp3nP1XjvLXVnEJIuYBfsRjRkA==", "dev": true, "funding": [ { @@ -2259,13 +2386,13 @@ "node": ">=18.12.0" }, "peerDependencies": { - "stylelint": "^16.1.0" + "stylelint": "^16.13.0" } }, "node_modules/stylelint-config-standard": { - "version": "36.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-36.0.1.tgz", - "integrity": "sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==", + "version": "37.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-37.0.0.tgz", + "integrity": "sha512-+6eBlbSTrOn/il2RlV0zYGQwRTkr+WtzuVSs1reaWGObxnxLpbcspCUYajVQHonVfxVw2U+h42azGhrBvcg8OA==", "dev": true, "funding": [ { @@ -2279,13 +2406,13 @@ ], "license": "MIT", "dependencies": { - "stylelint-config-recommended": "^14.0.1" + "stylelint-config-recommended": "^15.0.0" }, "engines": { "node": ">=18.12.0" }, "peerDependencies": { - "stylelint": "^16.1.0" + "stylelint": "^16.13.0" } }, "node_modules/stylelint/node_modules/balanced-match": { @@ -2296,36 +2423,31 @@ "license": "MIT" }, "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz", - "integrity": "sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==", + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.0.5.tgz", + "integrity": "sha512-umpQsJrBNsdMDgreSryMEXvJh66XeLtZUwA8Gj7rHGearGufUFv6rB/bcXRFsiGWw/VeSUgUofF4Rf2UKEOrTA==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^5.0.0" - }, - "engines": { - "node": ">=18" + "flat-cache": "^6.1.5" } }, "node_modules/stylelint/node_modules/flat-cache": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-5.0.0.tgz", - "integrity": "sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==", + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.5.tgz", + "integrity": "sha512-QR+2kN38f8nMfiIQ1LHYjuDEmZNZVjxuxY+HufbS3BW0EX01Q5OnH7iduOYRutmgiXb797HAKcXUeXrvRjjgSQ==", "dev": true, "license": "MIT", "dependencies": { - "flatted": "^3.3.1", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=18" + "cacheable": "^1.8.7", + "flatted": "^3.3.2", + "hookified": "^1.6.0" } }, "node_modules/stylelint/node_modules/ignore": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", - "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.3.tgz", + "integrity": "sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==", "dev": true, "license": "MIT", "engines": { @@ -2379,9 +2501,9 @@ "dev": true }, "node_modules/table": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", - "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -2459,9 +2581,9 @@ } }, "node_modules/typescript": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", - "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, "license": "Apache-2.0", "peer": true, diff --git a/package.json b/package.json index ebf71e8f..c70f52f0 100644 --- a/package.json +++ b/package.json @@ -7,11 +7,11 @@ "license": "CC0-1.0", "devDependencies": { "@eslint/js": "^9.6.0", - "@stylistic/eslint-plugin": "^2.3.0", + "@stylistic/eslint-plugin": "^3.0.0", "eslint": "^9.7.0", "globals": "^15.8.0", "stylelint": "^16.7.0", - "stylelint-config-standard": "^36.0.1" + "stylelint-config-standard": "^37.0.0" }, "scripts": { "eslint": "eslint public/assets/js/*.js", From 1dfa17abcac344bdbb8cab0a7de3197475d5ea63 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sat, 1 Mar 2025 15:00:41 +0000 Subject: [PATCH 10/10] Update Laravel to v12 --- .env.example | 7 +- .../Commands/ParseCachedWebMentions.php | 2 +- .../RemoteContentNotFoundException.php | 2 +- .../Controllers/Admin/ArticlesController.php | 2 +- .../Controllers/Admin/NotesController.php | 2 +- app/Http/Controllers/IndieAuthController.php | 4 +- .../Controllers/MicropubMediaController.php | 6 +- .../Controllers/WebMentionsController.php | 6 +- app/Jobs/DownloadWebMention.php | 16 +- app/Jobs/ProcessLike.php | 2 +- app/Jobs/ProcessMedia.php | 15 +- app/Jobs/SaveProfileImage.php | 2 +- app/Jobs/SendWebMentions.php | 4 +- app/Models/Note.php | 2 +- app/Models/Place.php | 2 +- app/Models/WebMention.php | 4 +- app/Services/BookmarkService.php | 6 +- app/Services/LikeService.php | 2 +- app/Services/Micropub/UpdateService.php | 6 +- app/Services/PlaceService.php | 6 +- composer.json | 21 +- composer.lock | 2712 ++++++----------- config/app.php | 2 +- config/database.php | 4 + config/debugbar.php | 2 +- config/filesystems.php | 6 +- config/mail.php | 4 +- config/session.php | 2 +- database/seeders/NotesTableSeeder.php | 2 +- helpers.php | 4 +- public/index.php | 47 +- routes/web.php | 2 +- tests/Browser/ExampleTest.php | 2 +- .../Feature/Admin/AdminHomeControllerTest.php | 3 +- tests/Feature/Admin/AdminTest.php | 17 +- tests/Feature/Admin/ArticlesTest.php | 15 +- tests/Feature/Admin/BioTest.php | 9 +- tests/Feature/Admin/ClientsTest.php | 13 +- tests/Feature/Admin/ContactsTest.php | 23 +- tests/Feature/Admin/LikesTest.php | 13 +- tests/Feature/Admin/NotesTest.php | 13 +- tests/Feature/Admin/PlacesTest.php | 11 +- tests/Feature/ArticlesTest.php | 15 +- tests/Feature/BookmarksTest.php | 11 +- tests/Feature/ContactsTest.php | 12 +- tests/Feature/CorsHeadersTest.php | 5 +- tests/Feature/FeedsTest.php | 28 +- tests/Feature/FrontPageTest.php | 3 +- tests/Feature/HorizonTest.php | 4 +- tests/Feature/IndieAuthTest.php | 4 +- tests/Feature/LikesTest.php | 35 +- tests/Feature/MicropubControllerTest.php | 79 +- tests/Feature/MicropubMediaTest.php | 67 +- tests/Feature/NotesControllerTest.php | 17 +- tests/Feature/OwnYourGramTest.php | 3 +- tests/Feature/ParseCachedWebMentionsTest.php | 3 +- tests/Feature/PlacesTest.php | 9 +- tests/Feature/ReDownloadWebMentionsTest.php | 3 +- tests/Feature/SearchTest.php | 3 +- tests/Feature/ShortURLsControllerTest.php | 9 +- tests/Feature/SwarmTest.php | 18 +- tests/Feature/TokenServiceTest.php | 10 +- tests/Feature/WebMentionsControllerTest.php | 17 +- tests/Unit/ArticlesTest.php | 13 +- tests/Unit/BookmarksTest.php | 13 +- tests/Unit/HelpersTest.php | 13 +- .../Unit/Jobs/AddClientToDatabaseJobTest.php | 3 +- tests/Unit/Jobs/DownloadWebMentionJobTest.php | 7 +- tests/Unit/Jobs/ProcessBookmarkJobTest.php | 5 +- tests/Unit/Jobs/ProcessMediaJobTest.php | 20 +- tests/Unit/Jobs/ProcessWebMentionJobTest.php | 13 +- tests/Unit/Jobs/SaveProfileImageJobTest.php | 13 +- tests/Unit/Jobs/SaveScreenshotJobTest.php | 5 +- tests/Unit/Jobs/SendWebMentionJobTest.php | 17 +- .../Jobs/SyndicateNoteToBlueskyJobTest.php | 5 +- .../Jobs/SyndicateNoteToMastodonJobTest.php | 5 +- tests/Unit/LikesTest.php | 9 +- tests/Unit/MediaTest.php | 5 +- tests/Unit/MicropubClientsTest.php | 3 +- tests/Unit/NotesTest.php | 58 +- tests/Unit/PlacesTest.php | 19 +- tests/Unit/TagsTest.php | 13 +- tests/Unit/WebMentionTest.php | 28 +- 83 files changed, 1324 insertions(+), 2323 deletions(-) diff --git a/.env.example b/.env.example index ccd42db9..43a5f376 100644 --- a/.env.example +++ b/.env.example @@ -12,7 +12,9 @@ APP_FALLBACK_LOCALE=en APP_FAKER_LOCALE=en_US APP_MAINTENANCE_DRIVER=file -APP_MAINTENANCE_STORE=database +# APP_MAINTENANCE_STORE=database + +PHP_CLI_SERVER_WORKERS=4 BCRYPT_ROUNDS=12 @@ -39,7 +41,7 @@ FILESYSTEM_DISK=local QUEUE_CONNECTION=database CACHE_STORE=database -CACHE_PREFIX= +# CACHE_PREFIX= MEMCACHED_HOST=127.0.0.1 @@ -49,6 +51,7 @@ REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_MAILER=log +MAIL_SCHEME=null MAIL_HOST=127.0.0.1 MAIL_PORT=2525 MAIL_USERNAME=null diff --git a/app/Console/Commands/ParseCachedWebMentions.php b/app/Console/Commands/ParseCachedWebMentions.php index 96d57332..010a086a 100644 --- a/app/Console/Commands/ParseCachedWebMentions.php +++ b/app/Console/Commands/ParseCachedWebMentions.php @@ -37,7 +37,7 @@ class ParseCachedWebMentions extends Command { $htmlFiles = $filesystem->allFiles(storage_path() . '/HTML'); foreach ($htmlFiles as $file) { - if ($file->getExtension() !== 'backup') { //we don’t want to parse `.backup` files + if ($file->getExtension() !== 'backup') { // we don’t want to parse `.backup` files $filepath = $file->getPathname(); $this->info('Loading HTML from: ' . $filepath); $html = $filesystem->get($filepath); diff --git a/app/Exceptions/RemoteContentNotFoundException.php b/app/Exceptions/RemoteContentNotFoundException.php index 751ebaa9..68440d50 100644 --- a/app/Exceptions/RemoteContentNotFoundException.php +++ b/app/Exceptions/RemoteContentNotFoundException.php @@ -6,5 +6,5 @@ use Exception; class RemoteContentNotFoundException extends Exception { - //used when guzzle can’t find the remote content + // used when guzzle can’t find the remote content } diff --git a/app/Http/Controllers/Admin/ArticlesController.php b/app/Http/Controllers/Admin/ArticlesController.php index d1c10c9d..429f64c8 100644 --- a/app/Http/Controllers/Admin/ArticlesController.php +++ b/app/Http/Controllers/Admin/ArticlesController.php @@ -30,7 +30,7 @@ class ArticlesController extends Controller public function store(): RedirectResponse { - //if a `.md` is attached use that for the main content. + // if a `.md` is attached use that for the main content. if (request()->hasFile('article')) { $file = request()->file('article')->openFile(); $content = $file->fread($file->getSize()); diff --git a/app/Http/Controllers/Admin/NotesController.php b/app/Http/Controllers/Admin/NotesController.php index afa75adb..add755b0 100644 --- a/app/Http/Controllers/Admin/NotesController.php +++ b/app/Http/Controllers/Admin/NotesController.php @@ -67,7 +67,7 @@ class NotesController extends Controller */ public function update(int $noteId): RedirectResponse { - //update note data + // update note data $note = Note::findOrFail($noteId); $note->note = request()->input('content'); $note->in_reply_to = request()->input('in-reply-to'); diff --git a/app/Http/Controllers/IndieAuthController.php b/app/Http/Controllers/IndieAuthController.php index e919fa6d..45b488da 100644 --- a/app/Http/Controllers/IndieAuthController.php +++ b/app/Http/Controllers/IndieAuthController.php @@ -26,8 +26,8 @@ class IndieAuthController extends Controller 'authorization_endpoint' => route('indieauth.start'), 'token_endpoint' => route('indieauth.token'), 'code_challenge_methods_supported' => ['S256'], - //'introspection_endpoint' => route('indieauth.introspection'), - //'introspection_endpoint_auth_methods_supported' => ['none'], + // 'introspection_endpoint' => route('indieauth.introspection'), + // 'introspection_endpoint_auth_methods_supported' => ['none'], ]); } diff --git a/app/Http/Controllers/MicropubMediaController.php b/app/Http/Controllers/MicropubMediaController.php index e3ed8b61..a660f11a 100644 --- a/app/Http/Controllers/MicropubMediaController.php +++ b/app/Http/Controllers/MicropubMediaController.php @@ -191,7 +191,7 @@ class MicropubMediaController extends Controller */ private function getFileTypeFromMimeType(string $mimeType): string { - //try known images + // try known images $imageMimeTypes = [ 'image/gif', 'image/jpeg', @@ -203,7 +203,7 @@ class MicropubMediaController extends Controller if (in_array($mimeType, $imageMimeTypes)) { return 'image'; } - //try known video + // try known video $videoMimeTypes = [ 'video/mp4', 'video/mpeg', @@ -214,7 +214,7 @@ class MicropubMediaController extends Controller if (in_array($mimeType, $videoMimeTypes)) { return 'video'; } - //try known audio types + // try known audio types $audioMimeTypes = [ 'audio/midi', 'audio/mpeg', diff --git a/app/Http/Controllers/WebMentionsController.php b/app/Http/Controllers/WebMentionsController.php index 700a7e23..aa75ba22 100644 --- a/app/Http/Controllers/WebMentionsController.php +++ b/app/Http/Controllers/WebMentionsController.php @@ -33,7 +33,7 @@ class WebMentionsController extends Controller */ public function receive(Request $request): Response { - //first we trivially reject requests that lack all required inputs + // first we trivially reject requests that lack all required inputs if (($request->has('target') !== true) || ($request->has('source') !== true)) { return response( 'You need both the target and source parameters', @@ -41,12 +41,12 @@ class WebMentionsController extends Controller ); } - //next check the $target is valid + // next check the $target is valid $path = parse_url($request->input('target'), PHP_URL_PATH); $pathParts = explode('/', $path); if ($pathParts[1] === 'notes') { - //we have a note + // we have a note $noteId = $pathParts[2]; try { $note = Note::findOrFail(resolve(Numbers::class)->b60tonum($noteId)); diff --git a/app/Jobs/DownloadWebMention.php b/app/Jobs/DownloadWebMention.php index d8f97328..3c187dd4 100644 --- a/app/Jobs/DownloadWebMention.php +++ b/app/Jobs/DownloadWebMention.php @@ -35,30 +35,30 @@ class DownloadWebMention implements ShouldQueue public function handle(Client $guzzle): void { $response = $guzzle->request('GET', $this->source); - //4XX and 5XX responses should get Guzzle to throw an exception, - //Laravel should catch and retry these automatically. + // 4XX and 5XX responses should get Guzzle to throw an exception, + // Laravel should catch and retry these automatically. if ($response->getStatusCode() === 200) { $filesystem = new FileSystem; $filename = storage_path('HTML') . '/' . $this->createFilenameFromURL($this->source); - //backup file first + // backup file first $filenameBackup = $filename . '.' . date('Y-m-d') . '.backup'; if ($filesystem->exists($filename)) { $filesystem->copy($filename, $filenameBackup); } - //check if base directory exists + // check if base directory exists if (! $filesystem->exists($filesystem->dirname($filename))) { $filesystem->makeDirectory( $filesystem->dirname($filename), - 0755, //mode - true //recursive + 0755, // mode + true // recursive ); } - //save new HTML + // save new HTML $filesystem->put( $filename, (string) $response->getBody() ); - //remove backup if the same + // remove backup if the same if ($filesystem->exists($filenameBackup)) { if ($filesystem->get($filename) === $filesystem->get($filenameBackup)) { $filesystem->delete($filenameBackup); diff --git a/app/Jobs/ProcessLike.php b/app/Jobs/ProcessLike.php index 37a377a3..3c6028a9 100644 --- a/app/Jobs/ProcessLike.php +++ b/app/Jobs/ProcessLike.php @@ -49,7 +49,7 @@ class ProcessLike implements ShouldQueue $this->like->content = $tweet->html; $this->like->save(); - //POSSE like + // POSSE like try { $client->request( 'POST', diff --git a/app/Jobs/ProcessMedia.php b/app/Jobs/ProcessMedia.php index e57acf3e..b7f36648 100644 --- a/app/Jobs/ProcessMedia.php +++ b/app/Jobs/ProcessMedia.php @@ -32,18 +32,21 @@ class ProcessMedia implements ShouldQueue */ public function handle(ImageManager $manager): void { + // Load file + $file = Storage::disk('local')->get('media/' . $this->filename); + // Open file try { - $image = $manager->read(storage_path('app/media/') . $this->filename); + $image = $manager->read($file); } catch (DecoderException) { // not an image; delete file and end job - unlink(storage_path('app/media/') . $this->filename); + Storage::disk('local')->delete('media/' . $this->filename); return; } // Save the file publicly - Storage::disk('local')->copy('media/' . $this->filename, 'public/media/' . $this->filename); + Storage::disk('public')->put('media/' . $this->filename, $file); // Create smaller versions if necessary if ($image->width() > 1000) { @@ -54,13 +57,13 @@ class ProcessMedia implements ShouldQueue $basename = trim(implode('.', $filenameParts), '.'); $medium = $image->resize(width: 1000); - Storage::disk('local')->put('public/media/' . $basename . '-medium.' . $extension, (string) $medium->encode()); + Storage::disk('public')->put('media/' . $basename . '-medium.' . $extension, (string) $medium->encode()); $small = $image->resize(width: 500); - Storage::disk('local')->put('public/media/' . $basename . '-small.' . $extension, (string) $small->encode()); + Storage::disk('public')->put('media/' . $basename . '-small.' . $extension, (string) $small->encode()); } // Now we can delete the locally saved image - unlink(storage_path('app/media/') . $this->filename); + Storage::disk('local')->delete('media/' . $this->filename); } } diff --git a/app/Jobs/SaveProfileImage.php b/app/Jobs/SaveProfileImage.php index d1b09776..08152d5b 100644 --- a/app/Jobs/SaveProfileImage.php +++ b/app/Jobs/SaveProfileImage.php @@ -49,7 +49,7 @@ class SaveProfileImage implements ShouldQueue $home = array_shift($home); } - //dont save pbs.twimg.com links + // dont save pbs.twimg.com links if ( $photo && parse_url($photo, PHP_URL_HOST) !== 'pbs.twimg.com' diff --git a/app/Jobs/SendWebMentions.php b/app/Jobs/SendWebMentions.php index 4252f8e0..51e5f162 100644 --- a/app/Jobs/SendWebMentions.php +++ b/app/Jobs/SendWebMentions.php @@ -72,7 +72,7 @@ class SendWebMentions implements ShouldQueue $guzzle = resolve(Client::class); $response = $guzzle->get($url); - //check HTTP Headers for webmention endpoint + // check HTTP Headers for webmention endpoint $links = Header::parse($response->getHeader('Link')); foreach ($links as $link) { if (array_key_exists('rel', $link) && mb_stristr($link['rel'], 'webmention')) { @@ -80,7 +80,7 @@ class SendWebMentions implements ShouldQueue } } - //failed to find a header so parse HTML + // failed to find a header so parse HTML $html = (string) $response->getBody(); $mf2 = new \Mf2\Parser($html, $url); diff --git a/app/Models/Note.php b/app/Models/Note.php index 9c58bb3e..62b9fcea 100644 --- a/app/Models/Note.php +++ b/app/Models/Note.php @@ -111,7 +111,7 @@ class Note extends Model { if ($value !== null) { $normalized = normalizer_normalize($value, Normalizer::FORM_C); - if ($normalized === '') { //we don’t want to save empty strings to the db + if ($normalized === '') { // we don’t want to save empty strings to the db $normalized = null; } $this->attributes['note'] = $normalized; diff --git a/app/Models/Place.php b/app/Models/Place.php index 2a36aa32..62c826ad 100644 --- a/app/Models/Place.php +++ b/app/Models/Place.php @@ -59,7 +59,7 @@ class Place extends Model * sin(radians(places.latitude))))"; return $query - ->select() //pick the columns you want here. + ->select() // pick the columns you want here. ->selectRaw("{$haversine} AS distance") ->whereRaw("{$haversine} < ?", [$distance]); } diff --git a/app/Models/WebMention.php b/app/Models/WebMention.php index a9930851..bd717aa6 100644 --- a/app/Models/WebMention.php +++ b/app/Models/WebMention.php @@ -123,7 +123,7 @@ class WebMention extends Model $host = parse_url($url, PHP_URL_HOST); if ($host === 'pbs.twimg.com') { - //make sure we use HTTPS, we know twitter supports it + // make sure we use HTTPS, we know twitter supports it return str_replace('http://', 'https://', $url); } @@ -135,7 +135,7 @@ class WebMention extends Model $codebird = resolve(Codebird::class); $info = $codebird->users_show(['screen_name' => $username]); $profile_image = $info->profile_image_url_https; - Cache::put($url, $profile_image, 10080); //1 week + Cache::put($url, $profile_image, 10080); // 1 week return $profile_image; } diff --git a/app/Services/BookmarkService.php b/app/Services/BookmarkService.php index 1a17dd08..32ec7260 100644 --- a/app/Services/BookmarkService.php +++ b/app/Services/BookmarkService.php @@ -21,7 +21,7 @@ class BookmarkService extends Service public function create(array $request, ?string $client = null): Bookmark { if (Arr::get($request, 'properties.bookmark-of.0')) { - //micropub request + // micropub request $url = normalize_url(Arr::get($request, 'properties.bookmark-of.0')); $name = Arr::get($request, 'properties.name.0'); $content = Arr::get($request, 'properties.content.0'); @@ -61,7 +61,7 @@ class BookmarkService extends Service try { $response = $client->request('GET', 'https://web.archive.org/save/' . $url); } catch (ClientException $e) { - //throw an exception to be caught + // throw an exception to be caught throw new InternetArchiveException; } if ($response->hasHeader('Content-Location')) { @@ -70,7 +70,7 @@ class BookmarkService extends Service } } - //throw an exception to be caught + // throw an exception to be caught throw new InternetArchiveException; } } diff --git a/app/Services/LikeService.php b/app/Services/LikeService.php index efd2216b..dd08e25b 100644 --- a/app/Services/LikeService.php +++ b/app/Services/LikeService.php @@ -16,7 +16,7 @@ class LikeService extends Service public function create(array $request, ?string $client = null): Like { if (Arr::get($request, 'properties.like-of.0')) { - //micropub request + // micropub request $url = normalize_url(Arr::get($request, 'properties.like-of.0')); } if (Arr::get($request, 'like-of')) { diff --git a/app/Services/Micropub/UpdateService.php b/app/Services/Micropub/UpdateService.php index 144984c2..f806361c 100644 --- a/app/Services/Micropub/UpdateService.php +++ b/app/Services/Micropub/UpdateService.php @@ -20,7 +20,7 @@ class UpdateService { $urlPath = parse_url(Arr::get($request, 'url'), PHP_URL_PATH); - //is it a note we are updating? + // is it a note we are updating? if (mb_substr($urlPath, 1, 5) !== 'notes') { return response()->json([ 'error' => 'invalid', @@ -37,7 +37,7 @@ class UpdateService ], 404); } - //got the note, are we dealing with a “replace” request? + // got the note, are we dealing with a “replace” request? if (Arr::get($request, 'replace')) { foreach (Arr::get($request, 'replace') as $property => $value) { if ($property === 'content') { @@ -64,7 +64,7 @@ class UpdateService ]); } - //how about “add” + // how about “add” if (Arr::get($request, 'add')) { foreach (Arr::get($request, 'add') as $property => $value) { if ($property === 'syndication') { diff --git a/app/Services/PlaceService.php b/app/Services/PlaceService.php index a63caa98..cd9b4b9f 100644 --- a/app/Services/PlaceService.php +++ b/app/Services/PlaceService.php @@ -14,8 +14,8 @@ class PlaceService */ public function createPlace(array $data): Place { - //obviously a place needs a lat/lng, but this could be sent in a geo-url - //if no geo array key, we assume the array already has lat/lng values + // obviously a place needs a lat/lng, but this could be sent in a geo-url + // if no geo array key, we assume the array already has lat/lng values if (array_key_exists('geo', $data) && $data['geo'] !== null) { preg_match_all( '/([0-9\.\-]+)/', @@ -40,7 +40,7 @@ class PlaceService */ public function createPlaceFromCheckin(array $checkin): Place { - //check if the place exists if from swarm + // check if the place exists if from swarm if (Arr::has($checkin, 'properties.url')) { $place = Place::whereExternalURL(Arr::get($checkin, 'properties.url.0'))->get(); if (count($place) === 1) { diff --git a/composer.json b/composer.json index 17312637..e4ea6123 100644 --- a/composer.json +++ b/composer.json @@ -1,4 +1,5 @@ { + "$schema": "https://getcomposer.org/schema.json", "name": "jonnybarnes/jonnybarnes.uk", "type": "project", "description": "The code for jonnybarnes.uk, based on Laravel 11", @@ -11,14 +12,14 @@ "ext-json": "*", "ext-pgsql": "*", "ext-sodium": "*", - "cviebrock/eloquent-sluggable": "^11.0", + "cviebrock/eloquent-sluggable": "^12.0", "guzzlehttp/guzzle": "^7.2", "indieauth/client": "^1.1", "intervention/image": "^3", "jonnybarnes/indieweb": "~0.2", "jonnybarnes/webmentions-parser": "~0.5", "jublonet/codebird-php": "4.0.0-beta.1", - "laravel/framework": "^11.0", + "laravel/framework": "^12.0", "laravel/horizon": "^5.0", "laravel/sanctum": "^4.0", "laravel/scout": "^10.1", @@ -46,11 +47,9 @@ "mockery/mockery": "^1.4.4", "nunomaduro/collision": "^8.1", "openai-php/client": "^0.10.1", - "phpunit/php-code-coverage": "^10.0", - "phpunit/phpunit": "^10.1", - "psalm/plugin-laravel": "^2.8", - "spatie/laravel-ray": "^1.12", - "vimeo/psalm": "^5.0" + "phpunit/php-code-coverage": "^11.0", + "phpunit/phpunit": "^11.0", + "spatie/laravel-ray": "^1.12" }, "autoload": { "psr-4": { @@ -79,7 +78,13 @@ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ - "@php artisan key:generate --ansi" + "@php artisan key:generate --ansi", + "@php -r \"file_exists('database/database.sqlite') || touch('database/database.sqlite');\"", + "@php artisan migrate --graceful --ansi" + ], + "dev": [ + "Composer\\Config::disableProcessTimeout", + "npx concurrently -c \"#93c5fd,#c4b5fd,#fb7185,#fdba74\" \"php artisan serve\" \"php artisan queue:listen --tries=1\" \"php artisan pail --timeout=0\" \"npm run dev\" --names=server,queue,logs,vite" ] }, "extra": { diff --git a/composer.lock b/composer.lock index ca4775e8..a7521ac8 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c0b2ab80898a42868cc33845917f45d4", + "content-hash": "cd963bfd9cfb41beb4151e73ae98dc98", "packages": [ { "name": "aws/aws-crt-php", @@ -62,16 +62,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.338.2", + "version": "3.342.18", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "7a52364e053d74363f9976dfb4473bace5b7790e" + "reference": "e6c81bf323b082f8fe2b76d8d41e2614806d5892" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/7a52364e053d74363f9976dfb4473bace5b7790e", - "reference": "7a52364e053d74363f9976dfb4473bace5b7790e", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/e6c81bf323b082f8fe2b76d8d41e2614806d5892", + "reference": "e6c81bf323b082f8fe2b76d8d41e2614806d5892", "shasum": "" }, "require": { @@ -97,7 +97,6 @@ "ext-openssl": "*", "ext-pcntl": "*", "ext-sockets": "*", - "paragonie/random_compat": ">= 2", "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5", "psr/cache": "^2.0 || ^3.0", "psr/simple-cache": "^2.0 || ^3.0", @@ -154,22 +153,22 @@ "support": { "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.338.2" + "source": "https://github.com/aws/aws-sdk-php/tree/3.342.18" }, - "time": "2025-01-24T19:09:22+00:00" + "time": "2025-04-01T18:15:02+00:00" }, { "name": "brick/math", - "version": "0.12.1", + "version": "0.12.3", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "f510c0a40911935b77b86859eb5223d58d660df1" + "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1", - "reference": "f510c0a40911935b77b86859eb5223d58d660df1", + "url": "https://api.github.com/repos/brick/math/zipball/866551da34e9a618e64a819ee1e01c20d8a588ba", + "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba", "shasum": "" }, "require": { @@ -178,7 +177,7 @@ "require-dev": { "php-coveralls/php-coveralls": "^2.2", "phpunit/phpunit": "^10.1", - "vimeo/psalm": "5.16.0" + "vimeo/psalm": "6.8.8" }, "type": "library", "autoload": { @@ -208,7 +207,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.12.1" + "source": "https://github.com/brick/math/tree/0.12.3" }, "funding": [ { @@ -216,7 +215,7 @@ "type": "github" } ], - "time": "2023-11-29T23:19:16+00:00" + "time": "2025-02-28T13:11:00+00:00" }, { "name": "carbonphp/carbon-doctrine-types", @@ -514,29 +513,32 @@ }, { "name": "cviebrock/eloquent-sluggable", - "version": "11.0.1", + "version": "12.0.0", "source": { "type": "git", "url": "https://github.com/cviebrock/eloquent-sluggable.git", - "reference": "a4281cf0284a21efc1031a065b112ddd6c826eea" + "reference": "50d0c8a508cb5d6193ff6668518930ba8ec8ef24" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cviebrock/eloquent-sluggable/zipball/a4281cf0284a21efc1031a065b112ddd6c826eea", - "reference": "a4281cf0284a21efc1031a065b112ddd6c826eea", + "url": "https://api.github.com/repos/cviebrock/eloquent-sluggable/zipball/50d0c8a508cb5d6193ff6668518930ba8ec8ef24", + "reference": "50d0c8a508cb5d6193ff6668518930ba8ec8ef24", "shasum": "" }, "require": { "cocur/slugify": "^4.3", - "illuminate/config": "^11.0", - "illuminate/database": "^11.0", - "illuminate/support": "^11.0", + "illuminate/config": "^12.0", + "illuminate/database": "^12.0", + "illuminate/support": "^12.0", "php": "^8.2" }, "require-dev": { + "friendsofphp/php-cs-fixer": "^3.65", + "larastan/larastan": "^3.0", "mockery/mockery": "^1.4.4", - "orchestra/testbench": "^9.0", - "pestphp/pest": "^2.28" + "orchestra/testbench": "^10.0", + "pestphp/pest": "^3.7", + "phpstan/phpstan": "^2.0" }, "type": "library", "extra": { @@ -544,9 +546,6 @@ "providers": [ "Cviebrock\\EloquentSluggable\\ServiceProvider" ] - }, - "branch-alias": { - "dev-master": "11.0.x-dev" } }, "autoload": { @@ -570,13 +569,12 @@ "eloquent", "eloquent-sluggable", "laravel", - "lumen", "slug", "sluggable" ], "support": { "issues": "https://github.com/cviebrock/eloquent-sluggable/issues", - "source": "https://github.com/cviebrock/eloquent-sluggable/tree/11.0.1" + "source": "https://github.com/cviebrock/eloquent-sluggable/tree/12.0.0" }, "funding": [ { @@ -584,7 +582,7 @@ "type": "github" } ], - "time": "2024-11-29T01:32:17+00:00" + "time": "2025-02-26T22:53:32+00:00" }, { "name": "dflydev/dot-access-data", @@ -941,16 +939,16 @@ }, { "name": "egulias/email-validator", - "version": "4.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "b115554301161fa21467629f1e1391c1936de517" + "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/b115554301161fa21467629f1e1391c1936de517", - "reference": "b115554301161fa21467629f1e1391c1936de517", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa", + "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa", "shasum": "" }, "require": { @@ -996,7 +994,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/4.0.3" + "source": "https://github.com/egulias/EmailValidator/tree/4.0.4" }, "funding": [ { @@ -1004,7 +1002,7 @@ "type": "github" } ], - "time": "2024-12-27T00:36:43+00:00" + "time": "2025-03-06T22:45:56+00:00" }, { "name": "fruitcake/php-cors", @@ -1141,16 +1139,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.9.2", + "version": "7.9.3", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "d281ed313b989f213357e3be1a179f02196ac99b" + "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b", - "reference": "d281ed313b989f213357e3be1a179f02196ac99b", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", + "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", "shasum": "" }, "require": { @@ -1247,7 +1245,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.9.2" + "source": "https://github.com/guzzle/guzzle/tree/7.9.3" }, "funding": [ { @@ -1263,20 +1261,20 @@ "type": "tidelift" } ], - "time": "2024-07-24T11:22:20+00:00" + "time": "2025-03-27T13:37:11+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.4", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455" + "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455", - "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455", + "url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c", + "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c", "shasum": "" }, "require": { @@ -1330,7 +1328,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.4" + "source": "https://github.com/guzzle/promises/tree/2.2.0" }, "funding": [ { @@ -1346,20 +1344,20 @@ "type": "tidelift" } ], - "time": "2024-10-17T10:06:22+00:00" + "time": "2025-03-27T13:27:01+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.7.0", + "version": "2.7.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" + "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", - "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16", + "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16", "shasum": "" }, "require": { @@ -1446,7 +1444,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.7.0" + "source": "https://github.com/guzzle/psr7/tree/2.7.1" }, "funding": [ { @@ -1462,20 +1460,20 @@ "type": "tidelift" } ], - "time": "2024-07-18T11:15:46+00:00" + "time": "2025-03-27T12:30:47+00:00" }, { "name": "guzzlehttp/uri-template", - "version": "v1.0.3", + "version": "v1.0.4", "source": { "type": "git", "url": "https://github.com/guzzle/uri-template.git", - "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c" + "reference": "30e286560c137526eccd4ce21b2de477ab0676d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c", - "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/30e286560c137526eccd4ce21b2de477ab0676d2", + "reference": "30e286560c137526eccd4ce21b2de477ab0676d2", "shasum": "" }, "require": { @@ -1532,7 +1530,7 @@ ], "support": { "issues": "https://github.com/guzzle/uri-template/issues", - "source": "https://github.com/guzzle/uri-template/tree/v1.0.3" + "source": "https://github.com/guzzle/uri-template/tree/v1.0.4" }, "funding": [ { @@ -1548,7 +1546,7 @@ "type": "tidelift" } ], - "time": "2023-12-03T19:50:20+00:00" + "time": "2025-02-03T10:55:03+00:00" }, { "name": "indieauth/client", @@ -1703,16 +1701,16 @@ }, { "name": "intervention/gif", - "version": "4.2.1", + "version": "4.2.2", "source": { "type": "git", "url": "https://github.com/Intervention/gif.git", - "reference": "6addac2c68b4bc0e37d0d3ccedda57eb84729c49" + "reference": "5999eac6a39aa760fb803bc809e8909ee67b451a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/gif/zipball/6addac2c68b4bc0e37d0d3ccedda57eb84729c49", - "reference": "6addac2c68b4bc0e37d0d3ccedda57eb84729c49", + "url": "https://api.github.com/repos/Intervention/gif/zipball/5999eac6a39aa760fb803bc809e8909ee67b451a", + "reference": "5999eac6a39aa760fb803bc809e8909ee67b451a", "shasum": "" }, "require": { @@ -1720,7 +1718,7 @@ }, "require-dev": { "phpstan/phpstan": "^2.1", - "phpunit/phpunit": "^10.0 || ^11.0", + "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0", "slevomat/coding-standard": "~8.0", "squizlabs/php_codesniffer": "^3.8" }, @@ -1751,7 +1749,7 @@ ], "support": { "issues": "https://github.com/Intervention/gif/issues", - "source": "https://github.com/Intervention/gif/tree/4.2.1" + "source": "https://github.com/Intervention/gif/tree/4.2.2" }, "funding": [ { @@ -1767,20 +1765,20 @@ "type": "ko_fi" } ], - "time": "2025-01-05T10:52:39+00:00" + "time": "2025-03-29T07:46:21+00:00" }, { "name": "intervention/image", - "version": "3.11.0", + "version": "3.11.2", "source": { "type": "git", "url": "https://github.com/Intervention/image.git", - "reference": "6b9ce4fc4485d30117e13935b25bc55a8b894a79" + "reference": "ebbb711871fb261c064cf4c422f5f3c124fe1842" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/6b9ce4fc4485d30117e13935b25bc55a8b894a79", - "reference": "6b9ce4fc4485d30117e13935b25bc55a8b894a79", + "url": "https://api.github.com/repos/Intervention/image/zipball/ebbb711871fb261c064cf4c422f5f3c124fe1842", + "reference": "ebbb711871fb261c064cf4c422f5f3c124fe1842", "shasum": "" }, "require": { @@ -1791,7 +1789,7 @@ "require-dev": { "mockery/mockery": "^1.6", "phpstan/phpstan": "^2.1", - "phpunit/phpunit": "^10.0 || ^11.0", + "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0", "slevomat/coding-standard": "~8.0", "squizlabs/php_codesniffer": "^3.8" }, @@ -1827,7 +1825,7 @@ ], "support": { "issues": "https://github.com/Intervention/image/issues", - "source": "https://github.com/Intervention/image/tree/3.11.0" + "source": "https://github.com/Intervention/image/tree/3.11.2" }, "funding": [ { @@ -1843,7 +1841,7 @@ "type": "ko_fi" } ], - "time": "2025-01-18T15:42:14+00:00" + "time": "2025-02-27T13:08:55+00:00" }, { "name": "jonnybarnes/indieweb", @@ -2012,20 +2010,20 @@ }, { "name": "laravel/framework", - "version": "v11.40.0", + "version": "v12.5.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "599a28196d284fee158cc10086fd56ac625ad7a3" + "reference": "0ab4791b2c5f405f8728e4481265599803564c02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/599a28196d284fee158cc10086fd56ac625ad7a3", - "reference": "599a28196d284fee158cc10086fd56ac625ad7a3", + "url": "https://api.github.com/repos/laravel/framework/zipball/0ab4791b2c5f405f8728e4481265599803564c02", + "reference": "0ab4791b2c5f405f8728e4481265599803564c02", "shasum": "" }, "require": { - "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12", + "brick/math": "^0.11|^0.12", "composer-runtime-api": "^2.2", "doctrine/inflector": "^2.0.5", "dragonmantank/cron-expression": "^3.4", @@ -2040,32 +2038,32 @@ "fruitcake/php-cors": "^1.3", "guzzlehttp/guzzle": "^7.8.2", "guzzlehttp/uri-template": "^1.0", - "laravel/prompts": "^0.1.18|^0.2.0|^0.3.0", + "laravel/prompts": "^0.3.0", "laravel/serializable-closure": "^1.3|^2.0", "league/commonmark": "^2.6", "league/flysystem": "^3.25.1", "league/flysystem-local": "^3.25.1", "league/uri": "^7.5.1", "monolog/monolog": "^3.0", - "nesbot/carbon": "^2.72.6|^3.8.4", + "nesbot/carbon": "^3.8.4", "nunomaduro/termwind": "^2.0", "php": "^8.2", "psr/container": "^1.1.1|^2.0.1", "psr/log": "^1.0|^2.0|^3.0", "psr/simple-cache": "^1.0|^2.0|^3.0", "ramsey/uuid": "^4.7", - "symfony/console": "^7.0.3", - "symfony/error-handler": "^7.0.3", - "symfony/finder": "^7.0.3", + "symfony/console": "^7.2.0", + "symfony/error-handler": "^7.2.0", + "symfony/finder": "^7.2.0", "symfony/http-foundation": "^7.2.0", - "symfony/http-kernel": "^7.0.3", - "symfony/mailer": "^7.0.3", - "symfony/mime": "^7.0.3", + "symfony/http-kernel": "^7.2.0", + "symfony/mailer": "^7.2.0", + "symfony/mime": "^7.2.0", "symfony/polyfill-php83": "^1.31", - "symfony/process": "^7.0.3", - "symfony/routing": "^7.0.3", - "symfony/uid": "^7.0.3", - "symfony/var-dumper": "^7.0.3", + "symfony/process": "^7.2.0", + "symfony/routing": "^7.2.0", + "symfony/uid": "^7.2.0", + "symfony/var-dumper": "^7.2.0", "tijsverkoyen/css-to-inline-styles": "^2.2.5", "vlucas/phpdotenv": "^5.6.1", "voku/portable-ascii": "^2.0.2" @@ -2129,17 +2127,17 @@ "league/flysystem-read-only": "^3.25.1", "league/flysystem-sftp-v3": "^3.25.1", "mockery/mockery": "^1.6.10", - "orchestra/testbench-core": "^9.6", + "orchestra/testbench-core": "^10.0.0", "pda/pheanstalk": "^5.0.6", "php-http/discovery": "^1.15", - "phpstan/phpstan": "^1.11.5", - "phpunit/phpunit": "^10.5.35|^11.3.6", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1", "predis/predis": "^2.3", "resend/resend-php": "^0.10.0", - "symfony/cache": "^7.0.3", - "symfony/http-client": "^7.0.3", - "symfony/psr-http-message-bridge": "^7.0.3", - "symfony/translation": "^7.0.3" + "symfony/cache": "^7.2.0", + "symfony/http-client": "^7.2.0", + "symfony/psr-http-message-bridge": "^7.2.0", + "symfony/translation": "^7.2.0" }, "suggest": { "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", @@ -2165,22 +2163,22 @@ "mockery/mockery": "Required to use mocking (^1.6).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).", "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).", - "phpunit/phpunit": "Required to use assertions and run tests (^10.5|^11.0).", + "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.5.3|^12.0.1).", "predis/predis": "Required to use the predis connector (^2.3).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^7.0).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^7.0).", - "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.0).", - "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.0).", - "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.0).", - "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.0)." + "symfony/cache": "Required to PSR-6 cache bridge (^7.2).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.2).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.2).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.2)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "11.x-dev" + "dev-master": "12.x-dev" } }, "autoload": { @@ -2223,29 +2221,29 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2025-01-24T16:17:42+00:00" + "time": "2025-04-01T14:40:42+00:00" }, { "name": "laravel/horizon", - "version": "v5.30.2", + "version": "v5.31.1", "source": { "type": "git", "url": "https://github.com/laravel/horizon.git", - "reference": "baef526f036717b0090754cbd9c9b67f879739fd" + "reference": "bc98b63313b2e0a3d0c8e84e1b691388ef1bf653" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/horizon/zipball/baef526f036717b0090754cbd9c9b67f879739fd", - "reference": "baef526f036717b0090754cbd9c9b67f879739fd", + "url": "https://api.github.com/repos/laravel/horizon/zipball/bc98b63313b2e0a3d0c8e84e1b691388ef1bf653", + "reference": "bc98b63313b2e0a3d0c8e84e1b691388ef1bf653", "shasum": "" }, "require": { "ext-json": "*", "ext-pcntl": "*", "ext-posix": "*", - "illuminate/contracts": "^9.21|^10.0|^11.0", - "illuminate/queue": "^9.21|^10.0|^11.0", - "illuminate/support": "^9.21|^10.0|^11.0", + "illuminate/contracts": "^9.21|^10.0|^11.0|^12.0", + "illuminate/queue": "^9.21|^10.0|^11.0|^12.0", + "illuminate/support": "^9.21|^10.0|^11.0|^12.0", "nesbot/carbon": "^2.17|^3.0", "php": "^8.0", "ramsey/uuid": "^4.0", @@ -2256,9 +2254,9 @@ }, "require-dev": { "mockery/mockery": "^1.0", - "orchestra/testbench": "^7.0|^8.0|^9.0", + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^9.0|^10.4", + "phpunit/phpunit": "^9.0|^10.4|^11.5", "predis/predis": "^1.1|^2.0" }, "suggest": { @@ -2301,22 +2299,22 @@ ], "support": { "issues": "https://github.com/laravel/horizon/issues", - "source": "https://github.com/laravel/horizon/tree/v5.30.2" + "source": "https://github.com/laravel/horizon/tree/v5.31.1" }, - "time": "2025-01-13T16:51:22+00:00" + "time": "2025-03-16T23:48:25+00:00" }, { "name": "laravel/prompts", - "version": "v0.3.3", + "version": "v0.3.5", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "749395fcd5f8f7530fe1f00dfa84eb22c83d94ea" + "reference": "57b8f7efe40333cdb925700891c7d7465325d3b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/749395fcd5f8f7530fe1f00dfa84eb22c83d94ea", - "reference": "749395fcd5f8f7530fe1f00dfa84eb22c83d94ea", + "url": "https://api.github.com/repos/laravel/prompts/zipball/57b8f7efe40333cdb925700891c7d7465325d3b1", + "reference": "57b8f7efe40333cdb925700891c7d7465325d3b1", "shasum": "" }, "require": { @@ -2330,7 +2328,7 @@ "laravel/framework": ">=10.17.0 <10.25.0" }, "require-dev": { - "illuminate/collections": "^10.0|^11.0", + "illuminate/collections": "^10.0|^11.0|^12.0", "mockery/mockery": "^1.5", "pestphp/pest": "^2.3|^3.4", "phpstan/phpstan": "^1.11", @@ -2360,38 +2358,38 @@ "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.3.3" + "source": "https://github.com/laravel/prompts/tree/v0.3.5" }, - "time": "2024-12-30T15:53:31+00:00" + "time": "2025-02-11T13:34:40+00:00" }, { "name": "laravel/sanctum", - "version": "v4.0.7", + "version": "v4.0.8", "source": { "type": "git", "url": "https://github.com/laravel/sanctum.git", - "reference": "698064236a46df016e64a7eb059b1414e0b281df" + "reference": "ec1dd9ddb2ab370f79dfe724a101856e0963f43c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/698064236a46df016e64a7eb059b1414e0b281df", - "reference": "698064236a46df016e64a7eb059b1414e0b281df", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/ec1dd9ddb2ab370f79dfe724a101856e0963f43c", + "reference": "ec1dd9ddb2ab370f79dfe724a101856e0963f43c", "shasum": "" }, "require": { "ext-json": "*", - "illuminate/console": "^11.0", - "illuminate/contracts": "^11.0", - "illuminate/database": "^11.0", - "illuminate/support": "^11.0", + "illuminate/console": "^11.0|^12.0", + "illuminate/contracts": "^11.0|^12.0", + "illuminate/database": "^11.0|^12.0", + "illuminate/support": "^11.0|^12.0", "php": "^8.2", "symfony/console": "^7.0" }, "require-dev": { "mockery/mockery": "^1.6", - "orchestra/testbench": "^9.0", + "orchestra/testbench": "^9.0|^10.0", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^10.5" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { @@ -2426,30 +2424,30 @@ "issues": "https://github.com/laravel/sanctum/issues", "source": "https://github.com/laravel/sanctum" }, - "time": "2024-12-11T16:40:21+00:00" + "time": "2025-01-26T19:34:36+00:00" }, { "name": "laravel/scout", - "version": "v10.12.1", + "version": "v10.14.1", "source": { "type": "git", "url": "https://github.com/laravel/scout.git", - "reference": "f40f14b7a63be753a425eae4f56cd71d08478242" + "reference": "6ae3ec83ceacb554f395df9fe15318a14b79bb39" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/scout/zipball/f40f14b7a63be753a425eae4f56cd71d08478242", - "reference": "f40f14b7a63be753a425eae4f56cd71d08478242", + "url": "https://api.github.com/repos/laravel/scout/zipball/6ae3ec83ceacb554f395df9fe15318a14b79bb39", + "reference": "6ae3ec83ceacb554f395df9fe15318a14b79bb39", "shasum": "" }, "require": { - "illuminate/bus": "^9.0|^10.0|^11.0", - "illuminate/contracts": "^9.0|^10.0|^11.0", - "illuminate/database": "^9.0|^10.0|^11.0", - "illuminate/http": "^9.0|^10.0|^11.0", - "illuminate/pagination": "^9.0|^10.0|^11.0", - "illuminate/queue": "^9.0|^10.0|^11.0", - "illuminate/support": "^9.0|^10.0|^11.0", + "illuminate/bus": "^9.0|^10.0|^11.0|^12.0", + "illuminate/contracts": "^9.0|^10.0|^11.0|^12.0", + "illuminate/database": "^9.0|^10.0|^11.0|^12.0", + "illuminate/http": "^9.0|^10.0|^11.0|^12.0", + "illuminate/pagination": "^9.0|^10.0|^11.0|^12.0", + "illuminate/queue": "^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^9.0|^10.0|^11.0|^12.0", "php": "^8.0", "symfony/console": "^6.0|^7.0" }, @@ -2460,7 +2458,7 @@ "algolia/algoliasearch-client-php": "^3.2|^4.0", "meilisearch/meilisearch-php": "^1.0", "mockery/mockery": "^1.0", - "orchestra/testbench": "^7.31|^8.11|^9.0", + "orchestra/testbench": "^7.31|^8.11|^9.0|^10.0", "php-http/guzzle7-adapter": "^1.0", "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^9.3|^10.4", @@ -2507,36 +2505,36 @@ "issues": "https://github.com/laravel/scout/issues", "source": "https://github.com/laravel/scout" }, - "time": "2025-01-21T15:07:47+00:00" + "time": "2025-04-01T14:58:03+00:00" }, { "name": "laravel/serializable-closure", - "version": "v1.3.7", + "version": "v2.0.4", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "4f48ade902b94323ca3be7646db16209ec76be3d" + "reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/4f48ade902b94323ca3be7646db16209ec76be3d", - "reference": "4f48ade902b94323ca3be7646db16209ec76be3d", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/b352cf0534aa1ae6b4d825d1e762e35d43f8a841", + "reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841", "shasum": "" }, "require": { - "php": "^7.3|^8.0" + "php": "^8.1" }, "require-dev": { - "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|^6.2.0|^7.0.0" + "illuminate/support": "^10.0|^11.0|^12.0", + "nesbot/carbon": "^2.67|^3.0", + "pestphp/pest": "^2.36|^3.0", + "phpstan/phpstan": "^2.0", + "symfony/var-dumper": "^6.2.0|^7.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -2568,26 +2566,26 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2024-11-14T18:34:49+00:00" + "time": "2025-03-19T13:51:03+00:00" }, { "name": "laravel/tinker", - "version": "v2.10.0", + "version": "v2.10.1", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "ba4d51eb56de7711b3a37d63aa0643e99a339ae5" + "reference": "22177cc71807d38f2810c6204d8f7183d88a57d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/ba4d51eb56de7711b3a37d63aa0643e99a339ae5", - "reference": "ba4d51eb56de7711b3a37d63aa0643e99a339ae5", + "url": "https://api.github.com/repos/laravel/tinker/zipball/22177cc71807d38f2810c6204d8f7183d88a57d3", + "reference": "22177cc71807d38f2810c6204d8f7183d88a57d3", "shasum": "" }, "require": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", "php": "^7.2.5|^8.0", "psy/psysh": "^0.11.1|^0.12.0", "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" @@ -2595,10 +2593,10 @@ "require-dev": { "mockery/mockery": "~1.3.3|^1.4.2", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^8.5.8|^9.3.3" + "phpunit/phpunit": "^8.5.8|^9.3.3|^10.0" }, "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0)." }, "type": "library", "extra": { @@ -2632,22 +2630,22 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.10.0" + "source": "https://github.com/laravel/tinker/tree/v2.10.1" }, - "time": "2024-09-23T13:32:56+00:00" + "time": "2025-01-27T14:24:01+00:00" }, { "name": "lcobucci/jwt", - "version": "5.4.2", + "version": "5.5.0", "source": { "type": "git", "url": "https://github.com/lcobucci/jwt.git", - "reference": "ea1ce71cbf9741e445a5914e2f67cdbb484ff712" + "reference": "a835af59b030d3f2967725697cf88300f579088e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/jwt/zipball/ea1ce71cbf9741e445a5914e2f67cdbb484ff712", - "reference": "ea1ce71cbf9741e445a5914e2f67cdbb484ff712", + "url": "https://api.github.com/repos/lcobucci/jwt/zipball/a835af59b030d3f2967725697cf88300f579088e", + "reference": "a835af59b030d3f2967725697cf88300f579088e", "shasum": "" }, "require": { @@ -2695,7 +2693,7 @@ ], "support": { "issues": "https://github.com/lcobucci/jwt/issues", - "source": "https://github.com/lcobucci/jwt/tree/5.4.2" + "source": "https://github.com/lcobucci/jwt/tree/5.5.0" }, "funding": [ { @@ -2707,7 +2705,7 @@ "type": "patreon" } ], - "time": "2024-11-07T12:54:35+00:00" + "time": "2025-01-26T21:29:45+00:00" }, { "name": "league/commonmark", @@ -3446,16 +3444,16 @@ }, { "name": "monolog/monolog", - "version": "3.8.1", + "version": "3.9.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4" + "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/aef6ee73a77a66e404dd6540934a9ef1b3c855b4", - "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/10d85740180ecba7896c87e06a166e0c95a0e3b6", + "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6", "shasum": "" }, "require": { @@ -3533,7 +3531,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.8.1" + "source": "https://github.com/Seldaek/monolog/tree/3.9.0" }, "funding": [ { @@ -3545,7 +3543,7 @@ "type": "tidelift" } ], - "time": "2024-12-05T17:15:07+00:00" + "time": "2025-03-24T10:02:05+00:00" }, { "name": "mtdowling/jmespath.php", @@ -3615,16 +3613,16 @@ }, { "name": "nesbot/carbon", - "version": "3.8.4", + "version": "3.8.6", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "129700ed449b1f02d70272d2ac802357c8c30c58" + "reference": "ff2f20cf83bd4d503720632ce8a426dc747bf7fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/129700ed449b1f02d70272d2ac802357c8c30c58", - "reference": "129700ed449b1f02d70272d2ac802357c8c30c58", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/ff2f20cf83bd4d503720632ce8a426dc747bf7fd", + "reference": "ff2f20cf83bd4d503720632ce8a426dc747bf7fd", "shasum": "" }, "require": { @@ -3700,8 +3698,8 @@ ], "support": { "docs": "https://carbon.nesbot.com/docs", - "issues": "https://github.com/briannesbitt/Carbon/issues", - "source": "https://github.com/briannesbitt/Carbon" + "issues": "https://github.com/CarbonPHP/carbon/issues", + "source": "https://github.com/CarbonPHP/carbon" }, "funding": [ { @@ -3717,7 +3715,7 @@ "type": "tidelift" } ], - "time": "2024-12-27T09:25:35+00:00" + "time": "2025-02-20T17:33:38+00:00" }, { "name": "nette/schema", @@ -3783,16 +3781,16 @@ }, { "name": "nette/utils", - "version": "v4.0.5", + "version": "v4.0.6", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96" + "reference": "ce708655043c7050eb050df361c5e313cf708309" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/736c567e257dbe0fcf6ce81b4d6dbe05c6899f96", - "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96", + "url": "https://api.github.com/repos/nette/utils/zipball/ce708655043c7050eb050df361c5e313cf708309", + "reference": "ce708655043c7050eb050df361c5e313cf708309", "shasum": "" }, "require": { @@ -3863,31 +3861,33 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.5" + "source": "https://github.com/nette/utils/tree/v4.0.6" }, - "time": "2024-08-07T15:39:19+00:00" + "time": "2025-03-30T21:06:30+00:00" }, { "name": "nikic/php-parser", - "version": "v4.19.4", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2" + "reference": "447a020a1f875a434d62f2a401f53b82a396e494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/715f4d25e225bc47b293a8b997fe6ce99bf987d2", - "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494", + "reference": "447a020a1f875a434d62f2a401f53b82a396e494", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-tokenizer": "*", - "php": ">=7.1" + "php": ">=7.4" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9.0" }, "bin": [ "bin/php-parse" @@ -3895,7 +3895,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -3919,9 +3919,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.4" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" }, - "time": "2024-09-29T15:01:53+00:00" + "time": "2024-12-30T11:07:19+00:00" }, { "name": "nunomaduro/termwind", @@ -4371,16 +4371,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299" + "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/c00d78fb6b29658347f9d37ebe104bffadf36299", - "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/9b30d6fd026b2c132b3985ce6b23bec09ab3aa68", + "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68", "shasum": "" }, "require": { @@ -4412,9 +4412,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.0.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.1.0" }, - "time": "2024-10-13T11:29:49+00:00" + "time": "2025-02-19T13:28:12+00:00" }, { "name": "psr/clock", @@ -4830,16 +4830,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.7", + "version": "v0.12.8", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "d73fa3c74918ef4522bb8a3bf9cab39161c4b57c" + "reference": "85057ceedee50c49d4f6ecaff73ee96adb3b3625" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/d73fa3c74918ef4522bb8a3bf9cab39161c4b57c", - "reference": "d73fa3c74918ef4522bb8a3bf9cab39161c4b57c", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/85057ceedee50c49d4f6ecaff73ee96adb3b3625", + "reference": "85057ceedee50c49d4f6ecaff73ee96adb3b3625", "shasum": "" }, "require": { @@ -4903,9 +4903,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.7" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.8" }, - "time": "2024-12-10T01:58:33+00:00" + "time": "2025-03-16T03:05:19+00:00" }, { "name": "ralouphie/getallheaders", @@ -4953,16 +4953,16 @@ }, { "name": "ramsey/collection", - "version": "2.0.0", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/ramsey/collection.git", - "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5" + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", - "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "url": "https://api.github.com/repos/ramsey/collection/zipball/344572933ad0181accbf4ba763e85a0306a8c5e2", + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2", "shasum": "" }, "require": { @@ -4970,25 +4970,22 @@ }, "require-dev": { "captainhook/plugin-composer": "^5.3", - "ergebnis/composer-normalize": "^2.28.3", - "fakerphp/faker": "^1.21", + "ergebnis/composer-normalize": "^2.45", + "fakerphp/faker": "^1.24", "hamcrest/hamcrest-php": "^2.0", - "jangregor/phpstan-prophecy": "^1.0", - "mockery/mockery": "^1.5", + "jangregor/phpstan-prophecy": "^2.1", + "mockery/mockery": "^1.6", "php-parallel-lint/php-console-highlighter": "^1.0", - "php-parallel-lint/php-parallel-lint": "^1.3", - "phpcsstandards/phpcsutils": "^1.0.0-rc1", - "phpspec/prophecy-phpunit": "^2.0", - "phpstan/extension-installer": "^1.2", - "phpstan/phpstan": "^1.9", - "phpstan/phpstan-mockery": "^1.1", - "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^9.5", - "psalm/plugin-mockery": "^1.1", - "psalm/plugin-phpunit": "^0.18.4", - "ramsey/coding-standard": "^2.0.3", - "ramsey/conventional-commits": "^1.3", - "vimeo/psalm": "^5.4" + "php-parallel-lint/php-parallel-lint": "^1.4", + "phpspec/prophecy-phpunit": "^2.3", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^10.5", + "ramsey/coding-standard": "^2.3", + "ramsey/conventional-commits": "^1.6", + "roave/security-advisories": "dev-latest" }, "type": "library", "extra": { @@ -5026,19 +5023,9 @@ ], "support": { "issues": "https://github.com/ramsey/collection/issues", - "source": "https://github.com/ramsey/collection/tree/2.0.0" + "source": "https://github.com/ramsey/collection/tree/2.1.1" }, - "funding": [ - { - "url": "https://github.com/ramsey", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", - "type": "tidelift" - } - ], - "time": "2022-12-31T21:50:55+00:00" + "time": "2025-03-22T05:38:12+00:00" }, { "name": "ramsey/uuid", @@ -5329,30 +5316,30 @@ }, { "name": "spatie/error-solutions", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/spatie/error-solutions.git", - "reference": "d239a65235a1eb128dfa0a4e4c4ef032ea11b541" + "reference": "e495d7178ca524f2dd0fe6a1d99a1e608e1c9936" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/error-solutions/zipball/d239a65235a1eb128dfa0a4e4c4ef032ea11b541", - "reference": "d239a65235a1eb128dfa0a4e4c4ef032ea11b541", + "url": "https://api.github.com/repos/spatie/error-solutions/zipball/e495d7178ca524f2dd0fe6a1d99a1e608e1c9936", + "reference": "e495d7178ca524f2dd0fe6a1d99a1e608e1c9936", "shasum": "" }, "require": { "php": "^8.0" }, "require-dev": { - "illuminate/broadcasting": "^10.0|^11.0", - "illuminate/cache": "^10.0|^11.0", - "illuminate/support": "^10.0|^11.0", - "livewire/livewire": "^2.11|^3.3.5", + "illuminate/broadcasting": "^10.0|^11.0|^12.0", + "illuminate/cache": "^10.0|^11.0|^12.0", + "illuminate/support": "^10.0|^11.0|^12.0", + "livewire/livewire": "^2.11|^3.5.20", "openai-php/client": "^0.10.1", - "orchestra/testbench": "^7.0|8.22.3|^9.0", - "pestphp/pest": "^2.20", - "phpstan/phpstan": "^1.11", + "orchestra/testbench": "8.22.3|^9.0|^10.0", + "pestphp/pest": "^2.20|^3.0", + "phpstan/phpstan": "^2.1", "psr/simple-cache": "^3.0", "psr/simple-cache-implementation": "^3.0", "spatie/ray": "^1.28", @@ -5391,7 +5378,7 @@ ], "support": { "issues": "https://github.com/spatie/error-solutions/issues", - "source": "https://github.com/spatie/error-solutions/tree/1.1.2" + "source": "https://github.com/spatie/error-solutions/tree/1.1.3" }, "funding": [ { @@ -5399,24 +5386,24 @@ "type": "github" } ], - "time": "2024-12-11T09:51:56+00:00" + "time": "2025-02-14T12:29:50+00:00" }, { "name": "spatie/flare-client-php", - "version": "1.10.0", + "version": "1.10.1", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "140a42b2c5d59ac4ecf8f5b493386a4f2eb28272" + "reference": "bf1716eb98bd689451b071548ae9e70738dce62f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/140a42b2c5d59ac4ecf8f5b493386a4f2eb28272", - "reference": "140a42b2c5d59ac4ecf8f5b493386a4f2eb28272", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/bf1716eb98bd689451b071548ae9e70738dce62f", + "reference": "bf1716eb98bd689451b071548ae9e70738dce62f", "shasum": "" }, "require": { - "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0", + "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0|^12.0", "php": "^8.0", "spatie/backtrace": "^1.6.1", "symfony/http-foundation": "^5.2|^6.0|^7.0", @@ -5460,7 +5447,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.10.0" + "source": "https://github.com/spatie/flare-client-php/tree/1.10.1" }, "funding": [ { @@ -5468,20 +5455,20 @@ "type": "github" } ], - "time": "2024-12-02T14:30:06+00:00" + "time": "2025-02-14T13:42:06+00:00" }, { "name": "spatie/ignition", - "version": "1.15.0", + "version": "1.15.1", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "e3a68e137371e1eb9edc7f78ffa733f3b98991d2" + "reference": "31f314153020aee5af3537e507fef892ffbf8c85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/e3a68e137371e1eb9edc7f78ffa733f3b98991d2", - "reference": "e3a68e137371e1eb9edc7f78ffa733f3b98991d2", + "url": "https://api.github.com/repos/spatie/ignition/zipball/31f314153020aee5af3537e507fef892ffbf8c85", + "reference": "31f314153020aee5af3537e507fef892ffbf8c85", "shasum": "" }, "require": { @@ -5494,7 +5481,7 @@ "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "require-dev": { - "illuminate/cache": "^9.52|^10.0|^11.0", + "illuminate/cache": "^9.52|^10.0|^11.0|^12.0", "mockery/mockery": "^1.4", "pestphp/pest": "^1.20|^2.0", "phpstan/extension-installer": "^1.1", @@ -5551,27 +5538,27 @@ "type": "github" } ], - "time": "2024-06-12T14:55:22+00:00" + "time": "2025-02-21T14:31:39+00:00" }, { "name": "spatie/laravel-ignition", - "version": "2.9.0", + "version": "2.9.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "62042df15314b829d0f26e02108f559018e2aad0" + "reference": "1baee07216d6748ebd3a65ba97381b051838707a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/62042df15314b829d0f26e02108f559018e2aad0", - "reference": "62042df15314b829d0f26e02108f559018e2aad0", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/1baee07216d6748ebd3a65ba97381b051838707a", + "reference": "1baee07216d6748ebd3a65ba97381b051838707a", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", - "illuminate/support": "^10.0|^11.0", + "illuminate/support": "^10.0|^11.0|^12.0", "php": "^8.1", "spatie/ignition": "^1.15", "symfony/console": "^6.2.3|^7.0", @@ -5580,12 +5567,12 @@ "require-dev": { "livewire/livewire": "^2.11|^3.3.5", "mockery/mockery": "^1.5.1", - "openai-php/client": "^0.8.1", - "orchestra/testbench": "8.22.3|^9.0", - "pestphp/pest": "^2.34", + "openai-php/client": "^0.8.1|^0.10", + "orchestra/testbench": "8.22.3|^9.0|^10.0", + "pestphp/pest": "^2.34|^3.7", "phpstan/extension-installer": "^1.3.1", - "phpstan/phpstan-deprecation-rules": "^1.1.1", - "phpstan/phpstan-phpunit": "^1.3.16", + "phpstan/phpstan-deprecation-rules": "^1.1.1|^2.0", + "phpstan/phpstan-phpunit": "^1.3.16|^2.0", "vlucas/phpdotenv": "^5.5" }, "suggest": { @@ -5642,7 +5629,7 @@ "type": "github" } ], - "time": "2024-12-02T08:43:31+00:00" + "time": "2025-02-20T13:13:55+00:00" }, { "name": "spomky-labs/cbor-php", @@ -5912,16 +5899,16 @@ }, { "name": "symfony/console", - "version": "v7.2.1", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3" + "reference": "e51498ea18570c062e7df29d05a7003585b19b88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/fefcc18c0f5d0efe3ab3152f15857298868dc2c3", - "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3", + "url": "https://api.github.com/repos/symfony/console/zipball/e51498ea18570c062e7df29d05a7003585b19b88", + "reference": "e51498ea18570c062e7df29d05a7003585b19b88", "shasum": "" }, "require": { @@ -5985,7 +5972,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.2.1" + "source": "https://github.com/symfony/console/tree/v7.2.5" }, "funding": [ { @@ -6001,7 +5988,7 @@ "type": "tidelift" } ], - "time": "2024-12-11T03:49:26+00:00" + "time": "2025-03-12T08:11:12+00:00" }, { "name": "symfony/css-selector", @@ -6137,16 +6124,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.2.1", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "6150b89186573046167796fa5f3f76601d5145f8" + "reference": "102be5e6a8e4f4f3eb3149bcbfa33a80d1ee374b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/6150b89186573046167796fa5f3f76601d5145f8", - "reference": "6150b89186573046167796fa5f3f76601d5145f8", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/102be5e6a8e4f4f3eb3149bcbfa33a80d1ee374b", + "reference": "102be5e6a8e4f4f3eb3149bcbfa33a80d1ee374b", "shasum": "" }, "require": { @@ -6192,7 +6179,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.2.1" + "source": "https://github.com/symfony/error-handler/tree/v7.2.5" }, "funding": [ { @@ -6208,7 +6195,7 @@ "type": "tidelift" } ], - "time": "2024-12-07T08:50:44+00:00" + "time": "2025-03-03T07:12:39+00:00" }, { "name": "symfony/event-dispatcher", @@ -6432,16 +6419,16 @@ }, { "name": "symfony/html-sanitizer", - "version": "v7.2.2", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/html-sanitizer.git", - "reference": "f6bc679b024e30f27e33815930a5b8b304c79813" + "reference": "91443febe34cfa5e8e00425f892e6316db95bc23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/f6bc679b024e30f27e33815930a5b8b304c79813", - "reference": "f6bc679b024e30f27e33815930a5b8b304c79813", + "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/91443febe34cfa5e8e00425f892e6316db95bc23", + "reference": "91443febe34cfa5e8e00425f892e6316db95bc23", "shasum": "" }, "require": { @@ -6481,7 +6468,7 @@ "sanitizer" ], "support": { - "source": "https://github.com/symfony/html-sanitizer/tree/v7.2.2" + "source": "https://github.com/symfony/html-sanitizer/tree/v7.2.3" }, "funding": [ { @@ -6497,20 +6484,20 @@ "type": "tidelift" } ], - "time": "2024-12-30T18:35:15+00:00" + "time": "2025-01-27T11:08:17+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.2.2", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "62d1a43796ca3fea3f83a8470dfe63a4af3bc588" + "reference": "371272aeb6286f8135e028ca535f8e4d6f114126" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/62d1a43796ca3fea3f83a8470dfe63a4af3bc588", - "reference": "62d1a43796ca3fea3f83a8470dfe63a4af3bc588", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/371272aeb6286f8135e028ca535f8e4d6f114126", + "reference": "371272aeb6286f8135e028ca535f8e4d6f114126", "shasum": "" }, "require": { @@ -6559,7 +6546,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.2.2" + "source": "https://github.com/symfony/http-foundation/tree/v7.2.5" }, "funding": [ { @@ -6575,20 +6562,20 @@ "type": "tidelift" } ], - "time": "2024-12-30T19:00:17+00:00" + "time": "2025-03-25T15:54:33+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.2.2", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "3c432966bd8c7ec7429663105f5a02d7e75b4306" + "reference": "b1fe91bc1fa454a806d3f98db4ba826eb9941a54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/3c432966bd8c7ec7429663105f5a02d7e75b4306", - "reference": "3c432966bd8c7ec7429663105f5a02d7e75b4306", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b1fe91bc1fa454a806d3f98db4ba826eb9941a54", + "reference": "b1fe91bc1fa454a806d3f98db4ba826eb9941a54", "shasum": "" }, "require": { @@ -6673,7 +6660,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.2.2" + "source": "https://github.com/symfony/http-kernel/tree/v7.2.5" }, "funding": [ { @@ -6689,20 +6676,20 @@ "type": "tidelift" } ], - "time": "2024-12-31T14:59:40+00:00" + "time": "2025-03-28T13:32:50+00:00" }, { "name": "symfony/mailer", - "version": "v7.2.0", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc" + "reference": "f3871b182c44997cf039f3b462af4a48fb85f9d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/e4d358702fb66e4c8a2af08e90e7271a62de39cc", - "reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc", + "url": "https://api.github.com/repos/symfony/mailer/zipball/f3871b182c44997cf039f3b462af4a48fb85f9d3", + "reference": "f3871b182c44997cf039f3b462af4a48fb85f9d3", "shasum": "" }, "require": { @@ -6753,7 +6740,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.2.0" + "source": "https://github.com/symfony/mailer/tree/v7.2.3" }, "funding": [ { @@ -6769,20 +6756,20 @@ "type": "tidelift" } ], - "time": "2024-11-25T15:21:05+00:00" + "time": "2025-01-27T11:08:17+00:00" }, { "name": "symfony/mime", - "version": "v7.2.1", + "version": "v7.2.4", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283" + "reference": "87ca22046b78c3feaff04b337f33b38510fd686b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/7f9617fcf15cb61be30f8b252695ed5e2bfac283", - "reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283", + "url": "https://api.github.com/repos/symfony/mime/zipball/87ca22046b78c3feaff04b337f33b38510fd686b", + "reference": "87ca22046b78c3feaff04b337f33b38510fd686b", "shasum": "" }, "require": { @@ -6837,7 +6824,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.2.1" + "source": "https://github.com/symfony/mime/tree/v7.2.4" }, "funding": [ { @@ -6853,7 +6840,7 @@ "type": "tidelift" } ], - "time": "2024-12-07T08:50:44+00:00" + "time": "2025-02-19T08:51:20+00:00" }, { "name": "symfony/polyfill-ctype", @@ -7493,16 +7480,16 @@ }, { "name": "symfony/process", - "version": "v7.2.0", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e" + "reference": "87b7c93e57df9d8e39a093d32587702380ff045d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", - "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", + "url": "https://api.github.com/repos/symfony/process/zipball/87b7c93e57df9d8e39a093d32587702380ff045d", + "reference": "87b7c93e57df9d8e39a093d32587702380ff045d", "shasum": "" }, "require": { @@ -7534,7 +7521,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.2.0" + "source": "https://github.com/symfony/process/tree/v7.2.5" }, "funding": [ { @@ -7550,20 +7537,20 @@ "type": "tidelift" } ], - "time": "2024-11-06T14:24:19+00:00" + "time": "2025-03-13T12:21:46+00:00" }, { "name": "symfony/property-access", - "version": "v7.2.0", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "3ae42efba01e45aaedecf5c93c8d6a3ab3a82276" + "reference": "b28732e315d81fbec787f838034de7d6c9b2b902" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/3ae42efba01e45aaedecf5c93c8d6a3ab3a82276", - "reference": "3ae42efba01e45aaedecf5c93c8d6a3ab3a82276", + "url": "https://api.github.com/repos/symfony/property-access/zipball/b28732e315d81fbec787f838034de7d6c9b2b902", + "reference": "b28732e315d81fbec787f838034de7d6c9b2b902", "shasum": "" }, "require": { @@ -7610,7 +7597,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v7.2.0" + "source": "https://github.com/symfony/property-access/tree/v7.2.3" }, "funding": [ { @@ -7626,20 +7613,20 @@ "type": "tidelift" } ], - "time": "2024-09-26T12:28:35+00:00" + "time": "2025-01-17T10:56:55+00:00" }, { "name": "symfony/property-info", - "version": "v7.2.2", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "1dfeb0dac7a99f7b3be42db9ccc299c5a6483fcf" + "reference": "f00fd9685ecdbabe82ca25c7b739ce7bba99302c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/1dfeb0dac7a99f7b3be42db9ccc299c5a6483fcf", - "reference": "1dfeb0dac7a99f7b3be42db9ccc299c5a6483fcf", + "url": "https://api.github.com/repos/symfony/property-info/zipball/f00fd9685ecdbabe82ca25c7b739ce7bba99302c", + "reference": "f00fd9685ecdbabe82ca25c7b739ce7bba99302c", "shasum": "" }, "require": { @@ -7650,7 +7637,9 @@ "conflict": { "phpdocumentor/reflection-docblock": "<5.2", "phpdocumentor/type-resolver": "<1.5.1", - "symfony/dependency-injection": "<6.4" + "symfony/cache": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/serializer": "<6.4" }, "require-dev": { "phpdocumentor/reflection-docblock": "^5.2", @@ -7693,7 +7682,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v7.2.2" + "source": "https://github.com/symfony/property-info/tree/v7.2.5" }, "funding": [ { @@ -7709,20 +7698,20 @@ "type": "tidelift" } ], - "time": "2024-12-31T11:04:50+00:00" + "time": "2025-03-06T16:27:19+00:00" }, { "name": "symfony/routing", - "version": "v7.2.0", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e" + "reference": "ee9a67edc6baa33e5fae662f94f91fd262930996" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/e10a2450fa957af6c448b9b93c9010a4e4c0725e", - "reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e", + "url": "https://api.github.com/repos/symfony/routing/zipball/ee9a67edc6baa33e5fae662f94f91fd262930996", + "reference": "ee9a67edc6baa33e5fae662f94f91fd262930996", "shasum": "" }, "require": { @@ -7774,7 +7763,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.2.0" + "source": "https://github.com/symfony/routing/tree/v7.2.3" }, "funding": [ { @@ -7790,20 +7779,20 @@ "type": "tidelift" } ], - "time": "2024-11-25T11:08:51+00:00" + "time": "2025-01-17T10:56:55+00:00" }, { "name": "symfony/serializer", - "version": "v7.2.0", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "3f5ed9f5e6c02e3853109190ba38408f5e1d2dd0" + "reference": "d8b75b2c8144c29ac43b235738411f7cca6d584d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/3f5ed9f5e6c02e3853109190ba38408f5e1d2dd0", - "reference": "3f5ed9f5e6c02e3853109190ba38408f5e1d2dd0", + "url": "https://api.github.com/repos/symfony/serializer/zipball/d8b75b2c8144c29ac43b235738411f7cca6d584d", + "reference": "d8b75b2c8144c29ac43b235738411f7cca6d584d", "shasum": "" }, "require": { @@ -7872,7 +7861,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v7.2.0" + "source": "https://github.com/symfony/serializer/tree/v7.2.5" }, "funding": [ { @@ -7888,7 +7877,7 @@ "type": "tidelift" } ], - "time": "2024-11-25T15:21:05+00:00" + "time": "2025-03-24T12:37:32+00:00" }, { "name": "symfony/service-contracts", @@ -8062,16 +8051,16 @@ }, { "name": "symfony/translation", - "version": "v7.2.2", + "version": "v7.2.4", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "e2674a30132b7cc4d74540d6c2573aa363f05923" + "reference": "283856e6981286cc0d800b53bd5703e8e363f05a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/e2674a30132b7cc4d74540d6c2573aa363f05923", - "reference": "e2674a30132b7cc4d74540d6c2573aa363f05923", + "url": "https://api.github.com/repos/symfony/translation/zipball/283856e6981286cc0d800b53bd5703e8e363f05a", + "reference": "283856e6981286cc0d800b53bd5703e8e363f05a", "shasum": "" }, "require": { @@ -8137,7 +8126,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.2.2" + "source": "https://github.com/symfony/translation/tree/v7.2.4" }, "funding": [ { @@ -8153,7 +8142,7 @@ "type": "tidelift" } ], - "time": "2024-12-07T08:18:10+00:00" + "time": "2025-02-13T10:27:23+00:00" }, { "name": "symfony/translation-contracts", @@ -8235,16 +8224,16 @@ }, { "name": "symfony/type-info", - "version": "v7.2.2", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/type-info.git", - "reference": "3b5a17470fff0034f25fd4287cbdaa0010d2f749" + "reference": "c4824a6b658294c828e609d3d8dbb4e87f6a375d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/type-info/zipball/3b5a17470fff0034f25fd4287cbdaa0010d2f749", - "reference": "3b5a17470fff0034f25fd4287cbdaa0010d2f749", + "url": "https://api.github.com/repos/symfony/type-info/zipball/c4824a6b658294c828e609d3d8dbb4e87f6a375d", + "reference": "c4824a6b658294c828e609d3d8dbb4e87f6a375d", "shasum": "" }, "require": { @@ -8290,7 +8279,7 @@ "type" ], "support": { - "source": "https://github.com/symfony/type-info/tree/v7.2.2" + "source": "https://github.com/symfony/type-info/tree/v7.2.5" }, "funding": [ { @@ -8306,7 +8295,7 @@ "type": "tidelift" } ], - "time": "2024-12-20T13:38:37+00:00" + "time": "2025-03-24T09:03:36+00:00" }, { "name": "symfony/uid", @@ -8384,16 +8373,16 @@ }, { "name": "symfony/var-dumper", - "version": "v7.2.0", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c" + "reference": "82b478c69745d8878eb60f9a049a4d584996f73a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c6a22929407dec8765d6e2b6ff85b800b245879c", - "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/82b478c69745d8878eb60f9a049a4d584996f73a", + "reference": "82b478c69745d8878eb60f9a049a4d584996f73a", "shasum": "" }, "require": { @@ -8447,7 +8436,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.2.0" + "source": "https://github.com/symfony/var-dumper/tree/v7.2.3" }, "funding": [ { @@ -8463,7 +8452,7 @@ "type": "tidelift" } ], - "time": "2024-11-08T15:48:14+00:00" + "time": "2025-01-17T11:39:41+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -8762,16 +8751,16 @@ }, { "name": "web-auth/webauthn-lib", - "version": "5.1.1", + "version": "5.2.2", "source": { "type": "git", "url": "https://github.com/web-auth/webauthn-lib.git", - "reference": "6b95b2b3902d943796c3c2bac2dd14af9d031fc2" + "reference": "8937c397c8ae91b5af422ca8aa915c756062da74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/web-auth/webauthn-lib/zipball/6b95b2b3902d943796c3c2bac2dd14af9d031fc2", - "reference": "6b95b2b3902d943796c3c2bac2dd14af9d031fc2", + "url": "https://api.github.com/repos/web-auth/webauthn-lib/zipball/8937c397c8ae91b5af422ca8aa915c756062da74", + "reference": "8937c397c8ae91b5af422ca8aa915c756062da74", "shasum": "" }, "require": { @@ -8832,7 +8821,7 @@ "webauthn" ], "support": { - "source": "https://github.com/web-auth/webauthn-lib/tree/5.1.1" + "source": "https://github.com/web-auth/webauthn-lib/tree/5.2.2" }, "funding": [ { @@ -8844,7 +8833,7 @@ "type": "patreon" } ], - "time": "2025-01-03T23:01:20+00:00" + "time": "2025-03-16T14:38:43+00:00" }, { "name": "webmozart/assert", @@ -8906,192 +8895,35 @@ } ], "packages-dev": [ - { - "name": "amphp/amp", - "version": "v2.6.4", - "source": { - "type": "git", - "url": "https://github.com/amphp/amp.git", - "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", - "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1", - "ext-json": "*", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^7 | ^8 | ^9", - "react/promise": "^2", - "vimeo/psalm": "^3.12" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "files": [ - "lib/functions.php", - "lib/Internal/functions.php" - ], - "psr-4": { - "Amp\\": "lib" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Daniel Lowrey", - "email": "rdlowrey@php.net" - }, - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Bob Weinand", - "email": "bobwei9@hotmail.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - } - ], - "description": "A non-blocking concurrency framework for PHP applications.", - "homepage": "https://amphp.org/amp", - "keywords": [ - "async", - "asynchronous", - "awaitable", - "concurrency", - "event", - "event-loop", - "future", - "non-blocking", - "promise" - ], - "support": { - "irc": "irc://irc.freenode.org/amphp", - "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.6.4" - }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2024-03-21T18:52:26+00:00" - }, - { - "name": "amphp/byte-stream", - "version": "v1.8.2", - "source": { - "type": "git", - "url": "https://github.com/amphp/byte-stream.git", - "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/4f0e968ba3798a423730f567b1b50d3441c16ddc", - "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc", - "shasum": "" - }, - "require": { - "amphp/amp": "^2", - "php": ">=7.1" - }, - "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1.4", - "friendsofphp/php-cs-fixer": "^2.3", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^6 || ^7 || ^8", - "psalm/phar": "^3.11.4" - }, - "type": "library", - "autoload": { - "files": [ - "lib/functions.php" - ], - "psr-4": { - "Amp\\ByteStream\\": "lib" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - } - ], - "description": "A stream abstraction to make working with non-blocking I/O simple.", - "homepage": "https://amphp.org/byte-stream", - "keywords": [ - "amp", - "amphp", - "async", - "io", - "non-blocking", - "stream" - ], - "support": { - "issues": "https://github.com/amphp/byte-stream/issues", - "source": "https://github.com/amphp/byte-stream/tree/v1.8.2" - }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2024-04-13T18:00:56+00:00" - }, { "name": "barryvdh/laravel-debugbar", - "version": "v3.14.10", + "version": "v3.15.2", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-debugbar.git", - "reference": "56b9bd235e3fe62e250124804009ce5bab97cc63" + "reference": "0bc1e1361e7fffc2be156f46ad1fba6927c01729" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/56b9bd235e3fe62e250124804009ce5bab97cc63", - "reference": "56b9bd235e3fe62e250124804009ce5bab97cc63", + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/0bc1e1361e7fffc2be156f46ad1fba6927c01729", + "reference": "0bc1e1361e7fffc2be156f46ad1fba6927c01729", "shasum": "" }, "require": { - "illuminate/routing": "^9|^10|^11", - "illuminate/session": "^9|^10|^11", - "illuminate/support": "^9|^10|^11", - "maximebf/debugbar": "~1.23.0", - "php": "^8.0", + "illuminate/routing": "^9|^10|^11|^12", + "illuminate/session": "^9|^10|^11|^12", + "illuminate/support": "^9|^10|^11|^12", + "php": "^8.1", + "php-debugbar/php-debugbar": "~2.1.1", "symfony/finder": "^6|^7" }, + "conflict": { + "maximebf/debugbar": "*" + }, "require-dev": { "mockery/mockery": "^1.3.3", - "orchestra/testbench-dusk": "^5|^6|^7|^8|^9", - "phpunit/phpunit": "^9.6|^10.5", + "orchestra/testbench-dusk": "^7|^8|^9|^10", + "phpunit/phpunit": "^9.5.10|^10|^11", "squizlabs/php_codesniffer": "^3.5" }, "type": "library", @@ -9105,7 +8937,7 @@ ] }, "branch-alias": { - "dev-master": "3.14-dev" + "dev-master": "3.15-dev" } }, "autoload": { @@ -9130,13 +8962,14 @@ "keywords": [ "debug", "debugbar", + "dev", "laravel", "profiler", "webprofiler" ], "support": { "issues": "https://github.com/barryvdh/laravel-debugbar/issues", - "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.14.10" + "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.15.2" }, "funding": [ { @@ -9148,40 +8981,40 @@ "type": "github" } ], - "time": "2024-12-23T10:10:42+00:00" + "time": "2025-02-25T15:25:22+00:00" }, { "name": "barryvdh/laravel-ide-helper", - "version": "v3.5.4", + "version": "v3.5.5", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-ide-helper.git", - "reference": "980a87e250fc2a7558bc46e07f61c7594500ea53" + "reference": "8d441ec99f8612b942b55f5183151d91591b618a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/980a87e250fc2a7558bc46e07f61c7594500ea53", - "reference": "980a87e250fc2a7558bc46e07f61c7594500ea53", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/8d441ec99f8612b942b55f5183151d91591b618a", + "reference": "8d441ec99f8612b942b55f5183151d91591b618a", "shasum": "" }, "require": { "barryvdh/reflection-docblock": "^2.3", "composer/class-map-generator": "^1.0", "ext-json": "*", - "illuminate/console": "^11.15", - "illuminate/database": "^11.15", - "illuminate/filesystem": "^11.15", - "illuminate/support": "^11.15", + "illuminate/console": "^11.15 || ^12", + "illuminate/database": "^11.15 || ^12", + "illuminate/filesystem": "^11.15 || ^12", + "illuminate/support": "^11.15 || ^12", "php": "^8.2" }, "require-dev": { "ext-pdo_sqlite": "*", "friendsofphp/php-cs-fixer": "^3", - "illuminate/config": "^11.15", - "illuminate/view": "^11.15", + "illuminate/config": "^11.15 || ^12", + "illuminate/view": "^11.15 || ^12", "mockery/mockery": "^1.4", - "orchestra/testbench": "^9.2", - "phpunit/phpunit": "^10.5", + "orchestra/testbench": "^9.2 || ^10", + "phpunit/phpunit": "^10.5 || ^11.5.3", "spatie/phpunit-snapshot-assertions": "^4 || ^5", "vimeo/psalm": "^5.4", "vlucas/phpdotenv": "^5" @@ -9230,7 +9063,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-ide-helper/issues", - "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v3.5.4" + "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v3.5.5" }, "funding": [ { @@ -9242,7 +9075,7 @@ "type": "github" } ], - "time": "2025-01-14T09:07:00+00:00" + "time": "2025-02-11T13:59:46+00:00" }, { "name": "barryvdh/reflection-docblock", @@ -9298,16 +9131,16 @@ }, { "name": "composer/class-map-generator", - "version": "1.5.0", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/composer/class-map-generator.git", - "reference": "4b0a223cf5be7c9ee7e0ef1bc7db42b4a97c9915" + "reference": "134b705ddb0025d397d8318a75825fe3c9d1da34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/4b0a223cf5be7c9ee7e0ef1bc7db42b4a97c9915", - "reference": "4b0a223cf5be7c9ee7e0ef1bc7db42b4a97c9915", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/134b705ddb0025d397d8318a75825fe3c9d1da34", + "reference": "134b705ddb0025d397d8318a75825fe3c9d1da34", "shasum": "" }, "require": { @@ -9351,7 +9184,7 @@ ], "support": { "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.5.0" + "source": "https://github.com/composer/class-map-generator/tree/1.6.1" }, "funding": [ { @@ -9367,7 +9200,7 @@ "type": "tidelift" } ], - "time": "2024-11-25T16:11:06+00:00" + "time": "2025-03-24T13:50:44+00:00" }, { "name": "composer/pcre", @@ -9448,190 +9281,6 @@ ], "time": "2024-11-12T16:29:46+00:00" }, - { - "name": "composer/semver", - "version": "3.4.3", - "source": { - "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", - "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.11", - "symfony/phpunit-bridge": "^3 || ^7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Semver\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", - "keywords": [ - "semantic", - "semver", - "validation", - "versioning" - ], - "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.3" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2024-09-19T14:15:21+00:00" - }, - { - "name": "composer/xdebug-handler", - "version": "3.0.5", - "source": { - "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", - "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", - "shasum": "" - }, - "require": { - "composer/pcre": "^1 || ^2 || ^3", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1 || ^2 || ^3" - }, - "require-dev": { - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1", - "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Composer\\XdebugHandler\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" - } - ], - "description": "Restarts a process without Xdebug.", - "keywords": [ - "Xdebug", - "performance" - ], - "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2024-05-06T16:37:16+00:00" - }, - { - "name": "dnoegel/php-xdg-base-dir", - "version": "v0.1.1", - "source": { - "type": "git", - "url": "https://github.com/dnoegel/php-xdg-base-dir.git", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" - }, - "type": "library", - "autoload": { - "psr-4": { - "XdgBaseDir\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "implementation of xdg base directory specification for php", - "support": { - "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", - "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" - }, - "time": "2019-12-04T15:06:13+00:00" - }, { "name": "fakerphp/faker", "version": "v1.24.1", @@ -9695,180 +9344,18 @@ }, "time": "2024-11-21T13:46:39+00:00" }, - { - "name": "felixfbecker/advanced-json-rpc", - "version": "v3.2.1", - "source": { - "type": "git", - "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", - "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447", - "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447", - "shasum": "" - }, - "require": { - "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "php": "^7.1 || ^8.0", - "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" - }, - "require-dev": { - "phpunit/phpunit": "^7.0 || ^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "AdvancedJsonRpc\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "ISC" - ], - "authors": [ - { - "name": "Felix Becker", - "email": "felix.b@outlook.com" - } - ], - "description": "A more advanced JSONRPC implementation", - "support": { - "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", - "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1" - }, - "time": "2021-06-11T22:34:44+00:00" - }, - { - "name": "felixfbecker/language-server-protocol", - "version": "v1.5.3", - "source": { - "type": "git", - "url": "https://github.com/felixfbecker/php-language-server-protocol.git", - "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9", - "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpstan/phpstan": "*", - "squizlabs/php_codesniffer": "^3.1", - "vimeo/psalm": "^4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "LanguageServerProtocol\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "ISC" - ], - "authors": [ - { - "name": "Felix Becker", - "email": "felix.b@outlook.com" - } - ], - "description": "PHP classes for the Language Server Protocol", - "keywords": [ - "language", - "microsoft", - "php", - "server" - ], - "support": { - "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", - "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3" - }, - "time": "2024-04-30T00:40:11+00:00" - }, - { - "name": "fidry/cpu-core-counter", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "8520451a140d3f46ac33042715115e290cf5785f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f", - "reference": "8520451a140d3f46ac33042715115e290cf5785f", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "fidry/makefile": "^0.2.0", - "fidry/php-cs-fixer-config": "^1.1.2", - "phpstan/extension-installer": "^1.2.0", - "phpstan/phpstan": "^1.9.2", - "phpstan/phpstan-deprecation-rules": "^1.0.0", - "phpstan/phpstan-phpunit": "^1.2.2", - "phpstan/phpstan-strict-rules": "^1.4.4", - "phpunit/phpunit": "^8.5.31 || ^9.5.26", - "webmozarts/strict-phpunit": "^7.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Fidry\\CpuCoreCounter\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Théo FIDRY", - "email": "theo.fidry@gmail.com" - } - ], - "description": "Tiny utility to get the number of CPU cores.", - "keywords": [ - "CPU", - "core" - ], - "support": { - "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0" - }, - "funding": [ - { - "url": "https://github.com/theofidry", - "type": "github" - } - ], - "time": "2024-08-06T10:04:20+00:00" - }, { "name": "filp/whoops", - "version": "2.16.0", + "version": "2.18.0", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "befcdc0e5dce67252aa6322d82424be928214fa2" + "reference": "a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/befcdc0e5dce67252aa6322d82424be928214fa2", - "reference": "befcdc0e5dce67252aa6322d82424be928214fa2", + "url": "https://api.github.com/repos/filp/whoops/zipball/a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e", + "reference": "a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e", "shasum": "" }, "require": { @@ -9918,7 +9405,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.16.0" + "source": "https://github.com/filp/whoops/tree/2.18.0" }, "funding": [ { @@ -9926,7 +9413,7 @@ "type": "github" } ], - "time": "2024-09-25T12:00:00+00:00" + "time": "2025-03-15T12:00:00+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -9981,24 +9468,24 @@ }, { "name": "laravel/dusk", - "version": "v8.2.13", + "version": "v8.3.2", "source": { "type": "git", "url": "https://github.com/laravel/dusk.git", - "reference": "8ddd53a74c2e6f9c3b68cf8189dad44077b585b0" + "reference": "bb701836357bf6f6c6658ef90b5a0f8232affb0f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/dusk/zipball/8ddd53a74c2e6f9c3b68cf8189dad44077b585b0", - "reference": "8ddd53a74c2e6f9c3b68cf8189dad44077b585b0", + "url": "https://api.github.com/repos/laravel/dusk/zipball/bb701836357bf6f6c6658ef90b5a0f8232affb0f", + "reference": "bb701836357bf6f6c6658ef90b5a0f8232affb0f", "shasum": "" }, "require": { "ext-json": "*", "ext-zip": "*", "guzzlehttp/guzzle": "^7.5", - "illuminate/console": "^10.0|^11.0", - "illuminate/support": "^10.0|^11.0", + "illuminate/console": "^10.0|^11.0|^12.0", + "illuminate/support": "^10.0|^11.0|^12.0", "php": "^8.1", "php-webdriver/webdriver": "^1.15.2", "symfony/console": "^6.2|^7.0", @@ -10007,11 +9494,13 @@ "vlucas/phpdotenv": "^5.2" }, "require-dev": { + "laravel/framework": "^10.0|^11.0|^12.0", "mockery/mockery": "^1.6", - "orchestra/testbench": "^8.19|^9.0", + "orchestra/testbench-core": "^8.19|^9.0|^10.0", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^10.1|^11.0", - "psy/psysh": "^0.11.12|^0.12" + "phpunit/phpunit": "^10.1|^11.0|^12.0.1", + "psy/psysh": "^0.11.12|^0.12", + "symfony/yaml": "^6.2|^7.0" }, "suggest": { "ext-pcntl": "Used to gracefully terminate Dusk when tests are running." @@ -10047,41 +9536,41 @@ ], "support": { "issues": "https://github.com/laravel/dusk/issues", - "source": "https://github.com/laravel/dusk/tree/v8.2.13" + "source": "https://github.com/laravel/dusk/tree/v8.3.2" }, - "time": "2025-01-06T14:52:17+00:00" + "time": "2025-02-20T14:42:00+00:00" }, { "name": "laravel/pail", - "version": "v1.2.1", + "version": "v1.2.2", "source": { "type": "git", "url": "https://github.com/laravel/pail.git", - "reference": "353ac12134b98e2e7c3333d916bd3e523931e583" + "reference": "f31f4980f52be17c4667f3eafe034e6826787db2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pail/zipball/353ac12134b98e2e7c3333d916bd3e523931e583", - "reference": "353ac12134b98e2e7c3333d916bd3e523931e583", + "url": "https://api.github.com/repos/laravel/pail/zipball/f31f4980f52be17c4667f3eafe034e6826787db2", + "reference": "f31f4980f52be17c4667f3eafe034e6826787db2", "shasum": "" }, "require": { "ext-mbstring": "*", - "illuminate/console": "^10.24|^11.0", - "illuminate/contracts": "^10.24|^11.0", - "illuminate/log": "^10.24|^11.0", - "illuminate/process": "^10.24|^11.0", - "illuminate/support": "^10.24|^11.0", + "illuminate/console": "^10.24|^11.0|^12.0", + "illuminate/contracts": "^10.24|^11.0|^12.0", + "illuminate/log": "^10.24|^11.0|^12.0", + "illuminate/process": "^10.24|^11.0|^12.0", + "illuminate/support": "^10.24|^11.0|^12.0", "nunomaduro/termwind": "^1.15|^2.0", "php": "^8.2", "symfony/console": "^6.0|^7.0" }, "require-dev": { - "laravel/framework": "^10.24|^11.0", + "laravel/framework": "^10.24|^11.0|^12.0", "laravel/pint": "^1.13", - "orchestra/testbench-core": "^8.12|^9.0", - "pestphp/pest": "^2.20", - "pestphp/pest-plugin-type-coverage": "^2.3", + "orchestra/testbench-core": "^8.13|^9.0|^10.0", + "pestphp/pest": "^2.20|^3.0", + "pestphp/pest-plugin-type-coverage": "^2.3|^3.0", "phpstan/phpstan": "^1.10", "symfony/var-dumper": "^6.3|^7.0" }, @@ -10127,20 +9616,20 @@ "issues": "https://github.com/laravel/pail/issues", "source": "https://github.com/laravel/pail" }, - "time": "2024-10-23T12:56:23+00:00" + "time": "2025-01-28T15:15:15+00:00" }, { "name": "laravel/pint", - "version": "v1.20.0", + "version": "v1.21.2", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "53072e8ea22213a7ed168a8a15b96fbb8b82d44b" + "reference": "370772e7d9e9da087678a0edf2b11b6960e40558" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/53072e8ea22213a7ed168a8a15b96fbb8b82d44b", - "reference": "53072e8ea22213a7ed168a8a15b96fbb8b82d44b", + "url": "https://api.github.com/repos/laravel/pint/zipball/370772e7d9e9da087678a0edf2b11b6960e40558", + "reference": "370772e7d9e9da087678a0edf2b11b6960e40558", "shasum": "" }, "require": { @@ -10148,15 +9637,15 @@ "ext-mbstring": "*", "ext-tokenizer": "*", "ext-xml": "*", - "php": "^8.1.0" + "php": "^8.2.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.66.0", - "illuminate/view": "^10.48.25", - "larastan/larastan": "^2.9.12", - "laravel-zero/framework": "^10.48.25", + "friendsofphp/php-cs-fixer": "^3.72.0", + "illuminate/view": "^11.44.2", + "larastan/larastan": "^3.2.0", + "laravel-zero/framework": "^11.36.1", "mockery/mockery": "^1.6.12", - "nunomaduro/termwind": "^1.17.0", + "nunomaduro/termwind": "^2.3", "pestphp/pest": "^2.36.0" }, "bin": [ @@ -10193,32 +9682,32 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2025-01-14T16:20:53+00:00" + "time": "2025-03-14T22:31:42+00:00" }, { "name": "laravel/sail", - "version": "v1.40.0", + "version": "v1.41.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "237e70656d8eface4839de51d101284bd5d0cf71" + "reference": "fe1a4ada0abb5e4bd99eb4e4b0d87906c00cdeec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/237e70656d8eface4839de51d101284bd5d0cf71", - "reference": "237e70656d8eface4839de51d101284bd5d0cf71", + "url": "https://api.github.com/repos/laravel/sail/zipball/fe1a4ada0abb5e4bd99eb4e4b0d87906c00cdeec", + "reference": "fe1a4ada0abb5e4bd99eb4e4b0d87906c00cdeec", "shasum": "" }, "require": { - "illuminate/console": "^9.52.16|^10.0|^11.0", - "illuminate/contracts": "^9.52.16|^10.0|^11.0", - "illuminate/support": "^9.52.16|^10.0|^11.0", + "illuminate/console": "^9.52.16|^10.0|^11.0|^12.0", + "illuminate/contracts": "^9.52.16|^10.0|^11.0|^12.0", + "illuminate/support": "^9.52.16|^10.0|^11.0|^12.0", "php": "^8.0", "symfony/console": "^6.0|^7.0", "symfony/yaml": "^6.0|^7.0" }, "require-dev": { - "orchestra/testbench": "^7.0|^8.0|^9.0", + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", "phpstan/phpstan": "^1.10" }, "bin": [ @@ -10256,75 +9745,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2025-01-13T16:57:11+00:00" - }, - { - "name": "maximebf/debugbar", - "version": "v1.23.5", - "source": { - "type": "git", - "url": "https://github.com/php-debugbar/php-debugbar.git", - "reference": "eeabd61a1f19ba5dcd5ac4585a477130ee03ce25" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/eeabd61a1f19ba5dcd5ac4585a477130ee03ce25", - "reference": "eeabd61a1f19ba5dcd5ac4585a477130ee03ce25", - "shasum": "" - }, - "require": { - "php": "^7.2|^8", - "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^4|^5|^6|^7" - }, - "require-dev": { - "dbrekelmans/bdi": "^1", - "phpunit/phpunit": "^8|^9", - "symfony/panther": "^1|^2.1", - "twig/twig": "^1.38|^2.7|^3.0" - }, - "suggest": { - "kriswallsmith/assetic": "The best way to manage assets", - "monolog/monolog": "Log using Monolog", - "predis/predis": "Redis storage" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.23-dev" - } - }, - "autoload": { - "psr-4": { - "DebugBar\\": "src/DebugBar/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Maxime Bouroumeau-Fuseau", - "email": "maxime.bouroumeau@gmail.com", - "homepage": "http://maximebf.com" - }, - { - "name": "Barry vd. Heuvel", - "email": "barryvdh@gmail.com" - } - ], - "description": "Debug bar in the browser for php application", - "homepage": "https://github.com/maximebf/php-debugbar", - "keywords": [ - "debug", - "debugbar" - ], - "support": { - "issues": "https://github.com/php-debugbar/php-debugbar/issues", - "source": "https://github.com/php-debugbar/php-debugbar/tree/v1.23.5" - }, - "time": "2024-12-15T19:20:42+00:00" + "time": "2025-01-24T15:45:36+00:00" }, { "name": "mockery/mockery", @@ -10411,16 +9832,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.12.1", + "version": "1.13.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845" + "reference": "024473a478be9df5fdaca2c793f2232fe788e414" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845", - "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/024473a478be9df5fdaca2c793f2232fe788e414", + "reference": "024473a478be9df5fdaca2c793f2232fe788e414", "shasum": "" }, "require": { @@ -10459,7 +9880,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.0" }, "funding": [ { @@ -10467,92 +9888,41 @@ "type": "tidelift" } ], - "time": "2024-11-08T17:47:46+00:00" - }, - { - "name": "netresearch/jsonmapper", - "version": "v4.5.0", - "source": { - "type": "git", - "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8e76efb98ee8b6afc54687045e1b8dba55ac76e5", - "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0", - "squizlabs/php_codesniffer": "~3.5" - }, - "type": "library", - "autoload": { - "psr-0": { - "JsonMapper": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "OSL-3.0" - ], - "authors": [ - { - "name": "Christian Weiske", - "email": "cweiske@cweiske.de", - "homepage": "http://github.com/cweiske/jsonmapper/", - "role": "Developer" - } - ], - "description": "Map nested JSON structures onto PHP classes", - "support": { - "email": "cweiske@cweiske.de", - "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.5.0" - }, - "time": "2024-09-08T10:13:13+00:00" + "time": "2025-02-12T12:17:51+00:00" }, { "name": "nunomaduro/collision", - "version": "v8.5.0", + "version": "v8.7.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "f5c101b929c958e849a633283adff296ed5f38f5" + "reference": "586cb8181a257a2152b6a855ca8d9598878a1a26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/f5c101b929c958e849a633283adff296ed5f38f5", - "reference": "f5c101b929c958e849a633283adff296ed5f38f5", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/586cb8181a257a2152b6a855ca8d9598878a1a26", + "reference": "586cb8181a257a2152b6a855ca8d9598878a1a26", "shasum": "" }, "require": { - "filp/whoops": "^2.16.0", - "nunomaduro/termwind": "^2.1.0", + "filp/whoops": "^2.17.0", + "nunomaduro/termwind": "^2.3.0", "php": "^8.2.0", - "symfony/console": "^7.1.5" + "symfony/console": "^7.2.1" }, "conflict": { - "laravel/framework": "<11.0.0 || >=12.0.0", - "phpunit/phpunit": "<10.5.1 || >=12.0.0" + "laravel/framework": "<11.39.1 || >=13.0.0", + "phpunit/phpunit": "<11.5.3 || >=12.0.0" }, "require-dev": { - "larastan/larastan": "^2.9.8", - "laravel/framework": "^11.28.0", - "laravel/pint": "^1.18.1", - "laravel/sail": "^1.36.0", - "laravel/sanctum": "^4.0.3", - "laravel/tinker": "^2.10.0", - "orchestra/testbench-core": "^9.5.3", - "pestphp/pest": "^2.36.0 || ^3.4.0", + "larastan/larastan": "^2.10.0", + "laravel/framework": "^11.44.2", + "laravel/pint": "^1.21.2", + "laravel/sail": "^1.41.0", + "laravel/sanctum": "^4.0.8", + "laravel/tinker": "^2.10.1", + "orchestra/testbench-core": "^9.12.0", + "pestphp/pest": "^3.7.4", "sebastian/environment": "^6.1.0 || ^7.2.0" }, "type": "library", @@ -10590,6 +9960,7 @@ "cli", "command-line", "console", + "dev", "error", "handling", "laravel", @@ -10615,7 +9986,7 @@ "type": "patreon" } ], - "time": "2024-10-15T16:06:32+00:00" + "time": "2025-03-14T22:37:40+00:00" }, { "name": "openai-php/client", @@ -10708,99 +10079,6 @@ ], "time": "2024-11-12T20:51:16+00:00" }, - { - "name": "orchestra/testbench-core", - "version": "v9.9.2", - "source": { - "type": "git", - "url": "https://github.com/orchestral/testbench-core.git", - "reference": "c7bcf7ab14fa09941278a7b1b731362db77e1745" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/c7bcf7ab14fa09941278a7b1b731362db77e1745", - "reference": "c7bcf7ab14fa09941278a7b1b731362db77e1745", - "shasum": "" - }, - "require": { - "composer-runtime-api": "^2.2", - "php": "^8.2", - "symfony/polyfill-php83": "^1.31", - "symfony/polyfill-php84": "^1.31" - }, - "conflict": { - "brianium/paratest": "<7.3.0 || >=8.0.0", - "laravel/framework": "<11.35.0 || >=12.0.0", - "laravel/serializable-closure": "<1.3.0 || >=3.0.0", - "nunomaduro/collision": "<8.0.0 || >=9.0.0", - "orchestra/testbench-dusk": "<9.10.0 || >=10.0.0", - "phpunit/phpunit": "<10.5.35 || >=11.0.0 <11.3.6 || >=11.6.0" - }, - "require-dev": { - "fakerphp/faker": "^1.24", - "laravel/framework": "^11.35.0", - "laravel/pint": "^1.17", - "laravel/serializable-closure": "^1.3 || ^2.0", - "mockery/mockery": "^1.6.10", - "phpstan/phpstan": "^2.0", - "phpunit/phpunit": "^10.5.35 || ^11.3.6", - "spatie/laravel-ray": "^1.39", - "symfony/process": "^7.0.3", - "symfony/yaml": "^7.0.3", - "vlucas/phpdotenv": "^5.6.1" - }, - "suggest": { - "brianium/paratest": "Allow using parallel testing (^7.3).", - "ext-pcntl": "Required to use all features of the console signal trapping.", - "fakerphp/faker": "Allow using Faker for testing (^1.23).", - "laravel/framework": "Required for testing (^11.35.0).", - "mockery/mockery": "Allow using Mockery for testing (^1.6).", - "nunomaduro/collision": "Allow using Laravel style tests output and parallel testing (^8.0).", - "orchestra/testbench-dusk": "Allow using Laravel Dusk for testing (^9.0).", - "phpunit/phpunit": "Allow using PHPUnit for testing (^10.5 || ^11.0).", - "symfony/process": "Required to use Orchestra\\Testbench\\remote function (^7.0).", - "symfony/yaml": "Required for Testbench CLI (^7.0).", - "vlucas/phpdotenv": "Required for Testbench CLI (^5.4.1)." - }, - "bin": [ - "testbench" - ], - "type": "library", - "autoload": { - "files": [ - "src/functions.php" - ], - "psr-4": { - "Orchestra\\Testbench\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mior Muhammad Zaki", - "email": "crynobone@gmail.com", - "homepage": "https://github.com/crynobone" - } - ], - "description": "Testing Helper for Laravel Development", - "homepage": "https://packages.tools/testbench", - "keywords": [ - "BDD", - "TDD", - "dev", - "laravel", - "laravel-packages", - "testing" - ], - "support": { - "issues": "https://github.com/orchestral/testbench/issues", - "source": "https://github.com/orchestral/testbench-core" - }, - "time": "2025-01-22T03:23:53+00:00" - }, { "name": "phar-io/manifest", "version": "2.0.4", @@ -10919,6 +10197,76 @@ }, "time": "2022-02-21T01:04:05+00:00" }, + { + "name": "php-debugbar/php-debugbar", + "version": "v2.1.6", + "source": { + "type": "git", + "url": "https://github.com/php-debugbar/php-debugbar.git", + "reference": "16fa68da5617220594aa5e33fa9de415f94784a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/16fa68da5617220594aa5e33fa9de415f94784a0", + "reference": "16fa68da5617220594aa5e33fa9de415f94784a0", + "shasum": "" + }, + "require": { + "php": "^8", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^4|^5|^6|^7" + }, + "require-dev": { + "dbrekelmans/bdi": "^1", + "phpunit/phpunit": "^8|^9", + "symfony/panther": "^1|^2.1", + "twig/twig": "^1.38|^2.7|^3.0" + }, + "suggest": { + "kriswallsmith/assetic": "The best way to manage assets", + "monolog/monolog": "Log using Monolog", + "predis/predis": "Redis storage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "DebugBar\\": "src/DebugBar/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Maxime Bouroumeau-Fuseau", + "email": "maxime.bouroumeau@gmail.com", + "homepage": "http://maximebf.com" + }, + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "Debug bar in the browser for php application", + "homepage": "https://github.com/php-debugbar/php-debugbar", + "keywords": [ + "debug", + "debug bar", + "debugbar", + "dev" + ], + "support": { + "issues": "https://github.com/php-debugbar/php-debugbar/issues", + "source": "https://github.com/php-debugbar/php-debugbar/tree/v2.1.6" + }, + "time": "2025-02-21T17:47:03+00:00" + }, { "name": "php-di/invoker", "version": "2.3.6", @@ -10976,20 +10324,20 @@ }, { "name": "php-di/php-di", - "version": "7.0.7", + "version": "7.0.9", "source": { "type": "git", "url": "https://github.com/PHP-DI/PHP-DI.git", - "reference": "e87435e3c0e8f22977adc5af0d5cdcc467e15cf1" + "reference": "d8480267f5cf239650debba704f3ecd15b638cde" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/e87435e3c0e8f22977adc5af0d5cdcc467e15cf1", - "reference": "e87435e3c0e8f22977adc5af0d5cdcc467e15cf1", + "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/d8480267f5cf239650debba704f3ecd15b638cde", + "reference": "d8480267f5cf239650debba704f3ecd15b638cde", "shasum": "" }, "require": { - "laravel/serializable-closure": "^1.0", + "laravel/serializable-closure": "^1.0 || ^2.0", "php": ">=8.0", "php-di/invoker": "^2.0", "psr/container": "^1.1 || ^2.0" @@ -11001,8 +10349,8 @@ "friendsofphp/php-cs-fixer": "^3", "friendsofphp/proxy-manager-lts": "^1", "mnapoli/phpunit-easymock": "^1.3", - "phpunit/phpunit": "^9.5", - "vimeo/psalm": "^4.6" + "phpunit/phpunit": "^9.6", + "vimeo/psalm": "^5|^6" }, "suggest": { "friendsofphp/proxy-manager-lts": "Install it if you want to use lazy injection (version ^1)" @@ -11033,7 +10381,7 @@ ], "support": { "issues": "https://github.com/PHP-DI/PHP-DI/issues", - "source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.7" + "source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.9" }, "funding": [ { @@ -11045,7 +10393,7 @@ "type": "tidelift" } ], - "time": "2024-07-21T15:55:45+00:00" + "time": "2025-02-28T12:46:35+00:00" }, { "name": "php-http/discovery", @@ -11250,35 +10598,35 @@ }, { "name": "phpunit/php-code-coverage", - "version": "10.1.16", + "version": "11.0.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "7e308268858ed6baedc8704a304727d20bc07c77" + "reference": "14d63fbcca18457e49c6f8bebaa91a87e8e188d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7e308268858ed6baedc8704a304727d20bc07c77", - "reference": "7e308268858ed6baedc8704a304727d20bc07c77", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/14d63fbcca18457e49c6f8bebaa91a87e8e188d7", + "reference": "14d63fbcca18457e49c6f8bebaa91a87e8e188d7", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.19.1 || ^5.1.0", - "php": ">=8.1", - "phpunit/php-file-iterator": "^4.1.0", - "phpunit/php-text-template": "^3.0.1", - "sebastian/code-unit-reverse-lookup": "^3.0.0", - "sebastian/complexity": "^3.2.0", - "sebastian/environment": "^6.1.0", - "sebastian/lines-of-code": "^2.0.2", - "sebastian/version": "^4.0.1", + "nikic/php-parser": "^5.4.0", + "php": ">=8.2", + "phpunit/php-file-iterator": "^5.1.0", + "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.2", "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^10.1" + "phpunit/phpunit": "^11.5.2" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -11287,7 +10635,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.1.x-dev" + "dev-main": "11.0.x-dev" } }, "autoload": { @@ -11316,7 +10664,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/10.1.16" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.9" }, "funding": [ { @@ -11324,32 +10672,32 @@ "type": "github" } ], - "time": "2024-08-22T04:31:57+00:00" + "time": "2025-02-25T13:26:39+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "4.1.0", + "version": "5.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c" + "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c", - "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6", + "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -11377,7 +10725,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/4.1.0" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0" }, "funding": [ { @@ -11385,28 +10733,28 @@ "type": "github" } ], - "time": "2023-08-31T06:24:48+00:00" + "time": "2024-08-27T05:02:59+00:00" }, { "name": "phpunit/php-invoker", - "version": "4.0.0", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7" + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", - "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "suggest": { "ext-pcntl": "*" @@ -11414,7 +10762,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -11440,7 +10788,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0" + "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" }, "funding": [ { @@ -11448,32 +10797,32 @@ "type": "github" } ], - "time": "2023-02-03T06:56:09+00:00" + "time": "2024-07-03T05:07:44+00:00" }, { "name": "phpunit/php-text-template", - "version": "3.0.1", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748" + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748", - "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -11500,7 +10849,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/3.0.1" + "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" }, "funding": [ { @@ -11508,32 +10857,32 @@ "type": "github" } ], - "time": "2023-08-31T14:07:24+00:00" + "time": "2024-07-03T05:08:43+00:00" }, { "name": "phpunit/php-timer", - "version": "6.0.0", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d" + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d", - "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -11559,7 +10908,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0" + "security": "https://github.com/sebastianbergmann/php-timer/security/policy", + "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" }, "funding": [ { @@ -11567,20 +10917,20 @@ "type": "github" } ], - "time": "2023-02-03T06:57:52+00:00" + "time": "2024-07-03T05:09:35+00:00" }, { "name": "phpunit/phpunit", - "version": "10.5.41", + "version": "11.5.15", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "e76586fa3d49714f230221734b44892e384109d7" + "reference": "4b6a4ee654e5e0c5e1f17e2f83c0f4c91dee1f9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e76586fa3d49714f230221734b44892e384109d7", - "reference": "e76586fa3d49714f230221734b44892e384109d7", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4b6a4ee654e5e0c5e1f17e2f83c0f4c91dee1f9c", + "reference": "4b6a4ee654e5e0c5e1f17e2f83c0f4c91dee1f9c", "shasum": "" }, "require": { @@ -11590,26 +10940,26 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.12.1", + "myclabs/deep-copy": "^1.13.0", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", - "php": ">=8.1", - "phpunit/php-code-coverage": "^10.1.16", - "phpunit/php-file-iterator": "^4.1.0", - "phpunit/php-invoker": "^4.0.0", - "phpunit/php-text-template": "^3.0.1", - "phpunit/php-timer": "^6.0.0", - "sebastian/cli-parser": "^2.0.1", - "sebastian/code-unit": "^2.0.0", - "sebastian/comparator": "^5.0.3", - "sebastian/diff": "^5.1.1", - "sebastian/environment": "^6.1.0", - "sebastian/exporter": "^5.1.2", - "sebastian/global-state": "^6.0.2", - "sebastian/object-enumerator": "^5.0.0", - "sebastian/recursion-context": "^5.0.0", - "sebastian/type": "^4.0.0", - "sebastian/version": "^4.0.1" + "php": ">=8.2", + "phpunit/php-code-coverage": "^11.0.9", + "phpunit/php-file-iterator": "^5.1.0", + "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.3", + "sebastian/comparator": "^6.3.1", + "sebastian/diff": "^6.0.2", + "sebastian/environment": "^7.2.0", + "sebastian/exporter": "^6.3.0", + "sebastian/global-state": "^7.0.2", + "sebastian/object-enumerator": "^6.0.1", + "sebastian/type": "^5.1.2", + "sebastian/version": "^5.0.2", + "staabm/side-effects-detector": "^1.0.5" }, "suggest": { "ext-soap": "To be able to generate mocks based on WSDL files" @@ -11620,7 +10970,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.5-dev" + "dev-main": "11.5-dev" } }, "autoload": { @@ -11652,7 +11002,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.41" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.15" }, "funding": [ { @@ -11668,104 +11018,32 @@ "type": "tidelift" } ], - "time": "2025-01-13T09:33:05+00:00" - }, - { - "name": "psalm/plugin-laravel", - "version": "v2.11.0", - "source": { - "type": "git", - "url": "https://github.com/psalm/psalm-plugin-laravel.git", - "reference": "ffd51399b672959331ed3ef4eaae13984474e2f0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/psalm/psalm-plugin-laravel/zipball/ffd51399b672959331ed3ef4eaae13984474e2f0", - "reference": "ffd51399b672959331ed3ef4eaae13984474e2f0", - "shasum": "" - }, - "require": { - "barryvdh/laravel-ide-helper": "^2.13 || ^3.0", - "ext-simplexml": "*", - "illuminate/config": "^10.48 || ^11.0", - "illuminate/container": "^10.48 || ^11.0", - "illuminate/contracts": "^10.48 || ^11.0", - "illuminate/database": "^10.48 || ^11.0", - "illuminate/events": "^10.48 || ^11.0", - "illuminate/http": "^10.48 || ^11.0", - "illuminate/routing": "^10.48 || ^11.0", - "illuminate/support": "^10.48 || ^11.0", - "illuminate/view": "^10.48 || ^11.0", - "nikic/php-parser": "^4.18 || ^5.0", - "orchestra/testbench-core": "^8.22 || ^9.0", - "php": "^8.1", - "symfony/console": "^6.0 || ^7.0", - "symfony/finder": "^6.0 || ^7.0", - "vimeo/psalm": "^5.20" - }, - "require-dev": { - "laravel/framework": "^10.48 || ^11.0", - "phpunit/phpunit": "^10.5 || ^11.0", - "phpyh/psalm-tester": "^0.1.0", - "ramsey/collection": "^1.3", - "rector/rector": "^1.0", - "slevomat/coding-standard": "^8.8", - "squizlabs/php_codesniffer": "*", - "symfony/http-foundation": "^6.0 || ^7.0" - }, - "type": "psalm-plugin", - "extra": { - "psalm": { - "pluginClass": "Psalm\\LaravelPlugin\\Plugin" - } - }, - "autoload": { - "psr-4": { - "Psalm\\LaravelPlugin\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Matthew Brown", - "email": "github@muglug.com" - } - ], - "description": "Psalm plugin for Laravel", - "homepage": "https://github.com/psalm/psalm-plugin-laravel", - "support": { - "issues": "https://github.com/psalm/psalm-plugin-laravel/issues", - "source": "https://github.com/psalm/psalm-plugin-laravel/tree/v2.11.0" - }, - "time": "2024-03-19T21:40:03+00:00" + "time": "2025-03-23T16:02:11+00:00" }, { "name": "sebastian/cli-parser", - "version": "2.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", - "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -11789,7 +11067,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/2.0.1" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" }, "funding": [ { @@ -11797,32 +11075,32 @@ "type": "github" } ], - "time": "2024-03-02T07:12:49+00:00" + "time": "2024-07-03T04:41:36+00:00" }, { "name": "sebastian/code-unit", - "version": "2.0.0", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "a81fee9eef0b7a76af11d121767abc44c104e503" + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503", - "reference": "a81fee9eef0b7a76af11d121767abc44c104e503", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.5" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -11845,7 +11123,8 @@ "homepage": "https://github.com/sebastianbergmann/code-unit", "support": { "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0" + "security": "https://github.com/sebastianbergmann/code-unit/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" }, "funding": [ { @@ -11853,32 +11132,32 @@ "type": "github" } ], - "time": "2023-02-03T06:58:43+00:00" + "time": "2025-03-19T07:56:08+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "3.0.0", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d" + "reference": "183a9b2632194febd219bb9246eee421dad8d45e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", - "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -11900,7 +11179,8 @@ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0" + "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" }, "funding": [ { @@ -11908,36 +11188,39 @@ "type": "github" } ], - "time": "2023-02-03T06:59:15+00:00" + "time": "2024-07-03T04:45:54+00:00" }, { "name": "sebastian/comparator", - "version": "5.0.3", + "version": "6.3.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e" + "reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", - "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/24b8fbc2c8e201bb1308e7b05148d6ab393b6959", + "reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959", "shasum": "" }, "require": { "ext-dom": "*", "ext-mbstring": "*", - "php": ">=8.1", - "sebastian/diff": "^5.0", - "sebastian/exporter": "^5.0" + "php": ">=8.2", + "sebastian/diff": "^6.0", + "sebastian/exporter": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^10.5" + "phpunit/phpunit": "^11.4" + }, + "suggest": { + "ext-bcmath": "For comparing BcMath\\Number objects" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.3-dev" } }, "autoload": { @@ -11977,7 +11260,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.3" + "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.1" }, "funding": [ { @@ -11985,33 +11268,33 @@ "type": "github" } ], - "time": "2024-10-18T14:56:07+00:00" + "time": "2025-03-07T06:57:01+00:00" }, { "name": "sebastian/complexity", - "version": "3.2.0", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "68ff824baeae169ec9f2137158ee529584553799" + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", - "reference": "68ff824baeae169ec9f2137158ee529584553799", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", "shasum": "" }, "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=8.1" + "nikic/php-parser": "^5.0", + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.2-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -12035,7 +11318,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" + "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" }, "funding": [ { @@ -12043,33 +11326,33 @@ "type": "github" } ], - "time": "2023-12-21T08:37:17+00:00" + "time": "2024-07-03T04:49:50+00:00" }, { "name": "sebastian/diff", - "version": "5.1.1", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", - "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0", - "symfony/process": "^6.4" + "phpunit/phpunit": "^11.0", + "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -12102,7 +11385,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" + "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" }, "funding": [ { @@ -12110,27 +11393,27 @@ "type": "github" } ], - "time": "2024-03-02T07:15:17+00:00" + "time": "2024-07-03T04:53:05+00:00" }, { "name": "sebastian/environment", - "version": "6.1.0", + "version": "7.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" + "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", - "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5", + "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "suggest": { "ext-posix": "*" @@ -12138,7 +11421,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "6.1-dev" + "dev-main": "7.2-dev" } }, "autoload": { @@ -12166,7 +11449,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" + "source": "https://github.com/sebastianbergmann/environment/tree/7.2.0" }, "funding": [ { @@ -12174,34 +11457,34 @@ "type": "github" } ], - "time": "2024-03-23T08:47:14+00:00" + "time": "2024-07-03T04:54:44+00:00" }, { "name": "sebastian/exporter", - "version": "5.1.2", + "version": "6.3.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "955288482d97c19a372d3f31006ab3f37da47adf" + "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf", - "reference": "955288482d97c19a372d3f31006ab3f37da47adf", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/3473f61172093b2da7de1fb5782e1f24cc036dc3", + "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": ">=8.1", - "sebastian/recursion-context": "^5.0" + "php": ">=8.2", + "sebastian/recursion-context": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.1-dev" } }, "autoload": { @@ -12244,7 +11527,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2" + "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.0" }, "funding": [ { @@ -12252,35 +11535,35 @@ "type": "github" } ], - "time": "2024-03-02T07:17:12+00:00" + "time": "2024-12-05T09:17:50+00:00" }, { "name": "sebastian/global-state", - "version": "6.0.2", + "version": "7.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" + "reference": "3be331570a721f9a4b5917f4209773de17f747d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", - "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7", "shasum": "" }, "require": { - "php": ">=8.1", - "sebastian/object-reflector": "^3.0", - "sebastian/recursion-context": "^5.0" + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -12306,7 +11589,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/6.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" }, "funding": [ { @@ -12314,33 +11597,33 @@ "type": "github" } ], - "time": "2024-03-02T07:19:19+00:00" + "time": "2024-07-03T04:57:36+00:00" }, { "name": "sebastian/lines-of-code", - "version": "2.0.2", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", - "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", "shasum": "" }, "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=8.1" + "nikic/php-parser": "^5.0", + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -12364,7 +11647,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/2.0.2" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" }, "funding": [ { @@ -12372,34 +11655,34 @@ "type": "github" } ], - "time": "2023-12-21T08:38:20+00:00" + "time": "2024-07-03T04:58:38+00:00" }, { "name": "sebastian/object-enumerator", - "version": "5.0.0", + "version": "6.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906" + "reference": "f5b498e631a74204185071eb41f33f38d64608aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906", - "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa", "shasum": "" }, "require": { - "php": ">=8.1", - "sebastian/object-reflector": "^3.0", - "sebastian/recursion-context": "^5.0" + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -12421,7 +11704,8 @@ "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0" + "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" }, "funding": [ { @@ -12429,32 +11713,32 @@ "type": "github" } ], - "time": "2023-02-03T07:08:32+00:00" + "time": "2024-07-03T05:00:13+00:00" }, { "name": "sebastian/object-reflector", - "version": "3.0.0", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "24ed13d98130f0e7122df55d06c5c4942a577957" + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957", - "reference": "24ed13d98130f0e7122df55d06c5c4942a577957", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -12476,7 +11760,8 @@ "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0" + "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" }, "funding": [ { @@ -12484,32 +11769,32 @@ "type": "github" } ], - "time": "2023-02-03T07:06:18+00:00" + "time": "2024-07-03T05:01:32+00:00" }, { "name": "sebastian/recursion-context", - "version": "5.0.0", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "05909fb5bc7df4c52992396d0116aed689f93712" + "reference": "694d156164372abbd149a4b85ccda2e4670c0e16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712", - "reference": "05909fb5bc7df4c52992396d0116aed689f93712", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/694d156164372abbd149a4b85ccda2e4670c0e16", + "reference": "694d156164372abbd149a4b85ccda2e4670c0e16", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -12539,7 +11824,8 @@ "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0" + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.2" }, "funding": [ { @@ -12547,32 +11833,32 @@ "type": "github" } ], - "time": "2023-02-03T07:05:40+00:00" + "time": "2024-07-03T05:10:34+00:00" }, { "name": "sebastian/type", - "version": "4.0.0", + "version": "5.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "462699a16464c3944eefc02ebdd77882bd3925bf" + "reference": "a8a7e30534b0eb0c77cd9d07e82de1a114389f5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf", - "reference": "462699a16464c3944eefc02ebdd77882bd3925bf", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/a8a7e30534b0eb0c77cd9d07e82de1a114389f5e", + "reference": "a8a7e30534b0eb0c77cd9d07e82de1a114389f5e", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -12595,7 +11881,8 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/4.0.0" + "security": "https://github.com/sebastianbergmann/type/security/policy", + "source": "https://github.com/sebastianbergmann/type/tree/5.1.2" }, "funding": [ { @@ -12603,29 +11890,29 @@ "type": "github" } ], - "time": "2023-02-03T07:10:45+00:00" + "time": "2025-03-18T13:35:50+00:00" }, { "name": "sebastian/version", - "version": "4.0.1", + "version": "5.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17" + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17", - "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -12648,7 +11935,8 @@ "homepage": "https://github.com/sebastianbergmann/version", "support": { "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/4.0.1" + "security": "https://github.com/sebastianbergmann/version/security/policy", + "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" }, "funding": [ { @@ -12656,111 +11944,43 @@ "type": "github" } ], - "time": "2023-02-07T11:34:05+00:00" - }, - { - "name": "spatie/array-to-xml", - "version": "3.4.0", - "source": { - "type": "git", - "url": "https://github.com/spatie/array-to-xml.git", - "reference": "7dcfc67d60b0272926dabad1ec01f6b8a5fb5e67" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/7dcfc67d60b0272926dabad1ec01f6b8a5fb5e67", - "reference": "7dcfc67d60b0272926dabad1ec01f6b8a5fb5e67", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "php": "^8.0" - }, - "require-dev": { - "mockery/mockery": "^1.2", - "pestphp/pest": "^1.21", - "spatie/pest-plugin-snapshots": "^1.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Spatie\\ArrayToXml\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://freek.dev", - "role": "Developer" - } - ], - "description": "Convert an array to xml", - "homepage": "https://github.com/spatie/array-to-xml", - "keywords": [ - "array", - "convert", - "xml" - ], - "support": { - "source": "https://github.com/spatie/array-to-xml/tree/3.4.0" - }, - "funding": [ - { - "url": "https://spatie.be/open-source/support-us", - "type": "custom" - }, - { - "url": "https://github.com/spatie", - "type": "github" - } - ], - "time": "2024-12-16T12:45:15+00:00" + "time": "2024-10-09T05:16:32+00:00" }, { "name": "spatie/laravel-ray", - "version": "1.39.0", + "version": "1.40.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ray.git", - "reference": "31b601f98590606d20e76b5dd68578dc1642cd2c" + "reference": "1d1b31eb83cb38b41975c37363c7461de6d86b25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/31b601f98590606d20e76b5dd68578dc1642cd2c", - "reference": "31b601f98590606d20e76b5dd68578dc1642cd2c", + "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/1d1b31eb83cb38b41975c37363c7461de6d86b25", + "reference": "1d1b31eb83cb38b41975c37363c7461de6d86b25", "shasum": "" }, "require": { "composer-runtime-api": "^2.2", "ext-json": "*", - "illuminate/contracts": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0", - "illuminate/database": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0", - "illuminate/queue": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0", - "illuminate/support": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0", + "illuminate/contracts": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0 || ^12.0", + "illuminate/database": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0 || ^12.0", + "illuminate/queue": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0 || ^12.0", + "illuminate/support": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0 || ^12.0", "php": "^7.4 || ^8.0", - "spatie/backtrace": "^1.0", + "spatie/backtrace": "^1.7.1", "spatie/ray": "^1.41.3", "symfony/stopwatch": "4.2 || ^5.1 || ^6.0 || ^7.0", "zbateson/mail-mime-parser": "^1.3.1 || ^2.0 || ^3.0" }, "require-dev": { "guzzlehttp/guzzle": "^7.3", - "laravel/framework": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0", - "orchestra/testbench-core": "^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0", - "pestphp/pest": "^1.22 || ^2.0", + "laravel/framework": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0 || ^12.0", + "orchestra/testbench-core": "^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0", + "pestphp/pest": "^1.22 || ^2.0 || ^3.0", "phpstan/phpstan": "^1.10.57 || ^2.0.2", - "phpunit/phpunit": "^9.3 || ^10.1", - "rector/rector": "dev-main", + "phpunit/phpunit": "^9.3 || ^10.1 || ^11.0.10", + "rector/rector": "^0.19.2 || ^1.0.1 || ^2.0.0", "spatie/pest-plugin-snapshots": "^1.1 || ^2.0", "symfony/var-dumper": "^4.2 || ^5.1 || ^6.0 || ^7.0.3" }, @@ -12800,7 +12020,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-ray/issues", - "source": "https://github.com/spatie/laravel-ray/tree/1.39.0" + "source": "https://github.com/spatie/laravel-ray/tree/1.40.2" }, "funding": [ { @@ -12812,7 +12032,7 @@ "type": "other" } ], - "time": "2024-12-11T09:34:41+00:00" + "time": "2025-03-27T08:26:55+00:00" }, { "name": "spatie/macroable", @@ -12866,16 +12086,16 @@ }, { "name": "spatie/ray", - "version": "1.41.4", + "version": "1.41.6", "source": { "type": "git", "url": "https://github.com/spatie/ray.git", - "reference": "c5dbda0548c1881b30549ccc0b6d485f7471aaa5" + "reference": "ae6e32a54a901544a3d70b12b865900bc240f71c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ray/zipball/c5dbda0548c1881b30549ccc0b6d485f7471aaa5", - "reference": "c5dbda0548c1881b30549ccc0b6d485f7471aaa5", + "url": "https://api.github.com/repos/spatie/ray/zipball/ae6e32a54a901544a3d70b12b865900bc240f71c", + "reference": "ae6e32a54a901544a3d70b12b865900bc240f71c", "shasum": "" }, "require": { @@ -12883,18 +12103,18 @@ "ext-json": "*", "php": "^7.4 || ^8.0", "ramsey/uuid": "^3.0 || ^4.1", - "spatie/backtrace": "^1.1", + "spatie/backtrace": "^1.7.1", "spatie/macroable": "^1.0 || ^2.0", "symfony/stopwatch": "^4.2 || ^5.1 || ^6.0 || ^7.0", "symfony/var-dumper": "^4.2 || ^5.1 || ^6.0 || ^7.0.3" }, "require-dev": { - "illuminate/support": "^7.20 || ^8.18 || ^9.0 || ^10.0 || ^11.0", - "nesbot/carbon": "^2.63", + "illuminate/support": "^7.20 || ^8.18 || ^9.0 || ^10.0 || ^11.0 || ^12.0", + "nesbot/carbon": "^2.63 || ^3.8.4", "pestphp/pest": "^1.22", - "phpstan/phpstan": "^1.10.57 || ^2.0.2", + "phpstan/phpstan": "^1.10.57 || ^2.0.3", "phpunit/phpunit": "^9.5", - "rector/rector": "dev-main", + "rector/rector": "^0.19.2 || ^1.0.1 || ^2.0.0", "spatie/phpunit-snapshot-assertions": "^4.2", "spatie/test-time": "^1.2" }, @@ -12935,7 +12155,7 @@ ], "support": { "issues": "https://github.com/spatie/ray/issues", - "source": "https://github.com/spatie/ray/tree/1.41.4" + "source": "https://github.com/spatie/ray/tree/1.41.6" }, "funding": [ { @@ -12947,73 +12167,59 @@ "type": "other" } ], - "time": "2024-12-09T11:32:15+00:00" + "time": "2025-03-21T08:56:30+00:00" }, { - "name": "symfony/filesystem", - "version": "v7.2.0", + "name": "staabm/side-effects-detector", + "version": "1.0.5", "source": { "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb" + "url": "https://github.com/staabm/side-effects-detector.git", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/b8dce482de9d7c9fe2891155035a7248ab5c7fdb", - "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb", + "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8" + "ext-tokenizer": "*", + "php": "^7.4 || ^8.0" }, "require-dev": { - "symfony/process": "^6.4|^7.0" + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.6", + "phpunit/phpunit": "^9.6.21", + "symfony/var-dumper": "^5.4.43", + "tomasvotruba/type-coverage": "1.0.0", + "tomasvotruba/unused-public": "1.0.0" }, "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "lib/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } + "description": "A static analysis tool to detect side effects in PHP code", + "keywords": [ + "static analysis" ], - "description": "Provides basic utilities for the filesystem", - "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.2.0" + "issues": "https://github.com/staabm/side-effects-detector/issues", + "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/staabm", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2024-10-25T15:15:23+00:00" + "time": "2024-10-20T05:08:20+00:00" }, { "name": "symfony/polyfill-iconv", @@ -13095,94 +12301,18 @@ ], "time": "2024-09-09T11:45:10+00:00" }, - { - "name": "symfony/polyfill-php84", - "version": "v1.31.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php84.git", - "reference": "e5493eb51311ab0b1cc2243416613f06ed8f18bd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/e5493eb51311ab0b1cc2243416613f06ed8f18bd", - "reference": "e5493eb51311ab0b1cc2243416613f06ed8f18bd", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php84\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php84/tree/v1.31.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-09T12:04:04+00:00" - }, { "name": "symfony/stopwatch", - "version": "v7.2.2", + "version": "v7.2.4", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "e46690d5b9d7164a6d061cab1e8d46141b9f49df" + "reference": "5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/e46690d5b9d7164a6d061cab1e8d46141b9f49df", - "reference": "e46690d5b9d7164a6d061cab1e8d46141b9f49df", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd", + "reference": "5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd", "shasum": "" }, "require": { @@ -13215,7 +12345,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.2.2" + "source": "https://github.com/symfony/stopwatch/tree/v7.2.4" }, "funding": [ { @@ -13231,20 +12361,20 @@ "type": "tidelift" } ], - "time": "2024-12-18T14:28:33+00:00" + "time": "2025-02-24T10:49:57+00:00" }, { "name": "symfony/yaml", - "version": "v7.2.0", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "099581e99f557e9f16b43c5916c26380b54abb22" + "reference": "4c4b6f4cfcd7e52053f0c8bfad0f7f30fb924912" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/099581e99f557e9f16b43c5916c26380b54abb22", - "reference": "099581e99f557e9f16b43c5916c26380b54abb22", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4c4b6f4cfcd7e52053f0c8bfad0f7f30fb924912", + "reference": "4c4b6f4cfcd7e52053f0c8bfad0f7f30fb924912", "shasum": "" }, "require": { @@ -13287,7 +12417,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.2.0" + "source": "https://github.com/symfony/yaml/tree/v7.2.5" }, "funding": [ { @@ -13303,7 +12433,7 @@ "type": "tidelift" } ], - "time": "2024-10-23T06:56:12+00:00" + "time": "2025-03-03T07:12:39+00:00" }, { "name": "theseer/tokenizer", @@ -13355,116 +12485,6 @@ ], "time": "2024-03-03T12:36:25+00:00" }, - { - "name": "vimeo/psalm", - "version": "5.26.1", - "source": { - "type": "git", - "url": "https://github.com/vimeo/psalm.git", - "reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/d747f6500b38ac4f7dfc5edbcae6e4b637d7add0", - "reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0", - "shasum": "" - }, - "require": { - "amphp/amp": "^2.4.2", - "amphp/byte-stream": "^1.5", - "composer-runtime-api": "^2", - "composer/semver": "^1.4 || ^2.0 || ^3.0", - "composer/xdebug-handler": "^2.0 || ^3.0", - "dnoegel/php-xdg-base-dir": "^0.1.1", - "ext-ctype": "*", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-simplexml": "*", - "ext-tokenizer": "*", - "felixfbecker/advanced-json-rpc": "^3.1", - "felixfbecker/language-server-protocol": "^1.5.2", - "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1 || ^1.0.0", - "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "nikic/php-parser": "^4.17", - "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", - "sebastian/diff": "^4.0 || ^5.0 || ^6.0", - "spatie/array-to-xml": "^2.17.0 || ^3.0", - "symfony/console": "^4.1.6 || ^5.0 || ^6.0 || ^7.0", - "symfony/filesystem": "^5.4 || ^6.0 || ^7.0" - }, - "conflict": { - "nikic/php-parser": "4.17.0" - }, - "provide": { - "psalm/psalm": "self.version" - }, - "require-dev": { - "amphp/phpunit-util": "^2.0", - "bamarni/composer-bin-plugin": "^1.4", - "brianium/paratest": "^6.9", - "ext-curl": "*", - "mockery/mockery": "^1.5", - "nunomaduro/mock-final-classes": "^1.1", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/phpdoc-parser": "^1.6", - "phpunit/phpunit": "^9.6", - "psalm/plugin-mockery": "^1.1", - "psalm/plugin-phpunit": "^0.18", - "slevomat/coding-standard": "^8.4", - "squizlabs/php_codesniffer": "^3.6", - "symfony/process": "^4.4 || ^5.0 || ^6.0 || ^7.0" - }, - "suggest": { - "ext-curl": "In order to send data to shepherd", - "ext-igbinary": "^2.0.5 is required, used to serialize caching data" - }, - "bin": [ - "psalm", - "psalm-language-server", - "psalm-plugin", - "psalm-refactor", - "psalter" - ], - "type": "project", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev", - "dev-2.x": "2.x-dev", - "dev-3.x": "3.x-dev", - "dev-4.x": "4.x-dev", - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psalm\\": "src/Psalm/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Matthew Brown" - } - ], - "description": "A static analysis tool for finding errors in PHP applications", - "keywords": [ - "code", - "inspection", - "php", - "static analysis" - ], - "support": { - "docs": "https://psalm.dev/docs", - "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm" - }, - "time": "2024-09-08T18:53:08+00:00" - }, { "name": "zbateson/mail-mime-parser", "version": "3.0.3", @@ -13689,6 +12709,6 @@ "ext-pgsql": "*", "ext-sodium": "*" }, - "platform-dev": {}, + "platform-dev": [], "plugin-api-version": "2.6.0" } diff --git a/config/app.php b/config/app.php index f4672673..324b513a 100644 --- a/config/app.php +++ b/config/app.php @@ -65,7 +65,7 @@ return [ | */ - 'timezone' => env('APP_TIMEZONE', 'UTC'), + 'timezone' => 'UTC', /* |-------------------------------------------------------------------------- diff --git a/config/database.php b/config/database.php index f8e8dcb8..8910562d 100644 --- a/config/database.php +++ b/config/database.php @@ -37,6 +37,9 @@ return [ 'database' => env('DB_DATABASE', database_path('database.sqlite')), 'prefix' => '', 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), + 'busy_timeout' => null, + 'journal_mode' => null, + 'synchronous' => null, ], 'mysql' => [ @@ -145,6 +148,7 @@ return [ 'options' => [ 'cluster' => env('REDIS_CLUSTER', 'redis'), 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), + 'persistent' => env('REDIS_PERSISTENT', false), ], 'default' => [ diff --git a/config/debugbar.php b/config/debugbar.php index b045f6ca..cb04694e 100644 --- a/config/debugbar.php +++ b/config/debugbar.php @@ -119,7 +119,7 @@ return [ 'full_log' => false, ], 'views' => [ - 'data' => false, //Note: Can slow down the application, because the data can be quite large.. + 'data' => false, // Note: Can slow down the application, because the data can be quite large.. ], 'route' => [ 'label' => true, // show complete route on bar diff --git a/config/filesystems.php b/config/filesystems.php index 44fe9c82..a17a9a47 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -32,8 +32,10 @@ return [ 'local' => [ 'driver' => 'local', - 'root' => storage_path('app'), + 'root' => storage_path('app/private'), + 'serve' => true, 'throw' => false, + 'report' => false, ], 'public' => [ @@ -42,6 +44,7 @@ return [ 'url' => env('APP_URL').'/storage', 'visibility' => 'public', 'throw' => false, + 'report' => false, ], 's3' => [ @@ -54,6 +57,7 @@ return [ 'endpoint' => env('AWS_ENDPOINT'), 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), 'throw' => false, + 'report' => false, ], ], diff --git a/config/mail.php b/config/mail.php index a4a02fe4..7132144d 100644 --- a/config/mail.php +++ b/config/mail.php @@ -38,14 +38,14 @@ return [ 'smtp' => [ 'transport' => 'smtp', + 'scheme' => env('MAIL_SCHEME'), 'url' => env('MAIL_URL'), 'host' => env('MAIL_HOST', '127.0.0.1'), 'port' => env('MAIL_PORT', 2525), - 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'timeout' => null, - 'local_domain' => env('MAIL_EHLO_DOMAIN'), + 'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url(env('APP_URL', 'http://localhost'), PHP_URL_HOST)), ], 'ses' => [ diff --git a/config/session.php b/config/session.php index 0e22ee41..6ff263bd 100644 --- a/config/session.php +++ b/config/session.php @@ -32,7 +32,7 @@ return [ | */ - 'lifetime' => env('SESSION_LIFETIME', 120), + 'lifetime' => (int) env('SESSION_LIFETIME', 120), 'expire_on_close' => env('SESSION_EXPIRE_ON_CLOSE', false), diff --git a/database/seeders/NotesTableSeeder.php b/database/seeders/NotesTableSeeder.php index b73c2e34..a9fbab12 100644 --- a/database/seeders/NotesTableSeeder.php +++ b/database/seeders/NotesTableSeeder.php @@ -83,7 +83,7 @@ class NotesTableSeeder extends Seeder ->where('id', $noteWithoutContact->id) ->update(['updated_at' => $now->toDateTimeString()]); - //copy aaron’s profile pic in place + // copy aaron’s profile pic in place $spl = new SplFileInfo(public_path() . '/assets/profile-images/aaronparecki.com'); if ($spl->isDir() === false) { mkdir(public_path() . '/assets/profile-images/aaronparecki.com', 0755); diff --git a/helpers.php b/helpers.php index ed1f9912..0c3dfcfa 100644 --- a/helpers.php +++ b/helpers.php @@ -138,7 +138,7 @@ if (! function_exists('normalize_url')) { $url['query'] = ''; sort($queries); foreach ($queries as $query) { - //lets drop query params we don’t want + // lets drop query params we don’t want $key = stristr($query, '=', true); if (queryKeyIsBanned($key) === false) { $url['query'] .= "{$query}&"; @@ -197,7 +197,7 @@ if (! function_exists('prettyPrintJson')) { case '{': case '[': $level++; - //no break + // no break case ',': $ends_line_level = $level; break; diff --git a/public/index.php b/public/index.php index 1d69f3a2..ee8f07e9 100644 --- a/public/index.php +++ b/public/index.php @@ -1,55 +1,20 @@ make(Kernel::class); - -$response = $kernel->handle( - $request = Request::capture() -)->send(); - -$kernel->terminate($request, $response); +$app->handleRequest(Request::capture()); diff --git a/routes/web.php b/routes/web.php index 7b4030c8..5c8e989d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -64,7 +64,7 @@ Route::domain(config('url.longurl'))->group(function () { Route::middleware(MyAuthMiddleware::class)->prefix('admin')->group(function () { Route::get('/', [HomeController::class, 'welcome']); - //Articles + // Articles Route::prefix('blog')->group(function () { Route::get('/', [AdminArticlesController::class, 'index']); Route::get('/create', [AdminArticlesController::class, 'create']); diff --git a/tests/Browser/ExampleTest.php b/tests/Browser/ExampleTest.php index 1716a41e..37e2a581 100644 --- a/tests/Browser/ExampleTest.php +++ b/tests/Browser/ExampleTest.php @@ -12,7 +12,7 @@ class ExampleTest extends DuskTestCase * * @return void */ - public function testBasicExample() + public function test_basic_example() { $this->browse(function (Browser $browser) { $browser->visit('/') diff --git a/tests/Feature/Admin/AdminHomeControllerTest.php b/tests/Feature/Admin/AdminHomeControllerTest.php index b74b8b25..0fd92cc0 100644 --- a/tests/Feature/Admin/AdminHomeControllerTest.php +++ b/tests/Feature/Admin/AdminHomeControllerTest.php @@ -6,13 +6,14 @@ namespace Tests\Feature\Admin; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class AdminHomeControllerTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function adminHomepageLoads(): void { $user = User::factory()->make(); diff --git a/tests/Feature/Admin/AdminTest.php b/tests/Feature/Admin/AdminTest.php index d69d59a4..753ee054 100644 --- a/tests/Feature/Admin/AdminTest.php +++ b/tests/Feature/Admin/AdminTest.php @@ -5,25 +5,26 @@ declare(strict_types=1); namespace Tests\Feature\Admin; use App\Models\User; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class AdminTest extends TestCase { - /** @test */ + #[Test] public function adminPageRedirectsUnauthorisedUsersToLoginPage(): void { $response = $this->get('/admin'); $response->assertRedirect('/login'); } - /** @test */ + #[Test] public function loginPageLoads(): void { $response = $this->get('/login'); $response->assertViewIs('login'); } - /** @test */ + #[Test] public function loginAttemptWithBadCredentialsFails(): void { $response = $this->post('/login', [ @@ -33,7 +34,7 @@ class AdminTest extends TestCase $response->assertRedirect('/login'); } - /** @test */ + #[Test] public function loginSucceeds(): void { User::factory([ @@ -49,7 +50,7 @@ class AdminTest extends TestCase $response->assertRedirect('/admin'); } - /** @test */ + #[Test] public function whenLoggedInRedirectsToAdminPage(): void { $user = User::factory()->create(); @@ -57,14 +58,14 @@ class AdminTest extends TestCase $response->assertRedirect('/'); } - /** @test */ + #[Test] public function loggedOutUsersSimplyRedirected(): void { $response = $this->get('/logout'); $response->assertRedirect('/'); } - /** @test */ + #[Test] public function loggedInUsersShownLogoutForm(): void { $user = User::factory()->create(); @@ -72,7 +73,7 @@ class AdminTest extends TestCase $response->assertViewIs('logout'); } - /** @test */ + #[Test] public function loggedInUsersCanLogout(): void { $user = User::factory()->create(); diff --git a/tests/Feature/Admin/ArticlesTest.php b/tests/Feature/Admin/ArticlesTest.php index 0139d699..507ed072 100644 --- a/tests/Feature/Admin/ArticlesTest.php +++ b/tests/Feature/Admin/ArticlesTest.php @@ -9,13 +9,14 @@ use App\Models\User; use Faker\Factory; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Http\UploadedFile; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ArticlesTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function adminArticlesPageLoads(): void { $user = User::factory()->make(); @@ -25,7 +26,7 @@ class ArticlesTest extends TestCase $response->assertSeeText('Select article to edit:'); } - /** @test */ + #[Test] public function adminCanLoadFormToCreateArticle(): void { $user = User::factory()->make(); @@ -35,7 +36,7 @@ class ArticlesTest extends TestCase $response->assertSeeText('Title (URL)'); } - /** @test */ + #[Test] public function admiNCanCreateNewArticle(): void { $user = User::factory()->make(); @@ -48,7 +49,7 @@ class ArticlesTest extends TestCase $this->assertDatabaseHas('articles', ['title' => 'Test Title']); } - /** @test */ + #[Test] public function adminCanCreateNewArticleWithFile(): void { $user = User::factory()->make(); @@ -73,7 +74,7 @@ class ArticlesTest extends TestCase ]); } - /** @test */ + #[Test] public function articleCanLoadFormToEditArticle(): void { $user = User::factory()->make(); @@ -86,7 +87,7 @@ class ArticlesTest extends TestCase $response->assertSeeText('This is *my* new blog. It uses `Markdown`.'); } - /** @test */ + #[Test] public function adminCanEditArticle(): void { $user = User::factory()->make(); @@ -104,7 +105,7 @@ class ArticlesTest extends TestCase ]); } - /** @test */ + #[Test] public function adminCanDeleteArticle(): void { $user = User::factory()->make(); diff --git a/tests/Feature/Admin/BioTest.php b/tests/Feature/Admin/BioTest.php index 7f1328ea..6453b037 100644 --- a/tests/Feature/Admin/BioTest.php +++ b/tests/Feature/Admin/BioTest.php @@ -7,13 +7,14 @@ namespace Tests\Feature\Admin; use App\Models\Bio; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class BioTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function adminBiosPageLoads(): void { $user = User::factory()->make(); @@ -23,7 +24,7 @@ class BioTest extends TestCase $response->assertSeeText('Edit bio'); } - /** @test */ + #[Test] public function adminCanCreateBio(): void { $user = User::factory()->make(); @@ -36,7 +37,7 @@ class BioTest extends TestCase $this->assertDatabaseHas('bios', ['content' => 'Bio content']); } - /** @test */ + #[Test] public function adminCanLoadExistingBio(): void { $user = User::factory()->make(); @@ -49,7 +50,7 @@ class BioTest extends TestCase $response->assertSeeText('This is my bio. It uses HTML.'); } - /** @test */ + #[Test] public function adminCanEditBio(): void { $user = User::factory()->make(); diff --git a/tests/Feature/Admin/ClientsTest.php b/tests/Feature/Admin/ClientsTest.php index 463f336a..4afe4a54 100644 --- a/tests/Feature/Admin/ClientsTest.php +++ b/tests/Feature/Admin/ClientsTest.php @@ -7,13 +7,14 @@ namespace Tests\Feature\Admin; use App\Models\MicropubClient; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ClientsTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function clientsPageLoads(): void { $user = User::factory()->make(); @@ -23,7 +24,7 @@ class ClientsTest extends TestCase $response->assertSeeText('Clients'); } - /** @test */ + #[Test] public function adminCanLoadFormToCreateClient(): void { $user = User::factory()->make(); @@ -33,7 +34,7 @@ class ClientsTest extends TestCase $response->assertSeeText('New Client'); } - /** @test */ + #[Test] public function adminCanCreateNewClient(): void { $user = User::factory()->make(); @@ -49,7 +50,7 @@ class ClientsTest extends TestCase ]); } - /** @test */ + #[Test] public function adminCanLoadEditFormForClient(): void { $user = User::factory()->make(); @@ -62,7 +63,7 @@ class ClientsTest extends TestCase $response->assertSee('https://jbl5.dev/notes/new'); } - /** @test */ + #[Test] public function adminCanEditClient(): void { $user = User::factory()->make(); @@ -80,7 +81,7 @@ class ClientsTest extends TestCase ]); } - /** @test */ + #[Test] public function adminCanDeleteClient(): void { $user = User::factory()->make(); diff --git a/tests/Feature/Admin/ContactsTest.php b/tests/Feature/Admin/ContactsTest.php index 5d5f42bf..4b8f632f 100644 --- a/tests/Feature/Admin/ContactsTest.php +++ b/tests/Feature/Admin/ContactsTest.php @@ -12,6 +12,7 @@ use GuzzleHttp\HandlerStack; use GuzzleHttp\Psr7\Response; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Http\UploadedFile; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ContactsTest extends TestCase @@ -27,7 +28,7 @@ class ContactsTest extends TestCase parent::tearDown(); } - /** @test */ + #[Test] public function contactIndexPageLoads(): void { $user = User::factory()->make(); @@ -36,7 +37,7 @@ class ContactsTest extends TestCase $response->assertViewIs('admin.contacts.index'); } - /** @test */ + #[Test] public function contactCreatePageLoads(): void { $user = User::factory()->make(); @@ -45,7 +46,7 @@ class ContactsTest extends TestCase $response->assertViewIs('admin.contacts.create'); } - /** @test */ + #[Test] public function adminCanCreateNewContact(): void { $user = User::factory()->make(); @@ -62,7 +63,7 @@ class ContactsTest extends TestCase ]); } - /** @test */ + #[Test] public function adminCanSeeFormToEditContact(): void { $user = User::factory()->make(); @@ -72,7 +73,7 @@ class ContactsTest extends TestCase $response->assertViewIs('admin.contacts.edit'); } - /** @test */ + #[Test] public function adminCanUpdateContact(): void { $user = User::factory()->make(); @@ -91,7 +92,7 @@ class ContactsTest extends TestCase ]); } - /** @test */ + #[Test] public function adminCanEditContactAndUploadAvatar(): void { copy(__DIR__ . '/../../aaron.png', sys_get_temp_dir() . '/tantek.png'); @@ -114,7 +115,7 @@ class ContactsTest extends TestCase ); } - /** @test */ + #[Test] public function adminCanDeleteContact(): void { $user = User::factory()->make(); @@ -132,7 +133,7 @@ class ContactsTest extends TestCase ]); } - /** @test */ + #[Test] public function adminCanTriggerRetrievalOfRemoteAvatar(): void { $html = <<<'HTML' @@ -161,7 +162,7 @@ class ContactsTest extends TestCase ); } - /** @test */ + #[Test] public function gettingRemoteAvatarFailsGracefullyWithRemoteNotFound(): void { $mock = new MockHandler([ @@ -178,7 +179,7 @@ class ContactsTest extends TestCase $response->assertRedirect('/admin/contacts/' . $contact->id . '/edit'); } - /** @test */ + #[Test] public function gettingRemoteAvatarFailsGracefullyWithRemoteError(): void { $html = <<<'HTML' @@ -201,7 +202,7 @@ class ContactsTest extends TestCase $response->assertRedirect('/admin/contacts/' . $contact->id . '/edit'); } - /** @test */ + #[Test] public function gettingRemoteAvatarFailsGracefullyForContactWithNoHompage(): void { $contact = Contact::create([ diff --git a/tests/Feature/Admin/LikesTest.php b/tests/Feature/Admin/LikesTest.php index b5560c14..151f7b73 100644 --- a/tests/Feature/Admin/LikesTest.php +++ b/tests/Feature/Admin/LikesTest.php @@ -9,13 +9,14 @@ use App\Models\Like; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Queue; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class LikesTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function likesPageLoads(): void { $user = User::factory()->make(); @@ -25,7 +26,7 @@ class LikesTest extends TestCase $response->assertSeeText('Likes'); } - /** @test */ + #[Test] public function likeCreateFormLoads(): void { $user = User::factory()->make(); @@ -35,7 +36,7 @@ class LikesTest extends TestCase $response->assertSeeText('New Like'); } - /** @test */ + #[Test] public function adminCanCreateLike(): void { Queue::fake(); @@ -51,7 +52,7 @@ class LikesTest extends TestCase Queue::assertPushed(ProcessLike::class); } - /** @test */ + #[Test] public function likeEditFormLoads(): void { $user = User::factory()->make(); @@ -62,7 +63,7 @@ class LikesTest extends TestCase $response->assertSee('Edit Like'); } - /** @test */ + #[Test] public function adminCanEditLike(): void { Queue::fake(); @@ -80,7 +81,7 @@ class LikesTest extends TestCase Queue::assertPushed(ProcessLike::class); } - /** @test */ + #[Test] public function adminCanDeleteLike(): void { $like = Like::factory()->create(); diff --git a/tests/Feature/Admin/NotesTest.php b/tests/Feature/Admin/NotesTest.php index ac60004b..ccd3a867 100644 --- a/tests/Feature/Admin/NotesTest.php +++ b/tests/Feature/Admin/NotesTest.php @@ -9,13 +9,14 @@ use App\Models\Note; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Queue; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class NotesTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function notesPageLoads(): void { $user = User::factory()->make(); @@ -24,7 +25,7 @@ class NotesTest extends TestCase $response->assertViewIs('admin.notes.index'); } - /** @test */ + #[Test] public function noteCreatePageLoads(): void { $user = User::factory()->make(); @@ -33,7 +34,7 @@ class NotesTest extends TestCase $response->assertViewIs('admin.notes.create'); } - /** @test */ + #[Test] public function adminCanCreateNewNote(): void { $user = User::factory()->make(); @@ -47,7 +48,7 @@ class NotesTest extends TestCase ]); } - /** @test */ + #[Test] public function noteEditFormLoads(): void { $user = User::factory()->make(); @@ -57,7 +58,7 @@ class NotesTest extends TestCase $response->assertViewIs('admin.notes.edit'); } - /** @test */ + #[Test] public function adminCanEditNote(): void { Queue::fake(); @@ -76,7 +77,7 @@ class NotesTest extends TestCase Queue::assertPushed(SendWebMentions::class); } - /** @test */ + #[Test] public function adminCanDeleteNote(): void { $user = User::factory()->make(); diff --git a/tests/Feature/Admin/PlacesTest.php b/tests/Feature/Admin/PlacesTest.php index 0de5b928..1f711e8e 100644 --- a/tests/Feature/Admin/PlacesTest.php +++ b/tests/Feature/Admin/PlacesTest.php @@ -7,13 +7,14 @@ namespace Tests\Feature\Admin; use App\Models\Place; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class PlacesTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function placesPageLoads(): void { $user = User::factory()->make(); @@ -22,7 +23,7 @@ class PlacesTest extends TestCase $response->assertViewIs('admin.places.index'); } - /** @test */ + #[Test] public function createPlacePageLoads(): void { $user = User::factory()->make(); @@ -31,7 +32,7 @@ class PlacesTest extends TestCase $response->assertViewIs('admin.places.create'); } - /** @test */ + #[Test] public function adminCanCreateNewPlace(): void { $user = User::factory()->make(); @@ -48,7 +49,7 @@ class PlacesTest extends TestCase ]); } - /** @test */ + #[Test] public function editPlacePageLoads(): void { $user = User::factory()->make(); @@ -58,7 +59,7 @@ class PlacesTest extends TestCase $response->assertViewIs('admin.places.edit'); } - /** @test */ + #[Test] public function adminCanUpdatePlace(): void { $user = User::factory()->make(); diff --git a/tests/Feature/ArticlesTest.php b/tests/Feature/ArticlesTest.php index d268fc4d..8e544009 100644 --- a/tests/Feature/ArticlesTest.php +++ b/tests/Feature/ArticlesTest.php @@ -7,20 +7,21 @@ namespace Tests\Feature; use App\Models\Article; use Illuminate\Foundation\Testing\RefreshDatabase; use Jonnybarnes\IndieWeb\Numbers; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ArticlesTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function articlesPageLoads(): void { $response = $this->get('/blog'); $response->assertViewIs('articles.index'); } - /** @test */ + #[Test] public function singleArticlePageLoads() { $article = Article::factory()->create(); @@ -28,7 +29,7 @@ class ArticlesTest extends TestCase $response->assertViewIs('articles.show'); } - /** @test */ + #[Test] public function wrongDateInUrlRedirectsToCorrectDate() { $article = Article::factory()->create(); @@ -36,7 +37,7 @@ class ArticlesTest extends TestCase $response->assertRedirect('/blog/' . date('Y') . '/' . date('m') . '/' . $article->titleurl); } - /** @test */ + #[Test] public function oldUrlsWithIdAreRedirected() { $article = Article::factory()->create(); @@ -45,21 +46,21 @@ class ArticlesTest extends TestCase $response->assertRedirect($article->link); } - /** @test */ + #[Test] public function unknownSlugGetsNotFoundResponse() { $response = $this->get('/blog/' . date('Y') . '/' . date('m') . '/unknown-slug'); $response->assertNotFound(); } - /** @test */ + #[Test] public function unknownArticleIdGetsNotFoundResponse() { $response = $this->get('/blog/s/22'); $response->assertNotFound(); } - /** @test */ + #[Test] public function someUrlsDoNotParseCorrectly(): void { $response = $this->get('/blog/feed.js'); diff --git a/tests/Feature/BookmarksTest.php b/tests/Feature/BookmarksTest.php index a00b8c37..73948237 100644 --- a/tests/Feature/BookmarksTest.php +++ b/tests/Feature/BookmarksTest.php @@ -8,6 +8,7 @@ use App\Jobs\ProcessBookmark; use App\Models\Bookmark; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Queue; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; use Tests\TestToken; @@ -15,14 +16,14 @@ class BookmarksTest extends TestCase { use RefreshDatabase, TestToken; - /** @test */ + #[Test] public function bookmarksPageLoadsWithoutError(): void { $response = $this->get('/bookmarks'); $response->assertViewIs('bookmarks.index'); } - /** @test */ + #[Test] public function singleBookmarkPageLoadsWithoutError(): void { $bookmark = Bookmark::factory()->create(); @@ -30,7 +31,7 @@ class BookmarksTest extends TestCase $response->assertViewIs('bookmarks.show'); } - /** @test */ + #[Test] public function whenBookmarkIsAddedUsingHttpSyntaxCheckJobToTakeScreenshotIsInvoked(): void { Queue::fake(); @@ -48,7 +49,7 @@ class BookmarksTest extends TestCase $this->assertDatabaseHas('bookmarks', ['url' => 'https://example.org/blog-post']); } - /** @test */ + #[Test] public function whenBookmarkIsAddedUsingJsonSyntaxCheckJobToTakeScreenshotIsInvoked(): void { Queue::fake(); @@ -68,7 +69,7 @@ class BookmarksTest extends TestCase $this->assertDatabaseHas('bookmarks', ['url' => 'https://example.org/blog-post']); } - /** @test */ + #[Test] public function whenTheBookmarkIsCreatedCheckNecessaryTagsAreAlsoCreated(): void { Queue::fake(); diff --git a/tests/Feature/ContactsTest.php b/tests/Feature/ContactsTest.php index 211af20b..a773e45f 100644 --- a/tests/Feature/ContactsTest.php +++ b/tests/Feature/ContactsTest.php @@ -6,6 +6,7 @@ namespace Tests\Feature; use App\Models\Contact; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ContactsTest extends TestCase @@ -14,9 +15,8 @@ class ContactsTest extends TestCase /** * Check the `/contacts` page gives a good response. - * - * @test */ + #[Test] public function contactsPageLoadsWithoutError(): void { $response = $this->get('/contacts'); @@ -25,9 +25,8 @@ class ContactsTest extends TestCase /** * Test an individual contact page with default profile image. - * - * @test */ + #[Test] public function contactPageShouldFallbackToDefaultProfilePic(): void { Contact::factory()->create([ @@ -39,9 +38,8 @@ class ContactsTest extends TestCase /** * Test an individual contact page with a specific profile image. - * - * @test */ + #[Test] public function contactPageShouldUseSpecificProfilePicIfPresent(): void { Contact::factory()->create([ @@ -52,7 +50,7 @@ class ContactsTest extends TestCase $response->assertViewHas('image', '/assets/profile-images/aaronparecki.com/image'); } - /** @test */ + #[Test] public function unknownContactReturnsNotFoundResponse(): void { $response = $this->get('/contacts/unknown'); diff --git a/tests/Feature/CorsHeadersTest.php b/tests/Feature/CorsHeadersTest.php index 7a5fdf05..07af166e 100644 --- a/tests/Feature/CorsHeadersTest.php +++ b/tests/Feature/CorsHeadersTest.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace Tests\Feature; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; use Tests\TestToken; @@ -11,7 +12,7 @@ class CorsHeadersTest extends TestCase { use TestToken; - /** @test */ + #[Test] public function checkCorsHeadersOnMediaEndpoint(): void { $response = $this->call( @@ -25,7 +26,7 @@ class CorsHeadersTest extends TestCase $response->assertHeader('Access-Control-Allow-Origin', '*'); } - /** @test */ + #[Test] public function checkForNoCorsHeaderOnNonMediaEndpointLinks(): void { $response = $this->get('/blog'); diff --git a/tests/Feature/FeedsTest.php b/tests/Feature/FeedsTest.php index 481218b7..a0704b90 100644 --- a/tests/Feature/FeedsTest.php +++ b/tests/Feature/FeedsTest.php @@ -8,6 +8,7 @@ use App\Models\Article; use App\Models\Note; use App\Models\Place; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class FeedsTest extends TestCase @@ -16,9 +17,8 @@ class FeedsTest extends TestCase /** * Test the blog RSS feed. - * - * @test */ + #[Test] public function blogRssFeedIsPresent(): void { Article::factory()->count(3)->create(); @@ -29,9 +29,8 @@ class FeedsTest extends TestCase /** * Test the notes RSS feed. - * - * @test */ + #[Test] public function notesRssFeedIsPresent(): void { Note::factory()->count(3)->create(); @@ -42,9 +41,8 @@ class FeedsTest extends TestCase /** * Test the blog RSS feed. - * - * @test */ + #[Test] public function blogAtomFeedIsPresent(): void { Article::factory()->count(3)->create(); @@ -53,7 +51,7 @@ class FeedsTest extends TestCase $response->assertOk(); } - /** @test */ + #[Test] public function blogJf2FeedIsPresent(): void { Article::factory()->count(3)->create(); @@ -77,9 +75,8 @@ class FeedsTest extends TestCase /** * Test the notes RSS feed. - * - * @test */ + #[Test] public function notesAtomFeedIsPresent(): void { Note::factory()->count(3)->create(); @@ -90,9 +87,8 @@ class FeedsTest extends TestCase /** * Test the blog JSON feed. - * - * @test */ + #[Test] public function blogJsonFeedIsPresent(): void { Article::factory()->count(3)->create(); @@ -103,9 +99,8 @@ class FeedsTest extends TestCase /** * Test the notes JSON feed. - * - * @test */ + #[Test] public function notesJsonFeedIsPresent(): void { Note::factory()->count(3)->create(); @@ -114,7 +109,7 @@ class FeedsTest extends TestCase $response->assertOk(); } - /** @test */ + #[Test] public function notesJf2FeedIsPresent(): void { Note::factory()->count(3)->create(); @@ -139,9 +134,8 @@ class FeedsTest extends TestCase /** * Each JSON feed item must have one of `content_text` or `content_html`, * and whichever one they have can’t be `null`. - * - * @test */ + #[Test] public function jsonFeedsHaveRequiredAttributes(): void { Note::factory()->count(3)->create(); @@ -161,7 +155,7 @@ class FeedsTest extends TestCase } } - /** @test */ + #[Test] public function jsonNoteFeedLoadsPlaceDataWithoutLazyLoading(): void { $place = Place::factory()->create(); diff --git a/tests/Feature/FrontPageTest.php b/tests/Feature/FrontPageTest.php index 6f24a851..b78191bf 100644 --- a/tests/Feature/FrontPageTest.php +++ b/tests/Feature/FrontPageTest.php @@ -7,13 +7,14 @@ use App\Models\Bookmark; use App\Models\Like; use App\Models\Note; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class FrontPageTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function frontPageLoadsAllContent(): void { Note::factory()->create(['note' => 'Note 1']); diff --git a/tests/Feature/HorizonTest.php b/tests/Feature/HorizonTest.php index e1f5124f..f4566e2f 100644 --- a/tests/Feature/HorizonTest.php +++ b/tests/Feature/HorizonTest.php @@ -3,15 +3,15 @@ namespace Tests\Feature; use App\Models\User; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class HorizonTest extends TestCase { /** * Horizon has its own test suite, here we just test it has been installed successfully. - * - * @test */ + #[Test] public function horizonIsInstalled(): void { $user = User::factory()->create([ diff --git a/tests/Feature/IndieAuthTest.php b/tests/Feature/IndieAuthTest.php index 20c388b7..78ba8130 100644 --- a/tests/Feature/IndieAuthTest.php +++ b/tests/Feature/IndieAuthTest.php @@ -31,8 +31,8 @@ class IndieAuthTest extends TestCase 'authorization_endpoint' => route('indieauth.start'), 'token_endpoint' => route('indieauth.token'), 'code_challenge_methods_supported' => ['S256'], - //'introspection_endpoint' => 'introspection_endpoint', - //'introspection_endpoint_auth_methods_supported' => ['none'], + // 'introspection_endpoint' => 'introspection_endpoint', + // 'introspection_endpoint_auth_methods_supported' => ['none'], ]); } diff --git a/tests/Feature/LikesTest.php b/tests/Feature/LikesTest.php index 45c24e63..3f13724a 100644 --- a/tests/Feature/LikesTest.php +++ b/tests/Feature/LikesTest.php @@ -14,6 +14,7 @@ use GuzzleHttp\Psr7\Response; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Queue; use Jonnybarnes\WebmentionsParser\Authorship; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; use Tests\TestToken; @@ -22,14 +23,14 @@ class LikesTest extends TestCase use RefreshDatabase; use TestToken; - /** @test */ + #[Test] public function likesPageHasCorrectView(): void { $response = $this->get('/likes'); $response->assertViewIs('likes.index'); } - /** @test */ + #[Test] public function singleLikePageHasCorrectView(): void { $like = Like::factory()->create(); @@ -37,7 +38,7 @@ class LikesTest extends TestCase $response->assertViewIs('likes.show'); } - /** @test */ + #[Test] public function checkLikeCreatedFromMicropubApiRequests(): void { Queue::fake(); @@ -57,7 +58,7 @@ class LikesTest extends TestCase $this->assertDatabaseHas('likes', ['url' => 'https://example.org/blog-post']); } - /** @test */ + #[Test] public function checkLikeCreatedFromMicropubWebRequests(): void { Queue::fake(); @@ -75,7 +76,7 @@ class LikesTest extends TestCase $this->assertDatabaseHas('likes', ['url' => 'https://example.org/blog-post']); } - /** @test */ + #[Test] public function likeWithSimpleAuthor(): void { $like = new Like; @@ -114,7 +115,7 @@ class LikesTest extends TestCase $this->assertEquals('Fred Bloggs', Like::find($id)->author_name); } - /** @test */ + #[Test] public function likeWithHCard(): void { $like = new Like; @@ -157,7 +158,7 @@ class LikesTest extends TestCase $this->assertEquals('Fred Bloggs', Like::find($id)->author_name); } - /** @test */ + #[Test] public function likeWithoutMicroformats(): void { $like = new Like; @@ -193,7 +194,7 @@ class LikesTest extends TestCase $this->assertNull(Like::find($id)->author_name); } - /** @test */ + #[Test] public function likeThatIsATweet(): void { $like = new Like; @@ -219,10 +220,9 @@ class LikesTest extends TestCase 'author_url' => 'https://twitter.com/jonnybarnes', 'html' => '
HTML of the tweet embed
', ]; - $codebirdMock = $this->getMockBuilder(Codebird::class) - ->addMethods(['statuses_oembed']) - ->getMock(); - $codebirdMock->method('statuses_oembed') + $codebirdMock = $this->createPartialMock(Codebird::class, ['__call']); + $codebirdMock->method('__call') + ->with('statuses_oembed', $this->anything()) ->willReturn($info); $this->app->instance(Codebird::class, $codebirdMock); @@ -233,7 +233,7 @@ class LikesTest extends TestCase $this->assertEquals('Jonny Barnes', Like::find($id)->author_name); } - /** @test */ + #[Test] public function noErrorForFailureToPosseWithBridgy(): void { $like = new Like; @@ -257,10 +257,9 @@ class LikesTest extends TestCase 'author_url' => 'https://twitter.com/jonnybarnes', 'html' => '
HTML of the tweet embed
', ]; - $codebirdMock = $this->getMockBuilder(Codebird::class) - ->addMethods(['statuses_oembed']) - ->getMock(); - $codebirdMock->method('statuses_oembed') + $codebirdMock = $this->createPartialMock(Codebird::class, ['__call']); + $codebirdMock->method('__call') + ->with('statuses_oembed', $this->anything()) ->willReturn($info); $this->app->instance(Codebird::class, $codebirdMock); @@ -271,7 +270,7 @@ class LikesTest extends TestCase $this->assertEquals('Jonny Barnes', Like::find($id)->author_name); } - /** @test */ + #[Test] public function unknownLikeGivesNotFoundResponse(): void { $response = $this->get('/likes/202'); diff --git a/tests/Feature/MicropubControllerTest.php b/tests/Feature/MicropubControllerTest.php index 06935d55..2cd75fc3 100644 --- a/tests/Feature/MicropubControllerTest.php +++ b/tests/Feature/MicropubControllerTest.php @@ -15,6 +15,7 @@ use Carbon\Carbon; use Faker\Factory; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Queue; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; use Tests\TestToken; @@ -23,7 +24,7 @@ class MicropubControllerTest extends TestCase use RefreshDatabase; use TestToken; - /** @test */ + #[Test] public function micropubGetRequestWithoutTokenReturnsErrorResponse(): void { $response = $this->get('/api/post'); @@ -31,7 +32,7 @@ class MicropubControllerTest extends TestCase $response->assertJsonFragment(['error_description' => 'No access token was provided in the request']); } - /** @test */ + #[Test] public function micropubGetRequestWithoutValidTokenReturnsErrorResponse(): void { $response = $this->get('/api/post', ['HTTP_Authorization' => 'Bearer abc123']); @@ -42,9 +43,8 @@ class MicropubControllerTest extends TestCase /** * Test a GET request for the micropub endpoint with a valid token gives a * 200 response. Check token information is also returned in the response. - * - * @test */ + #[Test] public function micropubGetRequestWithValidTokenReturnsOkResponse(): void { $response = $this->get('/api/post', ['HTTP_Authorization' => 'Bearer ' . $this->getToken()]); @@ -52,14 +52,14 @@ class MicropubControllerTest extends TestCase $response->assertJsonFragment(['response' => 'token']); } - /** @test */ + #[Test] public function micropubClientsCanRequestSyndicationTargetsCanBeEmpty(): void { $response = $this->get('/api/post?q=syndicate-to', ['HTTP_Authorization' => 'Bearer ' . $this->getToken()]); $response->assertJsonFragment(['syndicate-to' => []]); } - /** @test */ + #[Test] public function micropubClientsCanRequestSyndicationTargetsPopulatesFromModel(): void { $syndicationTarget = SyndicationTarget::factory()->create(); @@ -67,7 +67,7 @@ class MicropubControllerTest extends TestCase $response->assertJsonFragment(['uid' => $syndicationTarget->uid]); } - /** @test */ + #[Test] public function micropubClientsCanRequestKnownNearbyPlaces(): void { Place::factory()->create([ @@ -80,8 +80,6 @@ class MicropubControllerTest extends TestCase } /** - * @test - * * @todo Add uncertainty parameter * public function micropubClientsCanRequestKnownNearbyPlacesWithUncertaintyParameter(): void @@ -89,22 +87,21 @@ class MicropubControllerTest extends TestCase $response = $this->get('/api/post?q=geo:53.5,-2.38', ['HTTP_Authorization' => 'Bearer ' . $this->getToken()]); $response->assertJson(['places' => [['slug' => 'the-bridgewater-pub']]]); }*/ - - /** @test */ + #[Test] public function returnEmptyResultWhenMicropubClientRequestsKnownNearbyPlaces(): void { $response = $this->get('/api/post?q=geo:1.23,4.56', ['HTTP_Authorization' => 'Bearer ' . $this->getToken()]); $response->assertJson(['places' => []]); } - /** @test */ + #[Test] public function micropubClientCanRequestEndpointConfig(): void { $response = $this->get('/api/post?q=config', ['HTTP_Authorization' => 'Bearer ' . $this->getToken()]); $response->assertJsonFragment(['media-endpoint' => route('media-endpoint')]); } - /** @test */ + #[Test] public function micropubClientCanCreateNewNote(): void { $faker = Factory::create(); @@ -123,7 +120,7 @@ class MicropubControllerTest extends TestCase $this->assertDatabaseHas('notes', ['note' => $note]); } - /** @test */ + #[Test] public function micropubClientCanRequestTheNewNoteIsSyndicatedToMastodonAndBluesky(): void { Queue::fake(); @@ -157,7 +154,7 @@ class MicropubControllerTest extends TestCase Queue::assertPushed(SyndicateNoteToBluesky::class); } - /** @test */ + #[Test] public function micropubClientsCanCreateNewPlaces(): void { $response = $this->post( @@ -173,7 +170,7 @@ class MicropubControllerTest extends TestCase $this->assertDatabaseHas('places', ['slug' => 'the-barton-arms']); } - /** @test */ + #[Test] public function micropubClientsCanCreateNewPlacesWithOldLocationSyntax(): void { $response = $this->post( @@ -190,7 +187,7 @@ class MicropubControllerTest extends TestCase $this->assertDatabaseHas('places', ['slug' => 'the-barton-arms']); } - /** @test */ + #[Test] public function micropubClientWebRequestWithInvalidTokenReturnsErrorResponse(): void { $response = $this->post( @@ -205,7 +202,7 @@ class MicropubControllerTest extends TestCase $response->assertJson(['error' => 'invalid_token']); } - /** @test */ + #[Test] public function micropubClientWebRequestWithTokenWithoutAnyScopesReturnsErrorResponse(): void { $response = $this->post( @@ -220,7 +217,7 @@ class MicropubControllerTest extends TestCase $response->assertJson(['error_description' => 'The provided token has no scopes']); } - /** @test */ + #[Test] public function micropubClientWebRequestWithTokenWithoutCreateScopesReturnsErrorResponse(): void { $response = $this->post( @@ -238,9 +235,8 @@ class MicropubControllerTest extends TestCase /** * Test a valid micropub requests using JSON syntax creates a new note. - * - * @test */ + #[Test] public function micropubClientApiRequestCreatesNewNote(): void { Queue::fake(); @@ -286,9 +282,8 @@ class MicropubControllerTest extends TestCase /** * Test a valid micropub requests using JSON syntax creates a new note with * existing self-created place. - * - * @test */ + #[Test] public function micropubClientApiRequestCreatesNewNoteWithExistingPlaceInLocationData(): void { $place = new Place; @@ -317,9 +312,8 @@ class MicropubControllerTest extends TestCase /** * Test a valid micropub requests using JSON syntax creates a new note with * a new place defined in the location block. - * - * @test */ + #[Test] public function micropubClientApiRequestCreatesNewNoteWithNewPlaceInLocationData(): void { $faker = Factory::create(); @@ -353,9 +347,8 @@ class MicropubControllerTest extends TestCase /** * Test a valid micropub requests using JSON syntax creates a new note without * a new place defined in the location block if there is missing data. - * - * @test */ + #[Test] public function micropubClientApiRequestCreatesNewNoteWithoutNewPlaceInLocationData(): void { $faker = Factory::create(); @@ -387,9 +380,8 @@ class MicropubControllerTest extends TestCase /** * Test a micropub requests using JSON syntax without a token returns an * error. Also check the message. - * - * @test */ + #[Test] public function micropubClientApiRequestWithoutTokenReturnsError(): void { $faker = Factory::create(); @@ -414,9 +406,8 @@ class MicropubControllerTest extends TestCase /** * Test a micropub requests using JSON syntax without a valid token returns * an error. Also check the message. - * - * @test */ + #[Test] public function micropubClientApiRequestWithTokenWithInsufficientPermissionReturnsError(): void { $faker = Factory::create(); @@ -439,7 +430,7 @@ class MicropubControllerTest extends TestCase ->assertStatus(401); } - /** @test */ + #[Test] public function micropubClientApiRequestForUnsupportedPostTypeReturnsError(): void { $response = $this->postJson( @@ -460,7 +451,7 @@ class MicropubControllerTest extends TestCase ->assertStatus(500); } - /** @test */ + #[Test] public function micropubClientApiRequestCreatesNewPlace(): void { $faker = Factory::create(); @@ -480,7 +471,7 @@ class MicropubControllerTest extends TestCase ->assertStatus(201); } - /** @test */ + #[Test] public function micropubClientApiRequestCreatesNewPlaceWithUncertaintyParameter(): void { $faker = Factory::create(); @@ -500,7 +491,7 @@ class MicropubControllerTest extends TestCase ->assertStatus(201); } - /** @test */ + #[Test] public function micropubClientApiRequestUpdatesExistingNote(): void { $note = Note::factory()->create(); @@ -520,7 +511,7 @@ class MicropubControllerTest extends TestCase ->assertStatus(200); } - /** @test */ + #[Test] public function micropubClientApiRequestUpdatesNoteSyndicationLinks(): void { $note = Note::factory()->create(); @@ -547,7 +538,7 @@ class MicropubControllerTest extends TestCase ]); } - /** @test */ + #[Test] public function micropubClientApiRequestAddsImageToNote(): void { $note = Note::factory()->create(); @@ -570,7 +561,7 @@ class MicropubControllerTest extends TestCase ]); } - /** @test */ + #[Test] public function micropubClientApiRequestReturnsErrorTryingToUpdateNonNoteModel(): void { $response = $this->postJson( @@ -589,7 +580,7 @@ class MicropubControllerTest extends TestCase ->assertStatus(500); } - /** @test */ + #[Test] public function micropubClientApiRequestReturnsErrorTryingToUpdateNonExistingNote(): void { $response = $this->postJson( @@ -608,7 +599,7 @@ class MicropubControllerTest extends TestCase ->assertStatus(404); } - /** @test */ + #[Test] public function micropubClientApiRequestReturnsErrorWhenTryingToUpdateUnsupportedProperty(): void { $note = Note::factory()->create(); @@ -628,7 +619,7 @@ class MicropubControllerTest extends TestCase ->assertStatus(500); } - /** @test */ + #[Test] public function micropubClientApiRequestWithTokenWithInsufficientScopeReturnsError(): void { $response = $this->postJson( @@ -647,7 +638,7 @@ class MicropubControllerTest extends TestCase ->assertJson(['error' => 'insufficient_scope']); } - /** @test */ + #[Test] public function micropubClientApiRequestCanReplaceNoteSyndicationTargets(): void { $note = Note::factory()->create(); @@ -674,7 +665,7 @@ class MicropubControllerTest extends TestCase ]); } - /** @test */ + #[Test] public function micropubClientWebRequestCanEncodeTokenWithinTheForm(): void { $faker = Factory::create(); @@ -692,7 +683,7 @@ class MicropubControllerTest extends TestCase $this->assertDatabaseHas('notes', ['note' => $note]); } - /** @test */ + #[Test] public function micropubClientApiRequestCreatesArticlesWhenItIncludesTheNameProperty(): void { $faker = Factory::create(); diff --git a/tests/Feature/MicropubMediaTest.php b/tests/Feature/MicropubMediaTest.php index 527116cf..c38483f1 100644 --- a/tests/Feature/MicropubMediaTest.php +++ b/tests/Feature/MicropubMediaTest.php @@ -11,6 +11,7 @@ use Illuminate\Http\UploadedFile; use Illuminate\Support\Facades\Queue; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; use Tests\TestToken; @@ -19,7 +20,7 @@ class MicropubMediaTest extends TestCase use RefreshDatabase; use TestToken; - /** @test */ + #[Test] public function emptyResponseForLastUploadWhenNoneFound(): void { // Make sure there’s no media @@ -33,7 +34,7 @@ class MicropubMediaTest extends TestCase $response->assertJson(['url' => null]); } - /** @test */ + #[Test] public function getRequestWithInvalidTokenReturnsErrorResponse(): void { $response = $this->get( @@ -44,7 +45,7 @@ class MicropubMediaTest extends TestCase $response->assertJsonFragment(['error_description' => 'The provided token did not pass validation']); } - /** @test */ + #[Test] public function getRequestWithTokenWithoutScopeReturnsErrorResponse(): void { $response = $this->get( @@ -55,7 +56,7 @@ class MicropubMediaTest extends TestCase $response->assertJsonFragment(['error_description' => 'The provided token has no scopes']); } - /** @test */ + #[Test] public function getRequestWithTokenWithInsufficientScopeReturnsErrorResponse(): void { $response = $this->get( @@ -66,7 +67,7 @@ class MicropubMediaTest extends TestCase $response->assertJsonFragment(['error_description' => 'The token’s scope does not have the necessary requirements.']); } - /** @test */ + #[Test] public function emptyGetRequestWithTokenReceivesOkResponse(): void { $response = $this->get( @@ -77,7 +78,7 @@ class MicropubMediaTest extends TestCase $response->assertJson(['status' => 'OK']); } - /** @test */ + #[Test] public function clientCanListLastUpload(): void { Queue::fake(); @@ -102,11 +103,11 @@ class MicropubMediaTest extends TestCase $lastUploadResponse->assertJson(['url' => $response->headers->get('Location')]); // now remove file - unlink(storage_path('app/media/') . $filename); - $this->removeDirIfEmpty(storage_path('app/media')); + unlink(storage_path('app/private/media/') . $filename); + $this->removeDirIfEmpty(storage_path('app/private/media')); } - /** @test */ + #[Test] public function clientCanSourceUploads(): void { Queue::fake(); @@ -134,11 +135,11 @@ class MicropubMediaTest extends TestCase ]]]); // now remove file - unlink(storage_path('app/media/') . $filename); - $this->removeDirIfEmpty(storage_path('app/media')); + unlink(storage_path('app/private/media/') . $filename); + $this->removeDirIfEmpty(storage_path('app/private/media')); } - /** @test */ + #[Test] public function clientCanSourceUploadsWithLimit(): void { Queue::fake(); @@ -168,11 +169,11 @@ class MicropubMediaTest extends TestCase $this->assertCount(1, json_decode($sourceUploadResponse->getContent(), true)['items']); // now remove file - unlink(storage_path('app/media/') . $filename); - $this->removeDirIfEmpty(storage_path('app/media')); + unlink(storage_path('app/private/media/') . $filename); + $this->removeDirIfEmpty(storage_path('app/private/media')); } - /** @test */ + #[Test] public function mediaEndpointUploadRequiresFile(): void { $response = $this->post( @@ -188,7 +189,7 @@ class MicropubMediaTest extends TestCase ]); } - /** @test */ + #[Test] public function errorResponseForUnknownQValue(): void { $response = $this->get( @@ -199,7 +200,7 @@ class MicropubMediaTest extends TestCase $response->assertJson(['error' => 'invalid_request']); } - /** @test */ + #[Test] public function optionsRequestReturnsCorsResponse(): void { $response = $this->options('/api/media'); @@ -208,7 +209,7 @@ class MicropubMediaTest extends TestCase $response->assertHeader('access-control-allow-origin', '*'); } - /** @test */ + #[Test] public function mediaEndpointRequestWithInvalidTokenReturns400Response(): void { $response = $this->post( @@ -220,7 +221,7 @@ class MicropubMediaTest extends TestCase $response->assertJsonFragment(['error_description' => 'The provided token did not pass validation']); } - /** @test */ + #[Test] public function mediaEndpointRequestWithTokenWithNoScopeReturns400Response(): void { $response = $this->post( @@ -232,7 +233,7 @@ class MicropubMediaTest extends TestCase $response->assertJsonFragment(['error_description' => 'The provided token has no scopes']); } - /** @test */ + #[Test] public function mediaEndpointRequestWithInsufficientTokenScopesReturns401Response(): void { $response = $this->post( @@ -246,7 +247,7 @@ class MicropubMediaTest extends TestCase ]); } - /** @test */ + #[Test] public function mediaEndpointUploadFile(): void { Queue::fake(); @@ -265,11 +266,11 @@ class MicropubMediaTest extends TestCase Queue::assertPushed(ProcessMedia::class); Storage::disk('local')->assertExists($filename); // now remove file - unlink(storage_path('app/') . $filename); - $this->removeDirIfEmpty(storage_path('app/media')); + unlink(storage_path('app/private/') . $filename); + $this->removeDirIfEmpty(storage_path('app/private/media')); } - /** @test */ + #[Test] public function mediaEndpointUploadAudioFile(): void { Queue::fake(); @@ -288,11 +289,11 @@ class MicropubMediaTest extends TestCase Queue::assertPushed(ProcessMedia::class); Storage::disk('local')->assertExists($filename); // now remove file - unlink(storage_path('app/') . $filename); - $this->removeDirIfEmpty(storage_path('app/media')); + unlink(storage_path('app/private/') . $filename); + $this->removeDirIfEmpty(storage_path('app/private/media')); } - /** @test */ + #[Test] public function mediaEndpointUploadVideoFile(): void { Queue::fake(); @@ -311,11 +312,11 @@ class MicropubMediaTest extends TestCase Queue::assertPushed(ProcessMedia::class); Storage::disk('local')->assertExists($filename); // now remove file - unlink(storage_path('app/') . $filename); - $this->removeDirIfEmpty(storage_path('app/media')); + unlink(storage_path('app/private/') . $filename); + $this->removeDirIfEmpty(storage_path('app/private/media')); } - /** @test */ + #[Test] public function mediaEndpointUploadDocumentFile(): void { Queue::fake(); @@ -333,11 +334,11 @@ class MicropubMediaTest extends TestCase Queue::assertPushed(ProcessMedia::class); Storage::disk('local')->assertExists($filename); // now remove file - unlink(storage_path('app/') . $filename); - $this->removeDirIfEmpty(storage_path('app/media')); + unlink(storage_path('app/private/') . $filename); + $this->removeDirIfEmpty(storage_path('app/private/media')); } - /** @test */ + #[Test] public function mediaEndpointUploadInvalidFileReturnsError(): void { Queue::fake(); diff --git a/tests/Feature/NotesControllerTest.php b/tests/Feature/NotesControllerTest.php index bf1c315f..43e5a050 100644 --- a/tests/Feature/NotesControllerTest.php +++ b/tests/Feature/NotesControllerTest.php @@ -6,6 +6,7 @@ namespace Tests\Feature; use App\Models\Note; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class NotesControllerTest extends TestCase @@ -15,9 +16,8 @@ class NotesControllerTest extends TestCase /** * Test the `/notes` page returns 200, this should * mean the database is being hit. - * - * @test */ + #[Test] public function notesPageLoads(): void { $response = $this->get('/notes'); @@ -26,9 +26,8 @@ class NotesControllerTest extends TestCase /** * Test a specific note. - * - * @test */ + #[Test] public function specificNotePageLoads(): void { $note = Note::factory()->create(); @@ -46,9 +45,8 @@ class NotesControllerTest extends TestCase /** * Test that `/note/{decID}` redirects to `/notes/{nb60id}`. - * - * @test */ + #[Test] public function oldNoteUrlsRedirect(): void { $note = Note::factory()->create(); @@ -58,23 +56,22 @@ class NotesControllerTest extends TestCase /** * Visit the tagged page and check the tag view data. - * - * @test */ + #[Test] public function taggedNotesPageLoads(): void { $response = $this->get('/notes/tagged/beer'); $response->assertViewHas('tag', 'beer'); } - /** @test */ + #[Test] public function unknownNoteGives404(): void { $response = $this->get('/notes/112233'); $response->assertNotFound(); } - /** @test */ + #[Test] public function checkNoteIdNotOutOfRange(): void { $response = $this->get('/notes/photou-photologo'); diff --git a/tests/Feature/OwnYourGramTest.php b/tests/Feature/OwnYourGramTest.php index 076f114b..a1ff9026 100644 --- a/tests/Feature/OwnYourGramTest.php +++ b/tests/Feature/OwnYourGramTest.php @@ -6,6 +6,7 @@ namespace Tests\Feature; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Carbon; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; use Tests\TestToken; @@ -14,7 +15,7 @@ class OwnYourGramTest extends TestCase use RefreshDatabase; use TestToken; - /** @test */ + #[Test] public function postingInstagramUrlSavesMediaPath(): void { $response = $this->json( diff --git a/tests/Feature/ParseCachedWebMentionsTest.php b/tests/Feature/ParseCachedWebMentionsTest.php index ca829491..ae0e9b3c 100644 --- a/tests/Feature/ParseCachedWebMentionsTest.php +++ b/tests/Feature/ParseCachedWebMentionsTest.php @@ -9,6 +9,7 @@ use Illuminate\FileSystem\FileSystem; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Artisan; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ParseCachedWebMentionsTest extends TestCase @@ -25,7 +26,7 @@ class ParseCachedWebMentionsTest extends TestCase copy(__DIR__ . '/../tantek.html', storage_path('HTML') . '/http/tantek.com/index.html'); } - /** @test */ + #[Test] public function parseWebmentionHtml(): void { $webmentionAaron = WebMention::factory()->create([ diff --git a/tests/Feature/PlacesTest.php b/tests/Feature/PlacesTest.php index ba7c69d8..82a3e280 100644 --- a/tests/Feature/PlacesTest.php +++ b/tests/Feature/PlacesTest.php @@ -6,6 +6,7 @@ namespace Tests\Feature; use App\Models\Place; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class PlacesTest extends TestCase @@ -14,9 +15,8 @@ class PlacesTest extends TestCase /** * Test the `/places` page for OK response. - * - * @test */ + #[Test] public function placesPageLoads(): void { $response = $this->get('/places'); @@ -25,9 +25,8 @@ class PlacesTest extends TestCase /** * Test a specific place. - * - * @test */ + #[Test] public function singlePlacePageLoads(): void { $place = Place::factory()->create(); @@ -35,7 +34,7 @@ class PlacesTest extends TestCase $response->assertViewHas('place', $place); } - /** @test */ + #[Test] public function unknownPlaceGives404() { $response = $this->get('/places/unknown'); diff --git a/tests/Feature/ReDownloadWebMentionsTest.php b/tests/Feature/ReDownloadWebMentionsTest.php index 6d46548f..f3ea0b6f 100644 --- a/tests/Feature/ReDownloadWebMentionsTest.php +++ b/tests/Feature/ReDownloadWebMentionsTest.php @@ -9,13 +9,14 @@ use App\Models\WebMention; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\Queue; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ReDownloadWebMentionsTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function downloadJobGetsQueued(): void { Queue::fake(); diff --git a/tests/Feature/SearchTest.php b/tests/Feature/SearchTest.php index a0dd43bc..582e8042 100644 --- a/tests/Feature/SearchTest.php +++ b/tests/Feature/SearchTest.php @@ -5,11 +5,12 @@ declare(strict_types=1); namespace Tests\Feature; use App\Models\Note; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class SearchTest extends TestCase { - /** @test */ + #[Test] public function searchEndpointReturnsResults(): void { Note::factory(10)->create(); diff --git a/tests/Feature/ShortURLsControllerTest.php b/tests/Feature/ShortURLsControllerTest.php index 55774b91..989f3b5b 100644 --- a/tests/Feature/ShortURLsControllerTest.php +++ b/tests/Feature/ShortURLsControllerTest.php @@ -4,32 +4,33 @@ declare(strict_types=1); namespace Tests\Feature; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ShortURLsControllerTest extends TestCase { - /** @test */ + #[Test] public function shortDomainRedirectsToLongDomain(): void { $response = $this->get('https://' . config('url.shorturl')); $response->assertRedirect(config('app.url')); } - /** @test */ + #[Test] public function shortDomainSlashAtRedirectsToTwitter(): void { $response = $this->get('https://' . config('url.shorturl') . '/@'); $response->assertRedirect('https://twitter.com/jonnybarnes'); } - /** @test */ + #[Test] public function shortDomainSlashTRedirectsToLongDomainSlashNotes(): void { $response = $this->get('https://' . config('url.shorturl') . '/t/E'); $response->assertRedirect(config('app.url') . '/notes/E'); } - /** @test */ + #[Test] public function shortDomainSlashBRedirectsToLongDomainSlashBlog(): void { $response = $this->get('https://' . config('url.shorturl') . '/b/1'); diff --git a/tests/Feature/SwarmTest.php b/tests/Feature/SwarmTest.php index 7283aa50..84642009 100644 --- a/tests/Feature/SwarmTest.php +++ b/tests/Feature/SwarmTest.php @@ -8,6 +8,7 @@ use App\Jobs\SendWebMentions; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Queue; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; use Tests\TestToken; @@ -18,9 +19,8 @@ class SwarmTest extends TestCase /** * Given a check in to Foursquare, this is the content Ownyourswarm will post to us. - * - * @test */ + #[Test] public function mockedOwnyourswarmRequestWithFoursquare(): void { Queue::fake(); @@ -66,9 +66,8 @@ class SwarmTest extends TestCase /** * This request would actually come from another client than OwnYourSwarm, but we’re testing * OpenStreetMap data. - * - * @test */ + #[Test] public function mockedOwnyourswarmRequestWithOsm(): void { Queue::fake(); @@ -109,9 +108,8 @@ class SwarmTest extends TestCase /** * This request would actually come from another client than OwnYourSwarm, as that would include a Foursquare URL - * - * @test */ + #[Test] public function mockedOwnyourswarmRequestWithoutKnownExternalUrl(): void { Queue::fake(); @@ -150,7 +148,7 @@ class SwarmTest extends TestCase Queue::assertPushed(SendWebMentions::class); } - /** @test */ + #[Test] public function mockedOwnyourswarmRequestWithNoTextContent(): void { $response = $this->json( @@ -187,7 +185,7 @@ class SwarmTest extends TestCase $this->get($response->__get('headers')->get('location'))->assertSee('📍'); } - /** @test */ + #[Test] public function mockedOwnyourswarmRequestSavesJustThePostWhenAnErrorOccursInTheCheckinData(): void { Queue::fake(); @@ -225,7 +223,7 @@ class SwarmTest extends TestCase Queue::assertPushed(SendWebMentions::class); } - /** @test */ + #[Test] public function mockedOwnyourswarmRequestWithHAdrLocation(): void { Queue::fake(); @@ -271,7 +269,7 @@ class SwarmTest extends TestCase Queue::assertPushed(SendWebMentions::class); } - /** @test */ + #[Test] public function ownyourswarmCheckinTestUsingRealData(): void { $response = $this->json( diff --git a/tests/Feature/TokenServiceTest.php b/tests/Feature/TokenServiceTest.php index f9b3773c..24f581b3 100644 --- a/tests/Feature/TokenServiceTest.php +++ b/tests/Feature/TokenServiceTest.php @@ -9,6 +9,7 @@ use DateTimeImmutable; use Lcobucci\JWT\Configuration; use Lcobucci\JWT\Signer\Key\InMemory; use Lcobucci\JWT\Validation\RequiredConstraintsViolated; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class TokenServiceTest extends TestCase @@ -16,9 +17,8 @@ class TokenServiceTest extends TestCase /** * Given the token is dependent on a random nonce, the time of creation and * the APP_KEY, to test, we shall create a token, and then verify it. - * - * @test */ + #[Test] public function tokenserviceCreatesAndValidatesTokens(): void { $tokenService = new TokenService; @@ -37,11 +37,7 @@ class TokenServiceTest extends TestCase $this->assertSame($data, $validData); } - /** - * @test - * - * @throws \Exception - */ + #[Test] public function tokensWithDifferentSigningKeyThrowsException(): void { $this->expectException(RequiredConstraintsViolated::class); diff --git a/tests/Feature/WebMentionsControllerTest.php b/tests/Feature/WebMentionsControllerTest.php index 27e9d0eb..d9482450 100644 --- a/tests/Feature/WebMentionsControllerTest.php +++ b/tests/Feature/WebMentionsControllerTest.php @@ -8,13 +8,14 @@ use App\Jobs\ProcessWebMention; use App\Models\Note; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Queue; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class WebMentionsControllerTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function webmentionEndpointCanServeBrowserRequest(): void { $response = $this->get('/webmention'); @@ -23,9 +24,8 @@ class WebMentionsControllerTest extends TestCase /** * Test webmentions without source and target are rejected. - * - * @test */ + #[Test] public function webmentionsWithoutSourceAndTargetAreRejected(): void { $response = $this->call('POST', '/webmention', ['source' => 'https://example.org/post/123']); @@ -36,9 +36,8 @@ class WebMentionsControllerTest extends TestCase * Test invalid target gives a 400 response. * * In this case an invalid target is a URL that doesn’t exist on our domain. - * - * @test */ + #[Test] public function invalidTargetReturnsErrorResponse(): void { $response = $this->call('POST', '/webmention', [ @@ -50,9 +49,8 @@ class WebMentionsControllerTest extends TestCase /** * Test blog target gets a 501 response due to our not supporting it. - * - * @test */ + #[Test] public function blogTargetReturns501Response(): void { $response = $this->call('POST', '/webmention', [ @@ -64,9 +62,8 @@ class WebMentionsControllerTest extends TestCase /** * Test that a non-existent note gives a 400 response. - * - * @test */ + #[Test] public function nonexistentNoteReturnsErrorResponse(): void { $response = $this->call('POST', '/webmention', [ @@ -76,7 +73,7 @@ class WebMentionsControllerTest extends TestCase $response->assertStatus(400); } - /** @test */ + #[Test] public function legitimateWebmentionTriggersProcessWebmentionJob(): void { Queue::fake(); diff --git a/tests/Unit/ArticlesTest.php b/tests/Unit/ArticlesTest.php index e214d9d1..a43a7006 100644 --- a/tests/Unit/ArticlesTest.php +++ b/tests/Unit/ArticlesTest.php @@ -7,13 +7,14 @@ namespace Tests\Unit; use App\Models\Article; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Carbon; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ArticlesTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function titleSlugIsGeneratedAutomatically(): void { $article = new Article; @@ -24,7 +25,7 @@ class ArticlesTest extends TestCase $this->assertEquals('my-title', $article->titleurl); } - /** @test */ + #[Test] public function markdownContentIsConverted(): void { $article = new Article; @@ -33,7 +34,7 @@ class ArticlesTest extends TestCase $this->assertEquals('

Some markdown

' . PHP_EOL, $article->html); } - /** @test */ + #[Test] public function weGenerateTheDifferentTimeAttributes(): void { $article = Article::create([ @@ -47,7 +48,7 @@ class ArticlesTest extends TestCase $this->assertEquals($article->pubdate, $article->updated_at->toRSSString()); } - /** @test */ + #[Test] public function weGenerateTheArticleLinkFromTheSlug(): void { $article = Article::create([ @@ -62,7 +63,7 @@ class ArticlesTest extends TestCase ); } - /** @test */ + #[Test] public function dateScopeReturnsExpectedArticles(): void { Article::factory()->create([ @@ -81,7 +82,7 @@ class ArticlesTest extends TestCase $this->assertCount(2, $emptyScope); } - /** @test */ + #[Test] public function dateScopeReturnsExpectedArticlesForDecember(): void { Article::factory()->create([ diff --git a/tests/Unit/BookmarksTest.php b/tests/Unit/BookmarksTest.php index 3a4aabd7..0f30267b 100644 --- a/tests/Unit/BookmarksTest.php +++ b/tests/Unit/BookmarksTest.php @@ -10,14 +10,15 @@ use GuzzleHttp\Client; use GuzzleHttp\Handler\MockHandler; use GuzzleHttp\HandlerStack; use GuzzleHttp\Psr7\Response; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class BookmarksTest extends TestCase { - /** - * @test + /* + * @\test * - * @group puppeteer + * @\group puppeteer * public function takeScreenshotOfDuckDuckGo() { @@ -25,7 +26,7 @@ class BookmarksTest extends TestCase $this->assertTrue(file_exists(public_path() . '/assets/img/bookmarks/' . $uuid . '.png')); }*/ - /** @test */ + #[Test] public function archiveLinkMethodCallsArchiveService(): void { $mock = new MockHandler([ @@ -38,7 +39,7 @@ class BookmarksTest extends TestCase $this->assertEquals('/web/1234/example.org', $url); } - /** @test */ + #[Test] public function archiveLinkMethodThrowsAnExceptionOnError(): void { $this->expectException(InternetArchiveException::class); @@ -52,7 +53,7 @@ class BookmarksTest extends TestCase (new BookmarkService)->getArchiveLink('https://example.org'); } - /** @test */ + #[Test] public function archiveLinkMethodThrowsAnExceptionIfNoLocationReturned(): void { $this->expectException(InternetArchiveException::class); diff --git a/tests/Unit/HelpersTest.php b/tests/Unit/HelpersTest.php index 9c3af608..601296ff 100644 --- a/tests/Unit/HelpersTest.php +++ b/tests/Unit/HelpersTest.php @@ -4,28 +4,27 @@ declare(strict_types=1); namespace Tests\Unit; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class HelpersTest extends TestCase { - /** @test */ + #[Test] public function normalizeUrlIsIdempotent(): void { $input = 'http://example.org:80/index.php?foo=bar&baz=1'; $this->assertEquals(normalize_url(normalize_url($input)), normalize_url($input)); } - /** - * @test - * - * @dataProvider urlProvider - */ + #[Test] + #[DataProvider('urlProvider')] public function normalizeUrlOnDataProvider(string $input, string $output): void { $this->assertEquals($output, normalize_url($input)); } - /** @test */ + #[Test] public function prettyPrintJson(): void { // phpcs:disable Generic.Files.LineLength.TooLong diff --git a/tests/Unit/Jobs/AddClientToDatabaseJobTest.php b/tests/Unit/Jobs/AddClientToDatabaseJobTest.php index fb8cd504..af07901b 100644 --- a/tests/Unit/Jobs/AddClientToDatabaseJobTest.php +++ b/tests/Unit/Jobs/AddClientToDatabaseJobTest.php @@ -6,13 +6,14 @@ namespace Tests\Unit\Jobs; use App\Jobs\AddClientToDatabase; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class AddClientToDatabaseJobTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function clientIsAddedToDatabaseByJob(): void { $job = new AddClientToDatabase('https://example.org/client'); diff --git a/tests/Unit/Jobs/DownloadWebMentionJobTest.php b/tests/Unit/Jobs/DownloadWebMentionJobTest.php index 03e15a82..6e11a49c 100644 --- a/tests/Unit/Jobs/DownloadWebMentionJobTest.php +++ b/tests/Unit/Jobs/DownloadWebMentionJobTest.php @@ -10,6 +10,7 @@ use GuzzleHttp\Handler\MockHandler; use GuzzleHttp\HandlerStack; use GuzzleHttp\Psr7\Response; use Illuminate\FileSystem\FileSystem; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class DownloadWebMentionJobTest extends TestCase @@ -23,7 +24,7 @@ class DownloadWebMentionJobTest extends TestCase parent::tearDown(); } - /** @test */ + #[Test] public function htmlIsSavedByJob(): void { $this->assertFileDoesNotExist(storage_path('HTML/https')); @@ -51,7 +52,7 @@ class DownloadWebMentionJobTest extends TestCase $this->assertFileDoesNotExist(storage_path('HTML/https/example.org/reply') . '/1.' . date('Y-m-d') . '.backup'); } - /** @test */ + #[Test] public function htmlAndBackupSavedByJob(): void { $this->assertFileDoesNotExist(storage_path('HTML/https')); @@ -86,7 +87,7 @@ class DownloadWebMentionJobTest extends TestCase $this->assertFileExists(storage_path('HTML/https/example.org/reply') . '/1.' . date('Y-m-d') . '.backup'); } - /** @test */ + #[Test] public function indexHtmlFileIsSavedByJobForUrlsEndingWithSlash(): void { $this->assertFileDoesNotExist(storage_path('HTML/https')); diff --git a/tests/Unit/Jobs/ProcessBookmarkJobTest.php b/tests/Unit/Jobs/ProcessBookmarkJobTest.php index 4078712e..f433270b 100644 --- a/tests/Unit/Jobs/ProcessBookmarkJobTest.php +++ b/tests/Unit/Jobs/ProcessBookmarkJobTest.php @@ -11,13 +11,14 @@ use App\Models\Bookmark; use App\Services\BookmarkService; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Queue; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ProcessBookmarkJobTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function archiveLinkIsSavedByJobAndScreenshotJobIsQueued(): void { Queue::fake(); @@ -38,7 +39,7 @@ class ProcessBookmarkJobTest extends TestCase Queue::assertPushed(SaveScreenshot::class); } - /** @test */ + #[Test] public function archiveLinkSavedAsNullWhenExceptionThrown(): void { Queue::fake(); diff --git a/tests/Unit/Jobs/ProcessMediaJobTest.php b/tests/Unit/Jobs/ProcessMediaJobTest.php index ae870d18..daecc00e 100644 --- a/tests/Unit/Jobs/ProcessMediaJobTest.php +++ b/tests/Unit/Jobs/ProcessMediaJobTest.php @@ -7,11 +7,12 @@ namespace Tests\Unit\Jobs; use App\Jobs\ProcessMedia; use Illuminate\Support\Facades\Storage; use Intervention\Image\ImageManager; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ProcessMediaJobTest extends TestCase { - /** @test */ + #[Test] public function nonMediaFilesAreNotSaved(): void { $manager = app()->make(ImageManager::class); @@ -22,7 +23,7 @@ class ProcessMediaJobTest extends TestCase $this->assertFileDoesNotExist(storage_path('app/media/') . 'file.txt'); } - /** @test */ + #[Test] public function smallImagesAreNotResized(): void { $manager = app()->make(ImageManager::class); @@ -37,7 +38,7 @@ class ProcessMediaJobTest extends TestCase Storage::disk('local')->delete('public/media'); } - /** @test */ + #[Test] public function largeImagesHaveSmallerImagesCreated(): void { $manager = app()->make(ImageManager::class); @@ -45,16 +46,17 @@ class ProcessMediaJobTest extends TestCase $job = new ProcessMedia('test-image.jpg'); $job->handle($manager); - Storage::disk('local')->assertExists('public/media/test-image.jpg'); - Storage::disk('local')->assertExists('public/media/test-image-small.jpg'); - Storage::disk('local')->assertExists('public/media/test-image-medium.jpg'); + // These need to look in public disk + Storage::disk('public')->assertExists('media/test-image.jpg'); + Storage::disk('public')->assertExists('media/test-image-small.jpg'); + Storage::disk('public')->assertExists('media/test-image-medium.jpg'); $this->assertFileDoesNotExist(storage_path('app/media/') . 'test-image.jpg'); // Tidy up files created by the job - Storage::disk('local')->delete('public/media/test-image.jpg'); - Storage::disk('local')->delete('public/media/test-image-small.jpg'); - Storage::disk('local')->delete('public/media/test-image-medium.jpg'); + Storage::disk('public')->delete('media/test-image.jpg'); + Storage::disk('public')->delete('media/test-image-small.jpg'); + Storage::disk('public')->delete('media/test-image-medium.jpg'); $this->removeDirIfEmpty(storage_path('app/public/media')); $this->removeDirIfEmpty(storage_path('app/media')); } diff --git a/tests/Unit/Jobs/ProcessWebMentionJobTest.php b/tests/Unit/Jobs/ProcessWebMentionJobTest.php index e9b24bde..1bf56621 100644 --- a/tests/Unit/Jobs/ProcessWebMentionJobTest.php +++ b/tests/Unit/Jobs/ProcessWebMentionJobTest.php @@ -17,6 +17,7 @@ use Illuminate\FileSystem\FileSystem; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Queue; use Jonnybarnes\WebmentionsParser\Parser; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ProcessWebMentionJobTest extends TestCase @@ -32,7 +33,7 @@ class ProcessWebMentionJobTest extends TestCase parent::tearDown(); } - /** @test */ + #[Test] public function failureGettingWebmentionThrowsAnException(): void { $this->expectException(RemoteContentNotFoundException::class); @@ -51,7 +52,7 @@ class ProcessWebMentionJobTest extends TestCase $job->handle($parser, $client); } - /** @test */ + #[Test] public function newWebmentionGetsSavedByJob(): void { Queue::fake(); @@ -83,7 +84,7 @@ class ProcessWebMentionJobTest extends TestCase ]); } - /** @test */ + #[Test] public function existingWebmentionGetsUpdatedByJob(): void { Queue::fake(); @@ -120,7 +121,7 @@ class ProcessWebMentionJobTest extends TestCase ]); } - /** @test */ + #[Test] public function webmentionReplyGetsDeletedWhenReplyToValueChanges(): void { $parser = new Parser; @@ -157,7 +158,7 @@ class ProcessWebMentionJobTest extends TestCase ]); } - /** @test */ + #[Test] public function webmentionLikeGetsDeletedWhenLikeOfValueChanges(): void { $parser = new Parser; @@ -194,7 +195,7 @@ class ProcessWebMentionJobTest extends TestCase ]); } - /** @test */ + #[Test] public function webmentionRepostGetsDeletedWhenRepostOfValueChanges(): void { $parser = new Parser; diff --git a/tests/Unit/Jobs/SaveProfileImageJobTest.php b/tests/Unit/Jobs/SaveProfileImageJobTest.php index 83f476e1..3c418a7a 100644 --- a/tests/Unit/Jobs/SaveProfileImageJobTest.php +++ b/tests/Unit/Jobs/SaveProfileImageJobTest.php @@ -11,6 +11,7 @@ use GuzzleHttp\HandlerStack; use GuzzleHttp\Psr7\Response; use Jonnybarnes\WebmentionsParser\Authorship; use Jonnybarnes\WebmentionsParser\Exceptions\AuthorshipParserException; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class SaveProfileImageJobTest extends TestCase @@ -24,7 +25,7 @@ class SaveProfileImageJobTest extends TestCase parent::tearDown(); } - /** @test */ + #[Test] public function authorshipAlgorithmReturnsNullOnException(): void { $mf = ['items' => []]; @@ -36,7 +37,7 @@ class SaveProfileImageJobTest extends TestCase $this->assertNull($job->handle($authorship)); } - /** @test */ + #[Test] public function weDoNotProcessTwitterImages(): void { $mf = ['items' => []]; @@ -54,7 +55,7 @@ class SaveProfileImageJobTest extends TestCase $this->assertNull($job->handle($authorship)); } - /** @test */ + #[Test] public function remoteAuthorImagesAreSavedLocally(): void { $mock = new MockHandler([ @@ -79,7 +80,7 @@ class SaveProfileImageJobTest extends TestCase $this->assertFileExists(public_path() . '/assets/profile-images/example.org/image'); } - /** @test */ + #[Test] public function localDefaultAuthorImageIsUsedAsFallback(): void { $mock = new MockHandler([ @@ -107,7 +108,7 @@ class SaveProfileImageJobTest extends TestCase ); } - /** @test */ + #[Test] public function weGetUrlFromPhotoObjectIfAltTextIsProvided(): void { $mock = new MockHandler([ @@ -135,7 +136,7 @@ class SaveProfileImageJobTest extends TestCase $this->assertFileExists(public_path() . '/assets/profile-images/example.org/image'); } - /** @test */ + #[Test] public function useFirstUrlIfMultipleHomepagesAreProvided(): void { $mock = new MockHandler([ diff --git a/tests/Unit/Jobs/SaveScreenshotJobTest.php b/tests/Unit/Jobs/SaveScreenshotJobTest.php index 74f7f2e7..b2c3ef15 100644 --- a/tests/Unit/Jobs/SaveScreenshotJobTest.php +++ b/tests/Unit/Jobs/SaveScreenshotJobTest.php @@ -13,13 +13,14 @@ use GuzzleHttp\Middleware; use GuzzleHttp\Psr7\Response; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Storage; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class SaveScreenshotJobTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function screenshotIsSavedByJob(): void { Storage::fake('public'); @@ -84,7 +85,7 @@ class SaveScreenshotJobTest extends TestCase Storage::disk('public')->assertExists('/assets/img/bookmarks/' . $bookmark->screenshot . '.png'); } - /** @test */ + #[Test] public function screenshotJobHandlesUnfinishedTasks(): void { Storage::fake('public'); diff --git a/tests/Unit/Jobs/SendWebMentionJobTest.php b/tests/Unit/Jobs/SendWebMentionJobTest.php index f52686be..9eef719b 100644 --- a/tests/Unit/Jobs/SendWebMentionJobTest.php +++ b/tests/Unit/Jobs/SendWebMentionJobTest.php @@ -10,11 +10,12 @@ use GuzzleHttp\Client; use GuzzleHttp\Handler\MockHandler; use GuzzleHttp\HandlerStack; use GuzzleHttp\Psr7\Response; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class SendWebMentionJobTest extends TestCase { - /** @test */ + #[Test] public function discoverWebmentionEndpointOnOwnDomain(): void { $note = new Note; @@ -23,7 +24,7 @@ class SendWebMentionJobTest extends TestCase $this->assertNull($job->discoverWebmentionEndpoint('/notes/tagged/test')); } - /** @test */ + #[Test] public function discoverWebmentionEndpointFromHeaderLinks(): void { $url = 'https://example.org/webmention'; @@ -38,7 +39,7 @@ class SendWebMentionJobTest extends TestCase $this->assertEquals($url, $job->discoverWebmentionEndpoint('https://example.org')); } - /** @test */ + #[Test] public function discoverWebmentionEndpointFromHtmlLinkTags(): void { $html = ''; @@ -56,7 +57,7 @@ class SendWebMentionJobTest extends TestCase ); } - /** @test */ + #[Test] public function discoverWebmentionEndpointFromLegacyHtmlMarkup(): void { $html = ''; @@ -74,14 +75,14 @@ class SendWebMentionJobTest extends TestCase ); } - /** @test */ + #[Test] public function ensureEmptyNoteDoesNotTriggerAnyActions(): void { $job = new SendWebMentions(new Note); $this->assertNull($job->handle()); } - /** @test */ + #[Test] public function weResolveRelativeUris(): void { $uri = '/blog/post'; @@ -90,7 +91,7 @@ class SendWebMentionJobTest extends TestCase $this->assertEquals('https://example.org/blog/post', $job->resolveUri($uri, $base)); } - /** @test */ + #[Test] public function weSendAWebmentionForANote(): void { $html = ''; @@ -110,7 +111,7 @@ class SendWebMentionJobTest extends TestCase $this->assertTrue(true); } - /** @test */ + #[Test] public function linksInNotesCanNotSupportWebmentions(): void { $mock = new MockHandler([ diff --git a/tests/Unit/Jobs/SyndicateNoteToBlueskyJobTest.php b/tests/Unit/Jobs/SyndicateNoteToBlueskyJobTest.php index e1e3fb8c..2dbae153 100644 --- a/tests/Unit/Jobs/SyndicateNoteToBlueskyJobTest.php +++ b/tests/Unit/Jobs/SyndicateNoteToBlueskyJobTest.php @@ -11,13 +11,14 @@ use GuzzleHttp\HandlerStack; use GuzzleHttp\Middleware; use GuzzleHttp\Psr7\Response; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class SyndicateNoteToBlueskyJobTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function weSyndicateNotesToBluesky(): void { config(['bridgy.bluesky_token' => 'test']); @@ -38,7 +39,7 @@ class SyndicateNoteToBlueskyJobTest extends TestCase ]); } - /** @test */ + #[Test] public function weSyndicateTheOriginalMarkdownToBluesky(): void { config(['bridgy.bluesky_token' => 'test']); diff --git a/tests/Unit/Jobs/SyndicateNoteToMastodonJobTest.php b/tests/Unit/Jobs/SyndicateNoteToMastodonJobTest.php index d90261e7..d7215223 100644 --- a/tests/Unit/Jobs/SyndicateNoteToMastodonJobTest.php +++ b/tests/Unit/Jobs/SyndicateNoteToMastodonJobTest.php @@ -11,13 +11,14 @@ use GuzzleHttp\HandlerStack; use GuzzleHttp\Middleware; use GuzzleHttp\Psr7\Response; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class SyndicateNoteToMastodonJobTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function weSyndicateNotesToMastodon(): void { config(['bridgy.mastodon_token' => 'test']); @@ -38,7 +39,7 @@ class SyndicateNoteToMastodonJobTest extends TestCase ]); } - /** @test */ + #[Test] public function weSyndicateTheOriginalMarkdown(): void { config(['bridgy.mastodon_token' => 'test']); diff --git a/tests/Unit/LikesTest.php b/tests/Unit/LikesTest.php index dc243967..073d1ca4 100644 --- a/tests/Unit/LikesTest.php +++ b/tests/Unit/LikesTest.php @@ -6,13 +6,14 @@ namespace Tests\Unit; use App\Models\Like; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class LikesTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function weCanSetTheAuthorUrl(): void { $like = new Like; @@ -20,7 +21,7 @@ class LikesTest extends TestCase $this->assertEquals('https://joe.bloggs', $like->author_url); } - /** @test */ + #[Test] public function weDoNotModifyPlainTextContent(): void { $like = new Like; @@ -31,7 +32,7 @@ class LikesTest extends TestCase $this->assertEquals('some plaintext content', $like->content); } - /** @test */ + #[Test] public function weCanHandleBlankContent(): void { $like = new Like; @@ -42,7 +43,7 @@ class LikesTest extends TestCase $this->assertNull($like->content); } - /** @test */ + #[Test] public function htmlLikeContentIsFiltered(): void { $htmlEvil = <<<'HTML' diff --git a/tests/Unit/MediaTest.php b/tests/Unit/MediaTest.php index df1a22cf..4dd4c256 100644 --- a/tests/Unit/MediaTest.php +++ b/tests/Unit/MediaTest.php @@ -7,13 +7,14 @@ namespace Tests\Unit; use App\Models\Media; use App\Models\Note; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class MediaTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function getTheNoteThatMediaInstanceBelongsTo(): void { $media = Media::factory()->for(Note::factory())->create(); @@ -21,7 +22,7 @@ class MediaTest extends TestCase $this->assertInstanceOf(Note::class, $media->note); } - /** @test */ + #[Test] public function absoluteUrlsAreReturnedUnmodified(): void { $absoluteUrl = 'https://instagram-cdn.com/image/uuid'; diff --git a/tests/Unit/MicropubClientsTest.php b/tests/Unit/MicropubClientsTest.php index 26d6dca4..d3bc0e01 100644 --- a/tests/Unit/MicropubClientsTest.php +++ b/tests/Unit/MicropubClientsTest.php @@ -7,13 +7,14 @@ namespace Tests\Unit; use App\Models\MicropubClient; use Illuminate\Database\Eloquent\Collection; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class MicropubClientsTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function weCanGetNotesRelatingToClient(): void { $client = MicropubClient::factory()->make(); diff --git a/tests/Unit/NotesTest.php b/tests/Unit/NotesTest.php index dfd532e6..2f157c8a 100644 --- a/tests/Unit/NotesTest.php +++ b/tests/Unit/NotesTest.php @@ -16,6 +16,7 @@ use GuzzleHttp\Psr7\Response; use Illuminate\Filesystem\Filesystem; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Cache; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class NotesTest extends TestCase @@ -25,9 +26,8 @@ class NotesTest extends TestCase /** * Test the getNoteAttribute method. This will then also call the * relevant sub-methods. - * - * @test */ + #[Test] public function getNoteAttributeMethodCallsSubMethods(): void { // phpcs:ignore @@ -40,9 +40,8 @@ class NotesTest extends TestCase /** * Look for a default image in the contact’s h-card for the makeHCards method. - * - * @test */ + #[Test] public function defaultImageUsedAsFallbackInMakehcardsMethod(): void { // phpcs:ignore @@ -70,9 +69,8 @@ class NotesTest extends TestCase /** * Look for a specific profile image in the contact’s h-card. - * - * @test */ + #[Test] public function specificProfileImageUsedInMakehcardsMethod(): void { Contact::factory()->create([ @@ -106,9 +104,8 @@ class NotesTest extends TestCase /** * Look for twitter URL when there’s no associated contact. - * - * @test */ + #[Test] public function twitterLinkIsCreatedWhenNoContactFound(): void { $expected = '

Hi @bob

' . PHP_EOL; @@ -118,7 +115,7 @@ class NotesTest extends TestCase $this->assertEquals($expected, $note->note); } - /** @test */ + #[Test] public function shorturlMethodReturnsExpectedValue(): void { $note = Note::factory()->make(); @@ -126,7 +123,7 @@ class NotesTest extends TestCase $this->assertEquals(config('url.shorturl') . '/notes/E', $note->shorturl); } - /** @test */ + #[Test] public function weGetLatitudeLongitudeValuesOfAssociatedPlaceOfNote(): void { $place = Place::factory()->create([ @@ -140,7 +137,7 @@ class NotesTest extends TestCase $this->assertEquals('-2.3805', $note->longitude); } - /** @test */ + #[Test] public function whenNoAssociatedPlaceWeGetNullForLatitudeLongitudeValues(): void { $note = Note::factory()->create(); @@ -148,7 +145,7 @@ class NotesTest extends TestCase $this->assertNull($note->longitude); } - /** @test */ + #[Test] public function weCanGetAddressAttributeForAssociatedPlace(): void { $place = Place::factory()->create([ @@ -162,7 +159,7 @@ class NotesTest extends TestCase $this->assertEquals('The Bridgewater Pub', $note->address); } - /** @test */ + #[Test] public function deletingNotesAlsoDeletesTagsViaTheEventObserver(): void { // first we’ll create a temporary note to delete @@ -177,7 +174,7 @@ class NotesTest extends TestCase ]); } - /** @test */ + #[Test] public function saveBlankNotesAsNull(): void { $note = new Note(['note' => '']); @@ -185,7 +182,7 @@ class NotesTest extends TestCase $this->assertNull($note->note); } - /** @test */ + #[Test] public function reverseGeocodeAnAttraction(): void { // phpcs:disable Generic.Files.LineLength.TooLong @@ -210,7 +207,7 @@ class NotesTest extends TestCase ); } - /** @test */ + #[Test] public function reverseGeocodeASuburb(): void { // phpcs:disable Generic.Files.LineLength.TooLong @@ -235,7 +232,7 @@ class NotesTest extends TestCase ); } - /** @test */ + #[Test] public function reverseGeocodeACity(): void { // Note I’ve modified this JSON response so it only contains the @@ -262,7 +259,7 @@ class NotesTest extends TestCase ); } - /** @test */ + #[Test] public function reverseGeocodeACounty(): void { // Note I’ve removed everything below county to test for queries where @@ -286,7 +283,7 @@ class NotesTest extends TestCase $this->assertEquals('Kent, UK', $address); } - /** @test */ + #[Test] public function reverseGeocodeACountry(): void { // Note I’ve removed everything below country to test for querires where @@ -310,7 +307,7 @@ class NotesTest extends TestCase $this->assertEquals('Ireland', $address); } - /** @test */ + #[Test] public function addImageElementToNoteContentWhenMediaAssociated(): void { $media = Media::factory()->create([ @@ -327,7 +324,7 @@ class NotesTest extends TestCase $this->assertEquals($expected, $note->content); } - /** @test */ + #[Test] public function addVideoElementToNoteContentWhenMediaAssociated(): void { $media = Media::factory()->create([ @@ -344,7 +341,7 @@ class NotesTest extends TestCase $this->assertEquals($expected, $note->content); } - /** @test */ + #[Test] public function addAudioElementToNoteContentWhenMediaAssociated(): void { $media = Media::factory()->create([ @@ -362,10 +359,9 @@ class NotesTest extends TestCase } /** - * @test - * * @todo Why do we need to provide text? */ + #[Test] public function provideTextForBlankContent(): void { $note = new Note; @@ -382,9 +378,8 @@ class NotesTest extends TestCase $this->assertNull($note->twitter); }*/ - - /** @test */ - public function markdownContentGetsConverted(): void + #[Test] + public function markdown_content_gets_converted(): void { $note = Note::factory()->create([ 'note' => 'The best search engine? https://duckduckgo.com', @@ -398,9 +393,8 @@ class NotesTest extends TestCase /** * For now, just reply on a cached object instead of actually querying Twitter. - * - * @test */ + #[Test] public function checkInReplyToIsTwitterLink(): void { $tempContent = (object) [ @@ -415,7 +409,7 @@ class NotesTest extends TestCase $this->assertEquals($tempContent, $note->twitter); } - /** @test */ + #[Test] public function latitudeAndLongitudeCanBeParsedFromPlainLocation(): void { $note = Note::factory()->create([ @@ -426,7 +420,7 @@ class NotesTest extends TestCase $this->assertSame(4.56, $note->longitude); } - /** @test */ + #[Test] public function addressAttributeCanBeRetrievedFromPlainLocation(): void { Cache::put('1.23,4.56', 'Antarctica'); @@ -438,7 +432,7 @@ class NotesTest extends TestCase $this->assertSame('Antarctica', $note->address); } - /** @test */ + #[Test] public function mastodonUsernamesAreParsedCorrectly(): void { $expected = '

Hi @freekmurze@phpc.social how are you?

' . PHP_EOL; diff --git a/tests/Unit/PlacesTest.php b/tests/Unit/PlacesTest.php index e9daadda..b3f0ed37 100644 --- a/tests/Unit/PlacesTest.php +++ b/tests/Unit/PlacesTest.php @@ -10,13 +10,14 @@ use App\Services\PlaceService; use Illuminate\Database\Eloquent\Collection; use Illuminate\Foundation\Testing\RefreshDatabase; use InvalidArgumentException; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class PlacesTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function canRetrieveAssociatedNotes(): void { $place = Place::factory()->create(); @@ -27,7 +28,7 @@ class PlacesTest extends TestCase $this->assertCount(5, $place->notes); } - /** @test */ + #[Test] public function nearMethodReturnsCollection(): void { Place::factory()->create([ @@ -39,7 +40,7 @@ class PlacesTest extends TestCase $this->assertEquals('the-bridgewater-pub', $nearby[0]->slug); } - /** @test */ + #[Test] public function getLongurl(): void { $place = Place::factory()->create([ @@ -48,7 +49,7 @@ class PlacesTest extends TestCase $this->assertEquals(config('app.url') . '/places/the-bridgewater-pub', $place->longurl); } - /** @test */ + #[Test] public function getShorturl() { $place = Place::factory()->create([ @@ -57,7 +58,7 @@ class PlacesTest extends TestCase $this->assertEquals(config('url.shorturl') . '/places/the-bridgewater-pub', $place->shorturl); } - /** @test */ + #[Test] public function getUri(): void { $place = Place::factory()->create([ @@ -66,7 +67,7 @@ class PlacesTest extends TestCase $this->assertEquals(config('app.url') . '/places/the-bridgewater-pub', $place->uri); } - /** @test */ + #[Test] public function placeServiceReturnsExistingPlaceBasedOnExternalUrlsSearch(): void { Place::factory(10)->create(); @@ -86,7 +87,7 @@ class PlacesTest extends TestCase $this->assertCount(11, Place::all()); } - /** @test */ + #[Test] public function placeServiceRequiresNameWhenCreatingNewPlace(): void { $this->expectException(InvalidArgumentException::class); @@ -96,7 +97,7 @@ class PlacesTest extends TestCase $service->createPlaceFromCheckin(['foo' => 'bar']); } - /** @test */ + #[Test] public function placeServiceRequiresLatitudeWhenCreatingNewPlace(): void { $this->expectException(InvalidArgumentException::class); @@ -106,7 +107,7 @@ class PlacesTest extends TestCase $service->createPlaceFromCheckin(['properties' => ['name' => 'bar']]); } - /** @test */ + #[Test] public function placeServiceCanUpdateExternalUrls(): void { $place = Place::factory()->create([ diff --git a/tests/Unit/TagsTest.php b/tests/Unit/TagsTest.php index 3592024a..4d9dcdd0 100644 --- a/tests/Unit/TagsTest.php +++ b/tests/Unit/TagsTest.php @@ -8,13 +8,15 @@ use App\Models\Bookmark; use App\Models\Note; use App\Models\Tag; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class TagsTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function canGetAssociatedNotes(): void { $note = Note::factory()->create(); @@ -23,7 +25,7 @@ class TagsTest extends TestCase $this->assertCount(1, $tag->notes); } - /** @test */ + #[Test] public function canGetAssociatedBookmarks(): void { $bookmark = Bookmark::factory()->create(); @@ -32,11 +34,8 @@ class TagsTest extends TestCase $this->assertCount(1, $tag->bookmarks); } - /** - * @test - * - * @dataProvider tagsProvider - */ + #[Test] + #[DataProvider('tagsProvider')] public function canNormalize(string $input, string $expected): void { $this->assertSame($expected, Tag::normalize($input)); diff --git a/tests/Unit/WebMentionTest.php b/tests/Unit/WebMentionTest.php index a63bc01e..7a6ce471 100644 --- a/tests/Unit/WebMentionTest.php +++ b/tests/Unit/WebMentionTest.php @@ -10,13 +10,14 @@ use Codebird\Codebird; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Cache; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class WebMentionTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function commentableMethodLinksToNotes(): void { $note = Note::factory()->create(); @@ -27,7 +28,7 @@ class WebMentionTest extends TestCase $this->assertInstanceOf(Note::class, $webmention->commentable); } - /** @test */ + #[Test] public function publishedAttributeUsesUpdatedAtWhenNoRelevantMf2Data(): void { $webmention = new WebMention; @@ -36,7 +37,7 @@ class WebMentionTest extends TestCase $this->assertEquals($updated_at->toDayDateTimeString(), $webmention->published); } - /** @test */ + #[Test] public function publishedAttributeUsesUpdatedAtWhenErrorParsingMf2Data(): void { $webmention = new WebMention; @@ -54,7 +55,7 @@ class WebMentionTest extends TestCase $this->assertEquals($updated_at->toDayDateTimeString(), $webmention->published); } - /** @test */ + #[Test] public function createPhotoLinkDoesNothingWithGenericUrlAndNoLocallySavedImage(): void { $webmention = new WebMention; @@ -63,7 +64,7 @@ class WebMentionTest extends TestCase $this->assertEquals($expected, $webmention->createPhotoLink($homepage)); } - /** @test */ + #[Test] public function createPhotoLinkReturnsLocallySavedImageUrlIfItExists(): void { $webmention = new WebMention; @@ -72,7 +73,7 @@ class WebMentionTest extends TestCase $this->assertEquals($expected, $webmention->createPhotoLink($homepage)); } - /** @test */ + #[Test] public function createPhotoLinkDealsWithSpecialCaseOfDirectTwitterPhotoLinks(): void { $webmention = new WebMention; @@ -81,7 +82,7 @@ class WebMentionTest extends TestCase $this->assertEquals($expected, $webmention->createPhotoLink($twitterProfileImage)); } - /** @test */ + #[Test] public function createPhotoLinkReturnsCachedTwitterPhotoLinks(): void { $webmention = new WebMention; @@ -91,16 +92,15 @@ class WebMentionTest extends TestCase $this->assertEquals($expected, $webmention->createPhotoLink($twitterURL)); } - /** @test */ + #[Test] public function createPhotoLinkResolvesTwitterPhotoLinks(): void { $info = (object) [ 'profile_image_url_https' => 'https://pbs.twimg.com/static_profile_link.jpg', ]; - $codebirdMock = $this->getMockBuilder(Codebird::class) - ->addMethods(['users_show']) - ->getMock(); - $codebirdMock->method('users_show') + $codebirdMock = $this->createPartialMock(Codebird::class, ['__call']); + $codebirdMock->method('__call') + ->with('users_show', $this->anything()) ->willReturn($info); $this->app->instance(Codebird::class, $codebirdMock); @@ -117,14 +117,14 @@ class WebMentionTest extends TestCase $this->assertEquals($expected, $webmention->createPhotoLink($twitterURL)); } - /** @test */ + #[Test] public function getReplyAttributeDefaultsToNull(): void { $webmention = new WebMention; $this->assertNull($webmention->reply); } - /** @test */ + #[Test] public function getReplyAttributeWithMf2WithoutHtmlReturnsNull(): void { $webmention = new WebMention;