diff --git a/backend/app/Http/Controllers/TelegramController.php b/backend/app/Http/Controllers/TelegramController.php new file mode 100644 index 0000000..16a5d95 --- /dev/null +++ b/backend/app/Http/Controllers/TelegramController.php @@ -0,0 +1,28 @@ +name; + $telegramBotStartParameter = (string) Str::uuid(); + + $row = new TelegramBotLogins(); + $row->chat_id = null; + $row->tmp_login_code = $telegramBotStartParameter; + $row->user = $request->user()->id; + $row->save(); + + return [ + "start_link" => "https://t.me/$telegramBotUsername?start=$telegramBotStartParameter" + ]; + } +} diff --git a/backend/app/Models/ScheduleSlots.php b/backend/app/Models/ScheduleSlots.php index 75526f2..389a3d3 100644 --- a/backend/app/Models/ScheduleSlots.php +++ b/backend/app/Models/ScheduleSlots.php @@ -37,7 +37,7 @@ class ScheduleSlots extends Model ]; /** - * Get the user that owns the phone. + * Get the user that owns the schedule slot. */ public function user(): BelongsTo { diff --git a/backend/app/Models/TelegramBotLogins.php b/backend/app/Models/TelegramBotLogins.php new file mode 100644 index 0000000..3891f37 --- /dev/null +++ b/backend/app/Models/TelegramBotLogins.php @@ -0,0 +1,30 @@ + + */ + protected $fillable = [ + 'chat_id', + 'tmp_login_code' + ]; + + /** + * Get the user that owns the Telegram chat. + */ + public function user(): BelongsTo + { + return $this->belongsTo(User::class); + } +} diff --git a/backend/app/Telegram/Commands/Start.php b/backend/app/Telegram/Commands/Start.php deleted file mode 100644 index 641049d..0000000 --- a/backend/app/Telegram/Commands/Start.php +++ /dev/null @@ -1,35 +0,0 @@ -getUpdate()->message; - $firstName = $message->from->first_name; - - $text = "Hello, $firstName! Welcome to our bot!\nType /help to get a list of available commands."; - - $this->bot->sendMessage([ - 'chat_id' => $message->chat->id, - 'text' => $text, - ]); - } - - /** - * Triggered on failure. - */ - public function failed(array $arguments, Throwable $exception): void - { - // - } -} diff --git a/backend/app/Telegram/WebhookController.php b/backend/app/Telegram/WebhookController.php new file mode 100644 index 0000000..df22752 --- /dev/null +++ b/backend/app/Telegram/WebhookController.php @@ -0,0 +1,198 @@ + "Ottieni informazioni sul profilo connesso", + "help" => "Ottieni informazioni sui comandi", + "attiva" => "Modifica la tua disponibilità in \"reperibile\"", + "disattiva" => "Modifica la tua disponibilità in \"non reperibile\"", + "programma" => "Abilita programmazione oraria", + "disponibili" => "Mostra un elenco dei vigili attualmente disponibili", + "stato" => "Mostra lo stato della disponibilità della squadra" + ]; + + private $user = null; + + private function user(): User|null { + if($this->user) return $this->user; + $this->user = $this->message->from()->storage()->get('user'); + return $this->user; + } + + /** + * Helper and core commands + */ + + public function help(): void + { + $text = "ℹ️ Elenco dei comandi disponibili:"; + foreach ($this->publicCommandsDict as $command => $description) { + $text .= "\n/$command - $description"; + } + $this->reply($text); + } + + public function registerCommands() + { + $response = $this->bot->registerCommands($this->publicCommandsDict)->send(); + $this->reply(json_encode(($response))); + } + + public function start(string $loginCode) + { + if($this->user()) { + $username = $this->user()->username; + $this->chat->html( + "⚠️ Il tuo account è già collegato con Telegram (username: $username).\n". + "Per scollegarlo, eseguire il comando /logout" + )->send(); + return; + } + + if(!$loginCode || $loginCode == "/start") { + $this->chat->html( + "Questo Bot Telegram permette di interfacciarsi con il sistema di gestione delle disponibilità AllertaVVF\n". + "Per iniziare, è necessario collegare l'account di Allerta con Telegram.\n". + "Per farlo, accedere alla WebApp e premere su \"Collega l'account al bot Telegram\"." + )->send(); + return; + } + + $row = TelegramBotLogins::where('tmp_login_code', $loginCode)->first(); + if(!$row) { + $this->chat->html( + "⚠️ Il codice di login non è valido.\n". + "Per favore, riprovare." + )->send(); + return; + } + + $row->chat_id = $this->message->chat()->id(); + $row->tmp_login_code = null; + $row->save(); + + $this->reply("✅ Il tuo account è stato collegato con successo."); + $user = User::find($row->user); + $this->message->from()->storage()->set("user", $user); + } + + public function logout() + { + $this->message->from()->storage()->forget('user'); + TelegramBotLogins::where('chat_id', $this->message->chat()->id())->delete(); + $this->reply("✅ Il tuo account è stato scollegato con successo."); + } + + /** + * Generic commands + */ + public function info() + { + $user = $this->user(); + if(is_null($user)) { + $this->reply("⚠️ Il tuo account Allerta non è collegato con Telegram.\nPer favore, eseguire il comando /start."); + return; + } + $this->reply( + "ℹ️ Informazioni sul profilo:". + "\nNome: ".$user["name"]."". + "\nDisponibile: ".($user["available"] ? "SI" : "NO"). + "\nCaposquadra: ".($user["chief"] === 1 ? "SI" : "NO"). + "\nAutista: ".($user["driver"] === 1 ? "SI" : "NO"). + "\nInterventi svolti: ".$user["services"]."". + "\nEsercitazioni svolte: ".$user["trainings"]."". + "\nMinuti di disponibilità: ".$user["availability_minutes"]."" + ); + } + + public function attiva() { + $user = $this->user(); + if(is_null($user)) { + $this->reply("⚠️ Il tuo account Allerta non è collegato con Telegram.\nPer favore, eseguire il comando /start."); + return; + } + $user->available = true; + $user->availability_manual_mode = true; + $user->save(); + $this->reply("Disponibilità aggiornata con successo.\nOra sei operativo."); + } + + public function disattiva() { + $user = $this->user(); + if(is_null($user)) { + $this->reply("⚠️ Il tuo account Allerta non è collegato con Telegram.\nPer favore, eseguire il comando /start."); + return; + } + $user->available = false; + $user->availability_manual_mode = true; + $user->save(); + $this->reply("Disponibilità aggiornata con successo.\nOra sei non operativo."); + } + + public function programma() { + $user = $this->user(); + if(is_null($user)) { + $this->reply("⚠️ Il tuo account Allerta non è collegato con Telegram.\nPer favore, eseguire il comando /start."); + return; + } + $user->availability_manual_mode = false; + $user->save(); + $this->reply("Programmazione oraria abilitata.\nPer disabilitarla (e tornare in modalità manuale), cambiare la disponbilità usando i comandi \"/attiva\" e \"/disattiva\""); + } + + public function disponibili() + { + $user = $this->user(); + if(is_null($user)) { + $this->reply("⚠️ Il tuo account Allerta non è collegato con Telegram.\nPer favore, eseguire il comando /start."); + return; + } + //Get all users with availability true + $users = User::where('available', true)->where('hidden', false)->get(); + if(count($users) == 0) { + $text = "⚠️ Nessun vigile attualmente disponibile."; + } else { + $text = "👨‍🚒 Elenco dei vigili attualmente disponibili:"; + foreach ($users as $user) { + $text .= "\n- ".$user->name.""; + if($user->chief) $text .= " CS"; + if($user->driver) $text .= " 🚒"; + } + } + $this->reply($text); + } + + public function stato() + { + $user = $this->user(); + if(is_null($user)) { + $this->reply("⚠️ Il tuo account Allerta non è collegato con Telegram.\nPer favore, eseguire il comando /start."); + return; + } + //Get all users with availability true + $available_users_count = User::where('available', true)->where('hidden', false)->count(); + if($available_users_count >= 5) { + $text = "🚒 Distaccamento operativo con squadra completa"; + } else if($available_users_count >= 2) { + $text = "🧯 Distaccamento operativo per supporto"; + } else { + $text = "⚠️ Distaccamento non operativo"; + } + $this->reply($text); + } + + /** + * TODOs: + * - Notification when availability changes (send "stato" response again ONLY IF state changes) + * - Notification when availability is changed by the system (send "stato" response again) + * - At 7:00 AM, send a notification to all users with availability in manual mode, asking them to confirm their availability or dismiss this notification + * - Everything related to alerts, ask the client what to do with that since currently unused in prod + */ +} diff --git a/backend/composer.json b/backend/composer.json index edc58e9..35d0dfc 100644 --- a/backend/composer.json +++ b/backend/composer.json @@ -6,8 +6,8 @@ "license": "MIT", "require": { "php": "^8.1", + "defstudio/telegraph": "^1.38", "guzzlehttp/guzzle": "^7.2", - "telegram-bot-sdk/laravel": "^4.0", "lab404/laravel-impersonate": "^1.7", "laravel/framework": "^10.0", "laravel/sanctum": "^3.2", diff --git a/backend/composer.lock b/backend/composer.lock index c7a6c0a..c6f5e7c 100644 --- a/backend/composer.lock +++ b/backend/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": "38aa1cdea4caec494821d81a7c82753a", + "content-hash": "0e251a61719af6a9c6866954f3ed4318", "packages": [ { "name": "brick/math", @@ -61,6 +61,102 @@ ], "time": "2023-01-15T23:15:59+00:00" }, + { + "name": "defstudio/telegraph", + "version": "v1.38.1", + "source": { + "type": "git", + "url": "https://github.com/defstudio/telegraph.git", + "reference": "d066da6bab0c16d6c0bdf0f68232050cef218c39" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/defstudio/telegraph/zipball/d066da6bab0c16d6c0bdf0f68232050cef218c39", + "reference": "d066da6bab0c16d6c0bdf0f68232050cef218c39", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^8.37 | ^9.0 | ^10.0", + "illuminate/http": "^8.37 | ^9.0 | ^10.00", + "illuminate/support": "^8.37 | ^9.0 | ^10.0", + "php": "^8.0", + "spatie/laravel-package-tools": "^1.12.1" + }, + "require-dev": { + "defstudio/pest-plugin-laravel-expectations": "^v1.10.3", + "ext-sqlite3": "*", + "friendsofphp/php-cs-fixer": "^v3.13.0", + "guzzlehttp/guzzle": "^7.5.0", + "nunomaduro/collision": "^v5.11.0 | ^v6.3.1", + "nunomaduro/larastan": "^1.0.4 | ^2.4.0", + "orchestra/testbench": "^v6.25.1 | ^v7.13.0 | ^8.0", + "pestphp/pest": "^v1.22.2", + "pestphp/pest-plugin-laravel": "^v1.3.0", + "pestphp/pest-plugin-mock": "^v1.0.3", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-phpunit": "^1.2.2", + "phpunit/phpunit": "^9.5.26", + "spatie/laravel-ray": "^1.31.0", + "spatie/pest-plugin-snapshots": "^1.1.0", + "spatie/pest-plugin-test-time": "^1.1.1", + "spatie/x-ray": "dev-main" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "DefStudio\\Telegraph\\TelegraphServiceProvider" + ], + "aliases": { + "Telegraph": "DefStudio\\Telegraph\\Facades\\Telegraph" + } + } + }, + "autoload": { + "psr-4": { + "DefStudio\\Telegraph\\": "src", + "DefStudio\\Telegraph\\Database\\Factories\\": "database/factories" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabio Ivona", + "email": "fabio.ivona@defstudio.it", + "role": "Developer" + } + ], + "description": "A laravel facade to interact with Telegram Bots", + "homepage": "https://github.com/defstudio/telegraph", + "keywords": [ + "defstudio", + "laravel", + "telegraph" + ], + "support": { + "issues": "https://github.com/defstudio/telegraph/issues", + "source": "https://github.com/defstudio/telegraph/tree/v1.38.1" + }, + "funding": [ + { + "url": "https://paypal.me/bdmstore", + "type": "custom" + }, + { + "url": "https://github.com/defstudio", + "type": "github" + }, + { + "url": "https://github.com/fabio-ivona", + "type": "github" + } + ], + "time": "2023-08-12T18:06:59+00:00" + }, { "name": "dflydev/dot-access-data", "version": "v3.0.2", @@ -138,28 +234,28 @@ }, { "name": "doctrine/inflector", - "version": "2.0.6", + "version": "2.0.8", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" + "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", - "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff", + "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^10", + "doctrine/coding-standard": "^11.0", "phpstan/phpstan": "^1.8", "phpstan/phpstan-phpunit": "^1.1", "phpstan/phpstan-strict-rules": "^1.3", "phpunit/phpunit": "^8.5 || ^9.5", - "vimeo/psalm": "^4.25" + "vimeo/psalm": "^4.25 || ^5.4" }, "type": "library", "autoload": { @@ -209,7 +305,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.6" + "source": "https://github.com/doctrine/inflector/tree/2.0.8" }, "funding": [ { @@ -225,7 +321,7 @@ "type": "tidelift" } ], - "time": "2022-10-20T09:10:12+00:00" + "time": "2023-06-16T13:40:37+00:00" }, { "name": "doctrine/lexer", @@ -306,16 +402,16 @@ }, { "name": "dragonmantank/cron-expression", - "version": "v3.3.2", + "version": "v3.3.3", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8" + "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8", - "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", + "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", "shasum": "" }, "require": { @@ -355,7 +451,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.2" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3" }, "funding": [ { @@ -363,7 +459,7 @@ "type": "github" } ], - "time": "2022-09-10T18:51:20+00:00" + "time": "2023-08-10T19:36:49+00:00" }, { "name": "egulias/email-validator", @@ -567,22 +663,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.7.0", + "version": "7.8.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5" + "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/fb7566caccf22d74d1ab270de3551f72a58399f5", - "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1110f66a6530a40fe7aea0378fe608ee2b2248f9", + "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0", - "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", + "guzzlehttp/promises": "^1.5.3 || ^2.0.1", + "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -673,7 +769,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.7.0" + "source": "https://github.com/guzzle/guzzle/tree/7.8.0" }, "funding": [ { @@ -689,20 +785,20 @@ "type": "tidelift" } ], - "time": "2023-05-21T14:04:53+00:00" + "time": "2023-08-27T10:20:53+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "3a494dc7dc1d7d12e511890177ae2d0e6c107da6" + "reference": "111166291a0f8130081195ac4556a5587d7f1b5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/3a494dc7dc1d7d12e511890177ae2d0e6c107da6", - "reference": "3a494dc7dc1d7d12e511890177ae2d0e6c107da6", + "url": "https://api.github.com/repos/guzzle/promises/zipball/111166291a0f8130081195ac4556a5587d7f1b5d", + "reference": "111166291a0f8130081195ac4556a5587d7f1b5d", "shasum": "" }, "require": { @@ -756,7 +852,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.0" + "source": "https://github.com/guzzle/promises/tree/2.0.1" }, "funding": [ { @@ -772,20 +868,20 @@ "type": "tidelift" } ], - "time": "2023-05-21T13:50:22+00:00" + "time": "2023-08-03T15:11:55+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.5.0", + "version": "2.6.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "b635f279edd83fc275f822a1188157ffea568ff6" + "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/b635f279edd83fc275f822a1188157ffea568ff6", - "reference": "b635f279edd83fc275f822a1188157ffea568ff6", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/be45764272e8873c72dbe3d2edcfdfcc3bc9f727", + "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727", "shasum": "" }, "require": { @@ -872,7 +968,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.5.0" + "source": "https://github.com/guzzle/psr7/tree/2.6.1" }, "funding": [ { @@ -888,20 +984,20 @@ "type": "tidelift" } ], - "time": "2023-04-17T16:11:26+00:00" + "time": "2023-08-27T10:13:57+00:00" }, { "name": "guzzlehttp/uri-template", - "version": "v1.0.1", + "version": "v1.0.2", "source": { "type": "git", "url": "https://github.com/guzzle/uri-template.git", - "reference": "b945d74a55a25a949158444f09ec0d3c120d69e2" + "reference": "61bf437fc2197f587f6857d3ff903a24f1731b5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/uri-template/zipball/b945d74a55a25a949158444f09ec0d3c120d69e2", - "reference": "b945d74a55a25a949158444f09ec0d3c120d69e2", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/61bf437fc2197f587f6857d3ff903a24f1731b5d", + "reference": "61bf437fc2197f587f6857d3ff903a24f1731b5d", "shasum": "" }, "require": { @@ -909,15 +1005,11 @@ "symfony/polyfill-php80": "^1.17" }, "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.1", "phpunit/phpunit": "^8.5.19 || ^9.5.8", "uri-template/tests": "1.0.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, "autoload": { "psr-4": { "GuzzleHttp\\UriTemplate\\": "src" @@ -956,7 +1048,7 @@ ], "support": { "issues": "https://github.com/guzzle/uri-template/issues", - "source": "https://github.com/guzzle/uri-template/tree/v1.0.1" + "source": "https://github.com/guzzle/uri-template/tree/v1.0.2" }, "funding": [ { @@ -972,7 +1064,7 @@ "type": "tidelift" } ], - "time": "2021-10-07T12:57:01+00:00" + "time": "2023-08-27T10:19:19+00:00" }, { "name": "kkszymanowski/traitor", @@ -1094,16 +1186,16 @@ }, { "name": "laravel/framework", - "version": "v10.13.2", + "version": "v10.20.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "fd4619b56b56308e2c2c1840fedd0b8ebb73dfc5" + "reference": "a655dca3fbe83897e22adff652b1878ba352d041" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/fd4619b56b56308e2c2c1840fedd0b8ebb73dfc5", - "reference": "fd4619b56b56308e2c2c1840fedd0b8ebb73dfc5", + "url": "https://api.github.com/repos/laravel/framework/zipball/a655dca3fbe83897e22adff652b1878ba352d041", + "reference": "a655dca3fbe83897e22adff652b1878ba352d041", "shasum": "" }, "require": { @@ -1121,11 +1213,12 @@ "ext-tokenizer": "*", "fruitcake/php-cors": "^1.2", "guzzlehttp/uri-template": "^1.0", + "laravel/prompts": "^0.1", "laravel/serializable-closure": "^1.3", "league/commonmark": "^2.2.1", "league/flysystem": "^3.8.0", "monolog/monolog": "^3.0", - "nesbot/carbon": "^2.62.1", + "nesbot/carbon": "^2.67", "nunomaduro/termwind": "^1.13", "php": "^8.1", "psr/container": "^1.1.1|^2.0.1", @@ -1204,7 +1297,6 @@ "mockery/mockery": "^1.5.1", "orchestra/testbench-core": "^8.4", "pda/pheanstalk": "^4.0", - "phpstan/phpdoc-parser": "^1.15", "phpstan/phpstan": "^1.4.7", "phpunit/phpunit": "^10.0.7", "predis/predis": "^2.0.2", @@ -1290,20 +1382,68 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2023-06-05T15:48:15+00:00" + "time": "2023-08-22T13:37:09+00:00" }, { - "name": "laravel/sanctum", - "version": "v3.2.5", + "name": "laravel/prompts", + "version": "v0.1.6", "source": { "type": "git", - "url": "https://github.com/laravel/sanctum.git", - "reference": "8ebda85d59d3c414863a7f4d816ef8302faad876" + "url": "https://github.com/laravel/prompts.git", + "reference": "b514c5620e1b3b61221b0024dc88def26d9654f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/8ebda85d59d3c414863a7f4d816ef8302faad876", - "reference": "8ebda85d59d3c414863a7f4d816ef8302faad876", + "url": "https://api.github.com/repos/laravel/prompts/zipball/b514c5620e1b3b61221b0024dc88def26d9654f4", + "reference": "b514c5620e1b3b61221b0024dc88def26d9654f4", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "illuminate/collections": "^10.0|^11.0", + "php": "^8.1", + "symfony/console": "^6.2" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "pestphp/pest": "^2.3", + "phpstan/phpstan": "^1.10", + "phpstan/phpstan-mockery": "^1.1" + }, + "suggest": { + "ext-pcntl": "Required for the spinner to be animated." + }, + "type": "library", + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Laravel\\Prompts\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "support": { + "issues": "https://github.com/laravel/prompts/issues", + "source": "https://github.com/laravel/prompts/tree/v0.1.6" + }, + "time": "2023-08-18T13:32:23+00:00" + }, + { + "name": "laravel/sanctum", + "version": "v3.2.6", + "source": { + "type": "git", + "url": "https://github.com/laravel/sanctum.git", + "reference": "217e8a2bc5aa6a827ced97fcb76504029d3115d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/217e8a2bc5aa6a827ced97fcb76504029d3115d7", + "reference": "217e8a2bc5aa6a827ced97fcb76504029d3115d7", "shasum": "" }, "require": { @@ -1316,9 +1456,9 @@ }, "require-dev": { "mockery/mockery": "^1.0", - "orchestra/testbench": "^7.0|^8.0", + "orchestra/testbench": "^7.28.2|^8.8.3", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^9.6" }, "type": "library", "extra": { @@ -1356,20 +1496,20 @@ "issues": "https://github.com/laravel/sanctum/issues", "source": "https://github.com/laravel/sanctum" }, - "time": "2023-05-01T19:39:51+00:00" + "time": "2023-08-22T13:21:11+00:00" }, { "name": "laravel/serializable-closure", - "version": "v1.3.0", + "version": "v1.3.1", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37" + "reference": "e5a3057a5591e1cfe8183034b0203921abe2c902" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/f23fe9d4e95255dacee1bf3525e0810d1a1b0f37", - "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/e5a3057a5591e1cfe8183034b0203921abe2c902", + "reference": "e5a3057a5591e1cfe8183034b0203921abe2c902", "shasum": "" }, "require": { @@ -1416,7 +1556,7 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2023-01-30T18:31:20+00:00" + "time": "2023-07-14T13:56:28+00:00" }, { "name": "laravel/tinker", @@ -1824,26 +1964,26 @@ }, { "name": "league/mime-type-detection", - "version": "1.11.0", + "version": "1.13.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd" + "reference": "a6dfb1194a2946fcdc1f38219445234f65b35c96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ff6248ea87a9f116e78edd6002e39e5128a0d4dd", - "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/a6dfb1194a2946fcdc1f38219445234f65b35c96", + "reference": "a6dfb1194a2946fcdc1f38219445234f65b35c96", "shasum": "" }, "require": { "ext-fileinfo": "*", - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.2", "phpstan/phpstan": "^0.12.68", - "phpunit/phpunit": "^8.5.8 || ^9.3" + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" }, "type": "library", "autoload": { @@ -1864,7 +2004,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.11.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.13.0" }, "funding": [ { @@ -1876,20 +2016,20 @@ "type": "tidelift" } ], - "time": "2022-04-17T13:12:02+00:00" + "time": "2023-08-05T12:09:49+00:00" }, { "name": "monolog/monolog", - "version": "3.3.1", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "9b5daeaffce5b926cac47923798bba91059e60e2" + "reference": "e2392369686d420ca32df3803de28b5d6f76867d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/9b5daeaffce5b926cac47923798bba91059e60e2", - "reference": "9b5daeaffce5b926cac47923798bba91059e60e2", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/e2392369686d420ca32df3803de28b5d6f76867d", + "reference": "e2392369686d420ca32df3803de28b5d6f76867d", "shasum": "" }, "require": { @@ -1904,7 +2044,7 @@ "doctrine/couchdb": "~1.0@dev", "elasticsearch/elasticsearch": "^7 || ^8", "ext-json": "*", - "graylog2/gelf-php": "^1.4.2 || ^2@dev", + "graylog2/gelf-php": "^1.4.2 || ^2.0", "guzzlehttp/guzzle": "^7.4.5", "guzzlehttp/psr7": "^2.2", "mongodb/mongodb": "^1.8", @@ -1912,7 +2052,7 @@ "phpstan/phpstan": "^1.9", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-strict-rules": "^1.4", - "phpunit/phpunit": "^9.5.26", + "phpunit/phpunit": "^10.1", "predis/predis": "^1.1 || ^2", "ruflin/elastica": "^7", "symfony/mailer": "^5.4 || ^6", @@ -1965,7 +2105,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.3.1" + "source": "https://github.com/Seldaek/monolog/tree/3.4.0" }, "funding": [ { @@ -1977,29 +2117,33 @@ "type": "tidelift" } ], - "time": "2023-02-06T13:46:10+00:00" + "time": "2023-06-21T08:46:11+00:00" }, { "name": "nesbot/carbon", - "version": "2.67.0", + "version": "2.69.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "c1001b3bc75039b07f38a79db5237c4c529e04c8" + "reference": "4308217830e4ca445583a37d1bf4aff4153fa81c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/c1001b3bc75039b07f38a79db5237c4c529e04c8", - "reference": "c1001b3bc75039b07f38a79db5237c4c529e04c8", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4308217830e4ca445583a37d1bf4aff4153fa81c", + "reference": "4308217830e4ca445583a37d1bf4aff4153fa81c", "shasum": "" }, "require": { "ext-json": "*", "php": "^7.1.8 || ^8.0", + "psr/clock": "^1.0", "symfony/polyfill-mbstring": "^1.0", "symfony/polyfill-php80": "^1.16", "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" }, + "provide": { + "psr/clock-implementation": "1.0" + }, "require-dev": { "doctrine/dbal": "^2.0 || ^3.1.4", "doctrine/orm": "^2.7", @@ -2079,25 +2223,25 @@ "type": "tidelift" } ], - "time": "2023-05-25T22:09:47+00:00" + "time": "2023-08-03T09:00:52+00:00" }, { "name": "nette/schema", - "version": "v1.2.3", + "version": "v1.2.4", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f" + "reference": "c9ff517a53903b3d4e29ec547fb20feecb05b8ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", - "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", + "url": "https://api.github.com/repos/nette/schema/zipball/c9ff517a53903b3d4e29ec547fb20feecb05b8ab", + "reference": "c9ff517a53903b3d4e29ec547fb20feecb05b8ab", "shasum": "" }, "require": { "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", - "php": ">=7.1 <8.3" + "php": "7.1 - 8.3" }, "require-dev": { "nette/tester": "^2.3 || ^2.4", @@ -2139,26 +2283,26 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.3" + "source": "https://github.com/nette/schema/tree/v1.2.4" }, - "time": "2022-10-13T01:24:26+00:00" + "time": "2023-08-05T18:56:25+00:00" }, { "name": "nette/utils", - "version": "v4.0.0", + "version": "v4.0.1", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e" + "reference": "9124157137da01b1f5a5a22d6486cb975f26db7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/cacdbf5a91a657ede665c541eda28941d4b09c1e", - "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e", + "url": "https://api.github.com/repos/nette/utils/zipball/9124157137da01b1f5a5a22d6486cb975f26db7e", + "reference": "9124157137da01b1f5a5a22d6486cb975f26db7e", "shasum": "" }, "require": { - "php": ">=8.0 <8.3" + "php": ">=8.0 <8.4" }, "conflict": { "nette/finder": "<3", @@ -2166,7 +2310,7 @@ }, "require-dev": { "jetbrains/phpstorm-attributes": "dev-master", - "nette/tester": "^2.4", + "nette/tester": "^2.5", "phpstan/phpstan": "^1.0", "tracy/tracy": "^2.9" }, @@ -2226,22 +2370,22 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.0" + "source": "https://github.com/nette/utils/tree/v4.0.1" }, - "time": "2023-02-02T10:41:53+00:00" + "time": "2023-07-30T15:42:21+00:00" }, { "name": "nikic/php-parser", - "version": "v4.15.5", + "version": "v4.17.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e" + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/11e2663a5bc9db5d714eedb4277ee300403b4a9e", - "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", "shasum": "" }, "require": { @@ -2282,9 +2426,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.5" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" }, - "time": "2023-05-19T20:20:00+00:00" + "time": "2023-08-13T19:53:39+00:00" }, { "name": "nunomaduro/termwind", @@ -2447,6 +2591,54 @@ ], "time": "2023-02-25T19:38:58+00:00" }, + { + "name": "psr/clock", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Clock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", + "keywords": [ + "clock", + "now", + "psr", + "psr-20", + "time" + ], + "support": { + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" + }, + "time": "2022-11-25T14:36:26+00:00" + }, { "name": "psr/container", "version": "2.0.2", @@ -2813,16 +3005,16 @@ }, { "name": "psy/psysh", - "version": "v0.11.18", + "version": "v0.11.20", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "4f00ee9e236fa6a48f4560d1300b9c961a70a7ec" + "reference": "0fa27040553d1d280a67a4393194df5228afea5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/4f00ee9e236fa6a48f4560d1300b9c961a70a7ec", - "reference": "4f00ee9e236fa6a48f4560d1300b9c961a70a7ec", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/0fa27040553d1d280a67a4393194df5228afea5b", + "reference": "0fa27040553d1d280a67a4393194df5228afea5b", "shasum": "" }, "require": { @@ -2883,9 +3075,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.18" + "source": "https://github.com/bobthecow/psysh/tree/v0.11.20" }, - "time": "2023-05-23T02:31:11+00:00" + "time": "2023-07-31T14:32:22+00:00" }, { "name": "ralouphie/getallheaders", @@ -3188,17 +3380,77 @@ "time": "2023-02-19T12:04:38+00:00" }, { - "name": "symfony/console", - "version": "v6.3.0", + "name": "spatie/laravel-package-tools", + "version": "1.16.1", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7" + "url": "https://github.com/spatie/laravel-package-tools.git", + "reference": "cc7c991555a37f9fa6b814aa03af73f88026a83d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7", - "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/cc7c991555a37f9fa6b814aa03af73f88026a83d", + "reference": "cc7c991555a37f9fa6b814aa03af73f88026a83d", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^9.28|^10.0", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "orchestra/testbench": "^7.7|^8.0", + "pestphp/pest": "^1.22", + "phpunit/phpunit": "^9.5.24", + "spatie/pest-plugin-test-time": "^1.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\LaravelPackageTools\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "Tools for creating Laravel packages", + "homepage": "https://github.com/spatie/laravel-package-tools", + "keywords": [ + "laravel-package-tools", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/laravel-package-tools/issues", + "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.1" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-08-23T09:04:39+00:00" + }, + { + "name": "symfony/console", + "version": "v6.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/eca495f2ee845130855ddf1cf18460c38966c8b6", + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6", "shasum": "" }, "require": { @@ -3259,7 +3511,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.3.0" + "source": "https://github.com/symfony/console/tree/v6.3.4" }, "funding": [ { @@ -3275,20 +3527,20 @@ "type": "tidelift" } ], - "time": "2023-05-29T12:49:39+00:00" + "time": "2023-08-16T10:10:12+00:00" }, { "name": "symfony/css-selector", - "version": "v6.3.0", + "version": "v6.3.2", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf" + "reference": "883d961421ab1709877c10ac99451632a3d6fa57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf", - "reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/883d961421ab1709877c10ac99451632a3d6fa57", + "reference": "883d961421ab1709877c10ac99451632a3d6fa57", "shasum": "" }, "require": { @@ -3324,7 +3576,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.3.0" + "source": "https://github.com/symfony/css-selector/tree/v6.3.2" }, "funding": [ { @@ -3340,7 +3592,7 @@ "type": "tidelift" } ], - "time": "2023-03-20T16:43:42+00:00" + "time": "2023-07-12T16:00:22+00:00" }, { "name": "symfony/deprecation-contracts", @@ -3411,16 +3663,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.3.0", + "version": "v6.3.2", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "99d2d814a6351461af350ead4d963bd67451236f" + "reference": "85fd65ed295c4078367c784e8a5a6cee30348b7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/99d2d814a6351461af350ead4d963bd67451236f", - "reference": "99d2d814a6351461af350ead4d963bd67451236f", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/85fd65ed295c4078367c784e8a5a6cee30348b7a", + "reference": "85fd65ed295c4078367c784e8a5a6cee30348b7a", "shasum": "" }, "require": { @@ -3465,7 +3717,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/v6.3.0" + "source": "https://github.com/symfony/error-handler/tree/v6.3.2" }, "funding": [ { @@ -3481,20 +3733,20 @@ "type": "tidelift" } ], - "time": "2023-05-10T12:03:13+00:00" + "time": "2023-07-16T17:05:46+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.3.0", + "version": "v6.3.2", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa" + "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa", - "reference": "3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/adb01fe097a4ee930db9258a3cc906b5beb5cf2e", + "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e", "shasum": "" }, "require": { @@ -3545,7 +3797,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.3.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.3.2" }, "funding": [ { @@ -3561,7 +3813,7 @@ "type": "tidelift" } ], - "time": "2023-04-21T14:41:17+00:00" + "time": "2023-07-06T06:56:43+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -3641,16 +3893,16 @@ }, { "name": "symfony/finder", - "version": "v6.3.0", + "version": "v6.3.3", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2" + "reference": "9915db259f67d21eefee768c1abcf1cc61b1fc9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/d9b01ba073c44cef617c7907ce2419f8d00d75e2", - "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2", + "url": "https://api.github.com/repos/symfony/finder/zipball/9915db259f67d21eefee768c1abcf1cc61b1fc9e", + "reference": "9915db259f67d21eefee768c1abcf1cc61b1fc9e", "shasum": "" }, "require": { @@ -3685,7 +3937,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.3.0" + "source": "https://github.com/symfony/finder/tree/v6.3.3" }, "funding": [ { @@ -3701,20 +3953,20 @@ "type": "tidelift" } ], - "time": "2023-04-02T01:25:41+00:00" + "time": "2023-07-31T08:31:44+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.3.0", + "version": "v6.3.4", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "718a97ed430d34e5c568ea2c44eab708c6efbefb" + "reference": "cac1556fdfdf6719668181974104e6fcfa60e844" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/718a97ed430d34e5c568ea2c44eab708c6efbefb", - "reference": "718a97ed430d34e5c568ea2c44eab708c6efbefb", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/cac1556fdfdf6719668181974104e6fcfa60e844", + "reference": "cac1556fdfdf6719668181974104e6fcfa60e844", "shasum": "" }, "require": { @@ -3762,7 +4014,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.3.0" + "source": "https://github.com/symfony/http-foundation/tree/v6.3.4" }, "funding": [ { @@ -3778,20 +4030,20 @@ "type": "tidelift" } ], - "time": "2023-05-19T12:46:45+00:00" + "time": "2023-08-22T08:20:46+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.3.0", + "version": "v6.3.4", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "241973f3dd900620b1ca052fe409144f11aea748" + "reference": "36abb425b4af863ae1fe54d8a8b8b4c76a2bccdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/241973f3dd900620b1ca052fe409144f11aea748", - "reference": "241973f3dd900620b1ca052fe409144f11aea748", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/36abb425b4af863ae1fe54d8a8b8b4c76a2bccdb", + "reference": "36abb425b4af863ae1fe54d8a8b8b4c76a2bccdb", "shasum": "" }, "require": { @@ -3800,7 +4052,7 @@ "symfony/deprecation-contracts": "^2.5|^3", "symfony/error-handler": "^6.3", "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/http-foundation": "^6.2.7", + "symfony/http-foundation": "^6.3.4", "symfony/polyfill-ctype": "^1.8" }, "conflict": { @@ -3808,7 +4060,7 @@ "symfony/cache": "<5.4", "symfony/config": "<6.1", "symfony/console": "<5.4", - "symfony/dependency-injection": "<6.3", + "symfony/dependency-injection": "<6.3.4", "symfony/doctrine-bridge": "<5.4", "symfony/form": "<5.4", "symfony/http-client": "<5.4", @@ -3832,7 +4084,7 @@ "symfony/config": "^6.1", "symfony/console": "^5.4|^6.0", "symfony/css-selector": "^5.4|^6.0", - "symfony/dependency-injection": "^6.3", + "symfony/dependency-injection": "^6.3.4", "symfony/dom-crawler": "^5.4|^6.0", "symfony/expression-language": "^5.4|^6.0", "symfony/finder": "^5.4|^6.0", @@ -3875,7 +4127,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.3.0" + "source": "https://github.com/symfony/http-kernel/tree/v6.3.4" }, "funding": [ { @@ -3891,7 +4143,7 @@ "type": "tidelift" } ], - "time": "2023-05-30T19:03:32+00:00" + "time": "2023-08-26T13:54:49+00:00" }, { "name": "symfony/mailer", @@ -3975,20 +4227,21 @@ }, { "name": "symfony/mime", - "version": "v6.3.0", + "version": "v6.3.3", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "7b5d2121858cd6efbed778abce9cfdd7ab1f62ad" + "reference": "9a0cbd52baa5ba5a5b1f0cacc59466f194730f98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/7b5d2121858cd6efbed778abce9cfdd7ab1f62ad", - "reference": "7b5d2121858cd6efbed778abce9cfdd7ab1f62ad", + "url": "https://api.github.com/repos/symfony/mime/zipball/9a0cbd52baa5ba5a5b1f0cacc59466f194730f98", + "reference": "9a0cbd52baa5ba5a5b1f0cacc59466f194730f98", "shasum": "" }, "require": { "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, @@ -3997,7 +4250,7 @@ "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "symfony/mailer": "<5.4", - "symfony/serializer": "<6.2" + "symfony/serializer": "<6.2.13|>=6.3,<6.3.2" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", @@ -4006,7 +4259,7 @@ "symfony/dependency-injection": "^5.4|^6.0", "symfony/property-access": "^5.4|^6.0", "symfony/property-info": "^5.4|^6.0", - "symfony/serializer": "^6.2" + "symfony/serializer": "~6.2.13|^6.3.2" }, "type": "library", "autoload": { @@ -4038,7 +4291,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.3.0" + "source": "https://github.com/symfony/mime/tree/v6.3.3" }, "funding": [ { @@ -4054,20 +4307,20 @@ "type": "tidelift" } ], - "time": "2023-04-28T15:57:00+00:00" + "time": "2023-07-31T07:08:24+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", "shasum": "" }, "require": { @@ -4082,7 +4335,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4120,7 +4373,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" }, "funding": [ { @@ -4136,20 +4389,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + "reference": "875e90aeea2777b6f135677f618529449334a612" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", "shasum": "" }, "require": { @@ -4161,7 +4414,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4201,7 +4454,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" }, "funding": [ { @@ -4217,20 +4470,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "639084e360537a19f9ee352433b84ce831f3d2da" + "reference": "ecaafce9f77234a6a449d29e49267ba10499116d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da", - "reference": "639084e360537a19f9ee352433b84ce831f3d2da", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d", + "reference": "ecaafce9f77234a6a449d29e49267ba10499116d", "shasum": "" }, "require": { @@ -4244,7 +4497,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4288,7 +4541,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0" }, "funding": [ { @@ -4304,20 +4557,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:30:37+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", "shasum": "" }, "require": { @@ -4329,7 +4582,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4372,7 +4625,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" }, "funding": [ { @@ -4388,20 +4641,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "42292d99c55abe617799667f454222c54c60e229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", "shasum": "" }, "require": { @@ -4416,7 +4669,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4455,7 +4708,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" }, "funding": [ { @@ -4471,20 +4724,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-07-28T09:04:16+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "869329b1e9894268a8a61dabb69153029b7a8c97" + "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97", - "reference": "869329b1e9894268a8a61dabb69153029b7a8c97", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179", + "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179", "shasum": "" }, "require": { @@ -4493,7 +4746,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4531,7 +4784,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0" }, "funding": [ { @@ -4547,20 +4800,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", "shasum": "" }, "require": { @@ -4569,7 +4822,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4614,7 +4867,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" }, "funding": [ { @@ -4630,20 +4883,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "508c652ba3ccf69f8c97f251534f229791b52a57" + "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/508c652ba3ccf69f8c97f251534f229791b52a57", - "reference": "508c652ba3ccf69f8c97f251534f229791b52a57", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", + "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", "shasum": "" }, "require": { @@ -4653,7 +4906,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4666,7 +4919,10 @@ ], "psr-4": { "Symfony\\Polyfill\\Php83\\": "" - } + }, + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4691,7 +4947,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.28.0" }, "funding": [ { @@ -4707,20 +4963,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-08-16T06:22:46+00:00" }, { "name": "symfony/polyfill-uuid", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", - "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166" + "reference": "9c44518a5aff8da565c8a55dbe85d2769e6f630e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/f3cf1a645c2734236ed1e2e671e273eeb3586166", - "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/9c44518a5aff8da565c8a55dbe85d2769e6f630e", + "reference": "9c44518a5aff8da565c8a55dbe85d2769e6f630e", "shasum": "" }, "require": { @@ -4735,7 +4991,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4773,7 +5029,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.28.0" }, "funding": [ { @@ -4789,20 +5045,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/process", - "version": "v6.3.0", + "version": "v6.3.4", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "8741e3ed7fe2e91ec099e02446fb86667a0f1628" + "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/8741e3ed7fe2e91ec099e02446fb86667a0f1628", - "reference": "8741e3ed7fe2e91ec099e02446fb86667a0f1628", + "url": "https://api.github.com/repos/symfony/process/zipball/0b5c29118f2e980d455d2e34a5659f4579847c54", + "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54", "shasum": "" }, "require": { @@ -4834,7 +5090,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.3.0" + "source": "https://github.com/symfony/process/tree/v6.3.4" }, "funding": [ { @@ -4850,24 +5106,25 @@ "type": "tidelift" } ], - "time": "2023-05-19T08:06:44+00:00" + "time": "2023-08-07T10:39:22+00:00" }, { "name": "symfony/routing", - "version": "v6.3.0", + "version": "v6.3.3", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "827f59fdc67eecfc4dfff81f9c93bf4d98f0c89b" + "reference": "e7243039ab663822ff134fbc46099b5fdfa16f6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/827f59fdc67eecfc4dfff81f9c93bf4d98f0c89b", - "reference": "827f59fdc67eecfc4dfff81f9c93bf4d98f0c89b", + "url": "https://api.github.com/repos/symfony/routing/zipball/e7243039ab663822ff134fbc46099b5fdfa16f6a", + "reference": "e7243039ab663822ff134fbc46099b5fdfa16f6a", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { "doctrine/annotations": "<1.12", @@ -4916,7 +5173,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.3.0" + "source": "https://github.com/symfony/routing/tree/v6.3.3" }, "funding": [ { @@ -4932,7 +5189,7 @@ "type": "tidelift" } ], - "time": "2023-04-28T15:57:00+00:00" + "time": "2023-07-31T07:08:24+00:00" }, { "name": "symfony/service-contracts", @@ -5018,16 +5275,16 @@ }, { "name": "symfony/string", - "version": "v6.3.0", + "version": "v6.3.2", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f" + "reference": "53d1a83225002635bca3482fcbf963001313fb68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f2e190ee75ff0f5eced645ec0be5c66fac81f51f", - "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f", + "url": "https://api.github.com/repos/symfony/string/zipball/53d1a83225002635bca3482fcbf963001313fb68", + "reference": "53d1a83225002635bca3482fcbf963001313fb68", "shasum": "" }, "require": { @@ -5084,7 +5341,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.3.0" + "source": "https://github.com/symfony/string/tree/v6.3.2" }, "funding": [ { @@ -5100,24 +5357,25 @@ "type": "tidelift" } ], - "time": "2023-03-21T21:06:29+00:00" + "time": "2023-07-05T08:41:27+00:00" }, { "name": "symfony/translation", - "version": "v6.3.0", + "version": "v6.3.3", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "f72b2cba8f79dd9d536f534f76874b58ad37876f" + "reference": "3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/f72b2cba8f79dd9d536f534f76874b58ad37876f", - "reference": "f72b2cba8f79dd9d536f534f76874b58ad37876f", + "url": "https://api.github.com/repos/symfony/translation/zipball/3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd", + "reference": "3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd", "shasum": "" }, "require": { "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/translation-contracts": "^2.5|^3.0" }, @@ -5178,7 +5436,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.3.0" + "source": "https://github.com/symfony/translation/tree/v6.3.3" }, "funding": [ { @@ -5194,7 +5452,7 @@ "type": "tidelift" } ], - "time": "2023-05-19T12:46:45+00:00" + "time": "2023-07-31T07:08:24+00:00" }, { "name": "symfony/translation-contracts", @@ -5350,20 +5608,21 @@ }, { "name": "symfony/var-dumper", - "version": "v6.3.0", + "version": "v6.3.4", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "6acdcd5c122074ee9f7b051e4fb177025c277a0e" + "reference": "2027be14f8ae8eae999ceadebcda5b4909b81d45" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6acdcd5c122074ee9f7b051e4fb177025c277a0e", - "reference": "6acdcd5c122074ee9f7b051e4fb177025c277a0e", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2027be14f8ae8eae999ceadebcda5b4909b81d45", + "reference": "2027be14f8ae8eae999ceadebcda5b4909b81d45", "shasum": "" }, "require": { "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { @@ -5372,6 +5631,7 @@ "require-dev": { "ext-iconv": "*", "symfony/console": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", "symfony/process": "^5.4|^6.0", "symfony/uid": "^5.4|^6.0", "twig/twig": "^2.13|^3.0.4" @@ -5412,7 +5672,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.3.0" + "source": "https://github.com/symfony/var-dumper/tree/v6.3.4" }, "funding": [ { @@ -5428,297 +5688,7 @@ "type": "tidelift" } ], - "time": "2023-05-25T13:09:35+00:00" - }, - { - "name": "telegram-bot-sdk/addon-manager", - "version": "dev-main", - "source": { - "type": "git", - "url": "https://github.com/telegram-bot-sdk/addon-manager.git", - "reference": "e3df23722c178afce6773a9d1a9f79c9d4aed597" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/telegram-bot-sdk/addon-manager/zipball/e3df23722c178afce6773a9d1a9f79c9d4aed597", - "reference": "e3df23722c178afce6773a9d1a9f79c9d4aed597", - "shasum": "" - }, - "require": { - "illuminate/support": "^10", - "php": ">=8.1", - "thecodingmachine/discovery": "^1.2" - }, - "require-dev": { - "pestphp/pest": "^2.0", - "php-parallel-lint/php-parallel-lint": "^1.3", - "rector/rector": "^0.15.24", - "telegram-bot-sdk/telegram-bot-sdk": "^4.0@dev" - }, - "default-branch": true, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.0-dev" - }, - "laravel": { - "providers": [ - "Telegram\\Bot\\Addon\\Laravel\\AddonServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Telegram\\Bot\\Addon\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Irfaq Syed", - "homepage": "https://github.com/irazasyed" - } - ], - "description": "Addon Manager for Telegram Bot SDK", - "homepage": "https://github.com/telegram-bot-sdk/addon-manager", - "keywords": [ - "addon", - "chatbot", - "telegram", - "telegram addon", - "telegram bot addon", - "telegram bot sdk", - "telegram chatbot", - "telegram-bot-sdk" - ], - "support": { - "issues": "https://github.com/telegram-bot-sdk/addon-manager/issues", - "source": "https://github.com/telegram-bot-sdk/addon-manager/tree/main" - }, - "time": "2023-04-06T01:46:54+00:00" - }, - { - "name": "telegram-bot-sdk/laravel", - "version": "dev-main", - "source": { - "type": "git", - "url": "https://github.com/telegram-bot-sdk/laravel.git", - "reference": "547ee486b9e70c76dbf81fa858095273cea81150" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/telegram-bot-sdk/laravel/zipball/547ee486b9e70c76dbf81fa858095273cea81150", - "reference": "547ee486b9e70c76dbf81fa858095273cea81150", - "shasum": "" - }, - "require": { - "illuminate/console": "^10", - "telegram-bot-sdk/telegram-bot-sdk": "^4.0@dev" - }, - "require-dev": { - "irazasyed/docgen": "^0.2", - "pestphp/pest": "^2.0", - "php-parallel-lint/php-parallel-lint": "^1.3", - "rector/rector": "^0.16" - }, - "suggest": { - "irazasyed/larasupport": "Allows you to use any Laravel Package in Lumem" - }, - "default-branch": true, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.x-dev" - }, - "laravel": { - "aliases": { - "Telegram": "Telegram\\Bot\\Laravel\\Facades\\Telegram" - }, - "providers": [ - "Telegram\\Bot\\Laravel\\TelegramServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Telegram\\Bot\\Laravel\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Irfaq Syed", - "homepage": "https://github.com/irazasyed" - } - ], - "description": "Laravel Package for Telegram Bot SDK", - "homepage": "https://github.com/telegram-bot-sdk/laravel", - "keywords": [ - "PHP telegram bot", - "laravel telegram", - "laravel telegram bot", - "laravel telegram bot sdk", - "lumen telegram bot", - "telegram bot sdk laravel", - "telegram-bot-sdk" - ], - "support": { - "chat": "https://t.me/PHPChatCo", - "docs": "https://telegram-bot-sdk.com", - "forum": "https://phpchat.co", - "issues": "https://github.com/telegram-bot-sdk/laravel/issues", - "source": "https://github.com/telegram-bot-sdk/laravel" - }, - "time": "2023-05-11T23:08:53+00:00" - }, - { - "name": "telegram-bot-sdk/telegram-bot-sdk", - "version": "dev-main", - "source": { - "type": "git", - "url": "https://github.com/telegram-bot-sdk/telegram-bot-sdk.git", - "reference": "9ecab3f5a6a1de50c4260a6d59de5197e3a09b4c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/telegram-bot-sdk/telegram-bot-sdk/zipball/9ecab3f5a6a1de50c4260a6d59de5197e3a09b4c", - "reference": "9ecab3f5a6a1de50c4260a6d59de5197e3a09b4c", - "shasum": "" - }, - "require": { - "ext-json": "*", - "guzzlehttp/guzzle": "^7.5.1", - "illuminate/container": "^10", - "illuminate/events": "^10", - "illuminate/support": "^10", - "php": ">=8.1", - "telegram-bot-sdk/addon-manager": "^1.0@dev" - }, - "require-dev": { - "fakerphp/faker": "^1.21", - "pestphp/pest": "^2.0", - "pestphp/pest-plugin-mock": "^2.0", - "php-parallel-lint/php-parallel-lint": "^1.3", - "rector/rector": "^0.16" - }, - "suggest": { - "telegram-bot-sdk/laravel": "Laravel Support for Telegram Bot SDK." - }, - "default-branch": true, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.x-dev" - } - }, - "autoload": { - "psr-4": { - "Telegram\\Bot\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Irfaq Syed", - "email": "github@lukonet.net", - "homepage": "https://github.com/irazasyed" - }, - { - "name": "Telegram Bot SDK Community", - "homepage": "https://github.com/telegram-bot-sdk/telegram-bot-sdk/graphs/contributors" - } - ], - "description": "The Telegram Bot API PHP SDK", - "homepage": "https://github.com/telegram-bot-sdk/telegram-bot-sdk", - "keywords": [ - "PHP telegram bot", - "chatbot", - "telegram", - "telegram bot", - "telegram bot api", - "telegram bot api php sdk", - "telegram bot php sdk", - "telegram bot sdk", - "telegram chatbot", - "telegram php", - "telegram-bot-sdk" - ], - "support": { - "issues": "https://github.com/telegram-bot-sdk/telegram-bot-sdk/issues", - "source": "https://github.com/telegram-bot-sdk/telegram-bot-sdk/tree/main" - }, - "time": "2023-05-16T12:34:43+00:00" - }, - { - "name": "thecodingmachine/discovery", - "version": "v1.3.1", - "source": { - "type": "git", - "url": "https://github.com/thecodingmachine/discovery.git", - "reference": "1e57e34d531dae8fda8d1629e17e83ec806b7f38" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thecodingmachine/discovery/zipball/1e57e34d531dae8fda8d1629e17e83ec806b7f38", - "reference": "1e57e34d531dae8fda8d1629e17e83ec806b7f38", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0 || ^2.0", - "php": ">=7.2" - }, - "require-dev": { - "composer/composer": "^1 || ^2", - "composer/semver": "^1 || ^2 || ^3", - "couscous/couscous": "^1.8", - "infection/infection": "^0.17.7 || ^1.18.2", - "php-coveralls/php-coveralls": "^2.4.2", - "phpunit/phpunit": "^8.5.8", - "squizlabs/php_codesniffer": "^2.9.2" - }, - "type": "composer-plugin", - "extra": { - "class": "TheCodingMachine\\Discovery\\DiscoveryPlugin", - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "autoload": { - "psr-4": { - "TheCodingMachine\\Discovery\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "David Négrier", - "email": "d.negrier@thecodingmachine.com", - "homepage": "http://mouf-php.com" - } - ], - "description": "Publish and discover assets in your PHP projects.", - "homepage": "https://github.com/thecodingmachine/discovery", - "keywords": [ - "assets", - "discovery" - ], - "support": { - "issues": "https://github.com/thecodingmachine/discovery/issues", - "source": "https://github.com/thecodingmachine/discovery/tree/v1.3.1" - }, - "time": "2022-09-09T18:42:06+00:00" + "time": "2023-08-24T14:51:05+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -5993,16 +5963,16 @@ "packages-dev": [ { "name": "fakerphp/faker", - "version": "v1.22.0", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "f85772abd508bd04e20bb4b1bbe260a68d0066d2" + "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/f85772abd508bd04e20bb4b1bbe260a68d0066d2", - "reference": "f85772abd508bd04e20bb4b1bbe260a68d0066d2", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e3daa170d00fde61ea7719ef47bb09bb8f1d9b01", + "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01", "shasum": "" }, "require": { @@ -6055,22 +6025,22 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.22.0" + "source": "https://github.com/FakerPHP/Faker/tree/v1.23.0" }, - "time": "2023-05-14T12:31:37+00:00" + "time": "2023-06-12T08:44:38+00:00" }, { "name": "filp/whoops", - "version": "2.15.2", + "version": "2.15.3", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73" + "reference": "c83e88a30524f9360b11f585f71e6b17313b7187" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/aac9304c5ed61bf7b1b7a6064bf9806ab842ce73", - "reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73", + "url": "https://api.github.com/repos/filp/whoops/zipball/c83e88a30524f9360b11f585f71e6b17313b7187", + "reference": "c83e88a30524f9360b11f585f71e6b17313b7187", "shasum": "" }, "require": { @@ -6120,7 +6090,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.15.2" + "source": "https://github.com/filp/whoops/tree/2.15.3" }, "funding": [ { @@ -6128,7 +6098,7 @@ "type": "github" } ], - "time": "2023-04-12T12:00:00+00:00" + "time": "2023-07-13T12:00:00+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -6183,16 +6153,16 @@ }, { "name": "laravel/pint", - "version": "v1.10.1", + "version": "v1.11.0", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "d69f914aa347a448628b672ba90adf0b4ea0ce4a" + "reference": "88e835bf922b94017778bde89ef8f215e1ea40db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/d69f914aa347a448628b672ba90adf0b4ea0ce4a", - "reference": "d69f914aa347a448628b672ba90adf0b4ea0ce4a", + "url": "https://api.github.com/repos/laravel/pint/zipball/88e835bf922b94017778bde89ef8f215e1ea40db", + "reference": "88e835bf922b94017778bde89ef8f215e1ea40db", "shasum": "" }, "require": { @@ -6203,9 +6173,9 @@ "php": "^8.1.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.17.0", + "friendsofphp/php-cs-fixer": "^3.21.1", "illuminate/view": "^10.5.1", - "laravel-zero/framework": "^10.0.2", + "laravel-zero/framework": "^10.1.1", "mockery/mockery": "^1.5.1", "nunomaduro/larastan": "^2.5.1", "nunomaduro/termwind": "^1.15.1", @@ -6245,20 +6215,20 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2023-06-03T15:01:17+00:00" + "time": "2023-08-15T15:30:00+00:00" }, { "name": "laravel/sail", - "version": "v1.22.0", + "version": "v1.23.4", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "923e1e112b6a8598664dbb0ee79dd3137f1c9d56" + "reference": "cfa1ad579349110a87f9412eb65ecba94d682ac2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/923e1e112b6a8598664dbb0ee79dd3137f1c9d56", - "reference": "923e1e112b6a8598664dbb0ee79dd3137f1c9d56", + "url": "https://api.github.com/repos/laravel/sail/zipball/cfa1ad579349110a87f9412eb65ecba94d682ac2", + "reference": "cfa1ad579349110a87f9412eb65ecba94d682ac2", "shasum": "" }, "require": { @@ -6310,41 +6280,37 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2023-05-04T14:52:56+00:00" + "time": "2023-08-17T12:49:32+00:00" }, { "name": "mockery/mockery", - "version": "1.6.1", + "version": "1.6.6", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "a8dd186f07ea667c1e3abd2176bfab0ab161ea94" + "reference": "b8e0bb7d8c604046539c1115994632c74dcb361e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/a8dd186f07ea667c1e3abd2176bfab0ab161ea94", - "reference": "a8dd186f07ea667c1e3abd2176bfab0ab161ea94", + "url": "https://api.github.com/repos/mockery/mockery/zipball/b8e0bb7d8c604046539c1115994632c74dcb361e", + "reference": "b8e0bb7d8c604046539c1115994632c74dcb361e", "shasum": "" }, "require": { "hamcrest/hamcrest-php": "^2.0.1", "lib-pcre": ">=7.0", - "php": "^7.4 || ^8.0" + "php": ">=7.3" }, "conflict": { "phpunit/phpunit": "<8.0" }, "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.3", - "psalm/plugin-phpunit": "^0.18", - "vimeo/psalm": "^5.9" + "phpunit/phpunit": "^8.5 || ^9.6.10", + "psalm/plugin-phpunit": "^0.18.4", + "symplify/easy-coding-standard": "^11.5.0", + "vimeo/psalm": "^4.30" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, "autoload": { "files": [ "library/helpers.php", @@ -6362,12 +6328,20 @@ { "name": "Pádraic Brady", "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" + "homepage": "https://github.com/padraic", + "role": "Author" }, { "name": "Dave Marshall", "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "http://davedevelopment.co.uk" + "homepage": "https://davedevelopment.co.uk", + "role": "Developer" + }, + { + "name": "Nathanael Esayeas", + "email": "nathanael.esayeas@protonmail.com", + "homepage": "https://github.com/ghostwriter", + "role": "Lead Developer" } ], "description": "Mockery is a simple yet flexible PHP mock object framework", @@ -6385,10 +6359,13 @@ "testing" ], "support": { + "docs": "https://docs.mockery.io/", "issues": "https://github.com/mockery/mockery/issues", - "source": "https://github.com/mockery/mockery/tree/1.6.1" + "rss": "https://github.com/mockery/mockery/releases.atom", + "security": "https://github.com/mockery/mockery/security/advisories", + "source": "https://github.com/mockery/mockery" }, - "time": "2023-06-05T13:59:03+00:00" + "time": "2023-08-09T00:03:52+00:00" }, { "name": "myclabs/deep-copy", @@ -6451,40 +6428,37 @@ }, { "name": "nunomaduro/collision", - "version": "v7.5.2", + "version": "v7.8.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "76b3cabda0aabda455fc3b9db6c3615f5a87c7ff" + "reference": "61553ad3260845d7e3e49121b7074619233d361b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/76b3cabda0aabda455fc3b9db6c3615f5a87c7ff", - "reference": "76b3cabda0aabda455fc3b9db6c3615f5a87c7ff", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/61553ad3260845d7e3e49121b7074619233d361b", + "reference": "61553ad3260845d7e3e49121b7074619233d361b", "shasum": "" }, "require": { - "filp/whoops": "^2.15.2", + "filp/whoops": "^2.15.3", "nunomaduro/termwind": "^1.15.1", "php": "^8.1.0", - "symfony/console": "^6.2.8" - }, - "conflict": { - "phpunit/phpunit": "<10.1.2" + "symfony/console": "^6.3.2" }, "require-dev": { - "brianium/paratest": "^7.1.3", - "laravel/framework": "^10.8.0", - "laravel/pint": "^1.9.0", - "laravel/sail": "^1.21.4", - "laravel/sanctum": "^3.2.1", + "brianium/paratest": "^7.2.4", + "laravel/framework": "^10.17.1", + "laravel/pint": "^1.10.5", + "laravel/sail": "^1.23.1", + "laravel/sanctum": "^3.2.5", "laravel/tinker": "^2.8.1", - "nunomaduro/larastan": "^2.6.0", - "orchestra/testbench-core": "^8.5.0", - "pestphp/pest": "^2.5.2", - "phpunit/phpunit": "^10.1.1", + "nunomaduro/larastan": "^2.6.4", + "orchestra/testbench-core": "^8.5.9", + "pestphp/pest": "^2.12.1", + "phpunit/phpunit": "^10.3.1", "sebastian/environment": "^6.0.1", - "spatie/laravel-ignition": "^2.1.0" + "spatie/laravel-ignition": "^2.2.0" }, "type": "library", "extra": { @@ -6543,7 +6517,7 @@ "type": "patreon" } ], - "time": "2023-04-22T22:12:40+00:00" + "time": "2023-08-07T08:03:21+00:00" }, { "name": "phar-io/manifest", @@ -6658,16 +6632,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "10.1.2", + "version": "10.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "db1497ec8dd382e82c962f7abbe0320e4882ee4e" + "reference": "be1fe461fdc917de2a29a452ccf2657d325b443d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/db1497ec8dd382e82c962f7abbe0320e4882ee4e", - "reference": "db1497ec8dd382e82c962f7abbe0320e4882ee4e", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/be1fe461fdc917de2a29a452ccf2657d325b443d", + "reference": "be1fe461fdc917de2a29a452ccf2657d325b443d", "shasum": "" }, "require": { @@ -6724,7 +6698,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.2" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.3" }, "funding": [ { @@ -6732,7 +6706,7 @@ "type": "github" } ], - "time": "2023-05-22T09:04:27+00:00" + "time": "2023-07-26T13:45:28+00:00" }, { "name": "phpunit/php-file-iterator", @@ -6978,16 +6952,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.2.1", + "version": "10.3.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "599b33294350e8f51163119d5670512f98b0490d" + "reference": "0dafb1175c366dd274eaa9a625e914451506bcd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/599b33294350e8f51163119d5670512f98b0490d", - "reference": "599b33294350e8f51163119d5670512f98b0490d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0dafb1175c366dd274eaa9a625e914451506bcd1", + "reference": "0dafb1175c366dd274eaa9a625e914451506bcd1", "shasum": "" }, "require": { @@ -7012,7 +6986,7 @@ "sebastian/diff": "^5.0", "sebastian/environment": "^6.0", "sebastian/exporter": "^5.0", - "sebastian/global-state": "^6.0", + "sebastian/global-state": "^6.0.1", "sebastian/object-enumerator": "^5.0", "sebastian/recursion-context": "^5.0", "sebastian/type": "^4.0", @@ -7027,7 +7001,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.2-dev" + "dev-main": "10.3-dev" } }, "autoload": { @@ -7059,7 +7033,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.2.1" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.3.2" }, "funding": [ { @@ -7075,7 +7049,7 @@ "type": "tidelift" } ], - "time": "2023-06-05T05:15:51+00:00" + "time": "2023-08-15T05:34:23+00:00" }, { "name": "sebastian/cli-parser", @@ -7246,16 +7220,16 @@ }, { "name": "sebastian/comparator", - "version": "5.0.0", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "72f01e6586e0caf6af81297897bd112eb7e9627c" + "reference": "2db5010a484d53ebf536087a70b4a5423c102372" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/72f01e6586e0caf6af81297897bd112eb7e9627c", - "reference": "72f01e6586e0caf6af81297897bd112eb7e9627c", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372", + "reference": "2db5010a484d53ebf536087a70b4a5423c102372", "shasum": "" }, "require": { @@ -7266,7 +7240,7 @@ "sebastian/exporter": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^10.3" }, "type": "library", "extra": { @@ -7310,7 +7284,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.0" + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1" }, "funding": [ { @@ -7318,7 +7293,7 @@ "type": "github" } ], - "time": "2023-02-03T07:07:16+00:00" + "time": "2023-08-14T13:18:12+00:00" }, { "name": "sebastian/complexity", @@ -7587,16 +7562,16 @@ }, { "name": "sebastian/global-state", - "version": "6.0.0", + "version": "6.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "aab257c712de87b90194febd52e4d184551c2d44" + "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/aab257c712de87b90194febd52e4d184551c2d44", - "reference": "aab257c712de87b90194febd52e4d184551c2d44", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4", + "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4", "shasum": "" }, "require": { @@ -7636,7 +7611,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.0" + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.1" }, "funding": [ { @@ -7644,7 +7620,7 @@ "type": "github" } ], - "time": "2023-02-03T07:07:38+00:00" + "time": "2023-07-19T07:19:23+00:00" }, { "name": "sebastian/lines-of-code", @@ -7989,16 +7965,16 @@ }, { "name": "spatie/backtrace", - "version": "1.4.0", + "version": "1.5.3", "source": { "type": "git", "url": "https://github.com/spatie/backtrace.git", - "reference": "ec4dd16476b802dbdc6b4467f84032837e316b8c" + "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/backtrace/zipball/ec4dd16476b802dbdc6b4467f84032837e316b8c", - "reference": "ec4dd16476b802dbdc6b4467f84032837e316b8c", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/483f76a82964a0431aa836b6ed0edde0c248e3ab", + "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab", "shasum": "" }, "require": { @@ -8035,7 +8011,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/backtrace/tree/1.4.0" + "source": "https://github.com/spatie/backtrace/tree/1.5.3" }, "funding": [ { @@ -8047,26 +8023,27 @@ "type": "other" } ], - "time": "2023-03-04T08:57:24+00:00" + "time": "2023-06-28T12:59:17+00:00" }, { "name": "spatie/flare-client-php", - "version": "1.3.6", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "530ac81255af79f114344286e4275f8869c671e2" + "reference": "5f2c6a7a0d2c1d90c12559dc7828fd942911a544" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/530ac81255af79f114344286e4275f8869c671e2", - "reference": "530ac81255af79f114344286e4275f8869c671e2", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/5f2c6a7a0d2c1d90c12559dc7828fd942911a544", + "reference": "5f2c6a7a0d2c1d90c12559dc7828fd942911a544", "shasum": "" }, "require": { "illuminate/pipeline": "^8.0|^9.0|^10.0", + "nesbot/carbon": "^2.62.1", "php": "^8.0", - "spatie/backtrace": "^1.2", + "spatie/backtrace": "^1.5.2", "symfony/http-foundation": "^5.0|^6.0", "symfony/mime": "^5.2|^6.0", "symfony/process": "^5.2|^6.0", @@ -8083,7 +8060,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.1.x-dev" + "dev-main": "1.3.x-dev" } }, "autoload": { @@ -8108,7 +8085,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.3.6" + "source": "https://github.com/spatie/flare-client-php/tree/1.4.2" }, "funding": [ { @@ -8116,28 +8093,28 @@ "type": "github" } ], - "time": "2023-04-12T07:57:12+00:00" + "time": "2023-07-28T08:07:24+00:00" }, { "name": "spatie/ignition", - "version": "1.8.1", + "version": "1.10.1", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "d8eb8ea1ed27f48a694405cff363746ffd37f13e" + "reference": "d92b9a081e99261179b63a858c7a4b01541e7dd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/d8eb8ea1ed27f48a694405cff363746ffd37f13e", - "reference": "d8eb8ea1ed27f48a694405cff363746ffd37f13e", + "url": "https://api.github.com/repos/spatie/ignition/zipball/d92b9a081e99261179b63a858c7a4b01541e7dd1", + "reference": "d92b9a081e99261179b63a858c7a4b01541e7dd1", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", "php": "^8.0", - "spatie/backtrace": "^1.4", - "spatie/flare-client-php": "^1.1", + "spatie/backtrace": "^1.5.3", + "spatie/flare-client-php": "^1.4.0", "symfony/console": "^5.4|^6.0", "symfony/var-dumper": "^5.4|^6.0" }, @@ -8149,7 +8126,7 @@ "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-phpunit": "^1.0", "psr/simple-cache-implementation": "*", - "symfony/cache": "^6.2", + "symfony/cache": "^6.0", "symfony/process": "^5.4|^6.0", "vlucas/phpdotenv": "^5.5" }, @@ -8199,20 +8176,20 @@ "type": "github" } ], - "time": "2023-06-06T14:14:58+00:00" + "time": "2023-08-21T15:06:37+00:00" }, { "name": "spatie/laravel-ignition", - "version": "2.1.3", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "35711943d4725aa80f8033e4f1cb3a6775530b25" + "reference": "4ed813d16edb5a1ab0d7f4b1d116c37ee8cdf3c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/35711943d4725aa80f8033e4f1cb3a6775530b25", - "reference": "35711943d4725aa80f8033e4f1cb3a6775530b25", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/4ed813d16edb5a1ab0d7f4b1d116c37ee8cdf3c0", + "reference": "4ed813d16edb5a1ab0d7f4b1d116c37ee8cdf3c0", "shasum": "" }, "require": { @@ -8222,7 +8199,7 @@ "illuminate/support": "^10.0", "php": "^8.1", "spatie/flare-client-php": "^1.3.5", - "spatie/ignition": "^1.5.0", + "spatie/ignition": "^1.9", "symfony/console": "^6.2.3", "symfony/var-dumper": "^6.2.3" }, @@ -8291,24 +8268,25 @@ "type": "github" } ], - "time": "2023-05-25T11:30:27+00:00" + "time": "2023-08-23T06:24:34+00:00" }, { "name": "symfony/yaml", - "version": "v6.3.0", + "version": "v6.3.3", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "a9a8337aa641ef2aa39c3e028f9107ec391e5927" + "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/a9a8337aa641ef2aa39c3e028f9107ec391e5927", - "reference": "a9a8337aa641ef2aa39c3e028f9107ec391e5927", + "url": "https://api.github.com/repos/symfony/yaml/zipball/e23292e8c07c85b971b44c1c4b87af52133e2add", + "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add", "shasum": "" }, "require": { "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8" }, "conflict": { @@ -8346,7 +8324,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.3.0" + "source": "https://github.com/symfony/yaml/tree/v6.3.3" }, "funding": [ { @@ -8362,7 +8340,7 @@ "type": "tidelift" } ], - "time": "2023-04-28T13:28:14+00:00" + "time": "2023-07-31T07:08:24+00:00" }, { "name": "theseer/tokenizer", diff --git a/backend/config/telegram.php b/backend/config/telegram.php deleted file mode 100644 index de63c6d..0000000 --- a/backend/config/telegram.php +++ /dev/null @@ -1,165 +0,0 @@ - 'default', - - /** - *-------------------------------------------------------------------------- - * Your Telegram Bots - *-------------------------------------------------------------------------- - * - * You may use multiple bots at once using the manager class. Each bot - * that you own should be configured here. - * - * Here are each of the telegram bots config parameters. - * - * Supported Params: - * - * - name: The *personal* name you would like to refer to your bot as. - * - * - token: Your Telegram Bot Token. - * Refer for more details: https://core.telegram.org/bots#botfather - * Example: (string) '123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11'. - * - * - commands: (Optional) Commands to register for this bot, - * Supported Values: "Command Group Name", "Command Repository Name", "Command => Full Path to Class". - * Default: Registers Global Commands. - * Example: (array) [ - * 'admin', // Command Group Name. - * 'status', // Command Repository Name. - * 'hello' => App\Telegram\Commands\HelloCommand::class, - * 'bye' => App\Telegram\Commands\ByeCommand::class, - * ] - */ - 'bots' => [ - 'default' => [ - 'token' => env('TELEGRAM_BOT_TOKEN', 'YOUR-BOT-TOKEN'), - - 'commands' => [ - 'start' => App\Telegram\Commands\Start::class, - ], - - 'listen' => [ - 'update' => [], - 'webhook.failed' => [], - - // Example of various events fired. - 'message' => [], - //'message.photo' => [ \App\Listeners\ProcessInboundPhoto::class ], - 'poll' => [], - 'message.left_chat_member' => [], - 'inline_query.location' => [], - ], - ] - ], - - /** - *-------------------------------------------------------------------------- - * Webhook [Optional] - *-------------------------------------------------------------------------- - * - * Domain: If you want to set a custom domain for your webhook. - * Path: Path is used to construct a webhook route. Default: /telegram - * Controller: Responsible to listen to updates and acknowledge to Telegram. - * - * Default path: telegram - * Webhook path: /telegram/{bot}/webhook - */ - 'webhook' => [ - 'domain' => env('TELEGRAM_WEBHOOK_DOMAIN', null), - 'path' => env('TELEGRAM_WEBHOOK_PATH', 'telegram'), - 'controller' => \Telegram\Bot\Laravel\Http\Controllers\WebhookController::class, - ], - - /** - *-------------------------------------------------------------------------- - * HTTP [Optional] - *-------------------------------------------------------------------------- - * - * - config: To set HTTP Client config (Ex: proxy). - * - async: When set to True, All the requests would be made non-blocking (Async). - * - api_url: To set the Base API URL. - * - client: To set HTTP Client. Should be an instance of @see \Telegram\Bot\Contracts\HttpClientInterface::class - */ - 'http' => [ - 'config' => [], - 'async' => env('TELEGRAM_ASYNC_REQUESTS', false), - 'api_url' => 'https://api.telegram.org', - 'client' => \Telegram\Bot\Http\GuzzleHttpClient::class, - ], - - /** - *-------------------------------------------------------------------------- - * Register Global Commands [Optional] - *-------------------------------------------------------------------------- - * - * If you'd like to use the SDK's built in command handler system, - * You can register all the global commands here. - * - * Global commands will apply to all the bots in system and are always active. - * - * The command class should extend the \Telegram\Bot\Commands\Command class. - * - * Default: The SDK registers, a help command which when a user sends /help - * will respond with a list of available commands and description. - */ - 'commands' => [ - 'help' => Telegram\Bot\Commands\HelpCommand::class, - ], - - /** - *-------------------------------------------------------------------------- - * Command Groups [Optional] - *-------------------------------------------------------------------------- - * - * You can organize a set of commands into groups which can later, - * be re-used across all your bots. - * - * You can create [4] types of groups! - * - * 1. Group using full path to command classes. - * - * 2. Group using command repository: Provide the key name of the command from the command repository - * and the system will automatically resolve to the appropriate command. - * - * 3. Group using other groups of commands: You can create a group which uses other - * groups of commands to bundle them into one group. - * - * 4. You can create a group with a combination of 1, 2 and 3 all together in one group. - * - * Examples shown below are by the group type for you to understand each of them. - */ - 'command_groups' => [ - ], - - /** - *-------------------------------------------------------------------------- - * Command Repository [Optional] - *-------------------------------------------------------------------------- - * - * Command Repository lets you register commands that can be shared between, - * one or more bots across the project. - * - * This will help you prevent from having to register same set of commands, - * for each bot over and over again and make it easier to maintain them. - * - * Command Repository are not active by default, You need to use the key name to register them, - * individually in a group of commands or in bot commands. - * - * Think of this as a central storage, to register, reuse and maintain them across all bots. - */ - 'command_repository' => [ - // 'start' => App\Telegram\Commands\StartCommand::class, - // 'stop' => App\Telegram\Commands\StopCommand::class, - ], -]; diff --git a/backend/config/telegraph.php b/backend/config/telegraph.php new file mode 100644 index 0000000..d9586b6 --- /dev/null +++ b/backend/config/telegraph.php @@ -0,0 +1,120 @@ + 'https://api.telegram.org/', + + /* + * Sets Telegraph messages default parse mode + * allowed values: html|markdown|MarkdownV2 + */ + 'default_parse_mode' => Telegraph::PARSE_HTML, + + /* + * Sets the handler to be used when Telegraph + * receives a new webhook call. + * + * For reference, see https://defstudio.github.io/telegraph/webhooks/overview + */ + 'webhook_handler' => App\Telegram\WebhookController::class, + + /* + * Sets a custom domain when registering a webhook. This will allow a local telegram bot api server + * to reach the webhook. Disabled by default + * + * For reference, see https://core.telegram.org/bots/api#using-a-local-bot-api-server + */ + // 'custom_webhook_domain' => 'http://my.custom.domain', + + /* + * If enabled, Telegraph dumps received + * webhook messages to logs + */ + 'debug_mode' => false, + + /* + * If enabled, unknown webhook commands are + * reported as exception in application logs + */ + 'report_unknown_webhook_commands' => false, + + 'security' => [ + /* + * if enabled, allows callback queries from unregistered chats + */ + 'allow_callback_queries_from_unknown_chats' => true, + + /* + * if enabled, allows messages and commands from unregistered chats + */ + 'allow_messages_from_unknown_chats' => true, + + /* + * if enabled, store unknown chats as new TelegraphChat models + */ + 'store_unknown_chats_in_db' => false, + ], + + /* + * Set model class for both TelegraphBot and TelegraphChat, + * to allow more customization. + * + * Bot model must be or extend `DefStudio\Telegraph\Models\TelegraphBot::class` + * Chat model must be or extend `DefStudio\Telegraph\Models\TelegraphChat::class` + */ + 'models' => [ + 'bot' => DefStudio\Telegraph\Models\TelegraphBot::class, + 'chat' => DefStudio\Telegraph\Models\TelegraphChat::class, + ], + + 'storage' => [ + /** + * Default storage driver to be used for Telegraph data + */ + 'default' => 'file', + + 'stores' => [ + 'file' => [ + /** + * Telegraph cache driver to be used, must implement + * DefStudio\Telegraph\Contracts\StorageDriver contract + */ + 'driver' => \DefStudio\Telegraph\Storage\FileStorageDriver::class, + + /* + * Laravel Storage disk to use. See /config/filesystems/disks for available disks + * If 'null', Laravel default store will be used, + */ + 'disk' => 'local', + + /** + * Folder inside filesystem to be used as root for Telegraph storage + */ + 'root' => 'telegraph', + ], + 'cache' => [ + /** + * Telegraph cache driver to be used, must implement + * DefStudio\Telegraph\Contracts\StorageDriver contract + */ + 'driver' => \DefStudio\Telegraph\Storage\CacheStorageDriver::class, + + /* + * Laravel Cache store to use. See /config/cache/stores for available stores + * If 'null', Laravel default store will be used, + */ + 'store' => null, + + /* + * Prefix to be prepended to cache keys + */ + 'key_prefix' => 'tgph', + ], + ], + ], +]; diff --git a/backend/database/migrations/2023_06_06_000257_laratrust_setup_tables.php b/backend/database/migrations/2023_06_06_000257_laratrust_setup_tables.php deleted file mode 100644 index 8945131..0000000 --- a/backend/database/migrations/2023_06_06_000257_laratrust_setup_tables.php +++ /dev/null @@ -1,85 +0,0 @@ -bigIncrements('id'); - $table->string('name')->unique(); - $table->string('display_name')->nullable(); - $table->string('description')->nullable(); - $table->timestamps(); - }); - - // Create table for storing permissions - Schema::create('permissions', function (Blueprint $table) { - $table->bigIncrements('id'); - $table->string('name')->unique(); - $table->string('display_name')->nullable(); - $table->string('description')->nullable(); - $table->timestamps(); - }); - - // Create table for associating roles to users and teams (Many To Many Polymorphic) - Schema::create('role_user', function (Blueprint $table) { - $table->unsignedBigInteger('role_id'); - $table->unsignedBigInteger('user_id'); - $table->string('user_type'); - - $table->foreign('role_id')->references('id')->on('roles') - ->onUpdate('cascade')->onDelete('cascade'); - - $table->primary(['user_id', 'role_id', 'user_type']); - }); - - // Create table for associating permissions to users (Many To Many Polymorphic) - Schema::create('permission_user', function (Blueprint $table) { - $table->unsignedBigInteger('permission_id'); - $table->unsignedBigInteger('user_id'); - $table->string('user_type'); - - $table->foreign('permission_id')->references('id')->on('permissions') - ->onUpdate('cascade')->onDelete('cascade'); - - $table->primary(['user_id', 'permission_id', 'user_type']); - }); - - // Create table for associating permissions to roles (Many-to-Many) - Schema::create('permission_role', function (Blueprint $table) { - $table->unsignedBigInteger('permission_id'); - $table->unsignedBigInteger('role_id'); - - $table->foreign('permission_id')->references('id')->on('permissions') - ->onUpdate('cascade')->onDelete('cascade'); - $table->foreign('role_id')->references('id')->on('roles') - ->onUpdate('cascade')->onDelete('cascade'); - - $table->primary(['permission_id', 'role_id']); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('permission_user'); - Schema::dropIfExists('permission_role'); - Schema::dropIfExists('permissions'); - Schema::dropIfExists('role_user'); - Schema::dropIfExists('roles'); - } -} diff --git a/backend/database/migrations/2023_08_29_001733_create_telegraph_bots_table.php b/backend/database/migrations/2023_08_29_001733_create_telegraph_bots_table.php new file mode 100644 index 0000000..30360e0 --- /dev/null +++ b/backend/database/migrations/2023_08_29_001733_create_telegraph_bots_table.php @@ -0,0 +1,18 @@ +id(); + $table->string('token')->unique(); + $table->string('name')->nullable(); + + $table->timestamps(); + }); + } +}; diff --git a/backend/database/migrations/2023_08_29_001734_create_telegraph_chats_table.php b/backend/database/migrations/2023_08_29_001734_create_telegraph_chats_table.php new file mode 100644 index 0000000..ca57e20 --- /dev/null +++ b/backend/database/migrations/2023_08_29_001734_create_telegraph_chats_table.php @@ -0,0 +1,21 @@ +id(); + $table->string('chat_id'); + $table->string('name')->nullable(); + + $table->foreignId('telegraph_bot_id')->constrained('telegraph_bots')->cascadeOnDelete(); + $table->timestamps(); + + $table->unique(['chat_id', 'telegraph_bot_id']); + }); + } +}; diff --git a/backend/database/migrations/2023_08_29_133113_create_telegram_bot_logins_table.php b/backend/database/migrations/2023_08_29_133113_create_telegram_bot_logins_table.php new file mode 100644 index 0000000..06a1ea1 --- /dev/null +++ b/backend/database/migrations/2023_08_29_133113_create_telegram_bot_logins_table.php @@ -0,0 +1,31 @@ +id(); + $table->string('chat_id')->unique()->nullable(); + $table->string('tmp_login_code')->unique()->nullable(); + $table->unsignedBigInteger('user')->unsigned(); + $table->foreign('user')->references('id')->on('users')->cascadeOnDelete(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('telegram_bot_logins'); + } +}; diff --git a/backend/routes/api.php b/backend/routes/api.php index e4ae799..61015fb 100644 --- a/backend/routes/api.php +++ b/backend/routes/api.php @@ -5,10 +5,9 @@ use App\Http\Controllers\AuthController; use App\Http\Controllers\UserController; use App\Http\Controllers\ScheduleSlotsController; use App\Http\Controllers\AvailabilityController; +use App\Http\Controllers\TelegramController; use Illuminate\Http\Request; use Illuminate\Support\Facades\Artisan; -use Telegram\Bot\Laravel\Http\Middleware\ValidateWebhook; -use Telegram\Bot\Laravel\Http\Controllers\WebhookController; /* |-------------------------------------------------------------------------- @@ -40,6 +39,8 @@ Route::middleware('auth:web')->group( function () { Route::post('/availability', [AvailabilityController::class, 'updateAvailability']); Route::post('/manual_mode', [AvailabilityController::class, 'updateAvailabilityManualMode']); + Route::post('/telegram_login_token', [TelegramController::class, 'loginToken']); + Route::post('/logout', [AuthController::class, 'logout']); }); @@ -59,8 +60,3 @@ Route::post('/cron/execute', function(Request $request) { return response('Access Denied', 403); } }); - -//TODO: remove this and open issue on https://github.com/telegram-bot-sdk/laravel since named route not working -Route::group(['middleware' => ValidateWebhook::class], function (): void { - Route::post('/telegram/{bot}/webhook', Telegram\Bot\Laravel\Http\Controllers\WebhookController::class)->name('telegram.bot.webhook'); -}); diff --git a/frontend/src/app/_routes/list/list.component.html b/frontend/src/app/_routes/list/list.component.html index 69d4540..693006f 100644 --- a/frontend/src/app/_routes/list/list.component.html +++ b/frontend/src/app/_routes/list/list.component.html @@ -29,6 +29,6 @@ -
+
\ No newline at end of file