From 203366b9eafdad12425bc3283333fad59ae5d2d7 Mon Sep 17 00:00:00 2001 From: Repflez Date: Thu, 26 Oct 2023 00:49:45 -0700 Subject: [PATCH 01/58] feat: allow changing redis host config from config --- config.example.php | 6 ++++++ src/Cache.php | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/config.example.php b/config.example.php index 434e237..0895fd8 100644 --- a/config.example.php +++ b/config.example.php @@ -18,6 +18,12 @@ 'collation' => 'utf8_unicode_ci', ], + // Cache settings + 'cache' => [ + 'host' => 'localhost', + 'port' => 6379, + ], + // General site settings 'general' => [ // Name of the site diff --git a/src/Cache.php b/src/Cache.php index e987f5c..4f0e195 100644 --- a/src/Cache.php +++ b/src/Cache.php @@ -25,7 +25,11 @@ class Cache * Initialise Redis engine. */ public static function init() : void { - self::$redis = new Redis; + self::$redis = new Redis([ + 'scheme' => 'tcp', + 'host' => config('cache.host'), + 'port' => config('cache.port'), + ]); } /** From cc482de4f40867c9ea5f9a0007b361541d50f9bf Mon Sep 17 00:00:00 2001 From: Repflez Date: Thu, 26 Oct 2023 10:49:13 -0700 Subject: [PATCH 02/58] fix: Fix language file bugs that crashed Only affected es and ro languages. --- resources/lang/es/user.php | 2 +- resources/lang/ro/community.php | 4 ++-- resources/lang/ro/gate.php | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/lang/es/user.php b/resources/lang/es/user.php index 735ae70..7e4a097 100644 --- a/resources/lang/es/user.php +++ b/resources/lang/es/user.php @@ -6,7 +6,7 @@ return [ 'profile' => [ 'header' => [ - 'name' => ':name\ Perfil'', + 'name' => ':name\ Perfil', ], 'meta' => [ diff --git a/resources/lang/ro/community.php b/resources/lang/ro/community.php index 872b19a..20cef6c 100644 --- a/resources/lang/ro/community.php +++ b/resources/lang/ro/community.php @@ -69,7 +69,7 @@ 'wii-ds' => 'Jocuri Wii・Jocuri Ds', ], 'empty' => 'Nu există comunități în această categorie.', - + ], ], 'view' => [ @@ -83,5 +83,5 @@ 'memo' => 'Postări salvate', 'next' => 'Urm.', ], - ], + ], ]; diff --git a/resources/lang/ro/gate.php b/resources/lang/ro/gate.php index e21ccd5..e628bbb 100644 --- a/resources/lang/ro/gate.php +++ b/resources/lang/ro/gate.php @@ -20,7 +20,7 @@ 'message2' => 'Nu are toate caracteristicile pe care le știați, dar tot poate fi folosit.', ], 'config' => [ - 'title' 'Configurarea contului dvs. :name', + 'title' => 'Configurarea contului dvs. :name', 'message' => 'Ne trebuie câteva date despre dvs. pentru a putea începe să folosiți :name.', 'display_name' => 'Afisați nume', 'nnid' => 'Nintendo Network ID', From 6d2c3cd73a32766199bf203a119b5ac9cdecb33f Mon Sep 17 00:00:00 2001 From: Repflez Date: Thu, 26 Oct 2023 10:50:41 -0700 Subject: [PATCH 03/58] fix: fix jp language encoding (SHIFT-JIS -> UTF-8) --- resources/lang/ja/errors.php | 8 ++++---- resources/lang/ja/gate.php | 38 ++++++++++++++++++------------------ 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/resources/lang/ja/errors.php b/resources/lang/ja/errors.php index f5d307a..0a814f0 100644 --- a/resources/lang/ja/errors.php +++ b/resources/lang/ja/errors.php @@ -5,12 +5,12 @@ return [ '403' => [ - 'title' => 'G[', - 'desc' => '̃y[W͕\ł܂B', + 'title' => 'エラー', + 'desc' => 'このページは表示できません。', ], '404' => [ - 'title' => 'G[', - 'desc' => '̃y[W͕\ł܂B', + 'title' => 'エラー', + 'desc' => 'このページは表示できません。', ], ]; \ No newline at end of file diff --git a/resources/lang/ja/gate.php b/resources/lang/ja/gate.php index 4428bb4..8431fd4 100644 --- a/resources/lang/ja/gate.php +++ b/resources/lang/ja/gate.php @@ -6,36 +6,36 @@ return [ 'welcome' => [ 'controls' => [ - 'back' => 'ǂ', - 'close' => '‚', - 'next' => '', + 'back' => 'もどる', + 'close' => '閉じる', + 'next' => '次へ', ], 'intro' => [ - 'title' => ':name ւ悤I', - 'message' => ':name ́AQ[ł̌o𐢊E̐lƋL邱Ƃł܂B', + 'title' => ':name へようこそ!', + 'message' => ':name は、ゲーム内での経験を世界中の人と共有することができます。', ], 'about' => [ - 'title' => ':name ɂ‚', - 'message1' => ':name ̓t@t@̂߂ɍMiiverseČ̂łB', - 'message2' => '̓NG[VȂ̂ŁAMiiverseƂ͋@\قȂ”\܂Ał邾񋟂ł悤ɓw͂Ă܂B', + 'title' => ':name について', + 'message1' => ':name はファンがファンのために作ったMiiverseを再現したものです。', + 'message2' => 'これはレクリエーションなので、Miiverseとは機能が異なる可能性がありますが、できるだけ早く提供できるように努力しています。', ], 'config' => [ - 'title' => ':name ̃AJEgݒ肷', - 'message' => ':name gpOɁAȂ̏񂪕KvłB', - 'display_name' => '\', - 'nnid' => 'jeh[lbg[NID', - 'nnid_label' => 'jeh[lbg[NID́AȂMii摜擾邱ƂɎgp܂B', + 'title' => ':name のアカウントを設定する', + 'message' => ':name を使用する前に、あなたの情報が必要です。', + 'display_name' => '表示名', + 'nnid' => 'ニンテンドーネットワークID', + 'nnid_label' => 'ニンテンドーネットワークIDは、あなたのMii画像を取得することだけに使用されます。', ], 'finish' => [ - 'title' => ':name y݂I', - 'start' => '͂߂', + 'title' => ':name をお楽しみください!', + 'start' => 'はじめる', ], ], 'welcome_guest' => [ - 'title' => ':name ́AMiĩLN^[gĐE̐l‚ȂQ[R~jeBłB
:name gāAȂ̃Q[̌LAE̐lƏo܂傤B', - 'message' => 'e̍쐬vtB[̍쐬ɂ̓jeh[lbg[NIDKvłBIDAgƐVK܂͊IDAg邱Ƃł܂B', - 'link' => 'IDAg', - 'exit' => 'I', + 'title' => ':name は、Miiのキャラクターを使って世界中の人をつなぐゲームコミュニティです。
:name を使って、あなたのゲーム体験を共有し、世界中の人と出会いましょう。', + 'message' => '投稿の作成やプロフィールの作成にはニンテンドーネットワークIDが必要です。IDを連携すると新規または既存のIDを連携することができます。', + 'link' => 'IDを連携する', + 'exit' => '終了', ], ]; \ No newline at end of file From 611834a6111569f24bc2428266261879f6d5609c Mon Sep 17 00:00:00 2001 From: Repflez Date: Thu, 26 Oct 2023 11:15:32 -0700 Subject: [PATCH 04/58] chore: switch to longids for auth --- src/CurrentSession.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/CurrentSession.php b/src/CurrentSession.php index f897854..83d7eed 100644 --- a/src/CurrentSession.php +++ b/src/CurrentSession.php @@ -88,7 +88,7 @@ public static function authByConsole($serviceToken) : void { $consoles = DB::table('console_auth') ->where([ - 'short_id' => $serviceToken->short, + 'short_id' => $serviceToken->long, ]) ->count(); @@ -96,7 +96,7 @@ public static function authByConsole($serviceToken) : void if ($consoles === 1) { $user = DB::table('console_auth') ->where([ - 'short_id' => $serviceToken->short, + 'short_id' => $serviceToken->long, ]) ->first(); } elseif ($consoles > 1) { From dade71c2003d4de52276850c5fc694b2a587077c Mon Sep 17 00:00:00 2001 From: Repflez Date: Thu, 26 Oct 2023 11:30:52 -0700 Subject: [PATCH 05/58] chore: update dependencies --- composer.json | 19 +- composer.lock | 1523 ++++++++++++++++--------------------------------- 2 files changed, 501 insertions(+), 1041 deletions(-) diff --git a/composer.json b/composer.json index 149e160..df643c3 100644 --- a/composer.json +++ b/composer.json @@ -1,19 +1,18 @@ { "require": { - "php": ">=8.0.0", + "php": "^8.1", "ext-curl": "*", "ext-json": "*", - "doctrine/dbal": "^2.6", - "hashids/hashids": "^4.0", - "illuminate/database": "^8.0", - "illuminate/translation": "^8.0", + "doctrine/dbal": "^3.7.1", + "hashids/hashids": "^5.0", + "illuminate/database": "^10.0", + "illuminate/translation": "^10.0", "matthiasmullie/minify": "^1.3", "nesbot/carbon": "^2.31", "phroute/phroute": "^2.1", - "predis/predis": "^1.1", - "symfony/console": "^5.3", - "twig/twig": "^3.0", - "wohali/oauth2-discord-new": "^1.0" + "predis/predis": "^2.0", + "symfony/console": "^6.0", + "twig/twig": "^3.0" }, "autoload": { "classmap": [ @@ -31,6 +30,6 @@ "optimize-autoloader": true }, "require-dev": { - "phpstan/phpstan": "^0.12" + "phpstan/phpstan": "^1.0" } } diff --git a/composer.lock b/composer.lock index d831df7..9e843f4 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,63 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d34dfaccf7721c66a28854fc8c364871", + "content-hash": "6380b21fb9d19652037617f94b7cbcba", "packages": [ + { + "name": "brick/math", + "version": "0.11.0", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478", + "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^9.0", + "vimeo/psalm": "5.0.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "brick", + "math" + ], + "support": { + "issues": "https://github.com/brick/math/issues", + "source": "https://github.com/brick/math/tree/0.11.0" + }, + "funding": [ + { + "url": "https://github.com/BenMorel", + "type": "github" + } + ], + "time": "2023-01-15T23:15:59+00:00" + }, { "name": "doctrine/cache", "version": "2.2.0", @@ -101,35 +156,40 @@ }, { "name": "doctrine/dbal", - "version": "2.13.9", + "version": "3.7.1", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "c480849ca3ad6706a39c970cdfe6888fa8a058b8" + "reference": "5b7bd66c9ff58c04c5474ab85edce442f8081cb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/c480849ca3ad6706a39c970cdfe6888fa8a058b8", - "reference": "c480849ca3ad6706a39c970cdfe6888fa8a058b8", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/5b7bd66c9ff58c04c5474ab85edce442f8081cb2", + "reference": "5b7bd66c9ff58c04c5474ab85edce442f8081cb2", "shasum": "" }, "require": { - "doctrine/cache": "^1.0|^2.0", + "composer-runtime-api": "^2", + "doctrine/cache": "^1.11|^2.0", "doctrine/deprecations": "^0.5.3|^1", - "doctrine/event-manager": "^1.0", - "ext-pdo": "*", - "php": "^7.1 || ^8" + "doctrine/event-manager": "^1|^2", + "php": "^7.4 || ^8.0", + "psr/cache": "^1|^2|^3", + "psr/log": "^1|^2|^3" }, "require-dev": { - "doctrine/coding-standard": "9.0.0", - "jetbrains/phpstorm-stubs": "2021.1", - "phpstan/phpstan": "1.4.6", - "phpunit/phpunit": "^7.5.20|^8.5|9.5.16", - "psalm/plugin-phpunit": "0.16.1", - "squizlabs/php_codesniffer": "3.6.2", - "symfony/cache": "^4.4", - "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", - "vimeo/psalm": "4.22.0" + "doctrine/coding-standard": "12.0.0", + "fig/log-test": "^1", + "jetbrains/phpstorm-stubs": "2023.1", + "phpstan/phpstan": "1.10.35", + "phpstan/phpstan-strict-rules": "^1.5", + "phpunit/phpunit": "9.6.13", + "psalm/plugin-phpunit": "0.18.4", + "slevomat/coding-standard": "8.13.1", + "squizlabs/php_codesniffer": "3.7.2", + "symfony/cache": "^5.4|^6.0", + "symfony/console": "^4.4|^5.4|^6.0", + "vimeo/psalm": "4.30.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -140,7 +200,7 @@ "type": "library", "autoload": { "psr-4": { - "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" + "Doctrine\\DBAL\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -183,14 +243,13 @@ "queryobject", "sasql", "sql", - "sqlanywhere", "sqlite", "sqlserver", "sqlsrv" ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/2.13.9" + "source": "https://github.com/doctrine/dbal/tree/3.7.1" }, "funding": [ { @@ -206,20 +265,20 @@ "type": "tidelift" } ], - "time": "2022-05-02T20:28:55+00:00" + "time": "2023-10-06T05:06:20+00:00" }, { "name": "doctrine/deprecations", - "version": "v1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3" + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", - "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", "shasum": "" }, "require": { @@ -251,36 +310,35 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v1.1.1" + "source": "https://github.com/doctrine/deprecations/tree/1.1.2" }, - "time": "2023-06-03T09:27:29+00:00" + "time": "2023-09-27T20:04:15+00:00" }, { "name": "doctrine/event-manager", - "version": "1.2.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/event-manager.git", - "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520" + "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520", - "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32", + "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32", "shasum": "" }, "require": { - "doctrine/deprecations": "^0.5.3 || ^1", - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "conflict": { "doctrine/common": "<2.9" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^10", - "phpstan/phpstan": "~1.4.10 || ^1.8.8", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.24" + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8.8", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^4.28" }, "type": "library", "autoload": { @@ -329,7 +387,7 @@ ], "support": { "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/1.2.0" + "source": "https://github.com/doctrine/event-manager/tree/2.0.0" }, "funding": [ { @@ -345,7 +403,7 @@ "type": "tidelift" } ], - "time": "2022-10-12T20:51:15+00:00" + "time": "2022-10-12T20:59:15+00:00" }, { "name": "doctrine/inflector", @@ -439,256 +497,39 @@ "time": "2023-06-16T13:40:37+00:00" }, { - "name": "guzzlehttp/guzzle", - "version": "7.7.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/fb7566caccf22d74d1ab270de3551f72a58399f5", - "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5", - "shasum": "" - }, - "require": { - "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0", - "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", - "php": "^7.2.5 || ^8.0", - "psr/http-client": "^1.0", - "symfony/deprecation-contracts": "^2.2 || ^3.0" - }, - "provide": { - "psr/http-client-implementation": "1.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", - "ext-curl": "*", - "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", - "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.29 || ^9.5.23", - "psr/log": "^1.1 || ^2.0 || ^3.0" - }, - "suggest": { - "ext-curl": "Required for CURL handler support", - "ext-intl": "Required for Internationalized Domain Name (IDN) support", - "psr/log": "Required for using the Log middleware" - }, - "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - } - }, - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Jeremy Lindblom", - "email": "jeremeamia@gmail.com", - "homepage": "https://github.com/jeremeamia" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - } - ], - "description": "Guzzle is a PHP HTTP client library", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "psr-18", - "psr-7", - "rest", - "web service" - ], - "support": { - "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.7.0" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", - "type": "tidelift" - } - ], - "time": "2023-05-21T14:04:53+00:00" - }, - { - "name": "guzzlehttp/promises", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "3a494dc7dc1d7d12e511890177ae2d0e6c107da6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/3a494dc7dc1d7d12e511890177ae2d0e6c107da6", - "reference": "3a494dc7dc1d7d12e511890177ae2d0e6c107da6", - "shasum": "" - }, - "require": { - "php": "^7.2.5 || ^8.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" - }, - "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - } - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - } - ], - "description": "Guzzle promises library", - "keywords": [ - "promise" - ], - "support": { - "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.0" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", - "type": "tidelift" - } - ], - "time": "2023-05-21T13:50:22+00:00" - }, - { - "name": "guzzlehttp/psr7", - "version": "2.5.0", + "name": "hashids/hashids", + "version": "5.0.2", "source": { "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "b635f279edd83fc275f822a1188157ffea568ff6" + "url": "https://github.com/vinkla/hashids.git", + "reference": "197171016b77ddf14e259e186559152eb3f8cf33" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/b635f279edd83fc275f822a1188157ffea568ff6", - "reference": "b635f279edd83fc275f822a1188157ffea568ff6", + "url": "https://api.github.com/repos/vinkla/hashids/zipball/197171016b77ddf14e259e186559152eb3f8cf33", + "reference": "197171016b77ddf14e259e186559152eb3f8cf33", "shasum": "" }, "require": { - "php": "^7.2.5 || ^8.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.1 || ^2.0", - "ralouphie/getallheaders": "^3.0" - }, - "provide": { - "psr/http-factory-implementation": "1.0", - "psr/http-message-implementation": "1.0" + "ext-mbstring": "*", + "php": "^8.1" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" + "phpunit/phpunit": "^10.0" }, "suggest": { - "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + "ext-bcmath": "Required to use BC Math arbitrary precision mathematics (*).", + "ext-gmp": "Required to use GNU multiple precision mathematics (*)." }, "type": "library", "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false + "branch-alias": { + "dev-master": "5.0-dev" } }, "autoload": { "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" + "Hashids\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -697,107 +538,68 @@ ], "authors": [ { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" + "name": "Ivan Akimov", + "email": "ivan@barreleye.com" }, { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" + "name": "Vincent Klaiber", + "email": "hello@doubledip.se" } ], - "description": "PSR-7 message implementation that also provides common utility methods", + "description": "Generate short, unique, non-sequential ids (like YouTube and Bitly) from numbers", + "homepage": "https://hashids.org/php", "keywords": [ - "http", - "message", - "psr-7", - "request", - "response", - "stream", - "uri", - "url" + "bitly", + "decode", + "encode", + "hash", + "hashid", + "hashids", + "ids", + "obfuscate", + "youtube" ], "support": { - "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.5.0" + "issues": "https://github.com/vinkla/hashids/issues", + "source": "https://github.com/vinkla/hashids/tree/5.0.2" }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", - "type": "tidelift" - } - ], - "time": "2023-04-17T16:11:26+00:00" + "time": "2023-02-23T15:00:54+00:00" }, { - "name": "hashids/hashids", - "version": "4.1.0", + "name": "illuminate/collections", + "version": "v10.29.0", "source": { "type": "git", - "url": "https://github.com/vinkla/hashids.git", - "reference": "8cab111f78e0bd9c76953b082919fc9e251761be" + "url": "https://github.com/illuminate/collections.git", + "reference": "bb8784ce913bd46f944b4bd67cd857f40d9cfe68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vinkla/hashids/zipball/8cab111f78e0bd9c76953b082919fc9e251761be", - "reference": "8cab111f78e0bd9c76953b082919fc9e251761be", + "url": "https://api.github.com/repos/illuminate/collections/zipball/bb8784ce913bd46f944b4bd67cd857f40d9cfe68", + "reference": "bb8784ce913bd46f944b4bd67cd857f40d9cfe68", "shasum": "" }, "require": { - "ext-mbstring": "*", - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^8.0 || ^9.4", - "squizlabs/php_codesniffer": "^3.5" + "illuminate/conditionable": "^10.0", + "illuminate/contracts": "^10.0", + "illuminate/macroable": "^10.0", + "php": "^8.1" }, "suggest": { - "ext-bcmath": "Required to use BC Math arbitrary precision mathematics (*).", - "ext-gmp": "Required to use GNU multiple precision mathematics (*)." + "symfony/var-dumper": "Required to use the dump method (^6.2)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.1-dev" + "dev-master": "10.x-dev" } }, "autoload": { + "files": [ + "helpers.php" + ], "psr-4": { - "Hashids\\": "src/" + "Illuminate\\Support\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -806,65 +608,42 @@ ], "authors": [ { - "name": "Ivan Akimov", - "email": "ivan@barreleye.com" - }, - { - "name": "Vincent Klaiber", - "email": "hello@doubledip.se" + "name": "Taylor Otwell", + "email": "taylor@laravel.com" } ], - "description": "Generate short, unique, non-sequential ids (like YouTube and Bitly) from numbers", - "homepage": "https://hashids.org/php", - "keywords": [ - "bitly", - "decode", - "encode", - "hash", - "hashid", - "hashids", - "ids", - "obfuscate", - "youtube" - ], + "description": "The Illuminate Collections package.", + "homepage": "https://laravel.com", "support": { - "issues": "https://github.com/vinkla/hashids/issues", - "source": "https://github.com/vinkla/hashids/tree/4.1.0" + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, - "time": "2020-11-26T19:24:33+00:00" + "time": "2023-10-10T12:55:25+00:00" }, { - "name": "illuminate/collections", - "version": "v8.83.27", + "name": "illuminate/conditionable", + "version": "v10.29.0", "source": { "type": "git", - "url": "https://github.com/illuminate/collections.git", - "reference": "705a4e1ef93cd492c45b9b3e7911cccc990a07f4" + "url": "https://github.com/illuminate/conditionable.git", + "reference": "d0958e4741fc9d6f516a552060fd1b829a85e009" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/collections/zipball/705a4e1ef93cd492c45b9b3e7911cccc990a07f4", - "reference": "705a4e1ef93cd492c45b9b3e7911cccc990a07f4", + "url": "https://api.github.com/repos/illuminate/conditionable/zipball/d0958e4741fc9d6f516a552060fd1b829a85e009", + "reference": "d0958e4741fc9d6f516a552060fd1b829a85e009", "shasum": "" }, "require": { - "illuminate/contracts": "^8.0", - "illuminate/macroable": "^8.0", - "php": "^7.3|^8.0" - }, - "suggest": { - "symfony/var-dumper": "Required to use the dump method (^5.4)." + "php": "^8.0.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "8.x-dev" + "dev-master": "10.x-dev" } }, "autoload": { - "files": [ - "helpers.php" - ], "psr-4": { "Illuminate\\Support\\": "" } @@ -879,40 +658,40 @@ "email": "taylor@laravel.com" } ], - "description": "The Illuminate Collections package.", + "description": "The Illuminate Conditionable package.", "homepage": "https://laravel.com", "support": { "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-06-23T15:29:49+00:00" + "time": "2023-02-03T08:06:17+00:00" }, { "name": "illuminate/container", - "version": "v8.83.27", + "version": "v10.29.0", "source": { "type": "git", "url": "https://github.com/illuminate/container.git", - "reference": "14062628d05f75047c5a1360b9350028427d568e" + "reference": "ddc26273085fad3c471b2602ad820e0097ff7939" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/container/zipball/14062628d05f75047c5a1360b9350028427d568e", - "reference": "14062628d05f75047c5a1360b9350028427d568e", + "url": "https://api.github.com/repos/illuminate/container/zipball/ddc26273085fad3c471b2602ad820e0097ff7939", + "reference": "ddc26273085fad3c471b2602ad820e0097ff7939", "shasum": "" }, "require": { - "illuminate/contracts": "^8.0", - "php": "^7.3|^8.0", - "psr/container": "^1.0" + "illuminate/contracts": "^10.0", + "php": "^8.1", + "psr/container": "^1.1.1|^2.0.1" }, "provide": { - "psr/container-implementation": "1.0" + "psr/container-implementation": "1.1|2.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "8.x-dev" + "dev-master": "10.x-dev" } }, "autoload": { @@ -936,31 +715,31 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-02-02T21:03:35+00:00" + "time": "2023-06-18T09:12:03+00:00" }, { "name": "illuminate/contracts", - "version": "v8.83.27", + "version": "v10.29.0", "source": { "type": "git", "url": "https://github.com/illuminate/contracts.git", - "reference": "5e0fd287a1b22a6b346a9f7cd484d8cf0234585d" + "reference": "6c39fba7b2311e28f5c6ac7d729e3d49a2a98406" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/contracts/zipball/5e0fd287a1b22a6b346a9f7cd484d8cf0234585d", - "reference": "5e0fd287a1b22a6b346a9f7cd484d8cf0234585d", + "url": "https://api.github.com/repos/illuminate/contracts/zipball/6c39fba7b2311e28f5c6ac7d729e3d49a2a98406", + "reference": "6c39fba7b2311e28f5c6ac7d729e3d49a2a98406", "shasum": "" }, "require": { - "php": "^7.3|^8.0", - "psr/container": "^1.0", - "psr/simple-cache": "^1.0" + "php": "^8.1", + "psr/container": "^1.1.1|^2.0.1", + "psr/simple-cache": "^1.0|^2.0|^3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "8.x-dev" + "dev-master": "10.x-dev" } }, "autoload": { @@ -984,45 +763,46 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-01-13T14:47:47+00:00" + "time": "2023-09-05T19:07:46+00:00" }, { "name": "illuminate/database", - "version": "v8.83.27", + "version": "v10.29.0", "source": { "type": "git", "url": "https://github.com/illuminate/database.git", - "reference": "1a5b0e4e6913415464fa2aab554a38b9e6fa44b1" + "reference": "bfe1d2bcd955db6325709c36d098b2d9bd4d7c5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/database/zipball/1a5b0e4e6913415464fa2aab554a38b9e6fa44b1", - "reference": "1a5b0e4e6913415464fa2aab554a38b9e6fa44b1", + "url": "https://api.github.com/repos/illuminate/database/zipball/bfe1d2bcd955db6325709c36d098b2d9bd4d7c5d", + "reference": "bfe1d2bcd955db6325709c36d098b2d9bd4d7c5d", "shasum": "" }, "require": { - "ext-json": "*", - "illuminate/collections": "^8.0", - "illuminate/container": "^8.0", - "illuminate/contracts": "^8.0", - "illuminate/macroable": "^8.0", - "illuminate/support": "^8.0", - "php": "^7.3|^8.0", - "symfony/console": "^5.4" + "brick/math": "^0.9.3|^0.10.2|^0.11", + "ext-pdo": "*", + "illuminate/collections": "^10.0", + "illuminate/container": "^10.0", + "illuminate/contracts": "^10.0", + "illuminate/macroable": "^10.0", + "illuminate/support": "^10.0", + "php": "^8.1" }, "suggest": { - "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).", - "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", - "illuminate/console": "Required to use the database commands (^8.0).", - "illuminate/events": "Required to use the observers with Eloquent (^8.0).", - "illuminate/filesystem": "Required to use the migrations (^8.0).", - "illuminate/pagination": "Required to paginate the result set (^8.0).", - "symfony/finder": "Required to use Eloquent model factories (^5.4)." + "doctrine/dbal": "Required to rename columns and drop SQLite columns (^3.5.1).", + "ext-filter": "Required to use the Postgres database driver.", + "fakerphp/faker": "Required to use the eloquent factory builder (^1.21).", + "illuminate/console": "Required to use the database commands (^10.0).", + "illuminate/events": "Required to use the observers with Eloquent (^10.0).", + "illuminate/filesystem": "Required to use the migrations (^10.0).", + "illuminate/pagination": "Required to paginate the result set (^10.0).", + "symfony/finder": "Required to use Eloquent model factories (^6.2)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "8.x-dev" + "dev-master": "10.x-dev" } }, "autoload": { @@ -1052,45 +832,47 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-08-31T16:16:06+00:00" + "time": "2023-10-20T10:10:54+00:00" }, { "name": "illuminate/filesystem", - "version": "v8.83.27", + "version": "v10.29.0", "source": { "type": "git", "url": "https://github.com/illuminate/filesystem.git", - "reference": "73db3e9a233ed587ba54f52ab8580f3c7bc872b2" + "reference": "8f355f9e281a4219671be0a82195f49153b1bced" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/filesystem/zipball/73db3e9a233ed587ba54f52ab8580f3c7bc872b2", - "reference": "73db3e9a233ed587ba54f52ab8580f3c7bc872b2", + "url": "https://api.github.com/repos/illuminate/filesystem/zipball/8f355f9e281a4219671be0a82195f49153b1bced", + "reference": "8f355f9e281a4219671be0a82195f49153b1bced", "shasum": "" }, "require": { - "illuminate/collections": "^8.0", - "illuminate/contracts": "^8.0", - "illuminate/macroable": "^8.0", - "illuminate/support": "^8.0", - "php": "^7.3|^8.0", - "symfony/finder": "^5.4" + "illuminate/collections": "^10.0", + "illuminate/contracts": "^10.0", + "illuminate/macroable": "^10.0", + "illuminate/support": "^10.0", + "php": "^8.1", + "symfony/finder": "^6.2" }, "suggest": { + "ext-fileinfo": "Required to use the Filesystem class.", "ext-ftp": "Required to use the Flysystem FTP driver.", + "ext-hash": "Required to use the Filesystem class.", "illuminate/http": "Required for handling uploaded files (^7.0).", - "league/flysystem": "Required to use the Flysystem local and FTP drivers (^1.1).", - "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).", - "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).", - "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).", + "league/flysystem": "Required to use the Flysystem local driver (^3.0.16).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).", + "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).", + "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^5.4).", - "symfony/mime": "Required to enable support for guessing extensions (^5.4)." + "symfony/filesystem": "Required to enable support for relative symbolic links (^6.2).", + "symfony/mime": "Required to enable support for guessing extensions (^6.2)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "8.x-dev" + "dev-master": "10.x-dev" } }, "autoload": { @@ -1114,29 +896,29 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-01-15T15:00:40+00:00" + "time": "2023-09-15T22:35:37+00:00" }, { "name": "illuminate/macroable", - "version": "v8.83.27", + "version": "v10.29.0", "source": { "type": "git", "url": "https://github.com/illuminate/macroable.git", - "reference": "aed81891a6e046fdee72edd497f822190f61c162" + "reference": "dff667a46ac37b634dcf68909d9d41e94dc97c27" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/macroable/zipball/aed81891a6e046fdee72edd497f822190f61c162", - "reference": "aed81891a6e046fdee72edd497f822190f61c162", + "url": "https://api.github.com/repos/illuminate/macroable/zipball/dff667a46ac37b634dcf68909d9d41e94dc97c27", + "reference": "dff667a46ac37b634dcf68909d9d41e94dc97c27", "shasum": "" }, "require": { - "php": "^7.3|^8.0" + "php": "^8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "8.x-dev" + "dev-master": "10.x-dev" } }, "autoload": { @@ -1160,48 +942,51 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-11-16T13:57:03+00:00" + "time": "2023-06-05T12:46:42+00:00" }, { "name": "illuminate/support", - "version": "v8.83.27", + "version": "v10.29.0", "source": { "type": "git", "url": "https://github.com/illuminate/support.git", - "reference": "1c79242468d3bbd9a0f7477df34f9647dde2a09b" + "reference": "e46e5864314d59fa690637e51d6cd2113acb2e7b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/support/zipball/1c79242468d3bbd9a0f7477df34f9647dde2a09b", - "reference": "1c79242468d3bbd9a0f7477df34f9647dde2a09b", + "url": "https://api.github.com/repos/illuminate/support/zipball/e46e5864314d59fa690637e51d6cd2113acb2e7b", + "reference": "e46e5864314d59fa690637e51d6cd2113acb2e7b", "shasum": "" }, "require": { - "doctrine/inflector": "^1.4|^2.0", - "ext-json": "*", + "doctrine/inflector": "^2.0", + "ext-ctype": "*", + "ext-filter": "*", "ext-mbstring": "*", - "illuminate/collections": "^8.0", - "illuminate/contracts": "^8.0", - "illuminate/macroable": "^8.0", - "nesbot/carbon": "^2.53.1", - "php": "^7.3|^8.0", - "voku/portable-ascii": "^1.6.1" + "illuminate/collections": "^10.0", + "illuminate/conditionable": "^10.0", + "illuminate/contracts": "^10.0", + "illuminate/macroable": "^10.0", + "nesbot/carbon": "^2.67", + "php": "^8.1", + "voku/portable-ascii": "^2.0" }, "conflict": { "tightenco/collect": "<5.5.33" }, "suggest": { - "illuminate/filesystem": "Required to use the composer class (^8.0).", - "league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^1.3|^2.0.2).", - "ramsey/uuid": "Required to use Str::uuid() (^4.2.2).", - "symfony/process": "Required to use the composer class (^5.4).", - "symfony/var-dumper": "Required to use the dd function (^5.4).", + "illuminate/filesystem": "Required to use the composer class (^10.0).", + "league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^2.0.2).", + "ramsey/uuid": "Required to use Str::uuid() (^4.7).", + "symfony/process": "Required to use the composer class (^6.2).", + "symfony/uid": "Required to use Str::ulid() (^6.2).", + "symfony/var-dumper": "Required to use the dd function (^6.2).", "vlucas/phpdotenv": "Required to use the Env class and env helper (^5.4.1)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "8.x-dev" + "dev-master": "10.x-dev" } }, "autoload": { @@ -1228,35 +1013,34 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-09-21T21:30:03+00:00" + "time": "2023-10-18T14:12:13+00:00" }, { "name": "illuminate/translation", - "version": "v8.83.27", + "version": "v10.29.0", "source": { "type": "git", "url": "https://github.com/illuminate/translation.git", - "reference": "e119d1e55351bd846579c333dd24f9a042b724b2" + "reference": "242fb14ad898cd51a50a33956c249fe43548930f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/translation/zipball/e119d1e55351bd846579c333dd24f9a042b724b2", - "reference": "e119d1e55351bd846579c333dd24f9a042b724b2", + "url": "https://api.github.com/repos/illuminate/translation/zipball/242fb14ad898cd51a50a33956c249fe43548930f", + "reference": "242fb14ad898cd51a50a33956c249fe43548930f", "shasum": "" }, "require": { - "ext-json": "*", - "illuminate/collections": "^8.0", - "illuminate/contracts": "^8.0", - "illuminate/filesystem": "^8.0", - "illuminate/macroable": "^8.0", - "illuminate/support": "^8.0", - "php": "^7.3|^8.0" + "illuminate/collections": "^10.0", + "illuminate/contracts": "^10.0", + "illuminate/filesystem": "^10.0", + "illuminate/macroable": "^10.0", + "illuminate/support": "^10.0", + "php": "^8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "8.x-dev" + "dev-master": "10.x-dev" } }, "autoload": { @@ -1271,86 +1055,16 @@ "authors": [ { "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The Illuminate Translation package.", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "time": "2022-05-02T13:55:33+00:00" - }, - { - "name": "league/oauth2-client", - "version": "2.7.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/oauth2-client.git", - "reference": "160d6274b03562ebeb55ed18399281d8118b76c8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/160d6274b03562ebeb55ed18399281d8118b76c8", - "reference": "160d6274b03562ebeb55ed18399281d8118b76c8", - "shasum": "" - }, - "require": { - "guzzlehttp/guzzle": "^6.0 || ^7.0", - "paragonie/random_compat": "^1 || ^2 || ^9.99", - "php": "^5.6 || ^7.0 || ^8.0" - }, - "require-dev": { - "mockery/mockery": "^1.3.5", - "php-parallel-lint/php-parallel-lint": "^1.3.1", - "phpunit/phpunit": "^5.7 || ^6.0 || ^9.5", - "squizlabs/php_codesniffer": "^2.3 || ^3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "League\\OAuth2\\Client\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Alex Bilbie", - "email": "hello@alexbilbie.com", - "homepage": "http://www.alexbilbie.com", - "role": "Developer" - }, - { - "name": "Woody Gilk", - "homepage": "https://github.com/shadowhand", - "role": "Contributor" + "email": "taylor@laravel.com" } ], - "description": "OAuth 2.0 Client Library", - "keywords": [ - "Authentication", - "SSO", - "authorization", - "identity", - "idp", - "oauth", - "oauth2", - "single sign on" - ], + "description": "The Illuminate Translation package.", + "homepage": "https://laravel.com", "support": { - "issues": "https://github.com/thephpleague/oauth2-client/issues", - "source": "https://github.com/thephpleague/oauth2-client/tree/2.7.0" + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, - "time": "2023-04-16T18:19:15+00:00" + "time": "2023-06-27T13:25:34+00:00" }, { "name": "matthiasmullie/minify", @@ -1478,25 +1192,29 @@ }, { "name": "nesbot/carbon", - "version": "2.67.0", + "version": "2.71.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "c1001b3bc75039b07f38a79db5237c4c529e04c8" + "reference": "98276233188583f2ff845a0f992a235472d9466a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/c1001b3bc75039b07f38a79db5237c4c529e04c8", - "reference": "c1001b3bc75039b07f38a79db5237c4c529e04c8", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/98276233188583f2ff845a0f992a235472d9466a", + "reference": "98276233188583f2ff845a0f992a235472d9466a", "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", @@ -1576,57 +1294,7 @@ "type": "tidelift" } ], - "time": "2023-05-25T22:09:47+00:00" - }, - { - "name": "paragonie/random_compat", - "version": "v9.99.100", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", - "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", - "shasum": "" - }, - "require": { - "php": ">= 7" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*", - "vimeo/psalm": "^1" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ], - "support": { - "email": "info@paragonie.com", - "issues": "https://github.com/paragonie/random_compat/issues", - "source": "https://github.com/paragonie/random_compat" - }, - "time": "2020-10-15T08:29:30+00:00" + "time": "2023-09-25T11:31:05+00:00" }, { "name": "phroute/phroute", @@ -1678,27 +1346,28 @@ }, { "name": "predis/predis", - "version": "v1.1.10", + "version": "v2.2.2", "source": { "type": "git", "url": "https://github.com/predis/predis.git", - "reference": "a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e" + "reference": "b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/predis/predis/zipball/a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e", - "reference": "a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e", + "url": "https://api.github.com/repos/predis/predis/zipball/b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1", + "reference": "b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": "^7.2 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "~4.8" + "friendsofphp/php-cs-fixer": "^3.3", + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^8.0 || ~9.4.4" }, "suggest": { - "ext-curl": "Allows access to Webdis when paired with phpiredis", - "ext-phpiredis": "Allows faster serialization and deserialization of the Redis protocol" + "ext-relay": "Faster connection with in-memory caching (>=0.6.2)" }, "type": "library", "autoload": { @@ -1711,19 +1380,13 @@ "MIT" ], "authors": [ - { - "name": "Daniele Alessandri", - "email": "suppakilla@gmail.com", - "homepage": "http://clorophilla.net", - "role": "Creator & Maintainer" - }, { "name": "Till Krüss", "homepage": "https://till.im", "role": "Maintainer" } ], - "description": "Flexible and feature-complete Redis client for PHP and HHVM", + "description": "A flexible and feature-complete Redis client for PHP.", "homepage": "http://github.com/predis/predis", "keywords": [ "nosql", @@ -1732,7 +1395,7 @@ ], "support": { "issues": "https://github.com/predis/predis/issues", - "source": "https://github.com/predis/predis/tree/v1.1.10" + "source": "https://github.com/predis/predis/tree/v2.2.2" }, "funding": [ { @@ -1740,29 +1403,34 @@ "type": "github" } ], - "time": "2022-01-05T17:46:08+00:00" + "time": "2023-09-13T16:42:03+00:00" }, { - "name": "psr/container", - "version": "1.1.2", + "name": "psr/cache", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "url": "https://github.com/php-fig/cache.git", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", "shasum": "" }, "require": { - "php": ">=7.4.0" + "php": ">=8.0.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, "autoload": { "psr-4": { - "Psr\\Container\\": "src/" + "Psr\\Cache\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1775,48 +1443,38 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", + "description": "Common interface for caching libraries", "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" + "cache", + "psr", + "psr-6" ], "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/cache/tree/3.0.0" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-02-03T23:26:27+00:00" }, { - "name": "psr/http-client", - "version": "1.0.2", + "name": "psr/clock", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/http-client.git", - "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31" + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31", - "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", "shasum": "" }, "require": { - "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0 || ^2.0" + "php": "^7.0 || ^8.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { "psr-4": { - "Psr\\Http\\Client\\": "src/" + "Psr\\Clock\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1829,46 +1487,47 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common interface for HTTP clients", - "homepage": "https://github.com/php-fig/http-client", + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", "keywords": [ - "http", - "http-client", + "clock", + "now", "psr", - "psr-18" + "psr-20", + "time" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/1.0.2" + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" }, - "time": "2023-04-10T20:12:12+00:00" + "time": "2022-11-25T14:36:26+00:00" }, { - "name": "psr/http-factory", - "version": "1.0.2", + "name": "psr/container", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/php-fig/http-factory.git", - "reference": "e616d01114759c4c489f93b099585439f795fe35" + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", - "reference": "e616d01114759c4c489f93b099585439f795fe35", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { - "php": ">=7.0.0", - "psr/http-message": "^1.0 || ^2.0" + "php": ">=7.4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Http\\Message\\": "src/" + "Psr\\Container\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1881,48 +1540,47 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common interfaces for PSR-7 HTTP message factories", + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", "keywords": [ - "factory", - "http", - "message", - "psr", - "psr-17", - "psr-7", - "request", - "response" + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "time": "2023-04-10T20:10:41+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { - "name": "psr/http-message", - "version": "2.0", + "name": "psr/log", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", - "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Http\\Message\\": "src/" + "Psr\\Log\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1935,42 +1593,39 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", "keywords": [ - "http", - "http-message", + "log", "psr", - "psr-7", - "request", - "response" + "psr-3" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/2.0" + "source": "https://github.com/php-fig/log/tree/3.0.0" }, - "time": "2023-04-04T09:54:51+00:00" + "time": "2021-07-14T16:46:02+00:00" }, { "name": "psr/simple-cache", - "version": "1.0.1", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -1985,7 +1640,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interfaces for simple caching", @@ -1997,102 +1652,49 @@ "simple-cache" ], "support": { - "source": "https://github.com/php-fig/simple-cache/tree/master" - }, - "time": "2017-10-23T01:57:42+00:00" - }, - { - "name": "ralouphie/getallheaders", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" - }, - "type": "library", - "autoload": { - "files": [ - "src/getallheaders.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" - } - ], - "description": "A polyfill for getallheaders.", - "support": { - "issues": "https://github.com/ralouphie/getallheaders/issues", - "source": "https://github.com/ralouphie/getallheaders/tree/develop" + "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" }, - "time": "2019-03-08T08:55:37+00:00" + "time": "2021-10-29T13:26:27+00:00" }, { "name": "symfony/console", - "version": "v5.4.24", + "version": "v6.3.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8" + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8", - "reference": "560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8", + "url": "https://api.github.com/repos/symfony/console/zipball/eca495f2ee845130855ddf1cf18460c38966c8b6", + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.1|^6.0" + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0" }, "conflict": { - "psr/log": ">=3", - "symfony/dependency-injection": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/event-dispatcher": "<4.4", - "symfony/lock": "<4.4", - "symfony/process": "<4.4" + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" }, "provide": { - "psr/log-implementation": "1.0|2.0" + "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { - "psr/log": "^1|^2", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/lock": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -2126,7 +1728,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.24" + "source": "https://github.com/symfony/console/tree/v6.3.4" }, "funding": [ { @@ -2142,7 +1744,7 @@ "type": "tidelift" } ], - "time": "2023-05-26T05:13:16+00:00" + "time": "2023-08-16T10:10:12+00:00" }, { "name": "symfony/deprecation-contracts", @@ -2213,22 +1815,23 @@ }, { "name": "symfony/finder", - "version": "v5.4.21", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "078e9a5e1871fcfe6a5ce421b539344c21afef19" + "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/078e9a5e1871fcfe6a5ce421b539344c21afef19", - "reference": "078e9a5e1871fcfe6a5ce421b539344c21afef19", + "url": "https://api.github.com/repos/symfony/finder/zipball/a1b31d88c0e998168ca7792f222cbecee47428c4", + "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.1" + }, + "require-dev": { + "symfony/filesystem": "^6.0" }, "type": "library", "autoload": { @@ -2256,7 +1859,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.21" + "source": "https://github.com/symfony/finder/tree/v6.3.5" }, "funding": [ { @@ -2272,20 +1875,20 @@ "type": "tidelift" } ], - "time": "2023-02-16T09:33:00+00:00" + "time": "2023-09-26T12:56:25+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": { @@ -2300,7 +1903,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2338,7 +1941,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": [ { @@ -2354,20 +1957,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": { @@ -2379,7 +1982,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2419,7 +2022,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": [ { @@ -2435,20 +2038,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+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": { @@ -2460,7 +2063,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2503,7 +2106,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": [ { @@ -2519,20 +2122,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": { @@ -2547,7 +2150,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2586,86 +2189,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/polyfill-php73", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" }, "funding": [ { @@ -2681,20 +2205,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-07-28T09:04:16+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": { @@ -2703,7 +2227,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2748,7 +2272,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": [ { @@ -2764,37 +2288,33 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.5.2", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1|^3" + "php": ">=8.1", + "psr/container": "^2.0" }, "conflict": { "ext-psr": "<1.1|>=2" }, - "suggest": { - "symfony/service-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -2804,7 +2324,10 @@ "autoload": { "psr-4": { "Symfony\\Contracts\\Service\\": "" - } + }, + "exclude-from-classmap": [ + "/Test/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2831,7 +2354,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/service-contracts/tree/v3.3.0" }, "funding": [ { @@ -2847,20 +2370,20 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:17:29+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/string", - "version": "v6.3.0", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f" + "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f2e190ee75ff0f5eced645ec0be5c66fac81f51f", - "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f", + "url": "https://api.github.com/repos/symfony/string/zipball/13d76d0fb049051ed12a04bef4f9de8715bea339", + "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339", "shasum": "" }, "require": { @@ -2917,7 +2440,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.3.0" + "source": "https://github.com/symfony/string/tree/v6.3.5" }, "funding": [ { @@ -2933,24 +2456,25 @@ "type": "tidelift" } ], - "time": "2023-03-21T21:06:29+00:00" + "time": "2023-09-18T10:38:32+00:00" }, { "name": "symfony/translation", - "version": "v6.3.0", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "f72b2cba8f79dd9d536f534f76874b58ad37876f" + "reference": "869b26c7a9d4b8a48afdd77ab36031909c87e3a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/f72b2cba8f79dd9d536f534f76874b58ad37876f", - "reference": "f72b2cba8f79dd9d536f534f76874b58ad37876f", + "url": "https://api.github.com/repos/symfony/translation/zipball/869b26c7a9d4b8a48afdd77ab36031909c87e3a2", + "reference": "869b26c7a9d4b8a48afdd77ab36031909c87e3a2", "shasum": "" }, "require": { "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/translation-contracts": "^2.5|^3.0" }, @@ -3011,7 +2535,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.6" }, "funding": [ { @@ -3027,7 +2551,7 @@ "type": "tidelift" } ], - "time": "2023-05-19T12:46:45+00:00" + "time": "2023-10-17T11:32:53+00:00" }, { "name": "symfony/translation-contracts", @@ -3109,16 +2633,16 @@ }, { "name": "twig/twig", - "version": "v3.6.1", + "version": "v3.7.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "7e7d5839d4bec168dfeef0ac66d5c5a2edbabffd" + "reference": "a0ce373a0ca3bf6c64b9e3e2124aca502ba39554" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/7e7d5839d4bec168dfeef0ac66d5c5a2edbabffd", - "reference": "7e7d5839d4bec168dfeef0ac66d5c5a2edbabffd", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/a0ce373a0ca3bf6c64b9e3e2124aca502ba39554", + "reference": "a0ce373a0ca3bf6c64b9e3e2124aca502ba39554", "shasum": "" }, "require": { @@ -3128,7 +2652,7 @@ }, "require-dev": { "psr/container": "^1.0|^2.0", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" + "symfony/phpunit-bridge": "^5.4.9|^6.3" }, "type": "library", "autoload": { @@ -3164,7 +2688,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.6.1" + "source": "https://github.com/twigphp/Twig/tree/v3.7.1" }, "funding": [ { @@ -3176,20 +2700,20 @@ "type": "tidelift" } ], - "time": "2023-06-08T12:52:13+00:00" + "time": "2023-08-28T11:09:02+00:00" }, { "name": "voku/portable-ascii", - "version": "1.6.1", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/voku/portable-ascii.git", - "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a" + "reference": "b56450eed252f6801410d810c8e1727224ae0743" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/87337c91b9dfacee02452244ee14ab3c43bc485a", - "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", + "reference": "b56450eed252f6801410d810c8e1727224ae0743", "shasum": "" }, "require": { @@ -3226,7 +2750,7 @@ ], "support": { "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/1.6.1" + "source": "https://github.com/voku/portable-ascii/tree/2.0.1" }, "funding": [ { @@ -3250,91 +2774,26 @@ "type": "tidelift" } ], - "time": "2022-01-24T18:55:24+00:00" - }, - { - "name": "wohali/oauth2-discord-new", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/wohali/oauth2-discord-new.git", - "reference": "2df4d2a882e04c749880797704e4bde8f00ea1d9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/wohali/oauth2-discord-new/zipball/2df4d2a882e04c749880797704e4bde8f00ea1d9", - "reference": "2df4d2a882e04c749880797704e4bde8f00ea1d9", - "shasum": "" - }, - "require": { - "ext-json": "*", - "league/oauth2-client": "^2.0", - "php": "^7.2|^8.0" - }, - "conflict": { - "team-reflex/oauth2-discord": ">=1.0" - }, - "require-dev": { - "mockery/mockery": "~1.3.0", - "php-parallel-lint/php-parallel-lint": "~0.9", - "phpunit/phpunit": "~8.0", - "squizlabs/php_codesniffer": "^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Wohali\\OAuth2\\Client\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Joan Touzet", - "email": "code@atypical.net", - "homepage": "https://github.com/wohali" - } - ], - "description": "Discord OAuth 2.0 Client Provider for The PHP League OAuth2-Client", - "keywords": [ - "authorisation", - "authorization", - "client", - "discord", - "oauth", - "oauth2" - ], - "support": { - "issues": "https://github.com/wohali/oauth2-discord-new/issues", - "source": "https://github.com/wohali/oauth2-discord-new/tree/1.2.1" - }, - "time": "2022-12-29T18:45:10+00:00" + "time": "2022-03-08T17:03:00+00:00" } ], "packages-dev": [ { "name": "phpstan/phpstan", - "version": "0.12.100", + "version": "1.10.39", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "48236ddf823547081b2b153d1cd2994b784328c3" + "reference": "d9dedb0413f678b4d03cbc2279a48f91592c97c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/48236ddf823547081b2b153d1cd2994b784328c3", - "reference": "48236ddf823547081b2b153d1cd2994b784328c3", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d9dedb0413f678b4d03cbc2279a48f91592c97c4", + "reference": "d9dedb0413f678b4d03cbc2279a48f91592c97c4", "shasum": "" }, "require": { - "php": "^7.1|^8.0" + "php": "^7.2|^8.0" }, "conflict": { "phpstan/phpstan-shim": "*" @@ -3344,11 +2803,6 @@ "phpstan.phar" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.12-dev" - } - }, "autoload": { "files": [ "bootstrap.php" @@ -3359,9 +2813,16 @@ "MIT" ], "description": "PHPStan - PHP Static Analysis Tool", + "keywords": [ + "dev", + "static analysis" + ], "support": { + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/0.12.100" + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" }, "funding": [ { @@ -3377,7 +2838,7 @@ "type": "tidelift" } ], - "time": "2022-11-01T09:52:08+00:00" + "time": "2023-10-17T15:46:26+00:00" } ], "aliases": [], @@ -3386,7 +2847,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=8.0.0", + "php": "^8.1", "ext-curl": "*", "ext-json": "*" }, From af6affa3fb9431e32fd9cc91d9f8fb146dae27cf Mon Sep 17 00:00:00 2001 From: Repflez Date: Thu, 26 Oct 2023 11:55:07 -0700 Subject: [PATCH 06/58] fix: make auth actually work --- src/CurrentSession.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/CurrentSession.php b/src/CurrentSession.php index 83d7eed..11399ea 100644 --- a/src/CurrentSession.php +++ b/src/CurrentSession.php @@ -88,7 +88,7 @@ public static function authByConsole($serviceToken) : void { $consoles = DB::table('console_auth') ->where([ - 'short_id' => $serviceToken->long, + 'long_id' => $serviceToken->long, ]) ->count(); @@ -96,7 +96,7 @@ public static function authByConsole($serviceToken) : void if ($consoles === 1) { $user = DB::table('console_auth') ->where([ - 'short_id' => $serviceToken->long, + 'long_id' => $serviceToken->long, ]) ->first(); } elseif ($consoles > 1) { From f8e46663bc33b46d1ac462c6e0477296bf5a8ff8 Mon Sep 17 00:00:00 2001 From: Repflez Date: Thu, 26 Oct 2023 11:55:59 -0700 Subject: [PATCH 07/58] chore: update user agent for mii fetching --- src/Helpers/Mii.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Helpers/Mii.php b/src/Helpers/Mii.php index 1064d9b..ab406ac 100644 --- a/src/Helpers/Mii.php +++ b/src/Helpers/Mii.php @@ -107,7 +107,7 @@ private static function call(string $url) CURLOPT_HTTPHEADER => [ 'X-Nintendo-Client-ID: '.config('nintendo.client_id'), 'X-Nintendo-Client-Secret: '.config('nintendo.client_secret'), - 'User-Agent: curl/7.58.0' // This is needed to make it actually return data and not stall + 'User-Agent: curl/7.58.1' // This is needed to make it actually return data and not stall ], ]); From 768062383791a7e983590b4b1af029dbed8ac5ea Mon Sep 17 00:00:00 2001 From: Repflez Date: Fri, 27 Oct 2023 14:07:53 -0700 Subject: [PATCH 08/58] feat: create table indices for the entire database --- ...2023_10_27_133625_create_index_entries.php | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 database/2023_10_27_133625_create_index_entries.php diff --git a/database/2023_10_27_133625_create_index_entries.php b/database/2023_10_27_133625_create_index_entries.php new file mode 100644 index 0000000..77937ad --- /dev/null +++ b/database/2023_10_27_133625_create_index_entries.php @@ -0,0 +1,134 @@ +table('comments', function (Blueprint $table) { + $table->index('post'); + $table->index('user'); + $table->fullText('content'); + }); + + $schema->table('communities', function (Blueprint $table) { + $table->index('platform'); + $table->index('type'); + $table->fullText(['name', 'description']); + }); + + $schema->table('console_auth', function (Blueprint $table) { + $table->primary('user_id'); + $table->unique('short_id'); + $table->unique('long_id'); + }); + + $schema->table('empathies', function (Blueprint $table) { + $table->primary('user'); + $table->unique(['type', 'id', 'user']); + }); + + $schema->table('favorites', function (Blueprint $table) { + $table->primary('user_id'); + $table->unique(['user_id', 'community_id']); + }); + + $schema->table('followers', function (Blueprint $table) { + $table->primary('user_id'); + $table->unique(['user_id', 'follower_id']); + }); + + $schema->table('mii_mappings', function (Blueprint $table) { + $table->primary('user_id'); + }); + + $schema->table('notifications', function (Blueprint $table) { + $table->index('from'); + $table->index('to'); + }); + + $schema->table('posts', function (Blueprint $table) { + $table->index('community'); + $table->index('user_id'); + $table->fullText('content'); + }); + + $schema->table('users', function (Blueprint $table) { + $table->index('display_name'); + $table->index('username'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + $schema = DB::getSchemaBuilder(); + + $schema->table('comments', function (Blueprint $table) { + $table->dropIndex(['post']); + $table->dropIndex(['user']); + $table->dropFullText(['content']); + }); + + $schema->table('communities', function (Blueprint $table) { + $table->dropIndex(['platform']); + $table->dropIndex(['type']); + $table->dropFullText(['name', 'description']); + }); + + $schema->table('console_auth', function (Blueprint $table) { + $table->dropPrimary(['user_id']); + $table->dropUnique(['short_id']); + $table->dropUnique(['long_id']); + }); + + $schema->table('empathies', function (Blueprint $table) { + $table->dropPrimary(['user']); + $table->dropUnique(['type', 'id', 'user']); + }); + + $schema->table('favorites', function (Blueprint $table) { + $table->dropPrimary(['user_id']); + $table->dropUnique(['user_id', 'community_id']); + }); + + $schema->table('followers', function (Blueprint $table) { + $table->dropPrimary(['user_id']); + $table->dropUnique(['user_id', 'follower_id']); + }); + + $schema->table('mii_mappings', function (Blueprint $table) { + $table->dropPrimary(['user_id']); + }); + + $schema->table('notifications', function (Blueprint $table) { + $table->dropIndex(['from']); + $table->dropIndex(['to']); + }); + + $schema->table('posts', function (Blueprint $table) { + $table->dropIndex(['community']); + $table->dropIndex(['user_id']); + $table->dropFullText(['content']); + }); + + $schema->table('users', function (Blueprint $table) { + $table->dropIndex(['display_name']); + $table->dropIndex(['username']); + }); + } +} \ No newline at end of file From 031c7b45e3e2def5c672e8037ac18d9cee91225b Mon Sep 17 00:00:00 2001 From: Repflez Date: Fri, 27 Oct 2023 17:54:20 -0700 Subject: [PATCH 09/58] chore: formatting fix on index migration --- database/2023_10_27_133625_create_index_entries.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/2023_10_27_133625_create_index_entries.php b/database/2023_10_27_133625_create_index_entries.php index 77937ad..03377a7 100644 --- a/database/2023_10_27_133625_create_index_entries.php +++ b/database/2023_10_27_133625_create_index_entries.php @@ -6,7 +6,7 @@ class CreateIndexEntries extends Migration { -/** + /** * Run the migrations. * * @return void From fc61a3bbbf0f8fed8acbf6f699f2c832f956b463 Mon Sep 17 00:00:00 2001 From: Repflez Date: Fri, 27 Oct 2023 17:55:14 -0700 Subject: [PATCH 10/58] feat: create new command to make a new migration --- .../Command/CreateNewMigrationCommand.php | 89 +++++++++++++++++++ topia | 3 +- utility.php | 5 ++ 3 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 src/Console/Command/CreateNewMigrationCommand.php diff --git a/src/Console/Command/CreateNewMigrationCommand.php b/src/Console/Command/CreateNewMigrationCommand.php new file mode 100644 index 0000000..96f5472 --- /dev/null +++ b/src/Console/Command/CreateNewMigrationCommand.php @@ -0,0 +1,89 @@ +setName('db:new-mig') + ->addArgument('name', InputArgument::REQUIRED, 'Migration name') + ->setDescription('Create a new migration') + ->setHelp('This command allows creating a brand new migration.'); + } + + /** + * Changes the Display Name. + */ + protected function execute(InputInterface $input, OutputInterface $output): int + { + $formatter = $this->getHelper('formatter'); + $name = $input->getArgument('name'); + + if(!preg_match('#^([a-z_]+)$#', $name)) { + $output->writeln($formatter->formatBlock(['Error!', 'Migration name may only contain alpha and _ characters.'], 'error', true)); + return Command::INVALID; + } + + $filename = date('Y_m_d_His_') . trim($name, '_') . '.php'; + $filepath = path("database/$filename"); + $namespace = snake_to_camel($name); + + $template = <<writeln($formatter->formatBlock(['Success!', "Template for '{$namespace}' has been created."], 'info', true)); + return Command::SUCCESS; + } +} \ No newline at end of file diff --git a/topia b/topia index cc5d2cc..6e65c6d 100644 --- a/topia +++ b/topia @@ -7,7 +7,7 @@ namespace Miiverse; -use Symfony\Component\Console\Application;; +use Symfony\Component\Console\Application; require_once 'core.php'; @@ -19,6 +19,7 @@ $application->add(new Console\Command\DatabaseMigrateCommand); $application->add(new Console\Command\DatabaseResetCommand); $application->add(new Console\Command\DatabaseRollbackCommand); $application->add(new Console\Command\DatabaseStatusCommand); +$application->add(new Console\Command\CreateNewMigrationCommand); $application->add(new Console\Command\ChangeDisplayNameCommand); diff --git a/utility.php b/utility.php index 0c84b01..5aaf8c4 100644 --- a/utility.php +++ b/utility.php @@ -280,3 +280,8 @@ function __(string $key, array $replace = []) { return Translation::get($key, $replace); } + +function snake_to_camel(string $snake) : string +{ + return str_replace('_', '', ucwords($snake, '_')); +} \ No newline at end of file From 1db0220c20024170094e6e79c4497002a29f2ab6 Mon Sep 17 00:00:00 2001 From: Repflez Date: Sun, 29 Oct 2023 11:33:33 -0700 Subject: [PATCH 11/58] feat: add title id table for communities --- ...29_190449_add_community_title_id_table.php | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 database/2023_10_29_190449_add_community_title_id_table.php diff --git a/database/2023_10_29_190449_add_community_title_id_table.php b/database/2023_10_29_190449_add_community_title_id_table.php new file mode 100644 index 0000000..dab0c02 --- /dev/null +++ b/database/2023_10_29_190449_add_community_title_id_table.php @@ -0,0 +1,45 @@ +create('community_title_ids', function (Blueprint $table) { + $table->integer('community_id')->unsigned()->index(); + $table->string('title_id')->unique(); + + $table->foreign('community_id')->references('id')->on('communities')->cascadeOnDelete(); + }); + + $schema->table('communities', function (Blueprint $table) { + $table->dropColumn('title_id'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + $schema = DB::getSchemaBuilder(); + + $schema->drop('community_title_ids'); + + $schema->table('communities', function (Blueprint $table) { + $table->bigInteger('title_id')->after('id'); + }); + } +} \ No newline at end of file From 246f4cc62796c14746a40639dac3c4fd4a3b110a Mon Sep 17 00:00:00 2001 From: Repflez Date: Sun, 29 Oct 2023 12:19:26 -0700 Subject: [PATCH 12/58] chore: split parampack parsing from session data --- src/Helpers/ConsoleAuth.php | 60 ++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/src/Helpers/ConsoleAuth.php b/src/Helpers/ConsoleAuth.php index b773ce6..d6f1d3d 100644 --- a/src/Helpers/ConsoleAuth.php +++ b/src/Helpers/ConsoleAuth.php @@ -67,52 +67,50 @@ private static function authServiceToken(int $expectedConsole) : int if (empty($sessionId)) return self::AUTH_FAILURE_INVALID_TOKEN; - // Get the session data from Redis, otherwise, create it from scratch - $session = Cache::get(self::SESSION_CACHE_NAME . $sessionId, 600); + // Read and parse ParamPack + $paramPack = base64_decode($_SERVER['HTTP_X_NINTENDO_PARAMPACK']); - if (!$session) { - $session = []; - $paramPack = base64_decode($_SERVER['HTTP_X_NINTENDO_PARAMPACK']); + // Remove the last separator if there's one trailing + if (substr($paramPack, -1) === '\\') + $paramPack = substr($paramPack, 0, -1); - // Remove the last separator if there's one trailing - if (substr($paramPack, -1) === '\\') - $paramPack = substr($paramPack, 0, -1); + // Unpack the ParamPack from the headers sent by the console + // This only deals with Nintendo style ParamPack + // https://github.com/foxverse/3ds/blob/5e1797cdbaa33103754c4b63e87b4eded38606bf/web/titlesShow.php#L37-L40 + $data = explode('\\', $paramPack); - // Unpack the ParamPack from the headers sent by the console - // This only deals with Nintendo style ParamPack - // https://github.com/foxverse/3ds/blob/5e1797cdbaa33103754c4b63e87b4eded38606bf/web/titlesShow.php#L37-L40 - $data = explode('\\', $paramPack); + $paramCount = count($data); - $paramCount = count($data); + for ($i = 1; $i < $paramCount; $i += 2) { + $session[$data[$i]] = $data[$i + 1]; + } - for ($i = 1; $i < $paramCount; $i += 2) { - $session[$data[$i]] = $data[$i + 1]; - } + // At this point we can check the console from the token + if (intval($session['platform_id']) !== $expectedConsole) + return self::AUTH_FAILURE_WRONG_CONSOLE; - // At this point we can check the console from the token - if (intval($session['platform_id']) !== $expectedConsole) - return self::AUTH_FAILURE_WRONG_CONSOLE; + // Set title id and transferable id to hex, just in case we need it + $session['title_id'] = base_convert($session['title_id'], 10, 16); + $session['title_id_string'] = str_pad($session['title_id'], 16, "0", STR_PAD_LEFT); + $session['transferable_id'] = base_convert($session['transferable_id'], 10, 16); + + // Get the session data from Redis, otherwise, create it from scratch + $persistentSessionData = Cache::get(self::SESSION_CACHE_NAME . $sessionId, 600); - // Set title id and transferable id to hex, just in case we need it - $session['title_id'] = base_convert($session['title_id'], 10, 16); - $session['title_id_string'] = str_pad($session['title_id'], 16, "0", STR_PAD_LEFT); - $session['transferable_id'] = base_convert($session['transferable_id'], 10, 16); + if (!$persistentSessionData) { + $persistentSessionData = []; - // Other kinds of session, just in case - $session['in_activity_feed'] = false; + // Set activity feed status + $persistentSessionData['in_activity_feed'] = false; - Cache::store(self::SESSION_CACHE_NAME . $sessionId, $session); + Cache::store(self::SESSION_CACHE_NAME . $sessionId, $persistentSessionData); } // Set the default timezone based on the session date_default_timezone_set($session['tz_name']); - // We have to check here as well - if (intval($session['platform_id']) !== $expectedConsole) - return self::AUTH_FAILURE_WRONG_CONSOLE; - // Set the session session for later use - self::$paramPack = $session; + self::$paramPack = array_merge($session, $persistentSessionData); // Set the console ID variable self::$consoleId = new stdClass(); From f24d075474aa92aee292e7c0bc91bec9b331479e Mon Sep 17 00:00:00 2001 From: Repflez Date: Sun, 29 Oct 2023 12:20:14 -0700 Subject: [PATCH 13/58] feat: remove automatic timezone parsing --- src/Helpers/ConsoleAuth.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Helpers/ConsoleAuth.php b/src/Helpers/ConsoleAuth.php index d6f1d3d..1bf2886 100644 --- a/src/Helpers/ConsoleAuth.php +++ b/src/Helpers/ConsoleAuth.php @@ -106,9 +106,6 @@ private static function authServiceToken(int $expectedConsole) : int Cache::store(self::SESSION_CACHE_NAME . $sessionId, $persistentSessionData); } - // Set the default timezone based on the session - date_default_timezone_set($session['tz_name']); - // Set the session session for later use self::$paramPack = array_merge($session, $persistentSessionData); From 5433635759264e8d1db6bda726a8205e2def6654 Mon Sep 17 00:00:00 2001 From: Repflez Date: Sun, 29 Oct 2023 20:52:12 -0700 Subject: [PATCH 14/58] feat: basic api handling code --- config.example.php | 1 + core.php | 2 ++ routes/api.php | 17 +++++++++++++++++ src/Helpers/ConsoleAuth.php | 14 +++++++++++++- src/Pages/API/Post.php | 16 ++++++++++++++++ utility.php | 9 +++++++++ 6 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 routes/api.php create mode 100644 src/Pages/API/Post.php diff --git a/config.example.php b/config.example.php index 0895fd8..1b51838 100644 --- a/config.example.php +++ b/config.example.php @@ -186,6 +186,7 @@ 'wiiu' => [], 'web' => [], 'admin' => [], + 'api' => [''], ], // Admin panel settings diff --git a/core.php b/core.php index 14fab3a..7e07ef3 100644 --- a/core.php +++ b/core.php @@ -46,6 +46,8 @@ } else if (in_array($siteUrl, config('sites.admin'))) { $template = 'admin'; require_once path('routes/admin.php'); + } else if (in_array($siteUrl, config('sites.api'))) { + require_once path('routes/api.php'); } else { require_once path('routes/default.php'); } diff --git a/routes/api.php b/routes/api.php new file mode 100644 index 0000000..39ca397 --- /dev/null +++ b/routes/api.php @@ -0,0 +1,17 @@ + ['maintenance']], function () { + Router::group(['before' => ['auth']], function () { + Router::post('/v1/posts', 'API.Post@submit', 'post.submit'); + }); +}); \ No newline at end of file diff --git a/src/Helpers/ConsoleAuth.php b/src/Helpers/ConsoleAuth.php index 1bf2886..2fbfe53 100644 --- a/src/Helpers/ConsoleAuth.php +++ b/src/Helpers/ConsoleAuth.php @@ -32,6 +32,7 @@ class ConsoleAuth // Console ID public const AUTH_CONSOLE_3DS = 0; public const AUTH_CONSOLE_WIIU = 1; + public const AUTH_CONSOLE_BOTH = -1; // Auth failure reasons public const AUTH_FAILURE_NO_TOKEN = 0; @@ -86,7 +87,7 @@ private static function authServiceToken(int $expectedConsole) : int } // At this point we can check the console from the token - if (intval($session['platform_id']) !== $expectedConsole) + if ($expectedConsole != self::AUTH_CONSOLE_BOTH && intval($session['platform_id']) !== $expectedConsole) return self::AUTH_FAILURE_WRONG_CONSOLE; // Set title id and transferable id to hex, just in case we need it @@ -149,4 +150,15 @@ public static function checkWiiU() if ($session !== self::AUTH_SUCCESS) redirect(route('welcome.guest')); } + + /** + * Checks the Console Auth for both 3DS and WiiU. + */ + public static function checkBothAuth() + { + $session = self::authServiceToken(self::AUTH_CONSOLE_BOTH); + + if ($session !== self::AUTH_SUCCESS) + die('auth failure'); + } } diff --git a/src/Pages/API/Post.php b/src/Pages/API/Post.php new file mode 100644 index 0000000..2b5110b --- /dev/null +++ b/src/Pages/API/Post.php @@ -0,0 +1,16 @@ + Date: Sun, 29 Oct 2023 20:53:10 -0700 Subject: [PATCH 15/58] feat: "End of Miiverse Service Announcement" css --- public/css/n3ds/style.css | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/public/css/n3ds/style.css b/public/css/n3ds/style.css index 144069b..6c8f423 100644 --- a/public/css/n3ds/style.css +++ b/public/css/n3ds/style.css @@ -5802,6 +5802,41 @@ ul + .headline { #favorite-community-list { margin: 0px auto 38px; } +.close-announce-content a { + display: -webkit-box; + -webkit-box-align: center; + -webkit-box-pack: center; + -webkit-box-sizing: content-box; + min-height: 20px; + padding: 5px; + margin: 0 auto; + font-size: 12.48px; + color: #323232; + line-height: 1.2; + background: -webkit-gradient(linear, left top, left bottom, from(#ffffff), color-stop(0.5, #ffffff), color-stop(0.8, #f6f6f6), color-stop(0.96, #f5f5f5), to(#bbbbbb)) 0 0; + border-top: 1px solid #ddd; + border-left: 1px solid #ddd; + border-right: 1px solid #b7b7b7; + border-bottom: 1px solid #b7b7b7; + cursor: pointer; + color: #FF9100; + font-weight: bold; + background: -webkit-gradient(linear, left top, left bottom, from(#fffdf0), color-stop(0.5, #fffce4), color-stop(0.8, #fff9cd), color-stop(0.96, #fff9cd), to(#f3e99e)) 0 0; + border: 1px solid #f2db1c; + padding: 3px 10px; + text-align: center; + -webkit-border-radius: 6px; +} +.close-announce-content a a { + color: #323232; +} +.close-announce-content a.disabled, +.close-announce-content a:disabled { + color: #969696; +} +.body-content > .close-announce-content { + margin: 0 auto 6px; +} .identified-user-page .toggle-follow-button { float: right; margin: 5px 0 6px; From 12a46f33ecf937909ac253a6a5b8689ce9667d11 Mon Sep 17 00:00:00 2001 From: Repflez Date: Sun, 29 Oct 2023 20:55:57 -0700 Subject: [PATCH 16/58] chore: change the charset used for new installs --- config.example.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.example.php b/config.example.php index 1b51838..fee2ec4 100644 --- a/config.example.php +++ b/config.example.php @@ -14,8 +14,8 @@ 'password' => '', 'prefix' => '', 'database' => 'rverse2_dev', - 'charset' => 'utf8', - 'collation' => 'utf8_unicode_ci', + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', ], // Cache settings From 053670cfe7e9f0c9115fcb40d71b7d522c33b551 Mon Sep 17 00:00:00 2001 From: Repflez Date: Sun, 29 Oct 2023 21:51:13 -0700 Subject: [PATCH 17/58] chore: embed some small resources in css --- public/css/n3ds/style.css | 38 ++++++++++++++--------------- public/img/artwork-header.png | Bin 646 -> 0 bytes public/img/background.png | Bin 281 -> 0 bytes public/img/balloon-message-own.png | Bin 167 -> 0 bytes public/img/balloon-message.png | Bin 197 -> 0 bytes public/img/balloon-multi-post.png | Bin 180 -> 0 bytes public/img/checkbox-checked.png | Bin 220 -> 0 bytes public/img/diary-arrow.png | Bin 423 -> 0 bytes public/img/diary-checkmark.png | Bin 890 -> 0 bytes public/img/diary-header.gif | Bin 327 -> 0 bytes public/img/diary-permalink.png | Bin 202 -> 0 bytes public/img/diary-separator.png | Bin 142 -> 0 bytes public/img/empathy-selector.png | Bin 198 -> 0 bytes public/img/header.png | Bin 788 -> 0 bytes public/img/post-diary-window.png | Bin 4208 -> 0 bytes public/img/post-header.png | Bin 788 -> 0 bytes public/img/post-separator.png | Bin 114 -> 0 bytes public/img/signin_base.png | Bin 1079 -> 0 bytes public/img/topic-header.png | Bin 589 -> 0 bytes 19 files changed, 19 insertions(+), 19 deletions(-) delete mode 100644 public/img/artwork-header.png delete mode 100644 public/img/background.png delete mode 100644 public/img/balloon-message-own.png delete mode 100644 public/img/balloon-message.png delete mode 100644 public/img/balloon-multi-post.png delete mode 100644 public/img/checkbox-checked.png delete mode 100644 public/img/diary-arrow.png delete mode 100644 public/img/diary-checkmark.png delete mode 100644 public/img/diary-header.gif delete mode 100644 public/img/diary-permalink.png delete mode 100644 public/img/diary-separator.png delete mode 100644 public/img/empathy-selector.png delete mode 100644 public/img/header.png delete mode 100644 public/img/post-diary-window.png delete mode 100644 public/img/post-header.png delete mode 100644 public/img/post-separator.png delete mode 100644 public/img/signin_base.png delete mode 100644 public/img/topic-header.png diff --git a/public/css/n3ds/style.css b/public/css/n3ds/style.css index 6c8f423..33dc734 100644 --- a/public/css/n3ds/style.css +++ b/public/css/n3ds/style.css @@ -11,7 +11,7 @@ .profile-tutorial .checkbox-button.checked:after, .add-post-page .spoiler-button.checked:after, .add-reply-page .spoiler-button.checked:after { - background: url('/img/checkbox-checked.png') no-repeat center center, -webkit-gradient(linear, left top, left bottom, from(#81e52e), to(#5ac800)) 0 0; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAANBAMAAABvB5JxAAAAMFBMVEVMaXH8/Pz5+fkAAAANDQ3///9lZWX19fX////+/v79/f2lpaXNzc3S0tL////////s9f/RAAAAD3RSTlMA9+QUKT1gwRBmkImasiVVrIMrAAAAU0lEQVR4AWNiAAEWCOUBppj7wJSFHRMzkFKrYHJ2YGA7WMDU2czgeJmBaYOFyYxqBibmb+ZCBQxMzXrbOBUYmH433NNjYGBiyGbQAFHfpm1gYAAANJ0QsJcX9TUAAAAASUVORK5CYII=') no-repeat center center, -webkit-gradient(linear, left top, left bottom, from(#81e52e), to(#5ac800)) 0 0; } .eshop-button:before { background-position: -34px 0; @@ -222,7 +222,7 @@ body { padding: 0; color: #323232; word-wrap: break-word; - background: #eeeeee url('/img/background.png'); + background: #eee url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAAAAAAdwx7eAAAA4ElEQVR4Ae3Yt5LDQAwDUP7/x94SOyuqdGJl+wJY0OcA1Jo3CpsE278N8EUH+N4QLVq06Jeio5N2nnZEgV41ehXoicHTA5Om86brt03QG/Km+dvGxtELedPDHX/EfeRtY/1JR6yZ8nBQ8ZH2XHFLkxd/n19vxPhHzPCvz/gPk+E/upVmQWl+GT8JMvwEM+am+dsm6KjQUaCBvRRAtGjRokWLFi1atOjPogPoP7r3/3D0/yb1/9x1/JI2/kjXf//ZHsL4roAvLfqrlv6CqKfWaijjGirEhuJT/XU3LVq0aNFHOlH+pCn6LDkAAAAASUVORK5CYII='); background-attachment: fixed; min-height: 460px; } @@ -367,7 +367,7 @@ button { display: inline-block; } #header { - background: url('/img/header.png') #5ac800; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAFVBMVEVOywBOwwBjzQBTzQBUxQBcywBYxQBlXBfjAAAC1UlEQVQ4ywXBwaGEIAwFwMch93CggYTdAoJaAOieg5oG/PZfw58BqLYINbgOYtVJtTnaAo/vH9H6ONZn8ucKl3tiezHzoZ6tBuQJFnX6XeHbA8/aJllnEvHcRkLbEWYYDb4bcRMmMbjZRDUirDfHdjF/NOZ2eenPLL/LAXnTPM6C7+Ozn57tDBzCBW146TtN05mqzqR7Yl0KwFBzEoO3Oou1xHsnSIVjfYD1dKxKfggVuzhZReA45/w9M8ubSj+5iM5sCi7dMu19Zlm8SHfXJee2Qw2+aMrLUooK8S4+98HA56+UTYHvBfpcPD8Sfigc61t4Oye+t9OhVFYN2q5wiMwQBY0Frgo2i9x3T0iwyrk1ZBszrIFUnGtDyscN384UH83luJP/7hR2IeXjJD+uMrcrs2n235XIBIWsoQzx2I1IKqMbQiq6ImTn3CTQWpAYqPXp6JcnuRnbX+Rei8tZQq7J6CewaslHTSRXin4VWhUF1WgO5dR0okua1iKWBsZEM8eoHqrsTVMZteQx4JC3uJ2gVYg/taRDKX1fONtfKfZHuWumr5bo6r69SKQtczUibZSHMQ+jWBZYDWo2XSVBdlDbfTZNwHZ5+p4RqwJ2B75KkCsX/IRYhLGeFD8h7jrTekVBtcliNE0phqasg0g0Asi9IUSJhpQ0hKcoce2gJDel7Sr0e4jXm+ZaibcXkbYTsf1xXm/wV8FHLVNueF5a+DB3M/dmKe8aUxbI8FktpToC0pBliaQSE6ITdibuJ0Ik8aqFVw3C+rp/JFE/yeWdsCv4+3DAmodIJquZRCZVm24SAU66T68DGA1zF8doKeoCYnsIXQObwn9/Ef3JfAhyrDd5V4QI+/qCP9fE+gBpVApdgNpAWmeRPYXs0MXT3jx1yz40pTa4LEaM3+Pc3xImibcTWf6cfpcnbH9Bx0lu5yymoP7SXG8qGA00zGFLsAnntjO1PfE/5HXHm7oqfbEAAAAASUVORK5CYII=') #5ac800; } #header { height: 220px; @@ -2714,25 +2714,25 @@ ul + .headline { display: inline-block; } .post-subtype-diary-container { - background: url('/img/diary-header.gif') #04c9db !important; + background: url('data:image/gif;base64,R0lGODlhMAAwAJEAAATC1QTF2QTN3QAAACH5BAQAAAAALAAAAAAwADAAAAL/lB+Seu34onxhLXURkDmL7UXXtRnVUU7ollLqNL5fFTIi9J45LN+Q1fMFh4FWIwGo0WzDHUJnqh1dpiYFyps2jcWk1VEzTsQGb1T47WGZ7BMSzQGP1k/t3BrqyFrSbKxEU2EGl6YSWJVG99NHRZTwiIijKDOpx3YpQQZWiJl45BETM6SJh2Oaefr1aOExuBLFKALJA+SJFRv54RpkiWLIGUfYdCvVgduoBZvjZqxIUqeskrLEMPnx03acC5vHxUy9vSlXeUgJeiY+Jcp7PgywuyX2rlRuyAiOjB2cT7VuXYhrTh5f8EphSLaNxT9zw64w7DQKzLtU1bS9IKVk3y+IGJTC8ToYER9HWSNpIew4bqITFANF0VtQAAA7') #04c9db !important; } .post-subtype-diary-container .count { background-color: #039ba9; } .post-subtype-artwork-container { - background: url('/img/artwork-header.png') #fcc735; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAADFBMVEX8xC38yzr8yy38zDTQSENqAAACN0lEQVR4XgVAQUsiURz/zTAO7/1PrZSoJzfacOdU0UZ5cqUGZ04lJTqnJTaxjrEs1MnCDZ1TG7uyzmkEHcb3KSLcSE8RFOWncCVDPS2ohWdbvzSTt3kzhqqrtUQK9UPhuLCZGtClY6VrvhCOcYe/3KIc9UMwY/uFHyLC/pwdGXBipiyKiqgU9AbIVNbo1liiOzaF2pMHbJVPMjrbQHLx7H2RHfhiURRQyuwZwvbEVaVhoidlpZNonifULsc/6Z42ki/msdWTUPfjmqk52ynPt2H7M3zz3Nv5ItIOFJq5SU/CL9KU3QKfjImVkSV5MjNCU1usl2pGtWLPt6DNR5z3lf3tkmgcoStv8AdmzYFOFEzlExqwXmr9XZfBBLcdN75vVI9stFNWIy77mLM/C5iTzGN6SNbOttlHeJpLgMn9wCDVR/1cbXFRdsmNZdH+KGyXiXjJrxXxTOsY0pAb6Q7HrvyNT7dWA8S3LFzOJyO1rBencr2MYg2Nq+bvxqFedSGN6UkGPUTfojdQR6Yu9ehhdlkeo9b2Ph4eCZdZrQJ0ClwdXJi//Kok8J36uWH+VH1UVwgD6vApy1thY2AAYiFZuQilDi+cAhbMufOfnu075eIHhK6Do+geS4Q5VGRvldfAUH0iHkxg81KEhOfH5JijoRkU2VaBXFmreVCoE+mE+zTdOQ3gVLnmY2sp9RYYBVBoNlWxGy9pHhOgBa3oNL9W3ZCdg/w6uxJ81vvWmJ5BVf2eEZbza5Hif5ky2Up1UlbNAAAAAElFTkSuQmCC') #fcc735; } .post-subtype-artwork-container .count { background-color: #f0b104; } .post-subtype-topic-container { - background: url('/img/topic-header.png') #e8316e; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAADFBMVEX8xC38yzr8yy38zDTQSENqAAACN0lEQVR4XgVAQUsiURz/zTAO7/1PrZSoJzfacOdU0UZ5cqUGZ04lJTqnJTaxjrEs1MnCDZ1TG7uyzmkEHcb3KSLcSE8RFOWncCVDPS2ohWdbvzSTt3kzhqqrtUQK9UPhuLCZGtClY6VrvhCOcYe/3KIc9UMwY/uFHyLC/pwdGXBipiyKiqgU9AbIVNbo1liiOzaF2pMHbJVPMjrbQHLx7H2RHfhiURRQyuwZwvbEVaVhoidlpZNonifULsc/6Z42ki/msdWTUPfjmqk52ynPt2H7M3zz3Nv5ItIOFJq5SU/CL9KU3QKfjImVkSV5MjNCU1usl2pGtWLPt6DNR5z3lf3tkmgcoStv8AdmzYFOFEzlExqwXmr9XZfBBLcdN75vVI9stFNWIy77mLM/C5iTzGN6SNbOttlHeJpLgMn9wCDVR/1cbXFRdsmNZdH+KGyXiXjJrxXxTOsY0pAb6Q7HrvyNT7dWA8S3LFzOJyO1rBencr2MYg2Nq+bvxqFedSGN6UkGPUTfojdQR6Yu9ehhdlkeo9b2Ph4eCZdZrQJ0ClwdXJi//Kok8J36uWH+VH1UVwgD6vApy1thY2AAYiFZuQilDi+cAhbMufOfnu075eIHhK6Do+geS4Q5VGRvldfAUH0iHkxg81KEhOfH5JijoRkU2VaBXFmreVCoE+mE+zTdOQ3gVLnmY2sp9RYYBVBoNlWxGy9pHhOgBa3oNL9W3ZCdg/w6uxJ81vvWmJ5BVf2eEZbza5Hif5ky2Up1UlbNAAAAAElFTkSuQmCC') #e8316e; } .post-subtype-topic-container .count { background-color: #c61651; } .post-subtype-default-container { - background: url('/img/header.png') #5ac800; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAFVBMVEVOywBOwwBjzQBTzQBUxQBcywBYxQBlXBfjAAAC1UlEQVQ4ywXBwaGEIAwFwMch93CggYTdAoJaAOieg5oG/PZfw58BqLYINbgOYtVJtTnaAo/vH9H6ONZn8ucKl3tiezHzoZ6tBuQJFnX6XeHbA8/aJllnEvHcRkLbEWYYDb4bcRMmMbjZRDUirDfHdjF/NOZ2eenPLL/LAXnTPM6C7+Ozn57tDBzCBW146TtN05mqzqR7Yl0KwFBzEoO3Oou1xHsnSIVjfYD1dKxKfggVuzhZReA45/w9M8ubSj+5iM5sCi7dMu19Zlm8SHfXJee2Qw2+aMrLUooK8S4+98HA56+UTYHvBfpcPD8Sfigc61t4Oye+t9OhVFYN2q5wiMwQBY0Frgo2i9x3T0iwyrk1ZBszrIFUnGtDyscN384UH83luJP/7hR2IeXjJD+uMrcrs2n235XIBIWsoQzx2I1IKqMbQiq6ImTn3CTQWpAYqPXp6JcnuRnbX+Rei8tZQq7J6CewaslHTSRXin4VWhUF1WgO5dR0okua1iKWBsZEM8eoHqrsTVMZteQx4JC3uJ2gVYg/taRDKX1fONtfKfZHuWumr5bo6r69SKQtczUibZSHMQ+jWBZYDWo2XSVBdlDbfTZNwHZ5+p4RqwJ2B75KkCsX/IRYhLGeFD8h7jrTekVBtcliNE0phqasg0g0Asi9IUSJhpQ0hKcoce2gJDel7Sr0e4jXm+ZaibcXkbYTsf1xXm/wV8FHLVNueF5a+DB3M/dmKe8aUxbI8FktpToC0pBliaQSE6ITdibuJ0Ik8aqFVw3C+rp/JFE/yeWdsCv4+3DAmodIJquZRCZVm24SAU66T68DGA1zF8doKeoCYnsIXQObwn9/Ef3JfAhyrDd5V4QI+/qCP9fE+gBpVApdgNpAWmeRPYXs0MXT3jx1yz40pTa4LEaM3+Pc3xImibcTWf6cfpcnbH9Bx0lu5yymoP7SXG8qGA00zGFLsAnntjO1PfE/5HXHm7oqfbEAAAAASUVORK5CYII=') #5ac800; } #header-meta { border-bottom: 1px solid #dddddd; @@ -4202,7 +4202,7 @@ ul + .headline { background-color: #fff; } #post-permalink-body.post-subtype-diary:before { - background-image: url('/img/diary-permalink.png'); + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAPCAYAAADd/14OAAAAkUlEQVQoFe3QQQrDIBAF0G8qgrgUwXThrrjzHt1L8VY9mTfIKmspgaArSYIeoPUAHRgYmAfDH3KeJ0ZqGkHNDEPatPf+HkJ4W2snYwwopUgp9Y4xYlmWT4fbtj0ZYy+tNTjnOI4DhBDUWlFKwb7vIC2Mc+6mlHoIIaZ5nvtyXVdIKZFzbkdLh236VcNh/vDrKy/jiDKX9bf8+gAAAABJRU5ErkJggg=='); content: ''; left: -4px; height: 100%; @@ -4352,7 +4352,7 @@ ul + .headline { top: -6px; z-index: 2; left: 58px; - background: url('/img/empathy-selector.png') no-repeat 0 0; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAHCAYAAAAxrNxjAAAAjUlEQVQYlV3OQQqDMBCF4X8kRVeeIdnkki1VobfKTbJReoSuYoWZboyEvt3wvoEnKSVqzAzgdZ4PEbk61yIzm2KMd4Cc8wEsFbuKVHWKMc7e+/o455zpum4REVyLQgiUUgAIIQBc2Knqs0XnTkopLTZZ1/Xrvb+1qEZEGIaBbdsOUdX3vu/jP2px3/efHwHnWT2afX3IAAAAAElFTkSuQmCC'') no-repeat 0 0; } #empathy-content .post-permalink-feeling-text { font-size: 12.48px; @@ -4772,7 +4772,7 @@ ul + .headline { .post-list .post-subtype-artwork, .post-list .post-subtype-topic, .post-list .post-subtype-default { - background: url('/img/post-separator.png') repeat-y #ffffff -8px 0px; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAAAGCAIAAADon5EZAAAAOUlEQVQoFWN49+7dr1+//oMBkDE4uQyD34nAgGMY5KEIiVuQKwdtRMOTHyjG4ZxB62KGwe9EYNgBAB1VxX0YvPP9AAAAAElFTkSuQmCC') repeat-y #ffffff -8px 0px; } .post-list .post-subtype-diary .post-meta, .post-list .post-subtype-artwork .post-meta, @@ -4781,10 +4781,10 @@ ul + .headline { background-color: #fff; } .post-list .post-subtype-diary { - background: url('/img/diary-separator.png') repeat-y #ffffff -8px 0; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAAGCAIAAAAZlMqUAAAAqklEQVQoFdWSyQ4DIQxDC4RF/P+3Inb6pNzm2iK1OSDjcRJjjTnnvP6hBKO99723cy6EgOc55xgD4L0XEQCCtZa1FoExBnFrDZ6vaADo6QLEGJHdmClsLaVwslKNshWGrTlnNVprhcQBV96DJxVgS43yEjS06GtvzLRM/7xu/D+PmUJOJEcGhKGOCQkGrGkBUkpglBRXclWB5g1DtNquDLKvzzQP42z9zXoDJUWXl20P0SQAAAAASUVORK5CYII=') repeat-y #ffffff -8px 0; } .post-list .post-subtype-diary:before { - background-image: url('/img/diary-permalink.png'); + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAPCAYAAADd/14OAAAAkUlEQVQoFe3QQQrDIBAF0G8qgrgUwXThrrjzHt1L8VY9mTfIKmspgaArSYIeoPUAHRgYmAfDH3KeJ0ZqGkHNDEPatPf+HkJ4W2snYwwopUgp9Y4xYlmWT4fbtj0ZYy+tNTjnOI4DhBDUWlFKwb7vIC2Mc+6mlHoIIaZ5nvtyXVdIKZFzbkdLh236VcNh/vDrKy/jiDKX9bf8+gAAAABJRU5ErkJggg=='); content: ''; left: -4px; height: 100%; @@ -6200,12 +6200,12 @@ ul + .headline { } .message-post-list .post:before { position: absolute; - content: url('/img/balloon-message.png'); + content: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAJCAYAAAARml2dAAAAkElEQVQIHWP8//8/Awzs2LFDE8jOFRcXz2RBEvQAsjM1NTX95OXlGRhBOoAqTbi4uE5raGgwiImJMYDEmKA6MpWUlMCCIP7fv3/hEtNv3brF8ObNG7A6RkZGiISHh8eZX79+BZw5c2bP27dvGZiZmSF2QI0D2RUEZGfq6Oi4gC2HSYBooKQxHx/fGQwJqKQRAAgsO4TVh8+4AAAAAElFTkSuQmCC'); left: -6px; } .message-post-list .post.my:before { position: absolute; - content: url('/img/balloon-message-own.png'); + content: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAJCAYAAAARml2dAAAAnElEQVQIHWPYf3zn/+3bt0/7//8/AzJmkrNgZ+CVYM7csWPHNAYkwHj3/4H/IP7zC78YPr/4Ox3IrPLw8PjA9O8PRJmkARuDkBJLJpAHwgxMDIwQCRAJtAYEwEpZmJgZGP79/s/w5Owvhh8f/oGMAmEGlm9v/zG8uPyL4c+P/+1As6tAgiDA8gxoKVBHMFBwHUQISgL9IIDsfhgbAL7PVL0uVC06AAAAAElFTkSuQmCC'); left: auto; right: -6px; } @@ -6647,7 +6647,7 @@ ul + .headline { } .multi-timeline-post.post-subtype-diary .body:before, .multi-timeline-post.post-subtype-default .body:before { - content: url('/img/balloon-multi-post.png'); + content: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAJCAYAAAD6reaeAAAAf0lEQVQIHWP8//8/Awzcv39fjoWF5SETkgCIHc/IyMjAAFJ57969VCD+//r16/9//vwBC1g8ffr0/48fP4DyEADScpyLi4uBnZ0dZhIDSFD+/fv3U1+8eMHw9+9fiARQA8zcmocPH/7/+vXrf0aQIAwAneQBdNJ2uJOgEtdANAA9Ik+NfFf5GAAAAABJRU5ErkJggg=='); width: 5px; height: 9px; position: absolute; @@ -6746,7 +6746,7 @@ ul + .headline { margin-left: 0; } .multi-timeline-post.post-subtype-diary .body:before { - background-image: url('/img/diary-permalink.png'); + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAPCAYAAADd/14OAAAAkUlEQVQoFe3QQQrDIBAF0G8qgrgUwXThrrjzHt1L8VY9mTfIKmspgaArSYIeoPUAHRgYmAfDH3KeJ0ZqGkHNDEPatPf+HkJ4W2snYwwopUgp9Y4xYlmWT4fbtj0ZYy+tNTjnOI4DhBDUWlFKwb7vIC2Mc+6mlHoIIaZ5nvtyXVdIKZFzbkdLh236VcNh/vDrKy/jiDKX9bf8+gAAAABJRU5ErkJggg=='); content: ''; height: 100%; left: -4px; @@ -7101,7 +7101,7 @@ ul + .headline { clear: both; } #post-diary-window:before { - background-image: url('/img/post-diary-window.png'); + background-image: url('data:image/png;base64,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'); background-size: 40px auto; content: ''; height: 35px; @@ -7127,7 +7127,7 @@ ul + .headline { word-wrap: normal; } #post-diary-window .community-container-inner a.arrow-button { - background: url('/img/diary-arrow.png') no-repeat 250px center; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAaCAQAAAAUYRSMAAABbklEQVR4AW2KJXTbYRwAPx1V/0ZeTdfbednIYceMZsy8MJcDDRfDNGZQUZkZ86Zu3/vnF86dvFPHNpzKnOMKV+sXNqphnHpygyniJJn9cs88ZDinc44qNYoksA8ul4gZWUuJFI7+xV+fp0xVNJZTPcN3V7K+rENFLOrF5eoa2IJl+d0CBUpiQS+ezoIJvSy+S5OnKOZJyyIwhmXhXZIseTFLEveTcyM9y6NMlBWyYoYk3ifne5cHmTDLZMRVUvgyqgOjWGqZIIusiMvEUYIsqxkLUZbaLvYOu83HuEuEhbbFRlfeZT7CVSaJkxIzH/+4Otl1lGtMECMprurMXsk7Xce4wSTzxMXKOywcw2TkcdcRyVGx3MnbRsbDR7nOBBHmxZLOjKkmO4wcIERYfPhQcpN9XNY5SEh8lUGycAgLcwTFlzqzSXVzpWFhljlt+J+RR1Uv31yuho8Z5r+/n+vNAnuxiFd7s4BJljOsVUP4D0R1qRL4an5FAAAAAElFTkSuQmCC') no-repeat 250px center; background-size: 6px auto; position: absolute; width: 265px; @@ -7160,7 +7160,7 @@ ul + .headline { margin: 0 -5px; } #post-diary-window .diary-screenshot-container label.checked:before { - background-image: url('/img/diary-checkmark.png'); + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEQAAABBCAYAAABo3gIBAAADtklEQVR4Ae1cNZRUQRDckASL2ATX8DI2hGjJcMlwS9AIt4joyCbDJeLh7g4J7u7u7s00Lj2//9b+N3szS71X2d0xr/b/6q6eXnLVBCJqYznAsiZXrSCiRpbLLO/Qn3hhucGyRTWJ0cXyOiXjuWW/ahCjg+VzSo9uMYtRz/I4lYY7MQsyjyS8uE90YTt9fnyVHCjGKMZoEsAifJ7Xij6bHJOFIQGzIjRRAe9eES3vzUL8JK0bSQJ2VoeJbp3IIvzJPbNJwPxYxMg7TfTokn/E4FeHnxoBg2MRZAVJuH6IBfiHLJID7WMQY5pmon9waSfX02FiEKNbWhNVqgujQehiFBwmyhVEFkOuLAwTrYl+PmREMZh09xTQoYZsotyFymJw6Y0zwxBRrWKiIrltF3AgdDH6OUyUq4cohFJmO4belusmmr4JWxZ6W36FBHALLouhltlmIQuyI4WJyk2YDJPVwRpbdrasqRMmKgqhl9mymjD+ZUtjecIxpC1WxETdFUVrwoaX2xrfIR0rLPPZm6gIoS1PXWaPZBeadKzI2ESvIybK5G7VgSJ6mB2EoTYjQY4rJoqU2RXoY3qFHOB/iI2KDS0B/coUw5AE/ndNTiWdWgWWWdnAnhND/nRY/TSm9ZyFBcUY4JiWKyaacZnlMkoSlATJ77MDVyw7ZDwgRsvsm5LLLIcc5DBKJ7gDHhDLJuqnzHLA0dOjQrenTMNv2Yj9QPu3sy+zRDReNTDc2RndgFs24Qz+yuxK/R5DJb9aSSZbwG/Z8DKLlrmdqeM0/kkdt8zjJuoxzfJtFWJkwAFXoLdswFNpymmEBusTqJL8JNFkS75lq0CabY/Fa4H6ZRCVeMuGDI37ZpEdDJodgL4AMFHBSPGhMR6ocD+RTRYwUWBo7OMmTD+wk/wqCIAqmpJXlvmbUOnhCjJZMSPhAjfyMsMEOke5PPKrgfuT5kujvU+5hWwBVwXZROG8csbXPch1pXGCRGFDlMWAjbRYVxbYvFDpa1b4viAaAPcNAAEjbVb5JViws0TpfckFGOAgZRMu2f6NFB/xYY1VSEaKmiycjLFovyLcFUiASrRn5IPf78owFI4OYwMQSMZAz+FzH8x/MgZelZpgt4hhPzlkvPYc/pMxkIgFHI9z/wsfTBdC3hCURcHFMOF/tUvKPLKncJebJMbxeLaMBaPlp4XLMovA5sk+k4Dn8jpFyKLgkBduwhflvxjqrpqCwP5jAnzhV9tzPRD+N6qx++PBlvMtd1rOsexp2SRXx/AFr7aFtJFcc4cAAAAASUVORK5CYII='); background-size: 27px auto; content: ''; width: 27px; diff --git a/public/img/artwork-header.png b/public/img/artwork-header.png deleted file mode 100644 index da966f4c45fc4810c208b45fc63f712d44c8a148..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 zcmV;10(t$3P)kwCcrb;C zsD@C}<7Fr!WMW4+k7{jJ9!=Zt{ZJ<@jej({}yQ zx%N8-;zCk&ROPfL2{L41ogdFiXFpI?VA1+*b(DED2J9aCcX#BsG(#J$PZ3mC; z$GP^04^9qj;wL^9mh0I>TS`(a9z!Xi2j+uc0%b2E!WhzvrqfgUEqx1f>Uc(no;LQh zArdpvQn?6``JoCtvgeQHoJApG0Kci<7&kA?S96Cjp&lQwrk`;qE_AHb!*lssc}}Td z&Dos&EXjfrD}6=&E;mhIutJ9GCffJbyFE5vi02A8UO*m_kkV3$ieL`yP=!QIO-Qh) zm+fWxG&sAoacSN0p}$*uv!^yH!JvurWK@+HKx=AA3I2?TdAR}YePbv0;Pw3>J%A$K gGb4Skxt}fl2Z-+HVQtze?f?J)07*qoM6N<$g7}0eivR!s diff --git a/public/img/background.png b/public/img/background.png deleted file mode 100644 index 1770003e816ccb34d1b8163e5ce421c19587e039..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 281 zcmV+!0p|XRP)Qlm`P;_E(F=Lg!ySLbedKLp{YgixneuQ@@sajiaZ8gI zf1h7(#P~EG fbvG?qv}n;sI#K?lDf%oq00000NkvXXu0mjfmsW?# diff --git a/public/img/balloon-message-own.png b/public/img/balloon-message-own.png deleted file mode 100644 index 474ea458a3a3979f13c38896a3f328028ca27001..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ(!VDxIZ*f=$q|^g^LR^9Lc2scp-+?3NckMsE zbJxBdm*4C=d2{!P8@vBZc$@=N%2pEO7tAn?ue>cN)AsTupopfYi(?4K_2i6{gai+9 xAl42^@HlM-#Eg&JSlg!Z@$dvU7IE?LFw`@!&1jaMvI?k)!PC{xWt~$(695I~J$(QG diff --git a/public/img/balloon-message.png b/public/img/balloon-message.png deleted file mode 100644 index a61510243243a2902ea4ddd1c521611c47e5ac92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ(!3-qTT-L4!QkDTeA+A7rJ8tm*|NlRK{=9ni z>ha^p`}gmE^XAQi2M^AjJ9qTx(Yx#B=K?izl?3?(GZ^pQICol*zlY|xH*cAMqK2L> zjv*Y^RXaTS7!(8!6@=gU`#)KArra$C7w_@}7# V%7=DsvjJ*m@O1TaS?83{1OTvfR>S}R diff --git a/public/img/balloon-multi-post.png b/public/img/balloon-multi-post.png deleted file mode 100644 index e061ad9e37c5e739b7383228519c847626c3e9de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^tU%1k!VDxint!haQU(D&A+A9B9yaj*|Nlpi9zA>Z z3@G{I$B(aHzrKI}{`KqEO{ELsKt_}V`2{n`O{uL(^{}XTvMv=UrtRtC7{YNqIU!-r zfddC@8XHUNnVqk8vbEL9^71%oOG!xB=o=Vp@MSp3%&=0MGkZU`VL4D6gQu&X%Q~lo FCIDWlOP>G$ diff --git a/public/img/checkbox-checked.png b/public/img/checkbox-checked.png deleted file mode 100644 index 64d35196e2fbc406842561bb91dc32ff84acb2fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^JRmj;Gmy+@pHv8>3<7*YT!HkTKYw_6d4K-=31p|H zrvCr`|LfPUXV0Gf`}gnCrAz<)`v(-cbmn7dEP4oO*JDDdHrV{c_JdWH_gDjw&^ZB(M)ImxvizONkVY{>5LPr%Y8emQy{$ zcUQ8$tV2aC>c!>i8rXtm`P~8qN@77Tp3Z^^y)3>KOA_~! zb0a;=qfC?)vSNlL-Y4gKmj{_J%Vfk=Qus2e1EW}KnIMa-h|9!Lf-I{U3sIKZF7^() z&BwS)goU=nMpxctKEhQdiIWmDAOE;I*>#j_Ob{a}uIkKQ$va)gxWOdz#Kp=xEF8mR z&*gtv4~fDvw%sKGptoZ_zy&NsS@~V RenkKP002ovPDHLkV1i{#y3GIp diff --git a/public/img/diary-checkmark.png b/public/img/diary-checkmark.png deleted file mode 100644 index 2f3d1ce25d59e9eacf9c4319c8519e45e77d2f56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 890 zcmeAS@N?(olHy`uVBq!ia0vp^EHl9`{eN}iM`qu7K-b8Y z1o;Ise17=+()9z!x36EmV0wQ;L2^WZhnu;&fr7Z40FRB?^+pB;rY27p$B>F!OJ}rJ zwK(v!oWFZ_QgQqD`n_hnx#bBH@BX&8&iQ3{G3Zyr(TvDnJ-N%hT%KNA_2m2(C$Gvk z|J71|B|loZarH&}Q2&W~oWBoGY?(Rz*o2nHoj(=q+2WQ>D%fZ6Ike97kMG`(=H)-H zmR^roy^{Z;#oVXQPsA?qJv6zMos&Dg_u%}MXV!22^UgBc=bvwHlCyPq@6K6OsSmxJ z&R@P_{$IdhpVh3YfZo~hPrvX6&;0(y_i||Rnq~WLaJ;``dfPX6vCZopX}h;AwB9Uu zuXnM>VUwxxnGf%to3?YA(d>u4&u^{^|DCyKvrn-9nwXPem6Nqxw_IPT+oE^Its?u{ zrmm18->2J`>gq|QT=MU@a^Q-_p4`_wmhA3-1?5$3g_!=S`m~kHoSks^<@F7pL`>Xn z-S(d&cTaU<;H+{XE$-;}whz-3_xSE{H{QrtE9tYfwLC9u*@AsMNr&}P&T+gKuoZs2 z(7)tjNOi?+D`y_Ptamc)u{L`g4r}E9h~8>CYgXvq*u$oKHufI&+ZnOCT%=Tca&XEz z!#A5&mp7`e+jAwR_{Pk$mOEv>F3?jDf3)nA=2pw=3NsJH7>Lf^T)Qe(qGD1*V|8Fv zv7B?`!kzDzd@x&G&&CsTE-UoTio`N?e#srK%aSf$`J8r2ciAU~UiWjWI$q{JXLU_Z zWwA_r9GUQ>RMEQek@Q)x6IQO)A>Cqw86cV={Zj?%e5xOhVWCv}dlBY1cdb z@a{Y%-|ePflWJ!!eSD~A+n(5IaXJ|~>8pOOO}i2COwRj};#n}YS-2eapA^8LZ00000EC2ui05AYB00092 zlpm6M?f9a6VJ&qLkU5L(Mc1_%)lp99mQw08zF!qGBJ`d)EZ>mT^96^2RwDtZ(QLyV zLT9QSU8W`l%9}Qg#iZ3yGfu|rV?0{ zM)%W4MU?P}h@&VosmFFHK?YWcnRw(86EmcVhhv&~`t@kxF}M=NC<4g?@*6@yHwS*y&$Dz-!F(5l)~{k Z7!e;wStDs7>^N?s6BGkQ(OXae06XBEj_?2g diff --git a/public/img/diary-permalink.png b/public/img/diary-permalink.png deleted file mode 100644 index 48132950afb6855613b79a014dcade18897ce40b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^AT~b-Gmw0xxXuPh*$4Q9xB_V>C#O%JKAk^*J~1)T z-{1eig9kHb&Ro5Eb!lm-v$M0Cn_F;ju&%D|j~_o?y?XWV;lmRrPHfz`vA@4RBO^m} zMfWnG5qu>gPGvq91_&9B9pf^w-gQu&X%Q~loCIC6|N@4&2 diff --git a/public/img/diary-separator.png b/public/img/diary-separator.png deleted file mode 100644 index cd3789dc7a73f06997db5de539cdb436df7ef5cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^7C_9#!VDx+Za91ZQW60^A+G=b|Nr*w+uOHqfByXW z_wV1|zkh%E^5x^lk4Y{&W&zb0db&7B%2%6RpZj@f>Y7Df|N46G x{;ezATqN2Wb8qtnUj4rB{bT#A!u#Ln%QHTYw4GI3djjY%22WQ%mvv4FO#qPjP;>wQ diff --git a/public/img/header.png b/public/img/header.png deleted file mode 100644 index 4caadfa418bce0dcb6518c948e585472ce00aba2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 788 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 bc)Zg;d>MR|HC0VP00000NkvXXu0mjfY-bKF From f8a867c8b93edc18b17136effa546d2c93718abe Mon Sep 17 00:00:00 2001 From: Repflez Date: Sun, 29 Oct 2023 22:49:33 -0700 Subject: [PATCH 18/58] feat: new community category system --- ..._050806_add_community_categories_table.php | 77 +++++++++++++++++++ public/css/n3ds/style.css | 3 + resources/lang/en/community.php | 3 +- src/Pages/CTR/Community.php | 48 +++++++++++- 4 files changed, 129 insertions(+), 2 deletions(-) create mode 100644 database/2023_10_30_050806_add_community_categories_table.php diff --git a/database/2023_10_30_050806_add_community_categories_table.php b/database/2023_10_30_050806_add_community_categories_table.php new file mode 100644 index 0000000..5ead0d5 --- /dev/null +++ b/database/2023_10_30_050806_add_community_categories_table.php @@ -0,0 +1,77 @@ +drop('community_categories'); + + $schema->create('community_categories', function (Blueprint $table) { + $table->increments('id'); + + $table->string('name', 80); + + $table->string('class', 80)->default(''); + + $table->boolean('has_filter')->default(true); + + $table->unsignedInteger('order')->default(0); + }); + + DB::table('community_categories')->insert([ + [ + 'name' => '#new', + 'class' => '#console', + 'has_filter' => true, + 'order' => 1, + ], + [ + 'name' => '#special', + 'class' => 'special', + 'has_filter' => false, + 'order' => 2, + ], + [ + 'name' => '#supporter', + 'class' => 'supporter', + 'has_filter' => false, + 'order' => 3 + ] + ]); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + $schema = DB::getSchemaBuilder(); + + $schema->drop('community_categories'); + + // Recreate the old table, just in case + $schema->create('community_categories', function (Blueprint $table) { + $table->increments('id'); + + $table->string('name', 80); + + $table->string('name_safe', 80); + + $table->boolean('enabled')->default(1); + }); + } +} \ No newline at end of file diff --git a/public/css/n3ds/style.css b/public/css/n3ds/style.css index 33dc734..bfce712 100644 --- a/public/css/n3ds/style.css +++ b/public/css/n3ds/style.css @@ -5568,6 +5568,9 @@ ul + .headline { .headline-switch { background: #e60012; } +.headline-supporter { + background: #307fe2; +} #body #community-top #identified-user-banner { margin: 0 auto 8px; } diff --git a/resources/lang/en/community.php b/resources/lang/en/community.php index 614fe42..6a70324 100644 --- a/resources/lang/en/community.php +++ b/resources/lang/en/community.php @@ -26,7 +26,8 @@ ], ], 'new' => 'New Communities', - 'special' => 'Special', + 'special' => 'Special Communities', + 'supporter' => 'Supporter Communities', 'platforms' => [ '3ds' => '3DS Games', 'wiiu' => 'Wii U Games', diff --git a/src/Pages/CTR/Community.php b/src/Pages/CTR/Community.php index 9863200..2d92fdf 100644 --- a/src/Pages/CTR/Community.php +++ b/src/Pages/CTR/Community.php @@ -46,6 +46,52 @@ public function index() : string */ public function consoleIndex(string $page) : string { + + // Far simplier than a massice switch/case. + $console = [ + 'id' => $page, + 'name' => match ($page) { + '3ds' => '3DS', + 'wiiu' => 'Wii U', + 'switch' => 'Switch', + 'wii' => 'Wii', + 'ds' => 'DS', + default => 'Unknown', + } + ]; + + $categories_meta = DB::table('community_categories') + ->orderBy('order') + ->get(); + + $categories = []; + + foreach ($categories_meta as $category) { + // Name handler + $name = match ($category->name) { + '#new' => __('community.index.communities.new'), + '#special' => __('community.index.communities.special'), + '#supporter' => __('community.index.communities.supporter'), + default => $category->name, + }; + + // CSS class handler + $class = match ($category->class) { + '#console' => "headline-$page", + default => "headline-$category->class", + }; + + $categories[] = [ + 'name' => $name, + 'class' => $class, + 'has_filter' => boolval($category->has_filter), + 'titles' => [], + ]; + } + + return view('community/index', compact('console', 'categories')); + + /* $mappings = []; $console = []; $communities = []; @@ -134,7 +180,7 @@ public function consoleIndex(string $page) : string $communities['special']['more'] = true; } - return view('community/index', compact('console', 'communities')); + return view('community/index', compact('console', 'communities'));*/ } /** From dd7882ec6d740e77936673f75d075bc95884a138 Mon Sep 17 00:00:00 2001 From: Repflez Date: Mon, 30 Oct 2023 00:37:35 -0700 Subject: [PATCH 19/58] fix: fix invalid css from the ove to 053670cf --- public/css/n3ds/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/css/n3ds/style.css b/public/css/n3ds/style.css index bfce712..c3e88e7 100644 --- a/public/css/n3ds/style.css +++ b/public/css/n3ds/style.css @@ -4352,7 +4352,7 @@ ul + .headline { top: -6px; z-index: 2; left: 58px; - background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAHCAYAAAAxrNxjAAAAjUlEQVQYlV3OQQqDMBCF4X8kRVeeIdnkki1VobfKTbJReoSuYoWZboyEvt3wvoEnKSVqzAzgdZ4PEbk61yIzm2KMd4Cc8wEsFbuKVHWKMc7e+/o455zpum4REVyLQgiUUgAIIQBc2Knqs0XnTkopLTZZ1/Xrvb+1qEZEGIaBbdsOUdX3vu/jP2px3/efHwHnWT2afX3IAAAAAElFTkSuQmCC'') no-repeat 0 0; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAHCAYAAAAxrNxjAAAAjUlEQVQYlV3OQQqDMBCF4X8kRVeeIdnkki1VobfKTbJReoSuYoWZboyEvt3wvoEnKSVqzAzgdZ4PEbk61yIzm2KMd4Cc8wEsFbuKVHWKMc7e+/o455zpum4REVyLQgiUUgAIIQBc2Knqs0XnTkopLTZZ1/Xrvb+1qEZEGIaBbdsOUdX3vu/jP2px3/efHwHnWT2afX3IAAAAAElFTkSuQmCC') no-repeat 0 0; } #empathy-content .post-permalink-feeling-text { font-size: 12.48px; From afd5fcf3a3facbbeb8e1b8b147b7233cd0b358ac Mon Sep 17 00:00:00 2001 From: Repflez Date: Mon, 30 Oct 2023 21:12:06 -0700 Subject: [PATCH 20/58] feat: add community platforms migration --- ..._071807_add_community_platforms_column.php | 159 ++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 database/2023_10_30_071807_add_community_platforms_column.php diff --git a/database/2023_10_30_071807_add_community_platforms_column.php b/database/2023_10_30_071807_add_community_platforms_column.php new file mode 100644 index 0000000..eca31d3 --- /dev/null +++ b/database/2023_10_30_071807_add_community_platforms_column.php @@ -0,0 +1,159 @@ +table('communities', function (Blueprint $table) { + $table->set('platforms', [ + '3ds', + 'wiiu', + 'switch', + 'wii', + 'ds', + 'special', + 'supporter', + ]); + + $table->enum('title_type', [ + 'console', + 'virtual', + 'other' + ])->nullable(); + }); + + // Migrate old platform code to new platform column + $communities = DB::table('communities')->get(['id', 'platform', 'type']); + + foreach ($communities as $community) { + $platform = intval($community->platform); + $type = intval($community->type); + $platforms = match ($platform) { + 1 => ['3ds'], + 2 => ['wiiu'], + 3 => ['3ds','wiiu'], + 4 => ['switch'], + 5 => ['wiiu','switch'], + 6 => ['wii'], + 7 => ['ds'], + 8 => ['wii','ds'], + default => [], + }; + + + $title_type = match ($type) { + 0 => 'console', + 1 => 'virtual', + 2 => 'other', + default => null, + }; + + // Type 3 is special, add it to platforms instead + if ($type === 3) { + $platforms[] = 'special'; + } + + DB::table('communities') + ->where('id', intval($community->id)) + ->update([ + 'platforms' => implode(',', $platforms), + 'title_type' => $title_type + ]); + } + + $schema->table('communities', function (Blueprint $table) { + $table->dropColumn('platform'); + $table->dropColumn('type'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + $schema = DB::getSchemaBuilder(); + + $schema->table('communities', function (Blueprint $table) { + $table->integer('type')->unsigned()->default(0); + $table->integer('platform')->unsigned()->default(0); + }); + + // Rollback platform migration + $platforms = [ + 1 => ['3ds'], + 2 => ['wiiu'], + 3 => ['3ds','wiiu'], + 4 => ['switch'], + 5 => ['wiiu','switch'], + 6 => ['wii'], + 7 => ['ds'], + 8 => ['wii','ds'], + ]; + + // Do console migration first + foreach ($platforms as $old_platform => $new_platform) { + $communities = DB::table('communities') + ->whereRaw("FIND_IN_SET(?, `platforms`) > 0", implode(',', $new_platform)) + ->get(['id']); + + foreach ($communities as $community) { + DB::table('communities') + ->where('id', intval($community->id)) + ->update([ + 'platform' => $old_platform + ]); + } + } + + // Do types now + $new_types = [ + 0 => 'console', + 1 => 'virtual', + 2 => 'other', + ]; + + foreach ($new_types as $old_type => $new_type) { + $communities = DB::table('communities') + ->where('title_type', $new_type) + ->update([ + 'type' => $old_type + ]); + } + + // Do special communities now + $communities = DB::table('communities') + ->whereRaw("FIND_IN_SET(?, `platforms`) > 0", 'special') + ->get(['id']); + + foreach ($communities as $community) { + DB::table('communities') + ->where('id', intval($community->id)) + ->update([ + 'type' => 3 + ]); + } + + // Everything else that wasn't migrated will default to special community in the old platform type + DB::table('communities')->where('platform', 0)->where('type', 0)->update(['type' => 3]); + + // Finally delete the platforms and title types columns + $schema->table('communities', function (Blueprint $table) { + $table->dropColumn('platforms'); + $table->dropColumn('title_type'); + }); + } +} \ No newline at end of file From 4569c9cacd866741b2dc5ce0653d7508194396ca Mon Sep 17 00:00:00 2001 From: Repflez Date: Mon, 30 Oct 2023 21:12:49 -0700 Subject: [PATCH 21/58] core: decouple platform strings --- resources/lang/en/community.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/lang/en/community.php b/resources/lang/en/community.php index 6a70324..acea5a4 100644 --- a/resources/lang/en/community.php +++ b/resources/lang/en/community.php @@ -31,13 +31,12 @@ 'platforms' => [ '3ds' => '3DS Games', 'wiiu' => 'Wii U Games', - 'wiiu-3ds' => 'Wii U Games・3DS Games', 'switch' => 'Switch Games', - 'switch-wiiu' => 'Switch Games・Wii U Games', 'wii' => 'Wii Games', 'ds' => 'DS Games', - 'wii-ds' => 'Wii Games・DS Games', 'special' => 'Special Community', + 'supporter' => 'Supporter Community', + 'separator' => '・', ], 'empty' => 'There are no communities in this category.', 'more' => 'Show More', From dda045e9b486563fbe11397d9685a441f87065a9 Mon Sep 17 00:00:00 2001 From: Repflez Date: Mon, 30 Oct 2023 21:30:17 -0700 Subject: [PATCH 22/58] feat: new (nonworking) community code for index. --- resources/views/3ds/community/index.twig | 141 +++++++---------------- src/Pages/CTR/Community.php | 32 ++++- 2 files changed, 69 insertions(+), 104 deletions(-) diff --git a/resources/views/3ds/community/index.twig b/resources/views/3ds/community/index.twig index 5a05fbf..de6c4c9 100644 --- a/resources/views/3ds/community/index.twig +++ b/resources/views/3ds/community/index.twig @@ -28,117 +28,58 @@
-
-

{{ __('community.index.communities.new') }}

-
-
- + {% for category in categories %} +
+

{{ category.name }}

+ {% if category.has_filter %} +
+
+ +
+ {% endif %}
-
- {% if communities.newest is not empty %} + {% if category.titles is not empty %}
    - {% for community in communities.newest.titles %} - {% set id,title_id = hashid(community.id), hashid(community.title_id) %} -
  • - - - - -
    - {{ community.name }} - {% if community.platform == 1 %} - - {{ __('community.index.communities.platforms.3ds') }} - {% elseif community.platform == 2 %} - - {{ __('community.index.communities.platforms.wiiu') }} - {% elseif community.platform == 3 %} - - {{ __('community.index.communities.platforms.wiiu-3ds') }} - {% elseif community.platform == 4 %} - - {{ __('community.index.communities.platforms.switch') }} - {% elseif community.platform == 5 %} - - {{ __('community.index.communities.platforms.switch-wiiu') }} - {% elseif community.platform == 6 %} - - {{ __('community.index.communities.platforms.wii') }} - {% elseif community.platform == 7 %} - - {{ __('community.index.communities.platforms.ds') }} - {% elseif community.platform == 8 %} - - {{ __('community.index.communities.platforms.wii-ds') }} + {% for title in category.titles %} + {% set id,title_id = hashid(title.id), hashid(title.title_id) %} +
  • + + + + +
    + {{ title.name }} + {% if title.plarform_tag is not empty %} + {% endif %} -
    -
  • - {% endfor %} -
- {% else %} -
-
-

{{ __('community.index.communities.empty') }}

-
-
- {% endif %} - {% if communities.newest.more %} - {{ __('community.index.communities.more') }} - {% endif %} -

{{ __('community.index.communities.special') }}

- {% if communities.special is not empty %} -
    - {% for community in communities.special.titles %} - {% set id,title_id = hashid(community.id), hashid(community.title_id) %} -
  • - - - - -
    - {{ community.name }} - {% if community.platform == 1 %} - - {% elseif community.platform == 2 %} - - {% elseif community.platform == 3 %} - - {% elseif community.platform == 4 %} - - {% elseif community.platform == 5 %} - - {% elseif community.platform == 6 %} - - {% elseif community.platform == 7 %} - - {% elseif community.platform == 8 %} - + {% if title.platform_text is not empty %} + {{ title.platform_text }} {% endif %} - {{ __('community.index.communities.special') }} -
    -
  • +
+ {% endfor %} - - {% else %} + + {% if category.has_more %} + {{ __('community.index.communities.more') }} + {% endif %} + {% else %}

{{ __('community.index.communities.empty') }}

- {% endif %} - {% if communities.special.more %} - {{ __('community.index.communities.more') }} - {% endif %} + {% endif %} + {% endfor %}