From 639e9859edbf8b7a3c0fc66785af228af3f6be23 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 15 Nov 2021 19:33:52 -0700 Subject: [PATCH 1/3] Add AutolinkService --- app/Services/AutolinkService.php | 54 ++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 app/Services/AutolinkService.php diff --git a/app/Services/AutolinkService.php b/app/Services/AutolinkService.php new file mode 100644 index 000000000..f0f3278ff --- /dev/null +++ b/app/Services/AutolinkService.php @@ -0,0 +1,54 @@ +contains('@'); + $profile = Profile::whereUsername($username)->first(); + if($profile) { + if($profile->domain != null) { + $instance = InstanceService::getByDomain($profile->domain); + if($instance && $instance->banned == true) { + return false; + } + } + return true; + } else { + if($remote) { + $parts = explode('@', $username); + $domain = last($parts); + $instance = InstanceService::getByDomain($domain); + + if($instance) { + if($instance->banned == true) { + return false; + } else { + $wf = WebfingerUrl::generateWebfingerUrl($username); + $res = Http::head($wf); + return $res->ok(); + } + } else { + $wf = WebfingerUrl::generateWebfingerUrl($username); + $res = Http::head($wf); + return $res->ok(); + } + } + } + return false; + }); + } +} From ed62a09f9a4b99770778eaac3819aac6e82fe420 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 15 Nov 2021 19:35:10 -0700 Subject: [PATCH 2/3] Update lexer utils --- app/Util/Lexer/Autolink.php | 47 +++++++++++++++++++++++++++++++++++- app/Util/Lexer/Extractor.php | 24 +++++++++++++++--- 2 files changed, 67 insertions(+), 4 deletions(-) diff --git a/app/Util/Lexer/Autolink.php b/app/Util/Lexer/Autolink.php index 4aa38d7f1..c40f552f4 100755 --- a/app/Util/Lexer/Autolink.php +++ b/app/Util/Lexer/Autolink.php @@ -10,6 +10,7 @@ namespace App\Util\Lexer; use Illuminate\Support\Str; +use App\Services\AutolinkService; /** * Twitter Autolink Class. @@ -140,6 +141,12 @@ class Autolink extends Regex */ protected $extractor = null; + /** + * @var autolinkActiveUsersOnly + */ + protected $autolinkActiveUsersOnly = false; + + /** * Provides fluent method chaining. * @@ -185,6 +192,30 @@ class Autolink extends Regex $this->url_base_cash = config('app.url').'/search?q=%24'; } + public function setBaseUserPath($path = '/') + { + $this->url_base_user = config('app.url') . $path; + $this->target = null; + $this->external = null; + return $this; + } + + public function setBaseHashPath($path = '/discover/tags/') + { + $this->url_base_hash = config('app.url') . $path; + $this->target = null; + $this->external = null; + return $this; + } + + public function setAutolinkActiveUsersOnly($active) + { + $this->autolinkActiveUsersOnly = $active; + $this->target = null; + $this->external = null; + return $this; + } + /** * CSS class for auto-linked URLs. * @@ -529,6 +560,14 @@ class Autolink extends Regex } $entities = $this->extractor->extractMentionsOrListsWithIndices($tweet); + if($this->autolinkActiveUsersOnly == true) { + $entities = collect($entities) + ->filter(function($entity) { + return AutolinkService::mentionedUsernameExists($entity['screen_name']); + }) + ->toArray(); + } + return $this->autoLinkEntities($tweet, $entities); } @@ -707,8 +746,14 @@ class Autolink extends Regex public function linkToMentionAndList($entity) { $attributes = []; - $screen_name = $entity['screen_name']; + + if($this->autolinkActiveUsersOnly == true) { + if(!AutolinkService::mentionedUsernameExists($screen_name)) { + return Str::of($screen_name)->startsWith('@') ? $screen_name : "@{$screen_name}"; + } + } + if (!empty($entity['list_slug'])) { // Replace the list and username $linkText = Str::startsWith($screen_name, '@') ? $screen_name : '@'.$screen_name; diff --git a/app/Util/Lexer/Extractor.php b/app/Util/Lexer/Extractor.php index d4536a846..364a1c573 100755 --- a/app/Util/Lexer/Extractor.php +++ b/app/Util/Lexer/Extractor.php @@ -11,6 +11,7 @@ namespace App\Util\Lexer; use Illuminate\Support\Str; use App\Status; +use App\Services\AutolinkService; /** * Twitter Extractor Class. @@ -33,6 +34,7 @@ class Extractor extends Regex * @var bool */ protected $extractURLWithoutProtocol = true; + protected $activeUsersOnly = false; /** * Provides fluent method chaining. @@ -48,6 +50,12 @@ class Extractor extends Regex return new self($tweet); } + public function setActiveUsersOnly($active) + { + $this->activeUsersOnly = $active; + return $this; + } + /** * Reads in a tweet to be parsed and extracts elements from it. * @@ -172,6 +180,12 @@ class Extractor extends Regex $mentionsWithIndices = $this->extractMentionsOrListsWithIndices($tweet); foreach ($mentionsWithIndices as $mentionWithIndex) { + if($this->activeUsersOnly == true) { + if(!AutolinkService::mentionedUsernameExists($mentionWithIndex['screen_name'])) { + continue; + } + } + $screen_name = mb_strtolower($mentionWithIndex['screen_name']); if (empty($screen_name) or in_array($screen_name, $usernamesOnly)) { continue; @@ -452,9 +466,13 @@ class Extractor extends Regex $start_position = $at[1] > 0 ? StringUtils::strlen(substr($tweet, 0, $at[1])) : $at[1]; $end_position = $start_position + StringUtils::strlen($at[0]) + StringUtils::strlen($username[0]); $screenname = trim($all[0]) == '@'.$username[0] ? $username[0] : trim($all[0]); - if(config('app.env') == 'production' && \App\Profile::whereUsername($screenname)->exists() == false) { - continue; - } + + if($this->activeUsersOnly == true) { + if(!AutolinkService::mentionedUsernameExists($screenname)) { + continue; + } + } + $entity = [ 'screen_name' => $screenname, 'list_slug' => $list_slug[0], From f4af875a1c815edebada0b9fbe14f5c559236379 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 15 Nov 2021 19:47:47 -0700 Subject: [PATCH 3/3] Update composer deps --- composer.json | 4 +- composer.lock | 355 +++++++++++++++++++++++++------------------------- 2 files changed, 178 insertions(+), 181 deletions(-) diff --git a/composer.json b/composer.json index b952e48cb..5f1ee08b7 100644 --- a/composer.json +++ b/composer.json @@ -5,7 +5,7 @@ "license": "AGPL-3.0-only", "type": "project", "require": { - "php": "^7.3", + "php": "^7.3|^7.4|^8.0", "ext-bcmath": "*", "ext-ctype": "*", "ext-curl": "*", @@ -13,7 +13,7 @@ "ext-json": "*", "ext-mbstring": "*", "ext-openssl": "*", - "beyondcode/laravel-self-diagnosis": "^1.0.2", + "beyondcode/laravel-self-diagnosis": "^1.0", "brick/math": "^0.8", "buzz/laravel-h-captcha": "1.0.2", "doctrine/dbal": "^2.7", diff --git a/composer.lock b/composer.lock index 4c6f047ca..a7e2dda1b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "eab416feda81875b20d5df2399f9ed86", + "content-hash": "92b7b407f9a1f4b616268651f2eaf39b", "packages": [ { "name": "alchemy/binary-driver", @@ -180,16 +180,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.198.8", + "version": "3.203.0", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "d235e1ed93a34f0e290589c85cf97dd963a721c9" + "reference": "498f2466114bc8f3583b1db6943a3e291dd9ee70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/d235e1ed93a34f0e290589c85cf97dd963a721c9", - "reference": "d235e1ed93a34f0e290589c85cf97dd963a721c9", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/498f2466114bc8f3583b1db6943a3e291dd9ee70", + "reference": "498f2466114bc8f3583b1db6943a3e291dd9ee70", "shasum": "" }, "require": { @@ -199,7 +199,7 @@ "ext-simplexml": "*", "guzzlehttp/guzzle": "^5.3.3|^6.2.1|^7.0", "guzzlehttp/promises": "^1.4.0", - "guzzlehttp/psr7": "^1.7.0", + "guzzlehttp/psr7": "^1.7.0|^2.0", "mtdowling/jmespath.php": "^2.6", "php": ">=5.5" }, @@ -265,9 +265,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.198.8" + "source": "https://github.com/aws/aws-sdk-php/tree/3.203.0" }, - "time": "2021-10-19T18:15:41+00:00" + "time": "2021-11-15T20:32:57+00:00" }, { "name": "bacon/bacon-qr-code", @@ -806,16 +806,16 @@ }, { "name": "doctrine/dbal", - "version": "2.13.4", + "version": "2.13.5", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "2411a55a2a628e6d8dd598388ab13474802c7b6e" + "reference": "d92ddb260547c2a7b650ff140f744eb6f395d8fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/2411a55a2a628e6d8dd598388ab13474802c7b6e", - "reference": "2411a55a2a628e6d8dd598388ab13474802c7b6e", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/d92ddb260547c2a7b650ff140f744eb6f395d8fc", + "reference": "d92ddb260547c2a7b650ff140f744eb6f395d8fc", "shasum": "" }, "require": { @@ -828,13 +828,13 @@ "require-dev": { "doctrine/coding-standard": "9.0.0", "jetbrains/phpstorm-stubs": "2021.1", - "phpstan/phpstan": "0.12.99", + "phpstan/phpstan": "1.1.1", "phpunit/phpunit": "^7.5.20|^8.5|9.5.10", "psalm/plugin-phpunit": "0.16.1", - "squizlabs/php_codesniffer": "3.6.0", + "squizlabs/php_codesniffer": "3.6.1", "symfony/cache": "^4.4", "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", - "vimeo/psalm": "4.10.0" + "vimeo/psalm": "4.12.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -895,7 +895,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/2.13.4" + "source": "https://github.com/doctrine/dbal/tree/2.13.5" }, "funding": [ { @@ -911,7 +911,7 @@ "type": "tidelift" } ], - "time": "2021-10-02T15:59:26+00:00" + "time": "2021-11-11T16:27:36+00:00" }, { "name": "doctrine/deprecations", @@ -1052,34 +1052,30 @@ }, { "name": "doctrine/inflector", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210" + "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210", - "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", + "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^7.0", - "phpstan/phpstan": "^0.11", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-strict-rules": "^0.11", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "doctrine/coding-standard": "^8.2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "vimeo/psalm": "^4.10" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" @@ -1127,7 +1123,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.x" + "source": "https://github.com/doctrine/inflector/tree/2.0.4" }, "funding": [ { @@ -1143,7 +1139,7 @@ "type": "tidelift" } ], - "time": "2020-05-29T15:13:26+00:00" + "time": "2021-10-22T20:16:43+00:00" }, { "name": "doctrine/lexer", @@ -1515,16 +1511,16 @@ }, { "name": "firebase/php-jwt", - "version": "v5.4.0", + "version": "v5.5.1", "source": { "type": "git", "url": "https://github.com/firebase/php-jwt.git", - "reference": "d2113d9b2e0e349796e72d2a63cf9319100382d2" + "reference": "83b609028194aa042ea33b5af2d41a7427de80e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/firebase/php-jwt/zipball/d2113d9b2e0e349796e72d2a63cf9319100382d2", - "reference": "d2113d9b2e0e349796e72d2a63cf9319100382d2", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/83b609028194aa042ea33b5af2d41a7427de80e6", + "reference": "83b609028194aa042ea33b5af2d41a7427de80e6", "shasum": "" }, "require": { @@ -1566,9 +1562,9 @@ ], "support": { "issues": "https://github.com/firebase/php-jwt/issues", - "source": "https://github.com/firebase/php-jwt/tree/v5.4.0" + "source": "https://github.com/firebase/php-jwt/tree/v5.5.1" }, - "time": "2021-06-23T19:00:23+00:00" + "time": "2021-11-08T20:18:51+00:00" }, { "name": "fruitcake/laravel-cors", @@ -1818,16 +1814,16 @@ }, { "name": "guzzlehttp/promises", - "version": "1.5.0", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0" + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/136a635e2b4a49b9d79e9c8fee267ffb257fdba0", - "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0", + "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", "shasum": "" }, "require": { @@ -1882,7 +1878,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.0" + "source": "https://github.com/guzzle/promises/tree/1.5.1" }, "funding": [ { @@ -1898,7 +1894,7 @@ "type": "tidelift" } ], - "time": "2021-10-07T13:05:22+00:00" + "time": "2021-10-22T20:56:57+00:00" }, { "name": "guzzlehttp/psr7", @@ -2096,16 +2092,16 @@ }, { "name": "jaybizzle/crawler-detect", - "version": "v1.2.107", + "version": "v1.2.108", "source": { "type": "git", "url": "https://github.com/JayBizzle/Crawler-Detect.git", - "reference": "62b9055b555be9e1479d7c37515d7c58975c2aa4" + "reference": "69a38c09f99ee056e7cca9fe7c8b1952fd62b837" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/62b9055b555be9e1479d7c37515d7c58975c2aa4", - "reference": "62b9055b555be9e1479d7c37515d7c58975c2aa4", + "url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/69a38c09f99ee056e7cca9fe7c8b1952fd62b837", + "reference": "69a38c09f99ee056e7cca9fe7c8b1952fd62b837", "shasum": "" }, "require": { @@ -2142,9 +2138,9 @@ ], "support": { "issues": "https://github.com/JayBizzle/Crawler-Detect/issues", - "source": "https://github.com/JayBizzle/Crawler-Detect/tree/v1.2.107" + "source": "https://github.com/JayBizzle/Crawler-Detect/tree/v1.2.108" }, - "time": "2021-10-12T16:06:07+00:00" + "time": "2021-10-21T18:55:50+00:00" }, { "name": "jenssegers/agent", @@ -2231,16 +2227,16 @@ }, { "name": "laravel/framework", - "version": "v8.65.0", + "version": "v8.70.2", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "6db59afadca28dfdb2f719e7d79f93885ede17e4" + "reference": "dec9524cd0f9fa35a6eb8e25d0b40f8bbc8ec225" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/6db59afadca28dfdb2f719e7d79f93885ede17e4", - "reference": "6db59afadca28dfdb2f719e7d79f93885ede17e4", + "url": "https://api.github.com/repos/laravel/framework/zipball/dec9524cd0f9fa35a6eb8e25d0b40f8bbc8ec225", + "reference": "dec9524cd0f9fa35a6eb8e25d0b40f8bbc8ec225", "shasum": "" }, "require": { @@ -2254,14 +2250,14 @@ "league/commonmark": "^1.3|^2.0.2", "league/flysystem": "^1.1", "monolog/monolog": "^2.0", - "nesbot/carbon": "^2.31", + "nesbot/carbon": "^2.53.1", "opis/closure": "^3.6", "php": "^7.3|^8.0", "psr/container": "^1.0", "psr/log": "^1.0 || ^2.0", "psr/simple-cache": "^1.0", "ramsey/uuid": "^4.2.2", - "swiftmailer/swiftmailer": "^6.0", + "swiftmailer/swiftmailer": "^6.3", "symfony/console": "^5.1.4", "symfony/error-handler": "^5.1.4", "symfony/finder": "^5.1.4", @@ -2316,22 +2312,23 @@ "illuminate/view": "self.version" }, "require-dev": { - "aws/aws-sdk-php": "^3.189.0", + "aws/aws-sdk-php": "^3.198.1", "doctrine/dbal": "^2.13.3|^3.1.2", - "filp/whoops": "^2.8", + "filp/whoops": "^2.14.3", "guzzlehttp/guzzle": "^6.5.5|^7.0.1", "league/flysystem-cached-adapter": "^1.0", "mockery/mockery": "^1.4.4", "orchestra/testbench-core": "^6.23", "pda/pheanstalk": "^4.0", "phpunit/phpunit": "^8.5.19|^9.5.8", - "predis/predis": "^1.1.2", + "predis/predis": "^1.1.9", "symfony/cache": "^5.1.4" }, "suggest": { - "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.189.0).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.198.1).", "brianium/paratest": "Required to run tests in parallel (^6.0).", "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.2).", + "ext-bcmath": "Required to use the multiple_of validation rule.", "ext-ftp": "Required to use the Flysystem FTP driver.", "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", "ext-memcached": "Required to use the memcache cache driver.", @@ -2339,7 +2336,7 @@ "ext-posix": "Required to use all features of the queue worker.", "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", - "filp/whoops": "Required for friendly error pages in development (^2.8).", + "filp/whoops": "Required for friendly error pages in development (^2.14.3).", "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).", "laravel/tinker": "Required to use the tinker console command (^2.0).", "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).", @@ -2349,7 +2346,7 @@ "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", "phpunit/phpunit": "Required to use assertions and run tests (^8.5.19|^9.5.8).", - "predis/predis": "Required to use the predis connector (^1.1.2).", + "predis/predis": "Required to use the predis connector (^1.1.9).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0).", "symfony/cache": "Required to PSR-6 cache bridge (^5.1.4).", @@ -2398,7 +2395,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-10-19T13:59:41+00:00" + "time": "2021-11-09T22:48:33+00:00" }, { "name": "laravel/helpers", @@ -2458,16 +2455,16 @@ }, { "name": "laravel/horizon", - "version": "v5.7.14", + "version": "v5.7.15", "source": { "type": "git", "url": "https://github.com/laravel/horizon.git", - "reference": "640df7c65c464f83cda66781636d816a0992b0b1" + "reference": "7bdc99af890966a683dbbfd8e69c8449d8d491b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/horizon/zipball/640df7c65c464f83cda66781636d816a0992b0b1", - "reference": "640df7c65c464f83cda66781636d816a0992b0b1", + "url": "https://api.github.com/repos/laravel/horizon/zipball/7bdc99af890966a683dbbfd8e69c8449d8d491b6", + "reference": "7bdc99af890966a683dbbfd8e69c8449d8d491b6", "shasum": "" }, "require": { @@ -2529,22 +2526,22 @@ ], "support": { "issues": "https://github.com/laravel/horizon/issues", - "source": "https://github.com/laravel/horizon/tree/v5.7.14" + "source": "https://github.com/laravel/horizon/tree/v5.7.15" }, - "time": "2021-10-12T15:20:07+00:00" + "time": "2021-10-26T15:50:24+00:00" }, { "name": "laravel/passport", - "version": "v10.1.4", + "version": "v10.2.0", "source": { "type": "git", "url": "https://github.com/laravel/passport.git", - "reference": "c889d9c464fea409dffe283e9c4e7054ef7aca6f" + "reference": "1c69a010930a3ce8db348967d8ad9585be4d7d4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/passport/zipball/c889d9c464fea409dffe283e9c4e7054ef7aca6f", - "reference": "c889d9c464fea409dffe283e9c4e7054ef7aca6f", + "url": "https://api.github.com/repos/laravel/passport/zipball/1c69a010930a3ce8db348967d8ad9585be4d7d4d", + "reference": "1c69a010930a3ce8db348967d8ad9585be4d7d4d", "shasum": "" }, "require": { @@ -2608,7 +2605,7 @@ "issues": "https://github.com/laravel/passport/issues", "source": "https://github.com/laravel/passport" }, - "time": "2021-10-19T15:25:10+00:00" + "time": "2021-11-02T16:45:51+00:00" }, { "name": "laravel/serializable-closure", @@ -3649,16 +3646,16 @@ }, { "name": "nesbot/carbon", - "version": "2.53.1", + "version": "2.54.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "f4655858a784988f880c1b8c7feabbf02dfdf045" + "reference": "eed83939f1aed3eee517d03a33f5ec587ac529b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/f4655858a784988f880c1b8c7feabbf02dfdf045", - "reference": "f4655858a784988f880c1b8c7feabbf02dfdf045", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/eed83939f1aed3eee517d03a33f5ec587ac529b5", + "reference": "eed83939f1aed3eee517d03a33f5ec587ac529b5", "shasum": "" }, "require": { @@ -3669,6 +3666,7 @@ "symfony/translation": "^3.4 || ^4.0 || ^5.0" }, "require-dev": { + "doctrine/dbal": "^2.0 || ^3.0", "doctrine/orm": "^2.7", "friendsofphp/php-cs-fixer": "^3.0", "kylekatarnls/multi-tester": "^2.0", @@ -3739,7 +3737,7 @@ "type": "tidelift" } ], - "time": "2021-09-06T09:29:23+00:00" + "time": "2021-11-01T21:22:20+00:00" }, { "name": "neutron/temporary-filesystem", @@ -3787,16 +3785,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.13.0", + "version": "v4.13.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "50953a2691a922aa1769461637869a0a2faa3f53" + "reference": "63a79e8daa781cac14e5195e63ed8ae231dd10fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/50953a2691a922aa1769461637869a0a2faa3f53", - "reference": "50953a2691a922aa1769461637869a0a2faa3f53", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/63a79e8daa781cac14e5195e63ed8ae231dd10fd", + "reference": "63a79e8daa781cac14e5195e63ed8ae231dd10fd", "shasum": "" }, "require": { @@ -3837,9 +3835,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.1" }, - "time": "2021-09-20T12:20:58+00:00" + "time": "2021-11-03T20:52:16+00:00" }, { "name": "nyholm/psr7", @@ -4398,16 +4396,16 @@ }, { "name": "phpseclib/phpseclib", - "version": "2.0.33", + "version": "2.0.34", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "fb53b7889497ec7c1362c94e61d8127ac67ea094" + "reference": "98a6fe587f3481aea319eef7e656d02cfe1675ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/fb53b7889497ec7c1362c94e61d8127ac67ea094", - "reference": "fb53b7889497ec7c1362c94e61d8127ac67ea094", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/98a6fe587f3481aea319eef7e656d02cfe1675ec", + "reference": "98a6fe587f3481aea319eef7e656d02cfe1675ec", "shasum": "" }, "require": { @@ -4487,7 +4485,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/2.0.33" + "source": "https://github.com/phpseclib/phpseclib/tree/2.0.34" }, "funding": [ { @@ -4503,7 +4501,7 @@ "type": "tidelift" } ], - "time": "2021-08-16T04:20:12+00:00" + "time": "2021-10-27T02:46:30+00:00" }, { "name": "pixelfed/fractal", @@ -5916,16 +5914,16 @@ }, { "name": "symfony/console", - "version": "v5.3.7", + "version": "v5.3.10", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "8b1008344647462ae6ec57559da166c2bfa5e16a" + "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/8b1008344647462ae6ec57559da166c2bfa5e16a", - "reference": "8b1008344647462ae6ec57559da166c2bfa5e16a", + "url": "https://api.github.com/repos/symfony/console/zipball/d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3", + "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3", "shasum": "" }, "require": { @@ -5995,7 +5993,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.3.7" + "source": "https://github.com/symfony/console/tree/v5.3.10" }, "funding": [ { @@ -6011,7 +6009,7 @@ "type": "tidelift" } ], - "time": "2021-08-25T20:02:16+00:00" + "time": "2021-10-26T09:30:15+00:00" }, { "name": "symfony/css-selector", @@ -6505,16 +6503,16 @@ }, { "name": "symfony/http-foundation", - "version": "v5.3.7", + "version": "v5.3.10", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "e36c8e5502b4f3f0190c675f1c1f1248a64f04e5" + "reference": "9f34f02e8a5fdc7a56bafe011cea1ce97300e54c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e36c8e5502b4f3f0190c675f1c1f1248a64f04e5", - "reference": "e36c8e5502b4f3f0190c675f1c1f1248a64f04e5", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9f34f02e8a5fdc7a56bafe011cea1ce97300e54c", + "reference": "9f34f02e8a5fdc7a56bafe011cea1ce97300e54c", "shasum": "" }, "require": { @@ -6558,7 +6556,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.3.7" + "source": "https://github.com/symfony/http-foundation/tree/v5.3.10" }, "funding": [ { @@ -6574,7 +6572,7 @@ "type": "tidelift" } ], - "time": "2021-08-27T11:20:35+00:00" + "time": "2021-10-11T15:41:55+00:00" }, { "name": "symfony/http-kernel", @@ -7647,32 +7645,32 @@ }, { "name": "symfony/psr-http-message-bridge", - "version": "v2.1.1", + "version": "v2.1.2", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "c9012994c4b4fb23e7c57dd86b763a417a04feba" + "reference": "22b37c8a3f6b5d94e9cdbd88e1270d96e2f97b34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/c9012994c4b4fb23e7c57dd86b763a417a04feba", - "reference": "c9012994c4b4fb23e7c57dd86b763a417a04feba", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/22b37c8a3f6b5d94e9cdbd88e1270d96e2f97b34", + "reference": "22b37c8a3f6b5d94e9cdbd88e1270d96e2f97b34", "shasum": "" }, "require": { "php": ">=7.1", "psr/http-message": "^1.0", - "symfony/http-foundation": "^4.4 || ^5.0" + "symfony/http-foundation": "^4.4 || ^5.0 || ^6.0" }, "require-dev": { "nyholm/psr7": "^1.1", "psr/log": "^1.1 || ^2 || ^3", - "symfony/browser-kit": "^4.4 || ^5.0", - "symfony/config": "^4.4 || ^5.0", - "symfony/event-dispatcher": "^4.4 || ^5.0", - "symfony/framework-bundle": "^4.4 || ^5.0", - "symfony/http-kernel": "^4.4 || ^5.0", - "symfony/phpunit-bridge": "^4.4.19 || ^5.2" + "symfony/browser-kit": "^4.4 || ^5.0 || ^6.0", + "symfony/config": "^4.4 || ^5.0 || ^6.0", + "symfony/event-dispatcher": "^4.4 || ^5.0 || ^6.0", + "symfony/framework-bundle": "^4.4 || ^5.0 || ^6.0", + "symfony/http-kernel": "^4.4 || ^5.0 || ^6.0", + "symfony/phpunit-bridge": "^5.4@dev || ^6.0" }, "suggest": { "nyholm/psr7": "For a super lightweight PSR-7/17 implementation" @@ -7715,7 +7713,7 @@ ], "support": { "issues": "https://github.com/symfony/psr-http-message-bridge/issues", - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.1.1" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.1.2" }, "funding": [ { @@ -7731,7 +7729,7 @@ "type": "tidelift" } ], - "time": "2021-07-27T17:25:39+00:00" + "time": "2021-11-05T13:13:39+00:00" }, { "name": "symfony/routing", @@ -7904,16 +7902,16 @@ }, { "name": "symfony/string", - "version": "v5.3.7", + "version": "v5.3.10", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "8d224396e28d30f81969f083a58763b8b9ceb0a5" + "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/8d224396e28d30f81969f083a58763b8b9ceb0a5", - "reference": "8d224396e28d30f81969f083a58763b8b9ceb0a5", + "url": "https://api.github.com/repos/symfony/string/zipball/d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c", + "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c", "shasum": "" }, "require": { @@ -7967,7 +7965,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.3.7" + "source": "https://github.com/symfony/string/tree/v5.3.10" }, "funding": [ { @@ -7983,20 +7981,20 @@ "type": "tidelift" } ], - "time": "2021-08-26T08:00:08+00:00" + "time": "2021-10-27T18:21:46+00:00" }, { "name": "symfony/translation", - "version": "v5.3.9", + "version": "v5.3.10", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "6e69f3551c1a3356cf6ea8d019bf039a0f8b6886" + "reference": "6ef197aea2ac8b9cd63e0da7522b3771714035aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/6e69f3551c1a3356cf6ea8d019bf039a0f8b6886", - "reference": "6e69f3551c1a3356cf6ea8d019bf039a0f8b6886", + "url": "https://api.github.com/repos/symfony/translation/zipball/6ef197aea2ac8b9cd63e0da7522b3771714035aa", + "reference": "6ef197aea2ac8b9cd63e0da7522b3771714035aa", "shasum": "" }, "require": { @@ -8062,7 +8060,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.3.9" + "source": "https://github.com/symfony/translation/tree/v5.3.10" }, "funding": [ { @@ -8078,7 +8076,7 @@ "type": "tidelift" } ], - "time": "2021-08-26T08:22:53+00:00" + "time": "2021-10-10T06:43:24+00:00" }, { "name": "symfony/translation-contracts", @@ -8160,16 +8158,16 @@ }, { "name": "symfony/var-dumper", - "version": "v5.3.8", + "version": "v5.3.10", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "eaaea4098be1c90c8285543e1356a09c8aa5c8da" + "reference": "875432adb5f5570fff21036fd22aee244636b7d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/eaaea4098be1c90c8285543e1356a09c8aa5c8da", - "reference": "eaaea4098be1c90c8285543e1356a09c8aa5c8da", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/875432adb5f5570fff21036fd22aee244636b7d1", + "reference": "875432adb5f5570fff21036fd22aee244636b7d1", "shasum": "" }, "require": { @@ -8228,7 +8226,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.3.8" + "source": "https://github.com/symfony/var-dumper/tree/v5.3.10" }, "funding": [ { @@ -8244,7 +8242,7 @@ "type": "tidelift" } ], - "time": "2021-09-24T15:59:58+00:00" + "time": "2021-10-26T09:30:15+00:00" }, { "name": "tightenco/collect", @@ -8355,16 +8353,16 @@ }, { "name": "vlucas/phpdotenv", - "version": "v5.3.1", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "accaddf133651d4b5cf81a119f25296736ffc850" + "reference": "d4394d044ed69a8f244f3445bcedf8a0d7fe2403" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/accaddf133651d4b5cf81a119f25296736ffc850", - "reference": "accaddf133651d4b5cf81a119f25296736ffc850", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/d4394d044ed69a8f244f3445bcedf8a0d7fe2403", + "reference": "d4394d044ed69a8f244f3445bcedf8a0d7fe2403", "shasum": "" }, "require": { @@ -8387,7 +8385,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.3-dev" + "dev-master": "5.4-dev" } }, "autoload": { @@ -8417,7 +8415,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.3.1" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.4.0" }, "funding": [ { @@ -8429,7 +8427,7 @@ "type": "tidelift" } ], - "time": "2021-10-02T19:24:42+00:00" + "time": "2021-11-10T01:08:39+00:00" }, { "name": "voku/portable-ascii", @@ -8567,16 +8565,16 @@ "packages-dev": [ { "name": "brianium/paratest", - "version": "v6.3.1", + "version": "v6.3.2", "source": { "type": "git", "url": "https://github.com/paratestphp/paratest.git", - "reference": "3d81e35876f6497467310b123583cca6bd4c38f2" + "reference": "5843dced0fb11c67fa3863e9ad40cfc319c32f33" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/3d81e35876f6497467310b123583cca6bd4c38f2", - "reference": "3d81e35876f6497467310b123583cca6bd4c38f2", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/5843dced0fb11c67fa3863e9ad40cfc319c32f33", + "reference": "5843dced0fb11c67fa3863e9ad40cfc319c32f33", "shasum": "" }, "require": { @@ -8585,28 +8583,28 @@ "ext-reflection": "*", "ext-simplexml": "*", "php": "^7.3 || ^8.0", - "phpunit/php-code-coverage": "^9.2.6", + "phpunit/php-code-coverage": "^9.2.7", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-timer": "^5.0.3", - "phpunit/phpunit": "^9.5.8", + "phpunit/phpunit": "^9.5.10", "sebastian/environment": "^5.1.3", - "symfony/console": "^4.4.23 || ^5.3.6", - "symfony/process": "^4.4.22 || ^5.3.4" + "symfony/console": "^4.4.30 || ^5.3.7", + "symfony/process": "^4.4.30 || ^5.3.7" }, "require-dev": { "doctrine/coding-standard": "^9.0.0", - "ekino/phpstan-banned-code": "^0.4.0", + "ekino/phpstan-banned-code": "^0.5.0", "ergebnis/phpstan-rules": "^0.15.3", "ext-posix": "*", - "infection/infection": "^0.24", - "phpstan/phpstan": "^0.12.94", + "infection/infection": "^0.25.3", + "phpstan/phpstan": "^0.12.99", "phpstan/phpstan-deprecation-rules": "^0.12.6", - "phpstan/phpstan-phpunit": "^0.12.21", - "phpstan/phpstan-strict-rules": "^0.12.10", + "phpstan/phpstan-phpunit": "^0.12.22", + "phpstan/phpstan-strict-rules": "^0.12.11", "squizlabs/php_codesniffer": "^3.6.0", "symfony/filesystem": "^5.3.4", "thecodingmachine/phpstan-strict-rules": "^0.12.1", - "vimeo/psalm": "^4.9.2" + "vimeo/psalm": "^4.10.0" }, "bin": [ "bin/paratest" @@ -8645,7 +8643,7 @@ ], "support": { "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v6.3.1" + "source": "https://github.com/paratestphp/paratest/tree/v6.3.2" }, "funding": [ { @@ -8657,7 +8655,7 @@ "type": "paypal" } ], - "time": "2021-08-10T07:38:58+00:00" + "time": "2021-11-03T10:16:06+00:00" }, { "name": "doctrine/instantiator", @@ -8795,16 +8793,16 @@ }, { "name": "facade/ignition", - "version": "2.15.0", + "version": "2.16.0", "source": { "type": "git", "url": "https://github.com/facade/ignition.git", - "reference": "3ee6e94815462bcf09bca0efc1c9069685df8da3" + "reference": "23400e6cc565c9dcae2c53704b4de1c4870c0697" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facade/ignition/zipball/3ee6e94815462bcf09bca0efc1c9069685df8da3", - "reference": "3ee6e94815462bcf09bca0efc1c9069685df8da3", + "url": "https://api.github.com/repos/facade/ignition/zipball/23400e6cc565c9dcae2c53704b4de1c4870c0697", + "reference": "23400e6cc565c9dcae2c53704b4de1c4870c0697", "shasum": "" }, "require": { @@ -8868,7 +8866,7 @@ "issues": "https://github.com/facade/ignition/issues", "source": "https://github.com/facade/ignition" }, - "time": "2021-10-11T15:24:06+00:00" + "time": "2021-10-28T11:47:23+00:00" }, { "name": "facade/ignition-contracts", @@ -9657,23 +9655,23 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.7", + "version": "9.2.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "d4c798ed8d51506800b441f7a13ecb0f76f12218" + "reference": "cf04e88a2e3c56fc1a65488afd493325b4c1bc3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/d4c798ed8d51506800b441f7a13ecb0f76f12218", - "reference": "d4c798ed8d51506800b441f7a13ecb0f76f12218", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/cf04e88a2e3c56fc1a65488afd493325b4c1bc3e", + "reference": "cf04e88a2e3c56fc1a65488afd493325b4c1bc3e", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.12.0", + "nikic/php-parser": "^4.13.0", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", @@ -9722,7 +9720,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.7" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.8" }, "funding": [ { @@ -9730,7 +9728,7 @@ "type": "github" } ], - "time": "2021-09-17T05:39:03+00:00" + "time": "2021-10-30T08:01:38+00:00" }, { "name": "phpunit/php-file-iterator", @@ -10505,16 +10503,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" + "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", - "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9", + "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9", "shasum": "" }, "require": { @@ -10563,14 +10561,14 @@ } ], "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", + "homepage": "https://www.github.com/sebastianbergmann/exporter", "keywords": [ "export", "exporter" ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4" }, "funding": [ { @@ -10578,7 +10576,7 @@ "type": "github" } ], - "time": "2020-09-28T05:24:23+00:00" + "time": "2021-11-11T14:18:36+00:00" }, { "name": "sebastian/global-state", @@ -10929,7 +10927,6 @@ "type": "github" } ], - "abandoned": true, "time": "2020-09-28T06:45:17+00:00" }, { @@ -11098,7 +11095,7 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": "^7.3", + "php": "^7.3|^7.4|^8.0", "ext-bcmath": "*", "ext-ctype": "*", "ext-curl": "*",