diff --git a/.env.example b/.env.example
index 114a68a0..d1a26e82 100644
--- a/.env.example
+++ b/.env.example
@@ -66,3 +66,5 @@ SECURE_SESSION_COOKIE=true
LOG_SLACK_WEBHOOK_URL=
FONT_LINK=
+
+BRIDGY_MASTODON_TOKEN=
diff --git a/app/Jobs/SyndicateNoteToMastodon.php b/app/Jobs/SyndicateNoteToMastodon.php
new file mode 100644
index 00000000..12b9b308
--- /dev/null
+++ b/app/Jobs/SyndicateNoteToMastodon.php
@@ -0,0 +1,70 @@
+request(
+ 'POST',
+ 'https://brid.gy/micropub',
+ [
+ 'headers' => [
+ 'Authorization' => 'Bearer ' . config('bridgy.mastodon_token'),
+ ],
+ 'json' => [
+ 'type' => ['h-entry'],
+ 'properties' => [
+ 'content' => [$this->note->note],
+ ],
+ ],
+ ]
+ );
+
+ // Parse for syndication URL
+ if ($response->getStatusCode() === 201) {
+ $mastodonUrl = $response->getHeader('Location')[0];
+ $this->note->mastodon_url = $mastodonUrl;
+ $this->note->save();
+ }
+ }
+}
diff --git a/app/Services/NoteService.php b/app/Services/NoteService.php
index 57458389..156acbfb 100644
--- a/app/Services/NoteService.php
+++ b/app/Services/NoteService.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Services;
use App\Jobs\SendWebMentions;
+use App\Jobs\SyndicateNoteToMastodon;
use App\Jobs\SyndicateNoteToTwitter;
use App\Models\Media;
use App\Models\Note;
@@ -58,6 +59,10 @@ class NoteService
dispatch(new SyndicateNoteToTwitter($note));
}
+ if (in_array('mastodon', $this->getSyndicationTargets($request), true)) {
+ dispatch(new SyndicateNoteToMastodon($note));
+ }
+
return $note;
}
@@ -212,6 +217,9 @@ class NoteService
if ($target && $target->service_name === 'Twitter') {
$syndication[] = 'twitter';
}
+ if ($target && $target->service_name === 'Mastodon') {
+ $syndication[] = 'mastodon';
+ }
}
return $syndication;
diff --git a/composer.lock b/composer.lock
index 767787be..8a9a22ac 100644
--- a/composer.lock
+++ b/composer.lock
@@ -506,16 +506,16 @@
},
{
"name": "dflydev/dot-access-data",
- "version": "v3.0.1",
+ "version": "v3.0.2",
"source": {
"type": "git",
"url": "https://github.com/dflydev/dflydev-dot-access-data.git",
- "reference": "0992cc19268b259a39e86f296da5f0677841f42c"
+ "reference": "f41715465d65213d644d3141a6a93081be5d3549"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/0992cc19268b259a39e86f296da5f0677841f42c",
- "reference": "0992cc19268b259a39e86f296da5f0677841f42c",
+ "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549",
+ "reference": "f41715465d65213d644d3141a6a93081be5d3549",
"shasum": ""
},
"require": {
@@ -526,7 +526,7 @@
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.3",
"scrutinizer/ocular": "1.6.0",
"squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "^3.14"
+ "vimeo/psalm": "^4.0.0"
},
"type": "library",
"extra": {
@@ -575,9 +575,9 @@
],
"support": {
"issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
- "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.1"
+ "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2"
},
- "time": "2021-08-13T13:06:58+00:00"
+ "time": "2022-10-27T11:44:00+00:00"
},
{
"name": "doctrine/inflector",
@@ -1222,16 +1222,16 @@
},
{
"name": "guzzlehttp/psr7",
- "version": "2.4.1",
+ "version": "2.4.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379"
+ "reference": "3148458748274be1546f8f2809a6c09fe66f44aa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/69568e4293f4fa993f3b0e51c9723e1e17c41379",
- "reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/3148458748274be1546f8f2809a6c09fe66f44aa",
+ "reference": "3148458748274be1546f8f2809a6c09fe66f44aa",
"shasum": ""
},
"require": {
@@ -1321,7 +1321,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/2.4.1"
+ "source": "https://github.com/guzzle/psr7/tree/2.4.2"
},
"funding": [
{
@@ -1337,7 +1337,7 @@
"type": "tidelift"
}
],
- "time": "2022-08-28T14:45:39+00:00"
+ "time": "2022-10-25T13:49:28+00:00"
},
{
"name": "indieauth/client",
@@ -1741,16 +1741,16 @@
},
{
"name": "laravel/framework",
- "version": "v9.36.4",
+ "version": "v9.38.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "15ce569fd93124e8e2257c24e3ed85b9ef9951d6"
+ "reference": "abf198e443e06696af3f356b44de67c0fa516107"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/15ce569fd93124e8e2257c24e3ed85b9ef9951d6",
- "reference": "15ce569fd93124e8e2257c24e3ed85b9ef9951d6",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/abf198e443e06696af3f356b44de67c0fa516107",
+ "reference": "abf198e443e06696af3f356b44de67c0fa516107",
"shasum": ""
},
"require": {
@@ -1923,20 +1923,20 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2022-10-20T16:11:03+00:00"
+ "time": "2022-11-01T14:05:55+00:00"
},
{
"name": "laravel/horizon",
- "version": "v5.10.2",
+ "version": "v5.10.3",
"source": {
"type": "git",
"url": "https://github.com/laravel/horizon.git",
- "reference": "de84bf86ffee940fa92e29c54d41618048ec9b6f"
+ "reference": "22403726851d62c45051114c89106130c348decc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/horizon/zipball/de84bf86ffee940fa92e29c54d41618048ec9b6f",
- "reference": "de84bf86ffee940fa92e29c54d41618048ec9b6f",
+ "url": "https://api.github.com/repos/laravel/horizon/zipball/22403726851d62c45051114c89106130c348decc",
+ "reference": "22403726851d62c45051114c89106130c348decc",
"shasum": ""
},
"require": {
@@ -1998,9 +1998,9 @@
],
"support": {
"issues": "https://github.com/laravel/horizon/issues",
- "source": "https://github.com/laravel/horizon/tree/v5.10.2"
+ "source": "https://github.com/laravel/horizon/tree/v5.10.3"
},
- "time": "2022-09-26T13:45:51+00:00"
+ "time": "2022-10-14T13:33:44+00:00"
},
{
"name": "laravel/serializable-closure",
@@ -2267,16 +2267,16 @@
},
{
"name": "league/commonmark",
- "version": "2.3.5",
+ "version": "2.3.7",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
- "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257"
+ "reference": "a36bd2be4f5387c0f3a8792a0d76b7d68865abbf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/84d74485fdb7074f4f9dd6f02ab957b1de513257",
- "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/a36bd2be4f5387c0f3a8792a0d76b7d68865abbf",
+ "reference": "a36bd2be4f5387c0f3a8792a0d76b7d68865abbf",
"shasum": ""
},
"require": {
@@ -2296,7 +2296,7 @@
"erusev/parsedown": "^1.0",
"ext-json": "*",
"github/gfm": "0.29.0",
- "michelf/php-markdown": "^1.4",
+ "michelf/php-markdown": "^1.4 || ^2.0",
"nyholm/psr7": "^1.5",
"phpstan/phpstan": "^1.8.2",
"phpunit/phpunit": "^9.5.21",
@@ -2369,7 +2369,7 @@
"type": "tidelift"
}
],
- "time": "2022-07-29T10:59:45+00:00"
+ "time": "2022-11-03T17:29:46+00:00"
},
{
"name": "league/config",
@@ -2455,16 +2455,16 @@
},
{
"name": "league/flysystem",
- "version": "3.10.1",
+ "version": "3.10.2",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "9857d7208a94fc63c7bf09caf223280e59ac7274"
+ "reference": "b9bd194b016114d6ff6765c09d40c7d427e4e3f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/9857d7208a94fc63c7bf09caf223280e59ac7274",
- "reference": "9857d7208a94fc63c7bf09caf223280e59ac7274",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/b9bd194b016114d6ff6765c09d40c7d427e4e3f6",
+ "reference": "b9bd194b016114d6ff6765c09d40c7d427e4e3f6",
"shasum": ""
},
"require": {
@@ -2526,7 +2526,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/3.10.1"
+ "source": "https://github.com/thephpleague/flysystem/tree/3.10.2"
},
"funding": [
{
@@ -2542,7 +2542,7 @@
"type": "tidelift"
}
],
- "time": "2022-10-21T18:57:47+00:00"
+ "time": "2022-10-25T07:01:47+00:00"
},
{
"name": "league/flysystem-aws-s3-v3",
@@ -3505,16 +3505,16 @@
},
{
"name": "nunomaduro/termwind",
- "version": "v1.14.1",
+ "version": "v1.14.2",
"source": {
"type": "git",
"url": "https://github.com/nunomaduro/termwind.git",
- "reference": "86fc30eace93b9b6d4c844ba6de76db84184e01b"
+ "reference": "9a8218511eb1a0965629ff820dda25985440aefc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/86fc30eace93b9b6d4c844ba6de76db84184e01b",
- "reference": "86fc30eace93b9b6d4c844ba6de76db84184e01b",
+ "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/9a8218511eb1a0965629ff820dda25985440aefc",
+ "reference": "9a8218511eb1a0965629ff820dda25985440aefc",
"shasum": ""
},
"require": {
@@ -3571,7 +3571,7 @@
],
"support": {
"issues": "https://github.com/nunomaduro/termwind/issues",
- "source": "https://github.com/nunomaduro/termwind/tree/v1.14.1"
+ "source": "https://github.com/nunomaduro/termwind/tree/v1.14.2"
},
"funding": [
{
@@ -3587,7 +3587,7 @@
"type": "github"
}
],
- "time": "2022-10-17T15:20:29+00:00"
+ "time": "2022-10-28T22:51:32+00:00"
},
{
"name": "p3k/http",
@@ -4443,16 +4443,16 @@
},
{
"name": "spatie/browsershot",
- "version": "3.57.2",
+ "version": "3.57.3",
"source": {
"type": "git",
"url": "https://github.com/spatie/browsershot.git",
- "reference": "7125719979b7de1257bbf699ff1d3bff3125b228"
+ "reference": "6dbd43cc3e8f35879e1add2fba6801aa97443e12"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/browsershot/zipball/7125719979b7de1257bbf699ff1d3bff3125b228",
- "reference": "7125719979b7de1257bbf699ff1d3bff3125b228",
+ "url": "https://api.github.com/repos/spatie/browsershot/zipball/6dbd43cc3e8f35879e1add2fba6801aa97443e12",
+ "reference": "6dbd43cc3e8f35879e1add2fba6801aa97443e12",
"shasum": ""
},
"require": {
@@ -4497,7 +4497,7 @@
"webpage"
],
"support": {
- "source": "https://github.com/spatie/browsershot/tree/3.57.2"
+ "source": "https://github.com/spatie/browsershot/tree/3.57.3"
},
"funding": [
{
@@ -4505,7 +4505,7 @@
"type": "github"
}
],
- "time": "2022-08-19T16:43:07+00:00"
+ "time": "2022-10-25T08:30:53+00:00"
},
{
"name": "spatie/commonmark-highlighter",
@@ -4685,16 +4685,16 @@
},
{
"name": "spatie/temporary-directory",
- "version": "2.1.0",
+ "version": "2.1.1",
"source": {
"type": "git",
"url": "https://github.com/spatie/temporary-directory.git",
- "reference": "79f138f2b81adae583d04d3727a4538dd394023f"
+ "reference": "e2818d871783d520b319c2d38dc37c10ecdcde20"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/79f138f2b81adae583d04d3727a4538dd394023f",
- "reference": "79f138f2b81adae583d04d3727a4538dd394023f",
+ "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/e2818d871783d520b319c2d38dc37c10ecdcde20",
+ "reference": "e2818d871783d520b319c2d38dc37c10ecdcde20",
"shasum": ""
},
"require": {
@@ -4730,7 +4730,7 @@
],
"support": {
"issues": "https://github.com/spatie/temporary-directory/issues",
- "source": "https://github.com/spatie/temporary-directory/tree/2.1.0"
+ "source": "https://github.com/spatie/temporary-directory/tree/2.1.1"
},
"funding": [
{
@@ -4742,7 +4742,7 @@
"type": "github"
}
],
- "time": "2022-03-11T08:16:01+00:00"
+ "time": "2022-08-23T07:15:15+00:00"
},
{
"name": "stella-maris/clock",
@@ -4789,16 +4789,16 @@
},
{
"name": "symfony/console",
- "version": "v6.1.6",
+ "version": "v6.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "7fa3b9cf17363468795e539231a5c91b02b608fc"
+ "reference": "a1282bd0c096e0bdb8800b104177e2ce404d8815"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/7fa3b9cf17363468795e539231a5c91b02b608fc",
- "reference": "7fa3b9cf17363468795e539231a5c91b02b608fc",
+ "url": "https://api.github.com/repos/symfony/console/zipball/a1282bd0c096e0bdb8800b104177e2ce404d8815",
+ "reference": "a1282bd0c096e0bdb8800b104177e2ce404d8815",
"shasum": ""
},
"require": {
@@ -4865,7 +4865,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.1.6"
+ "source": "https://github.com/symfony/console/tree/v6.1.7"
},
"funding": [
{
@@ -4881,7 +4881,7 @@
"type": "tidelift"
}
],
- "time": "2022-10-07T08:04:03+00:00"
+ "time": "2022-10-26T21:42:49+00:00"
},
{
"name": "symfony/css-selector",
@@ -5017,16 +5017,16 @@
},
{
"name": "symfony/error-handler",
- "version": "v6.1.6",
+ "version": "v6.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "49f718e41f1b6f0fd5730895ca5b1c37defd828d"
+ "reference": "699a26ce5ec656c198bf6e26398b0f0818c7e504"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/49f718e41f1b6f0fd5730895ca5b1c37defd828d",
- "reference": "49f718e41f1b6f0fd5730895ca5b1c37defd828d",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/699a26ce5ec656c198bf6e26398b0f0818c7e504",
+ "reference": "699a26ce5ec656c198bf6e26398b0f0818c7e504",
"shasum": ""
},
"require": {
@@ -5068,7 +5068,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/error-handler/tree/v6.1.6"
+ "source": "https://github.com/symfony/error-handler/tree/v6.1.7"
},
"funding": [
{
@@ -5084,7 +5084,7 @@
"type": "tidelift"
}
],
- "time": "2022-10-07T08:04:03+00:00"
+ "time": "2022-10-28T16:23:08+00:00"
},
{
"name": "symfony/event-dispatcher",
@@ -5383,16 +5383,16 @@
},
{
"name": "symfony/http-foundation",
- "version": "v6.1.6",
+ "version": "v6.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "3ae8e9c57155fc48930493a629da293b32efbde0"
+ "reference": "792a1856d2b95273f0e1c3435785f1d01a60ecc6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3ae8e9c57155fc48930493a629da293b32efbde0",
- "reference": "3ae8e9c57155fc48930493a629da293b32efbde0",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/792a1856d2b95273f0e1c3435785f1d01a60ecc6",
+ "reference": "792a1856d2b95273f0e1c3435785f1d01a60ecc6",
"shasum": ""
},
"require": {
@@ -5438,7 +5438,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v6.1.6"
+ "source": "https://github.com/symfony/http-foundation/tree/v6.1.7"
},
"funding": [
{
@@ -5454,20 +5454,20 @@
"type": "tidelift"
}
],
- "time": "2022-10-02T08:30:52+00:00"
+ "time": "2022-10-12T09:44:59+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v6.1.6",
+ "version": "v6.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "102f99bf81799e93f61b9a73b2f38b309c587a94"
+ "reference": "8fc1ffe753948c47a103a809cdd6a4a8458b3254"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/102f99bf81799e93f61b9a73b2f38b309c587a94",
- "reference": "102f99bf81799e93f61b9a73b2f38b309c587a94",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8fc1ffe753948c47a103a809cdd6a4a8458b3254",
+ "reference": "8fc1ffe753948c47a103a809cdd6a4a8458b3254",
"shasum": ""
},
"require": {
@@ -5548,7 +5548,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v6.1.6"
+ "source": "https://github.com/symfony/http-kernel/tree/v6.1.7"
},
"funding": [
{
@@ -5564,20 +5564,20 @@
"type": "tidelift"
}
],
- "time": "2022-10-12T07:48:47+00:00"
+ "time": "2022-10-28T18:06:36+00:00"
},
{
"name": "symfony/mailer",
- "version": "v6.1.5",
+ "version": "v6.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailer.git",
- "reference": "e1b32deb9efc48def0c76b876860ad36f2123e89"
+ "reference": "7e19813c0b43387c55665780c4caea505cc48391"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mailer/zipball/e1b32deb9efc48def0c76b876860ad36f2123e89",
- "reference": "e1b32deb9efc48def0c76b876860ad36f2123e89",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/7e19813c0b43387c55665780c4caea505cc48391",
+ "reference": "7e19813c0b43387c55665780c4caea505cc48391",
"shasum": ""
},
"require": {
@@ -5622,7 +5622,7 @@
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/mailer/tree/v6.1.5"
+ "source": "https://github.com/symfony/mailer/tree/v6.1.7"
},
"funding": [
{
@@ -5638,20 +5638,20 @@
"type": "tidelift"
}
],
- "time": "2022-08-29T06:58:39+00:00"
+ "time": "2022-10-28T16:23:08+00:00"
},
{
"name": "symfony/mime",
- "version": "v6.1.6",
+ "version": "v6.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "5ae192b9a39730435cfec025a499f79d05ac68a3"
+ "reference": "f440f066d57691088d998d6e437ce98771144618"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/5ae192b9a39730435cfec025a499f79d05ac68a3",
- "reference": "5ae192b9a39730435cfec025a499f79d05ac68a3",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/f440f066d57691088d998d6e437ce98771144618",
+ "reference": "f440f066d57691088d998d6e437ce98771144618",
"shasum": ""
},
"require": {
@@ -5663,8 +5663,7 @@
"egulias/email-validator": "~3.0.0",
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
- "symfony/mailer": "<5.4",
- "symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6"
+ "symfony/mailer": "<5.4"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3.1",
@@ -5672,7 +5671,7 @@
"symfony/dependency-injection": "^5.4|^6.0",
"symfony/property-access": "^5.4|^6.0",
"symfony/property-info": "^5.4|^6.0",
- "symfony/serializer": "^5.4.14|~6.0.14|^6.1.6"
+ "symfony/serializer": "^5.2|^6.0"
},
"type": "library",
"autoload": {
@@ -5704,7 +5703,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v6.1.6"
+ "source": "https://github.com/symfony/mime/tree/v6.1.7"
},
"funding": [
{
@@ -5720,7 +5719,7 @@
"type": "tidelift"
}
],
- "time": "2022-10-07T08:04:03+00:00"
+ "time": "2022-10-19T08:10:53+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -6522,16 +6521,16 @@
},
{
"name": "symfony/routing",
- "version": "v6.1.5",
+ "version": "v6.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "f8c1ebb43d0f39e5ecd12a732ba1952a3dd8455c"
+ "reference": "95effeb9d6e2cec861cee06bf5bbf82d09aea7f5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/f8c1ebb43d0f39e5ecd12a732ba1952a3dd8455c",
- "reference": "f8c1ebb43d0f39e5ecd12a732ba1952a3dd8455c",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/95effeb9d6e2cec861cee06bf5bbf82d09aea7f5",
+ "reference": "95effeb9d6e2cec861cee06bf5bbf82d09aea7f5",
"shasum": ""
},
"require": {
@@ -6590,7 +6589,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v6.1.5"
+ "source": "https://github.com/symfony/routing/tree/v6.1.7"
},
"funding": [
{
@@ -6606,7 +6605,7 @@
"type": "tidelift"
}
],
- "time": "2022-09-09T09:26:14+00:00"
+ "time": "2022-10-18T13:12:43+00:00"
},
{
"name": "symfony/service-contracts",
@@ -6695,16 +6694,16 @@
},
{
"name": "symfony/string",
- "version": "v6.1.6",
+ "version": "v6.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "7e7e0ff180d4c5a6636eaad57b65092014b61864"
+ "reference": "823f143370880efcbdfa2dbca946b3358c4707e5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/7e7e0ff180d4c5a6636eaad57b65092014b61864",
- "reference": "7e7e0ff180d4c5a6636eaad57b65092014b61864",
+ "url": "https://api.github.com/repos/symfony/string/zipball/823f143370880efcbdfa2dbca946b3358c4707e5",
+ "reference": "823f143370880efcbdfa2dbca946b3358c4707e5",
"shasum": ""
},
"require": {
@@ -6760,7 +6759,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.1.6"
+ "source": "https://github.com/symfony/string/tree/v6.1.7"
},
"funding": [
{
@@ -9809,16 +9808,16 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.17",
+ "version": "9.2.18",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8"
+ "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa94dc41e8661fe90c7316849907cba3007b10d8",
- "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/12fddc491826940cf9b7e88ad9664cf51f0f6d0a",
+ "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a",
"shasum": ""
},
"require": {
@@ -9874,7 +9873,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.17"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.18"
},
"funding": [
{
@@ -9882,7 +9881,7 @@
"type": "github"
}
],
- "time": "2022-08-30T12:24:04+00:00"
+ "time": "2022-10-27T13:35:33+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -10127,16 +10126,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "9.5.25",
+ "version": "9.5.26",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d"
+ "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d",
- "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2",
+ "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2",
"shasum": ""
},
"require": {
@@ -10209,7 +10208,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.25"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26"
},
"funding": [
{
@@ -10225,7 +10224,7 @@
"type": "tidelift"
}
],
- "time": "2022-09-25T03:44:45+00:00"
+ "time": "2022-10-28T06:00:21+00:00"
},
{
"name": "pimple/pimple",
@@ -11501,16 +11500,16 @@
},
{
"name": "spatie/laravel-ignition",
- "version": "1.5.2",
+ "version": "1.6.1",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-ignition.git",
- "reference": "f2336fc79d99aab5cf27fa4aebe5e9c9ecf3808a"
+ "reference": "2b79cf6ed40946b64ac6713d7d2da8a9d87f612b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/f2336fc79d99aab5cf27fa4aebe5e9c9ecf3808a",
- "reference": "f2336fc79d99aab5cf27fa4aebe5e9c9ecf3808a",
+ "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/2b79cf6ed40946b64ac6713d7d2da8a9d87f612b",
+ "reference": "2b79cf6ed40946b64ac6713d7d2da8a9d87f612b",
"shasum": ""
},
"require": {
@@ -11587,7 +11586,7 @@
"type": "github"
}
],
- "time": "2022-10-14T12:24:21+00:00"
+ "time": "2022-10-26T17:39:54+00:00"
},
{
"name": "spatie/laravel-ray",
diff --git a/config/bridgy.php b/config/bridgy.php
new file mode 100644
index 00000000..9717625f
--- /dev/null
+++ b/config/bridgy.php
@@ -0,0 +1,18 @@
+ env('BRIDGY_MASTODON_TOKEN'),
+
+];
diff --git a/database/migrations/2022_10_26_180903_add_mastodon_syndication_url.php b/database/migrations/2022_10_26_180903_add_mastodon_syndication_url.php
new file mode 100644
index 00000000..48c4403e
--- /dev/null
+++ b/database/migrations/2022_10_26_180903_add_mastodon_syndication_url.php
@@ -0,0 +1,32 @@
+string('mastodon_url')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::table('notes', function (Blueprint $table) {
+ $table->dropColumn('mastodon_url');
+ });
+ }
+};
diff --git a/database/seeders/NotesTableSeeder.php b/database/seeders/NotesTableSeeder.php
index 2bf9a82a..4a0a0bec 100644
--- a/database/seeders/NotesTableSeeder.php
+++ b/database/seeders/NotesTableSeeder.php
@@ -137,6 +137,7 @@ class NotesTableSeeder extends Seeder
$noteSyndicated->facebook_url = 'https://www.facebook.com/post/12345789';
$noteSyndicated->swarm_url = 'https://www.swarmapp.com/checking/123456789';
$noteSyndicated->instagram_url = 'https://www.instagram.com/p/aWsEd123Jh';
+ $noteSyndicated->mastodon_url = 'https://mastodon.social/@jonnybarnes/123456789';
$noteSyndicated->save();
DB::table('notes')
->where('id', $noteSyndicated->id)
diff --git a/package-lock.json b/package-lock.json
index bd2886cf..046520d3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,17 +10,17 @@
"license": "CC0-1.0",
"dependencies": {
"normalize.css": "^8.0.1",
- "puppeteer": "^19.1.0"
+ "puppeteer": "^19.2.2"
},
"devDependencies": {
"@babel/core": "^7.19.6",
"@babel/preset-env": "^7.19.4",
- "autoprefixer": "^10.4.12",
- "babel-loader": "^8.2.1",
+ "autoprefixer": "^10.4.13",
+ "babel-loader": "^9.1.0",
"browserlist": "^1.0.1",
"compression-webpack-plugin": "^10.0.0",
"css-loader": "^6.2.0",
- "cssnano": "^5.1.13",
+ "cssnano": "^5.1.14",
"eslint": "^8.26.0",
"eslint-webpack-plugin": "^3.2.0",
"mini-css-extract-plugin": "^2.6.1",
@@ -29,7 +29,7 @@
"postcss-combine-media-query": "^1.0.1",
"postcss-import": "^15.0.0",
"postcss-loader": "^7.0.1",
- "stylelint": "^14.14.0",
+ "stylelint": "^14.14.1",
"stylelint-config-standard": "^29.0.0",
"stylelint-webpack-plugin": "^3.1.1",
"webpack": "^5.74.0",
@@ -2273,9 +2273,9 @@
}
},
"node_modules/autoprefixer": {
- "version": "10.4.12",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz",
- "integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==",
+ "version": "10.4.13",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
+ "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==",
"dev": true,
"funding": [
{
@@ -2289,7 +2289,7 @@
],
"dependencies": {
"browserslist": "^4.21.4",
- "caniuse-lite": "^1.0.30001407",
+ "caniuse-lite": "^1.0.30001426",
"fraction.js": "^4.2.0",
"normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
@@ -2306,22 +2306,20 @@
}
},
"node_modules/babel-loader": {
- "version": "8.2.5",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz",
- "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==",
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.0.tgz",
+ "integrity": "sha512-Antt61KJPinUMwHwIIz9T5zfMgevnfZkEVWYDWlG888fgdvRRGD0JTuf/fFozQnfT+uq64sk1bmdHDy/mOEWnA==",
"dev": true,
"dependencies": {
- "find-cache-dir": "^3.3.1",
- "loader-utils": "^2.0.0",
- "make-dir": "^3.1.0",
- "schema-utils": "^2.6.5"
+ "find-cache-dir": "^3.3.2",
+ "schema-utils": "^4.0.0"
},
"engines": {
- "node": ">= 8.9"
+ "node": ">= 14.15.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0",
- "webpack": ">=2"
+ "@babel/core": "^7.12.0",
+ "webpack": ">=5"
}
},
"node_modules/babel-plugin-dynamic-import-node": {
@@ -2396,15 +2394,6 @@
}
]
},
- "node_modules/big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
"node_modules/bl": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
@@ -2579,9 +2568,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001409",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001409.tgz",
- "integrity": "sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ==",
+ "version": "1.0.30001430",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001430.tgz",
+ "integrity": "sha512-IB1BXTZKPDVPM7cnV4iaKaHxckvdr/3xtctB3f7Hmenx3qYBhGtTZ//7EllK66aKXW98Lx0+7Yr0kxBtIt3tzg==",
"dev": true,
"funding": [
{
@@ -2707,59 +2696,6 @@
"webpack": "^5.1.0"
}
},
- "node_modules/compression-webpack-plugin/node_modules/ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/compression-webpack-plugin/node_modules/ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.3"
- },
- "peerDependencies": {
- "ajv": "^8.8.2"
- }
- },
- "node_modules/compression-webpack-plugin/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/compression-webpack-plugin/node_modules/schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -2825,9 +2761,9 @@
}
},
"node_modules/css-declaration-sorter": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz",
- "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz",
+ "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==",
"dev": true,
"engines": {
"node": "^10 || ^12 || >=14"
@@ -2940,12 +2876,12 @@
}
},
"node_modules/cssnano": {
- "version": "5.1.13",
- "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.13.tgz",
- "integrity": "sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ==",
+ "version": "5.1.14",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz",
+ "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==",
"dev": true,
"dependencies": {
- "cssnano-preset-default": "^5.2.12",
+ "cssnano-preset-default": "^5.2.13",
"lilconfig": "^2.0.3",
"yaml": "^1.10.2"
},
@@ -2961,25 +2897,25 @@
}
},
"node_modules/cssnano-preset-default": {
- "version": "5.2.12",
- "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz",
- "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==",
+ "version": "5.2.13",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz",
+ "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==",
"dev": true,
"dependencies": {
- "css-declaration-sorter": "^6.3.0",
+ "css-declaration-sorter": "^6.3.1",
"cssnano-utils": "^3.1.0",
"postcss-calc": "^8.2.3",
"postcss-colormin": "^5.3.0",
- "postcss-convert-values": "^5.1.2",
+ "postcss-convert-values": "^5.1.3",
"postcss-discard-comments": "^5.1.2",
"postcss-discard-duplicates": "^5.1.0",
"postcss-discard-empty": "^5.1.1",
"postcss-discard-overridden": "^5.1.0",
- "postcss-merge-longhand": "^5.1.6",
- "postcss-merge-rules": "^5.1.2",
+ "postcss-merge-longhand": "^5.1.7",
+ "postcss-merge-rules": "^5.1.3",
"postcss-minify-font-values": "^5.1.0",
"postcss-minify-gradients": "^5.1.1",
- "postcss-minify-params": "^5.1.3",
+ "postcss-minify-params": "^5.1.4",
"postcss-minify-selectors": "^5.2.1",
"postcss-normalize-charset": "^5.1.0",
"postcss-normalize-display-values": "^5.1.0",
@@ -2987,11 +2923,11 @@
"postcss-normalize-repeat-style": "^5.1.1",
"postcss-normalize-string": "^5.1.0",
"postcss-normalize-timing-functions": "^5.1.0",
- "postcss-normalize-unicode": "^5.1.0",
+ "postcss-normalize-unicode": "^5.1.1",
"postcss-normalize-url": "^5.1.0",
"postcss-normalize-whitespace": "^5.1.1",
"postcss-ordered-values": "^5.1.3",
- "postcss-reduce-initial": "^5.1.0",
+ "postcss-reduce-initial": "^5.1.1",
"postcss-reduce-transforms": "^5.1.0",
"postcss-svgo": "^5.1.0",
"postcss-unique-selectors": "^5.1.1"
@@ -3097,9 +3033,9 @@
}
},
"node_modules/devtools-protocol": {
- "version": "0.0.1045489",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1045489.tgz",
- "integrity": "sha512-D+PTmWulkuQW4D1NTiCRCFxF7pQPn0hgp4YyX4wAQ6xYXKOadSWPR3ENGDQ47MW/Ewc9v2rpC/UEEGahgBYpSQ=="
+ "version": "0.0.1056733",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1056733.tgz",
+ "integrity": "sha512-CmTu6SQx2g3TbZzDCAV58+LTxVdKplS7xip0g5oDXpZ+isr0rv5dDP8ToyVRywzPHkCCPKgKgScEcwz4uPWDIA=="
},
"node_modules/dir-glob": {
"version": "3.0.1",
@@ -3192,15 +3128,6 @@
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
- "node_modules/emojis-list": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
- "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
- "dev": true,
- "engines": {
- "node": ">= 4"
- }
- },
"node_modules/end-of-stream": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
@@ -3403,34 +3330,6 @@
"webpack": "^5.0.0"
}
},
- "node_modules/eslint-webpack-plugin/node_modules/ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/eslint-webpack-plugin/node_modules/ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.3"
- },
- "peerDependencies": {
- "ajv": "^8.8.2"
- }
- },
"node_modules/eslint-webpack-plugin/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -3454,31 +3353,6 @@
"node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
- "node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/eslint-webpack-plugin/node_modules/schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
"node_modules/eslint-webpack-plugin/node_modules/supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
@@ -4522,9 +4396,9 @@
}
},
"node_modules/known-css-properties": {
- "version": "0.25.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz",
- "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==",
+ "version": "0.26.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz",
+ "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==",
"dev": true
},
"node_modules/levn": {
@@ -4563,20 +4437,6 @@
"node": ">=6.11.5"
}
},
- "node_modules/loader-utils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz",
- "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
- "dev": true,
- "dependencies": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- },
- "engines": {
- "node": ">=8.9.0"
- }
- },
"node_modules/locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -4777,59 +4637,6 @@
"webpack": "^5.0.0"
}
},
- "node_modules/mini-css-extract-plugin/node_modules/ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.3"
- },
- "peerDependencies": {
- "ajv": "^8.8.2"
- }
- },
- "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/mini-css-extract-plugin/node_modules/schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -5294,12 +5101,12 @@
}
},
"node_modules/postcss-convert-values": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz",
- "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz",
+ "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==",
"dev": true,
"dependencies": {
- "browserslist": "^4.20.3",
+ "browserslist": "^4.21.4",
"postcss-value-parser": "^4.2.0"
},
"engines": {
@@ -5418,13 +5225,13 @@
"dev": true
},
"node_modules/postcss-merge-longhand": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz",
- "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==",
+ "version": "5.1.7",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz",
+ "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==",
"dev": true,
"dependencies": {
"postcss-value-parser": "^4.2.0",
- "stylehacks": "^5.1.0"
+ "stylehacks": "^5.1.1"
},
"engines": {
"node": "^10 || ^12 || >=14.0"
@@ -5434,12 +5241,12 @@
}
},
"node_modules/postcss-merge-rules": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz",
- "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz",
+ "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==",
"dev": true,
"dependencies": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"caniuse-api": "^3.0.0",
"cssnano-utils": "^3.1.0",
"postcss-selector-parser": "^6.0.5"
@@ -5484,12 +5291,12 @@
}
},
"node_modules/postcss-minify-params": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz",
- "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==",
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz",
+ "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==",
"dev": true,
"dependencies": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"cssnano-utils": "^3.1.0",
"postcss-value-parser": "^4.2.0"
},
@@ -5662,12 +5469,12 @@
}
},
"node_modules/postcss-normalize-unicode": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz",
- "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz",
+ "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==",
"dev": true,
"dependencies": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"postcss-value-parser": "^4.2.0"
},
"engines": {
@@ -5725,12 +5532,12 @@
}
},
"node_modules/postcss-reduce-initial": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz",
- "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz",
+ "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==",
"dev": true,
"dependencies": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"caniuse-api": "^3.0.0"
},
"engines": {
@@ -5868,36 +5675,37 @@
}
},
"node_modules/puppeteer": {
- "version": "19.1.0",
- "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.1.0.tgz",
- "integrity": "sha512-UyJ5gz5JNjuFo6VJzIf+qDNjbSWGSoAMLuW990eErcrH6sZP85EbpLi6yG50euTMudxO/lsj4w1VNDNogHv6dA==",
+ "version": "19.2.2",
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.2.2.tgz",
+ "integrity": "sha512-m1T5Mog5qu5+dMBptWYTn6pXRdnFbydbVUCthqwbfd8/kOiMlzZBR9ywjX79LpvI1Sj+/z8+FKeIsjnMul8ZYA==",
"hasInstallScript": true,
"dependencies": {
"cosmiconfig": "7.0.1",
+ "devtools-protocol": "0.0.1056733",
"https-proxy-agent": "5.0.1",
"progress": "2.0.3",
"proxy-from-env": "1.1.0",
- "puppeteer-core": "19.1.0"
+ "puppeteer-core": "19.2.2"
},
"engines": {
"node": ">=14.1.0"
}
},
"node_modules/puppeteer-core": {
- "version": "19.1.0",
- "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.1.0.tgz",
- "integrity": "sha512-xIIJJuvqWbUwNzaB7l0TyChJYHdLvLhcHQiBLLKsMfvaQXnVa0Fzooq3Zb5bc01Q/b7XiP9pqDvUcYWSmzZQHA==",
+ "version": "19.2.2",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.2.2.tgz",
+ "integrity": "sha512-faojf+1pZ/tHXSr4x1q+9MVd9FrL3rpdbC0w7qN7MNClMoLuCvMbpR4vzcjoiJYgclt1n+SOPUOmHQViTw6frw==",
"dependencies": {
"cross-fetch": "3.1.5",
"debug": "4.3.4",
- "devtools-protocol": "0.0.1045489",
+ "devtools-protocol": "0.0.1056733",
"extract-zip": "2.0.1",
"https-proxy-agent": "5.0.1",
"proxy-from-env": "1.1.0",
"rimraf": "3.0.2",
"tar-fs": "2.1.1",
"unbzip2-stream": "1.4.3",
- "ws": "8.9.0"
+ "ws": "8.10.0"
},
"engines": {
"node": ">=14.1.0"
@@ -6263,23 +6071,58 @@
"dev": true
},
"node_modules/schema-utils": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
- "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
"dev": true,
"dependencies": {
- "@types/json-schema": "^7.0.5",
- "ajv": "^6.12.4",
- "ajv-keywords": "^3.5.2"
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
},
"engines": {
- "node": ">= 8.9.0"
+ "node": ">= 12.13.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/webpack"
}
},
+ "node_modules/schema-utils/node_modules/ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/schema-utils/node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ },
+ "peerDependencies": {
+ "ajv": "^8.8.2"
+ }
+ },
+ "node_modules/schema-utils/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true
+ },
"node_modules/semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
@@ -6547,12 +6390,12 @@
"dev": true
},
"node_modules/stylehacks": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz",
- "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz",
+ "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==",
"dev": true,
"dependencies": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"postcss-selector-parser": "^6.0.4"
},
"engines": {
@@ -6563,9 +6406,9 @@
}
},
"node_modules/stylelint": {
- "version": "14.14.0",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.14.0.tgz",
- "integrity": "sha512-yUI+4xXfPHVnueYddSQ/e1GuEA/2wVhWQbGj16AmWLtQJtn28lVxfS4b0CsWyVRPgd3Auzi0NXOthIEUhtQmmA==",
+ "version": "14.14.1",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.14.1.tgz",
+ "integrity": "sha512-Jnftu+lSD8cSpcV/+Z2nfgfgFpTIS1FcujezXPngtoIQ6wtwutL22MsNE0dJuMiM1h1790g2qIjAyUZCMrX4sw==",
"dev": true,
"dependencies": {
"@csstools/selector-specificity": "^2.0.2",
@@ -6585,13 +6428,13 @@
"import-lazy": "^4.0.0",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.25.0",
+ "known-css-properties": "^0.26.0",
"mathml-tag-names": "^2.1.3",
"meow": "^9.0.0",
"micromatch": "^4.0.5",
"normalize-path": "^3.0.0",
"picocolors": "^1.0.0",
- "postcss": "^8.4.17",
+ "postcss": "^8.4.18",
"postcss-media-query-parser": "^0.2.3",
"postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^6.0.0",
@@ -6603,7 +6446,7 @@
"style-search": "^0.1.0",
"supports-hyperlinks": "^2.3.0",
"svg-tags": "^1.0.0",
- "table": "^6.8.0",
+ "table": "^6.8.1",
"v8-compile-cache": "^2.3.0",
"write-file-atomic": "^4.0.2"
},
@@ -6663,34 +6506,6 @@
"webpack": "^5.0.0"
}
},
- "node_modules/stylelint-webpack-plugin/node_modules/ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/stylelint-webpack-plugin/node_modules/ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.3"
- },
- "peerDependencies": {
- "ajv": "^8.8.2"
- }
- },
"node_modules/stylelint-webpack-plugin/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -6714,31 +6529,6 @@
"node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
- "node_modules/stylelint-webpack-plugin/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/stylelint-webpack-plugin/node_modules/schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
"node_modules/stylelint-webpack-plugin/node_modules/supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
@@ -6854,9 +6644,9 @@
}
},
"node_modules/table": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz",
- "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==",
+ "version": "6.8.1",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
+ "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
"dev": true,
"dependencies": {
"ajv": "^8.0.1",
@@ -7409,9 +7199,9 @@
}
},
"node_modules/ws": {
- "version": "8.9.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz",
- "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==",
+ "version": "8.10.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz",
+ "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==",
"engines": {
"node": ">=10.0.0"
},
@@ -9105,13 +8895,13 @@
"dev": true
},
"autoprefixer": {
- "version": "10.4.12",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz",
- "integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==",
+ "version": "10.4.13",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
+ "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==",
"dev": true,
"requires": {
"browserslist": "^4.21.4",
- "caniuse-lite": "^1.0.30001407",
+ "caniuse-lite": "^1.0.30001426",
"fraction.js": "^4.2.0",
"normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
@@ -9119,15 +8909,13 @@
}
},
"babel-loader": {
- "version": "8.2.5",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz",
- "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==",
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.0.tgz",
+ "integrity": "sha512-Antt61KJPinUMwHwIIz9T5zfMgevnfZkEVWYDWlG888fgdvRRGD0JTuf/fFozQnfT+uq64sk1bmdHDy/mOEWnA==",
"dev": true,
"requires": {
- "find-cache-dir": "^3.3.1",
- "loader-utils": "^2.0.0",
- "make-dir": "^3.1.0",
- "schema-utils": "^2.6.5"
+ "find-cache-dir": "^3.3.2",
+ "schema-utils": "^4.0.0"
}
},
"babel-plugin-dynamic-import-node": {
@@ -9179,12 +8967,6 @@
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
- "big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
- "dev": true
- },
"bl": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
@@ -9305,9 +9087,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001409",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001409.tgz",
- "integrity": "sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ==",
+ "version": "1.0.30001430",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001430.tgz",
+ "integrity": "sha512-IB1BXTZKPDVPM7cnV4iaKaHxckvdr/3xtctB3f7Hmenx3qYBhGtTZ//7EllK66aKXW98Lx0+7Yr0kxBtIt3tzg==",
"dev": true
},
"chalk": {
@@ -9398,47 +9180,6 @@
"requires": {
"schema-utils": "^4.0.0",
"serialize-javascript": "^6.0.0"
- },
- "dependencies": {
- "ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
- "ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.3"
- }
- },
- "json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- }
- }
}
},
"concat-map": {
@@ -9496,9 +9237,9 @@
}
},
"css-declaration-sorter": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz",
- "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz",
+ "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==",
"dev": true,
"requires": {}
},
@@ -9571,36 +9312,36 @@
"dev": true
},
"cssnano": {
- "version": "5.1.13",
- "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.13.tgz",
- "integrity": "sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ==",
+ "version": "5.1.14",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz",
+ "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==",
"dev": true,
"requires": {
- "cssnano-preset-default": "^5.2.12",
+ "cssnano-preset-default": "^5.2.13",
"lilconfig": "^2.0.3",
"yaml": "^1.10.2"
}
},
"cssnano-preset-default": {
- "version": "5.2.12",
- "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz",
- "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==",
+ "version": "5.2.13",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz",
+ "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==",
"dev": true,
"requires": {
- "css-declaration-sorter": "^6.3.0",
+ "css-declaration-sorter": "^6.3.1",
"cssnano-utils": "^3.1.0",
"postcss-calc": "^8.2.3",
"postcss-colormin": "^5.3.0",
- "postcss-convert-values": "^5.1.2",
+ "postcss-convert-values": "^5.1.3",
"postcss-discard-comments": "^5.1.2",
"postcss-discard-duplicates": "^5.1.0",
"postcss-discard-empty": "^5.1.1",
"postcss-discard-overridden": "^5.1.0",
- "postcss-merge-longhand": "^5.1.6",
- "postcss-merge-rules": "^5.1.2",
+ "postcss-merge-longhand": "^5.1.7",
+ "postcss-merge-rules": "^5.1.3",
"postcss-minify-font-values": "^5.1.0",
"postcss-minify-gradients": "^5.1.1",
- "postcss-minify-params": "^5.1.3",
+ "postcss-minify-params": "^5.1.4",
"postcss-minify-selectors": "^5.2.1",
"postcss-normalize-charset": "^5.1.0",
"postcss-normalize-display-values": "^5.1.0",
@@ -9608,11 +9349,11 @@
"postcss-normalize-repeat-style": "^5.1.1",
"postcss-normalize-string": "^5.1.0",
"postcss-normalize-timing-functions": "^5.1.0",
- "postcss-normalize-unicode": "^5.1.0",
+ "postcss-normalize-unicode": "^5.1.1",
"postcss-normalize-url": "^5.1.0",
"postcss-normalize-whitespace": "^5.1.1",
"postcss-ordered-values": "^5.1.3",
- "postcss-reduce-initial": "^5.1.0",
+ "postcss-reduce-initial": "^5.1.1",
"postcss-reduce-transforms": "^5.1.0",
"postcss-svgo": "^5.1.0",
"postcss-unique-selectors": "^5.1.1"
@@ -9683,9 +9424,9 @@
}
},
"devtools-protocol": {
- "version": "0.0.1045489",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1045489.tgz",
- "integrity": "sha512-D+PTmWulkuQW4D1NTiCRCFxF7pQPn0hgp4YyX4wAQ6xYXKOadSWPR3ENGDQ47MW/Ewc9v2rpC/UEEGahgBYpSQ=="
+ "version": "0.0.1056733",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1056733.tgz",
+ "integrity": "sha512-CmTu6SQx2g3TbZzDCAV58+LTxVdKplS7xip0g5oDXpZ+isr0rv5dDP8ToyVRywzPHkCCPKgKgScEcwz4uPWDIA=="
},
"dir-glob": {
"version": "3.0.1",
@@ -9754,12 +9495,6 @@
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
- "emojis-list": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
- "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
- "dev": true
- },
"end-of-stream": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
@@ -10017,27 +9752,6 @@
"schema-utils": "^4.0.0"
},
"dependencies": {
- "ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
- "ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.3"
- }
- },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -10055,24 +9769,6 @@
"supports-color": "^8.0.0"
}
},
- "json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- }
- },
"supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
@@ -10707,9 +10403,9 @@
"dev": true
},
"known-css-properties": {
- "version": "0.25.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz",
- "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==",
+ "version": "0.26.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz",
+ "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==",
"dev": true
},
"levn": {
@@ -10739,17 +10435,6 @@
"integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
"dev": true
},
- "loader-utils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz",
- "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
- "dev": true,
- "requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- }
- },
"locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -10895,47 +10580,6 @@
"dev": true,
"requires": {
"schema-utils": "^4.0.0"
- },
- "dependencies": {
- "ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
- "ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.3"
- }
- },
- "json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- }
- }
}
},
"minimatch": {
@@ -11267,12 +10911,12 @@
}
},
"postcss-convert-values": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz",
- "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz",
+ "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==",
"dev": true,
"requires": {
- "browserslist": "^4.20.3",
+ "browserslist": "^4.21.4",
"postcss-value-parser": "^4.2.0"
}
},
@@ -11344,22 +10988,22 @@
"dev": true
},
"postcss-merge-longhand": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz",
- "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==",
+ "version": "5.1.7",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz",
+ "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==",
"dev": true,
"requires": {
"postcss-value-parser": "^4.2.0",
- "stylehacks": "^5.1.0"
+ "stylehacks": "^5.1.1"
}
},
"postcss-merge-rules": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz",
- "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz",
+ "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==",
"dev": true,
"requires": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"caniuse-api": "^3.0.0",
"cssnano-utils": "^3.1.0",
"postcss-selector-parser": "^6.0.5"
@@ -11386,12 +11030,12 @@
}
},
"postcss-minify-params": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz",
- "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==",
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz",
+ "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==",
"dev": true,
"requires": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"cssnano-utils": "^3.1.0",
"postcss-value-parser": "^4.2.0"
}
@@ -11494,12 +11138,12 @@
}
},
"postcss-normalize-unicode": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz",
- "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz",
+ "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==",
"dev": true,
"requires": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"postcss-value-parser": "^4.2.0"
}
},
@@ -11533,12 +11177,12 @@
}
},
"postcss-reduce-initial": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz",
- "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz",
+ "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==",
"dev": true,
"requires": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"caniuse-api": "^3.0.0"
}
},
@@ -11631,32 +11275,33 @@
"dev": true
},
"puppeteer": {
- "version": "19.1.0",
- "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.1.0.tgz",
- "integrity": "sha512-UyJ5gz5JNjuFo6VJzIf+qDNjbSWGSoAMLuW990eErcrH6sZP85EbpLi6yG50euTMudxO/lsj4w1VNDNogHv6dA==",
+ "version": "19.2.2",
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.2.2.tgz",
+ "integrity": "sha512-m1T5Mog5qu5+dMBptWYTn6pXRdnFbydbVUCthqwbfd8/kOiMlzZBR9ywjX79LpvI1Sj+/z8+FKeIsjnMul8ZYA==",
"requires": {
"cosmiconfig": "7.0.1",
+ "devtools-protocol": "0.0.1056733",
"https-proxy-agent": "5.0.1",
"progress": "2.0.3",
"proxy-from-env": "1.1.0",
- "puppeteer-core": "19.1.0"
+ "puppeteer-core": "19.2.2"
}
},
"puppeteer-core": {
- "version": "19.1.0",
- "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.1.0.tgz",
- "integrity": "sha512-xIIJJuvqWbUwNzaB7l0TyChJYHdLvLhcHQiBLLKsMfvaQXnVa0Fzooq3Zb5bc01Q/b7XiP9pqDvUcYWSmzZQHA==",
+ "version": "19.2.2",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.2.2.tgz",
+ "integrity": "sha512-faojf+1pZ/tHXSr4x1q+9MVd9FrL3rpdbC0w7qN7MNClMoLuCvMbpR4vzcjoiJYgclt1n+SOPUOmHQViTw6frw==",
"requires": {
"cross-fetch": "3.1.5",
"debug": "4.3.4",
- "devtools-protocol": "0.0.1045489",
+ "devtools-protocol": "0.0.1056733",
"extract-zip": "2.0.1",
"https-proxy-agent": "5.0.1",
"proxy-from-env": "1.1.0",
"rimraf": "3.0.2",
"tar-fs": "2.1.1",
"unbzip2-stream": "1.4.3",
- "ws": "8.9.0"
+ "ws": "8.10.0"
}
},
"queue-microtask": {
@@ -11923,14 +11568,44 @@
"dev": true
},
"schema-utils": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
- "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
"dev": true,
"requires": {
- "@types/json-schema": "^7.0.5",
- "ajv": "^6.12.4",
- "ajv-keywords": "^3.5.2"
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.3"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true
+ }
}
},
"semver": {
@@ -12138,19 +11813,19 @@
"dev": true
},
"stylehacks": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz",
- "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz",
+ "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==",
"dev": true,
"requires": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"postcss-selector-parser": "^6.0.4"
}
},
"stylelint": {
- "version": "14.14.0",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.14.0.tgz",
- "integrity": "sha512-yUI+4xXfPHVnueYddSQ/e1GuEA/2wVhWQbGj16AmWLtQJtn28lVxfS4b0CsWyVRPgd3Auzi0NXOthIEUhtQmmA==",
+ "version": "14.14.1",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.14.1.tgz",
+ "integrity": "sha512-Jnftu+lSD8cSpcV/+Z2nfgfgFpTIS1FcujezXPngtoIQ6wtwutL22MsNE0dJuMiM1h1790g2qIjAyUZCMrX4sw==",
"dev": true,
"requires": {
"@csstools/selector-specificity": "^2.0.2",
@@ -12170,13 +11845,13 @@
"import-lazy": "^4.0.0",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.25.0",
+ "known-css-properties": "^0.26.0",
"mathml-tag-names": "^2.1.3",
"meow": "^9.0.0",
"micromatch": "^4.0.5",
"normalize-path": "^3.0.0",
"picocolors": "^1.0.0",
- "postcss": "^8.4.17",
+ "postcss": "^8.4.18",
"postcss-media-query-parser": "^0.2.3",
"postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^6.0.0",
@@ -12188,7 +11863,7 @@
"style-search": "^0.1.0",
"supports-hyperlinks": "^2.3.0",
"svg-tags": "^1.0.0",
- "table": "^6.8.0",
+ "table": "^6.8.1",
"v8-compile-cache": "^2.3.0",
"write-file-atomic": "^4.0.2"
},
@@ -12236,27 +11911,6 @@
"schema-utils": "^4.0.0"
},
"dependencies": {
- "ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
- "ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.3"
- }
- },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -12274,24 +11928,6 @@
"supports-color": "^8.0.0"
}
},
- "json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- }
- },
"supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
@@ -12366,9 +12002,9 @@
}
},
"table": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz",
- "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==",
+ "version": "6.8.1",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
+ "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
"dev": true,
"requires": {
"ajv": "^8.0.1",
@@ -12760,9 +12396,9 @@
}
},
"ws": {
- "version": "8.9.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz",
- "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==",
+ "version": "8.10.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz",
+ "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==",
"requires": {}
},
"yallist": {
diff --git a/package.json b/package.json
index 64b8f099..b35a76e3 100644
--- a/package.json
+++ b/package.json
@@ -6,17 +6,17 @@
"license": "CC0-1.0",
"dependencies": {
"normalize.css": "^8.0.1",
- "puppeteer": "^19.1.0"
+ "puppeteer": "^19.2.2"
},
"devDependencies": {
"@babel/core": "^7.19.6",
"@babel/preset-env": "^7.19.4",
- "autoprefixer": "^10.4.12",
- "babel-loader": "^8.2.1",
+ "autoprefixer": "^10.4.13",
+ "babel-loader": "^9.1.0",
"browserlist": "^1.0.1",
"compression-webpack-plugin": "^10.0.0",
"css-loader": "^6.2.0",
- "cssnano": "^5.1.13",
+ "cssnano": "^5.1.14",
"eslint": "^8.26.0",
"eslint-webpack-plugin": "^3.2.0",
"mini-css-extract-plugin": "^2.6.1",
@@ -25,7 +25,7 @@
"postcss-combine-media-query": "^1.0.1",
"postcss-import": "^15.0.0",
"postcss-loader": "^7.0.1",
- "stylelint": "^14.14.0",
+ "stylelint": "^14.14.1",
"stylelint-config-standard": "^29.0.0",
"stylelint-webpack-plugin": "^3.1.1",
"webpack": "^5.74.0",
diff --git a/resources/views/templates/note.blade.php b/resources/views/templates/note.blade.php
index 20309057..ebb2cbe4 100644
--- a/resources/views/templates/note.blade.php
+++ b/resources/views/templates/note.blade.php
@@ -33,12 +33,14 @@
$note->tweet_id ||
$note->facebook_url ||
$note->swarm_url ||
- $note->instagram_url)
+ $note->instagram_url ||
+ $note->mastodon_url)
@include('templates.social-links', [
'tweet_id' => $note->tweet_id,
'facebook_url' => $note->facebook_url,
'swarm_url' => $note->swarm_url,
'instagram_url' => $note->instagram_url,
+ 'mastodon_url' => $note->mastodon_url,
])
@endif
diff --git a/resources/views/templates/social-links.blade.php b/resources/views/templates/social-links.blade.php
index 99e16753..cdfeb619 100644
--- a/resources/views/templates/social-links.blade.php
+++ b/resources/views/templates/social-links.blade.php
@@ -27,3 +27,15 @@
@endif
+@if($mastodon_url !== null)
+
+@endif
diff --git a/tests/Feature/MicropubControllerTest.php b/tests/Feature/MicropubControllerTest.php
index 12604ad3..aa42b0a6 100644
--- a/tests/Feature/MicropubControllerTest.php
+++ b/tests/Feature/MicropubControllerTest.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace Tests\Feature;
use App\Jobs\SendWebMentions;
+use App\Jobs\SyndicateNoteToMastodon;
use App\Jobs\SyndicateNoteToTwitter;
use App\Models\Media;
use App\Models\Note;
@@ -123,7 +124,7 @@ class MicropubControllerTest extends TestCase
}
/** @test */
- public function micropubClientCanRequestTheNewNoteIsSyndicatedToTwitter(): void
+ public function micropubClientCanRequestTheNewNoteIsSyndicatedToTwitterAndMastodon(): void
{
Queue::fake();
@@ -131,6 +132,10 @@ class MicropubControllerTest extends TestCase
'uid' => 'https://twitter.com/jonnybarnes',
'service_name' => 'Twitter',
]);
+ SyndicationTarget::factory()->create([
+ 'uid' => 'https://mastodon.social/@jonnybarnes',
+ 'service_name' => 'Mastodon',
+ ]);
$faker = Factory::create();
$note = $faker->text;
@@ -139,13 +144,17 @@ class MicropubControllerTest extends TestCase
[
'h' => 'entry',
'content' => $note,
- 'mp-syndicate-to' => 'https://twitter.com/jonnybarnes',
+ 'mp-syndicate-to' => [
+ 'https://twitter.com/jonnybarnes',
+ 'https://mastodon.social/@jonnybarnes',
+ ],
],
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]
);
$response->assertJson(['response' => 'created']);
$this->assertDatabaseHas('notes', ['note' => $note]);
Queue::assertPushed(SyndicateNoteToTwitter::class);
+ Queue::assertPushed(SyndicateNoteToMastodon::class);
}
/** @test */
@@ -243,6 +252,10 @@ class MicropubControllerTest extends TestCase
'uid' => 'https://twitter.com/jonnybarnes',
'service_name' => 'Twitter',
]);
+ SyndicationTarget::factory()->create([
+ 'uid' => 'https://mastodon.social/@jonnybarnes',
+ 'service_name' => 'Mastodon',
+ ]);
$faker = Factory::create();
$note = $faker->text;
@@ -255,6 +268,7 @@ class MicropubControllerTest extends TestCase
'in-reply-to' => ['https://aaronpk.localhost'],
'mp-syndicate-to' => [
'https://twitter.com/jonnybarnes',
+ 'https://mastodon.social/@jonnybarnes',
],
'photo' => [config('filesystems.disks.s3.url') . '/test-photo.jpg'],
],
@@ -266,6 +280,7 @@ class MicropubControllerTest extends TestCase
->assertJson(['response' => 'created']);
Queue::assertPushed(SendWebMentions::class);
Queue::assertPushed(SyndicateNoteToTwitter::class);
+ Queue::assertPushed(SyndicateNoteToMastodon::class);
}
/**
diff --git a/tests/Unit/Jobs/SyndicateNoteToMastodonJobTest.php b/tests/Unit/Jobs/SyndicateNoteToMastodonJobTest.php
new file mode 100644
index 00000000..be7bf6d2
--- /dev/null
+++ b/tests/Unit/Jobs/SyndicateNoteToMastodonJobTest.php
@@ -0,0 +1,39 @@
+ 'test']);
+ $faker = Factory::create();
+ $randomNumber = $faker->randomNumber();
+ $mock = new MockHandler([
+ new Response(201, ['Location' => 'https://mastodon.example/@jonny/' . $randomNumber]),
+ ]);
+ $handler = HandlerStack::create($mock);
+ $client = new Client(['handler' => $handler]);
+
+ $note = Note::factory()->create();
+ $job = new SyndicateNoteToMastodon($note);
+ $job->handle($client);
+
+ $this->assertDatabaseHas('notes', [
+ 'mastodon_url' => 'https://mastodon.example/@jonny/' . $randomNumber,
+ ]);
+ }
+}
diff --git a/tests/Unit/NotesTest.php b/tests/Unit/NotesTest.php
index 489673c2..098516b9 100644
--- a/tests/Unit/NotesTest.php
+++ b/tests/Unit/NotesTest.php
@@ -113,8 +113,8 @@ class NotesTest extends TestCase
/** @test */
public function shorturlMethodReturnsExpectedValue(): void
{
- Note::factory(14)->create();
- $note = Note::find(14);
+ $note = Note::factory()->make();
+ $note->id = 14;
$this->assertEquals(config('app.shorturl') . '/notes/E', $note->shorturl);
}