From b4f8a3628e49cdf67fcffda858b057ba5f50fcfc Mon Sep 17 00:00:00 2001 From: Michael Ishola Date: Sun, 5 Jan 2025 14:36:07 +0100 Subject: [PATCH] migrated to binkode repo (#53) --- composer.json | 16 +- composer.lock | 2762 +++++++---------- config/chat-system.php | 28 +- contributing.md | 2 +- ...3_08_192416_create_conversations_table.php | 2 +- ...021_03_08_193929_create_messages_table.php | 2 +- license.md | 2 +- readme.md | 16 +- src/Broadcasting/Chat/ConversationChannel.php | 44 +- src/Broadcasting/Chat/MessageChannel.php | 42 +- src/Broadcasting/Chat/UserMessageChannel.php | 40 +- src/ChatSystem.php | 8 +- src/ChatSystemServiceProvider.php | 51 +- src/Config.php | 2 +- src/Contracts/IChatEvent.php | 5 +- src/Contracts/IChatEventMaker.php | 4 +- src/Contracts/IConversation.php | 5 +- src/Contracts/IConversationUser.php | 5 +- src/Contracts/IMessage.php | 5 +- src/Database/Factories/ChatEventFactory.php | 38 +- .../Factories/ConversationFactory.php | 38 +- .../Factories/ConversationUserFactory.php | 4 +- src/Database/Factories/MessageFactory.php | 10 +- src/Database/Seeders/ConversationSeeder.php | 14 +- src/Events/Message/Created.php | 10 +- src/Events/Message/Events.php | 12 +- src/Facades/ChatSystem.php | 2 +- src/Http/Controllers/ChatEventController.php | 195 +- src/Http/Controllers/Controller.php | 2 +- .../Controllers/ConversationController.php | 36 +- src/Http/Controllers/MessageController.php | 30 +- src/Http/Requests/PaginableRequest.php | 8 +- src/Jobs/Chat/MakeEvent.php | 10 +- src/Models/ChatEvent.php | 16 +- src/Models/Conversation.php | 70 +- src/Models/ConversationUser.php | 8 +- src/Models/Message.php | 72 +- src/Observers/ChatEventObserver.php | 116 +- src/Observers/ConversationObserver.php | 20 +- src/Policies/ChatEventPolicy.php | 34 +- src/Policies/ConversationPolicy.php | 165 +- src/Policies/MessagePolicy.php | 34 +- src/Traits/ChatEvent/CanMakeChatEvent.php | 16 +- src/Traits/ChatEvent/HasChatEvent.php | 8 +- src/Traits/HasDelete.php | 18 +- src/Traits/Message/HasMessage.php | 24 +- src/routes/api.php | 8 +- src/routes/channels.php | 7 +- tests/Feature/Events/Message/EventsTest.php | 8 +- .../Controllers/ChatEventControllerTest.php | 2 +- .../Controllers/MessageControllerTest.php | 4 +- tests/Feature/Jobs/Chat/MakeEventTest.php | 6 +- tests/Feature/Models/ConversationTest.php | 5 +- tests/Models/User.php | 49 +- tests/Pest.php | 38 +- tests/TestCase.php | 14 +- tests/Unit/Models/ChatEventTest.php | 9 +- tests/Unit/Models/ConversationTest.php | 8 +- tests/Unit/Models/ConversationUserTest.php | 21 +- tests/Unit/Models/MessageTest.php | 12 +- 60 files changed, 1828 insertions(+), 2414 deletions(-) diff --git a/composer.json b/composer.json index bf5bdc9..00662c8 100644 --- a/composer.json +++ b/composer.json @@ -1,8 +1,8 @@ { - "name": "myckhel/laravel-chat-system", + "name": "binkode/laravel-chat-system", "description": "laravel chat system", "license": "MIT", - "version": "1.0.0-beta3", + "version": "1.0.0-beta.4", "authors": [ { "name": "myckhel", @@ -10,7 +10,7 @@ "homepage": "https://myckhel.com" } ], - "homepage": "https://github.com/myckhel/laravel-chat-system", + "homepage": "https://github.com/binkode/laravel-chat-system", "keywords": [ "Laravel", "ChatSystem" @@ -31,21 +31,21 @@ }, "autoload": { "psr-4": { - "Myckhel\\ChatSystem\\": "src/" + "Binkode\\ChatSystem\\": "src/" } }, "autoload-dev": { "psr-4": { - "Myckhel\\ChatSystem\\Tests\\": "tests" + "Binkode\\ChatSystem\\Tests\\": "tests" } }, "extra": { "laravel": { "providers": [ - "Myckhel\\ChatSystem\\ChatSystemServiceProvider" + "Binkode\\ChatSystem\\ChatSystemServiceProvider" ], "aliases": { - "ChatSystem": "Myckhel\\ChatSystem\\Facades\\ChatSystem" + "ChatSystem": "Binkode\\ChatSystem\\Facades\\ChatSystem" } } }, @@ -54,4 +54,4 @@ "pestphp/pest-plugin": true } } -} +} \ No newline at end of file diff --git a/composer.lock b/composer.lock index 4085a81..183d7d6 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": "317bc6183697bf939a4627dd32908e25", + "content-hash": "e4b79c0ca0d7b93664624a978d419e04", "packages": [ { "name": "brick/math", @@ -137,16 +137,16 @@ }, { "name": "dflydev/dot-access-data", - "version": "v3.0.2", + "version": "v3.0.3", "source": { "type": "git", "url": "https://github.com/dflydev/dflydev-dot-access-data.git", - "reference": "f41715465d65213d644d3141a6a93081be5d3549" + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", - "reference": "f41715465d65213d644d3141a6a93081be5d3549", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f", + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f", "shasum": "" }, "require": { @@ -206,9 +206,9 @@ ], "support": { "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", - "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3" }, - "time": "2022-10-27T11:44:00+00:00" + "time": "2024-07-08T12:26:09+00:00" }, { "name": "doctrine/inflector", @@ -380,16 +380,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": { @@ -402,10 +402,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/" @@ -429,7 +433,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": [ { @@ -437,20 +441,20 @@ "type": "github" } ], - "time": "2023-08-10T19:36:49+00:00" + "time": "2024-10-09T13:47:03+00:00" }, { "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": { @@ -496,7 +500,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": [ { @@ -504,7 +508,7 @@ "type": "github" } ], - "time": "2023-10-06T06:47:41+00:00" + "time": "2024-12-27T00:36:43+00:00" }, { "name": "fruitcake/php-cors", @@ -579,24 +583,24 @@ }, { "name": "graham-campbell/result-type", - "version": "v1.1.2", + "version": "v1.1.3", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862" + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862", - "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945", + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.2" + "phpoption/phpoption": "^1.9.3" }, "require-dev": { - "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" }, "type": "library", "autoload": { @@ -625,7 +629,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3" }, "funding": [ { @@ -637,26 +641,26 @@ "type": "tidelift" } ], - "time": "2023-11-12T22:16:48+00:00" + "time": "2024-07-20T21:45:45+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.8.1", + "version": "7.9.2", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" + "reference": "d281ed313b989f213357e3be1a179f02196ac99b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b", + "reference": "d281ed313b989f213357e3be1a179f02196ac99b", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0.1", - "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", + "guzzlehttp/promises": "^1.5.3 || ^2.0.3", + "guzzlehttp/psr7": "^2.7.0", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -667,9 +671,9 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "guzzle/client-integration-tests": "3.0.2", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -747,7 +751,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.8.1" + "source": "https://github.com/guzzle/guzzle/tree/7.9.2" }, "funding": [ { @@ -763,20 +767,20 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:35:24+00:00" + "time": "2024-07-24T11:22:20+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.2", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", + "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455", + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455", "shasum": "" }, "require": { @@ -784,7 +788,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "type": "library", "extra": { @@ -830,7 +834,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.2" + "source": "https://github.com/guzzle/promises/tree/2.0.4" }, "funding": [ { @@ -846,20 +850,20 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:19:20+00:00" + "time": "2024-10-17T10:06:22+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.6.2", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", "shasum": "" }, "require": { @@ -874,8 +878,8 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -946,7 +950,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.6.2" + "source": "https://github.com/guzzle/psr7/tree/2.7.0" }, "funding": [ { @@ -962,7 +966,7 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:05:35+00:00" + "time": "2024-07-18T11:15:46+00:00" }, { "name": "guzzlehttp/uri-template", @@ -1052,23 +1056,23 @@ }, { "name": "laravel/framework", - "version": "v11.14.0", + "version": "v11.37.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "657e8464e13147d56bc3a399115c8c26f38d4821" + "reference": "6cb103d2024b087eae207654b3f4b26646119ba5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/657e8464e13147d56bc3a399115c8c26f38d4821", - "reference": "657e8464e13147d56bc3a399115c8c26f38d4821", + "url": "https://api.github.com/repos/laravel/framework/zipball/6cb103d2024b087eae207654b3f4b26646119ba5", + "reference": "6cb103d2024b087eae207654b3f4b26646119ba5", "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": "*", @@ -1078,38 +1082,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", - "laravel/serializable-closure": "^1.3", - "league/commonmark": "^2.2.1", - "league/flysystem": "^3.8.0", + "laravel/prompts": "^0.1.18|^0.2.0|^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.2|^3.0", + "nesbot/carbon": "^2.72.2|^3.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": { @@ -1123,6 +1128,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", @@ -1155,29 +1161,32 @@ }, "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.1.5", - "pda/pheanstalk": "^5.0", - "phpstan/phpstan": "^1.4.7", - "phpunit/phpunit": "^10.5|^11.0", - "predis/predis": "^2.0.2", + "fakerphp/faker": "^1.24", + "guzzlehttp/promises": "^2.0.3", + "guzzlehttp/psr7": "^2.4", + "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.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.", @@ -1191,16 +1200,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).", @@ -1219,10 +1228,13 @@ }, "autoload": { "files": [ + "src/Illuminate/Collections/functions.php", "src/Illuminate/Collections/helpers.php", "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": { @@ -1254,25 +1266,25 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-07-02T17:23:58+00:00" + "time": "2025-01-02T20:10:21+00:00" }, { "name": "laravel/prompts", - "version": "v0.1.24", + "version": "v0.3.2", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "409b0b4305273472f3754826e68f4edbd0150149" + "reference": "0e0535747c6b8d6d10adca8b68293cf4517abb0f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/409b0b4305273472f3754826e68f4edbd0150149", - "reference": "409b0b4305273472f3754826e68f4edbd0150149", + "url": "https://api.github.com/repos/laravel/prompts/zipball/0e0535747c6b8d6d10adca8b68293cf4517abb0f", + "reference": "0e0535747c6b8d6d10adca8b68293cf4517abb0f", "shasum": "" }, "require": { + "composer-runtime-api": "^2.2", "ext-mbstring": "*", - "illuminate/collections": "^10.0|^11.0", "php": "^8.1", "symfony/console": "^6.2|^7.0" }, @@ -1281,8 +1293,9 @@ "laravel/framework": ">=10.17.0 <10.25.0" }, "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" }, @@ -1292,7 +1305,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "0.1.x-dev" + "dev-main": "0.3.x-dev" } }, "autoload": { @@ -1310,37 +1323,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.1.24" + "source": "https://github.com/laravel/prompts/tree/v0.3.2" }, - "time": "2024-06-17T13:58:22+00:00" + "time": "2024-11-12T14:59:47+00:00" }, { "name": "laravel/serializable-closure", - "version": "v1.3.3", + "version": "v2.0.1", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "3dbf8a8e914634c48d389c1234552666b3d43754" + "reference": "613b2d4998f85564d40497e05e89cb6d9bd1cbe8" }, "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/613b2d4998f85564d40497e05e89cb6d9bd1cbe8", + "reference": "613b2d4998f85564d40497e05e89cb6d9bd1cbe8", "shasum": "" }, "require": { - "php": "^7.3|^8.0" + "php": "^8.1" }, "require-dev": { - "nesbot/carbon": "^2.61", - "pestphp/pest": "^1.21.3", - "phpstan/phpstan": "^1.8.2", - "symfony/var-dumper": "^5.4.11" + "illuminate/support": "^10.0|^11.0", + "nesbot/carbon": "^2.67|^3.0", + "pestphp/pest": "^2.36", + "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": { @@ -1372,20 +1386,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-12-16T15:26:28+00:00" }, { "name": "league/commonmark", - "version": "2.4.2", + "version": "2.6.1", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf" + "reference": "d990688c91cedfb69753ffc2512727ec646df2ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/91c24291965bd6d7c46c46a12ba7492f83b1cadf", - "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d990688c91cedfb69753ffc2512727ec646df2ad", + "reference": "d990688c91cedfb69753ffc2512727ec646df2ad", "shasum": "" }, "require": { @@ -1398,8 +1412,8 @@ }, "require-dev": { "cebe/markdown": "^1.0", - "commonmark/cmark": "0.30.3", - "commonmark/commonmark.js": "0.30.0", + "commonmark/cmark": "0.31.1", + "commonmark/commonmark.js": "0.31.1", "composer/package-versions-deprecated": "^1.8", "embed/embed": "^4.4", "erusev/parsedown": "^1.0", @@ -1410,8 +1424,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" }, @@ -1421,7 +1436,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "2.7-dev" } }, "autoload": { @@ -1478,7 +1493,7 @@ "type": "tidelift" } ], - "time": "2024-02-02T11:59:32+00:00" + "time": "2024-12-29T14:10:59+00:00" }, { "name": "league/config", @@ -1564,16 +1579,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": { @@ -1641,22 +1656,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-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": { @@ -1690,22 +1705,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": { @@ -1736,7 +1751,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": [ { @@ -1748,20 +1763,194 @@ "type": "tidelift" } ], - "time": "2024-01-28T23:22:08+00:00" + "time": "2024-09-21T08:32:55+00:00" + }, + { + "name": "league/uri", + "version": "7.5.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri.git", + "reference": "81fb5145d2644324614cc532b28efd0215bda430" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/81fb5145d2644324614cc532b28efd0215bda430", + "reference": "81fb5145d2644324614cc532b28efd0215bda430", + "shasum": "" + }, + "require": { + "league/uri-interfaces": "^7.5", + "php": "^8.1" + }, + "conflict": { + "league/uri-schemes": "^1.0" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-fileinfo": "to create Data URI from file contennts", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain", + "league/uri-components": "Needed to easily manipulate URI objects components", + "php-64bit": "to improve IPV4 host parsing", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "URI manipulation library", + "homepage": "https://uri.thephpleague.com", + "keywords": [ + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "middleware", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "uri-template", + "url", + "ws" + ], + "support": { + "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.5.1" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2024-12-08T08:40:02+00:00" + }, + { + "name": "league/uri-interfaces", + "version": "7.5.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri-interfaces.git", + "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", + "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^8.1", + "psr/http-factory": "^1", + "psr/http-message": "^1.1 || ^2.0" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "php-64bit": "to improve IPV4 host parsing", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "Common interfaces and classes for URI representation and interaction", + "homepage": "https://uri.thephpleague.com", + "keywords": [ + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "url", + "ws" + ], + "support": { + "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.5.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2024-12-08T08:18:47+00:00" }, { "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": { @@ -1781,12 +1970,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" }, @@ -1837,7 +2028,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": [ { @@ -1849,24 +2040,24 @@ "type": "tidelift" } ], - "time": "2024-06-28T09:40:51+00:00" + "time": "2024-12-05T17:15:07+00:00" }, { "name": "nesbot/carbon", - "version": "3.6.0", + "version": "3.8.4", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "39c8ef752db6865717cc3fba63970c16f057982c" + "reference": "129700ed449b1f02d70272d2ac802357c8c30c58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/39c8ef752db6865717cc3fba63970c16f057982c", - "reference": "39c8ef752db6865717cc3fba63970c16f057982c", + "url": "https://api.github.com/repos/briannesbitt/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", @@ -1894,10 +2085,6 @@ ], "type": "library", "extra": { - "branch-alias": { - "dev-master": "3.x-dev", - "dev-2.x": "2.x-dev" - }, "laravel": { "providers": [ "Carbon\\Laravel\\ServiceProvider" @@ -1907,6 +2094,10 @@ "includes": [ "extension.neon" ] + }, + "branch-alias": { + "dev-2.x": "2.x-dev", + "dev-master": "3.x-dev" } }, "autoload": { @@ -1955,28 +2146,28 @@ "type": "tidelift" } ], - "time": "2024-06-20T15:52:59+00:00" + "time": "2024-12-27T09:25:35+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" }, @@ -2015,26 +2206,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", @@ -2101,38 +2292,37 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.4" + "source": "https://github.com/nette/utils/tree/v4.0.5" }, - "time": "2024-01-17T16:50:36+00:00" + "time": "2024-08-07T15:39:19+00:00" }, { "name": "nunomaduro/termwind", - "version": "v2.0.1", + "version": "v2.3.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "58c4c58cf23df7f498daeb97092e34f5259feb6a" + "reference": "52915afe6a1044e8b9cee1bcff836fb63acf9cda" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/58c4c58cf23df7f498daeb97092e34f5259feb6a", - "reference": "58c4c58cf23df7f498daeb97092e34f5259feb6a", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/52915afe6a1044e8b9cee1bcff836fb63acf9cda", + "reference": "52915afe6a1044e8b9cee1bcff836fb63acf9cda", "shasum": "" }, "require": { "ext-mbstring": "*", "php": "^8.2", - "symfony/console": "^7.0.4" + "symfony/console": "^7.1.8" }, "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.33.2", + "laravel/pint": "^1.18.2", + "mockery/mockery": "^1.6.12", + "pestphp/pest": "^2.36.0", + "phpstan/phpstan": "^1.12.11", + "phpstan/phpstan-strict-rules": "^1.6.1", + "symfony/var-dumper": "^7.1.8", "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", @@ -2175,7 +2365,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.3.0" }, "funding": [ { @@ -2191,20 +2381,20 @@ "type": "github" } ], - "time": "2024-03-06T16:17:14+00:00" + "time": "2024-11-21T10:39:51+00:00" }, { "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": { @@ -2212,13 +2402,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" @@ -2254,7 +2444,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": [ { @@ -2266,7 +2456,7 @@ "type": "tidelift" } ], - "time": "2023-11-12T21:59:55+00:00" + "time": "2024-07-20T21:41:07+00:00" }, { "name": "psr/clock", @@ -2581,16 +2771,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": { @@ -2625,9 +2815,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", @@ -2907,16 +3097,16 @@ }, { "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": { @@ -2961,7 +3151,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v7.1.1" + "source": "https://github.com/symfony/clock/tree/v7.2.0" }, "funding": [ { @@ -2977,20 +3167,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.2", + "version": "v7.2.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0aa29ca177f432ab68533432db0de059f39c92ae" + "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0aa29ca177f432ab68533432db0de059f39c92ae", - "reference": "0aa29ca177f432ab68533432db0de059f39c92ae", + "url": "https://api.github.com/repos/symfony/console/zipball/fefcc18c0f5d0efe3ab3152f15857298868dc2c3", + "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3", "shasum": "" }, "require": { @@ -3054,7 +3244,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.1.2" + "source": "https://github.com/symfony/console/tree/v7.2.1" }, "funding": [ { @@ -3070,20 +3260,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T10:03:55+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": { @@ -3119,7 +3309,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": [ { @@ -3135,20 +3325,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": { @@ -3156,12 +3346,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": { @@ -3186,7 +3376,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": [ { @@ -3202,20 +3392,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.2", + "version": "v7.2.1", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "2412d3dddb5c9ea51a39cfbff1c565fc9844ca32" + "reference": "6150b89186573046167796fa5f3f76601d5145f8" }, "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/6150b89186573046167796fa5f3f76601d5145f8", + "reference": "6150b89186573046167796fa5f3f76601d5145f8", "shasum": "" }, "require": { @@ -3261,7 +3451,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.2.1" }, "funding": [ { @@ -3277,20 +3467,20 @@ "type": "tidelift" } ], - "time": "2024-06-25T19:55:06+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": { @@ -3341,7 +3531,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": [ { @@ -3357,20 +3547,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": { @@ -3379,12 +3569,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": { @@ -3417,7 +3607,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": [ { @@ -3433,20 +3623,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.1", + "version": "v7.2.2", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "fbb0ba67688b780efbc886c1a0a0948dcf7205d6" + "reference": "87a71856f2f56e4100373e92529eed3171695cfb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/fbb0ba67688b780efbc886c1a0a0948dcf7205d6", - "reference": "fbb0ba67688b780efbc886c1a0a0948dcf7205d6", + "url": "https://api.github.com/repos/symfony/finder/zipball/87a71856f2f56e4100373e92529eed3171695cfb", + "reference": "87a71856f2f56e4100373e92529eed3171695cfb", "shasum": "" }, "require": { @@ -3481,7 +3671,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.2.2" }, "funding": [ { @@ -3497,35 +3687,36 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-12-30T19:00:17+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.1.1", + "version": "v7.2.2", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "74d171d5b6a1d9e4bfee09a41937c17a7536acfa" + "reference": "62d1a43796ca3fea3f83a8470dfe63a4af3bc588" }, "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/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", @@ -3558,7 +3749,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.2.2" }, "funding": [ { @@ -3574,20 +3765,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-12-30T19:00:17+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.1.2", + "version": "v7.2.2", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "ae3fa717db4d41a55d14c2bd92399e37cf5bc0f6" + "reference": "3c432966bd8c7ec7429663105f5a02d7e75b4306" }, "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/3c432966bd8c7ec7429663105f5a02d7e75b4306", + "reference": "3c432966bd8c7ec7429663105f5a02d7e75b4306", "shasum": "" }, "require": { @@ -3616,7 +3807,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" @@ -3644,7 +3835,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": { @@ -3672,7 +3863,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.2.2" }, "funding": [ { @@ -3688,20 +3879,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T13:13:31+00:00" + "time": "2024-12-31T14:59:40+00:00" }, { "name": "symfony/mailer", - "version": "v7.1.2", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "8fcff0af9043c8f8a8e229437cea363e282f9aee" + "reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/8fcff0af9043c8f8a8e229437cea363e282f9aee", - "reference": "8fcff0af9043c8f8a8e229437cea363e282f9aee", + "url": "https://api.github.com/repos/symfony/mailer/zipball/e4d358702fb66e4c8a2af08e90e7271a62de39cc", + "reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc", "shasum": "" }, "require": { @@ -3710,7 +3901,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": { @@ -3752,7 +3943,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.2.0" }, "funding": [ { @@ -3768,20 +3959,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T08:00:31+00:00" + "time": "2024-11-25T15:21:05+00:00" }, { "name": "symfony/mime", - "version": "v7.1.2", + "version": "v7.2.1", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "26a00b85477e69a4bab63b66c5dce64f18b0cbfc" + "reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/26a00b85477e69a4bab63b66c5dce64f18b0cbfc", - "reference": "26a00b85477e69a4bab63b66c5dce64f18b0cbfc", + "url": "https://api.github.com/repos/symfony/mime/zipball/7f9617fcf15cb61be30f8b252695ed5e2bfac283", + "reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283", "shasum": "" }, "require": { @@ -3836,7 +4027,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.1.2" + "source": "https://github.com/symfony/mime/tree/v7.2.1" }, "funding": [ { @@ -3852,24 +4043,24 @@ "type": "tidelift" } ], - "time": "2024-06-28T10:03:55+00:00" + "time": "2024-12-07T08:50:44+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": "*" @@ -3880,8 +4071,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -3915,7 +4106,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": [ { @@ -3931,24 +4122,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" @@ -3956,8 +4147,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -3993,7 +4184,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": [ { @@ -4009,26 +4200,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" @@ -4036,8 +4226,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4077,7 +4267,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": [ { @@ -4093,24 +4283,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" @@ -4118,8 +4308,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4158,7 +4348,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": [ { @@ -4174,24 +4364,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": "*" @@ -4202,8 +4392,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4238,80 +4428,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/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" - }, - { - "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" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" }, "funding": [ { @@ -4327,30 +4444,30 @@ "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": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4391,7 +4508,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": [ { @@ -4407,30 +4524,30 @@ "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": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4467,7 +4584,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": [ { @@ -4483,24 +4600,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": "*" @@ -4511,8 +4628,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4546,7 +4663,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": [ { @@ -4562,20 +4679,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.2.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "febf90124323a093c7ee06fdb30e765ca3c20028" + "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/febf90124323a093c7ee06fdb30e765ca3c20028", - "reference": "febf90124323a093c7ee06fdb30e765ca3c20028", + "url": "https://api.github.com/repos/symfony/process/zipball/d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", + "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", "shasum": "" }, "require": { @@ -4607,7 +4724,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.2.0" }, "funding": [ { @@ -4623,20 +4740,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-11-06T14:24:19+00:00" }, { "name": "symfony/routing", - "version": "v7.1.1", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "60c31bab5c45af7f13091b87deb708830f3c96c0" + "reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/60c31bab5c45af7f13091b87deb708830f3c96c0", - "reference": "60c31bab5c45af7f13091b87deb708830f3c96c0", + "url": "https://api.github.com/repos/symfony/routing/zipball/e10a2450fa957af6c448b9b93c9010a4e4c0725e", + "reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e", "shasum": "" }, "require": { @@ -4688,7 +4805,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.1.1" + "source": "https://github.com/symfony/routing/tree/v7.2.0" }, "funding": [ { @@ -4704,20 +4821,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-11-25T11:08:51+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": { @@ -4730,12 +4847,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": { @@ -4771,7 +4888,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": [ { @@ -4787,20 +4904,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.2", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8" + "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/14221089ac66cf82e3cf3d1c1da65de305587ff8", - "reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8", + "url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82", + "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82", "shasum": "" }, "require": { @@ -4858,7 +4975,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.2" + "source": "https://github.com/symfony/string/tree/v7.2.0" }, "funding": [ { @@ -4874,24 +4991,25 @@ "type": "tidelift" } ], - "time": "2024-06-28T09:27:18+00:00" + "time": "2024-11-13T13:31:26+00:00" }, { "name": "symfony/translation", - "version": "v7.1.1", + "version": "v7.2.2", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "cf5ae136e124fc7681b34ce9fac9d5b9ae8ceee3" + "reference": "e2674a30132b7cc4d74540d6c2573aa363f05923" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/cf5ae136e124fc7681b34ce9fac9d5b9ae8ceee3", - "reference": "cf5ae136e124fc7681b34ce9fac9d5b9ae8ceee3", + "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" }, @@ -4952,7 +5070,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.2.2" }, "funding": [ { @@ -4968,20 +5086,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+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": { @@ -4989,12 +5107,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": { @@ -5030,7 +5148,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": [ { @@ -5046,20 +5164,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/uid", - "version": "v7.1.1", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "bb59febeecc81528ff672fad5dab7f06db8c8277" + "reference": "2d294d0c48df244c71c105a169d0190bfb080426" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/bb59febeecc81528ff672fad5dab7f06db8c8277", - "reference": "bb59febeecc81528ff672fad5dab7f06db8c8277", + "url": "https://api.github.com/repos/symfony/uid/zipball/2d294d0c48df244c71c105a169d0190bfb080426", + "reference": "2d294d0c48df244c71c105a169d0190bfb080426", "shasum": "" }, "require": { @@ -5104,7 +5222,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.1.1" + "source": "https://github.com/symfony/uid/tree/v7.2.0" }, "funding": [ { @@ -5120,20 +5238,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.1.2", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "5857c57c6b4b86524c08cf4f4bc95327270a816d" + "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c" }, "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/c6a22929407dec8765d6e2b6ff85b800b245879c", + "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c", "shasum": "" }, "require": { @@ -5149,7 +5267,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" @@ -5187,7 +5305,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.1.2" + "source": "https://github.com/symfony/var-dumper/tree/v7.2.0" }, "funding": [ { @@ -5203,35 +5321,37 @@ "type": "tidelift" } ], - "time": "2024-06-28T08:00:31+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": { @@ -5254,29 +5374,29 @@ "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", - "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" @@ -5293,7 +5413,7 @@ "extra": { "bamarni-bin": { "bin-links": true, - "forward-command": true + "forward-command": false }, "branch-alias": { "dev-master": "5.6-dev" @@ -5328,7 +5448,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": [ { @@ -5340,20 +5460,20 @@ "type": "tidelift" } ], - "time": "2023-11-12T22:43:29+00:00" + "time": "2024-07-20T21:52:34+00:00" }, { "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": { @@ -5378,7 +5498,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.", @@ -5390,7 +5510,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": [ { @@ -5414,7 +5534,7 @@ "type": "tidelift" } ], - "time": "2022-03-08T17:03:00+00:00" + "time": "2024-11-21T01:49:47+00:00" }, { "name": "webmozart/assert", @@ -5478,16 +5598,16 @@ "packages-dev": [ { "name": "brianium/paratest", - "version": "v7.4.3", + "version": "v7.4.8", "source": { "type": "git", "url": "https://github.com/paratestphp/paratest.git", - "reference": "64fcfd0e28a6b8078a19dbf9127be2ee645b92ec" + "reference": "cf16fcbb9b8107a7df6b97e497fc91e819774d8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/64fcfd0e28a6b8078a19dbf9127be2ee645b92ec", - "reference": "64fcfd0e28a6b8078a19dbf9127be2ee645b92ec", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/cf16fcbb9b8107a7df6b97e497fc91e819774d8b", + "reference": "cf16fcbb9b8107a7df6b97e497fc91e819774d8b", "shasum": "" }, "require": { @@ -5495,31 +5615,30 @@ "ext-pcre": "*", "ext-reflection": "*", "ext-simplexml": "*", - "fidry/cpu-core-counter": "^1.1.0", - "jean85/pretty-package-versions": "^2.0.5", - "php": "~8.2.0 || ~8.3.0", - "phpunit/php-code-coverage": "^10.1.11 || ^11.0.0", - "phpunit/php-file-iterator": "^4.1.0 || ^5.0.0", - "phpunit/php-timer": "^6.0.0 || ^7.0.0", - "phpunit/phpunit": "^10.5.9 || ^11.0.3", - "sebastian/environment": "^6.0.1 || ^7.0.0", - "symfony/console": "^6.4.3 || ^7.0.3", - "symfony/process": "^6.4.3 || ^7.0.3" + "fidry/cpu-core-counter": "^1.2.0", + "jean85/pretty-package-versions": "^2.0.6", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0", + "phpunit/php-code-coverage": "^10.1.16", + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-timer": "^6.0.0", + "phpunit/phpunit": "^10.5.36", + "sebastian/environment": "^6.1.0", + "symfony/console": "^6.4.7 || ^7.1.5", + "symfony/process": "^6.4.7 || ^7.1.5" }, "require-dev": { "doctrine/coding-standard": "^12.0.0", "ext-pcov": "*", "ext-posix": "*", - "phpstan/phpstan": "^1.10.58", - "phpstan/phpstan-deprecation-rules": "^1.1.4", - "phpstan/phpstan-phpunit": "^1.3.15", - "phpstan/phpstan-strict-rules": "^1.5.2", - "squizlabs/php_codesniffer": "^3.9.0", - "symfony/filesystem": "^6.4.3 || ^7.0.3" + "phpstan/phpstan": "^1.12.6", + "phpstan/phpstan-deprecation-rules": "^1.2.1", + "phpstan/phpstan-phpunit": "^1.4.0", + "phpstan/phpstan-strict-rules": "^1.6.1", + "squizlabs/php_codesniffer": "^3.10.3", + "symfony/filesystem": "^6.4.3 || ^7.1.5" }, "bin": [ "bin/paratest", - "bin/paratest.bat", "bin/paratest_for_phpstorm" ], "type": "library", @@ -5556,7 +5675,7 @@ ], "support": { "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v7.4.3" + "source": "https://github.com/paratestphp/paratest/tree/v7.4.8" }, "funding": [ { @@ -5568,28 +5687,28 @@ "type": "paypal" } ], - "time": "2024-02-20T07:24:02+00:00" + "time": "2024-10-15T12:45:19+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": { @@ -5633,7 +5752,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": [ { @@ -5649,33 +5768,31 @@ "type": "tidelift" } ], - "time": "2023-08-31T09:50:34+00:00" + "time": "2024-09-19T14:15:21+00:00" }, { "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" @@ -5683,7 +5800,7 @@ "type": "library", "autoload": { "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + "Doctrine\\Deprecations\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -5694,22 +5811,22 @@ "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": "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": { @@ -5757,22 +5874,22 @@ ], "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": "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": { @@ -5812,7 +5929,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": [ { @@ -5820,30 +5937,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", @@ -5883,7 +6000,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": [ { @@ -5891,7 +6008,7 @@ "type": "github" } ], - "time": "2023-11-03T12:00:00+00:00" + "time": "2024-09-25T12:00:00+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -5946,28 +6063,28 @@ }, { "name": "jean85/pretty-package-versions", - "version": "2.0.6", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/Jean85/pretty-package-versions.git", - "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4" + "reference": "3c4e5f62ba8d7de1734312e4fff32f67a8daaf10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/f9fdd29ad8e6d024f52678b570e5593759b550b4", - "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/3c4e5f62ba8d7de1734312e4fff32f67a8daaf10", + "reference": "3c4e5f62ba8d7de1734312e4fff32f67a8daaf10", "shasum": "" }, "require": { - "composer-runtime-api": "^2.0.0", - "php": "^7.1|^8.0" + "composer-runtime-api": "^2.1.0", + "php": "^7.4|^8.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.2", "jean85/composer-provided-replaced-stub-package": "^1.0", "phpstan/phpstan": "^1.4", - "phpunit/phpunit": "^7.5|^8.5|^9.4", - "vimeo/psalm": "^4.3" + "phpunit/phpunit": "^7.5|^8.5|^9.6", + "vimeo/psalm": "^4.3 || ^5.0" }, "type": "library", "extra": { @@ -5999,51 +6116,58 @@ ], "support": { "issues": "https://github.com/Jean85/pretty-package-versions/issues", - "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.6" + "source": "https://github.com/Jean85/pretty-package-versions/tree/2.1.0" }, - "time": "2024-03-08T09:58:59+00:00" + "time": "2024-11-18T16:19:46+00:00" }, { - "name": "laravel/tinker", - "version": "v2.9.0", + "name": "laravel/pail", + "version": "v1.2.1", "source": { "type": "git", - "url": "https://github.com/laravel/tinker.git", - "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe" + "url": "https://github.com/laravel/pail.git", + "reference": "353ac12134b98e2e7c3333d916bd3e523931e583" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe", - "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "url": "https://api.github.com/repos/laravel/pail/zipball/353ac12134b98e2e7c3333d916bd3e523931e583", + "reference": "353ac12134b98e2e7c3333d916bd3e523931e583", "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", - "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" + "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": { - "mockery/mockery": "~1.3.3|^1.4.2", + "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", - "phpunit/phpunit": "^8.5.8|^9.3.3" - }, - "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." + "symfony/var-dumper": "^6.3|^7.0" }, "type": "library", "extra": { "laravel": { "providers": [ - "Laravel\\Tinker\\TinkerServiceProvider" + "Laravel\\Pail\\PailServiceProvider" ] + }, + "branch-alias": { + "dev-main": "1.x-dev" } }, "autoload": { "psr-4": { - "Laravel\\Tinker\\": "src/" + "Laravel\\Pail\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -6054,41 +6178,112 @@ { "name": "Taylor Otwell", "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" } ], - "description": "Powerful REPL for the Laravel framework.", + "description": "Easily delve into your Laravel application's log files directly from the command line.", + "homepage": "https://github.com/laravel/pail", "keywords": [ - "REPL", - "Tinker", "laravel", - "psysh" + "logs", + "php", + "tail" ], "support": { - "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.9.0" + "issues": "https://github.com/laravel/pail/issues", + "source": "https://github.com/laravel/pail" }, - "time": "2024-01-04T16:10:04+00:00" + "time": "2024-10-23T12:56:23+00:00" }, { - "name": "mockery/mockery", - "version": "1.6.12", + "name": "laravel/tinker", + "version": "v2.10.0", "source": { "type": "git", - "url": "https://github.com/mockery/mockery.git", - "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699" + "url": "https://github.com/laravel/tinker.git", + "reference": "ba4d51eb56de7711b3a37d63aa0643e99a339ae5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699", - "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "url": "https://api.github.com/repos/laravel/tinker/zipball/ba4d51eb56de7711b3a37d63aa0643e99a339ae5", + "reference": "ba4d51eb56de7711b3a37d63aa0643e99a339ae5", "shasum": "" }, "require": { - "hamcrest/hamcrest-php": "^2.0.1", - "lib-pcre": ">=7.0", - "php": ">=7.3" + "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", + "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" }, - "conflict": { + "require-dev": { + "mockery/mockery": "~1.3.3|^1.4.2", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^8.5.8|^9.3.3" + }, + "suggest": { + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Tinker\\TinkerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Tinker\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Powerful REPL for the Laravel framework.", + "keywords": [ + "REPL", + "Tinker", + "laravel", + "psysh" + ], + "support": { + "issues": "https://github.com/laravel/tinker/issues", + "source": "https://github.com/laravel/tinker/tree/v2.10.0" + }, + "time": "2024-09-23T13:32:56+00:00" + }, + { + "name": "mockery/mockery", + "version": "1.6.12", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "^2.0.1", + "lib-pcre": ">=7.0", + "php": ">=7.3" + }, + "conflict": { "phpunit/phpunit": "<8.0" }, "require-dev": { @@ -6154,16 +6349,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": { @@ -6202,7 +6397,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": [ { @@ -6210,20 +6405,20 @@ "type": "tidelift" } ], - "time": "2024-06-12T14:39:25+00:00" + "time": "2024-11-08T17:47:46+00:00" }, { "name": "nikic/php-parser", - "version": "v5.1.0", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1" + "reference": "447a020a1f875a434d62f2a401f53b82a396e494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/683130c2ff8c2739f4822ff7ac5c873ec529abd1", - "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494", + "reference": "447a020a1f875a434d62f2a401f53b82a396e494", "shasum": "" }, "require": { @@ -6266,44 +6461,44 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.1.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" }, - "time": "2024-07-01T20:03:41+00:00" + "time": "2024-12-30T11:07:19+00:00" }, { "name": "nunomaduro/collision", - "version": "v8.1.1", + "version": "v8.5.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "13e5d538b95a744d85f447a321ce10adb28e9af9" + "reference": "f5c101b929c958e849a633283adff296ed5f38f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/13e5d538b95a744d85f447a321ce10adb28e9af9", - "reference": "13e5d538b95a744d85f447a321ce10adb28e9af9", + "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.0.4" + "symfony/console": "^7.1.5" }, "conflict": { "laravel/framework": "<11.0.0 || >=12.0.0", "phpunit/phpunit": "<10.5.1 || >=12.0.0" }, "require-dev": { - "larastan/larastan": "^2.9.2", - "laravel/framework": "^11.0.0", - "laravel/pint": "^1.14.0", - "laravel/sail": "^1.28.2", - "laravel/sanctum": "^4.0.0", - "laravel/tinker": "^2.9.0", - "orchestra/testbench-core": "^9.0.0", - "pestphp/pest": "^2.34.1 || ^3.0.0", - "sebastian/environment": "^6.0.1 || ^7.0.0" + "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", + "sebastian/environment": "^6.1.0 || ^7.2.0" }, "type": "library", "extra": { @@ -6365,41 +6560,41 @@ "type": "patreon" } ], - "time": "2024-03-06T16:20:09+00:00" + "time": "2024-10-15T16:06:32+00:00" }, { "name": "orchestra/canvas", - "version": "v9.0.3", + "version": "v9.2.0", "source": { "type": "git", "url": "https://github.com/orchestral/canvas.git", - "reference": "bed541346ffae1b9246afae4d196e8fc10ac9067" + "reference": "b7156c011d780ee1e09a66eb73a38bfa23db759a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/canvas/zipball/bed541346ffae1b9246afae4d196e8fc10ac9067", - "reference": "bed541346ffae1b9246afae4d196e8fc10ac9067", + "url": "https://api.github.com/repos/orchestral/canvas/zipball/b7156c011d780ee1e09a66eb73a38bfa23db759a", + "reference": "b7156c011d780ee1e09a66eb73a38bfa23db759a", "shasum": "" }, "require": { "composer-runtime-api": "^2.2", "composer/semver": "^3.0", - "illuminate/console": "^11.10", - "illuminate/database": "^11.10", - "illuminate/filesystem": "^11.10", - "illuminate/support": "^11.10", + "illuminate/console": "^11.35", + "illuminate/database": "^11.35", + "illuminate/filesystem": "^11.35", + "illuminate/support": "^11.35", "orchestra/canvas-core": "^9.0", - "orchestra/testbench-core": "^9.0", + "orchestra/testbench-core": "^9.7", "php": "^8.2", - "symfony/polyfill-php83": "^1.28", - "symfony/yaml": "^7.0" + "symfony/polyfill-php83": "^1.31", + "symfony/yaml": "^7.0.3" }, "require-dev": { - "laravel/framework": "^11.10", - "laravel/pint": "^1.6", - "mockery/mockery": "^1.6", + "laravel/framework": "^11.35", + "laravel/pint": "^1.17", + "mockery/mockery": "^1.6.10", "phpstan/phpstan": "^1.11", - "phpunit/phpunit": "^11.0", + "phpunit/phpunit": "^11.3.6", "spatie/laravel-ray": "^1.35" }, "bin": [ @@ -6407,9 +6602,6 @@ ], "type": "library", "extra": { - "branch-alias": { - "dev-master": "9.0-dev" - }, "laravel": { "providers": [ "Orchestra\\Canvas\\LaravelServiceProvider" @@ -6438,9 +6630,9 @@ "description": "Code Generators for Laravel Applications and Packages", "support": { "issues": "https://github.com/orchestral/canvas/issues", - "source": "https://github.com/orchestral/canvas/tree/v9.0.3" + "source": "https://github.com/orchestral/canvas/tree/v9.2.0" }, - "time": "2024-06-18T10:10:33+00:00" + "time": "2024-11-30T15:48:36+00:00" }, { "name": "orchestra/canvas-core", @@ -6475,13 +6667,13 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "9.0-dev" - }, "laravel": { "providers": [ "Orchestra\\Canvas\\Core\\LaravelServiceProvider" ] + }, + "branch-alias": { + "dev-master": "9.0-dev" } }, "autoload": { @@ -6512,30 +6704,30 @@ }, { "name": "orchestra/testbench", - "version": "v9.1.2", + "version": "v9.9.0", "source": { "type": "git", "url": "https://github.com/orchestral/testbench.git", - "reference": "e3aa89ddfc76c22c65bf653f220bb906c26726a1" + "reference": "2f3e8c687ca5c0bd4d8bc91c4448983d046ba32b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/testbench/zipball/e3aa89ddfc76c22c65bf653f220bb906c26726a1", - "reference": "e3aa89ddfc76c22c65bf653f220bb906c26726a1", + "url": "https://api.github.com/repos/orchestral/testbench/zipball/2f3e8c687ca5c0bd4d8bc91c4448983d046ba32b", + "reference": "2f3e8c687ca5c0bd4d8bc91c4448983d046ba32b", "shasum": "" }, "require": { "composer-runtime-api": "^2.2", "fakerphp/faker": "^1.23", - "laravel/framework": "^11.7", - "mockery/mockery": "^1.6", - "orchestra/testbench-core": "^9.1.3", - "orchestra/workbench": "^9.1", + "laravel/framework": "^11.35.0", + "mockery/mockery": "^1.6.10", + "orchestra/testbench-core": "^9.9.0", + "orchestra/workbench": "^9.13.0", "php": "^8.2", - "phpunit/phpunit": "^10.5 || ^11.0.1", - "symfony/process": "^7.0", - "symfony/yaml": "^7.0", - "vlucas/phpdotenv": "^5.4.1" + "phpunit/phpunit": "^10.5.35 || ^11.3.6", + "symfony/process": "^7.0.3", + "symfony/yaml": "^7.0.3", + "vlucas/phpdotenv": "^5.6.1" }, "type": "library", "notification-url": "https://packagist.org/downloads/", @@ -6561,52 +6753,56 @@ ], "support": { "issues": "https://github.com/orchestral/testbench/issues", - "source": "https://github.com/orchestral/testbench/tree/v9.1.2" + "source": "https://github.com/orchestral/testbench/tree/v9.9.0" }, - "time": "2024-06-04T12:30:43+00:00" + "time": "2024-12-25T23:40:19+00:00" }, { "name": "orchestra/testbench-core", - "version": "v9.1.8", + "version": "v9.9.0", "source": { "type": "git", "url": "https://github.com/orchestral/testbench-core.git", - "reference": "690890054f37e5cb71f6753d07eb6519a0fe90b1" + "reference": "b605631fa3c779e51bc45d78013a979ddeb0d9fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/690890054f37e5cb71f6753d07eb6519a0fe90b1", - "reference": "690890054f37e5cb71f6753d07eb6519a0fe90b1", + "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/b605631fa3c779e51bc45d78013a979ddeb0d9fe", + "reference": "b605631fa3c779e51bc45d78013a979ddeb0d9fe", "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.1.0 || >=12.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.3.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.1", - "laravel/pint": "^1.6", - "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" + "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 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.1).", + "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).", @@ -6652,41 +6848,43 @@ "issues": "https://github.com/orchestral/testbench/issues", "source": "https://github.com/orchestral/testbench-core" }, - "time": "2024-06-28T11:48:15+00:00" + "time": "2024-12-24T01:10:06+00:00" }, { "name": "orchestra/workbench", - "version": "v9.1.0", + "version": "v9.13.0", "source": { "type": "git", "url": "https://github.com/orchestral/workbench.git", - "reference": "590a7d6741eba8c556bc1fa86861a27963a26bb6" + "reference": "9c9a42060735bfb49b1298c39dba392f936de372" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/workbench/zipball/590a7d6741eba8c556bc1fa86861a27963a26bb6", - "reference": "590a7d6741eba8c556bc1fa86861a27963a26bb6", + "url": "https://api.github.com/repos/orchestral/workbench/zipball/9c9a42060735bfb49b1298c39dba392f936de372", + "reference": "9c9a42060735bfb49b1298c39dba392f936de372", "shasum": "" }, "require": { "composer-runtime-api": "^2.2", "fakerphp/faker": "^1.23", - "laravel/framework": "^11.0", + "laravel/framework": "^11.35", + "laravel/pail": "^1.2", "laravel/tinker": "^2.9", "nunomaduro/collision": "^8.0", - "orchestra/canvas": "^9.0.2", - "orchestra/testbench-core": "^9.1.0", - "php": "^8.1", - "spatie/laravel-ray": "^1.35", - "symfony/polyfill-php83": "^1.28", - "symfony/yaml": "^7.0" + "orchestra/canvas": "^9.1", + "orchestra/testbench-core": "^9.9.0", + "php": "^8.2", + "symfony/polyfill-php83": "^1.31", + "symfony/polyfill-php84": "^1.31", + "symfony/process": "^7.0.3", + "symfony/yaml": "^7.0.3" }, "require-dev": { - "laravel/pint": "^1.6", - "mockery/mockery": "^1.6", - "phpstan/phpstan": "^1.11", - "phpunit/phpunit": "^10.5 || ^11.0", - "symfony/process": "^7.0" + "laravel/pint": "^1.17", + "mockery/mockery": "^1.6.10", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^10.5.35 || ^11.3.6", + "spatie/laravel-ray": "^1.39" }, "suggest": { "ext-pcntl": "Required to use all features of the console signal trapping." @@ -6716,42 +6914,43 @@ ], "support": { "issues": "https://github.com/orchestral/workbench/issues", - "source": "https://github.com/orchestral/workbench/tree/v9.1.0" + "source": "https://github.com/orchestral/workbench/tree/v9.13.0" }, - "time": "2024-05-20T23:55:00+00:00" + "time": "2024-12-24T11:40:02+00:00" }, { "name": "pestphp/pest", - "version": "v2.34.8", + "version": "v2.36.0", "source": { "type": "git", "url": "https://github.com/pestphp/pest.git", - "reference": "e8f122bf47585c06431e0056189ec6bfd6f41f57" + "reference": "f8c88bd14dc1772bfaf02169afb601ecdf2724cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/e8f122bf47585c06431e0056189ec6bfd6f41f57", - "reference": "e8f122bf47585c06431e0056189ec6bfd6f41f57", + "url": "https://api.github.com/repos/pestphp/pest/zipball/f8c88bd14dc1772bfaf02169afb601ecdf2724cd", + "reference": "f8c88bd14dc1772bfaf02169afb601ecdf2724cd", "shasum": "" }, "require": { "brianium/paratest": "^7.3.1", - "nunomaduro/collision": "^7.10.0|^8.1.1", - "nunomaduro/termwind": "^1.15.1|^2.0.1", + "nunomaduro/collision": "^7.11.0|^8.4.0", + "nunomaduro/termwind": "^1.16.0|^2.1.0", "pestphp/pest-plugin": "^2.1.1", "pestphp/pest-plugin-arch": "^2.7.0", "php": "^8.1.0", - "phpunit/phpunit": "^10.5.17" + "phpunit/phpunit": "^10.5.36" }, "conflict": { - "phpunit/phpunit": ">10.5.17", + "filp/whoops": "<2.16.0", + "phpunit/phpunit": ">10.5.36", "sebastian/exporter": "<5.1.0", "webmozart/assert": "<1.11.0" }, "require-dev": { - "pestphp/pest-dev-tools": "^2.16.0", - "pestphp/pest-plugin-type-coverage": "^2.8.3", - "symfony/process": "^6.4.0|^7.1.1" + "pestphp/pest-dev-tools": "^2.17.0", + "pestphp/pest-plugin-type-coverage": "^2.8.7", + "symfony/process": "^6.4.0|^7.1.5" }, "bin": [ "bin/pest" @@ -6814,7 +7013,7 @@ ], "support": { "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v2.34.8" + "source": "https://github.com/pestphp/pest/tree/v2.36.0" }, "funding": [ { @@ -6826,7 +7025,7 @@ "type": "github" } ], - "time": "2024-06-10T22:02:16+00:00" + "time": "2024-10-15T15:30:56+00:00" }, { "name": "pestphp/pest-plugin", @@ -7087,134 +7286,6 @@ }, "time": "2022-02-21T01:04:05+00:00" }, - { - "name": "php-di/invoker", - "version": "2.3.4", - "source": { - "type": "git", - "url": "https://github.com/PHP-DI/Invoker.git", - "reference": "33234b32dafa8eb69202f950a1fc92055ed76a86" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHP-DI/Invoker/zipball/33234b32dafa8eb69202f950a1fc92055ed76a86", - "reference": "33234b32dafa8eb69202f950a1fc92055ed76a86", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "psr/container": "^1.0|^2.0" - }, - "require-dev": { - "athletic/athletic": "~0.1.8", - "mnapoli/hard-mode": "~0.3.0", - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Invoker\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Generic and extensible callable invoker", - "homepage": "https://github.com/PHP-DI/Invoker", - "keywords": [ - "callable", - "dependency", - "dependency-injection", - "injection", - "invoke", - "invoker" - ], - "support": { - "issues": "https://github.com/PHP-DI/Invoker/issues", - "source": "https://github.com/PHP-DI/Invoker/tree/2.3.4" - }, - "funding": [ - { - "url": "https://github.com/mnapoli", - "type": "github" - } - ], - "time": "2023-09-08T09:24:21+00:00" - }, - { - "name": "php-di/php-di", - "version": "7.0.6", - "source": { - "type": "git", - "url": "https://github.com/PHP-DI/PHP-DI.git", - "reference": "8097948a89f6ec782839b3e958432f427cac37fd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/8097948a89f6ec782839b3e958432f427cac37fd", - "reference": "8097948a89f6ec782839b3e958432f427cac37fd", - "shasum": "" - }, - "require": { - "laravel/serializable-closure": "^1.0", - "php": ">=8.0", - "php-di/invoker": "^2.0", - "psr/container": "^1.1 || ^2.0" - }, - "provide": { - "psr/container-implementation": "^1.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3", - "friendsofphp/proxy-manager-lts": "^1", - "mnapoli/phpunit-easymock": "^1.3", - "phpunit/phpunit": "^9.5", - "vimeo/psalm": "^4.6" - }, - "suggest": { - "friendsofphp/proxy-manager-lts": "Install it if you want to use lazy injection (version ^1)" - }, - "type": "library", - "autoload": { - "files": [ - "src/functions.php" - ], - "psr-4": { - "DI\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "The dependency injection container for humans", - "homepage": "https://php-di.org/", - "keywords": [ - "PSR-11", - "container", - "container-interop", - "dependency injection", - "di", - "ioc", - "psr11" - ], - "support": { - "issues": "https://github.com/PHP-DI/PHP-DI/issues", - "source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.6" - }, - "funding": [ - { - "url": "https://github.com/mnapoli", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/php-di/php-di", - "type": "tidelift" - } - ], - "time": "2023-11-02T10:04:50+00:00" - }, { "name": "phpdocumentor/reflection-common", "version": "2.2.0", @@ -7270,16 +7341,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": { @@ -7288,17 +7359,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": { @@ -7328,29 +7399,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": "*", @@ -7386,36 +7457,36 @@ "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": "phpstan/phpdoc-parser", - "version": "1.29.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4" + "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299" }, "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/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", @@ -7433,96 +7504,38 @@ "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" - }, - "time": "2024-05-31T08:52:43+00:00" - }, - { - "name": "phpstan/phpstan", - "version": "1.11.7", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "52d2bbfdcae7f895915629e4694e9497d0f8e28d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/52d2bbfdcae7f895915629e4694e9497d0f8e28d", - "reference": "52d2bbfdcae7f895915629e4694e9497d0f8e28d", - "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" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.0.0" }, - "funding": [ - { - "url": "https://github.com/ondrejmirtes", - "type": "github" - }, - { - "url": "https://github.com/phpstan", - "type": "github" - } - ], - "time": "2024-07-06T11:17:41+00:00" + "time": "2024-10-13T11:29:49+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "10.1.15", + "version": "10.1.16", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae" + "reference": "7e308268858ed6baedc8704a304727d20bc07c77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", - "reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", + "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" @@ -7534,7 +7547,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.1-dev" + "dev-main": "10.1.x-dev" } }, "autoload": { @@ -7563,7 +7576,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.15" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.16" }, "funding": [ { @@ -7571,7 +7584,7 @@ "type": "github" } ], - "time": "2024-06-29T08:25:15+00:00" + "time": "2024-08-22T04:31:57+00:00" }, { "name": "phpunit/php-file-iterator", @@ -7818,16 +7831,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.17", + "version": "10.5.36", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c1f736a473d21957ead7e94fcc029f571895abf5" + "reference": "aa0a8ce701ea7ee314b0dfaa8970dc94f3f8c870" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c1f736a473d21957ead7e94fcc029f571895abf5", - "reference": "c1f736a473d21957ead7e94fcc029f571895abf5", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/aa0a8ce701ea7ee314b0dfaa8970dc94f3f8c870", + "reference": "aa0a8ce701ea7ee314b0dfaa8970dc94f3f8c870", "shasum": "" }, "require": { @@ -7837,26 +7850,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.2", + "sebastian/diff": "^5.1.1", + "sebastian/environment": "^6.1.0", + "sebastian/exporter": "^5.1.2", + "sebastian/global-state": "^6.0.2", + "sebastian/object-enumerator": "^5.0.0", + "sebastian/recursion-context": "^5.0.0", + "sebastian/type": "^4.0.0", + "sebastian/version": "^4.0.1" }, "suggest": { "ext-soap": "To be able to generate mocks based on WSDL files" @@ -7899,7 +7912,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.17" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.36" }, "funding": [ { @@ -7915,20 +7928,20 @@ "type": "tidelift" } ], - "time": "2024-04-05T04:39:01+00:00" + "time": "2024-10-08T15:36:51+00:00" }, { "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": { @@ -7955,12 +7968,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": { @@ -7992,68 +8005,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.4" - }, - "time": "2024-06-10T01:18:23+00:00" - }, - { - "name": "rector/rector", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/rectorphp/rector.git", - "reference": "2fa387553db22b6f9bcccf5ff16f2c2c18a52a65" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/2fa387553db22b6f9bcccf5ff16f2c2c18a52a65", - "reference": "2fa387553db22b6f9bcccf5ff16f2c2c18a52a65", - "shasum": "" - }, - "require": { - "php": "^7.2|^8.0", - "phpstan/phpstan": "^1.11" - }, - "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.0" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.7" }, - "funding": [ - { - "url": "https://github.com/tomasvotruba", - "type": "github" - } - ], - "time": "2024-07-01T14:24:45+00:00" + "time": "2024-12-10T01:58:33+00:00" }, { "name": "sebastian/cli-parser", @@ -8225,16 +8179,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": { @@ -8245,7 +8199,7 @@ "sebastian/exporter": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^10.3" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { @@ -8290,7 +8244,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": [ { @@ -8298,7 +8252,7 @@ "type": "github" } ], - "time": "2023-08-14T13:18:12+00:00" + "time": "2024-10-18T14:56:07+00:00" }, { "name": "sebastian/complexity", @@ -8972,222 +8926,22 @@ "time": "2023-02-07T11:34:05+00:00" }, { - "name": "spatie/backtrace", - "version": "1.6.1", + "name": "spatie/pest-plugin-test-time", + "version": "2.2.0", "source": { "type": "git", - "url": "https://github.com/spatie/backtrace.git", - "reference": "8373b9d51638292e3bfd736a9c19a654111b4a23" + "url": "https://github.com/spatie/pest-plugin-test-time.git", + "reference": "82af5b73a7f140a2cbfbe2926ef14dd35ee169be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/backtrace/zipball/8373b9d51638292e3bfd736a9c19a654111b4a23", - "reference": "8373b9d51638292e3bfd736a9c19a654111b4a23", - "shasum": "" - }, - "require": { - "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" - }, - "type": "library", - "autoload": { - "psr-4": { - "Spatie\\Backtrace\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van de Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - } - ], - "description": "A better backtrace", - "homepage": "https://github.com/spatie/backtrace", - "keywords": [ - "Backtrace", - "spatie" - ], - "support": { - "source": "https://github.com/spatie/backtrace/tree/1.6.1" - }, - "funding": [ - { - "url": "https://github.com/sponsors/spatie", - "type": "github" - }, - { - "url": "https://spatie.be/open-source/support-us", - "type": "other" - } - ], - "time": "2024-04-24T13:22:11+00:00" - }, - { - "name": "spatie/laravel-ray", - "version": "1.37.0", - "source": { - "type": "git", - "url": "https://github.com/spatie/laravel-ray.git", - "reference": "f57b294a3815be37effa9d13f54f2fbe5a2fff37" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/f57b294a3815be37effa9d13f54f2fbe5a2fff37", - "reference": "f57b294a3815be37effa9d13f54f2fbe5a2fff37", - "shasum": "" - }, - "require": { - "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", - "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" - }, - "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" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - }, - "laravel": { - "providers": [ - "Spatie\\LaravelRay\\RayServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Spatie\\LaravelRay\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - } - ], - "description": "Easily debug Laravel apps", - "homepage": "https://github.com/spatie/laravel-ray", - "keywords": [ - "laravel-ray", - "spatie" - ], - "support": { - "issues": "https://github.com/spatie/laravel-ray/issues", - "source": "https://github.com/spatie/laravel-ray/tree/1.37.0" - }, - "funding": [ - { - "url": "https://github.com/sponsors/spatie", - "type": "github" - }, - { - "url": "https://spatie.be/open-source/support-us", - "type": "other" - } - ], - "time": "2024-07-03T08:48:44+00:00" - }, - { - "name": "spatie/macroable", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/spatie/macroable.git", - "reference": "ec2c320f932e730607aff8052c44183cf3ecb072" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/macroable/zipball/ec2c320f932e730607aff8052c44183cf3ecb072", - "reference": "ec2c320f932e730607aff8052c44183cf3ecb072", - "shasum": "" - }, - "require": { - "php": "^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^8.0|^9.3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Spatie\\Macroable\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - } - ], - "description": "A trait to dynamically add methods to a class", - "homepage": "https://github.com/spatie/macroable", - "keywords": [ - "macroable", - "spatie" - ], - "support": { - "issues": "https://github.com/spatie/macroable/issues", - "source": "https://github.com/spatie/macroable/tree/2.0.0" - }, - "time": "2021-03-26T22:39:02+00:00" - }, - { - "name": "spatie/pest-plugin-test-time", - "version": "2.1.0", - "source": { - "type": "git", - "url": "https://github.com/spatie/pest-plugin-test-time.git", - "reference": "45bb8190a4d4e434b808d510f687582028309e2d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/pest-plugin-test-time/zipball/45bb8190a4d4e434b808d510f687582028309e2d", - "reference": "45bb8190a4d4e434b808d510f687582028309e2d", + "url": "https://api.github.com/repos/spatie/pest-plugin-test-time/zipball/82af5b73a7f140a2cbfbe2926ef14dd35ee169be", + "reference": "82af5b73a7f140a2cbfbe2926ef14dd35ee169be", "shasum": "" }, "require": { "nesbot/carbon": "^2.65|^3", - "pestphp/pest": "^2.0", + "pestphp/pest": "^2.0|^3.0", "php": "^8.1", "spatie/test-time": "^1.3.2" }, @@ -9226,7 +8980,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/pest-plugin-test-time/tree/2.1.0" + "source": "https://github.com/spatie/pest-plugin-test-time/tree/2.2.0" }, "funding": [ { @@ -9234,92 +8988,7 @@ "type": "github" } ], - "time": "2024-03-02T05:54:53+00:00" - }, - { - "name": "spatie/ray", - "version": "1.41.2", - "source": { - "type": "git", - "url": "https://github.com/spatie/ray.git", - "reference": "c44f8cfbf82c69909b505de61d8d3f2d324e93fc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/ray/zipball/c44f8cfbf82c69909b505de61d8d3f2d324e93fc", - "reference": "c44f8cfbf82c69909b505de61d8d3f2d324e93fc", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "ext-json": "*", - "php": "^7.3|^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" - }, - "require-dev": { - "illuminate/support": "6.x|^8.18|^9.0", - "nesbot/carbon": "^2.63", - "pestphp/pest": "^1.22", - "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^9.5", - "rector/rector": "^0.19.2", - "spatie/phpunit-snapshot-assertions": "^4.2", - "spatie/test-time": "^1.2" - }, - "bin": [ - "bin/remove-ray.sh" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "files": [ - "src/helpers.php" - ], - "psr-4": { - "Spatie\\Ray\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - } - ], - "description": "Debug with Ray to fix problems faster", - "homepage": "https://github.com/spatie/ray", - "keywords": [ - "ray", - "spatie" - ], - "support": { - "issues": "https://github.com/spatie/ray/issues", - "source": "https://github.com/spatie/ray/tree/1.41.2" - }, - "funding": [ - { - "url": "https://github.com/sponsors/spatie", - "type": "github" - }, - { - "url": "https://spatie.be/open-source/support-us", - "type": "other" - } - ], - "time": "2024-04-24T14:21:46+00:00" + "time": "2024-09-20T13:40:22+00:00" }, { "name": "spatie/test-time", @@ -9389,33 +9058,27 @@ "time": "2024-02-05T13:30:14+00:00" }, { - "name": "symfony/polyfill-iconv", - "version": "v1.30.0", + "name": "symfony/polyfill-php84", + "version": "v1.31.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "c027e6a3c6aee334663ec21f5852e89738abc805" + "url": "https://github.com/symfony/polyfill-php84.git", + "reference": "e5493eb51311ab0b1cc2243416613f06ed8f18bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/c027e6a3c6aee334663ec21f5852e89738abc805", - "reference": "c027e6a3c6aee334663ec21f5852e89738abc805", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/e5493eb51311ab0b1cc2243416613f06ed8f18bd", + "reference": "e5493eb51311ab0b1cc2243416613f06ed8f18bd", "shasum": "" }, "require": { - "php": ">=7.1" - }, - "provide": { - "ext-iconv": "*" - }, - "suggest": { - "ext-iconv": "For best performance" + "php": ">=7.2" }, "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -9423,8 +9086,11 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Iconv\\": "" - } + "Symfony\\Polyfill\\Php84\\": "" + }, + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -9440,79 +9106,16 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Iconv extension", + "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "iconv", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/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-05-31T15:07:36+00:00" - }, - { - "name": "symfony/stopwatch", - "version": "v7.1.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d", - "reference": "5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/service-contracts": "^2.5|^3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Stopwatch\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "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": "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/polyfill-php84/tree/v1.31.0" }, "funding": [ { @@ -9528,24 +9131,25 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-09T12:04:04+00:00" }, { "name": "symfony/yaml", - "version": "v7.1.1", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "fa34c77015aa6720469db7003567b9f772492bf2" + "reference": "099581e99f557e9f16b43c5916c26380b54abb22" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/fa34c77015aa6720469db7003567b9f772492bf2", - "reference": "fa34c77015aa6720469db7003567b9f772492bf2", + "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": { @@ -9583,7 +9187,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.2.0" }, "funding": [ { @@ -9599,7 +9203,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-10-23T06:56:12+00:00" }, { "name": "ta-tikoma/phpunit-architecture-test", @@ -9709,214 +9313,6 @@ } ], "time": "2024-03-03T12:36:25+00:00" - }, - { - "name": "zbateson/mail-mime-parser", - "version": "3.0.1", - "source": { - "type": "git", - "url": "https://github.com/zbateson/mail-mime-parser.git", - "reference": "6ade63b0a43047935791d7977e22717a68cc388b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/6ade63b0a43047935791d7977e22717a68cc388b", - "reference": "6ade63b0a43047935791d7977e22717a68cc388b", - "shasum": "" - }, - "require": { - "guzzlehttp/psr7": "^2.5", - "php": ">=8.0", - "php-di/php-di": "^6.0|^7.0", - "psr/log": "^1|^2|^3", - "zbateson/mb-wrapper": "^2.0", - "zbateson/stream-decorators": "^2.1" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "*", - "monolog/monolog": "^2|^3", - "phpstan/phpstan": "*", - "phpunit/phpunit": "^9.6" - }, - "suggest": { - "ext-iconv": "For best support/performance", - "ext-mbstring": "For best support/performance" - }, - "type": "library", - "autoload": { - "psr-4": { - "ZBateson\\MailMimeParser\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Zaahid Bateson" - }, - { - "name": "Contributors", - "homepage": "https://github.com/zbateson/mail-mime-parser/graphs/contributors" - } - ], - "description": "MIME email message parser", - "homepage": "https://mail-mime-parser.org", - "keywords": [ - "MimeMailParser", - "email", - "mail", - "mailparse", - "mime", - "mimeparse", - "parser", - "php-imap" - ], - "support": { - "docs": "https://mail-mime-parser.org/#usage-guide", - "issues": "https://github.com/zbateson/mail-mime-parser/issues", - "source": "https://github.com/zbateson/mail-mime-parser" - }, - "funding": [ - { - "url": "https://github.com/zbateson", - "type": "github" - } - ], - "time": "2024-04-29T21:53:01+00:00" - }, - { - "name": "zbateson/mb-wrapper", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/zbateson/mb-wrapper.git", - "reference": "9e4373a153585d12b6c621ac4a6bb143264d4619" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zbateson/mb-wrapper/zipball/9e4373a153585d12b6c621ac4a6bb143264d4619", - "reference": "9e4373a153585d12b6c621ac4a6bb143264d4619", - "shasum": "" - }, - "require": { - "php": ">=8.0", - "symfony/polyfill-iconv": "^1.9", - "symfony/polyfill-mbstring": "^1.9" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "*", - "phpstan/phpstan": "*", - "phpunit/phpunit": "<10.0" - }, - "suggest": { - "ext-iconv": "For best support/performance", - "ext-mbstring": "For best support/performance" - }, - "type": "library", - "autoload": { - "psr-4": { - "ZBateson\\MbWrapper\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Zaahid Bateson" - } - ], - "description": "Wrapper for mbstring with fallback to iconv for encoding conversion and string manipulation", - "keywords": [ - "charset", - "encoding", - "http", - "iconv", - "mail", - "mb", - "mb_convert_encoding", - "mbstring", - "mime", - "multibyte", - "string" - ], - "support": { - "issues": "https://github.com/zbateson/mb-wrapper/issues", - "source": "https://github.com/zbateson/mb-wrapper/tree/2.0.0" - }, - "funding": [ - { - "url": "https://github.com/zbateson", - "type": "github" - } - ], - "time": "2024-03-20T01:38:07+00:00" - }, - { - "name": "zbateson/stream-decorators", - "version": "2.1.1", - "source": { - "type": "git", - "url": "https://github.com/zbateson/stream-decorators.git", - "reference": "32a2a62fb0f26313395c996ebd658d33c3f9c4e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zbateson/stream-decorators/zipball/32a2a62fb0f26313395c996ebd658d33c3f9c4e5", - "reference": "32a2a62fb0f26313395c996ebd658d33c3f9c4e5", - "shasum": "" - }, - "require": { - "guzzlehttp/psr7": "^2.5", - "php": ">=8.0", - "zbateson/mb-wrapper": "^2.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "*", - "phpstan/phpstan": "*", - "phpunit/phpunit": "^9.6|^10.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "ZBateson\\StreamDecorators\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Zaahid Bateson" - } - ], - "description": "PHP psr7 stream decorators for mime message part streams", - "keywords": [ - "base64", - "charset", - "decorators", - "mail", - "mime", - "psr7", - "quoted-printable", - "stream", - "uuencode" - ], - "support": { - "issues": "https://github.com/zbateson/stream-decorators/issues", - "source": "https://github.com/zbateson/stream-decorators/tree/2.1.1" - }, - "funding": [ - { - "url": "https://github.com/zbateson", - "type": "github" - } - ], - "time": "2024-04-29T21:42:39+00:00" } ], "aliases": [], diff --git a/config/chat-system.php b/config/chat-system.php index bfab50f..8bbce80 100644 --- a/config/chat-system.php +++ b/config/chat-system.php @@ -7,36 +7,36 @@ "models" => [ /* * The model you want to use as a User model needs to implement the - * `Myckhel\ChatSystem\Contracts\IChatEventMaker` contract. + * `Binkode\ChatSystem\Contracts\IChatEventMaker` contract. */ "user" => "App\\Models\\User", /* * The model you want to use as a Conversation model needs to implement the - * `Myckhel\ChatSystem\Contracts\IConversation` contract. + * `Binkode\ChatSystem\Contracts\IConversation` contract. */ - "conversation" => Myckhel\ChatSystem\Models\Conversation::class, + "conversation" => Binkode\ChatSystem\Models\Conversation::class, /* * The model you want to use as a ConversationUser model needs to implement the - * `Myckhel\ChatSystem\Contracts\IConversationUser` contract or extends the - * `Myckhel\ChatSystem\Models\ConversationUser` + * `Binkode\ChatSystem\Contracts\IConversationUser` contract or extends the + * `Binkode\ChatSystem\Models\ConversationUser` */ - "conversation_user" => Myckhel\ChatSystem\Models\ConversationUser::class, + "conversation_user" => Binkode\ChatSystem\Models\ConversationUser::class, /* * The model you want to use as a Message model needs to implement the - * `Myckhel\ChatSystem\Contracts\IMessage` contract or extends the - * `Myckhel\ChatSystem\Models\Message` + * `Binkode\ChatSystem\Contracts\IMessage` contract or extends the + * `Binkode\ChatSystem\Models\Message` */ - "message" => Myckhel\ChatSystem\Models\Message::class, + "message" => Binkode\ChatSystem\Models\Message::class, /* * The model you want to use as a ChatEvent model needs to implement the - * `Myckhel\ChatSystem\Contracts\IChatEvent` contract or extends the - * `Myckhel\ChatSystem\Models\ChatEvent` + * `Binkode\ChatSystem\Contracts\IChatEvent` contract or extends the + * `Binkode\ChatSystem\Models\ChatEvent` */ - "chat_event" => Myckhel\ChatSystem\Models\ChatEvent::class, + "chat_event" => Binkode\ChatSystem\Models\ChatEvent::class, ], /* @@ -73,8 +73,8 @@ */ "observers" => [ "models" => [ - "chat_event" => Myckhel\ChatSystem\Observers\ChatEventObserver::class, - "conversation" => Myckhel\ChatSystem\Observers\ConversationObserver::class, + "chat_event" => Binkode\ChatSystem\Observers\ChatEventObserver::class, + "conversation" => Binkode\ChatSystem\Observers\ConversationObserver::class, ] ] ]; diff --git a/contributing.md b/contributing.md index c9c1daf..fe82a38 100644 --- a/contributing.md +++ b/contributing.md @@ -2,7 +2,7 @@ Contributions are welcome and will be fully credited. -Contributions are accepted via Pull Requests on [Github](https://github.com/myckhel/laravel-chat-system). +Contributions are accepted via Pull Requests on [Github](https://github.com/binkode/laravel-chat-system). # Things you could do If you want to contribute but do not know where to start, this list provides some starting points. diff --git a/database/migrations/2021_03_08_192416_create_conversations_table.php b/database/migrations/2021_03_08_192416_create_conversations_table.php index 527a8cb..791299e 100644 --- a/database/migrations/2021_03_08_192416_create_conversations_table.php +++ b/database/migrations/2021_03_08_192416_create_conversations_table.php @@ -3,7 +3,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -use Myckhel\ChatSystem\Config; +use Binkode\ChatSystem\Config; class CreateConversationsTable extends Migration { diff --git a/database/migrations/2021_03_08_193929_create_messages_table.php b/database/migrations/2021_03_08_193929_create_messages_table.php index 241ef7c..ade193f 100644 --- a/database/migrations/2021_03_08_193929_create_messages_table.php +++ b/database/migrations/2021_03_08_193929_create_messages_table.php @@ -3,7 +3,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -use Myckhel\ChatSystem\Config; +use Binkode\ChatSystem\Config; class CreateMessagesTable extends Migration { diff --git a/license.md b/license.md index 138b82e..8abd52f 100644 --- a/license.md +++ b/license.md @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019 myckhel +Copyright (c) 2019 binkode Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/readme.md b/readme.md index 05a5cae..eb2a16d 100644 --- a/readme.md +++ b/readme.md @@ -2,7 +2,7 @@ [![Latest Version on Packagist][ico-version]][link-packagist] [![Total Downloads][ico-downloads]][link-downloads] -![Tests Status](https://github.com/myckhel/laravel-chat-system/actions/workflows/run-test.yml/badge.svg) +![Tests Status](https://github.com/binkode/laravel-chat-system/actions/workflows/run-test.yml/badge.svg) This is where your description should go. Take a look at [contributing.md](contributing.md) to see a to do list. @@ -11,11 +11,11 @@ This is where your description should go. Take a look at [contributing.md](contr Via Composer ``` bash -$ composer require myckhel/laravel-chat-system +$ composer require binkode/laravel-chat-system ``` ## `Documentaion` -### **[Documentaion](https://myckhel.github.io/laravel-chat-system)** +### **[Documentaion](https://binkode.github.io/laravel-chat-system)** ## `Postman Documentaion` ### **[Postman Documentaion](https://documenter.getpostman.com/view/9558301/TzXwEyDq)** @@ -23,7 +23,7 @@ $ composer require myckhel/laravel-chat-system ## `Examples` ### Laravel Inertia React #### **[Demo](https://laravel-chat.myckhel.com/chat)** -#### **[Source](https://github.com/myckhel/chat-system-example)** +#### **[Source](https://github.com/binkode/chat-system-example)** ### Expo Snack #### **[Demo](https://snack.expo.dev/@myckhel/laravel-chat-system)** @@ -58,13 +58,13 @@ If you discover any security related issues, please email author email instead o license. Please see the [license file](license.md) for more information. -[ico-version]: https://img.shields.io/packagist/v/myckhel/laravel-chat-system.svg?style=flat-square -[ico-downloads]: https://img.shields.io/packagist/dt/myckhel/laravel-chat-system.svg?style=flat-square +[ico-version]: https://img.shields.io/packagist/v/binkode/laravel-chat-system.svg?style=flat-square +[ico-downloads]: https://img.shields.io/packagist/dt/binkode/laravel-chat-system.svg?style=flat-square [ico-travis]: https://img.shields.io/travis/myckhel/laravel-chat-system/master.svg?style=flat-square [ico-styleci]: https://styleci.io/repos/12345678/shield -[link-packagist]: https://packagist.org/packages/myckhel/laravel-chat-system -[link-downloads]: https://packagist.org/packages/myckhel/laravel-chat-system +[link-packagist]: https://packagist.org/packages/binkode/laravel-chat-system +[link-downloads]: https://packagist.org/packages/binkode/laravel-chat-system [link-travis]: https://travis-ci.org/myckhel/laravel-chat-system [link-styleci]: https://styleci.io/repos/12345678 [link-author]: https://github.com/myckhel diff --git a/src/Broadcasting/Chat/ConversationChannel.php b/src/Broadcasting/Chat/ConversationChannel.php index 1558083..12cf9ec 100644 --- a/src/Broadcasting/Chat/ConversationChannel.php +++ b/src/Broadcasting/Chat/ConversationChannel.php @@ -1,31 +1,31 @@ relatedToConversation($conversation); - } + return $user->relatedToConversation($conversation); + } } diff --git a/src/Broadcasting/Chat/MessageChannel.php b/src/Broadcasting/Chat/MessageChannel.php index 829c3eb..19403ff 100644 --- a/src/Broadcasting/Chat/MessageChannel.php +++ b/src/Broadcasting/Chat/MessageChannel.php @@ -1,29 +1,29 @@ relatedToMessage($message); - } + /** + * Authenticate the user's access to the channel. + * + * @param \User $user + * @return array|bool + */ + public function join($user, IMessage $message) + { + return $user->relatedToMessage($message); + } } diff --git a/src/Broadcasting/Chat/UserMessageChannel.php b/src/Broadcasting/Chat/UserMessageChannel.php index f1f7feb..e73d20c 100644 --- a/src/Broadcasting/Chat/UserMessageChannel.php +++ b/src/Broadcasting/Chat/UserMessageChannel.php @@ -1,27 +1,27 @@ id == (int) $messageUser; - } + /** + * Authenticate the user's access to the channel. + * + * @param \App\User $user + * @return array|bool + */ + public function join($user, $messageUser) + { + return (int) $user->id == (int) $messageUser; + } } diff --git a/src/ChatSystem.php b/src/ChatSystem.php index 500ea34..23f64f2 100644 --- a/src/ChatSystem.php +++ b/src/ChatSystem.php @@ -1,9 +1,9 @@ map(fn ($call) => $call()); + return Collect($calls)->map(fn($call) => $call()); } } } diff --git a/src/ChatSystemServiceProvider.php b/src/ChatSystemServiceProvider.php index ca9ef06..818a5ce 100644 --- a/src/ChatSystemServiceProvider.php +++ b/src/ChatSystemServiceProvider.php @@ -1,24 +1,26 @@ loadTranslationsFrom(__DIR__.'/../resources/lang', 'myckhel'); - // $this->loadViewsFrom(__DIR__.'/../resources/views', 'myckhel'); + public function boot(): void + { + // $this->loadTranslationsFrom(__DIR__.'/../resources/lang', 'binkode'); + // $this->loadViewsFrom(__DIR__.'/../resources/views', 'binkode'); // $this->loadMigrationsFrom(__DIR__.'/../database/migrations'); - $this->loadRoutesFrom(__DIR__.'/routes/api.php'); + $this->loadRoutesFrom(__DIR__ . '/routes/api.php'); // Publishing is only necessary when using the CLI. if ($this->app->runningInConsole()) { - $this->bootForConsole(); + $this->bootForConsole(); } } @@ -27,12 +29,15 @@ public function boot(): void { * * @return void */ - function register(): void { - $this->mergeConfigFrom(__DIR__.'/../config/chat-system.php', 'chat-system'); + function register(): void + { + $this->mergeConfigFrom(__DIR__ . '/../config/chat-system.php', 'chat-system'); // Register the service the package provides. - $this->app->singleton('chat-system', fn ($app) => - new ChatSystem + $this->app->singleton( + 'chat-system', + fn($app) => + new ChatSystem ); } @@ -41,7 +46,8 @@ function register(): void { * * @return array */ - function provides(){ + function provides() + { return ['chat-system']; } @@ -50,42 +56,43 @@ function provides(){ * * @return void */ - function bootForConsole(): void { + function bootForConsole(): void + { // Publishing the configuration file. $this->publishes([ - __DIR__.'/../config/chat-system.php' => config_path('chat-system.php'), + __DIR__ . '/../config/chat-system.php' => config_path('chat-system.php'), ], 'config'); // Publishing the migration file. if (! class_exists('CreateConversationsTable')) { - $this->publishes([ - __DIR__.'/../database/migrations' => database_path('migrations'), - ], 'migrations'); + $this->publishes([ + __DIR__ . '/../database/migrations' => database_path('migrations'), + ], 'migrations'); } // Publishing the views. /*$this->publishes([ - __DIR__.'/../resources/views' => base_path('resources/views/vendor/myckhel'), + __DIR__.'/../resources/views' => base_path('resources/views/vendor/binkode'), ], 'chat-system.views');*/ // Publishing the seeders. $this->publishes([ - __DIR__.'/database/seeders' => database_path('seeders'), + __DIR__ . '/database/seeders' => database_path('seeders'), ], 'seeders'); // Publishing the factories. $this->publishes([ - __DIR__.'/database/factories' => database_path('factories'), + __DIR__ . '/database/factories' => database_path('factories'), ], 'factories'); // Publishing assets. /*$this->publishes([ - __DIR__.'/../resources/assets' => public_path('vendor/myckhel'), + __DIR__.'/../resources/assets' => public_path('vendor/binkode'), ], 'chat-system.views');*/ // Publishing the translation files. /*$this->publishes([ - __DIR__.'/../resources/lang' => resource_path('lang/vendor/myckhel'), + __DIR__.'/../resources/lang' => resource_path('lang/vendor/binkode'), ], 'chat-system.views');*/ // Registering package commands. diff --git a/src/Config.php b/src/Config.php index 37e81a6..4688131 100644 --- a/src/Config.php +++ b/src/Config.php @@ -1,6 +1,6 @@ diff --git a/src/Contracts/IChatEventMaker.php b/src/Contracts/IChatEventMaker.php index 522508d..5f212c1 100644 --- a/src/Contracts/IChatEventMaker.php +++ b/src/Contracts/IChatEventMaker.php @@ -1,7 +1,9 @@ diff --git a/src/Contracts/IConversationUser.php b/src/Contracts/IConversationUser.php index cf43a4b..7b93532 100644 --- a/src/Contracts/IConversationUser.php +++ b/src/Contracts/IConversationUser.php @@ -1,5 +1,6 @@ diff --git a/src/Contracts/IMessage.php b/src/Contracts/IMessage.php index cdf3ff9..a270d40 100644 --- a/src/Contracts/IMessage.php +++ b/src/Contracts/IMessage.php @@ -1,5 +1,6 @@ diff --git a/src/Database/Factories/ChatEventFactory.php b/src/Database/Factories/ChatEventFactory.php index b8194d8..fc0850c 100644 --- a/src/Database/Factories/ChatEventFactory.php +++ b/src/Database/Factories/ChatEventFactory.php @@ -1,28 +1,28 @@ $this->faker->randomElement(['read', 'delete', 'deliver']), - ]; - } + /** + * Define the model's default state. + * + * @return array + */ + public function definition() + { + return [ + 'type' => $this->faker->randomElement(['read', 'delete', 'deliver']), + ]; + } } diff --git a/src/Database/Factories/ConversationFactory.php b/src/Database/Factories/ConversationFactory.php index 6ef0a41..c88dadd 100644 --- a/src/Database/Factories/ConversationFactory.php +++ b/src/Database/Factories/ConversationFactory.php @@ -1,28 +1,28 @@ $this->faker->firstname.'\'s Group', - ]; - } + /** + * Define the model's default state. + * + * @return array + */ + public function definition() + { + return [ + 'name' => $this->faker->firstname . '\'s Group', + ]; + } } diff --git a/src/Database/Factories/ConversationUserFactory.php b/src/Database/Factories/ConversationUserFactory.php index 2edece7..c3911bd 100644 --- a/src/Database/Factories/ConversationUserFactory.php +++ b/src/Database/Factories/ConversationUserFactory.php @@ -1,8 +1,8 @@ $this->faker->randomElement([ $message->user_id, $message->load([ - 'conversation' => fn ($q) => + 'conversation' => fn($q) => $q->whereNotParticipant($message->user_id)->with('participant') ])->conversation->participant->user_id, ]), diff --git a/src/Database/Seeders/ConversationSeeder.php b/src/Database/Seeders/ConversationSeeder.php index b7207c4..11a9d2f 100644 --- a/src/Database/Seeders/ConversationSeeder.php +++ b/src/Database/Seeders/ConversationSeeder.php @@ -1,12 +1,12 @@ count($faker->numberBetween(min(100, count($users)), count($users))) ->hasParticipants( $faker->numberBetween(3, 5), - fn ($attributes, $conversation) => + fn($attributes, $conversation) => [ 'user_id' => $faker->randomElement( - collect($users)->filter(fn ($id) => $id != $conversation->user_id) + collect($users)->filter(fn($id) => $id != $conversation->user_id) ), 'conversation_id' => $conversation->id, ] ) ->hasMessages( $faker->numberBetween(1, 5), - fn (array $attributes, $conversation) => + fn(array $attributes, $conversation) => [ 'conversation_id' => $conversation->id, 'user_id' => $faker->randomElement([ diff --git a/src/Events/Message/Created.php b/src/Events/Message/Created.php index 73cbb69..7f44534 100644 --- a/src/Events/Message/Created.php +++ b/src/Events/Message/Created.php @@ -1,6 +1,6 @@ message->conversation_id}")], - array_map(fn ($id) => new PrivateChannel("message-new.user.{$id}"), $ids) + array_map(fn($id) => new PrivateChannel("message-new.user.{$id}"), $ids) ); } } diff --git a/src/Events/Message/Events.php b/src/Events/Message/Events.php index 476c2ac..c029910 100644 --- a/src/Events/Message/Events.php +++ b/src/Events/Message/Events.php @@ -1,6 +1,6 @@ event->maker_id}"); } else { $participant_ids = $event->made->participants()->pluck('user_id')->toArray(); - return array_map(fn ($id) => new PrivateChannel("message-event.user.{$id}"), $participant_ids); + return array_map(fn($id) => new PrivateChannel("message-event.user.{$id}"), $participant_ids); } } } diff --git a/src/Facades/ChatSystem.php b/src/Facades/ChatSystem.php index a04c425..d83adb4 100644 --- a/src/Facades/ChatSystem.php +++ b/src/Facades/ChatSystem.php @@ -1,6 +1,6 @@ validate([ - 'orderBy' => '', - 'search' => 'min:3', - 'order' => 'in:asc,desc', - 'pageSize' => 'int', - 'type' => 'in:read,delete,deliver', - 'made_type' => 'string', - 'made_id' => 'int', - ]); - $user = $request->user(); - $pageSize = $request->pageSize; - $order = $request->order; - $orderBy = $request->orderBy; - $search = $request->search; - $type = $request->type; - $made_type = $request->made_type; - $made_id = $request->made_id; + /** + * Display a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + public function index(PaginableRequest $request) + { + $request->validate([ + 'orderBy' => '', + 'search' => 'min:3', + 'order' => 'in:asc,desc', + 'pageSize' => 'int', + 'type' => 'in:read,delete,deliver', + 'made_type' => 'string', + 'made_id' => 'int', + ]); + $user = $request->user(); + $pageSize = $request->pageSize; + $order = $request->order; + $orderBy = $request->orderBy; + $search = $request->search; + $type = $request->type; + $made_type = $request->made_type; + $made_id = $request->made_id; - return $user->chatEventMakers(null, null, $type, $made_id, $made_type) + return $user->chatEventMakers(null, null, $type, $made_id, $made_type) ->orderBy($orderBy ?? 'id', $order ?? 'asc') ->paginate($pageSize); - } + } - /** - * Show the form for creating a new resource. - * - * @return \Illuminate\Http\Response - */ - public function create() - { - // - } + /** + * Show the form for creating a new resource. + * + * @return \Illuminate\Http\Response + */ + public function create() + { + // + } - /** - * Store a newly created resource in storage. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response - */ - public function store(Request $request) - { - $request->validate([ - 'made_type' => 'required|string', - 'made_id' => 'required|int', - 'type' => 'required|in:read,delete,deliver', - ]); - $user = $request->user(); - return $user->chatEventMakers() + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function store(Request $request) + { + $request->validate([ + 'made_type' => 'required|string', + 'made_id' => 'required|int', + 'type' => 'required|in:read,delete,deliver', + ]); + $user = $request->user(); + return $user->chatEventMakers() ->create($request->only([ - 'made_type', 'made_id', 'type' + 'made_type', + 'made_id', + 'type' ])); - } + } - /** - * Display the specified resource. - * - * @param \Myckhel\ChatSystem\Models\ChatEvent $chatEvent - * @return \Illuminate\Http\Response - */ - public function show($chatEvent) - { - $chatEvent = config('chat-system.models.chat_event')::findOrFail($chatEvent); - $this->authorize('view', $chatEvent); - return $chatEvent; - } + /** + * Display the specified resource. + * + * @param \Binkode\ChatSystem\Models\ChatEvent $chatEvent + * @return \Illuminate\Http\Response + */ + public function show($chatEvent) + { + $chatEvent = config('chat-system.models.chat_event')::findOrFail($chatEvent); + $this->authorize('view', $chatEvent); + return $chatEvent; + } - /** - * Update the specified resource in storage. - * - * @param \Illuminate\Http\Request $request - * @param \Myckhel\ChatSystem\Models\ChatEvent $chatEvent - * @return \Illuminate\Http\Response - */ - public function update(Request $request, $chatEvent) - { - $chatEvent = config('chat-system.models.chat_event')::findOrFail($chatEvent); - $this->authorize('update', $chatEvent); - $request->validate([]); - $user = $request->user(); - $chatEvent->update(array_filter($request->only($chatEvent->getFillable()))); - return $chatEvent; - } + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param \Binkode\ChatSystem\Models\ChatEvent $chatEvent + * @return \Illuminate\Http\Response + */ + public function update(Request $request, $chatEvent) + { + $chatEvent = config('chat-system.models.chat_event')::findOrFail($chatEvent); + $this->authorize('update', $chatEvent); + $request->validate([]); + $user = $request->user(); + $chatEvent->update(array_filter($request->only($chatEvent->getFillable()))); + return $chatEvent; + } - /** - * Remove the specified resource from storage. - * - * @param \Myckhel\ChatSystem\Models\ChatEvent $chatEvent - * @return \Illuminate\Http\Response - */ - public function destroy(Request $request, $chatEvent) - { - $chatEvent = config('chat-system.models.chat_event')::findOrFail($chatEvent); - $user = $request->user(); - return ['status' => - $user->chatEventMakers($chatEvent)->firstOrFail()->delete() - ]; - } + /** + * Remove the specified resource from storage. + * + * @param \Binkode\ChatSystem\Models\ChatEvent $chatEvent + * @return \Illuminate\Http\Response + */ + public function destroy(Request $request, $chatEvent) + { + $chatEvent = config('chat-system.models.chat_event')::findOrFail($chatEvent); + $user = $request->user(); + return [ + 'status' => + $user->chatEventMakers($chatEvent)->firstOrFail()->delete() + ]; + } } diff --git a/src/Http/Controllers/Controller.php b/src/Http/Controllers/Controller.php index fff910b..e0866cb 100644 --- a/src/Http/Controllers/Controller.php +++ b/src/Http/Controllers/Controller.php @@ -1,6 +1,6 @@ $q->select($eventColumns)->notMessenger($user->id); + $queryEvent = fn($q) => $q->select($eventColumns)->notMessenger($user->id); $conversations = $user->conversations() ->whereHasLastMessage($user) ->withCount([ - 'messages as latest_message_at' => fn ($q) => $q->select(DB::raw('max(created_at)')), - 'participant as isParticipant' => fn ($q) => $q->whereUserId($user->id), - 'unread' => fn ($q) => $q->whereNotSender($user->id), + 'messages as latest_message_at' => fn($q) => $q->select(DB::raw('max(created_at)')), + 'participant as isParticipant' => fn($q) => $q->whereUserId($user->id), + 'unread' => fn($q) => $q->whereNotSender($user->id), ]) ->orderByDesc('latest_message_at') ->with([ // 'chatEvents' => fn ($q) => $q->groupBy('chat_events.id', 'chat_events.maker_type', 'chat_events.maker_id', 'chat_events.made_type', 'chat_events.made_id', 'chat_events.all', 'chat_events.created_at', 'chat_events.updated_at'), - 'delivered' => fn ($q) => $queryEvent($q)->where('maker_id', '!=', $user->id), - 'read' => fn ($q) => $queryEvent($q)->where('maker_id', '!=', $user->id), + 'delivered' => fn($q) => $queryEvent($q)->where('maker_id', '!=', $user->id), + 'read' => fn($q) => $queryEvent($q)->where('maker_id', '!=', $user->id), 'trashed' => $queryEvent, - 'last_message' => fn ($q) => $q->select(['id', 'user_id', 'message', 'conversation_id', 'created_at']) + 'last_message' => fn($q) => $q->select(['id', 'user_id', 'message', 'conversation_id', 'created_at']) ->with([ // 'latestMedia' => fn ($q) => $q->select('id', 'model_type', 'model_id', 'name'), - 'trashed' => fn ($q) => $q->withAll($user) + 'trashed' => fn($q) => $q->withAll($user) ]), - 'participant' => fn ($q) => $q->select('id', 'user_id', 'conversation_id')->where('user_id', '!=', $user->id), - 'participant.user' => fn ($q) => $q, //->withUrls(['avatar']), + 'participant' => fn($q) => $q->select('id', 'user_id', 'conversation_id')->where('user_id', '!=', $user->id), + 'participant.user' => fn($q) => $q, //->withUrls(['avatar']), ])->paginate($pageSize); $conversations->makeDeliver($user); @@ -97,7 +97,7 @@ public function store(Request $request) /** * Display the specified resource. * - * @param \Myckhel\ChatSystem\Models\Conversation $conversation + * @param \Binkode\ChatSystem\Models\Conversation $conversation * @return \Illuminate\Http\Response */ public function show(Request $request, $conversation) @@ -111,7 +111,7 @@ public function show(Request $request, $conversation) if ($conversation->type === 'private') { $conversation->load([ - 'participant' => fn ($q) => $q->select(['id', 'conversation_id', 'user_id'])->where('user_id', '!=', $user->id), + 'participant' => fn($q) => $q->select(['id', 'conversation_id', 'user_id'])->where('user_id', '!=', $user->id), 'participant.user:id,name' ]); @@ -127,7 +127,7 @@ public function show(Request $request, $conversation) * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request - * @param \Myckhel\ChatSystem\Models\Conversation $conversation + * @param \Binkode\ChatSystem\Models\Conversation $conversation * @return \Illuminate\Http\Response */ public function update(Request $request, $conversation) @@ -156,7 +156,7 @@ public function update(Request $request, $conversation) /** * Remove the specified resource from storage. * - * @param \Myckhel\ChatSystem\Models\Conversation $conversation + * @param \Binkode\ChatSystem\Models\Conversation $conversation * @return \Illuminate\Http\Response */ public function destroy(Request $request, $conversation) @@ -179,7 +179,7 @@ function count(PaginableRequest $request) return $user->conversations() ->whereNotTrashed($user->id) ->whereHasLastMessage($user) - ->when($type, fn ($q) => $q->whereHas($type)) + ->when($type, fn($q) => $q->whereHas($type)) ->count(); } diff --git a/src/Http/Controllers/MessageController.php b/src/Http/Controllers/MessageController.php index 8b63068..3db5f63 100644 --- a/src/Http/Controllers/MessageController.php +++ b/src/Http/Controllers/MessageController.php @@ -1,14 +1,14 @@ 'int', 'reply_id' => 'int', 'reply_type' => [ - Rule::requiredIf(fn () => $request->reply_id), + Rule::requiredIf(fn() => $request->reply_id), "in:" . Config::config('models.message'), ], ]); @@ -37,7 +37,7 @@ public function index(PaginableRequest $request) $reply = []; $with = [ 'reply', - 'trashed' => fn ($q) => $q->withAll($user), + 'trashed' => fn($q) => $q->withAll($user), 'sender', ]; @@ -86,12 +86,12 @@ public function store(Request $request) 'type' => $type, ] = $request->validate([ 'conversation_id' => 'int', - 'other_user_id' => ['int', Rule::requiredIf(fn () => !$request->conversation_id)], + 'other_user_id' => ['int', Rule::requiredIf(fn() => !$request->conversation_id)], 'message' => '', 'reply_id' => 'int', 'token' => '', 'reply_type' => [ - Rule::requiredIf(fn () => $request->reply_id), + Rule::requiredIf(fn() => $request->reply_id), "in:" . Config::config('models.message'), ], 'type' => 'in:user,activity', @@ -115,8 +115,8 @@ public function store(Request $request) $message = $conversation->messages() ->when( $token, - fn ($q) => $q->where('metas->token', $token), - fn ($q) => $q->whereNull('id') + fn($q) => $q->where('metas->token', $token), + fn($q) => $q->whereNull('id') ) ->firstOrCreate( [], @@ -149,7 +149,7 @@ public function store(Request $request) /** * Display the specified resource. * - * @param \Myckhel\ChatSystem\Models\Message $message + * @param \Binkode\ChatSystem\Models\Message $message * @return \Illuminate\Http\Response */ public function show($message) @@ -162,7 +162,7 @@ public function show($message) * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request - * @param \Myckhel\ChatSystem\Models\Message $message + * @param \Binkode\ChatSystem\Models\Message $message * @return \Illuminate\Http\Response */ public function update(Request $request, Message $message) @@ -173,7 +173,7 @@ public function update(Request $request, Message $message) /** * Remove the specified resource from storage. * - * @param \Myckhel\ChatSystem\Models\Message $message + * @param \Binkode\ChatSystem\Models\Message $message * @return \Illuminate\Http\Response */ public function destroy(Request $request, $message) diff --git a/src/Http/Requests/PaginableRequest.php b/src/Http/Requests/PaginableRequest.php index 2d67319..f65909a 100644 --- a/src/Http/Requests/PaginableRequest.php +++ b/src/Http/Requests/PaginableRequest.php @@ -1,6 +1,6 @@ '', - 'order' => 'in:asc,desc', - 'pageSize' => 'int', + 'orderBy' => '', + 'order' => 'in:asc,desc', + 'pageSize' => 'int', ]; } } diff --git a/src/Jobs/Chat/MakeEvent.php b/src/Jobs/Chat/MakeEvent.php index 8b4381a..3b6778d 100644 --- a/src/Jobs/Chat/MakeEvent.php +++ b/src/Jobs/Chat/MakeEvent.php @@ -1,14 +1,14 @@ whereDoesntHaveChatEvents( 'deliver', $this->user->id, - fn ($q) => + fn($q) => $q->whereIn('id', $conversation->pluck('id')) )->where('user_id', '!=', $this->user->id)->get(); - $undelivered->map(fn ($msg) => $msg->conversation->makeDeliver($this->user)); + $undelivered->map(fn($msg) => $msg->conversation->makeDeliver($this->user)); } } } diff --git a/src/Models/ChatEvent.php b/src/Models/ChatEvent.php index 9a4b7fb..a6c5205 100644 --- a/src/Models/ChatEvent.php +++ b/src/Models/ChatEvent.php @@ -1,15 +1,15 @@ whereDoesntHave('message', fn ($q) => $q->whereUserId($user->id ?? $user))->whereType('user'); + $q->whereDoesntHave('message', fn($q) => $q->whereUserId($user->id ?? $user))->whereType('user'); } /** diff --git a/src/Models/Conversation.php b/src/Models/Conversation.php index f6d0a39..b34a131 100644 --- a/src/Models/Conversation.php +++ b/src/Models/Conversation.php @@ -1,20 +1,20 @@ messages() ->when( $token, - fn ($q) => $q->where('metas->token', $token), - fn ($q) => $q->whereNull('id') + fn($q) => $q->where('metas->token', $token), + fn($q) => $q->whereNull('id') ) ->firstOrCreate([], $message + ['metas' => $token ? ['token' => $token] : null]); } @@ -73,9 +73,9 @@ function createMessageWithToken($token, array $message) /** * Adds a user as participant of the conversaton. * - * @param Myckhel\ChatSystem\Contracts\IChatEventMaker $user + * @param Binkode\ChatSystem\Contracts\IChatEventMaker $user * @param string $message - * @return Myckhel\ChatSystem\Models\ConversationUser + * @return Binkode\ChatSystem\Models\ConversationUser */ function addParticipant(IChatEventMaker $user, string $message = 'Someone joined the conversation') { @@ -93,7 +93,7 @@ function addParticipant(IChatEventMaker $user, string $message = 'Someone joined /** * Removes a user as participant of the conversaton. * - * @param Myckhel\ChatSystem\Contracts\IChatEventMaker $user + * @param Binkode\ChatSystem\Contracts\IChatEventMaker $user * @param string $message * @return bool|null */ @@ -112,7 +112,7 @@ function removeParticipant(IChatEventMaker $user, string $message = 'Someone lef * Creates an activity message. * * @param array $message - * @return Myckhel\ChatSystem\Models\Message + * @return Binkode\ChatSystem\Models\Message */ protected function createActivityMessage(array $message) { @@ -127,14 +127,14 @@ protected static function newFactory() /** * Adds query where conversation has latest message where message is not a system message. * - * @param Myckhel\ChatSystem\Contarcts\IChatEventMaker $user + * @param Binkode\ChatSystem\Contarcts\IChatEventMaker $user * @return QueryBuilder */ function scopeWhereHasLastMessage($q, IChatEventMaker $user = null) { $q->whereHas( 'last_message', - fn ($q) => + fn($q) => $q->where('type', '!=', 'system') ->whereConversationWasntDeleted($user) ); @@ -146,7 +146,7 @@ function scopeWhereHasLastMessage($q, IChatEventMaker $user = null) * @param IChatEventMaker $user * @param bool|null $row * @param bool $all - * @return Myckhel\ChatSystem\Models\ChatEvent + * @return Binkode\ChatSystem\Models\ChatEvent */ function makeDelete(IChatEventMaker $user = null, $row = false, $all = false) { @@ -159,7 +159,7 @@ function makeDelete(IChatEventMaker $user = null, $row = false, $all = false) * @param IChatEventMaker $user * @param bool|null $row * @param bool $all - * @return Myckhel\ChatSystem\Models\ChatEvent + * @return Binkode\ChatSystem\Models\ChatEvent */ function makeRead(IChatEventMaker $user = null, $row = true, $all = false) { @@ -172,7 +172,7 @@ function makeRead(IChatEventMaker $user = null, $row = true, $all = false) * @param IChatEventMaker $user * @param bool|null $row * @param bool $all - * @return Myckhel\ChatSystem\Models\ChatEvent + * @return Binkode\ChatSystem\Models\ChatEvent */ function makeDeliver(IChatEventMaker $user = null, $row = true, $all = false) { @@ -186,7 +186,7 @@ function makeDeliver(IChatEventMaker $user = null, $row = true, $all = false) * @param string $type * @param bool|null $row * @param bool $all - * @return Myckhel\ChatSystem\Models\ChatEvent + * @return Binkode\ChatSystem\Models\ChatEvent */ private function makeChatEvent(IChatEventMaker $user, $type = 'delete', $row = false, $all = false) { @@ -218,12 +218,12 @@ public function last_message(): HasOne /** * Adds query where conversation doesn't have the given user as a participant. * - * @param Myckhel\ChatSystem\Contarcts\IChatEventMaker $user + * @param Binkode\ChatSystem\Contarcts\IChatEventMaker $user * @return QueryBuilder */ function scopeWhereNotParticipant($q, IChatEventMaker|int $user) { - $q->whereDoesntHave('participants', fn ($q) => $q->whereUserId($user->id ?? $user)); + $q->whereDoesntHave('participants', fn($q) => $q->whereUserId($user->id ?? $user)); } /** @@ -239,19 +239,19 @@ public function participants(): HasMany /** * Conversation has one latest conversation user. * - * @param Myckhel\ChatSystem\Contarcts\IChatEventMaker|int $user + * @param Binkode\ChatSystem\Contarcts\IChatEventMaker|int $user * @return HasOne */ public function participant(IChatEventMaker|int $user = null): HasOne { return $this->hasOne(Config::config('models.conversation_user'))->latest() - ->when($user, fn ($q) => $q->whereUserId($user->id ?? $user)); + ->when($user, fn($q) => $q->whereUserId($user->id ?? $user)); } /** * Conversation has one other latest conversation user. * - * @param Myckhel\ChatSystem\Contarcts\IChatEventMaker $user + * @param Binkode\ChatSystem\Contarcts\IChatEventMaker $user * @return HasOne */ public function otherParticipant($user = null): HasOne @@ -263,7 +263,7 @@ public function otherParticipant($user = null): HasOne /** * Conversation has many other latest conversation user. * - * @param Myckhel\ChatSystem\Contarcts\IChatEventMaker $user + * @param Binkode\ChatSystem\Contarcts\IChatEventMaker $user * @return HasOne */ public function otherParticipants($user = null): HasMany @@ -285,7 +285,7 @@ public function messages() /** * Conversation has many unread messages where given user is not the message sender. * - * @param Myckhel\ChatSystem\Contarcts\IChatEventMaker $user + * @param Binkode\ChatSystem\Contarcts\IChatEventMaker $user * @return QueryBuilder */ public function unread(int|IChatEventMaker $user = null) @@ -293,13 +293,13 @@ public function unread(int|IChatEventMaker $user = null) $user_id = $user->id ?? $user ?? auth()->user()?->id; return $this->doesntHaveChatEvents($user_id, 'read')->latest() - ->when($user_id, fn ($q) => $q->whereNotSender($user_id)); + ->when($user_id, fn($q) => $q->whereNotSender($user_id)); } /** * Conversation has many undelivered messages where given user is not the message sender. * - * @param Myckhel\ChatSystem\Contarcts\IChatEventMaker $user + * @param Binkode\ChatSystem\Contarcts\IChatEventMaker $user * @return QueryBuilder */ function undelivered(int|IChatEventMaker $user = null) @@ -313,7 +313,7 @@ function undelivered(int|IChatEventMaker $user = null) /** * Conversation has many messages where given user is not the event emitter. * - * @param Myckhel\ChatSystem\Contarcts\IChatEventMaker $user + * @param Binkode\ChatSystem\Contarcts\IChatEventMaker $user * @param string|null $type * @return HasMany */ @@ -325,12 +325,12 @@ function doesntHaveChatEvents(int|IChatEventMaker $user, $type = null) ->whereType('user') ->whereHas( 'conversation', - fn ($q) => + fn($q) => $q->whereDoesntHave( 'chatEvents', - fn ($q) => + fn($q) => $q->latest()->whereMakerId($user_id) - ->when($type, fn ($q) => $q->whereType($type)) + ->when($type, fn($q) => $q->whereType($type)) ->whereColumn('created_at', '>', 'messages.created_at') ) ); diff --git a/src/Models/ConversationUser.php b/src/Models/ConversationUser.php index b0fbdd0..c74989a 100644 --- a/src/Models/ConversationUser.php +++ b/src/Models/ConversationUser.php @@ -1,12 +1,12 @@ when( $reply['reply_id'] ?? null, - fn ($q) => $q->whereReplyId($reply['reply_id']) + fn($q) => $q->whereReplyId($reply['reply_id']) )->when( $reply['reply_type'] ?? null, - fn ($q) => $q->whereReplyType($reply['reply_type']) + fn($q) => $q->whereReplyType($reply['reply_type']) ); } @@ -64,7 +64,7 @@ protected static function newFactory() * adds query where message doesn't have chatEvents * * @param string|null $type - * @param Myckhel\ChatSystem\Contarcts\IChatEventMaker|null $user + * @param Binkode\ChatSystem\Contarcts\IChatEventMaker|null $user * @param Closure|null $conversationScope * @return QueryBuilder */ @@ -75,18 +75,18 @@ function scopeWhereDoesntHaveChatEvents($q, $type = null, IChatEventMaker|int $u if ($type == 'delete') { $q->whereDoesntHave( 'chatEvents', - fn ($q) => + fn($q) => $q->whereMakerId($user_id)->whereType($type) ); } else { $q->whereHas( 'conversation', - fn ($q) => + fn($q) => $q->whereDoesntHave( 'chatEvents', - fn ($q) => + fn($q) => $q->whereMakerId($user_id) - ->when($type, fn ($q) => $q->whereType($type)) + ->when($type, fn($q) => $q->whereType($type)) ->whereColumn('created_at', '>', 'messages.created_at') )->when($conversationScope, $conversationScope) ); @@ -96,7 +96,7 @@ function scopeWhereDoesntHaveChatEvents($q, $type = null, IChatEventMaker|int $u /** * adds query where message is not read by the given user * - * @param Myckhel\ChatSystem\Contarcts\IChatEventMaker|null $user + * @param Binkode\ChatSystem\Contarcts\IChatEventMaker|null $user * @return QueryBuilder */ function scopeWhereNotReadBy($q, IChatEventMaker|int $user) @@ -107,7 +107,7 @@ function scopeWhereNotReadBy($q, IChatEventMaker|int $user) /** * adds query where message is not delivered to the given user * - * @param Myckhel\ChatSystem\Contarcts\IChatEventMaker|null $user + * @param Binkode\ChatSystem\Contarcts\IChatEventMaker|null $user * @return QueryBuilder */ function scopeWhereNotDeliveredTo($q, IChatEventMaker|int $user) @@ -118,7 +118,7 @@ function scopeWhereNotDeliveredTo($q, IChatEventMaker|int $user) /** * adds query where message is not deleted by the given user * - * @param Myckhel\ChatSystem\Contarcts\IChatEventMaker|null $user + * @param Binkode\ChatSystem\Contarcts\IChatEventMaker|null $user * @return QueryBuilder */ function scopeWhereNotDeletedBy($q, IChatEventMaker|int $user) @@ -129,15 +129,15 @@ function scopeWhereNotDeletedBy($q, IChatEventMaker|int $user) /** * adds query where message has participant = user * - * @param Myckhel\ChatSystem\Contarcts\IChatEventMaker|null $user + * @param Binkode\ChatSystem\Contarcts\IChatEventMaker|null $user * @return QueryBuilder */ function scopeWhereRelatedTo($q, IChatEventMaker|int $user) { $q->whereHas( 'conversation', - fn ($q) => - $q->whereHas('participants', fn ($q) => $q->whereUserId($user->id ?? $user)) + fn($q) => + $q->whereHas('participants', fn($q) => $q->whereUserId($user->id ?? $user)) ); } @@ -151,7 +151,7 @@ function scopeHasEvent($q, callable $eventScope = null) { $q->whereHas( 'chatEvents', - fn ($q) => + fn($q) => $q->when($eventScope, $eventScope) ); } @@ -166,7 +166,7 @@ function scopeHasNoEvent($q, callable $eventScope = null) { $q->whereDoesntHave( 'chatEvents', - fn ($q) => + fn($q) => $q->when($eventScope, $eventScope) ); } @@ -174,20 +174,20 @@ function scopeHasNoEvent($q, callable $eventScope = null) /** * query where message's conversation has not been deleted * - * @param Myckhel\ChatSystem\Contarcts\IChatEventMaker|null $by + * @param Binkode\ChatSystem\Contarcts\IChatEventMaker|null $by * @return QueryBuilder */ function scopeWhereConversationWasntDeleted($q, IChatEventMaker $by = null) { $q->whereDoesntHave( 'conversation', - fn ($q) => + fn($q) => $q->whereHas( 'chatEvents', - fn ($q) => + fn($q) => $q->whereType('delete') ->whereColumn('created_at', '>', 'messages.created_at') - ->where(fn ($q) => $q->where('all', true)->when($by, fn ($q) => $q->orWhere('maker_id', $by->id))) + ->where(fn($q) => $q->where('all', true)->when($by, fn($q) => $q->orWhere('maker_id', $by->id))) ) ); } @@ -210,7 +210,7 @@ function participantsHasDeleted(int $maker_id = null) [$participantsCount, $deleteEventsCount] = [ $this->conversation->participants()->count(), $this->chatEvents(false)->whereType('delete') - ->when($maker_id, fn ($q) => $q->where('maker_id', '!=', $maker_id)) + ->when($maker_id, fn($q) => $q->where('maker_id', '!=', $maker_id)) ->count() ]; return $deleteEventsCount == $participantsCount - 1; @@ -221,7 +221,7 @@ function participantsHasDeleted(int $maker_id = null) * * @param IChatEventMaker $user * @param bool $all - * @return Myckhel\ChatSystem\Models\ChatEvent + * @return Binkode\ChatSystem\Models\ChatEvent */ function makeDelete(IChatEventMaker $user, $all = false) { @@ -232,7 +232,7 @@ function makeDelete(IChatEventMaker $user, $all = false) * create a chatEvent of type `read` for the `message` through the given `user` * * @param IChatEventMaker $user - * @return Myckhel\ChatSystem\Models\ChatEvent + * @return Binkode\ChatSystem\Models\ChatEvent */ function makeRead(IChatEventMaker $user) { @@ -243,7 +243,7 @@ function makeRead(IChatEventMaker $user) * create a chatEvent of type `deliver` for the `message` through the given `user` * * @param IChatEventMaker $user - * @return Myckhel\ChatSystem\Models\ChatEvent + * @return Binkode\ChatSystem\Models\ChatEvent */ function makeDeliver(IChatEventMaker $user) { @@ -256,7 +256,7 @@ function makeDeliver(IChatEventMaker $user) * @param IChatEventMaker $user * @param string $type * @param bool $all - * @return Myckhel\ChatSystem\Models\ChatEvent + * @return Binkode\ChatSystem\Models\ChatEvent */ private function makeChatEvent(IChatEventMaker $user, $type = 'read', $all = false) { @@ -274,15 +274,15 @@ private function makeChatEvent(IChatEventMaker $user, $type = 'read', $all = fal * Query participants of the conversation the message belongs to. * * @param IChatEventMaker $user - * @return Myckhel\ChatSystem\Models\ChatEvent + * @return Binkode\ChatSystem\Models\ChatEvent */ public function participants(IChatEventMaker|int $user = null) { $user_id = $user->id ?? $user ?? null; return Config::config('models.conversation_user')::whereHas( 'conversation', - fn ($q) => - $q->whereId($this->conversation_id)->whereHas('participants', fn ($q) => $q->when($user_id, fn ($q) => $q->whereUserId($user_id))) + fn($q) => + $q->whereId($this->conversation_id)->whereHas('participants', fn($q) => $q->when($user_id, fn($q) => $q->whereUserId($user_id))) ); } @@ -305,7 +305,7 @@ public function conversation(): BelongsTo function chatEvents(bool $distinctType = true): MorphMany { return $this->morphMany(Config::config('models.chat_event'), 'made') - ->when($distinctType, fn ($q) => $q->distinct('type')) + ->when($distinctType, fn($q) => $q->distinct('type')) ->latest(); } @@ -392,7 +392,7 @@ function makeDeliver($user = null) */ private function makeChatEvent(IChatEventMaker $user, $type = 'read', $all = false) { - $create = $this->map(fn ($msg) => [ + $create = $this->map(fn($msg) => [ 'made_id' => $msg->id, 'made_type' => $msg::class, 'type' => 'delete', diff --git a/src/Observers/ChatEventObserver.php b/src/Observers/ChatEventObserver.php index 5ac2f7e..5957891 100644 --- a/src/Observers/ChatEventObserver.php +++ b/src/Observers/ChatEventObserver.php @@ -1,74 +1,74 @@ type == 'delete') { + broadcast(new Events($chatEvent)); + } else { + broadcast(new Events($chatEvent))->toOthers(); + } + } + + /** + * Handle the ChatEvent "updated" event. + * + * @param \Binkode\ChatSystem\Contracts\IChatEvent $chatEvent + * @return void + */ + public function updated(IChatEvent $chatEvent) + { + if ($chatEvent->isDirty('created_at')) { if ($chatEvent->type == 'delete') { broadcast(new Events($chatEvent)); } else { broadcast(new Events($chatEvent))->toOthers(); } } + } - /** - * Handle the ChatEvent "updated" event. - * - * @param \Myckhel\ChatSystem\Contracts\IChatEvent $chatEvent - * @return void - */ - public function updated(IChatEvent $chatEvent) - { - if ($chatEvent->isDirty('created_at')) { - if ($chatEvent->type == 'delete') { - broadcast(new Events($chatEvent)); - } else { - broadcast(new Events($chatEvent))->toOthers(); - } - } - } - - /** - * Handle the ChatEvent "deleted" event. - * - * @param \Myckhel\ChatSystem\Contracts\IChatEvent $chatEvent - * @return void - */ - public function deleted(IChatEvent $chatEvent) - { - // - } + /** + * Handle the ChatEvent "deleted" event. + * + * @param \Binkode\ChatSystem\Contracts\IChatEvent $chatEvent + * @return void + */ + public function deleted(IChatEvent $chatEvent) + { + // + } - /** - * Handle the ChatEvent "restored" event. - * - * @param \Myckhel\ChatSystem\Contracts\IChatEvent $chatEvent - * @return void - */ - public function restored(IChatEvent $chatEvent) - { - // - } + /** + * Handle the ChatEvent "restored" event. + * + * @param \Binkode\ChatSystem\Contracts\IChatEvent $chatEvent + * @return void + */ + public function restored(IChatEvent $chatEvent) + { + // + } - /** - * Handle the ChatEvent "force deleted" event. - * - * @param \Myckhel\ChatSystem\Contracts\IChatEvent $chatEvent - * @return void - */ - public function forceDeleted(IChatEvent $chatEvent) - { - // - } + /** + * Handle the ChatEvent "force deleted" event. + * + * @param \Binkode\ChatSystem\Contracts\IChatEvent $chatEvent + * @return void + */ + public function forceDeleted(IChatEvent $chatEvent) + { + // + } } diff --git a/src/Observers/ConversationObserver.php b/src/Observers/ConversationObserver.php index 6707725..6bf44f1 100644 --- a/src/Observers/ConversationObserver.php +++ b/src/Observers/ConversationObserver.php @@ -1,28 +1,28 @@ participants()->create([ - // 'user_id' => $conversation->author->id - // ]); + // $conversation->participants()->create([ + // 'user_id' => $conversation->author->id + // ]); } /** * Handle the conversation "updated" event. * - * @param \Myckhel\ChatSystem\Contracts\IConversation $conversation + * @param \Binkode\ChatSystem\Contracts\IConversation $conversation * @return void */ public function updated(IConversation $conversation) @@ -33,7 +33,7 @@ public function updated(IConversation $conversation) /** * Handle the conversation "deleted" event. * - * @param \Myckhel\ChatSystem\Contracts\IConversation $conversation + * @param \Binkode\ChatSystem\Contracts\IConversation $conversation * @return void */ public function deleted(IConversation $conversation) @@ -44,7 +44,7 @@ public function deleted(IConversation $conversation) /** * Handle the conversation "restored" event. * - * @param \Myckhel\ChatSystem\Contracts\IConversation $conversation + * @param \Binkode\ChatSystem\Contracts\IConversation $conversation * @return void */ public function restored(IConversation $conversation) @@ -55,7 +55,7 @@ public function restored(IConversation $conversation) /** * Handle the conversation "force deleted" event. * - * @param \Myckhel\ChatSystem\Contracts\IConversation $conversation + * @param \Binkode\ChatSystem\Contracts\IConversation $conversation * @return void */ public function forceDeleted(IConversation $conversation) diff --git a/src/Policies/ChatEventPolicy.php b/src/Policies/ChatEventPolicy.php index 1dda220..9a5b93f 100644 --- a/src/Policies/ChatEventPolicy.php +++ b/src/Policies/ChatEventPolicy.php @@ -1,10 +1,10 @@ relatedToConversation($conversation); - } + /** + * Determine whether the user can view the model. + * + * @param \Binkode\ChatSystem\Contracts\IChatEventMaker $user + * @param \Binkode\ChatSystem\Contracts\IConversation $conversation + * @return mixed + */ + public function view(IChatEventMaker $user, IConversation $conversation) + { + return $user->relatedToConversation($conversation); + } - /** - * Determine whether the user can create models. - * - * @param \Myckhel\ChatSystem\Contracts\IChatEventMaker $user - * @return mixed - */ - public function create(IChatEventMaker $user) - { - // - } + /** + * Determine whether the user can create models. + * + * @param \Binkode\ChatSystem\Contracts\IChatEventMaker $user + * @return mixed + */ + public function create(IChatEventMaker $user) + { + // + } - /** - * Determine whether the user can update the model. - * - * @param \Myckhel\ChatSystem\Contracts\IChatEventMaker $user - * @param \Myckhel\ChatSystem\Contracts\IConversation $conversation - * @return mixed - */ - public function update(IChatEventMaker $user, IConversation $conversation) - { - return $user->id == $conversation->user_id; - } + /** + * Determine whether the user can update the model. + * + * @param \Binkode\ChatSystem\Contracts\IChatEventMaker $user + * @param \Binkode\ChatSystem\Contracts\IConversation $conversation + * @return mixed + */ + public function update(IChatEventMaker $user, IConversation $conversation) + { + return $user->id == $conversation->user_id; + } - /** - * Determine whether the user can delete the model. - * - * @param \Myckhel\ChatSystem\Contracts\IChatEventMaker $user - * @param \Myckhel\ChatSystem\Contracts\IConversation $conversation - * @return mixed - */ - public function delete(IChatEventMaker $user, IConversation $conversation) - { - return $user->relatedToConversation($conversation); - } + /** + * Determine whether the user can delete the model. + * + * @param \Binkode\ChatSystem\Contracts\IChatEventMaker $user + * @param \Binkode\ChatSystem\Contracts\IConversation $conversation + * @return mixed + */ + public function delete(IChatEventMaker $user, IConversation $conversation) + { + return $user->relatedToConversation($conversation); + } - /** - * Determine whether the user can restore the model. - * - * @param \Myckhel\ChatSystem\Contracts\IChatEventMaker $user - * @param \Myckhel\ChatSystem\Contracts\IConversation $conversation - * @return mixed - */ - public function restore(IChatEventMaker $user, IConversation $conversation) - { - // - } + /** + * Determine whether the user can restore the model. + * + * @param \Binkode\ChatSystem\Contracts\IChatEventMaker $user + * @param \Binkode\ChatSystem\Contracts\IConversation $conversation + * @return mixed + */ + public function restore(IChatEventMaker $user, IConversation $conversation) + { + // + } - /** - * Determine whether the user can permanently delete the model. - * - * @param \Myckhel\ChatSystem\Contracts\IChatEventMaker $user - * @param \Myckhel\ChatSystem\Contracts\IConversation $conversation - * @return mixed - */ - public function forceDelete(IChatEventMaker $user, IConversation $conversation) - { - // - } + /** + * Determine whether the user can permanently delete the model. + * + * @param \Binkode\ChatSystem\Contracts\IChatEventMaker $user + * @param \Binkode\ChatSystem\Contracts\IConversation $conversation + * @return mixed + */ + public function forceDelete(IChatEventMaker $user, IConversation $conversation) + { + // + } - function join(IChatEventMaker $user, IConversation $conversation) { - return $conversation->type != 'private'; - } + function join(IChatEventMaker $user, IConversation $conversation) + { + return $conversation->type != 'private'; + } } diff --git a/src/Policies/MessagePolicy.php b/src/Policies/MessagePolicy.php index 7612856..e04b967 100644 --- a/src/Policies/MessagePolicy.php +++ b/src/Policies/MessagePolicy.php @@ -1,11 +1,11 @@ relatedToMessage($message); + return $user->relatedToMessage($message); } /** * Determine whether the user can restore the model. * - * @param \Myckhel\ChatSystem\Contracts\IChatEventMaker $user - * @param \Myckhel\ChatSystem\Contracts\IMessage $message + * @param \Binkode\ChatSystem\Contracts\IChatEventMaker $user + * @param \Binkode\ChatSystem\Contracts\IMessage $message * @return mixed */ public function restore(IChatEventMaker $user, IMessage $message) @@ -84,8 +84,8 @@ public function restore(IChatEventMaker $user, IMessage $message) /** * Determine whether the user can permanently delete the model. * - * @param \Myckhel\ChatSystem\Contracts\IChatEventMaker $user - * @param \Myckhel\ChatSystem\Contracts\IMessage $message + * @param \Binkode\ChatSystem\Contracts\IChatEventMaker $user + * @param \Binkode\ChatSystem\Contracts\IMessage $message * @return mixed */ public function forceDelete(IChatEventMaker $user, IMessage $message) diff --git a/src/Traits/ChatEvent/CanMakeChatEvent.php b/src/Traits/ChatEvent/CanMakeChatEvent.php index d4f63f1..15b8452 100644 --- a/src/Traits/ChatEvent/CanMakeChatEvent.php +++ b/src/Traits/ChatEvent/CanMakeChatEvent.php @@ -1,10 +1,10 @@ morphMany(Config::config('models.chat_event'), 'maker')->latest() - ->when($type, fn ($q) => $q->whereType($type)) - ->when($made_id, fn ($q) => $q->whereMadeId($made_id)) - ->when($made_type, fn ($q) => $q->whereMadeType($made_type)) - ->when($id, fn ($q) => $q->whereId($id)) - ->when($model, fn ($q) => $q->whereId($model->id)); + ->when($type, fn($q) => $q->whereType($type)) + ->when($made_id, fn($q) => $q->whereMadeId($made_id)) + ->when($made_type, fn($q) => $q->whereMadeType($made_type)) + ->when($id, fn($q) => $q->whereId($id)) + ->when($model, fn($q) => $q->whereId($model->id)); } // public static function bootCanMakeChatEvent(){ diff --git a/src/Traits/ChatEvent/HasChatEvent.php b/src/Traits/ChatEvent/HasChatEvent.php index b8b4000..aa161c5 100644 --- a/src/Traits/ChatEvent/HasChatEvent.php +++ b/src/Traits/ChatEvent/HasChatEvent.php @@ -1,8 +1,8 @@ whereDoesntHave('trashed', fn ($q) => $q->where('all', true)->orWhere('maker_id', $maker_id)); + $q->whereDoesntHave('trashed', fn($q) => $q->where('all', true)->orWhere('maker_id', $maker_id)); } /** @@ -58,7 +58,7 @@ function delivered(ChatEventMaker $maker = null) ->whereType('deliver')->latest() ->when( $maker, - fn ($q) => $q->whereMakerId($maker->id)->whereMadeType($maker::class) + fn($q) => $q->whereMakerId($maker->id)->whereMadeType($maker::class) ); } diff --git a/src/Traits/HasDelete.php b/src/Traits/HasDelete.php index e66d8c9..12ed0eb 100644 --- a/src/Traits/HasDelete.php +++ b/src/Traits/HasDelete.php @@ -1,12 +1,15 @@ {$relation}()->chunkById(500, function ($child) { // $child->fireModelEvent('deleting'); // // Here, we'll touch the owning models, verifying these timestamps get updated @@ -19,11 +22,12 @@ static function deleteChildren($model, string $relation){ } } - static function canDeleteRelation($model){ + static function canDeleteRelation($model) + { if (in_array(SoftDeletes::class, class_uses_recursive($model))) { - if (! $model->forceDeleting) { - return false; - } + if (! $model->forceDeleting) { + return false; + } } return true; } diff --git a/src/Traits/Message/HasMessage.php b/src/Traits/Message/HasMessage.php index c569389..e6670b3 100644 --- a/src/Traits/Message/HasMessage.php +++ b/src/Traits/Message/HasMessage.php @@ -1,11 +1,11 @@ conversations(type: [$type])->pluck('conversations.id'); return $this->hasMany(Config::config('models.message')) ->where( - fn ($q) => + fn($q) => $q->orWhereHas( 'conversation', - fn ($q) => + fn($q) => $q->whereIn('conversations.id', $conversation_ids) ) )->whereReply($reply)->latest(); } } else { $conversation = Config::config('models.conversation')::whereType($type) - ->when($conversation, fn ($q) => $q->whereId($conversation->id ?? $conversation)) + ->when($conversation, fn($q) => $q->whereId($conversation->id ?? $conversation)) ->first(); $conversation && MakeEvent::dispatch($this, 'read', $conversation)->afterResponse(); @@ -76,7 +76,7 @@ function undelivered() return Config::config('models.message') ::where('user_id', '!=', $this->id) ->whereRelatedTo($this) - ->hasNoEvent(fn ($q) => $q->whereMakerId($this->id)->whereType('deliver')) + ->hasNoEvent(fn($q) => $q->whereMakerId($this->id)->whereType('deliver')) ->latest(); } @@ -94,9 +94,9 @@ function conversations(IConversation|int $conversation = null, $otherUser = null Config::config('models.conversation'), 'conversation_users' )->withTimestamps() - ->when($type, fn ($q) => $q->whereIn('type', $type)) - ->when($conversation, fn ($q) => $q->where('conversations.id', $conversation->id ?? $conversation)) - ->when($otherUser, fn ($q) => $q->whereHas('participants', fn ($q) => $q->whereUserId($otherUser->id ?? $otherUser))); + ->when($type, fn($q) => $q->whereIn('type', $type)) + ->when($conversation, fn($q) => $q->where('conversations.id', $conversation->id ?? $conversation)) + ->when($otherUser, fn($q) => $q->whereHas('participants', fn($q) => $q->whereUserId($otherUser->id ?? $otherUser))); } /** diff --git a/src/routes/api.php b/src/routes/api.php index fdcfe6e..0bb3bba 100644 --- a/src/routes/api.php +++ b/src/routes/api.php @@ -2,10 +2,10 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; -use Myckhel\ChatSystem\Http\Controllers\ConversationController; -use Myckhel\ChatSystem\Http\Controllers\MessageController; -use Myckhel\ChatSystem\Http\Controllers\ChatEventController; -use Myckhel\ChatSystem\Config; +use Binkode\ChatSystem\Http\Controllers\ConversationController; +use Binkode\ChatSystem\Http\Controllers\MessageController; +use Binkode\ChatSystem\Http\Controllers\ChatEventController; +use Binkode\ChatSystem\Config; /* |-------------------------------------------------------------------------- diff --git a/src/routes/channels.php b/src/routes/channels.php index ad3ff1e..a1bc74f 100644 --- a/src/routes/channels.php +++ b/src/routes/channels.php @@ -1,9 +1,9 @@ conversation = Conversation::inRandomOrder()->whereHas('messages')->first(); diff --git a/tests/Feature/Http/Controllers/ChatEventControllerTest.php b/tests/Feature/Http/Controllers/ChatEventControllerTest.php index 227cfbf..0f58adf 100644 --- a/tests/Feature/Http/Controllers/ChatEventControllerTest.php +++ b/tests/Feature/Http/Controllers/ChatEventControllerTest.php @@ -1,6 +1,6 @@ user = auth()->user(); diff --git a/tests/Feature/Http/Controllers/MessageControllerTest.php b/tests/Feature/Http/Controllers/MessageControllerTest.php index d15bc6b..e35d309 100644 --- a/tests/Feature/Http/Controllers/MessageControllerTest.php +++ b/tests/Feature/Http/Controllers/MessageControllerTest.php @@ -1,11 +1,11 @@ user = auth()->user(); $this->conversation = ($this->mockConversation)($this->user); - $this->mockMessage = fn ($conversation, $user) => $conversation->createMessage(['user_id' => $user->id ?? $user, 'message' => $this->faker->sentence]); + $this->mockMessage = fn($conversation, $user) => $conversation->createMessage(['user_id' => $user->id ?? $user, 'message' => $this->faker->sentence]); $this->message = ($this->mockMessage)($this->conversation, $this->user); }); diff --git a/tests/Feature/Jobs/Chat/MakeEventTest.php b/tests/Feature/Jobs/Chat/MakeEventTest.php index 6dc2ffe..5d7bd96 100644 --- a/tests/Feature/Jobs/Chat/MakeEventTest.php +++ b/tests/Feature/Jobs/Chat/MakeEventTest.php @@ -1,10 +1,10 @@ conversation = Conversation::inRandomOrder()->first(); $this->message = $this->conversation->messages()->latest()->first(); $this->chatEvent = [ diff --git a/tests/Feature/Models/ConversationTest.php b/tests/Feature/Models/ConversationTest.php index c5f4d05..ed4cc93 100644 --- a/tests/Feature/Models/ConversationTest.php +++ b/tests/Feature/Models/ConversationTest.php @@ -1,8 +1,9 @@ conversation = Conversation::inRandomOrder()->first(); $this->user_id = $this->conversation->user_id; $this->message = $this->conversation->messages()->latest()->first(); diff --git a/tests/Models/User.php b/tests/Models/User.php index a413ea6..729aa91 100644 --- a/tests/Models/User.php +++ b/tests/Models/User.php @@ -1,38 +1,39 @@ getTable(); - Schema::create($tableName, function (Blueprint $table) use ($tableName) { - $table->increments('id'); - $table->string('name')->nullable(); - $table->timestamps(); - $table->softDeletes(); - }); - } + public static function up() + { + $tableName = (new self())->getTable(); + Schema::create($tableName, function (Blueprint $table) use ($tableName) { + $table->increments('id'); + $table->string('name')->nullable(); + $table->timestamps(); + $table->softDeletes(); + }); + } } diff --git a/tests/Pest.php b/tests/Pest.php index 30e1b71..88042b6 100644 --- a/tests/Pest.php +++ b/tests/Pest.php @@ -1,30 +1,30 @@ beforeEach(function () { - $this->faker = Faker::create(); + ->beforeEach(function () { + $this->faker = Faker::create(); - $this->actingAs(User::inRandomOrder()->first()); + $this->actingAs(User::inRandomOrder()->first()); - $this->user = auth()->user(); + $this->user = auth()->user(); - $this->mockUser = fn () => User::create(['name' => $this->faker->name]); + $this->mockUser = fn() => User::create(['name' => $this->faker->name]); - $this->mockConversation = fn ($user, $type = 'private') => $user->conversations()->create([ - 'name' => $this->faker->name.' Group', - 'user_id' => $user->id, - 'type' => $type, - ]); + $this->mockConversation = fn($user, $type = 'private') => $user->conversations()->create([ + 'name' => $this->faker->name . ' Group', + 'user_id' => $user->id, + 'type' => $type, + ]); - $this->conversation = ($this->mockConversation)($this->user); + $this->conversation = ($this->mockConversation)($this->user); - $this->mockMessage = fn ($conversation, $user) => $conversation->createMessage([ - 'user_id' => $user->id ?? $user, - 'message' => $this->faker->sentence - ]); - }) - ->in(__DIR__); + $this->mockMessage = fn($conversation, $user) => $conversation->createMessage([ + 'user_id' => $user->id ?? $user, + 'message' => $this->faker->sentence + ]); + }) + ->in(__DIR__); diff --git a/tests/TestCase.php b/tests/TestCase.php index ea74bb4..6c54c05 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -1,12 +1,12 @@ setUpDatabase(); Factory::guessFactoryNamesUsing( - fn (string $modelName) => 'Myckhel\\ChatSystem\\Database\\Factories\\' . class_basename($modelName) . 'Factory' + fn(string $modelName) => 'Binkode\\ChatSystem\\Database\\Factories\\' . class_basename($modelName) . 'Factory' ); ChatSystem::registerObservers(); @@ -57,7 +57,7 @@ protected function setUpDatabase() protected function createTables(...$modelClasses) { collect($modelClasses)->each( - fn (string $modelClass) => $modelClass::up() + fn(string $modelClass) => $modelClass::up() ); } diff --git a/tests/Unit/Models/ChatEventTest.php b/tests/Unit/Models/ChatEventTest.php index 68be44b..d7c13cd 100644 --- a/tests/Unit/Models/ChatEventTest.php +++ b/tests/Unit/Models/ChatEventTest.php @@ -1,13 +1,14 @@ conversation = Conversation::inRandomOrder()->first(); - $this->mockMessage = fn ($conversation, $user) => + $this->mockMessage = fn($conversation, $user) => $conversation->createMessage([ - 'user_id' => $user->id ?? $user, 'message' => $this->faker->sentence + 'user_id' => $user->id ?? $user, + 'message' => $this->faker->sentence ]); $this->mockChatEvent = function ($model = 'Message', &$otherUser = null, &$user = null, &$conversation = null, &$mockedModel = null, $event = 'Deliver', $all = null) { diff --git a/tests/Unit/Models/ConversationTest.php b/tests/Unit/Models/ConversationTest.php index c32bdd4..ab2a672 100644 --- a/tests/Unit/Models/ConversationTest.php +++ b/tests/Unit/Models/ConversationTest.php @@ -1,9 +1,9 @@ + fn() => expect($this->conversation->participants()->count())->toBeGreaterThan(0) ); diff --git a/tests/Unit/Models/ConversationUserTest.php b/tests/Unit/Models/ConversationUserTest.php index ef8e672..4a0c57d 100644 --- a/tests/Unit/Models/ConversationUserTest.php +++ b/tests/Unit/Models/ConversationUserTest.php @@ -1,14 +1,15 @@ conversation = Conversation::inRandomOrder()->first(); - $this->mockMessage = fn ($conversation, $user) => - $conversation->createMessage([ - 'user_id' => $user->id ?? $user, 'message' => $this->faker->sentence - ]); + $this->mockMessage = fn($conversation, $user) => + $conversation->createMessage([ + 'user_id' => $user->id ?? $user, + 'message' => $this->faker->sentence + ]); $this->mockChatEvent = function ($model = 'Message', &$otherUser = null, &$user = null, &$conversation = null, &$mockedModel = null, $event = 'Delivered', $all = null) { $otherUser = ($this->mockUser)(); @@ -25,7 +26,7 @@ $args = []; - if($all) { + if ($all) { $args['row'] = true; $args['all'] = $all; } @@ -39,12 +40,12 @@ /* Relationship Tests */ -it('belongs to a user model', function() { +it('belongs to a user model', function () { $participant = $this->conversation->participant; expect($participant->user->toArray())->toHaveKeys(['id', 'name']); }); -it('belongs to a conversation model', function() { +it('belongs to a conversation model', function () { $participant = $this->conversation->participant; expect($participant->conversation->toArray())->toHaveKeys(['id', 'name', 'user_id', 'type']); diff --git a/tests/Unit/Models/MessageTest.php b/tests/Unit/Models/MessageTest.php index ffdb761..4a93786 100644 --- a/tests/Unit/Models/MessageTest.php +++ b/tests/Unit/Models/MessageTest.php @@ -1,7 +1,7 @@ $this->conversation->id, ]; - $this->mockMessage = fn ($conversation, $user) => $conversation->createMessage(['user_id' => $user->id ?? $user, 'message' => $this->faker->sentence]); + $this->mockMessage = fn($conversation, $user) => $conversation->createMessage(['user_id' => $user->id ?? $user, 'message' => $this->faker->sentence]); }); @@ -54,7 +54,7 @@ it( 'has isSender attribute', - fn () => + fn() => expect($this->message)->toHaveKey('isSender') ); @@ -164,7 +164,7 @@ expect( $conversation->messages()->whereType('user') - ->hasEvent(fn ($q) => $q->whereMakerId($otherUser->id)) + ->hasEvent(fn($q) => $q->whereMakerId($otherUser->id)) ->count() )->tobe(1); }); @@ -183,7 +183,7 @@ expect( $conversation->messages()->whereType('user') - ->hasNoEvent(fn ($q) => $q->whereMakerId($otherUser->id)) + ->hasNoEvent(fn($q) => $q->whereMakerId($otherUser->id)) ->count() )->tobe(1); });