From c5e84cbbf9bff653389e6318ad0be1158132894d Mon Sep 17 00:00:00 2001 From: Matthias Gutjahr Date: Thu, 27 Dec 2018 18:47:35 +0100 Subject: [PATCH 001/179] Add required PHP extensions to composer.json Signed-off-by: Matthias Gutjahr --- composer.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/composer.json b/composer.json index 77185550..e2738cb6 100644 --- a/composer.json +++ b/composer.json @@ -6,6 +6,13 @@ "type": "project", "require": { "php": "^7.1.3", + "ext-bcmath": "*", + "ext-ctype": "*", + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-redis": "*", "beyondcode/laravel-self-diagnosis": "^1.0.2", "bitverse/identicon": "^1.1", "doctrine/dbal": "^2.7", From 036c31141f4ebd811d94e4e72be3b3ed93a4939a Mon Sep 17 00:00:00 2001 From: Carly Ho Date: Sun, 30 Dec 2018 10:41:07 -0600 Subject: [PATCH 002/179] Apply content-box box-sizing to avatars images; add object-fit: cover to post thumbnail image on comment pages --- resources/assets/sass/custom.scss | 16 +++++++++++++--- resources/views/status/reply.blade.php | 8 ++++---- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/resources/assets/sass/custom.scss b/resources/assets/sass/custom.scss index ea2e55bd..ad08fe89 100644 --- a/resources/assets/sass/custom.scss +++ b/resources/assets/sass/custom.scss @@ -319,7 +319,7 @@ details summary::-webkit-details-marker { box-shadow: 0 2px 4px 0 rgba(0,0,0,0.08); border-radius: 5px; padding: .5em 1em .5em .5em; -} +} .input-elevated::placeholder { color: #838D99; @@ -417,7 +417,7 @@ details summary::-webkit-details-marker { background: rgba(0,0,0,0.04); } -.timeline-sidenav.nav-pills .nav-link.active, +.timeline-sidenav.nav-pills .nav-link.active, .timeline-sidenav.nav-pills .show > .nav-link { color: #08d; background: transparent; @@ -434,4 +434,14 @@ details summary::-webkit-details-marker { .notification-tooltip .arrow::before { border-bottom-color:#dc3545 !important; -} \ No newline at end of file +} + +.img-thumbnail { + box-sizing: content-box; +} + +.reply-container { + .post-thumbnail { + object-fit: cover; + } +} diff --git a/resources/views/status/reply.blade.php b/resources/views/status/reply.blade.php index c997c6a2..9d1a9da9 100644 --- a/resources/views/status/reply.blade.php +++ b/resources/views/status/reply.blade.php @@ -2,12 +2,12 @@ @section('content') -
+
- +
@@ -54,6 +54,6 @@ $('.reactions').hide(); $('.more-comments').hide(); $('.card-footer').hide(); - }); + }); -@endpush \ No newline at end of file +@endpush From 4f578d0db52674c7a430bed554d0d1782ba3e9df Mon Sep 17 00:00:00 2001 From: Aditoo17 <42938951+Aditoo17@users.noreply.github.com> Date: Mon, 31 Dec 2018 11:13:35 +0100 Subject: [PATCH 003/179] L10n: Update Czech translation --- resources/lang/cs/profile.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/resources/lang/cs/profile.php b/resources/lang/cs/profile.php index f6fa1fee..b805ad89 100644 --- a/resources/lang/cs/profile.php +++ b/resources/lang/cs/profile.php @@ -9,4 +9,7 @@ return [ 'privateProfileWarning' => 'Tento účet je soukromý', 'alreadyFollow' => 'Již uživatele :username sledujete?', 'loginToSeeProfile' => 'pro zobrazení jeho/jejích fotek a videí.', + + 'status.disabled.header' => 'Profil nedostupný', + 'status.disabled.body' => 'Omlouváme se, tento profil není v tuto chvíli dostupný. Prosím zkuste to znovu zakrátko.', ]; From 05f829b5721b380f2b7e587d03ae2170c58258c9 Mon Sep 17 00:00:00 2001 From: Marek Isalski Date: Wed, 2 Jan 2019 17:48:52 +0000 Subject: [PATCH 004/179] add default ACTIVITY_PUB=false to .env.example --- .env.example | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.env.example b/.env.example index bbad988d..1d97b042 100644 --- a/.env.example +++ b/.env.example @@ -53,3 +53,6 @@ MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" MIX_APP_URL="${APP_URL}" MIX_API_BASE="${API_BASE}" MIX_API_SEARCH="${API_SEARCH}" + +ACTIVITY_PUB=false + From fae22c349116c7ad9bada5c5532a0987cc5a3fe4 Mon Sep 17 00:00:00 2001 From: Marek Isalski Date: Wed, 2 Jan 2019 18:41:12 +0000 Subject: [PATCH 005/179] more useful settings in .env.example file --- .env.example | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 1d97b042..aa4bd857 100644 --- a/.env.example +++ b/.env.example @@ -54,5 +54,13 @@ MIX_APP_URL="${APP_URL}" MIX_API_BASE="${API_BASE}" MIX_API_SEARCH="${API_SEARCH}" -ACTIVITY_PUB=false +ACTIVITYPUB_INBOX=false +ACTIVITYPUB_SHAREDINBOX=false +# Set these both "true" to enable federation. +# You might need to also run: +# php artisan cache:clear +# php artisan optimize:clear +# php artisan optimize +ACTIVITY_PUB=false +REMOTE_FOLLOW=false From b610ed77a5de9a075ca8b100b59cf6c5fda2944b Mon Sep 17 00:00:00 2001 From: Simounet Date: Sun, 6 Jan 2019 23:05:55 +0100 Subject: [PATCH 006/179] manifest.json added for webapp declaration --- public/manifest.json | 20 ++++++++++++++++++++ resources/views/layouts/app.blade.php | 1 + 2 files changed, 21 insertions(+) create mode 100644 public/manifest.json diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 00000000..03aeb564 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,20 @@ +{ + "name": "PixelFed", + "short_name": "PixelFed", + "start_url": ".", + "display": "standalone", + "background_color": "#f5f8fa", + "description": "Federated Image Sharing", + "icons": [ + { + "src": "img/favicon.png", + "type": "image/png", + "sizes": "153x152" + }, + { + "src": "img/pixelfed-icon-color.svg", + "type": "image/svg", + "sizes": "50x50" + } + ] +} diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index f461b395..dfbe77a5 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -10,6 +10,7 @@ {{ $title ?? config('app.name', 'Laravel') }} + From c5683fec51aa95192df9f54e03dab385ba46e252 Mon Sep 17 00:00:00 2001 From: daniel Date: Mon, 7 Jan 2019 10:32:13 +0100 Subject: [PATCH 007/179] Update composer.json Remove ext-redis as suggested Co-Authored-By: mattsches --- composer.json | 1 - 1 file changed, 1 deletion(-) diff --git a/composer.json b/composer.json index e2738cb6..0cab1ed6 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,6 @@ "ext-json": "*", "ext-mbstring": "*", "ext-openssl": "*", - "ext-redis": "*", "beyondcode/laravel-self-diagnosis": "^1.0.2", "bitverse/identicon": "^1.1", "doctrine/dbal": "^2.7", From 2b6d282e9475006a4056e8fee6cc3ecc48df965e Mon Sep 17 00:00:00 2001 From: "M. Hamzah Khan" Date: Tue, 8 Jan 2019 15:40:49 +0000 Subject: [PATCH 008/179] Configure and enable mod_remoteip, and handle X-Forwarded-Proto header. --- contrib/docker/Dockerfile.apache | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/contrib/docker/Dockerfile.apache b/contrib/docker/Dockerfile.apache index 1bd5961e..d541efa5 100644 --- a/contrib/docker/Dockerfile.apache +++ b/contrib/docker/Dockerfile.apache @@ -17,7 +17,15 @@ RUN apt-get update \ && docker-php-ext-install pdo_mysql pcntl gd exif bcmath \ && pecl install imagick \ && docker-php-ext-enable imagick pcntl imagick gd exif \ - && a2enmod rewrite \ + && a2enmod rewrite remoteip \ + && {\ + echo RemoteIPHeader X-Real-IP ;\ + echo RemoteIPTrustedProxy 10.0.0.0/8 ;\ + echo RemoteIPTrustedProxy 172.16.0.0/12 ;\ + echo RemoteIPTrustedProxy 192.168.0.0/16 ;\ + echo SetEnvIf X-Forwarded-Proto "https" HTTPS=on ;\ + } > /etc/apache2/conf-available/remoteip.conf \ + && a2enconf remoteip \ && curl -LsS https://getcomposer.org/download/${COMPOSER_VERSION}/composer.phar -o /usr/bin/composer \ && echo "${COMPOSER_CHECKSUM} /usr/bin/composer" | sha256sum -c - \ && chmod 755 /usr/bin/composer \ From f45ac979761b936f6b0914a4fcb3224e5a2b6413 Mon Sep 17 00:00:00 2001 From: Carly Ho Date: Thu, 10 Jan 2019 10:05:49 -0600 Subject: [PATCH 009/179] output ->caption to activitypub objects --- app/Transformer/ActivityPub/StatusTransformer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Transformer/ActivityPub/StatusTransformer.php b/app/Transformer/ActivityPub/StatusTransformer.php index 8cbf1d30..e89a57fa 100644 --- a/app/Transformer/ActivityPub/StatusTransformer.php +++ b/app/Transformer/ActivityPub/StatusTransformer.php @@ -50,7 +50,7 @@ class StatusTransformer extends Fractal\TransformerAbstract 'type' => 'Document', 'mediaType' => $media->mime, 'url' => $media->url(), - 'name' => null, + 'name' => $media->caption ]; }), 'tag' => [], From c456fa7ef1634b5f2d270fd2d38a6b883f3561bb Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Fri, 11 Jan 2019 21:28:08 -0700 Subject: [PATCH 010/179] Update Media Model, add S3 support --- app/Media.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Media.php b/app/Media.php index fd507e7f..79e399ea 100644 --- a/app/Media.php +++ b/app/Media.php @@ -23,7 +23,7 @@ class Media extends Model $url = $this->remote_url; } else { $path = $this->media_path; - $url = Storage::url($path); + $url = $this->cdn_url ?? Storage::url($path); } return url($url); From 250d19e40b9dbb216d2f7c8d8d9110737ba308ca Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 00:41:23 -0700 Subject: [PATCH 011/179] Add story migrations --- .../migrations/2019_01_12_054413_stories.php | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 database/migrations/2019_01_12_054413_stories.php diff --git a/database/migrations/2019_01_12_054413_stories.php b/database/migrations/2019_01_12_054413_stories.php new file mode 100644 index 00000000..2bb160c5 --- /dev/null +++ b/database/migrations/2019_01_12_054413_stories.php @@ -0,0 +1,77 @@ +bigIncrements('id'); + $table->bigInteger('story_id')->unsigned()->index(); + $table->string('media_path')->nullable(); + $table->string('media_url')->nullable(); + $table->tinyInteger('duration')->unsigned(); + $table->string('filter')->nullable(); + $table->string('link_url')->nullable()->index(); + $table->string('link_text')->nullable(); + $table->tinyInteger('order')->unsigned()->nullable(); + $table->string('type')->default('photo'); + $table->json('layers')->nullable(); + $table->timestamp('expires_at')->nullable(); + $table->timestamps(); + }); + + Schema::create('story_views', function (Blueprint $table) { + $table->bigIncrements('id'); + $table->bigInteger('story_id')->unsigned()->index(); + $table->bigInteger('profile_id')->unsigned()->index(); + $table->unique(['story_id', 'profile_id']); + $table->timestamps(); + }); + + Schema::table('stories', function (Blueprint $table) { + $table->string('title')->nullable()->after('profile_id'); + $table->boolean('preview_photo')->default(false)->after('title'); + $table->boolean('local_only')->default(false)->after('preview_photo'); + $table->boolean('is_live')->default(false)->after('local_only'); + $table->string('broadcast_url')->nullable()->after('is_live'); + $table->string('broadcast_key')->nullable()->after('broadcast_url'); + }); + + Schema::table('story_reactions', function (Blueprint $table) { + $table->bigInteger('story_id')->unsigned()->index()->after('profile_id'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('story_items'); + Schema::dropIfExists('story_views'); + + Schema::table('stories', function (Blueprint $table) { + $table->dropColumn('title'); + $table->dropColumn('preview_photo'); + $table->dropColumn('local_only'); + $table->dropColumn('is_live'); + $table->dropColumn('broadcast_url'); + $table->dropColumn('broadcast_key'); + }); + + Schema::table('story_reactions', function (Blueprint $table) { + $table->dropColumn('story_id'); + }); + } +} From c25ca8dc99980396be2e8d612cd4173b37fb359b Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 00:41:47 -0700 Subject: [PATCH 012/179] Update config --- config/pixelfed.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/config/pixelfed.php b/config/pixelfed.php index f02d1d1f..f6da8cd5 100644 --- a/config/pixelfed.php +++ b/config/pixelfed.php @@ -198,6 +198,16 @@ return [ */ 'account_delete_after' => env('ACCOUNT_DELETE_AFTER', false), + /* + |-------------------------------------------------------------------------- + | Enable Cloud Storage + |-------------------------------------------------------------------------- + | + | Store media on object storage like S3, Digital Ocean Spaces, Rackspace + | + */ + 'cloud_storage' => env('PF_ENABLE_CLOUD', false), + 'media_types' => env('MEDIA_TYPES', 'image/jpeg,image/png,image/gif'), 'enforce_account_limit' => env('LIMIT_ACCOUNT_SIZE', true), From ae78addab4549038f403a7eb6fb0d6d296b04799 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 00:42:26 -0700 Subject: [PATCH 013/179] Update Story Model --- app/Story.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/Story.php b/app/Story.php index 1b581010..9ac755c9 100644 --- a/app/Story.php +++ b/app/Story.php @@ -6,5 +6,18 @@ use Illuminate\Database\Eloquent\Model; class Story extends Model { - // + public function items() + { + return $this->hasMany(StoryItem::class); + } + + public function reactions() + { + return $this->hasMany(StoryReaction::class); + } + + public function views() + { + return $this->hasMany(StoryView::class); + } } From d9f61d0424d80dbf2edafe8dfd69db59d08a182e Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 00:43:53 -0700 Subject: [PATCH 014/179] Add StoryItem Model --- app/StoryItem.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 app/StoryItem.php diff --git a/app/StoryItem.php b/app/StoryItem.php new file mode 100644 index 00000000..542b6508 --- /dev/null +++ b/app/StoryItem.php @@ -0,0 +1,13 @@ +belongsTo(Story::class); + } +} From d5bb6626b3de6031aeafb92f1c157bbfb29396de Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 00:44:51 -0700 Subject: [PATCH 015/179] Update StoryReaction model --- app/StoryItem.php | 8 ++++---- app/StoryReaction.php | 5 ++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/StoryItem.php b/app/StoryItem.php index 542b6508..88500696 100644 --- a/app/StoryItem.php +++ b/app/StoryItem.php @@ -6,8 +6,8 @@ use Illuminate\Database\Eloquent\Model; class StoryItem extends Model { - public function story() - { - return $this->belongsTo(Story::class); - } + public function story() + { + return $this->belongsTo(Story::class); + } } diff --git a/app/StoryReaction.php b/app/StoryReaction.php index 8b9cc806..dff5c7ce 100644 --- a/app/StoryReaction.php +++ b/app/StoryReaction.php @@ -6,5 +6,8 @@ use Illuminate\Database\Eloquent\Model; class StoryReaction extends Model { - // + public function story() + { + return $this->belongsTo(Story::class); + } } From eb652bf33956b4c9bf651ff94ba286cc4accc3e4 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 00:45:27 -0700 Subject: [PATCH 016/179] Add StoryView Model --- app/StoryView.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 app/StoryView.php diff --git a/app/StoryView.php b/app/StoryView.php new file mode 100644 index 00000000..a2674519 --- /dev/null +++ b/app/StoryView.php @@ -0,0 +1,13 @@ +belongsTo(Story::class); + } +} From dc2a3da72d1072755c63cacd686c48e02d3fee79 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 00:47:00 -0700 Subject: [PATCH 017/179] Update Profile Model --- app/Profile.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Profile.php b/app/Profile.php index a66f476c..14556a2b 100644 --- a/app/Profile.php +++ b/app/Profile.php @@ -12,7 +12,7 @@ class Profile extends Model protected $dates = ['deleted_at']; protected $hidden = ['private_key']; - protected $visible = ['username', 'name']; + protected $visible = ['id', 'user_id', 'username', 'name']; public function user() { From 33b4d354e7eded5664ba90ec1373fedd70774664 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 01:07:08 -0700 Subject: [PATCH 018/179] Update ImageOptimize pipeline --- .../ImageOptimizePipeline/ImageUpdate.php | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/app/Jobs/ImageOptimizePipeline/ImageUpdate.php b/app/Jobs/ImageOptimizePipeline/ImageUpdate.php index 34fde30f..173dd9f3 100644 --- a/app/Jobs/ImageOptimizePipeline/ImageUpdate.php +++ b/app/Jobs/ImageOptimizePipeline/ImageUpdate.php @@ -2,6 +2,7 @@ namespace App\Jobs\ImageOptimizePipeline; +use Storage; use App\Media; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; @@ -9,6 +10,7 @@ use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use ImageOptimizer; +use Illuminate\Http\File; class ImageUpdate implements ShouldQueue { @@ -17,9 +19,8 @@ class ImageUpdate implements ShouldQueue protected $media; protected $protectedMimes = [ - 'image/gif', - 'image/bmp', - 'video/mp4', + 'image/jpeg', + 'image/png', ]; /** @@ -43,21 +44,31 @@ class ImageUpdate implements ShouldQueue $path = storage_path('app/'.$media->media_path); $thumb = storage_path('app/'.$media->thumbnail_path); - try { - if (!in_array($media->mime, $this->protectedMimes)) { - ImageOptimizer::optimize($thumb); - ImageOptimizer::optimize($path); - } - } catch (Exception $e) { - return; + if (in_array($media->mime, $this->protectedMimes) == true) { + ImageOptimizer::optimize($thumb); + ImageOptimizer::optimize($path); } + if (!is_file($path) || !is_file($thumb)) { return; } + $photo_size = filesize($path); $thumb_size = filesize($thumb); $total = ($photo_size + $thumb_size); $media->size = $total; $media->save(); + + if(config('pixelfed.cloud_storage') == true) { + $p = explode('/', $media->media_path); + $monthHash = $p[2]; + $userHash = $p[3]; + $storagePath = "public/m/{$monthHash}/{$userHash}"; + $file = Storage::disk(config('filesystems.cloud'))->putFile($storagePath, new File($path), 'public'); + $url = Storage::disk(config('filesystems.cloud'))->url($file); + $media->cdn_url = $url; + $media->optimized_url = $url; + $media->save(); + } } } From 7fcb1186d911109524feb52b7ba4ce77030554fc Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 01:07:39 -0700 Subject: [PATCH 019/179] Update Status Model --- app/Status.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/Status.php b/app/Status.php index 73b34382..6bb36347 100644 --- a/app/Status.php +++ b/app/Status.php @@ -118,7 +118,11 @@ class Status extends Model $media = $this->firstMedia(); $path = $media->media_path; $hash = is_null($media->processed_at) ? md5('unprocessed') : md5($media->created_at); - $url = Storage::url($path)."?v={$hash}"; + if(config('pixelfed.cloud_storage') == true) { + $url = Storage::disk(config('filesystems.cloud'))->url($path)."?v={$hash}"; + } else { + $url = Storage::url($path)."?v={$hash}"; + } return url($url); } From a6228ffce768e2bb0e455c627632a413c4f3b380 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 01:09:29 -0700 Subject: [PATCH 020/179] Add spaces filesystem driver --- config/filesystems.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/config/filesystems.php b/config/filesystems.php index cc6157b2..1f8d84cc 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -65,6 +65,21 @@ return [ 'endpoint' => env('AWS_ENDPOINT'), ], + 'spaces' => [ + 'driver' => 's3', + 'key' => env('DO_SPACES_KEY'), + 'secret' => env('DO_SPACES_SECRET'), + 'endpoint' => env('DO_SPACES_ENDPOINT'), + 'region' => env('DO_SPACES_REGION'), + 'bucket' => env('DO_SPACES_BUCKET'), + 'visibility' => 'public', + 'options' => [ + 'CacheControl' => 'max-age=31536000' + ], + 'root' => env('DO_SPACES_ROOT','/'), + 'url' => str_replace(env('DO_SPACES_REGION'),env('DO_SPACES_BUCKET').'.'.env('DO_SPACES_REGION'),str_replace("digitaloceanspaces","cdn.digitaloceanspaces",env('DO_SPACES_ENDPOINT'))), + ], + ], ]; From 92f2d5cf74470389e30653c6562d5d68ed6f25bc Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 01:22:12 -0700 Subject: [PATCH 021/179] Add Follow ap validator --- app/Util/ActivityPub/Validator/Follow.php | 25 +++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 app/Util/ActivityPub/Validator/Follow.php diff --git a/app/Util/ActivityPub/Validator/Follow.php b/app/Util/ActivityPub/Validator/Follow.php new file mode 100644 index 00000000..1bd01b5d --- /dev/null +++ b/app/Util/ActivityPub/Validator/Follow.php @@ -0,0 +1,25 @@ + 'required', + 'id' => 'required|string', + 'type' => [ + 'required', + Rule::in(['Like']) + ], + 'actor' => 'required|url|active_url', + 'object' => 'required|url|active_url' + ])->passes(); + + return $valid; + } +} \ No newline at end of file From 12d4bd7fe4542f8b6b42295c01c121c1097bdfaa Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 01:24:31 -0700 Subject: [PATCH 022/179] Add Like ap validator --- app/Util/ActivityPub/Validator/Like.php | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 app/Util/ActivityPub/Validator/Like.php diff --git a/app/Util/ActivityPub/Validator/Like.php b/app/Util/ActivityPub/Validator/Like.php new file mode 100644 index 00000000..2573c1af --- /dev/null +++ b/app/Util/ActivityPub/Validator/Like.php @@ -0,0 +1,25 @@ + 'required', + 'id' => 'required|string', + 'type' => [ + 'required', + Rule::in(['Like']) + ], + 'actor' => 'required|url|active_url', + 'object' => 'required|url|active_url' + ])->passes(); + + return $valid; + } +} \ No newline at end of file From fe6f48691419daadf07ae47a4a9ede9580368a02 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 01:25:21 -0700 Subject: [PATCH 023/179] Fix Follow validator --- app/Util/ActivityPub/Validator/Follow.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Util/ActivityPub/Validator/Follow.php b/app/Util/ActivityPub/Validator/Follow.php index 1bd01b5d..a9c6ca2e 100644 --- a/app/Util/ActivityPub/Validator/Follow.php +++ b/app/Util/ActivityPub/Validator/Follow.php @@ -14,7 +14,7 @@ class Follow { 'id' => 'required|string', 'type' => [ 'required', - Rule::in(['Like']) + Rule::in(['Follow']) ], 'actor' => 'required|url|active_url', 'object' => 'required|url|active_url' From d7d1303a63197e8cb7a46a70a68048bbee1466a0 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 12:38:09 -0700 Subject: [PATCH 024/179] Update Story Model --- app/Story.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/Story.php b/app/Story.php index 9ac755c9..447ea3c8 100644 --- a/app/Story.php +++ b/app/Story.php @@ -6,6 +6,13 @@ use Illuminate\Database\Eloquent\Model; class Story extends Model { + protected $visible = ['id']; + + public function profile() + { + return $this->belongsTo(Profile::class); + } + public function items() { return $this->hasMany(StoryItem::class); From 353b8fd856de6726f439121ad4820a62664bae38 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 13:14:22 -0700 Subject: [PATCH 025/179] Update Story Model --- app/Story.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/Story.php b/app/Story.php index 447ea3c8..314679b6 100644 --- a/app/Story.php +++ b/app/Story.php @@ -2,12 +2,13 @@ namespace App; +use Auth; use Illuminate\Database\Eloquent\Model; class Story extends Model { protected $visible = ['id']; - + public function profile() { return $this->belongsTo(Profile::class); @@ -27,4 +28,10 @@ class Story extends Model { return $this->hasMany(StoryView::class); } + + public function seen($pid = false) + { + $id = $pid ?? Auth::user()->profile->id; + return $this->views()->whereProfileId($id)->exists(); + } } From e764b6e8b33985e13029dc18478eb6f1d5dc62c0 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 13:34:10 -0700 Subject: [PATCH 026/179] Update StoryItem model --- app/StoryItem.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/StoryItem.php b/app/StoryItem.php index 88500696..26360576 100644 --- a/app/StoryItem.php +++ b/app/StoryItem.php @@ -3,6 +3,7 @@ namespace App; use Illuminate\Database\Eloquent\Model; +use Storage; class StoryItem extends Model { @@ -10,4 +11,9 @@ class StoryItem extends Model { return $this->belongsTo(Story::class); } + + public function url() + { + return Storage::url($this->media_path); + } } From fcabd961ce108817c4ea6f2f8a8abbd8be76b4db Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 13:35:39 -0700 Subject: [PATCH 027/179] Add API StoryTransformer --- app/Transformer/Api/StoryTransformer.php | 34 ++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 app/Transformer/Api/StoryTransformer.php diff --git a/app/Transformer/Api/StoryTransformer.php b/app/Transformer/Api/StoryTransformer.php new file mode 100644 index 00000000..3d87a572 --- /dev/null +++ b/app/Transformer/Api/StoryTransformer.php @@ -0,0 +1,34 @@ + $story->id, + 'photo' => $story->profile->avatarUrl(), + 'name' => '', + 'link' => '', + 'lastUpdated' => $story->updated_at->format('U'), + 'seen' => $story->seen(), + 'items' => [], + ]; + } + + public function includeItems(Story $story) + { + $items = $story->items; + + return $this->collection($items, new StoryItemTransformer()); + } + +} From b752989fb6f46f60a14e2a87e13399b0415ef915 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 13:36:07 -0700 Subject: [PATCH 028/179] Add API StoryItemTransformer --- app/Transformer/Api/StoryItemTransformer.php | 27 ++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 app/Transformer/Api/StoryItemTransformer.php diff --git a/app/Transformer/Api/StoryItemTransformer.php b/app/Transformer/Api/StoryItemTransformer.php new file mode 100644 index 00000000..3d10cb97 --- /dev/null +++ b/app/Transformer/Api/StoryItemTransformer.php @@ -0,0 +1,27 @@ + (string) Str::uuid(), + 'type' => $item->type, + 'length' => $item->duration, + 'src' => $item->url(), + 'preview' => null, + 'link' => null, + 'linkText' => null, + 'time' => $item->updated_at->format('U'), + 'seen' => $item->story->seen(), + ]; + } + +} From a94e0ce40d8005a002f5df6a564a4308f04d4447 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 13:45:12 -0700 Subject: [PATCH 029/179] Add Stories.vue component, still wip --- resources/assets/js/components/Stories.vue | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 resources/assets/js/components/Stories.vue diff --git a/resources/assets/js/components/Stories.vue b/resources/assets/js/components/Stories.vue new file mode 100644 index 00000000..a92ed94e --- /dev/null +++ b/resources/assets/js/components/Stories.vue @@ -0,0 +1,40 @@ + + + + + \ No newline at end of file From ba8c1017035b7edc8d6d9aea10dbb294e1c36f94 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 13:46:14 -0700 Subject: [PATCH 030/179] Update FollowerController --- app/Http/Controllers/FollowerController.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/FollowerController.php b/app/Http/Controllers/FollowerController.php index e312a293..d0ebb5fc 100644 --- a/app/Http/Controllers/FollowerController.php +++ b/app/Http/Controllers/FollowerController.php @@ -39,6 +39,7 @@ class FollowerController extends Controller $user = Auth::user()->profile; $target = Profile::where('id', '!=', $user->id)->whereNull('status')->findOrFail($item); $private = (bool) $target->is_private; + $remote = (bool) $target->domain; $blocked = UserFilter::whereUserId($target->id) ->whereFilterType('block') ->whereFilterableId($user->id) @@ -51,7 +52,7 @@ class FollowerController extends Controller $isFollowing = Follower::whereProfileId($user->id)->whereFollowingId($target->id)->count(); - if($private == true && $isFollowing == 0) { + if($private == true && $isFollowing == 0 || $remote == true) { $follow = FollowRequest::firstOrCreate([ 'follower_id' => $user->id, 'following_id' => $target->id From 84960d701cf873bc7d33e6c937d32bf89b40bd90 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 13:58:35 -0700 Subject: [PATCH 031/179] Add API Search ResultsTransformer --- app/Transformer/Api/ResultsTransformer.php | 28 ++++++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/app/Transformer/Api/ResultsTransformer.php b/app/Transformer/Api/ResultsTransformer.php index ea247360..781e9ddf 100644 --- a/app/Transformer/Api/ResultsTransformer.php +++ b/app/Transformer/Api/ResultsTransformer.php @@ -8,12 +8,12 @@ class ResultsTransformer extends Fractal\TransformerAbstract { protected $defaultIncludes = [ - 'account', - 'mentions', - 'media_attachments', - 'tags', + 'accounts', + 'statuses', + 'hashtags', ]; - public function transform() + + public function transform($results) { return [ 'accounts' => [], @@ -21,4 +21,22 @@ class ResultsTransformer extends Fractal\TransformerAbstract 'hashtags' => [] ]; } + + public function includeAccounts($results) + { + $accounts = $results->accounts; + return $this->collection($accounts, new AccountTransformer()); + } + + public function includeStatuses($results) + { + $statuses = $results->statuses; + return $this->collection($statuses, new StatusTransformer()); + } + + public function includeTags($results) + { + $hashtags = $status->hashtags; + return $this->collection($hashtags, new HashtagTransformer()); + } } From bb2ad95e55a1338224827a48ccd64cf5e0f19aff Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 15:16:37 -0700 Subject: [PATCH 032/179] Update LikePipeline --- app/Jobs/LikePipeline/LikePipeline.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/Jobs/LikePipeline/LikePipeline.php b/app/Jobs/LikePipeline/LikePipeline.php index f1c04b62..e1404783 100644 --- a/app/Jobs/LikePipeline/LikePipeline.php +++ b/app/Jobs/LikePipeline/LikePipeline.php @@ -19,6 +19,13 @@ class LikePipeline implements ShouldQueue protected $like; + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * From 7e16e9d43f52f1ebef18f659bf5bcb7321ca4923 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 15:17:28 -0700 Subject: [PATCH 033/179] Update MentionPipeline --- app/Jobs/MentionPipeline/MentionPipeline.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/Jobs/MentionPipeline/MentionPipeline.php b/app/Jobs/MentionPipeline/MentionPipeline.php index 8029e231..e75ede04 100644 --- a/app/Jobs/MentionPipeline/MentionPipeline.php +++ b/app/Jobs/MentionPipeline/MentionPipeline.php @@ -18,6 +18,13 @@ class MentionPipeline implements ShouldQueue protected $status; protected $mention; + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * From 219362b415bb28621a18f37b894555c61df8d3f9 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 15:18:33 -0700 Subject: [PATCH 034/179] Update SharePipeline --- app/Jobs/SharePipeline/SharePipeline.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/app/Jobs/SharePipeline/SharePipeline.php b/app/Jobs/SharePipeline/SharePipeline.php index 8d72376c..4e2fbce5 100644 --- a/app/Jobs/SharePipeline/SharePipeline.php +++ b/app/Jobs/SharePipeline/SharePipeline.php @@ -19,6 +19,13 @@ class SharePipeline implements ShouldQueue protected $like; + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * @@ -45,10 +52,10 @@ class SharePipeline implements ShouldQueue return; } - $exists = Notification::whereProfileId($status->profile_id) - ->whereActorId($actor->id) - ->whereAction('like') - ->whereItemId($status->id) + $exists = Notification::whereProfileId($target->id) + ->whereActorId($status->profile_id) + ->whereAction('share') + ->whereItemId($status->in_reply_to_id) ->whereItemType('App\Status') ->count(); @@ -57,10 +64,12 @@ class SharePipeline implements ShouldQueue } try { + $text = "{$actor->username} " . __('notification.likedPhoto'); + $html = ''; $notification = new Notification(); $notification->profile_id = $status->profile_id; $notification->actor_id = $actor->id; - $notification->action = 'like'; + $notification->action = 'share'; $notification->message = $like->toText(); $notification->rendered = $like->toHtml(); $notification->item_id = $status->id; From 8edeab11d6053ee01c4c377a126da30162343898 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 15:19:57 -0700 Subject: [PATCH 035/179] Update StatusPipeline --- app/Jobs/StatusPipeline/NewStatusPipeline.php | 9 ++++++++- app/Jobs/StatusPipeline/StatusActivityPubDeliver.php | 9 ++++++++- app/Jobs/StatusPipeline/StatusDelete.php | 9 ++++++++- app/Jobs/StatusPipeline/StatusEntityLexer.php | 9 ++++++++- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/app/Jobs/StatusPipeline/NewStatusPipeline.php b/app/Jobs/StatusPipeline/NewStatusPipeline.php index efb7d6b1..2ba51114 100644 --- a/app/Jobs/StatusPipeline/NewStatusPipeline.php +++ b/app/Jobs/StatusPipeline/NewStatusPipeline.php @@ -16,7 +16,14 @@ class NewStatusPipeline implements ShouldQueue use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected $status; - + + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * diff --git a/app/Jobs/StatusPipeline/StatusActivityPubDeliver.php b/app/Jobs/StatusPipeline/StatusActivityPubDeliver.php index 12a66c37..304ee8cc 100644 --- a/app/Jobs/StatusPipeline/StatusActivityPubDeliver.php +++ b/app/Jobs/StatusPipeline/StatusActivityPubDeliver.php @@ -18,7 +18,14 @@ class StatusActivityPubDeliver implements ShouldQueue use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected $status; - + + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * diff --git a/app/Jobs/StatusPipeline/StatusDelete.php b/app/Jobs/StatusPipeline/StatusDelete.php index 9cf6fe03..d852c112 100644 --- a/app/Jobs/StatusPipeline/StatusDelete.php +++ b/app/Jobs/StatusPipeline/StatusDelete.php @@ -19,7 +19,14 @@ class StatusDelete implements ShouldQueue use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected $status; - + + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * diff --git a/app/Jobs/StatusPipeline/StatusEntityLexer.php b/app/Jobs/StatusPipeline/StatusEntityLexer.php index cb390f8e..72cd0394 100644 --- a/app/Jobs/StatusPipeline/StatusEntityLexer.php +++ b/app/Jobs/StatusPipeline/StatusEntityLexer.php @@ -24,7 +24,14 @@ class StatusEntityLexer implements ShouldQueue protected $status; protected $entities; protected $autolink; - + + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * From a9e4589e367db44c04df7bcc821ee56416609659 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 15:20:54 -0700 Subject: [PATCH 036/179] Update InstagramImportPipeline --- app/Jobs/ImportPipeline/ImportInstagram.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/Jobs/ImportPipeline/ImportInstagram.php b/app/Jobs/ImportPipeline/ImportInstagram.php index d374fcc9..57b1b5fc 100644 --- a/app/Jobs/ImportPipeline/ImportInstagram.php +++ b/app/Jobs/ImportPipeline/ImportInstagram.php @@ -25,7 +25,14 @@ class ImportInstagram implements ShouldQueue use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected $job; - + + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * From 49d825f5b2c4daeaeb6ce37b0742d131c61b825e Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 15:21:48 -0700 Subject: [PATCH 037/179] Update ImageOptimizePipeline --- app/Jobs/ImageOptimizePipeline/ImageOptimize.php | 7 +++++++ app/Jobs/ImageOptimizePipeline/ImageResize.php | 7 +++++++ app/Jobs/ImageOptimizePipeline/ImageThumbnail.php | 7 +++++++ app/Jobs/ImageOptimizePipeline/ImageUpdate.php | 7 +++++++ 4 files changed, 28 insertions(+) diff --git a/app/Jobs/ImageOptimizePipeline/ImageOptimize.php b/app/Jobs/ImageOptimizePipeline/ImageOptimize.php index 2fdd439c..0a4712bf 100644 --- a/app/Jobs/ImageOptimizePipeline/ImageOptimize.php +++ b/app/Jobs/ImageOptimizePipeline/ImageOptimize.php @@ -15,6 +15,13 @@ class ImageOptimize implements ShouldQueue protected $media; + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * diff --git a/app/Jobs/ImageOptimizePipeline/ImageResize.php b/app/Jobs/ImageOptimizePipeline/ImageResize.php index f7dd622b..9d8a3c31 100644 --- a/app/Jobs/ImageOptimizePipeline/ImageResize.php +++ b/app/Jobs/ImageOptimizePipeline/ImageResize.php @@ -16,6 +16,13 @@ class ImageResize implements ShouldQueue protected $media; + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * diff --git a/app/Jobs/ImageOptimizePipeline/ImageThumbnail.php b/app/Jobs/ImageOptimizePipeline/ImageThumbnail.php index 601c010b..93f35a3d 100644 --- a/app/Jobs/ImageOptimizePipeline/ImageThumbnail.php +++ b/app/Jobs/ImageOptimizePipeline/ImageThumbnail.php @@ -17,6 +17,13 @@ class ImageThumbnail implements ShouldQueue protected $media; + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * diff --git a/app/Jobs/ImageOptimizePipeline/ImageUpdate.php b/app/Jobs/ImageOptimizePipeline/ImageUpdate.php index 173dd9f3..37a51cb8 100644 --- a/app/Jobs/ImageOptimizePipeline/ImageUpdate.php +++ b/app/Jobs/ImageOptimizePipeline/ImageUpdate.php @@ -23,6 +23,13 @@ class ImageUpdate implements ShouldQueue 'image/png', ]; + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * From 52bbe0061a48e7dd481d32faa3dd132e93da711a Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 15:22:34 -0700 Subject: [PATCH 038/179] Update FollowPipeline --- app/Jobs/FollowPipeline/FollowActivityPubDeliver.php | 7 +++++++ app/Jobs/FollowPipeline/FollowPipeline.php | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/app/Jobs/FollowPipeline/FollowActivityPubDeliver.php b/app/Jobs/FollowPipeline/FollowActivityPubDeliver.php index 863b2881..56f22d99 100644 --- a/app/Jobs/FollowPipeline/FollowActivityPubDeliver.php +++ b/app/Jobs/FollowPipeline/FollowActivityPubDeliver.php @@ -21,6 +21,13 @@ class FollowActivityPubDeliver implements ShouldQueue protected $followRequest; + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * diff --git a/app/Jobs/FollowPipeline/FollowPipeline.php b/app/Jobs/FollowPipeline/FollowPipeline.php index 8e3bc2ed..ec6c7ecb 100644 --- a/app/Jobs/FollowPipeline/FollowPipeline.php +++ b/app/Jobs/FollowPipeline/FollowPipeline.php @@ -18,6 +18,13 @@ class FollowPipeline implements ShouldQueue protected $follower; + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * From 8c0119e69df8c9e253eb7783ce8e9da4fd81672a Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 15:23:22 -0700 Subject: [PATCH 039/179] Update CommentPipeline --- app/Jobs/CommentPipeline/CommentPipeline.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/Jobs/CommentPipeline/CommentPipeline.php b/app/Jobs/CommentPipeline/CommentPipeline.php index 8c1eb21a..bafe9baf 100644 --- a/app/Jobs/CommentPipeline/CommentPipeline.php +++ b/app/Jobs/CommentPipeline/CommentPipeline.php @@ -20,6 +20,13 @@ class CommentPipeline implements ShouldQueue protected $status; protected $comment; + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * From 7316ee38c413fdb81d120096697526ca4194aaef Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Jan 2019 15:24:20 -0700 Subject: [PATCH 040/179] Update AvatarPipeline --- app/Jobs/AvatarPipeline/AvatarOptimize.php | 7 +++++++ app/Jobs/AvatarPipeline/CreateAvatar.php | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/app/Jobs/AvatarPipeline/AvatarOptimize.php b/app/Jobs/AvatarPipeline/AvatarOptimize.php index 6a9df55e..346afb01 100644 --- a/app/Jobs/AvatarPipeline/AvatarOptimize.php +++ b/app/Jobs/AvatarPipeline/AvatarOptimize.php @@ -19,6 +19,13 @@ class AvatarOptimize implements ShouldQueue protected $profile; protected $current; + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * diff --git a/app/Jobs/AvatarPipeline/CreateAvatar.php b/app/Jobs/AvatarPipeline/CreateAvatar.php index 06c42af8..2b50ccba 100644 --- a/app/Jobs/AvatarPipeline/CreateAvatar.php +++ b/app/Jobs/AvatarPipeline/CreateAvatar.php @@ -20,6 +20,13 @@ class CreateAvatar implements ShouldQueue protected $profile; + /** + * Delete the job if its models no longer exist. + * + * @var bool + */ + public $deleteWhenMissingModels = true; + /** * Create a new job instance. * From b4221833e3fde6dc17365bf761b06fc60553f050 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 13 Jan 2019 00:10:07 -0700 Subject: [PATCH 041/179] Update FederationController, add captcha to nodeinfo. Fixes https://todon.nl/users/v0idifier/statuses/101407970516293946 --- app/Http/Controllers/FederationController.php | 63 ++++++++++--------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/app/Http/Controllers/FederationController.php b/app/Http/Controllers/FederationController.php index 59cd86eb..cc21e962 100644 --- a/app/Http/Controllers/FederationController.php +++ b/app/Http/Controllers/FederationController.php @@ -82,37 +82,38 @@ class FederationController extends Controller { $res = Cache::remember('api:nodeinfo', 60, function () { return [ - 'metadata' => [ - 'nodeName' => config('app.name'), - 'software' => [ - 'homepage' => 'https://pixelfed.org', - 'github' => 'https://github.com/pixelfed', - 'follow' => 'https://mastodon.social/@pixelfed', - ], - ], - 'openRegistrations' => config('pixelfed.open_registration'), - 'protocols' => [ - 'activitypub', - ], - 'services' => [ - 'inbound' => [], - 'outbound' => [], - ], - 'software' => [ - 'name' => 'pixelfed', - 'version' => config('pixelfed.version'), - ], - 'usage' => [ - 'localPosts' => \App\Status::whereLocal(true)->whereHas('media')->count(), - 'localComments' => \App\Status::whereLocal(true)->whereNotNull('in_reply_to_id')->count(), - 'users' => [ - 'total' => \App\User::count(), - 'activeHalfyear' => \App\AccountLog::select('user_id')->whereAction('auth.login')->where('updated_at', '>',Carbon::now()->subMonths(6)->toDateTimeString())->groupBy('user_id')->get()->count(), - 'activeMonth' => \App\AccountLog::select('user_id')->whereAction('auth.login')->where('updated_at', '>',Carbon::now()->subMonths(1)->toDateTimeString())->groupBy('user_id')->get()->count(), - ], - ], - 'version' => '2.0', - ]; + 'metadata' => [ + 'nodeName' => config('app.name'), + 'software' => [ + 'homepage' => 'https://pixelfed.org', + 'github' => 'https://github.com/pixelfed', + 'follow' => 'https://mastodon.social/@pixelfed', + ], + 'captcha' => (bool) config('pixelfed.recaptcha'), + ], + 'openRegistrations' => config('pixelfed.open_registration'), + 'protocols' => [ + 'activitypub', + ], + 'services' => [ + 'inbound' => [], + 'outbound' => [], + ], + 'software' => [ + 'name' => 'pixelfed', + 'version' => config('pixelfed.version'), + ], + 'usage' => [ + 'localPosts' => \App\Status::whereLocal(true)->whereHas('media')->count(), + 'localComments' => \App\Status::whereLocal(true)->whereNotNull('in_reply_to_id')->count(), + 'users' => [ + 'total' => \App\User::count(), + 'activeHalfyear' => \App\AccountLog::select('user_id')->whereAction('auth.login')->where('updated_at', '>',Carbon::now()->subMonths(6)->toDateTimeString())->groupBy('user_id')->get()->count(), + 'activeMonth' => \App\AccountLog::select('user_id')->whereAction('auth.login')->where('updated_at', '>',Carbon::now()->subMonths(1)->toDateTimeString())->groupBy('user_id')->get()->count(), + ], + ], + 'version' => '2.0', + ]; }); return response()->json($res, 200, [ From aa53a1439fa8f69258552c68a933310f2dabf22a Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 13 Jan 2019 15:55:26 -0700 Subject: [PATCH 042/179] Update API AccountTransformer, fix https://mastodon.social/users/tom79/statuses/101410506495350462 --- app/Transformer/Api/AccountTransformer.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Transformer/Api/AccountTransformer.php b/app/Transformer/Api/AccountTransformer.php index 352894e7..3b82a51b 100644 --- a/app/Transformer/Api/AccountTransformer.php +++ b/app/Transformer/Api/AccountTransformer.php @@ -28,6 +28,7 @@ class AccountTransformer extends Fractal\TransformerAbstract 'moved' => null, 'fields' => null, 'bot' => null, + 'software' => 'pixelfed' ]; } } From e61c6a06e0ee1903b280305172c79d68cab418df Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 13 Jan 2019 22:27:42 -0700 Subject: [PATCH 043/179] Update AuthServiceProvider, add oauth support --- app/Providers/AuthServiceProvider.php | 8 +++----- config/auth.php | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index cceede8c..585cd092 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -25,10 +25,8 @@ class AuthServiceProvider extends ServiceProvider { $this->registerPolicies(); - // Passport::routes(); - - // Passport::tokensExpireIn(now()->addDays(15)); - - // Passport::refreshTokensExpireIn(now()->addDays(30)); + Passport::routes(); + Passport::tokensExpireIn(now()->addDays(15)); + Passport::refreshTokensExpireIn(now()->addDays(30)); } } diff --git a/config/auth.php b/config/auth.php index a9264b4a..3b50d4c1 100644 --- a/config/auth.php +++ b/config/auth.php @@ -42,7 +42,7 @@ return [ ], 'api' => [ - 'driver' => 'token', + 'driver' => 'passport', 'provider' => 'users', ], ], From 30758e5e6796050605cb1963c2d37d150d9ddfe2 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 14 Jan 2019 22:34:27 -0700 Subject: [PATCH 044/179] Update NotificationTransformer --- app/Transformer/Api/NotificationTransformer.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Transformer/Api/NotificationTransformer.php b/app/Transformer/Api/NotificationTransformer.php index 16d537c9..991848e3 100644 --- a/app/Transformer/Api/NotificationTransformer.php +++ b/app/Transformer/Api/NotificationTransformer.php @@ -44,6 +44,7 @@ class NotificationTransformer extends Fractal\TransformerAbstract 'follow' => 'follow', 'mention' => 'mention', 'reblog' => 'share', + 'share' => 'share', 'like' => 'favourite', 'comment' => 'comment', ]; From 9765ec3d68e79b3eccf41905f745be74825757a6 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 14 Jan 2019 22:34:50 -0700 Subject: [PATCH 045/179] Update Status Model --- app/Status.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/Status.php b/app/Status.php index 6bb36347..466ed410 100644 --- a/app/Status.php +++ b/app/Status.php @@ -274,6 +274,22 @@ class Status extends Model __('notification.commented'); } + public function shareToText() + { + $actorName = $this->profile->username; + + return "{$actorName} ".__('notification.shared'); + } + + public function shareToHtml() + { + $actorName = $this->profile->username; + $actorUrl = $this->profile->url(); + + return "{$actorName} ". + __('notification.shared'); + } + public function recentComments() { return $this->comments()->orderBy('created_at', 'desc')->take(3); From 63d7e4ecaaad0e8be6f4aa06f97110df77c90a25 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 14 Jan 2019 22:43:53 -0700 Subject: [PATCH 046/179] Update SharePipeline --- app/Jobs/SharePipeline/SharePipeline.php | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/app/Jobs/SharePipeline/SharePipeline.php b/app/Jobs/SharePipeline/SharePipeline.php index 4e2fbce5..6d581eb7 100644 --- a/app/Jobs/SharePipeline/SharePipeline.php +++ b/app/Jobs/SharePipeline/SharePipeline.php @@ -17,7 +17,7 @@ class SharePipeline implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; - protected $like; + protected $status; /** * Delete the job if its models no longer exist. @@ -44,10 +44,10 @@ class SharePipeline implements ShouldQueue public function handle() { $status = $this->status; - $actor = $this->status->profile; - $target = $this->status->parent()->profile; + $actor = $status->profile; + $target = $status->parent()->profile; - if ($status->url !== null) { + if ($status->uri !== null) { // Ignore notifications to remote statuses return; } @@ -55,23 +55,21 @@ class SharePipeline implements ShouldQueue $exists = Notification::whereProfileId($target->id) ->whereActorId($status->profile_id) ->whereAction('share') - ->whereItemId($status->in_reply_to_id) + ->whereItemId($status->reblog_of_id) ->whereItemType('App\Status') ->count(); - if ($actor->id === $status->profile_id || $exists !== 0) { + if ($target->id === $status->profile_id || $exists !== 0) { return true; } try { - $text = "{$actor->username} " . __('notification.likedPhoto'); - $html = ''; - $notification = new Notification(); - $notification->profile_id = $status->profile_id; + $notification = new Notification; + $notification->profile_id = $target->id; $notification->actor_id = $actor->id; $notification->action = 'share'; - $notification->message = $like->toText(); - $notification->rendered = $like->toHtml(); + $notification->message = $status->shareToText(); + $notification->rendered = $status->shareToHtml(); $notification->item_id = $status->id; $notification->item_type = "App\Status"; $notification->save(); From 7d9c7bf59e6f8d9aa361791c52d45b7d5d37a1b5 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 14 Jan 2019 22:44:23 -0700 Subject: [PATCH 047/179] Update StatusController --- app/Http/Controllers/StatusController.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/Http/Controllers/StatusController.php b/app/Http/Controllers/StatusController.php index 1de2ad66..7c0d3472 100644 --- a/app/Http/Controllers/StatusController.php +++ b/app/Http/Controllers/StatusController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers; use App\Jobs\ImageOptimizePipeline\ImageOptimize; use App\Jobs\StatusPipeline\NewStatusPipeline; use App\Jobs\StatusPipeline\StatusDelete; +use App\Jobs\SharePipeline\SharePipeline; use App\Media; use App\Profile; use App\Status; @@ -234,8 +235,10 @@ class StatusController extends Controller $share = new Status(); $share->profile_id = $profile->id; $share->reblog_of_id = $status->id; + $share->in_reply_to_profile_id = $status->profile_id; $share->save(); $count++; + SharePipeline::dispatch($share); } if ($request->ajax()) { From a0634b4476f03f0652214cf6f48cb596e4fc4f94 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Wed, 16 Jan 2019 21:45:50 -0700 Subject: [PATCH 048/179] Add missing svgs --- public/svg/403.svg | 1 + public/svg/404.svg | 1 + public/svg/500.svg | 1 + public/svg/503.svg | 1 + 4 files changed, 4 insertions(+) create mode 100755 public/svg/403.svg create mode 100755 public/svg/404.svg create mode 100755 public/svg/500.svg create mode 100755 public/svg/503.svg diff --git a/public/svg/403.svg b/public/svg/403.svg new file mode 100755 index 00000000..682aa982 --- /dev/null +++ b/public/svg/403.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/svg/404.svg b/public/svg/404.svg new file mode 100755 index 00000000..b6cd6f23 --- /dev/null +++ b/public/svg/404.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/svg/500.svg b/public/svg/500.svg new file mode 100755 index 00000000..9927e8d7 --- /dev/null +++ b/public/svg/500.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/svg/503.svg b/public/svg/503.svg new file mode 100755 index 00000000..6ad10933 --- /dev/null +++ b/public/svg/503.svg @@ -0,0 +1 @@ + \ No newline at end of file From 530b234f4044a07c92136df6a469e63fe63c27ef Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 17 Jan 2019 13:27:14 -0700 Subject: [PATCH 049/179] Update ProfileController, fixes #788 --- app/Http/Controllers/ProfileController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 070fc308..0e9271ab 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -187,7 +187,7 @@ class ProfileController extends Controller return view('profile.private', compact('user', 'is_following')); } } - $followers = $profile->followers()->whereNull('status')->orderBy('created_at', 'desc')->simplePaginate(12); + $followers = $profile->followers()->whereNull('status')->orderBy('followers.created_at', 'desc')->simplePaginate(12); $is_admin = is_null($user->domain) ? $user->user->is_admin : false; if ($user->remote_url) { $settings = new \StdClass; @@ -217,7 +217,7 @@ class ProfileController extends Controller return view('profile.private', compact('user', 'is_following')); } } - $following = $profile->following()->whereNull('status')->orderBy('created_at', 'desc')->simplePaginate(12); + $following = $profile->following()->whereNull('status')->orderBy('followers.created_at', 'desc')->simplePaginate(12); $is_admin = is_null($user->domain) ? $user->user->is_admin : false; if ($user->remote_url) { $settings = new \StdClass; From c2635fa1073859600f1dc15fbdded349fc199b9e Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 20 Jan 2019 16:25:12 -0700 Subject: [PATCH 050/179] Update Instance model --- app/Instance.php | 55 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/app/Instance.php b/app/Instance.php index d4c73917..3236819f 100644 --- a/app/Instance.php +++ b/app/Instance.php @@ -6,5 +6,58 @@ use Illuminate\Database\Eloquent\Model; class Instance extends Model { - protected $fillable = ['domain']; + protected $fillable = ['domain']; + + public function profiles() + { + return $this->hasMany(Profile::class, 'domain', 'domain'); + } + + public function statuses() + { + return $this->hasManyThrough( + Status::class, + Profile::class, + 'domain', + 'profile_id', + 'domain', + 'id' + ); + } + + public function reported() + { + return $this->hasManyThrough( + Report::class, + Profile::class, + 'domain', + 'reported_profile_id', + 'domain', + 'id' + ); + } + + public function reports() + { + return $this->hasManyThrough( + Report::class, + Profile::class, + 'domain', + 'profile_id', + 'domain', + 'id' + ); + } + + public function media() + { + return $this->hasManyThrough( + Media::class, + Profile::class, + 'domain', + 'profile_id', + 'domain', + 'id' + ); + } } From dd80bdcd94a4c5ed6c05e764ada66d989571c236 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 20 Jan 2019 16:26:03 -0700 Subject: [PATCH 051/179] Add AdminInstanceController --- .../Admin/AdminInstanceController.php | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 app/Http/Controllers/Admin/AdminInstanceController.php diff --git a/app/Http/Controllers/Admin/AdminInstanceController.php b/app/Http/Controllers/Admin/AdminInstanceController.php new file mode 100644 index 00000000..55600fdf --- /dev/null +++ b/app/Http/Controllers/Admin/AdminInstanceController.php @@ -0,0 +1,35 @@ +paginate(5); + return view('admin.instances.home', compact('instances')); + } + + public function instanceScan(Request $request) + { + DB::transaction(function() { + Profile::whereNotNull('domain') + ->groupBy('domain') + ->chunk(50, function($domains) { + foreach($domains as $domain) { + Instance::firstOrCreate([ + 'domain' => $domain->domain + ]); + } + }); + }); + return redirect()->back(); + } + +} \ No newline at end of file From f5a9d588aef5a43581b7ae3ebb50e60578dc520b Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 20 Jan 2019 16:27:24 -0700 Subject: [PATCH 052/179] Add admin instance view --- .../views/admin/instances/home.blade.php | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 resources/views/admin/instances/home.blade.php diff --git a/resources/views/admin/instances/home.blade.php b/resources/views/admin/instances/home.blade.php new file mode 100644 index 00000000..752051b0 --- /dev/null +++ b/resources/views/admin/instances/home.blade.php @@ -0,0 +1,71 @@ +@extends('admin.partial.template') + +@section('section') +
+

Instances

+
+ +
+@if($instances->count() == 0) +
+

Warning

+

No instances were found.

+
+

Do you want to scan and populate instances from Profiles and Statuses?

+

+

+ @csrf + +
+

+@else +
    + @foreach($instances as $instance) +
  • +
    +
    +

    + {{$instance->domain}} +

    +

    + Overview + Actions +

    +
    +
    +
    +

    {{$instance->profiles()->count()}}

    +

    Profiles

    +
    +
    +

    {{$instance->statuses()->count()}}

    +

    Statuses

    +
    +
    +

    {{$instance->reported()->count()}}

    +

    Reports

    +
    +
    +

    0

    +

    Storage Used

    +
    +
    +
    +
  • + @endforeach +
+
+ {{$instances->links()}} +
+@endif +@endsection + +@push('scripts') + +@endpush \ No newline at end of file From f5d809c14b8a112efb6c222cb2cac6c3068480cc Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 20 Jan 2019 20:53:35 -0700 Subject: [PATCH 053/179] Update Instance model --- app/Instance.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/Instance.php b/app/Instance.php index 3236819f..5541d86c 100644 --- a/app/Instance.php +++ b/app/Instance.php @@ -60,4 +60,9 @@ class Instance extends Model 'id' ); } + + public function getUrl() + { + return url("/i/admin/instances/show/{$this->id}"); + } } From b30c8aade5903d07690cb781d2b89aaef7925a0e Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 20 Jan 2019 21:25:52 -0700 Subject: [PATCH 054/179] Update AdminInstanceController --- .../Admin/AdminInstanceController.php | 68 ++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Admin/AdminInstanceController.php b/app/Http/Controllers/Admin/AdminInstanceController.php index 55600fdf..239d70da 100644 --- a/app/Http/Controllers/Admin/AdminInstanceController.php +++ b/app/Http/Controllers/Admin/AdminInstanceController.php @@ -6,13 +6,37 @@ use DB, Cache; use App\{Instance, Profile}; use Carbon\Carbon; use Illuminate\Http\Request; +use Illuminate\Validation\Rule; trait AdminInstanceController { public function instances(Request $request) { - $instances = Instance::orderByDesc('id')->paginate(5); + $this->validate($request, [ + 'filter' => [ + 'nullable', + 'string', + 'min:1', + 'max:20', + Rule::in(['autocw', 'unlisted', 'banned']) + ], + ]); + if($request->has('filter') && $request->filled('filter')) { + switch ($request->filter) { + case 'autocw': + $instances = Instance::whereAutoCw(true)->orderByDesc('id')->paginate(5); + break; + case 'unlisted': + $instances = Instance::whereUnlisted(true)->orderByDesc('id')->paginate(5); + break; + case 'banned': + $instances = Instance::whereBanned(true)->orderByDesc('id')->paginate(5); + break; + } + } else { + $instances = Instance::orderByDesc('id')->paginate(5); + } return view('admin.instances.home', compact('instances')); } @@ -32,4 +56,46 @@ trait AdminInstanceController return redirect()->back(); } + public function instanceShow(Request $request, $id) + { + $instance = Instance::findOrFail($id); + return view('admin.instances.show', compact('instance')); + } + + public function instanceEdit(Request $request, $id) + { + $this->validate($request, [ + 'action' => [ + 'required', + 'string', + 'min:1', + 'max:20', + Rule::in(['autocw', 'unlist', 'ban']) + ], + ]); + + $instance = Instance::findOrFail($id); + $unlisted = $instance->unlisted; + $autocw = $instance->auto_cw; + $banned = $instance->banned; + + switch ($request->action) { + case 'autocw': + $instance->auto_cw = $autocw == true ? false : true; + $instance->save(); + break; + + case 'unlist': + $instance->unlisted = $unlisted == true ? false : true; + $instance->save(); + break; + + case 'ban': + $instance->banned = $banned == true ? false : true; + $instance->save(); + break; + } + + return response()->json([]); + } } \ No newline at end of file From 9a7245d12e8829aab92f27598f53fa98c1272f69 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 20 Jan 2019 21:26:38 -0700 Subject: [PATCH 055/179] Update filters.scss --- resources/assets/sass/components/filters.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/assets/sass/components/filters.scss b/resources/assets/sass/components/filters.scss index 99d026a4..8714a1ee 100644 --- a/resources/assets/sass/components/filters.scss +++ b/resources/assets/sass/components/filters.scss @@ -1,9 +1,9 @@ /*! Instagram.css v0.1.3 | MIT License | github.com/picturepan2/instagram.css */ -[class*="filter"] { +[class*="filter-"] { position: relative; } -[class*="filter"]::before { +[class*="filter-"]::before { display: block; height: 100%; left: 0; From cd6b66b8e6254a2dc28ffc0cfebfaecf982226ab Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 20 Jan 2019 21:28:15 -0700 Subject: [PATCH 056/179] Update admin instance views --- .../views/admin/instances/home.blade.php | 162 +++++++++++++++++- .../views/admin/instances/show.blade.php | 113 ++++++++++++ 2 files changed, 270 insertions(+), 5 deletions(-) create mode 100644 resources/views/admin/instances/show.blade.php diff --git a/resources/views/admin/instances/home.blade.php b/resources/views/admin/instances/home.blade.php index 752051b0..4faea96b 100644 --- a/resources/views/admin/instances/home.blade.php +++ b/resources/views/admin/instances/home.blade.php @@ -2,11 +2,24 @@ @section('section')
-

Instances

+

Instances

+ + +

-@if($instances->count() == 0) +@if($instances->count() == 0 && request()->has('filter') == false)

Warning

No instances were found.

@@ -22,14 +35,29 @@
    @foreach($instances as $instance)
  • -
    +

    {{$instance->domain}}

    - Overview - Actions + Overview + + @if($instance->unlisted) + + @endif + @if($instance->auto_cw) + + @endif + @if($instance->banned) + + @endif

    @@ -66,6 +94,130 @@ $('.filesize').each(function(k,v) { $(this).text(filesize(v.getAttribute('data-size'))) }); + + $('.btn-action').on('click', function(e) { + let id = this.getAttribute('data-instance-id'); + let instanceDomain = this.getAttribute('data-instance-domain'); + let text = 'Domain: ' + instanceDomain; + let unlisted = this.getAttribute('data-instance-unlisted'); + let autocw = this.getAttribute('data-instance-autocw'); + let banned = this.getAttribute('data-instance-banned'); + swal({ + title: 'Instance Actions', + text: text, + icon: 'warning', + buttons: { + unlist: { + text: unlisted == 0 ? "Unlist" : "Re-list", + className: "bg-warning", + value: "unlisted", + }, + cw: { + text: autocw == 0 ? "CW Media" : "Remove AutoCW", + text: autocw == 0 ? "CW Media" : "Remove AutoCW", + className: "bg-warning", + value: "autocw", + }, + ban: { + text: banned == 0 ? "Ban" : "Unban", + className: "bg-danger", + value: "ban", + }, + }, + }) + .then((value) => { + switch (value) { + case "unlisted": + swal({ + title: "Are you sure?", + text: unlisted == 0 ? + "Are you sure you want to unlist " + instanceDomain + " ?" : + "Are you sure you want to remove the unlisted rule of " + instanceDomain + " ?", + icon: "warning", + buttons: true, + dangerMode: true, + }) + .then((unlist) => { + if (unlist) { + axios.post('/i/admin/instances/edit/' + id, { + action: 'unlist' + }).then((res) => { + swal("Domain action was successful! The page will now refresh.", { + icon: "success", + }); + setTimeout(function() { + window.location.href = window.location.href; + }, 5000); + }).catch((err) => { + swal("Something went wrong!", "Please try again later.", "error"); + }) + } else { + swal("Action Cancelled", "You successfully cancelled this action.", "error"); + } + }); + break; + case "autocw": + swal({ + title: "Are you sure?", + text: autocw == 0 ? + "Are you sure you want to auto CW all media from " + instanceDomain + " ?" : + "Are you sure you want to remove the auto cw rule for " + instanceDomain + " ?", + icon: "warning", + buttons: true, + dangerMode: true, + }) + .then((res) => { + if (res) { + axios.post('/i/admin/instances/edit/' + id, { + action: 'autocw' + }).then((res) => { + swal("Domain action was successful! The page will now refresh.", { + icon: "success", + }); + setTimeout(function() { + window.location.href = window.location.href; + }, 5000); + }).catch((err) => { + swal("Something went wrong!", "Please try again later.", "error"); + }) + } else { + swal("Action Cancelled", "You successfully cancelled this action.", "error"); + } + }); + break; + case "ban": + swal({ + title: "Are you sure?", + text: autocw == 0 ? + "Are you sure you want to ban " + instanceDomain + " ?" : + "Are you sure you want unban " + instanceDomain + " ?", + icon: "warning", + buttons: true, + dangerMode: true, + }) + .then((res) => { + if (res) { + axios.post('/i/admin/instances/edit/' + id, { + action: 'ban' + }).then((res) => { + swal("Domain action was successful! The page will now refresh.", { + icon: "success", + }); + setTimeout(function() { + window.location.href = window.location.href; + }, 5000); + }).catch((err) => { + swal("Something went wrong!", "Please try again later.", "error"); + }) + } else { + swal("Action Cancelled", "You successfully cancelled this action.", "error"); + } + }); + break; + + } + }); + }) }); @endpush \ No newline at end of file diff --git a/resources/views/admin/instances/show.blade.php b/resources/views/admin/instances/show.blade.php new file mode 100644 index 00000000..1bd3becd --- /dev/null +++ b/resources/views/admin/instances/show.blade.php @@ -0,0 +1,113 @@ +@extends('admin.partial.template') + +@section('section') +
    +
    +
    +

    Instance Overview

    +

    domain: {{$instance->domain}}

    +
    +
    + Back +
    +
    +
    +
    +
    +
    +

    unlisted: {{$instance->unlisted ? 'true' : 'false'}}

    +
    +
    +

    CW media: {{$instance->auto_cw ? 'true' : 'false'}}

    +
    +
    +

    banned: {{$instance->banned ? 'true' : 'false'}}

    +
    +
    +
    +
    +
    +
    +
    +

    + {{$instance->profiles->count()}} +

    +

    Profiles

    +
    +
    +
    +
    +

    + {{$instance->reports->count()}} +

    +

    Reports

    +
    +
    +
    +
    +
    +
    +

    + {{$instance->statuses->count()}} +

    +

    Statuses

    +
    +
    +
    +
    +

    + 0 +

    +

    Storage Used

    +
    +
    +
    +
    + +
    +
    +
    +
    + Profiles + + View All + +
    +
      + @foreach($instance->profiles()->latest()->take(5)->get() as $profile) +
    • + {{$profile->emailUrl()}} +
    • + @endforeach +
    +
    +
    +
    +
    +
    + Statuses + + View All + +
    + +
    +
    +
    +@endsection + +@push('scripts') + +@endpush \ No newline at end of file From d34eb425b0ad5e62e9fbd15a7962a1c94fd4caa3 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 21 Jan 2019 12:18:08 -0700 Subject: [PATCH 057/179] Update Media Model --- app/Media.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/Media.php b/app/Media.php index 79e399ea..2b77abe4 100644 --- a/app/Media.php +++ b/app/Media.php @@ -17,6 +17,16 @@ class Media extends Model */ protected $dates = ['deleted_at']; + public function status() + { + return $this->belongsTo(Status::class); + } + + public function profile() + { + return $this->belongsTo(Profile::class); + } + public function url() { if(!empty($this->remote_media) && $this->remote_url) { @@ -37,6 +47,11 @@ class Media extends Model return url($url); } + public function thumb() + { + return $this->thumbnailUrl(); + } + public function mimeType() { return explode('/', $this->mime)[0]; From a040dc05e1b369ac8ce7a1b84cce79d87fe8fbd1 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 21 Jan 2019 12:22:15 -0700 Subject: [PATCH 058/179] Update admin template --- resources/views/admin/partial/template.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/admin/partial/template.blade.php b/resources/views/admin/partial/template.blade.php index df260f7b..3f93d88e 100644 --- a/resources/views/admin/partial/template.blade.php +++ b/resources/views/admin/partial/template.blade.php @@ -1,7 +1,7 @@ @extends('layouts.app') @section('content') - +@yield('header')
    From 0055af468e09597dbbe8af62e99ed0b64b6d8cb4 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 21 Jan 2019 12:44:16 -0700 Subject: [PATCH 059/179] Add AdminMediaController --- .../Admin/AdminMediaController.php | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 app/Http/Controllers/Admin/AdminMediaController.php diff --git a/app/Http/Controllers/Admin/AdminMediaController.php b/app/Http/Controllers/Admin/AdminMediaController.php new file mode 100644 index 00000000..73692281 --- /dev/null +++ b/app/Http/Controllers/Admin/AdminMediaController.php @@ -0,0 +1,48 @@ +validate($request, [ + 'layout' => [ + 'nullable', + 'string', + 'min:1', + 'max:4', + Rule::in(['grid','list']) + ], + 'search' => 'nullable|string|min:1|max:20' + ]); + if($request->filled('search')) { + $profiles = Profile::where('username', 'like', '%'.$request->input('search').'%')->pluck('id')->toArray(); + $media = Media::whereHas('status') + ->with('status') + ->orderby('id', 'desc') + ->whereIn('profile_id', $profiles) + ->orWhere('mime', $request->input('search')) + ->paginate(12); + } else { + $media = Media::whereHas('status')->with('status')->orderby('id', 'desc')->paginate(12); + } + return view('admin.media.home', compact('media')); + } + + public function mediaShow(Request $request, $id) + { + $media = Media::findOrFail($id); + return view('admin.media.show', compact('media')); + } +} \ No newline at end of file From 8722f830406565b76df354408105f430cf422894 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 21 Jan 2019 13:01:36 -0700 Subject: [PATCH 060/179] Update BaseApiController --- .../Controllers/Api/BaseApiController.php | 61 ++++++++++++++++--- 1 file changed, 53 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/Api/BaseApiController.php b/app/Http/Controllers/Api/BaseApiController.php index c87dd198..c890f384 100644 --- a/app/Http/Controllers/Api/BaseApiController.php +++ b/app/Http/Controllers/Api/BaseApiController.php @@ -13,7 +13,8 @@ use App\{ Avatar, Notification, Media, - Profile + Profile, + Status }; use App\Transformer\Api\{ AccountTransformer, @@ -23,6 +24,7 @@ use App\Transformer\Api\{ }; use League\Fractal; use League\Fractal\Serializer\ArraySerializer; +use League\Fractal\Pagination\IlluminatePaginatorAdapter; use App\Jobs\AvatarPipeline\AvatarOptimize; use App\Jobs\ImageOptimizePipeline\ImageOptimize; use App\Jobs\VideoPipeline\{ @@ -97,18 +99,52 @@ class BaseApiController extends Controller public function accountStatuses(Request $request, $id) { - $pid = Auth::user()->profile->id; - $profile = Profile::findOrFail($id); - $statuses = $profile->statuses(); - if($pid === $profile->id) { - $statuses = $statuses->orderBy('id', 'desc')->paginate(20); + $this->validate($request, [ + 'only_media' => 'nullable', + 'pinned' => 'nullable', + 'exclude_replies' => 'nullable', + 'max_id' => 'nullable|integer|min:1', + 'since_id' => 'nullable|integer|min:1', + 'min_id' => 'nullable|integer|min:1', + 'limit' => 'nullable|integer|min:1|max:24' + ]); + $limit = $request->limit ?? 20; + $max_id = $request->max_id ?? false; + $min_id = $request->min_id ?? false; + $since_id = $request->since_id ?? false; + $only_media = $request->only_media ?? false; + $user = Auth::user(); + $account = Profile::findOrFail($id); + $statuses = $account->statuses()->getQuery(); + if($only_media == true) { + $statuses = $statuses + ->whereHas('media') + ->whereNull('in_reply_to_id') + ->whereNull('reblog_of_id'); + } + if($id == $account->id && !$max_id && !$min_id && !$since_id) { + $statuses = $statuses->orderBy('id', 'desc') + ->paginate($limit); + } else if($since_id) { + $statuses = $statuses->where('id', '>', $since_id) + ->orderBy('id', 'DESC') + ->paginate($limit); + } else if($min_id) { + $statuses = $statuses->where('id', '>', $min_id) + ->orderBy('id', 'ASC') + ->paginate($limit); + } else if($max_id) { + $statuses = $statuses->where('id', '<', $max_id) + ->orderBy('id', 'DESC') + ->paginate($limit); } else { - $statuses = $statuses->whereVisibility('public')->orderBy('id', 'desc')->paginate(20); + $statuses = $statuses->whereVisibility('public')->orderBy('id', 'desc')->paginate($limit); } $resource = new Fractal\Resource\Collection($statuses, new StatusTransformer()); + //$resource->setPaginator(new IlluminatePaginatorAdapter($statuses)); $res = $this->fractal->createData($resource)->toArray(); - return response()->json($res); + return response()->json($res, 200, [], JSON_PRETTY_PRINT); } public function followSuggestions(Request $request) @@ -265,4 +301,13 @@ class BaseApiController extends Controller return response()->json($res); } + + public function showAccount(Request $request, $id) + { + $profile = Profile::whereNull('domain')->whereNull('status')->findOrFail($id); + $resource = new Fractal\Resource\Item($profile, new AccountTransformer()); + $res = $this->fractal->createData($resource)->toArray(); + + return response()->json($res); + } } From 2fe66b63f06603b51ff7a39c12606ae3f2707519 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 21 Jan 2019 13:10:30 -0700 Subject: [PATCH 061/179] Add admin media show view --- resources/views/admin/media/show.blade.php | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 resources/views/admin/media/show.blade.php diff --git a/resources/views/admin/media/show.blade.php b/resources/views/admin/media/show.blade.php new file mode 100644 index 00000000..6422a0c0 --- /dev/null +++ b/resources/views/admin/media/show.blade.php @@ -0,0 +1,41 @@ +@extends('admin.partial.template') + +@section('section') +
    +

    Media

    +

    ID: {{$media->id}}

    +
    +
    +
    +
    +
    + + +
    +
    +
    +@endsection + +@push('scripts') + +@endpush \ No newline at end of file From 560ac0f24781829c3b234e0c8a96a284cc0dfc0c Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 21 Jan 2019 19:59:25 -0700 Subject: [PATCH 062/179] Update RestrictedNames --- app/Util/Lexer/RestrictedNames.php | 54 +++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/app/Util/Lexer/RestrictedNames.php b/app/Util/Lexer/RestrictedNames.php index 21f58473..1afe92a5 100644 --- a/app/Util/Lexer/RestrictedNames.php +++ b/app/Util/Lexer/RestrictedNames.php @@ -17,15 +17,6 @@ class RestrictedNames 'contact-us', 'contact_us', 'copyright', - 'd', - 'dashboard', - 'dev', - 'developer', - 'developers', - 'discover', - 'discovers', - 'doc', - 'docs', 'download', 'domainadmin', 'domainadministrator', @@ -41,10 +32,7 @@ class RestrictedNames 'guests', 'hostmaster', 'hostmaster', - 'image', - 'images', 'imap', - 'img', 'info', 'info', 'is', @@ -57,7 +45,6 @@ class RestrictedNames 'mailerdaemon', 'marketing', 'me', - 'media', 'mis', 'mx', 'new', @@ -82,7 +69,6 @@ class RestrictedNames 'pop3', 'postmaster', 'pricing', - 'privacy', 'root', 'sales', 'security', @@ -96,7 +82,6 @@ class RestrictedNames 'sys', 'sysadmin', 'system', - 'terms', 'tutorial', 'tutorials', 'usenet', @@ -121,34 +106,65 @@ class RestrictedNames 'account', 'api', 'auth', + 'bartender', 'broadcast', 'broadcaster', + 'booth', + 'bouncer', + 'c', 'css', 'checkpoint', 'collection', 'collections', - 'c', + 'costar', + 'costars', 'cdn', + 'd', 'dashboard', 'deck', + 'dev', + 'developer', + 'developers', 'discover', + 'discovers', + 'dj', + 'doc', 'docs', + 'docs', + 'drive', + 'driver', 'error', 'explore', + 'font', 'fonts', + 'gdpr', 'home', 'help', 'helpcenter', + 'help-center', + 'help_center', + 'help_center_', + 'help-center-', + 'help-center_', + 'help_center-', 'i', 'img', + 'imgs', + 'image', + 'images', 'js', + 'legal', 'live', 'login', 'logout', 'media', + 'menu', 'official', 'p', + 'photo', + 'photos', 'password', + 'privacy', 'reset', 'report', 'reports', @@ -161,10 +177,14 @@ class RestrictedNames 'statuses', 'site', 'sites', + 'stage', 'static', 'story', 'stories', 'support', + 'svg', + 'svgs', + 'terms', 'telescope', 'timeline', 'timelines', @@ -174,9 +194,11 @@ class RestrictedNames 'username', 'usernames', 'vendor', + 'waiter', 'ws', 'wss', 'www', + 'valet', '400', '401', '403', From 261c33e7d810d754c9c159057fb11d9b209f5256 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 27 Jan 2019 19:40:36 -0700 Subject: [PATCH 063/179] Update Api Transformers, force string type for ids --- app/Transformer/Api/AccountTransformer.php | 6 ++++-- app/Transformer/Api/AttachmentTransformer.php | 2 +- app/Transformer/Api/MediaTransformer.php | 2 +- app/Transformer/Api/MentionTransformer.php | 2 +- app/Transformer/Api/NotificationTransformer.php | 2 +- app/Transformer/Api/RelationshipTransformer.php | 10 ++++++---- app/Transformer/Api/StatusTransformer.php | 2 +- app/Transformer/Api/StoryTransformer.php | 2 +- 8 files changed, 16 insertions(+), 12 deletions(-) diff --git a/app/Transformer/Api/AccountTransformer.php b/app/Transformer/Api/AccountTransformer.php index 3b82a51b..440cd17c 100644 --- a/app/Transformer/Api/AccountTransformer.php +++ b/app/Transformer/Api/AccountTransformer.php @@ -9,8 +9,9 @@ class AccountTransformer extends Fractal\TransformerAbstract { public function transform(Profile $profile) { + $is_admin = $profile->domain ? false : $profile->user->is_admin; return [ - 'id' => $profile->id, + 'id' => (string) $profile->id, 'username' => $profile->username, 'acct' => $profile->username, 'display_name' => $profile->name, @@ -28,7 +29,8 @@ class AccountTransformer extends Fractal\TransformerAbstract 'moved' => null, 'fields' => null, 'bot' => null, - 'software' => 'pixelfed' + 'software' => 'pixelfed', + 'is_admin' => (bool) $is_admin ]; } } diff --git a/app/Transformer/Api/AttachmentTransformer.php b/app/Transformer/Api/AttachmentTransformer.php index 2e1be844..76c5b6ae 100644 --- a/app/Transformer/Api/AttachmentTransformer.php +++ b/app/Transformer/Api/AttachmentTransformer.php @@ -9,7 +9,7 @@ class AttachmentTransformer extends Fractal\TransformerAbstract public function transform(Media $media) { return [ - 'id' => $media->id, + 'id' => (string) $media->id, 'type' => $media->activityVerb(), 'url' => $media->url(), 'remote_url' => null, diff --git a/app/Transformer/Api/MediaTransformer.php b/app/Transformer/Api/MediaTransformer.php index 2920bea1..cca1e37c 100644 --- a/app/Transformer/Api/MediaTransformer.php +++ b/app/Transformer/Api/MediaTransformer.php @@ -10,7 +10,7 @@ class MediaTransformer extends Fractal\TransformerAbstract public function transform(Media $media) { return [ - 'id' => $media->id, + 'id' => (string) $media->id, 'type' => $media->activityVerb(), 'url' => $media->url(), 'remote_url' => null, diff --git a/app/Transformer/Api/MentionTransformer.php b/app/Transformer/Api/MentionTransformer.php index ae202b6e..7a892e40 100644 --- a/app/Transformer/Api/MentionTransformer.php +++ b/app/Transformer/Api/MentionTransformer.php @@ -10,7 +10,7 @@ class MentionTransformer extends Fractal\TransformerAbstract public function transform(Profile $profile) { return [ - 'id' => $profile->id, + 'id' => (string) $profile->id, 'url' => $profile->url(), 'username' => $profile->username, 'acct' => $profile->username, diff --git a/app/Transformer/Api/NotificationTransformer.php b/app/Transformer/Api/NotificationTransformer.php index 991848e3..a621891d 100644 --- a/app/Transformer/Api/NotificationTransformer.php +++ b/app/Transformer/Api/NotificationTransformer.php @@ -15,7 +15,7 @@ class NotificationTransformer extends Fractal\TransformerAbstract public function transform(Notification $notification) { return [ - 'id' => $notification->id, + 'id' => (string) $notification->id, 'type' => $this->replaceTypeVerb($notification->action), 'created_at' => (string) $notification->created_at, 'account' => null, diff --git a/app/Transformer/Api/RelationshipTransformer.php b/app/Transformer/Api/RelationshipTransformer.php index 232e79ab..6c1a6bfb 100644 --- a/app/Transformer/Api/RelationshipTransformer.php +++ b/app/Transformer/Api/RelationshipTransformer.php @@ -2,6 +2,7 @@ namespace App\Transformer\Api; +use Auth; use App\Profile; use League\Fractal; @@ -9,17 +10,18 @@ class RelationshipTransformer extends Fractal\TransformerAbstract { public function transform(Profile $profile) { + $user = Auth::user()->profile; return [ - 'id' => $profile->id, - 'following' => null, - 'followed_by' => null, + 'id' => (string) $profile->id, + 'following' => $user->follows($profile), + 'followed_by' => $user->followedBy($profile), 'blocking' => null, 'muting' => null, 'muting_notifications' => null, 'requested' => null, 'domain_blocking' => null, 'showing_reblogs' => null, - 'endorsed' => null + 'endorsed' => false ]; } } diff --git a/app/Transformer/Api/StatusTransformer.php b/app/Transformer/Api/StatusTransformer.php index d07ac04b..dfacd34d 100644 --- a/app/Transformer/Api/StatusTransformer.php +++ b/app/Transformer/Api/StatusTransformer.php @@ -17,7 +17,7 @@ class StatusTransformer extends Fractal\TransformerAbstract public function transform(Status $status) { return [ - 'id' => $status->id, + 'id' => (string) $status->id, 'uri' => $status->url(), 'url' => $status->url(), 'in_reply_to_id' => $status->in_reply_to_id, diff --git a/app/Transformer/Api/StoryTransformer.php b/app/Transformer/Api/StoryTransformer.php index 3d87a572..e362470c 100644 --- a/app/Transformer/Api/StoryTransformer.php +++ b/app/Transformer/Api/StoryTransformer.php @@ -14,7 +14,7 @@ class StoryTransformer extends Fractal\TransformerAbstract public function transform(Story $story) { return [ - 'id' => $story->id, + 'id' => (string) $story->id, 'photo' => $story->profile->avatarUrl(), 'name' => '', 'link' => '', From 12995989c45a855bf9d1b375d441f1d5b3231ce9 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Wed, 30 Jan 2019 18:11:22 -0700 Subject: [PATCH 064/179] Add max user limit --- app/Http/Controllers/Auth/RegisterController.php | 12 ++++++++++-- config/pixelfed.php | 10 ++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index d9354697..4ce5538e 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -116,7 +116,13 @@ class RegisterController extends Controller */ public function showRegistrationForm() { - $view = config('pixelfed.open_registration') == true ? 'auth.register' : 'site.closed-registration'; + $count = User::count(); + $limit = config('pixelfed.max_users'); + if($limit && $limit <= $count) { + $view = 'site.closed-registration'; + } else { + $view = config('pixelfed.open_registration') == true ? 'auth.register' : 'site.closed-registration'; + } return view($view); } @@ -128,7 +134,9 @@ class RegisterController extends Controller */ public function register(Request $request) { - if(false == config('pixelfed.open_registration')) { + $count = User::count(); + $limit = config('pixelfed.max_users'); + if(false == config('pixelfed.open_registration') || $limit && $limit <= $count) { return abort(403); } diff --git a/config/pixelfed.php b/config/pixelfed.php index f6da8cd5..da60ba79 100644 --- a/config/pixelfed.php +++ b/config/pixelfed.php @@ -208,6 +208,16 @@ return [ */ 'cloud_storage' => env('PF_ENABLE_CLOUD', false), + /* + |-------------------------------------------------------------------------- + | Max User Limit + |-------------------------------------------------------------------------- + | + | Allow a maximum number of user accounts. Default: off + | + */ + 'max_users' => env('PF_MAX_USERS', false), + 'media_types' => env('MEDIA_TYPES', 'image/jpeg,image/png,image/gif'), 'enforce_account_limit' => env('LIMIT_ACCOUNT_SIZE', true), From 3a3f0e64c9165421b26b0929d363ce7c992680f2 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Wed, 30 Jan 2019 18:20:10 -0700 Subject: [PATCH 065/179] Update testing env --- .env.testing | 1 + 1 file changed, 1 insertion(+) diff --git a/.env.testing b/.env.testing index a37e329e..2e32deb4 100644 --- a/.env.testing +++ b/.env.testing @@ -55,3 +55,4 @@ MIX_API_BASE="${API_BASE}" MIX_API_SEARCH="${API_SEARCH}" TELESCOPE_ENABLED=false +PF_MAX_USERS=1000 From 13e1b5114039d4755975a33c685be92dbbeb2c6f Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Wed, 30 Jan 2019 18:39:51 -0700 Subject: [PATCH 066/179] Fix tests --- .env.testing | 2 +- tests/Feature/InstalledTest.php | 16 ++++++++-------- tests/Feature/LoginTest.php | 13 ++++++------- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/.env.testing b/.env.testing index 2e32deb4..77037af1 100644 --- a/.env.testing +++ b/.env.testing @@ -40,7 +40,7 @@ SESSION_SECURE_COOKIE=true API_BASE="/api/1/" API_SEARCH="/api/search" -OPEN_REGISTRATION=true +OPEN_REGISTRATION=false RECAPTCHA_ENABLED=false ENFORCE_EMAIL_VERIFICATION=true diff --git a/tests/Feature/InstalledTest.php b/tests/Feature/InstalledTest.php index c6456774..27b5f153 100644 --- a/tests/Feature/InstalledTest.php +++ b/tests/Feature/InstalledTest.php @@ -3,23 +3,23 @@ namespace Tests\Feature; use Tests\TestCase; +use Illuminate\Foundation\Testing\RefreshDatabase; +use Illuminate\Foundation\Testing\WithoutMiddleware; class InstalledTest extends TestCase { - public function testLandingTest() + /** @test */ + public function landing_page() { $response = $this->get('/'); - $response - ->assertStatus(200) - ->assertSeeText('Image Sharing for Everyone'); + $response->assertSeeText('Image Sharing for Everyone'); } - public function testNodeinfoTest() + /** @test */ + public function nodeinfo_api() { $response = $this->get('/.well-known/nodeinfo'); - $response - ->assertStatus(200) - ->assertJson([ + $response->assertJson([ 'links' => [ ['rel' => 'http://nodeinfo.diaspora.software/ns/schema/2.0'], ], ]); diff --git a/tests/Feature/LoginTest.php b/tests/Feature/LoginTest.php index 4972c87c..750c4889 100644 --- a/tests/Feature/LoginTest.php +++ b/tests/Feature/LoginTest.php @@ -3,6 +3,8 @@ namespace Tests\Feature; use Tests\TestCase; +use Illuminate\Foundation\Testing\RefreshDatabase; +use Illuminate\Foundation\Testing\WithoutMiddleware; class LoginTest extends TestCase { @@ -12,23 +14,20 @@ class LoginTest extends TestCase { $response = $this->get('login'); - $response->assertSuccessful() - ->assertSee('Forgot Your Password?'); + $response->assertSee('Forgot Your Password?'); } /** @test */ public function view_register_page() { - if(true === config('pixelfed.open_registration')) { + if(true == config('pixelfed.open_registration')) { $response = $this->get('register'); - $response->assertSuccessful() - ->assertSee('Register a new account'); + $response->assertSee('Register a new account'); } else { $response = $this->get('register'); - $response->assertSuccessful() - ->assertSee('Registration is closed'); + $response->assertSee('Registration is closed'); } } } \ No newline at end of file From 853f98c0f422e842ad0b71072010c78cb931afc2 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 12:52:05 -0700 Subject: [PATCH 067/179] Add PageController --- app/Http/Controllers/PageController.php | 53 +++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 app/Http/Controllers/PageController.php diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php new file mode 100644 index 00000000..f1e78d7f --- /dev/null +++ b/app/Http/Controllers/PageController.php @@ -0,0 +1,53 @@ +middleware(['auth', 'admin']); + } + + protected function authCheck($admin_only = false) + { + $auth = $admin_only ? + Auth::check() && Auth::user()->is_admin == true : + Auth::check(); + if($auth == false) { + abort(403); + } + } + + public function edit(Request $request) + { + $this->authCheck(true); + $this->validate($request, [ + 'page' => 'required|string' + ]); + $slug = urldecode($request->page); + $page = Page::firstOrCreate(['slug' => $slug]); + return view('admin.pages.edit', compact('page')); + } + + public function store(Request $request) + { + $this->validate($request, [ + 'slug' => 'required|string', + 'content' => 'required|string', + 'title' => 'nullable|string', + 'active' => 'required|boolean' + ]); + $slug = urldecode($request->input('slug')); + $page = Page::firstOrCreate(['slug' => $slug]); + $page->content = $request->input('content'); + $page->title = $request->input('title'); + $page->active = (bool) $request->input('active'); + $page->save(); + return response()->json(['msg' => 200]); + } +} From d0361dd9ff00e6c4c4bd56587334a50d6d88f51b Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 12:53:01 -0700 Subject: [PATCH 068/179] Add MicroController --- app/Http/Controllers/MicroController.php | 67 ++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 app/Http/Controllers/MicroController.php diff --git a/app/Http/Controllers/MicroController.php b/app/Http/Controllers/MicroController.php new file mode 100644 index 00000000..420083f0 --- /dev/null +++ b/app/Http/Controllers/MicroController.php @@ -0,0 +1,67 @@ +middleware('auth'); + } + + public function composeText(Request $request) + { + $this->validate($request, [ + 'type' => [ + 'required', + 'string', + Rule::in(['text']) + ], + 'title' => 'nullable|string|max:140', + 'content' => 'required|string|max:500', + 'visibility' => [ + 'required', + 'string', + Rule::in([ + 'public', + 'unlisted', + 'private', + 'draft' + ]) + ] + ]); + $profile = Auth::user()->profile; + $title = $request->input('title'); + $content = $request->input('content'); + $visibility = $request->input('visibility'); + + $status = DB::transaction(function() use($profile, $content, $visibility, $title) { + $status = new Status; + $status->type = 'text'; + $status->profile_id = $profile->id; + $status->caption = strip_tags($content); + $status->rendered = Purify::clean($content); + $status->is_nsfw = false; + + // TODO: remove deprecated visibility in favor of scope + $status->visibility = $visibility; + $status->scope = $visibility; + $status->entities = json_encode(['title'=>$title]); + $status->save(); + return $status; + }); + + $fractal = new \League\Fractal\Manager(); + $fractal->setSerializer(new \League\Fractal\Serializer\ArraySerializer()); + $s = new \League\Fractal\Resource\Item($status, new \App\Transformer\Api\StatusTransformer()); + return $fractal->createData($s)->toArray(); + } +} From da1777822346ebfc1c85a056772ed2f0c7fdcfef Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 12:54:17 -0700 Subject: [PATCH 069/179] Add PrivacySettingsController --- .../Controllers/Settings/PrivacySettings.php | 54 ++++++++++++++++++- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Settings/PrivacySettings.php b/app/Http/Controllers/Settings/PrivacySettings.php index dd01feb6..ddb77e43 100644 --- a/app/Http/Controllers/Settings/PrivacySettings.php +++ b/app/Http/Controllers/Settings/PrivacySettings.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Settings; use App\AccountLog; use App\EmailVerification; +use App\Instance; use App\Media; use App\Profile; use App\User; @@ -121,7 +122,56 @@ trait PrivacySettings public function blockedInstances() { - $settings = Auth::user()->settings; - return view('settings.privacy.blocked-instances'); + $pid = Auth::user()->profile->id; + $filters = UserFilter::whereUserId($pid) + ->whereFilterableType('App\Instance') + ->whereFilterType('block') + ->orderByDesc('id') + ->paginate(10); + return view('settings.privacy.blocked-instances', compact('filters')); + } + + public function blockedInstanceStore(Request $request) + { + $this->validate($request, [ + 'domain' => [ + 'required', + 'min:3', + 'max:100', + function($attribute, $value, $fail) { + if(!filter_var($value, FILTER_VALIDATE_DOMAIN)) { + $fail($attribute. 'is invalid'); + } + } + ] + ]); + $domain = $request->input('domain'); + $instance = Instance::firstOrCreate(['domain' => $domain]); + $filter = new UserFilter; + $filter->user_id = Auth::user()->profile->id; + $filter->filterable_id = $instance->id; + $filter->filterable_type = 'App\Instance'; + $filter->filter_type = 'block'; + $filter->save(); + return response()->json(['msg' => 200]); + } + + public function blockedInstanceUnblock(Request $request) + { + $this->validate($request, [ + 'id' => 'required|integer|min:1' + ]); + $pid = Auth::user()->profile->id; + + $filter = UserFilter::whereFilterableType('App\Instance') + ->whereUserId($pid) + ->findOrFail($request->input('id')); + $filter->delete(); + return redirect(route('settings.privacy.blocked-instances')); + } + + public function blockedKeywords() + { + return view('settings.privacy.blocked-keywords'); } } \ No newline at end of file From 492410a2872af4a1eb095737ad55b8cfa0622c0a Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 12:55:20 -0700 Subject: [PATCH 070/179] Update User model --- app/User.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/User.php b/app/User.php index 698b8b7d..8ed942d1 100644 --- a/app/User.php +++ b/app/User.php @@ -62,6 +62,11 @@ class User extends Authenticatable ); } + public function filters() + { + return $this->hasMany(UserFilter::class); + } + public function receivesBroadcastNotificationsOn() { return 'App.User.'.$this->id; From bb841d3d6a6110239105a2f2c264b22d53b5aab2 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 12:55:37 -0700 Subject: [PATCH 071/179] Add Page model --- app/Page.php | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 app/Page.php diff --git a/app/Page.php b/app/Page.php new file mode 100644 index 00000000..aad84c40 --- /dev/null +++ b/app/Page.php @@ -0,0 +1,25 @@ +slug); + } + + public function editUrl() + { + return url("/i/admin/settings/pages/edit?page=".urlencode($this->slug)); + } +} From 261e95e77288f11793788ff94308bb0651b76e42 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 12:55:57 -0700 Subject: [PATCH 072/179] Update UserFilter model --- app/UserFilter.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/UserFilter.php b/app/UserFilter.php index 50cd5887..b0af2d77 100644 --- a/app/UserFilter.php +++ b/app/UserFilter.php @@ -21,7 +21,6 @@ class UserFilter extends Model ->pluck('filterable_id'); } - public function blockedUserIds($profile_id) { return $this->whereUserId($profile_id) @@ -29,4 +28,9 @@ class UserFilter extends Model ->whereFilterType('block') ->pluck('filterable_id'); } + + public function instance() + { + return $this->belongsTo(Instance::class, 'filterable_id'); + } } From 6bad723b68129af900cd07f2f5cf1569536c51bc Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 12:56:20 -0700 Subject: [PATCH 073/179] Add FailedJob model --- app/FailedJob.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 app/FailedJob.php diff --git a/app/FailedJob.php b/app/FailedJob.php new file mode 100644 index 00000000..72815966 --- /dev/null +++ b/app/FailedJob.php @@ -0,0 +1,19 @@ + Date: Thu, 31 Jan 2019 12:57:02 -0700 Subject: [PATCH 074/179] Add page migration --- .../2019_01_22_030129_create_pages_table.php | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 database/migrations/2019_01_22_030129_create_pages_table.php diff --git a/database/migrations/2019_01_22_030129_create_pages_table.php b/database/migrations/2019_01_22_030129_create_pages_table.php new file mode 100644 index 00000000..2af38816 --- /dev/null +++ b/database/migrations/2019_01_22_030129_create_pages_table.php @@ -0,0 +1,40 @@ +bigIncrements('id'); + $table->string('root')->nullable()->index(); + $table->string('slug')->nullable()->unique()->index(); + $table->string('title')->nullable(); + $table->unsignedInteger('category_id')->nullable()->index(); + $table->longText('content')->nullable(); + $table->string('template')->default('layouts.app')->index(); + $table->boolean('active')->default(false)->index(); + $table->boolean('cached')->default(true)->index(); + $table->timestamp('active_until')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('pages'); + } +} From 035d2fd93a523c4cd539898dd55b88c536e638d6 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 13:11:58 -0700 Subject: [PATCH 075/179] Update admin partials --- .../views/admin/partial/sidebar.blade.php | 36 +--------- .../admin/partial/template-full.blade.php | 26 ++++++++ .../views/admin/partial/template.blade.php | 4 +- .../views/admin/partial/topnav.blade.php | 65 +++++++++++++++++++ 4 files changed, 95 insertions(+), 36 deletions(-) create mode 100644 resources/views/admin/partial/template-full.blade.php create mode 100644 resources/views/admin/partial/topnav.blade.php diff --git a/resources/views/admin/partial/sidebar.blade.php b/resources/views/admin/partial/sidebar.blade.php index 7ccbd8dd..e33075f2 100644 --- a/resources/views/admin/partial/sidebar.blade.php +++ b/resources/views/admin/partial/sidebar.blade.php @@ -1,37 +1,3 @@
    - + @yield('menu')
    \ No newline at end of file diff --git a/resources/views/admin/partial/template-full.blade.php b/resources/views/admin/partial/template-full.blade.php new file mode 100644 index 00000000..193f1a42 --- /dev/null +++ b/resources/views/admin/partial/template-full.blade.php @@ -0,0 +1,26 @@ +@extends('layouts.app') + +@section('content') + +@include('admin.partial.topnav') + +
    +
    +
    +
    +
    +
    + @if (session('status')) +
    + {{ session('status')}} +
    + @endif + @yield('section') +
    +
    +
    +
    +
    +
    + +@endsection \ No newline at end of file diff --git a/resources/views/admin/partial/template.blade.php b/resources/views/admin/partial/template.blade.php index 3f93d88e..4f8b0b95 100644 --- a/resources/views/admin/partial/template.blade.php +++ b/resources/views/admin/partial/template.blade.php @@ -1,7 +1,9 @@ @extends('layouts.app') @section('content') -@yield('header') + +@include('admin.partial.topnav') +
    diff --git a/resources/views/admin/partial/topnav.blade.php b/resources/views/admin/partial/topnav.blade.php new file mode 100644 index 00000000..29a76e28 --- /dev/null +++ b/resources/views/admin/partial/topnav.blade.php @@ -0,0 +1,65 @@ + + +@push('styles') + +@endpush \ No newline at end of file From eaecde7af67a7dc6ac3db77613e9858e2a0dcb3a Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 13:18:39 -0700 Subject: [PATCH 076/179] Remove yarn lockfile --- yarn.lock | 7446 ----------------------------------------------------- 1 file changed, 7446 deletions(-) delete mode 100644 yarn.lock diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 73124a53..00000000 --- a/yarn.lock +++ /dev/null @@ -1,7446 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - -accepts@~1.3.4, accepts@~1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" - dependencies: - mime-types "~2.1.18" - negotiator "0.6.1" - -acorn-dynamic-import@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" - dependencies: - acorn "^4.0.3" - -acorn@^4.0.3: - version "4.0.13" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" - -acorn@^5.0.0: - version "5.5.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" - -adjust-sourcemap-loader@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.2.0.tgz#e33fde95e50db9f2a802e3647e311d2fc5000c69" - dependencies: - assert "^1.3.0" - camelcase "^1.2.1" - loader-utils "^1.1.0" - lodash.assign "^4.0.1" - lodash.defaults "^3.1.2" - object-path "^0.9.2" - regex-parser "^2.2.9" - -ajv-keywords@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be" - -ajv@^4.9.1: - version "4.11.8" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" - -ajv@^5.0.0: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - -ajv@^6.1.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.4.0.tgz#d3aff78e9277549771daf0164cff48482b754fc6" - dependencies: - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - uri-js "^3.0.2" - -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - -ansi-gray@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" - dependencies: - ansi-wrap "0.1.0" - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - dependencies: - color-convert "^1.9.0" - -ansi-wrap@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -aproba@^1.0.3, aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - -archive-type@^3.0.0, archive-type@^3.0.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-3.2.0.tgz#9cd9c006957ebe95fadad5bd6098942a813737f6" - dependencies: - file-type "^3.1.0" - -are-we-there-yet@~1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - -arr-flatten@^1.0.1, arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - -array-differ@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - -array-flatten@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" - -array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.0, array-uniq@^1.0.1, array-uniq@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - -assert@^1.1.1, assert@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - -ast-types@0.9.6: - version "0.9.6" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" - -async-each-series@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-1.1.0.tgz#f42fd8155d38f21a5b8ea07c28e063ed1700b138" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async-foreach@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" - -async@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -async@^2.1.2, async@^2.4.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" - dependencies: - lodash "^4.14.0" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -atob@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.0.tgz#ab2b150e51d7b122b9efc8d7340c06b6c41076bc" - -atob@~1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/atob/-/atob-1.1.3.tgz#95f13629b12c3a51a5d215abdce2aa9f32f80773" - -autoprefixer@^6.3.1: - version "6.7.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" - dependencies: - browserslist "^1.7.6" - caniuse-db "^1.0.30000634" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^5.2.16" - postcss-value-parser "^3.2.3" - -autoprefixer@^7.2.6: - version "7.2.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc" - dependencies: - browserslist "^2.11.3" - caniuse-lite "^1.0.30000805" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^6.0.17" - postcss-value-parser "^3.2.3" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws4@^1.2.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" - -axios@^0.18: - version "0.18.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" - dependencies: - follow-redirects "^1.3.0" - is-buffer "^1.1.5" - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.24.1, babel-core@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.0" - debug "^2.6.8" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.7" - slash "^1.0.0" - source-map "^0.5.6" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-loader@^7.1.1: - version "7.1.4" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.4.tgz#e3463938bd4e6d55d1c174c5485d406a188ed015" - dependencies: - find-cache-dir "^1.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-object-rest-spread@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-object-rest-spread@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" - dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.26.0" - -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-runtime@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-env@^1.5.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^2.1.2" - invariant "^2.2.2" - semver "^5.3.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - -balanced-match@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -base64-js@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" - -base64-js@^1.0.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz#fb13668233d9614cf5fb4bce95a9ba4096cdf801" - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - -bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" - dependencies: - tweetnacl "^0.14.3" - -beeper@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - -bin-build@^2.0.0, bin-build@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/bin-build/-/bin-build-2.2.0.tgz#11f8dd61f70ffcfa2bdcaa5b46f5e8fedd4221cc" - dependencies: - archive-type "^3.0.1" - decompress "^3.0.0" - download "^4.1.2" - exec-series "^1.0.0" - rimraf "^2.2.6" - tempfile "^1.0.0" - url-regex "^3.0.0" - -bin-build@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bin-build/-/bin-build-3.0.0.tgz#c5780a25a8a9f966d8244217e6c1f5082a143861" - dependencies: - decompress "^4.0.0" - download "^6.2.2" - execa "^0.7.0" - p-map-series "^1.0.0" - tempfile "^2.0.0" - -bin-check@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/bin-check/-/bin-check-2.0.0.tgz#86f8e6f4253893df60dc316957f5af02acb05930" - dependencies: - executable "^1.0.0" - -bin-version-check@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/bin-version-check/-/bin-version-check-2.1.0.tgz#e4e5df290b9069f7d111324031efc13fdd11a5b0" - dependencies: - bin-version "^1.0.0" - minimist "^1.1.0" - semver "^4.0.3" - semver-truncate "^1.0.0" - -bin-version@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/bin-version/-/bin-version-1.0.4.tgz#9eb498ee6fd76f7ab9a7c160436f89579435d78e" - dependencies: - find-versions "^1.0.0" - -bin-wrapper@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/bin-wrapper/-/bin-wrapper-3.0.2.tgz#67d3306262e4b1a5f2f88ee23464f6a655677aeb" - dependencies: - bin-check "^2.0.0" - bin-version-check "^2.1.0" - download "^4.0.0" - each-async "^1.1.1" - lazy-req "^1.0.0" - os-filter-obj "^1.0.0" - -binary-extensions@^1.0.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" - -bl@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" - dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - -bluebird@^3.1.1, bluebird@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - -body-parser@1.18.2: - version "1.18.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" - dependencies: - bytes "3.0.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.1" - http-errors "~1.6.2" - iconv-lite "0.4.19" - on-finished "~2.3.0" - qs "6.5.1" - raw-body "2.3.2" - type-is "~1.6.15" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -bootstrap@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.1.0.tgz#110b05c31a236d56dbc9adcda6dd16f53738a28a" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -braces@^2.3.0, braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.1.tgz#3343124db6d7ad53e26a8826318712bdc8450f9c" - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - dependencies: - pako "~1.0.5" - -browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: - version "1.7.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" - dependencies: - caniuse-db "^1.0.30000639" - electron-to-chromium "^1.2.7" - -browserslist@^2.1.2, browserslist@^2.11.3: - version "2.11.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" - dependencies: - caniuse-lite "^1.0.30000792" - electron-to-chromium "^1.3.30" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - -buffer-from@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-0.1.2.tgz#15f4b9bcef012044df31142c14333caf6e0260d0" - -buffer-from@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - -buffer-to-vinyl@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz#00f15faee3ab7a1dda2cde6d9121bffdd07b2262" - dependencies: - file-type "^3.1.0" - readable-stream "^2.0.2" - uuid "^2.0.1" - vinyl "^1.0.0" - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - -buffer@^3.0.1: - version "3.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb" - dependencies: - base64-js "0.0.8" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-modules@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - -cacache@^10.0.4: - version "10.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" - dependencies: - bluebird "^3.5.1" - chownr "^1.0.1" - glob "^7.1.2" - graceful-fs "^4.1.11" - lru-cache "^4.1.1" - mississippi "^2.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.2" - ssri "^5.2.4" - unique-filename "^1.1.0" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^1.0.2, camelcase@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - -caniuse-api@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" - dependencies: - browserslist "^1.3.6" - caniuse-db "^1.0.30000529" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000830" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000830.tgz#6e45255b345649fd15ff59072da1e12bb3de2f13" - -caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805: - version "1.0.30000830" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000830.tgz#cb96b8a2dd3cbfe04acea2af3c4e894249095328" - -capture-stack-trace@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" - -caseless@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - -caw@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/caw/-/caw-1.2.0.tgz#ffb226fe7efc547288dc62ee3e97073c212d1034" - dependencies: - get-proxy "^1.0.1" - is-obj "^1.0.0" - object-assign "^3.0.0" - tunnel-agent "^0.4.0" - -caw@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95" - dependencies: - get-proxy "^2.0.0" - isurl "^1.0.0-alpha5" - tunnel-agent "^0.6.0" - url-to-options "^1.0.1" - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -charenc@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - -chokidar@^2.0.0, chokidar@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.3.tgz#dcbd4f6cbb2a55b4799ba8a840ac527e5f4b1176" - dependencies: - anymatch "^2.0.0" - async-each "^1.0.0" - braces "^2.3.0" - glob-parent "^3.1.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^2.1.1" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - upath "^1.0.0" - optionalDependencies: - fsevents "^1.1.2" - -chownr@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -clap@^1.0.9: - version "1.2.3" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" - dependencies: - chalk "^1.1.3" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-css@4.1.x, clean-css@^4.1.3: - version "4.1.11" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a" - dependencies: - source-map "0.5.x" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -clone-deep@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" - dependencies: - for-own "^1.0.0" - is-plain-object "^2.0.4" - kind-of "^6.0.0" - shallow-clone "^1.0.0" - -clone-stats@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" - -clone@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" - -clone@^1.0.0, clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - -co@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -coa@~1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" - dependencies: - q "^1.1.2" - -coa@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.1.tgz#f3f8b0b15073e35d70263fb1042cb2c023db38af" - dependencies: - q "^1.1.2" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.3.0, color-convert@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" - dependencies: - color-name "^1.1.1" - -color-name@^1.0.0, color-name@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - -color-string@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" - dependencies: - color-name "^1.0.0" - -color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - -color@^0.11.0: - version "0.11.4" - resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" - dependencies: - clone "^1.0.2" - color-convert "^1.3.0" - color-string "^0.3.0" - -colormin@^1.0.5: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" - dependencies: - color "^0.11.0" - css-color-names "0.0.4" - has "^1.0.1" - -colors@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" - dependencies: - delayed-stream "~1.0.0" - -commander@2.15.x, commander@^2.9.0, commander@~2.15.0: - version "2.15.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" - -commander@~2.14.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" - -commander@~2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" - dependencies: - graceful-readlink ">= 1.0.0" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - -component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - -compressible@~2.0.13: - version "2.0.13" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.13.tgz#0d1020ab924b2fdb4d6279875c7d6daba6baa7a9" - dependencies: - mime-db ">= 1.33.0 < 2" - -compression@^1.5.2: - version "1.7.2" - resolved "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz#aaffbcd6aaf854b44ebb280353d5ad1651f59a69" - dependencies: - accepts "~1.3.4" - bytes "3.0.0" - compressible "~2.0.13" - debug "2.6.9" - on-headers "~1.0.1" - safe-buffer "5.1.1" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -concatenate@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/concatenate/-/concatenate-0.0.2.tgz#0b49d6e8c41047d7728cdc8d62a086623397b49f" - dependencies: - globs "^0.1.2" - -config-chain@^1.1.11: - version "1.1.11" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2" - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -connect-history-api-fallback@^1.3.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -console-stream@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44" - -consolidate@^0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.14.5.tgz#5a25047bc76f73072667c8cb52c989888f494c63" - dependencies: - bluebird "^3.1.1" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - -content-disposition@0.5.2, content-disposition@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - -convert-source-map@^0.3.3: - version "0.3.5" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" - -convert-source-map@^1.1.1, convert-source-map@^1.5.0, convert-source-map@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - -core-js@^2.4.0, core-js@^2.5.0: - version "2.5.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.5.tgz#b14dde936c640c0579a6b50cabcc132dd6127e3b" - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" - dependencies: - is-directory "^0.3.1" - js-yaml "^3.4.3" - minimist "^1.2.0" - object-assign "^4.1.0" - os-homedir "^1.0.1" - parse-json "^2.2.0" - require-from-string "^1.1.0" - -create-ecdh@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.1.tgz#44223dfed533193ba5ba54e0df5709b89acf1f82" - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-error-class@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - dependencies: - capture-stack-trace "^1.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-env@^5.1: - version "5.1.4" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.1.4.tgz#f61c14291f7cc653bb86457002ea80a04699d022" - dependencies: - cross-spawn "^5.1.0" - is-windows "^1.0.0" - -cross-spawn@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - -cross-spawn@^5.0.1, cross-spawn@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypt@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-color-names@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - -css-loader@^0.28.9: - version "0.28.11" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7" - dependencies: - babel-code-frame "^6.26.0" - css-selector-tokenizer "^0.7.0" - cssnano "^3.10.0" - icss-utils "^2.1.0" - loader-utils "^1.0.2" - lodash.camelcase "^4.3.0" - object-assign "^4.1.1" - postcss "^5.0.6" - postcss-modules-extract-imports "^1.2.0" - postcss-modules-local-by-default "^1.2.0" - postcss-modules-scope "^1.1.0" - postcss-modules-values "^1.3.0" - postcss-value-parser "^3.3.0" - source-list-map "^2.0.0" - -css-select-base-adapter@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.0.tgz#0102b3d14630df86c3eb9fa9f5456270106cf990" - -css-select@~1.3.0-rc0: - version "1.3.0-rc0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.3.0-rc0.tgz#6f93196aaae737666ea1036a8cb14a8fcb7a9231" - dependencies: - boolbase "^1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "^1.0.1" - -css-selector-tokenizer@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" - dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - regexpu-core "^1.0.0" - -css-tree@1.0.0-alpha.27: - version "1.0.0-alpha.27" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.27.tgz#f211526909c7dc940843d83b9376ed98ddb8de47" - dependencies: - mdn-data "^1.0.0" - source-map "^0.5.3" - -css-tree@1.0.0-alpha25: - version "1.0.0-alpha25" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha25.tgz#1bbfabfbf6eeef4f01d9108ff2edd0be2fe35597" - dependencies: - mdn-data "^1.0.0" - source-map "^0.5.3" - -css-url-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec" - -css-what@2.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" - -css@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/css/-/css-2.2.1.tgz#73a4c81de85db664d4ee674f7d47085e3b2d55dc" - dependencies: - inherits "^2.0.1" - source-map "^0.1.38" - source-map-resolve "^0.3.0" - urix "^0.1.0" - -cssesc@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" - -cssnano@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" - dependencies: - autoprefixer "^6.3.1" - decamelize "^1.1.2" - defined "^1.0.0" - has "^1.0.1" - object-assign "^4.0.1" - postcss "^5.0.14" - postcss-calc "^5.2.0" - postcss-colormin "^2.1.8" - postcss-convert-values "^2.3.4" - postcss-discard-comments "^2.0.4" - postcss-discard-duplicates "^2.0.1" - postcss-discard-empty "^2.0.1" - postcss-discard-overridden "^0.1.1" - postcss-discard-unused "^2.2.1" - postcss-filter-plugins "^2.0.0" - postcss-merge-idents "^2.1.5" - postcss-merge-longhand "^2.0.1" - postcss-merge-rules "^2.0.3" - postcss-minify-font-values "^1.0.2" - postcss-minify-gradients "^1.0.1" - postcss-minify-params "^1.0.4" - postcss-minify-selectors "^2.0.4" - postcss-normalize-charset "^1.1.0" - postcss-normalize-url "^3.0.7" - postcss-ordered-values "^2.1.0" - postcss-reduce-idents "^2.2.2" - postcss-reduce-initial "^1.0.0" - postcss-reduce-transforms "^1.0.3" - postcss-svgo "^2.1.1" - postcss-unique-selectors "^2.0.2" - postcss-value-parser "^3.2.3" - postcss-zindex "^2.0.1" - -csso@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.0.tgz#acdbba5719e2c87bc801eadc032764b2e4b9d4e7" - dependencies: - css-tree "1.0.0-alpha.27" - -csso@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" - dependencies: - clap "^1.0.9" - source-map "^0.5.3" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - dependencies: - array-find-index "^1.0.1" - -cyclist@~0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" - -d@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" - dependencies: - es5-ext "^0.10.9" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - -dateformat@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" - -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - dependencies: - ms "2.0.0" - -debug@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - dependencies: - ms "2.0.0" - -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - -decompress-response@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - dependencies: - mimic-response "^1.0.0" - -decompress-tar@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-3.1.0.tgz#217c789f9b94450efaadc5c5e537978fc333c466" - dependencies: - is-tar "^1.0.0" - object-assign "^2.0.0" - strip-dirs "^1.0.0" - tar-stream "^1.1.1" - through2 "^0.6.1" - vinyl "^0.4.3" - -decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" - dependencies: - file-type "^5.2.0" - is-stream "^1.1.0" - tar-stream "^1.5.2" - -decompress-tarbz2@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz#8b23935681355f9f189d87256a0f8bdd96d9666d" - dependencies: - is-bzip2 "^1.0.0" - object-assign "^2.0.0" - seek-bzip "^1.0.3" - strip-dirs "^1.0.0" - tar-stream "^1.1.1" - through2 "^0.6.1" - vinyl "^0.4.3" - -decompress-tarbz2@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" - dependencies: - decompress-tar "^4.1.0" - file-type "^6.1.0" - is-stream "^1.1.0" - seek-bzip "^1.0.5" - unbzip2-stream "^1.0.9" - -decompress-targz@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-3.1.0.tgz#b2c13df98166268991b715d6447f642e9696f5a0" - dependencies: - is-gzip "^1.0.0" - object-assign "^2.0.0" - strip-dirs "^1.0.0" - tar-stream "^1.1.1" - through2 "^0.6.1" - vinyl "^0.4.3" - -decompress-targz@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" - dependencies: - decompress-tar "^4.1.1" - file-type "^5.2.0" - is-stream "^1.1.0" - -decompress-unzip@^3.0.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-3.4.0.tgz#61475b4152066bbe3fee12f9d629d15fe6478eeb" - dependencies: - is-zip "^1.0.0" - read-all-stream "^3.0.0" - stat-mode "^0.2.0" - strip-dirs "^1.0.0" - through2 "^2.0.0" - vinyl "^1.0.0" - yauzl "^2.2.1" - -decompress-unzip@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" - dependencies: - file-type "^3.8.0" - get-stream "^2.2.0" - pify "^2.3.0" - yauzl "^2.4.2" - -decompress@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/decompress/-/decompress-3.0.0.tgz#af1dd50d06e3bfc432461d37de11b38c0d991bed" - dependencies: - buffer-to-vinyl "^1.0.0" - concat-stream "^1.4.6" - decompress-tar "^3.0.0" - decompress-tarbz2 "^3.0.0" - decompress-targz "^3.0.0" - decompress-unzip "^3.0.0" - stream-combiner2 "^1.1.1" - vinyl-assign "^1.0.1" - vinyl-fs "^2.2.0" - -decompress@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d" - dependencies: - decompress-tar "^4.0.0" - decompress-tarbz2 "^4.0.0" - decompress-targz "^4.0.0" - decompress-unzip "^4.0.1" - graceful-fs "^4.1.10" - make-dir "^1.0.0" - pify "^2.3.0" - strip-dirs "^2.0.0" - -deep-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - -deep-extend@~0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" - -define-properties@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" - dependencies: - foreach "^2.0.5" - object-keys "^1.0.8" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - -del@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" - dependencies: - globby "^6.1.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - p-map "^1.1.1" - pify "^3.0.0" - rimraf "^2.2.8" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -depd@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" - -depd@~1.1.1, depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - -detect-node@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - -dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - dependencies: - buffer-indexof "^1.0.0" - -dom-serializer@0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" - dependencies: - domelementtype "~1.1.1" - entities "~1.1.1" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - -domelementtype@1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" - -domelementtype@~1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" - -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - dependencies: - dom-serializer "0" - domelementtype "1" - -dotenv-expand@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-4.2.0.tgz#def1f1ca5d6059d24a766e587942c21106ce1275" - -dotenv@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d" - -download@^4.0.0, download@^4.1.2: - version "4.4.3" - resolved "https://registry.yarnpkg.com/download/-/download-4.4.3.tgz#aa55fdad392d95d4b68e8c2be03e0c2aa21ba9ac" - dependencies: - caw "^1.0.1" - concat-stream "^1.4.7" - each-async "^1.0.0" - filenamify "^1.0.1" - got "^5.0.0" - gulp-decompress "^1.2.0" - gulp-rename "^1.2.0" - is-url "^1.2.0" - object-assign "^4.0.1" - read-all-stream "^3.0.0" - readable-stream "^2.0.2" - stream-combiner2 "^1.1.1" - vinyl "^1.0.0" - vinyl-fs "^2.2.0" - ware "^1.2.0" - -download@^6.2.2: - version "6.2.5" - resolved "https://registry.yarnpkg.com/download/-/download-6.2.5.tgz#acd6a542e4cd0bb42ca70cfc98c9e43b07039714" - dependencies: - caw "^2.0.0" - content-disposition "^0.5.2" - decompress "^4.0.0" - ext-name "^5.0.0" - file-type "5.2.0" - filenamify "^2.0.0" - get-stream "^3.0.0" - got "^7.0.0" - make-dir "^1.0.0" - p-event "^1.0.0" - pify "^3.0.0" - -duplexer2@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" - dependencies: - readable-stream "~1.1.9" - -duplexer2@^0.1.4, duplexer2@~0.1.0: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - dependencies: - readable-stream "^2.0.2" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - -duplexify@^3.2.0, duplexify@^3.4.2, duplexify@^3.5.3: - version "3.5.4" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4" - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -each-async@^1.0.0, each-async@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/each-async/-/each-async-1.1.1.tgz#dee5229bdf0ab6ba2012a395e1b869abf8813473" - dependencies: - onetime "^1.0.0" - set-immediate-shim "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30: - version "1.3.42" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.42.tgz#95c33bf01d0cc405556aec899fe61fd4d76ea0f9" - -elliptic@^6.0.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - dependencies: - once "^1.4.0" - -enhanced-resolve@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.7" - -entities@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" - -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" - dependencies: - is-arrayish "^0.2.1" - -error-stack-parser@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.1.tgz#a3202b8fb03114aa9b40a0e3669e48b2b65a010a" - dependencies: - stackframe "^1.0.3" - -es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.11.0.tgz#cce87d518f0496893b1a30cd8461835535480681" - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" - is-regex "^1.0.4" - -es-to-primitive@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" - dependencies: - is-callable "^1.1.1" - is-date-object "^1.0.1" - is-symbol "^1.0.1" - -es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.42" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.42.tgz#8c07dd33af04d5dcd1310b5cef13bea63a89ba8d" - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.1" - next-tick "1" - -es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - dependencies: - d "1" - es5-ext "~0.10.14" - -es6-templates@^0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/es6-templates/-/es6-templates-0.2.3.tgz#5cb9ac9fb1ded6eb1239342b81d792bbb4078ee4" - dependencies: - recast "~0.11.12" - through "~2.3.6" - -es6-weak-map@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" - dependencies: - d "1" - es5-ext "^0.10.14" - es6-iterator "^2.0.1" - es6-symbol "^3.1.1" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" - dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -esprima@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" - -esprima@~3.1.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - dependencies: - estraverse "^4.1.0" - -estraverse@^4.1.0, estraverse@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - -event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - dependencies: - d "1" - es5-ext "~0.10.14" - -eventemitter3@1.x.x: - version "1.2.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" - -events@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - -eventsource@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" - dependencies: - original ">=0.0.5" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -exec-buffer@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/exec-buffer/-/exec-buffer-3.2.0.tgz#b1686dbd904c7cf982e652c1f5a79b1e5573082b" - dependencies: - execa "^0.7.0" - p-finally "^1.0.0" - pify "^3.0.0" - rimraf "^2.5.4" - tempfile "^2.0.0" - -exec-series@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/exec-series/-/exec-series-1.0.3.tgz#6d257a9beac482a872c7783bc8615839fc77143a" - dependencies: - async-each-series "^1.1.0" - object-assign "^4.1.0" - -execa@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" - dependencies: - cross-spawn "^6.0.0" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -executable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/executable/-/executable-1.1.0.tgz#877980e9112f3391066da37265de7ad8434ab4d9" - dependencies: - meow "^3.1.0" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -express@^4.16.2: - version "4.16.3" - resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" - dependencies: - accepts "~1.3.5" - array-flatten "1.1.1" - body-parser "1.18.2" - content-disposition "0.5.2" - content-type "~1.0.4" - cookie "0.3.1" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.1.1" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.2" - path-to-regexp "0.1.7" - proxy-addr "~2.0.3" - qs "6.5.1" - range-parser "~1.2.0" - safe-buffer "5.1.1" - send "0.16.2" - serve-static "1.13.2" - setprototypeof "1.1.0" - statuses "~1.4.0" - type-is "~1.6.16" - utils-merge "1.0.1" - vary "~1.1.2" - -ext-list@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" - dependencies: - mime-db "^1.28.0" - -ext-name@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" - dependencies: - ext-list "^2.0.0" - sort-keys-length "^1.0.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0, extend@~3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extract-text-webpack-plugin@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz#5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7" - dependencies: - async "^2.4.1" - loader-utils "^1.1.0" - schema-utils "^0.3.0" - webpack-sources "^1.0.1" - -extsprintf@1.3.0, extsprintf@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - -fancy-log@^1.1.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1" - dependencies: - ansi-gray "^0.1.1" - color-support "^1.1.3" - time-stamp "^1.0.0" - -fast-deep-equal@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - -fastparse@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" - -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" - dependencies: - websocket-driver ">=0.5.1" - -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - dependencies: - pend "~1.2.0" - -figures@^1.3.5: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -file-loader@^0.11.2: - version "0.11.2" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.11.2.tgz#4ff1df28af38719a6098093b88c82c71d1794a34" - dependencies: - loader-utils "^1.0.2" - -file-type@5.2.0, file-type@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" - -file-type@^3.1.0, file-type@^3.8.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" - -file-type@^4.1.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" - -file-type@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -filename-reserved-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz#e61cf805f0de1c984567d0386dc5df50ee5af7e4" - -filename-reserved-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" - -filenamify@^1.0.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-1.2.1.tgz#a9f2ffd11c503bed300015029272378f1f1365a5" - dependencies: - filename-reserved-regex "^1.0.0" - strip-outer "^1.0.0" - trim-repeated "^1.0.0" - -filenamify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-2.0.0.tgz#bd162262c0b6e94bfbcdcf19a3bbb3764f785695" - dependencies: - filename-reserved-regex "^2.0.0" - strip-outer "^1.0.0" - trim-repeated "^1.0.0" - -fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^1.1.3" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -finalhandler@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.4.0" - unpipe "~1.0.0" - -find-cache-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" - dependencies: - commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^2.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - dependencies: - locate-path "^2.0.0" - -find-versions@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-1.2.1.tgz#cbde9f12e38575a0af1be1b9a2c5d5fd8f186b62" - dependencies: - array-uniq "^1.0.0" - get-stdin "^4.0.1" - meow "^3.5.0" - semver-regex "^1.0.0" - -first-chunk-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" - -flatten@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" - -flush-write-stream@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.4" - -follow-redirects@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.4.1.tgz#d8120f4518190f55aac65bb6fc7b85fcd666d6aa" - dependencies: - debug "^3.1.0" - -for-in@^0.1.3: - version "0.1.8" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" - -for-in@^1.0.1, for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - -for-own@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" - dependencies: - for-in "^1.0.1" - -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - -friendly-errors-webpack-plugin@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz#efc86cbb816224565861a1be7a9d84d0aafea136" - dependencies: - chalk "^1.1.3" - error-stack-parser "^2.0.0" - string-width "^2.0.0" - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-extra@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^3.0.0" - universalify "^0.1.0" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.39" - -fstream-ignore@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" - dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" - -fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -gaze@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105" - dependencies: - globule "^1.0.0" - -generate-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - dependencies: - is-property "^1.0.0" - -get-caller-file@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" - -get-proxy@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-1.1.0.tgz#894854491bc591b0f147d7ae570f5c678b7256eb" - dependencies: - rc "^1.1.2" - -get-proxy@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93" - dependencies: - npm-conf "^1.1.0" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - -get-stream@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - dependencies: - assert-plus "^1.0.0" - -gifsicle@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/gifsicle/-/gifsicle-3.0.4.tgz#f45cb5ed10165b665dc929e0e9328b6c821dfa3b" - dependencies: - bin-build "^2.0.0" - bin-wrapper "^3.0.0" - logalot "^2.0.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob-parent@^3.0.0, glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-stream@^5.3.2: - version "5.3.5" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" - dependencies: - extend "^3.0.0" - glob "^5.0.3" - glob-parent "^3.0.0" - micromatch "^2.3.7" - ordered-read-streams "^0.3.0" - through2 "^0.6.0" - to-absolute-glob "^0.1.1" - unique-stream "^2.0.2" - -glob@^5.0.3: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globs@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/globs/-/globs-0.1.3.tgz#670037125287cb6549aad96a44cfa684fd7c5502" - dependencies: - glob "^7.1.1" - -globule@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09" - dependencies: - glob "~7.1.1" - lodash "~4.17.4" - minimatch "~3.0.2" - -glogg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.1.tgz#dcf758e44789cc3f3d32c1f3562a3676e6a34810" - dependencies: - sparkles "^1.0.0" - -got@^5.0.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" - dependencies: - create-error-class "^3.0.1" - duplexer2 "^0.1.4" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - node-status-codes "^1.0.0" - object-assign "^4.0.1" - parse-json "^2.1.0" - pinkie-promise "^2.0.0" - read-all-stream "^3.0.0" - readable-stream "^2.0.5" - timed-out "^3.0.0" - unzip-response "^1.0.2" - url-parse-lax "^1.0.0" - -got@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" - dependencies: - decompress-response "^3.2.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-plain-obj "^1.1.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^1.1.1" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - url-parse-lax "^1.0.0" - url-to-options "^1.0.1" - -graceful-fs@^4.0.0, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - -gulp-decompress@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/gulp-decompress/-/gulp-decompress-1.2.0.tgz#8eeb65a5e015f8ed8532cafe28454960626f0dc7" - dependencies: - archive-type "^3.0.0" - decompress "^3.0.0" - gulp-util "^3.0.1" - readable-stream "^2.0.2" - -gulp-rename@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-1.2.2.tgz#3ad4428763f05e2764dec1c67d868db275687817" - -gulp-sourcemaps@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c" - dependencies: - convert-source-map "^1.1.1" - graceful-fs "^4.1.2" - strip-bom "^2.0.0" - through2 "^2.0.0" - vinyl "^1.0.0" - -gulp-util@^3.0.1: - version "3.0.8" - resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" - dependencies: - array-differ "^1.0.0" - array-uniq "^1.0.2" - beeper "^1.0.0" - chalk "^1.0.0" - dateformat "^2.0.0" - fancy-log "^1.1.0" - gulplog "^1.0.0" - has-gulplog "^0.1.0" - lodash._reescape "^3.0.0" - lodash._reevaluate "^3.0.0" - lodash._reinterpolate "^3.0.0" - lodash.template "^3.0.0" - minimist "^1.1.0" - multipipe "^0.1.2" - object-assign "^3.0.0" - replace-ext "0.0.1" - through2 "^2.0.0" - vinyl "^0.5.0" - -gulplog@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" - dependencies: - glogg "^1.0.0" - -handle-thing@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" - -har-schema@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" - -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" - dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" - -har-validator@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" - dependencies: - ajv "^4.9.1" - har-schema "^1.0.5" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - -has-gulplog@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" - dependencies: - sparkles "^1.0.0" - -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - dependencies: - has-symbol-support-x "^1.4.1" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" - dependencies: - function-bind "^1.0.2" - -hash-base@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" - dependencies: - inherits "^2.0.1" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash-sum@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.0" - -hawk@3.1.3, hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -he@1.1.x, he@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.6.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-comment-regex@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" - -html-entities@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" - -html-loader@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-0.4.5.tgz#5fbcd87cd63a5c49a7fce2fe56f425e05729c68c" - dependencies: - es6-templates "^0.2.2" - fastparse "^1.1.1" - html-minifier "^3.0.1" - loader-utils "^1.0.2" - object-assign "^4.1.0" - -html-minifier@^3.0.1: - version "3.5.14" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.14.tgz#88653b24b344274e3e3d7052f1541ebea054ac60" - dependencies: - camel-case "3.0.x" - clean-css "4.1.x" - commander "2.15.x" - he "1.1.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.3.x" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - -http-errors@1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" - dependencies: - depd "1.1.1" - inherits "2.0.3" - setprototypeof "1.0.3" - statuses ">= 1.3.1 < 2" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.4.0: - version "0.4.11" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.11.tgz#5b720849c650903c27e521633d94696ee95f3529" - -http-proxy-middleware@~0.17.4: - version "0.17.4" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" - dependencies: - http-proxy "^1.16.2" - is-glob "^3.1.0" - lodash "^4.17.2" - micromatch "^2.3.11" - -http-proxy@^1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" - dependencies: - eventemitter3 "1.x.x" - requires-port "1.x.x" - -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - -iconv-lite@0.4.19: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - -icss-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" - dependencies: - postcss "^6.0.1" - -ieee754@^1.1.4: - version "1.1.11" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.11.tgz#c16384ffe00f5b7835824e67b6f2bd44a5229455" - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - -imagemin-gifsicle@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/imagemin-gifsicle/-/imagemin-gifsicle-5.2.0.tgz#3781524c457612ef04916af34241a2b42bfcb40a" - dependencies: - exec-buffer "^3.0.0" - gifsicle "^3.0.0" - is-gif "^1.0.0" - -imagemin-mozjpeg@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/imagemin-mozjpeg/-/imagemin-mozjpeg-7.0.0.tgz#d926477fc6ef5f3a768a4222f7b2d808d3eba568" - dependencies: - execa "^0.8.0" - is-jpg "^1.0.0" - mozjpeg "^5.0.0" - -imagemin-optipng@^5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/imagemin-optipng/-/imagemin-optipng-5.2.1.tgz#d22da412c09f5ff00a4339960b98a88b1dbe8695" - dependencies: - exec-buffer "^3.0.0" - is-png "^1.0.0" - optipng-bin "^3.0.0" - -imagemin-pngquant@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/imagemin-pngquant/-/imagemin-pngquant-5.1.0.tgz#b9eb563d9e6a3876f6248be0061ba1b0ef269c07" - dependencies: - execa "^0.10.0" - is-png "^1.0.0" - is-stream "^1.1.0" - pngquant-bin "^4.0.0" - -imagemin-svgo@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/imagemin-svgo/-/imagemin-svgo-6.0.0.tgz#2dd8c82946be42a8e2cbcae3c5bf007bc2b8b9e8" - dependencies: - buffer-from "^0.1.1" - is-svg "^2.0.0" - svgo "^1.0.0" - -imagemin@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/imagemin/-/imagemin-5.3.1.tgz#f19c2eee1e71ba6c6558c515f9fc96680189a6d4" - dependencies: - file-type "^4.1.0" - globby "^6.1.0" - make-dir "^1.0.0" - p-pipe "^1.1.0" - pify "^2.3.0" - replace-ext "^1.0.0" - -img-loader@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/img-loader/-/img-loader-2.0.1.tgz#de8f80aa5e3222fa1eb4c8c3bc3d41e5d8dd7c78" - dependencies: - imagemin "^5.3.1" - imagemin-gifsicle "^5.2.0" - imagemin-mozjpeg "^7.0.0" - imagemin-optipng "^5.2.0" - imagemin-pngquant "^5.0.1" - imagemin-svgo "^6.0.0" - loader-utils "^1.1.0" - -import-local@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" - dependencies: - pkg-dir "^2.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -in-publish@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - dependencies: - repeating "^2.0.0" - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - -ini@^1.3.4, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - -internal-ip@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" - dependencies: - meow "^3.3.0" - -interpret@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - -ip-regex@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" - -ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - -ipaddr.js@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - -is-absolute@^0.1.5: - version "0.1.7" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.1.7.tgz#847491119fccb5fb436217cc737f7faad50f603f" - dependencies: - is-relative "^0.1.0" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5, is-buffer@~1.1.1: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-bzip2@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-bzip2/-/is-bzip2-1.0.0.tgz#5ee58eaa5a2e9c80e21407bedf23ae5ac091b3fc" - -is-callable@^1.1.1, is-callable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-gif@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-gif/-/is-gif-1.0.0.tgz#a6d2ae98893007bffa97a1d8c01d63205832097e" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" - dependencies: - is-extglob "^2.1.1" - -is-gzip@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83" - -is-jpg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-jpg/-/is-jpg-1.0.1.tgz#296d57fdd99ce010434a7283e346ab9a1035e975" - -is-my-ip-valid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" - -is-my-json-valid@^2.12.4: - version "2.17.2" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c" - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - is-my-ip-valid "^1.0.0" - jsonpointer "^4.0.0" - xtend "^4.0.0" - -is-natural-number@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-2.1.1.tgz#7d4c5728377ef386c3e194a9911bf57c6dc335e7" - -is-natural-number@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - -is-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" - -is-odd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" - dependencies: - is-number "^4.0.0" - -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - -is-path-in-cwd@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - dependencies: - path-is-inside "^1.0.1" - -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - dependencies: - isobject "^3.0.1" - -is-png@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-png/-/is-png-1.1.0.tgz#d574b12bf275c0350455570b0e5b57ab062077ce" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-property@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - dependencies: - has "^1.0.1" - -is-relative@^0.1.0: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.1.3.tgz#905fee8ae86f45b3ec614bc3c15c869df0876e82" - -is-retry-allowed@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" - -is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-svg@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" - dependencies: - html-comment-regex "^1.1.0" - -is-symbol@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" - -is-tar@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-tar/-/is-tar-1.0.0.tgz#2f6b2e1792c1f5bb36519acaa9d65c0d26fe853d" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -is-url@^1.2.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - -is-valid-glob@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" - -is-windows@^1.0.0, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - -is-zip@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-zip/-/is-zip-1.0.0.tgz#47b0a8ff4d38a76431ccfd99a8e15a4c86ba2325" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - -jquery@^3.2: - version "3.3.1" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca" - -js-base64@^2.1.8, js-base64@^2.1.9: - version "2.4.3" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582" - -js-tokens@^3.0.0, js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - -js-yaml@^3.4.3, js-yaml@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - -json-loader@^0.5.4: - version "0.5.7" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" - -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -json3@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" - -json5@^0.5.0, json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - -jsonfile@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -jsonpointer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -killable@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - -laravel-mix@^2.0: - version "2.1.11" - resolved "https://registry.yarnpkg.com/laravel-mix/-/laravel-mix-2.1.11.tgz#3741bde214586f8c171641990c9a487eece5367d" - dependencies: - autoprefixer "^7.2.6" - babel-core "^6.24.1" - babel-loader "^7.1.1" - babel-plugin-transform-object-rest-spread "^6.26.0" - babel-plugin-transform-runtime "^6.23.0" - babel-preset-env "^1.5.1" - chokidar "^2.0.0" - clean-css "^4.1.3" - concatenate "0.0.2" - css-loader "^0.28.9" - dotenv "^4.0.0" - dotenv-expand "^4.2.0" - extract-text-webpack-plugin "^3.0.2" - file-loader "^0.11.2" - friendly-errors-webpack-plugin "^1.6.1" - fs-extra "^3.0.1" - glob "^7.1.2" - html-loader "^0.4.5" - img-loader "^2.0.1" - lodash "^4.17.5" - md5 "^2.2.1" - node-sass "^4.7.2" - postcss-loader "^2.1.0" - resolve-url-loader "^2.2.1" - sass-loader "^6.0.5" - style-loader "^0.18.2" - uglify-js "^2.8.29" - uglifyjs-webpack-plugin "^1.1.8" - vue-loader "^13.7.1" - vue-template-compiler "^2.5.13" - webpack "^3.11.0" - webpack-chunk-hash "^0.4.0" - webpack-dev-server "^2.11.1" - webpack-merge "^4.1.0" - webpack-notifier "^1.5.1" - yargs "^8.0.2" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - -lazy-req@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac" - -lazystream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" - dependencies: - readable-stream "^2.0.5" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - dependencies: - invert-kv "^1.0.0" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -loader-runner@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" - -loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -lodash._baseassign@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" - dependencies: - lodash._basecopy "^3.0.0" - lodash.keys "^3.0.0" - -lodash._basecopy@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" - -lodash._basetostring@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" - -lodash._basevalues@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" - -lodash._bindcallback@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" - -lodash._createassigner@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" - dependencies: - lodash._bindcallback "^3.0.0" - lodash._isiterateecall "^3.0.0" - lodash.restparam "^3.0.0" - -lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - -lodash._isiterateecall@^3.0.0: - version "3.0.9" - resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" - -lodash._reescape@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" - -lodash._reevaluate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" - -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - -lodash._root@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" - -lodash.assign@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa" - dependencies: - lodash._baseassign "^3.0.0" - lodash._createassigner "^3.0.0" - lodash.keys "^3.0.0" - -lodash.assign@^4.0.1, lodash.assign@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - -lodash.clonedeep@^4.3.2: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - -lodash.defaults@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c" - dependencies: - lodash.assign "^3.0.0" - lodash.restparam "^3.0.0" - -lodash.defaults@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - -lodash.escape@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" - dependencies: - lodash._root "^3.0.0" - -lodash.isarguments@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - -lodash.isarray@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" - -lodash.isequal@^4.0.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - -lodash.keys@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" - dependencies: - lodash._getnative "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - -lodash.mergewith@^4.6.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" - -lodash.restparam@^3.0.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" - -lodash.tail@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" - -lodash.template@^3.0.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" - dependencies: - lodash._basecopy "^3.0.0" - lodash._basetostring "^3.0.0" - lodash._basevalues "^3.0.0" - lodash._isiterateecall "^3.0.0" - lodash._reinterpolate "^3.0.0" - lodash.escape "^3.0.0" - lodash.keys "^3.0.0" - lodash.restparam "^3.0.0" - lodash.templatesettings "^3.0.0" - -lodash.templatesettings@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.escape "^3.0.0" - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - -lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.4: - version "4.17.5" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" - -logalot@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/logalot/-/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552" - dependencies: - figures "^1.3.5" - squeak "^1.0.0" - -loglevel@^1.4.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" - -longest@^1.0.0, longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -loose-envify@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" - dependencies: - js-tokens "^3.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - -lpad-align@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/lpad-align/-/lpad-align-1.1.2.tgz#21f600ac1c3095c3c6e497ee67271ee08481fe9e" - dependencies: - get-stdin "^4.0.1" - indent-string "^2.1.0" - longest "^1.0.0" - meow "^3.3.0" - -lru-cache@^4.0.1, lru-cache@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f" - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -macaddress@^0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" - -make-dir@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" - dependencies: - pify "^3.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - dependencies: - object-visit "^1.0.0" - -math-expression-evaluator@^1.2.14: - version "1.2.17" - resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" - -md5.js@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -md5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" - dependencies: - charenc "~0.0.1" - crypt "~0.0.1" - is-buffer "~1.1.1" - -mdn-data@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.1.tgz#79586c90321787e5a2e51eb6823bb448949bc1ab" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - dependencies: - mimic-fn "^1.0.0" - -memory-fs@^0.4.0, memory-fs@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -meow@^3.1.0, meow@^3.3.0, meow@^3.5.0, meow@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - -merge-stream@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - dependencies: - readable-stream "^2.0.1" - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - -micromatch@^2.3.11, micromatch@^2.3.7: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -"mime-db@>= 1.33.0 < 2", mime-db@^1.28.0, mime-db@~1.33.0: - version "1.33.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" - -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7: - version "2.1.18" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" - dependencies: - mime-db "~1.33.0" - -mime@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" - -mime@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - -mimic-response@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e" - -minimalistic-assert@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -mississippi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^2.0.1" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mixin-object@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" - dependencies: - for-in "^0.1.3" - is-extendable "^0.1.1" - -mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -mozjpeg@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/mozjpeg/-/mozjpeg-5.0.0.tgz#b8671c4924568a363de003ff2fd397ab83f752c5" - dependencies: - bin-build "^2.2.0" - bin-wrapper "^3.0.0" - logalot "^2.0.0" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -multipipe@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" - dependencies: - duplexer2 "0.0.2" - -nan@^2.10.0, nan@^2.3.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" - -nanomatch@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-odd "^2.0.0" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -negotiator@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - -neo-async@^2.5.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee" - -next-tick@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - -nice-try@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4" - -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - dependencies: - lower-case "^1.1.1" - -node-forge@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.1.tgz#9da611ea08982f4b94206b3beb4cc9665f20c300" - -node-gyp@^3.3.1: - version "3.6.2" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60" - dependencies: - fstream "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - minimatch "^3.0.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request "2" - rimraf "2" - semver "~5.3.0" - tar "^2.0.0" - which "1" - -node-libs-browser@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^1.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.0" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.10.3" - vm-browserify "0.0.4" - -node-notifier@^5.1.2: - version "5.2.1" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea" - dependencies: - growly "^1.3.0" - semver "^5.4.1" - shellwords "^0.1.1" - which "^1.3.0" - -node-pre-gyp@^0.6.39: - version "0.6.39" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" - dependencies: - detect-libc "^1.0.2" - hawk "3.1.3" - mkdirp "^0.5.1" - nopt "^4.0.1" - npmlog "^4.0.2" - rc "^1.1.7" - request "2.81.0" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^2.2.1" - tar-pack "^3.4.0" - -node-sass@^4.7.2: - version "4.8.3" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.8.3.tgz#d077cc20a08ac06f661ca44fb6f19cd2ed41debb" - dependencies: - async-foreach "^0.1.3" - chalk "^1.1.1" - cross-spawn "^3.0.0" - gaze "^1.0.0" - get-stdin "^4.0.1" - glob "^7.0.3" - in-publish "^2.0.0" - lodash.assign "^4.2.0" - lodash.clonedeep "^4.3.2" - lodash.mergewith "^4.6.0" - meow "^3.7.0" - mkdirp "^0.5.1" - nan "^2.10.0" - node-gyp "^3.3.1" - npmlog "^4.0.0" - request "~2.79.0" - sass-graph "^2.2.4" - stdout-stream "^1.4.0" - "true-case-path" "^1.0.2" - -node-status-codes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" - -"nopt@2 || 3": - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - dependencies: - abbrev "1" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.0.1, normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - -normalize-url@^1.4.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - -npm-conf@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - dependencies: - config-chain "^1.1.11" - pify "^3.0.0" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - dependencies: - path-key "^2.0.0" - -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -nth-check@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" - dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -oauth-sign@~0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" - -object-assign@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" - -object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-keys@^1.0.8: - version "1.0.11" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" - -object-path@^0.9.2: - version "0.9.2" - resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.9.2.tgz#0fd9a74fc5fad1ae3968b586bda5c632bd6c05a5" - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - dependencies: - isobject "^3.0.0" - -object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - dependencies: - isobject "^3.0.1" - -object.values@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.6.1" - function-bind "^1.1.0" - has "^1.0.1" - -obuf@^1.0.0, obuf@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" - -once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -onetime@^1.0.0: - version "1.1.0" - resolved "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" - -opn@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" - dependencies: - is-wsl "^1.1.0" - -optipng-bin@^3.0.0: - version "3.1.4" - resolved "https://registry.yarnpkg.com/optipng-bin/-/optipng-bin-3.1.4.tgz#95d34f2c488704f6fd70606bfea0c659f1d95d84" - dependencies: - bin-build "^2.0.0" - bin-wrapper "^3.0.0" - logalot "^2.0.0" - -ordered-read-streams@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" - dependencies: - is-stream "^1.0.1" - readable-stream "^2.0.1" - -original@>=0.0.5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" - dependencies: - url-parse "1.0.x" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - -os-filter-obj@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/os-filter-obj/-/os-filter-obj-1.0.3.tgz#5915330d90eced557d2d938a31c6dd214d9c63ad" - -os-homedir@^1.0.0, os-homedir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - dependencies: - lcid "^1.0.0" - -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -osenv@0, osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-cancelable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" - -p-event@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-1.3.0.tgz#8e6b4f4f65c72bc5b6fe28b75eda874f96a4a085" - dependencies: - p-timeout "^1.1.1" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - -p-limit@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" - dependencies: - p-try "^1.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - dependencies: - p-limit "^1.1.0" - -p-map-series@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" - dependencies: - p-reduce "^1.0.0" - -p-map@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" - -p-pipe@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9" - -p-reduce@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" - -p-timeout@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" - dependencies: - p-finally "^1.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - -pako@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" - -parallel-transform@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" - dependencies: - cyclist "~0.2.2" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - dependencies: - no-case "^2.2.0" - -parse-asn1@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-json@^2.1.0, parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -parseurl@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - -path-parse@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - dependencies: - pify "^2.0.0" - -pbkdf2@^3.0.3: - version "3.0.14" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - -performance-now@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" - -pify@^2.0.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - dependencies: - find-up "^2.1.0" - -pngquant-bin@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pngquant-bin/-/pngquant-bin-4.0.0.tgz#468adf7036f50fae09c9c264ef62b6d10c02f5c2" - dependencies: - bin-build "^3.0.0" - bin-wrapper "^3.0.0" - execa "^0.10.0" - logalot "^2.0.0" - -popper.js@^1.12: - version "1.14.3" - resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.3.tgz#1438f98d046acf7b4d78cd502bf418ac64d4f095" - -portfinder@^1.0.9: - version "1.0.13" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" - dependencies: - async "^1.5.2" - debug "^2.2.0" - mkdirp "0.5.x" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - -postcss-calc@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" - dependencies: - postcss "^5.0.2" - postcss-message-helpers "^2.0.0" - reduce-css-calc "^1.2.6" - -postcss-colormin@^2.1.8: - version "2.2.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" - dependencies: - colormin "^1.0.5" - postcss "^5.0.13" - postcss-value-parser "^3.2.3" - -postcss-convert-values@^2.3.4: - version "2.6.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" - dependencies: - postcss "^5.0.11" - postcss-value-parser "^3.1.2" - -postcss-discard-comments@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" - dependencies: - postcss "^5.0.14" - -postcss-discard-duplicates@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" - dependencies: - postcss "^5.0.4" - -postcss-discard-empty@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" - dependencies: - postcss "^5.0.14" - -postcss-discard-overridden@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" - dependencies: - postcss "^5.0.16" - -postcss-discard-unused@^2.2.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" - dependencies: - postcss "^5.0.14" - uniqs "^2.0.0" - -postcss-filter-plugins@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" - dependencies: - postcss "^5.0.4" - uniqid "^4.0.0" - -postcss-load-config@^1.1.0, postcss-load-config@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - postcss-load-options "^1.2.0" - postcss-load-plugins "^2.3.0" - -postcss-load-options@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - -postcss-load-plugins@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" - dependencies: - cosmiconfig "^2.1.1" - object-assign "^4.1.0" - -postcss-loader@^2.1.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.3.tgz#eb210da734e475a244f76ccd61f9860f5bb3ee09" - dependencies: - loader-utils "^1.1.0" - postcss "^6.0.0" - postcss-load-config "^1.2.0" - schema-utils "^0.4.0" - -postcss-merge-idents@^2.1.5: - version "2.1.7" - resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" - dependencies: - has "^1.0.1" - postcss "^5.0.10" - postcss-value-parser "^3.1.1" - -postcss-merge-longhand@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" - dependencies: - postcss "^5.0.4" - -postcss-merge-rules@^2.0.3: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" - dependencies: - browserslist "^1.5.2" - caniuse-api "^1.5.2" - postcss "^5.0.4" - postcss-selector-parser "^2.2.2" - vendors "^1.0.0" - -postcss-message-helpers@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" - -postcss-minify-font-values@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" - dependencies: - object-assign "^4.0.1" - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-minify-gradients@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" - dependencies: - postcss "^5.0.12" - postcss-value-parser "^3.3.0" - -postcss-minify-params@^1.0.4: - version "1.2.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.2" - postcss-value-parser "^3.0.2" - uniqs "^2.0.0" - -postcss-minify-selectors@^2.0.4: - version "2.1.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" - dependencies: - alphanum-sort "^1.0.2" - has "^1.0.1" - postcss "^5.0.14" - postcss-selector-parser "^2.0.0" - -postcss-modules-extract-imports@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" - dependencies: - postcss "^6.0.1" - -postcss-modules-local-by-default@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-scope@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-values@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^6.0.1" - -postcss-normalize-charset@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" - dependencies: - postcss "^5.0.5" - -postcss-normalize-url@^3.0.7: - version "3.0.8" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^1.4.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - -postcss-ordered-values@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.1" - -postcss-reduce-idents@^2.2.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-reduce-initial@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" - dependencies: - postcss "^5.0.4" - -postcss-reduce-transforms@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" - dependencies: - has "^1.0.1" - postcss "^5.0.8" - postcss-value-parser "^3.0.1" - -postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-svgo@^2.1.1: - version "2.1.6" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" - dependencies: - is-svg "^2.0.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - svgo "^0.7.0" - -postcss-unique-selectors@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" - -postcss-zindex@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" - dependencies: - has "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: - version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.17, postcss@^6.0.8: - version "6.0.21" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.21.tgz#8265662694eddf9e9a5960db6da33c39e4cd069d" - dependencies: - chalk "^2.3.2" - source-map "^0.6.1" - supports-color "^5.3.0" - -prepend-http@^1.0.0, prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -prettier@^1.7.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.12.0.tgz#d26fc5894b9230de97629b39cae225b503724ce8" - -private@^0.1.6, private@^0.1.7, private@~0.1.5: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - -process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - -proxy-addr@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.6.0" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -public-encrypt@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - -pump@^2.0.0, pump@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.4.0.tgz#80b7c5df7e24153d03f0e7ac8a05a5d068bd07fb" - dependencies: - duplexify "^3.5.3" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -punycode@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - -qs@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" - -qs@~6.3.0: - version "6.3.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" - -qs@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" - -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - -querystringify@0.0.x: - version "0.0.4" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" - -querystringify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" - -randomatic@^1.1.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.0.3, range-parser@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - -raw-body@2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" - dependencies: - bytes "3.0.0" - http-errors "1.6.2" - iconv-lite "0.4.19" - unpipe "1.0.0" - -rc@^1.1.2, rc@^1.1.7: - version "1.2.6" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.6.tgz#eb18989c6d4f4f162c399f79ddd29f3835568092" - dependencies: - deep-extend "~0.4.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-all-stream@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" - dependencies: - pinkie-promise "^2.0.0" - readable-stream "^2.0.0" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -"readable-stream@>=1.0.33-1 <1.1.0-0": - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@~1.1.9: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - -recast@~0.11.12: - version "0.11.23" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" - dependencies: - ast-types "0.9.6" - esprima "~3.1.0" - private "~0.1.5" - source-map "~0.5.0" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -reduce-css-calc@^1.2.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" - dependencies: - balanced-match "^0.4.2" - math-expression-evaluator "^1.2.14" - reduce-function-call "^1.0.1" - -reduce-function-call@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" - dependencies: - balanced-match "^0.4.2" - -regenerate@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - dependencies: - is-equal-shallow "^0.1.3" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regex-parser@^2.2.9: - version "2.2.9" - resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.9.tgz#a372f45a248b62976a568037c1b6e60a60599192" - -regexpu-core@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - dependencies: - jsesc "~0.5.0" - -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - -repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - -repeat-string@^1.5.2, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -replace-ext@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" - -replace-ext@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - -request@2, request@~2.79.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - qs "~6.3.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - uuid "^3.0.0" - -request@2.81.0: - version "2.81.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~4.2.1" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - performance-now "^0.2.0" - qs "~6.4.0" - safe-buffer "^5.0.1" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "^0.6.0" - uuid "^3.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-from-string@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - -requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - dependencies: - resolve-from "^3.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - -resolve-url-loader@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-2.3.0.tgz#e1b37034d48f22f8cfb9f04c026faaa070fdaf26" - dependencies: - adjust-sourcemap-loader "^1.1.0" - camelcase "^4.1.0" - convert-source-map "^1.5.1" - loader-utils "^1.1.0" - lodash.defaults "^4.0.0" - rework "^1.0.1" - rework-visit "^1.0.0" - source-map "^0.5.7" - urix "^0.1.0" - -resolve-url@^0.2.1, resolve-url@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - -resolve@^1.4.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" - dependencies: - path-parse "^1.0.5" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - -rework-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" - -rework@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" - dependencies: - convert-source-map "^0.3.3" - css "^2.0.0" - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -rimraf@2, rimraf@^2.2.6, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - dependencies: - glob "^7.0.5" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" - dependencies: - hash-base "^2.0.0" - inherits "^2.0.1" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - dependencies: - aproba "^1.1.1" - -safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - dependencies: - ret "~0.1.10" - -sass-graph@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" - dependencies: - glob "^7.0.0" - lodash "^4.0.0" - scss-tokenizer "^0.2.3" - yargs "^7.0.0" - -sass-loader@^6.0.5: - version "6.0.7" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.7.tgz#dd2fdb3e7eeff4a53f35ba6ac408715488353d00" - dependencies: - clone-deep "^2.0.1" - loader-utils "^1.0.1" - lodash.tail "^4.1.1" - neo-async "^2.5.0" - pify "^3.0.0" - -sax@~1.2.1, sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - -schema-utils@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" - dependencies: - ajv "^5.0.0" - -schema-utils@^0.4.0, schema-utils@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - -scss-tokenizer@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" - dependencies: - js-base64 "^2.1.8" - source-map "^0.4.2" - -seek-bzip@^1.0.3, seek-bzip@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" - dependencies: - commander "~2.8.1" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - -selfsigned@^1.9.1: - version "1.10.2" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.2.tgz#b4449580d99929b65b10a48389301a6592088758" - dependencies: - node-forge "0.7.1" - -semver-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-1.0.0.tgz#92a4969065f9c70c694753d55248fc68f8f652c9" - -semver-truncate@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/semver-truncate/-/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8" - dependencies: - semver "^5.3.0" - -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" - -semver@^4.0.3: - version "4.3.6" - resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" - -semver@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - -send@0.16.2: - version "0.16.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.6.2" - mime "1.4.1" - ms "2.0.0" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.4.0" - -serialize-javascript@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.4.0.tgz#7c958514db6ac2443a8abc062dc9f7886a7f6005" - -serve-index@^1.7.2: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.13.2: - version "1.13.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.2" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.0, set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - -setprototypeof@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-clone@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" - dependencies: - is-extendable "^0.1.1" - kind-of "^5.0.0" - mixin-object "^2.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - -signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -sockjs-client@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" - dependencies: - debug "^2.6.6" - eventsource "0.1.6" - faye-websocket "~0.11.0" - inherits "^2.0.1" - json3 "^3.3.2" - url-parse "^1.1.8" - -sockjs@0.3.19: - version "0.3.19" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" - dependencies: - faye-websocket "^0.10.0" - uuid "^3.0.1" - -sort-keys-length@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" - dependencies: - sort-keys "^1.0.0" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" - -source-map-resolve@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.3.1.tgz#610f6122a445b8dd51535a2a71b783dfc1248761" - dependencies: - atob "~1.1.0" - resolve-url "~0.2.1" - source-map-url "~0.3.0" - urix "~0.1.0" - -source-map-resolve@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a" - dependencies: - atob "^2.0.0" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - -source-map-url@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9" - -source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0, source-map@~0.5.1: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - -source-map@^0.1.38: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - dependencies: - amdefine ">=0.0.4" - -source-map@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - dependencies: - amdefine ">=0.0.4" - -source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - -sparkles@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" - -spdx-correct@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" - -spdy-transport@^2.0.18: - version "2.1.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.0.tgz#4bbb15aaffed0beefdd56ad61dbdc8ba3e2cb7a1" - dependencies: - debug "^2.6.8" - detect-node "^2.0.3" - hpack.js "^2.1.6" - obuf "^1.1.1" - readable-stream "^2.2.9" - safe-buffer "^5.0.1" - wbuf "^1.7.2" - -spdy@^3.4.1: - version "3.4.7" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" - dependencies: - debug "^2.6.8" - handle-thing "^1.2.5" - http-deceiver "^1.2.7" - safe-buffer "^5.0.1" - select-hose "^2.0.0" - spdy-transport "^2.0.18" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -squeak@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/squeak/-/squeak-1.3.0.tgz#33045037b64388b567674b84322a6521073916c3" - dependencies: - chalk "^1.0.0" - console-stream "^0.1.1" - lpad-align "^1.0.1" - -sshpk@^1.7.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -ssri@^5.2.4: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" - dependencies: - safe-buffer "^5.1.1" - -stable@~0.1.6: - version "0.1.7" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.7.tgz#06e1e4213460252e4f20da89a32cb4a0dbe5f2b2" - -stackframe@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.0.4.tgz#357b24a992f9427cba6b545d96a14ed2cbca187b" - -stat-mode@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2", statuses@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" - -stdout-stream@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b" - dependencies: - readable-stream "^2.0.1" - -stream-browserify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-combiner2@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.1" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.1.tgz#d0441be1a457a73a733a8a7b53570bebd9ef66a4" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.3" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string_decoder@^1.0.0, string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - dependencies: - safe-buffer "~5.1.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -stringstream@~0.0.4: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - dependencies: - ansi-regex "^3.0.0" - -strip-bom-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" - dependencies: - first-chunk-stream "^1.0.0" - strip-bom "^2.0.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - dependencies: - is-utf8 "^0.2.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - -strip-dirs@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-1.1.1.tgz#960bbd1287844f3975a4558aa103a8255e2456a0" - dependencies: - chalk "^1.0.0" - get-stdin "^4.0.1" - is-absolute "^0.1.5" - is-natural-number "^2.0.0" - minimist "^1.1.0" - sum-up "^1.0.1" - -strip-dirs@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" - dependencies: - is-natural-number "^4.0.1" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - dependencies: - get-stdin "^4.0.1" - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -strip-outer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" - dependencies: - escape-string-regexp "^1.0.2" - -style-loader@^0.18.2: - version "0.18.2" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.18.2.tgz#cc31459afbcd6d80b7220ee54b291a9fd66ff5eb" - dependencies: - loader-utils "^1.0.2" - schema-utils "^0.3.0" - -sum-up@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sum-up/-/sum-up-1.0.3.tgz#1c661f667057f63bcb7875aa1438bc162525156e" - dependencies: - chalk "^1.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - -supports-color@^4.2.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" - dependencies: - has-flag "^2.0.0" - -supports-color@^5.1.0, supports-color@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" - dependencies: - has-flag "^3.0.0" - -svgo@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" - dependencies: - coa "~1.0.1" - colors "~1.1.2" - csso "~2.3.1" - js-yaml "~3.7.0" - mkdirp "~0.5.1" - sax "~1.2.1" - whet.extend "~0.9.9" - -svgo@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.0.5.tgz#7040364c062a0538abacff4401cea6a26a7a389a" - dependencies: - coa "~2.0.1" - colors "~1.1.2" - css-select "~1.3.0-rc0" - css-select-base-adapter "~0.1.0" - css-tree "1.0.0-alpha25" - css-url-regex "^1.1.0" - csso "^3.5.0" - js-yaml "~3.10.0" - mkdirp "~0.5.1" - object.values "^1.0.4" - sax "~1.2.4" - stable "~0.1.6" - unquote "~1.1.1" - util.promisify "~1.0.0" - -tapable@^0.2.7: - version "0.2.8" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" - -tar-pack@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" - dependencies: - debug "^2.2.0" - fstream "^1.0.10" - fstream-ignore "^1.0.5" - once "^1.3.3" - readable-stream "^2.1.4" - rimraf "^2.5.1" - tar "^2.2.1" - uid-number "^0.0.6" - -tar-stream@^1.1.1, tar-stream@^1.5.2: - version "1.5.5" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.5.tgz#5cad84779f45c83b1f2508d96b09d88c7218af55" - dependencies: - bl "^1.0.0" - end-of-stream "^1.0.0" - readable-stream "^2.0.0" - xtend "^4.0.0" - -tar@^2.0.0, tar@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - -temp-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" - -tempfile@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-1.1.1.tgz#5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2" - dependencies: - os-tmpdir "^1.0.0" - uuid "^2.0.1" - -tempfile@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265" - dependencies: - temp-dir "^1.0.0" - uuid "^3.0.1" - -through2-filter@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2@^0.6.0, through2@^0.6.1: - version "0.6.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" - dependencies: - readable-stream ">=1.0.33-1 <1.1.0-0" - xtend ">=4.0.0 <4.1.0-0" - -through2@^2.0.0, through2@~2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" - dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" - -through@^2.3.6, through@~2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -thunky@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371" - -time-stamp@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" - -time-stamp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" - -timed-out@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" - -timed-out@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - -timers-browserify@^2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae" - dependencies: - setimmediate "^1.0.4" - -to-absolute-glob@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" - dependencies: - extend-shallow "^2.0.1" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -tough-cookie@~2.3.0: - version "2.3.4" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" - dependencies: - punycode "^1.4.1" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - -trim-repeated@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" - dependencies: - escape-string-regexp "^1.0.2" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - -"true-case-path@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62" - dependencies: - glob "^6.0.4" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - -tunnel-agent@^0.4.0, tunnel-agent@~0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - -type-is@~1.6.15, type-is@~1.6.16: - version "1.6.16" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.18" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -uglify-es@^3.3.4: - version "3.3.10" - resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.10.tgz#8b0b7992cebe20edc26de1bf325cef797b8f3fa5" - dependencies: - commander "~2.14.1" - source-map "~0.6.1" - -uglify-js@3.3.x: - version "3.3.21" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.21.tgz#851a34cbb31840ecb881968ed07dd3a61e7264a0" - dependencies: - commander "~2.15.0" - source-map "~0.6.1" - -uglify-js@^2.8.29: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -uglifyjs-webpack-plugin@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" - dependencies: - source-map "^0.5.6" - uglify-js "^2.8.29" - webpack-sources "^1.0.1" - -uglifyjs-webpack-plugin@^1.1.8: - version "1.2.4" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.4.tgz#5eec941b2e9b8538be0a20fc6eda25b14c7c1043" - dependencies: - cacache "^10.0.4" - find-cache-dir "^1.0.0" - schema-utils "^0.4.5" - serialize-javascript "^1.4.0" - source-map "^0.6.1" - uglify-es "^3.3.4" - webpack-sources "^1.1.0" - worker-farm "^1.5.2" - -uid-number@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - -unbzip2-stream@^1.0.9: - version "1.2.5" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47" - dependencies: - buffer "^3.0.1" - through "^2.3.6" - -union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^0.4.3" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - -uniqid@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1" - dependencies: - macaddress "^0.2.8" - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - -unique-filename@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" - dependencies: - imurmurhash "^0.1.4" - -unique-stream@^2.0.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" - dependencies: - json-stable-stringify "^1.0.0" - through2-filter "^2.0.0" - -universalify@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -unzip-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" - -upath@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.4.tgz#ee2321ba0a786c50973db043a50b7bcba822361d" - -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - -uri-js@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-3.0.2.tgz#f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa" - dependencies: - punycode "^2.1.0" - -urix@^0.1.0, urix@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - dependencies: - prepend-http "^1.0.1" - -url-parse@1.0.x: - version "1.0.5" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" - dependencies: - querystringify "0.0.x" - requires-port "1.0.x" - -url-parse@^1.1.8: - version "1.3.0" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.3.0.tgz#04a06c420d22beb9804f7ada2d57ad13160a4258" - dependencies: - querystringify "~1.0.0" - requires-port "~1.0.0" - -url-regex@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-3.2.0.tgz#dbad1e0c9e29e105dd0b1f09f6862f7fdb482724" - dependencies: - ip-regex "^1.0.1" - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" - dependencies: - kind-of "^6.0.2" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util.promisify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -util@0.10.3, util@^0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - dependencies: - inherits "2.0.1" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - -uuid@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" - -uuid@^3.0.0, uuid@^3.0.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" - -vali-date@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" - -validate-npm-package-license@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - -vendors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vinyl-assign@^1.0.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/vinyl-assign/-/vinyl-assign-1.2.1.tgz#4d198891b5515911d771a8cd9c5480a46a074a45" - dependencies: - object-assign "^4.0.1" - readable-stream "^2.0.0" - -vinyl-fs@^2.2.0: - version "2.4.4" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239" - dependencies: - duplexify "^3.2.0" - glob-stream "^5.3.2" - graceful-fs "^4.0.0" - gulp-sourcemaps "1.6.0" - is-valid-glob "^0.3.0" - lazystream "^1.0.0" - lodash.isequal "^4.0.0" - merge-stream "^1.0.0" - mkdirp "^0.5.0" - object-assign "^4.0.0" - readable-stream "^2.0.4" - strip-bom "^2.0.0" - strip-bom-stream "^1.0.0" - through2 "^2.0.0" - through2-filter "^2.0.0" - vali-date "^1.0.0" - vinyl "^1.0.0" - -vinyl@^0.4.3: - version "0.4.6" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" - dependencies: - clone "^0.2.0" - clone-stats "^0.0.1" - -vinyl@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" - dependencies: - clone "^1.0.0" - clone-stats "^0.0.1" - replace-ext "0.0.1" - -vinyl@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" - dependencies: - clone "^1.0.0" - clone-stats "^0.0.1" - replace-ext "0.0.1" - -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - dependencies: - indexof "0.0.1" - -vue-hot-reload-api@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz#97976142405d13d8efae154749e88c4e358cf926" - -vue-loader@^13.7.1: - version "13.7.1" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-13.7.1.tgz#d9009d0abd392b4efe8b8fb1f542f6723b02dd3a" - dependencies: - consolidate "^0.14.0" - hash-sum "^1.0.2" - loader-utils "^1.1.0" - lru-cache "^4.1.1" - postcss "^6.0.8" - postcss-load-config "^1.1.0" - postcss-selector-parser "^2.0.0" - prettier "^1.7.0" - resolve "^1.4.0" - source-map "^0.6.1" - vue-hot-reload-api "^2.2.0" - vue-style-loader "^3.0.0" - vue-template-es2015-compiler "^1.6.0" - -vue-style-loader@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-3.1.2.tgz#6b66ad34998fc9520c2f1e4d5fa4091641c1597a" - dependencies: - hash-sum "^1.0.2" - loader-utils "^1.0.2" - -vue-template-compiler@^2.5.13: - version "2.5.16" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.5.16.tgz#93b48570e56c720cdf3f051cc15287c26fbd04cb" - dependencies: - de-indent "^1.0.2" - he "^1.1.0" - -vue-template-es2015-compiler@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz#dc42697133302ce3017524356a6c61b7b69b4a18" - -vue@^2.5.7: - version "2.5.16" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.16.tgz#07edb75e8412aaeed871ebafa99f4672584a0085" - -ware@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/ware/-/ware-1.3.0.tgz#d1b14f39d2e2cb4ab8c4098f756fe4b164e473d4" - dependencies: - wrap-fn "^0.1.0" - -watchpack@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.5.0.tgz#231e783af830a22f8966f65c4c4bacc814072eed" - dependencies: - chokidar "^2.0.2" - graceful-fs "^4.1.2" - neo-async "^2.5.0" - -wbuf@^1.1.0, wbuf@^1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - dependencies: - minimalistic-assert "^1.0.0" - -webpack-chunk-hash@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/webpack-chunk-hash/-/webpack-chunk-hash-0.4.0.tgz#6b40c3070fbc9ff0cfe0fe781c7174af6c7c16a4" - -webpack-dev-middleware@1.12.2: - version "1.12.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" - dependencies: - memory-fs "~0.4.1" - mime "^1.5.0" - path-is-absolute "^1.0.0" - range-parser "^1.0.3" - time-stamp "^2.0.0" - -webpack-dev-server@^2.11.1: - version "2.11.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.11.2.tgz#1f4f4c78bf1895378f376815910812daf79a216f" - dependencies: - ansi-html "0.0.7" - array-includes "^3.0.3" - bonjour "^3.5.0" - chokidar "^2.0.0" - compression "^1.5.2" - connect-history-api-fallback "^1.3.0" - debug "^3.1.0" - del "^3.0.0" - express "^4.16.2" - html-entities "^1.2.0" - http-proxy-middleware "~0.17.4" - import-local "^1.0.0" - internal-ip "1.2.0" - ip "^1.1.5" - killable "^1.0.0" - loglevel "^1.4.1" - opn "^5.1.0" - portfinder "^1.0.9" - selfsigned "^1.9.1" - serve-index "^1.7.2" - sockjs "0.3.19" - sockjs-client "1.1.4" - spdy "^3.4.1" - strip-ansi "^3.0.0" - supports-color "^5.1.0" - webpack-dev-middleware "1.12.2" - yargs "6.6.0" - -webpack-merge@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.2.tgz#5d372dddd3e1e5f8874f5bf5a8e929db09feb216" - dependencies: - lodash "^4.17.5" - -webpack-notifier@^1.5.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/webpack-notifier/-/webpack-notifier-1.6.0.tgz#ffac8e55ff8c469752b8c1bbb011a16f10986e02" - dependencies: - node-notifier "^5.1.2" - object-assign "^4.1.0" - strip-ansi "^3.0.1" - -webpack-sources@^1.0.1, webpack-sources@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.11.0.tgz#77da451b1d7b4b117adaf41a1a93b5742f24d894" - dependencies: - acorn "^5.0.0" - acorn-dynamic-import "^2.0.0" - ajv "^6.1.0" - ajv-keywords "^3.1.0" - async "^2.1.2" - enhanced-resolve "^3.4.0" - escope "^3.6.0" - interpret "^1.0.0" - json-loader "^0.5.4" - json5 "^0.5.1" - loader-runner "^2.3.0" - loader-utils "^1.1.0" - memory-fs "~0.4.1" - mkdirp "~0.5.0" - node-libs-browser "^2.0.0" - source-map "^0.5.3" - supports-color "^4.2.1" - tapable "^0.2.7" - uglifyjs-webpack-plugin "^0.4.6" - watchpack "^1.4.0" - webpack-sources "^1.0.1" - yargs "^8.0.2" - -websocket-driver@>=0.5.1: - version "0.7.0" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" - dependencies: - http-parser-js ">=0.4.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" - -whet.extend@~0.9.9: - version "0.9.9" - resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" - -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - -which@1, which@^1.2.9, which@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" - dependencies: - string-width "^1.0.2" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -worker-farm@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" - dependencies: - errno "~0.1.7" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrap-fn@^0.1.0: - version "0.1.5" - resolved "https://registry.yarnpkg.com/wrap-fn/-/wrap-fn-0.1.5.tgz#f21b6e41016ff4a7e31720dbc63a09016bdf9845" - dependencies: - co "3.1.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - -yargs-parser@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" - dependencies: - camelcase "^3.0.0" - -yargs-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" - dependencies: - camelcase "^3.0.0" - -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" - dependencies: - camelcase "^4.1.0" - -yargs@6.6.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^4.2.0" - -yargs@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^5.0.0" - -yargs@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^7.0.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" - -yauzl@^2.2.1, yauzl@^2.4.2: - version "2.9.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.9.1.tgz#a81981ea70a57946133883f029c5821a89359a7f" - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.0.1" From ebaa9980cdf593ca840e24fba25b0f0ec4edcbd5 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 13:20:17 -0700 Subject: [PATCH 077/179] Update privacy settings views --- .../privacy/blocked-instances.blade.php | 79 ++++++++++++++++++- .../privacy/blocked-keywords.blade.php | 22 ++++++ 2 files changed, 97 insertions(+), 4 deletions(-) create mode 100644 resources/views/settings/privacy/blocked-keywords.blade.php diff --git a/resources/views/settings/privacy/blocked-instances.blade.php b/resources/views/settings/privacy/blocked-instances.blade.php index e3dae858..34fb7d8f 100644 --- a/resources/views/settings/privacy/blocked-instances.blade.php +++ b/resources/views/settings/privacy/blocked-instances.blade.php @@ -10,10 +10,81 @@

    Muted Users Blocked Users - Blocked Instances + Blocked keywords + Blocked instances

    -
    -
    + @if($filters->count() > 0) +
      + @foreach($filters as $filter) +
    • +
      + + {{$filter->id}} + {{$filter->instance->domain}} + + +
      + @csrf + + +
      +
      +
      +
    • + @endforeach +
    +
    + {{$filters->links()}} +
    +

    + +

    + @else +

    You can block entire instances, this prevents users on that instance from interacting with your content. To understand how blocking works, read more in the Help Center.

    +

    You are not blocking any instances. For a list of instances banned by the admin, click here.

    +

    + +

    + @endif -@endsection \ No newline at end of file +@endsection + +@push('scripts') + + + +@endpush \ No newline at end of file diff --git a/resources/views/settings/privacy/blocked-keywords.blade.php b/resources/views/settings/privacy/blocked-keywords.blade.php new file mode 100644 index 00000000..ea154265 --- /dev/null +++ b/resources/views/settings/privacy/blocked-keywords.blade.php @@ -0,0 +1,22 @@ +@extends('settings.template') + +@section('section') + +
    +

    Blocked Keywords

    +
    +
    + +
    +

    Unavailable

    +

    This setting will be released in a future version.

    +
    + +@endsection \ No newline at end of file From 87cc3103cd489ba4ba45c4dc470b06889b6c022f Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 13:21:40 -0700 Subject: [PATCH 078/179] Update custom sass --- resources/assets/sass/custom.scss | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/resources/assets/sass/custom.scss b/resources/assets/sass/custom.scss index 9f5f3a30..dfd54a5d 100644 --- a/resources/assets/sass/custom.scss +++ b/resources/assets/sass/custom.scss @@ -472,3 +472,14 @@ details summary::-webkit-details-marker { object-fit: cover; } } + +#l-modal .modal-body, +#s-modal .modal-body { + height: 60vh; + overflow-y: scroll; +} + +#l-modal .modal-content, +#s-modal .modal-content { + border-radius: 0; +} From d714381fd5906e4a61ad6ca6c40fc1e6df624ac8 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 13:22:46 -0700 Subject: [PATCH 079/179] Add PostMenu.vue component --- resources/assets/js/components/PostMenu.vue | 212 ++++++++++++++++++++ 1 file changed, 212 insertions(+) create mode 100644 resources/assets/js/components/PostMenu.vue diff --git a/resources/assets/js/components/PostMenu.vue b/resources/assets/js/components/PostMenu.vue new file mode 100644 index 00000000..df351ec6 --- /dev/null +++ b/resources/assets/js/components/PostMenu.vue @@ -0,0 +1,212 @@ + + + + + \ No newline at end of file From d48f15a0366a3ec5692572407f7b95ea035b4da0 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 13:26:16 -0700 Subject: [PATCH 080/179] Update DirectMessageController --- .../Controllers/DirectMessageController.php | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/DirectMessageController.php b/app/Http/Controllers/DirectMessageController.php index 6c49f399..1bc47d24 100644 --- a/app/Http/Controllers/DirectMessageController.php +++ b/app/Http/Controllers/DirectMessageController.php @@ -20,11 +20,12 @@ class DirectMessageController extends Controller public function inbox(Request $request) { $profile = Auth::user()->profile; - $inbox = DirectMessage::whereToId($profile->id) + $inbox = DirectMessage::selectRaw('*, max(created_at) as createdAt') + ->whereToId($profile->id) ->with(['author','status']) - ->orderBy('created_at', 'desc') - ->groupBy('from_id') - ->paginate(10); + ->orderBy('createdAt', 'desc') + ->groupBy('from_id') + ->paginate(12); return view('account.messages', compact('inbox')); } @@ -40,10 +41,12 @@ class DirectMessageController extends Controller $msg = DirectMessage::whereToId($profile->id) ->findOrFail($mid); - $thread = DirectMessage::whereToId($profile->id) - ->orWhere([['from_id', $profile->id],['to_id', $msg->from_id]]) + $thread = DirectMessage::whereIn('to_id', [$profile->id, $msg->from_id]) + ->whereIn('from_id', [$profile->id,$msg->from_id]) ->orderBy('created_at', 'desc') - ->paginate(10); + ->paginate(30); + + $thread = $thread->reverse(); return view('account.message', compact('msg', 'profile', 'thread')); } From 350d7e29b5c2ef596248c498ea81a0cb5246339e Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 13:26:43 -0700 Subject: [PATCH 081/179] Add DeckController --- app/Http/Controllers/DeckController.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 app/Http/Controllers/DeckController.php diff --git a/app/Http/Controllers/DeckController.php b/app/Http/Controllers/DeckController.php new file mode 100644 index 00000000..b18dbdcb --- /dev/null +++ b/app/Http/Controllers/DeckController.php @@ -0,0 +1,24 @@ +middleware('auth'); + } + + public function home() + { + return view('deck.index'); + } + + + public function insights() + { + return view('deck.insights.index'); + } +} From 3d9fb1b13abe6e87bff9cf083d9d02a359ddadaa Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 13:27:02 -0700 Subject: [PATCH 082/179] Update IG Import Controller --- app/Http/Controllers/Import/Instagram.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Import/Instagram.php b/app/Http/Controllers/Import/Instagram.php index 928d94b3..401a6be3 100644 --- a/app/Http/Controllers/Import/Instagram.php +++ b/app/Http/Controllers/Import/Instagram.php @@ -124,7 +124,7 @@ trait Instagram ->firstOrFail(); $media = $request->file('media'); $file = file_get_contents($media); - $json = json_decode($file, true); + $json = json_decode($file, true, 5); if(!$json || !isset($json['photos'])) { return abort(500); } From 04de1b377778896306d78eb01e39dcc1486bfb03 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 13:27:20 -0700 Subject: [PATCH 083/179] Update InternalApiController --- app/Http/Controllers/InternalApiController.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/Http/Controllers/InternalApiController.php b/app/Http/Controllers/InternalApiController.php index 8961b65c..d1556285 100644 --- a/app/Http/Controllers/InternalApiController.php +++ b/app/Http/Controllers/InternalApiController.php @@ -281,4 +281,9 @@ class InternalApiController extends Controller return response()->json($res); } + + public function stories(Request $request) + { + + } } From 929c99abb6687f1e8aebb7bc0966a4458aacf1ac Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 13:28:30 -0700 Subject: [PATCH 084/179] Add StoryController --- app/Http/Controllers/StoryController.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/Http/Controllers/StoryController.php b/app/Http/Controllers/StoryController.php index ea45411d..f2fc82b3 100644 --- a/app/Http/Controllers/StoryController.php +++ b/app/Http/Controllers/StoryController.php @@ -2,6 +2,18 @@ namespace App\Http\Controllers; +use Illuminate\Http\Request; + class StoryController extends Controller { + + public function construct() + { + $this->middleware('auth'); + } + + public function home(Request $request) + { + return view('stories.home'); + } } From f544c5f8b528348ac48b50d4a5f881c2aaf3e013 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 13:29:31 -0700 Subject: [PATCH 085/179] Add ImportAvatar job --- app/Jobs/AvatarPipeline/ImportAvatar.php | 95 ++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 app/Jobs/AvatarPipeline/ImportAvatar.php diff --git a/app/Jobs/AvatarPipeline/ImportAvatar.php b/app/Jobs/AvatarPipeline/ImportAvatar.php new file mode 100644 index 00000000..19beb23a --- /dev/null +++ b/app/Jobs/AvatarPipeline/ImportAvatar.php @@ -0,0 +1,95 @@ +url = $url; + $this->profile = $profile; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + $url = $this->url; + $profile = $this->profile; + + $basePath = $this->buildPath(); + } + + public function buildPath() + { + $baseDir = storage_path('app/public/avatars'); + if (!is_dir($baseDir)) { + mkdir($baseDir); + } + + $prefix = $this->profile->id; + $padded = str_pad($prefix, 12, 0, STR_PAD_LEFT); + $parts = str_split($padded, 3); + foreach ($parts as $k => $part) { + if ($k == 0) { + $prefix = storage_path('app/public/avatars/'.$parts[0]); + if (!is_dir($prefix)) { + mkdir($prefix); + } + } + if ($k == 1) { + $prefix = storage_path('app/public/avatars/'.$parts[0].'/'.$parts[1]); + if (!is_dir($prefix)) { + mkdir($prefix); + } + } + if ($k == 2) { + $prefix = storage_path('app/public/avatars/'.$parts[0].'/'.$parts[1].'/'.$parts[2]); + if (!is_dir($prefix)) { + mkdir($prefix); + } + } + if ($k == 3) { + $avatarpath = 'public/avatars/'.$parts[0].'/'.$parts[1].'/'.$parts[2].'/'.$parts[3]; + $prefix = storage_path('app/'.$avatarpath); + if (!is_dir($prefix)) { + mkdir($prefix); + } + } + } + $dir = storage_path('app/'.$avatarpath); + if (!is_dir($dir)) { + mkdir($dir); + } + $path = $avatarpath.'/avatar.svg'; + return storage_path('app/'.$path); + } +} From 21107a793877fd9b5f6f6c2a39b6a346571e3d16 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 14:00:39 -0700 Subject: [PATCH 086/179] Update RestrictedNames --- app/Util/Lexer/RestrictedNames.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/Util/Lexer/RestrictedNames.php b/app/Util/Lexer/RestrictedNames.php index 1afe92a5..59965d97 100644 --- a/app/Util/Lexer/RestrictedNames.php +++ b/app/Util/Lexer/RestrictedNames.php @@ -159,8 +159,11 @@ class RestrictedNames 'logout', 'media', 'menu', + 'oauth', 'official', 'p', + 'page', + 'pages', 'photo', 'photos', 'password', From 23b96e33890ef1a6c49f7f844871831cabe8c8d5 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 14:01:32 -0700 Subject: [PATCH 087/179] Update HTML Purifier config --- config/purify.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/purify.php b/config/purify.php index b55cad9a..36915eb1 100644 --- a/config/purify.php +++ b/config/purify.php @@ -54,7 +54,7 @@ return [ | */ - 'HTML.Doctype' => 'XHTML 1.0 Strict', + 'HTML.Doctype' => 'XHTML 1.0 Transitional', /* |-------------------------------------------------------------------------- @@ -67,7 +67,7 @@ return [ | */ - 'HTML.Allowed' => 'a[href|title|rel],p', + 'HTML.Allowed' => 'a[href|title|rel],p,strong,em,i,u,h1,h2,h3,h4,h5,ul,ol,li', /* |-------------------------------------------------------------------------- From 1857da87a27bd298fb99bdbd52f79088eff58d5d Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 14:18:37 -0700 Subject: [PATCH 088/179] Update admin views --- resources/views/admin/instances/home.blade.php | 2 +- resources/views/admin/instances/show.blade.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/admin/instances/home.blade.php b/resources/views/admin/instances/home.blade.php index 4faea96b..c527eb0b 100644 --- a/resources/views/admin/instances/home.blade.php +++ b/resources/views/admin/instances/home.blade.php @@ -1,4 +1,4 @@ -@extends('admin.partial.template') +@extends('admin.partial.template-full') @section('section')
    diff --git a/resources/views/admin/instances/show.blade.php b/resources/views/admin/instances/show.blade.php index 1bd3becd..635fc171 100644 --- a/resources/views/admin/instances/show.blade.php +++ b/resources/views/admin/instances/show.blade.php @@ -1,4 +1,4 @@ -@extends('admin.partial.template') +@extends('admin.partial.template-full') @section('section')
    From 8cb93074ad7da48e421c2696ba7bec71338db340 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 14:23:36 -0700 Subject: [PATCH 089/179] Update admin views --- resources/views/admin/statuses/home.blade.php | 4 ++-- resources/views/admin/statuses/show.blade.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/views/admin/statuses/home.blade.php b/resources/views/admin/statuses/home.blade.php index f3f45855..6ad5342f 100644 --- a/resources/views/admin/statuses/home.blade.php +++ b/resources/views/admin/statuses/home.blade.php @@ -1,4 +1,4 @@ -@extends('admin.partial.template') +@extends('admin.partial.template-full') @section('section')
    @@ -21,7 +21,7 @@ @foreach($statuses as $status) - + {{$status->id}} diff --git a/resources/views/admin/statuses/show.blade.php b/resources/views/admin/statuses/show.blade.php index ddec8d04..514d2467 100644 --- a/resources/views/admin/statuses/show.blade.php +++ b/resources/views/admin/statuses/show.blade.php @@ -1,4 +1,4 @@ -@extends('admin.partial.template') +@extends('admin.partial.template-full') @section('section')
    From 79aa88ada52ffaff96f60ffad7a36968f720e241 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 14:24:20 -0700 Subject: [PATCH 090/179] Update admin views --- resources/views/admin/reports/home.blade.php | 58 +++++++++++++------- resources/views/admin/reports/show.blade.php | 2 +- 2 files changed, 40 insertions(+), 20 deletions(-) diff --git a/resources/views/admin/reports/home.blade.php b/resources/views/admin/reports/home.blade.php index 644c32ae..688fad12 100644 --- a/resources/views/admin/reports/home.blade.php +++ b/resources/views/admin/reports/home.blade.php @@ -1,19 +1,42 @@ -@extends('admin.partial.template') +@extends('admin.partial.template-full') @section('section') -
    -

    Reports

    -

    - - Open: - {{App\Report::whereNull('admin_seen')->count()}} - - - Closed: - {{App\Report::whereNotNull('admin_seen')->count()}} - -

    -
    +
    +

    Reports

    + + + + + + + + + +

    @@ -61,9 +84,9 @@ @foreach($reports as $report) - +
    - +
    @@ -97,9 +120,6 @@ top: auto; bottom: auto; } - .table-check .custom-control-label { - top: -11px; - } @endpush diff --git a/resources/views/admin/reports/show.blade.php b/resources/views/admin/reports/show.blade.php index fab2346e..521c88ce 100644 --- a/resources/views/admin/reports/show.blade.php +++ b/resources/views/admin/reports/show.blade.php @@ -1,4 +1,4 @@ -@extends('admin.partial.template') +@extends('admin.partial.template-full') @section('section')
    From 2871427815c3dda0d834e28c25dd547241904fbb Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 31 Jan 2019 14:24:57 -0700 Subject: [PATCH 091/179] Update admin views --- resources/views/admin/media/home.blade.php | 173 ++++++++++++++++++--- resources/views/admin/media/show.blade.php | 2 +- 2 files changed, 155 insertions(+), 20 deletions(-) diff --git a/resources/views/admin/media/home.blade.php b/resources/views/admin/media/home.blade.php index bb1d1dcc..aed69472 100644 --- a/resources/views/admin/media/home.blade.php +++ b/resources/views/admin/media/home.blade.php @@ -1,24 +1,159 @@ -@extends('admin.partial.template') +@extends('admin.partial.template-full') @section('section') -
    -

    Media

    -
    +
    +

    Media

    + + + + + + + + + +
    -
    +
    -
    - @foreach($media as $status) -
    - - - -
    - @endforeach -
    +@if(request()->filled('search')) +

    Showing results for: {{request()->input('search')}}

    +@endif -
    -
    - {{$media->links()}} -
    -@endsection \ No newline at end of file +@if(request()->input('layout') == 'list') + +
    +
    + {{$media->links()}} +
    +@else +
    + @foreach($media as $status) +
    + + + +
    + @endforeach +
    +
    +
    + {{$media->links()}} +
    +@endif +@endsection + +@push('scripts') + +@endpush \ No newline at end of file diff --git a/resources/views/admin/media/show.blade.php b/resources/views/admin/media/show.blade.php index 6422a0c0..2bf1fedb 100644 --- a/resources/views/admin/media/show.blade.php +++ b/resources/views/admin/media/show.blade.php @@ -1,4 +1,4 @@ -@extends('admin.partial.template') +@extends('admin.partial.template-full') @section('section')
    From 01c7a95ef5cc6d7ba16047fce7ed3bcddcdfa90b Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 3 Feb 2019 14:47:01 -0700 Subject: [PATCH 092/179] Update AccountLog model --- app/AccountLog.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/AccountLog.php b/app/AccountLog.php index f5ccedd9..3f7521f3 100644 --- a/app/AccountLog.php +++ b/app/AccountLog.php @@ -6,5 +6,8 @@ use Illuminate\Database\Eloquent\Model; class AccountLog extends Model { - // + public function user() + { + return $this->belongsTo(User::class); + } } From 884f675d3050342c05663a65c86375f968a941ff Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 3 Feb 2019 14:47:15 -0700 Subject: [PATCH 093/179] Update Activity model --- app/Activity.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/Activity.php b/app/Activity.php index e4b8b9f9..130d947f 100644 --- a/app/Activity.php +++ b/app/Activity.php @@ -7,4 +7,14 @@ use Illuminate\Database\Eloquent\Model; class Activity extends Model { protected $dates = ['processed_at']; + + public function toProfile() + { + return $this->belongsTo(Profile::class, 'to_id'); + } + + public function fromProfile() + { + return $this->belongsTo(Profile::class, 'from_id'); + } } From 83d5fc404d5b621549b64c2bf95478e5e40c1dbd Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 3 Feb 2019 14:47:26 -0700 Subject: [PATCH 094/179] Update Bookmark model --- app/Bookmark.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/Bookmark.php b/app/Bookmark.php index 65cdfec1..abe76389 100644 --- a/app/Bookmark.php +++ b/app/Bookmark.php @@ -6,5 +6,16 @@ use Illuminate\Database\Eloquent\Model; class Bookmark extends Model { - protected $fillable = ['profile_id', 'status_id']; + protected $fillable = ['profile_id', 'status_id']; + + public function status() + { + return $this->belongsTo(Status::class); + } + + + public function profile() + { + return $this->belongsTo(Profile::class); + } } From d26704c71358ebc6663c8c148785c5b7f56e27de Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 3 Feb 2019 14:47:50 -0700 Subject: [PATCH 095/179] Update Collection model --- app/Collection.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/Collection.php b/app/Collection.php index 2f6034f4..e0e110f2 100644 --- a/app/Collection.php +++ b/app/Collection.php @@ -6,5 +6,8 @@ use Illuminate\Database\Eloquent\Model; class Collection extends Model { - // + public function profile() + { + return $this->belongsTo(Profile::class); + } } From a0bebad28c321e459701dcfa948b1efa2cb7a817 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 3 Feb 2019 14:48:03 -0700 Subject: [PATCH 096/179] Update CollectionItem --- app/CollectionItem.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/CollectionItem.php b/app/CollectionItem.php index a4578e09..7e306a33 100644 --- a/app/CollectionItem.php +++ b/app/CollectionItem.php @@ -6,5 +6,8 @@ use Illuminate\Database\Eloquent\Model; class CollectionItem extends Model { - // + public function collection() + { + return $this->belongsTo(Collection::class); + } } From 44155304585db3b64f9cc1870dfc7ccd4bbdddf7 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 3 Feb 2019 14:48:34 -0700 Subject: [PATCH 097/179] Update EmailVerification model --- app/EmailVerification.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/EmailVerification.php b/app/EmailVerification.php index 68803416..2b27c337 100644 --- a/app/EmailVerification.php +++ b/app/EmailVerification.php @@ -13,4 +13,9 @@ class EmailVerification extends Model return "{$base}{$path}"; } + + public function user() + { + return $this->belongsTo(User::class); + } } From 828fea161253eeb5790aebf639ffa7bd4aec8fd5 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 3 Feb 2019 14:49:11 -0700 Subject: [PATCH 098/179] Update ReportComment model --- app/ReportComment.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/ReportComment.php b/app/ReportComment.php index 5d364e1e..1e57c49c 100644 --- a/app/ReportComment.php +++ b/app/ReportComment.php @@ -6,5 +6,8 @@ use Illuminate\Database\Eloquent\Model; class ReportComment extends Model { - // + public function profile() + { + return $this->belongsTo(Profile::class); + } } From df2d37b27ce7f9b4c438f9dfceaa1420d01ee7f1 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 3 Feb 2019 14:49:26 -0700 Subject: [PATCH 099/179] Update ReportLog model --- app/ReportLog.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/ReportLog.php b/app/ReportLog.php index dab0aa1e..eaa842e9 100644 --- a/app/ReportLog.php +++ b/app/ReportLog.php @@ -6,5 +6,8 @@ use Illuminate\Database\Eloquent\Model; class ReportLog extends Model { - // + public function profile() + { + return $this->belongsTo(Profile::class); + } } From 348ff3123ea5e72674c710bc18218816b76fda09 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 3 Feb 2019 14:49:47 -0700 Subject: [PATCH 100/179] Update StatusHashtag model --- app/StatusHashtag.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/StatusHashtag.php b/app/StatusHashtag.php index 3d15b203..0f9e1a5f 100644 --- a/app/StatusHashtag.php +++ b/app/StatusHashtag.php @@ -7,4 +7,14 @@ use Illuminate\Database\Eloquent\Model; class StatusHashtag extends Model { public $fillable = ['status_id', 'hashtag_id']; + + public function status() + { + return $this->belongsTo(Status::class); + } + + public function hashtag() + { + return $this->belongsTo(Hashtag::class); + } } From 89346781238b0bb4f3fec596a1c4743d27900600 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 3 Feb 2019 14:50:45 -0700 Subject: [PATCH 101/179] Add db migration --- ..._01_023357_add_remote_to_avatars_table.php | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 database/migrations/2019_02_01_023357_add_remote_to_avatars_table.php diff --git a/database/migrations/2019_02_01_023357_add_remote_to_avatars_table.php b/database/migrations/2019_02_01_023357_add_remote_to_avatars_table.php new file mode 100644 index 00000000..e4b064f1 --- /dev/null +++ b/database/migrations/2019_02_01_023357_add_remote_to_avatars_table.php @@ -0,0 +1,34 @@ +string('remote_url')->nullable()->index()->after('thumb_path'); + $table->timestamp('last_fetched_at')->nullable()->after('change_count'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('avatars', function (Blueprint $table) { + $table->dropColumn('remote_url'); + $table->dropColumn('last_fetched_at'); + }); + } +} From 0fcb5c9dd1ea0cc78aaf6e72121f0184d5d19469 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 3 Feb 2019 14:53:13 -0700 Subject: [PATCH 102/179] Update webpack config --- webpack.mix.js | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/webpack.mix.js b/webpack.mix.js index 352cb588..abee92e1 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -1,19 +1,21 @@ let mix = require('laravel-mix'); /* - |-------------------------------------------------------------------------- - | Mix Asset Management - |-------------------------------------------------------------------------- - | - | Mix provides a clean, fluent API for defining some Webpack build steps - | for your Laravel application. By default, we are compiling the Sass - | file for the application as well as bundling up all the JS files. - | - */ +|-------------------------------------------------------------------------- +| Mix Asset Management +|-------------------------------------------------------------------------- +| +| Mix provides a clean, fluent API for defining some Webpack build steps +| for your Laravel application. By default, we are compiling the Sass +| file for the application as well as bundling up all the JS files. +| +*/ mix.js('resources/assets/js/app.js', 'public/js') - .js('resources/assets/js/activity.js', 'public/js') - .js('resources/assets/js/components.js', 'public/js') - .js('resources/assets/js/timeline.js', 'public/js') - .sass('resources/assets/sass/app.scss', 'public/css') - .version(); +.js('resources/assets/js/activity.js', 'public/js') +.js('resources/assets/js/components.js', 'public/js') +.js('resources/assets/js/timeline.js', 'public/js') +.sass('resources/assets/sass/app.scss', 'public/css', { + implementation: require('node-sass') +}) +.version(); From a5a6eaba6e15c84775bd8c369d5b926cc2867ec0 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 3 Feb 2019 14:53:58 -0700 Subject: [PATCH 103/179] Add stories compose view --- resources/views/stories/home.blade.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 resources/views/stories/home.blade.php diff --git a/resources/views/stories/home.blade.php b/resources/views/stories/home.blade.php new file mode 100644 index 00000000..adbd7cc8 --- /dev/null +++ b/resources/views/stories/home.blade.php @@ -0,0 +1,13 @@ +@extends('layouts.app') + +@section('content') + +@endsection + +@push('scripts') + +@endpush \ No newline at end of file From 76a8210f06497ef86b9d1fe6c6a343e9ba4cdcd6 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 3 Feb 2019 20:03:39 -0700 Subject: [PATCH 104/179] Update blank layout view --- resources/views/layouts/blank.blade.php | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/views/layouts/blank.blade.php b/resources/views/layouts/blank.blade.php index efdb4384..c7969dfe 100644 --- a/resources/views/layouts/blank.blade.php +++ b/resources/views/layouts/blank.blade.php @@ -30,6 +30,7 @@ @yield('content') + @stack('scripts') From eeedd7913fa2ed0d001980ad87803cb6282c7d94 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Tue, 5 Feb 2019 13:52:33 -0700 Subject: [PATCH 105/179] Update admin dashboard view --- resources/views/admin/home.blade.php | 201 +++++++++++++++++---------- 1 file changed, 128 insertions(+), 73 deletions(-) diff --git a/resources/views/admin/home.blade.php b/resources/views/admin/home.blade.php index c8cf6e62..31d882b5 100644 --- a/resources/views/admin/home.blade.php +++ b/resources/views/admin/home.blade.php @@ -1,4 +1,4 @@ -@extends('admin.partial.template') +@extends('admin.partial.template-full') @section('section')
    @@ -7,129 +7,135 @@
    -
    - Hello, {{Auth::user()->name}} -
    -
    -
    -
    -

    0

    -

    Alerts

    +
    +
    +

    Alerts

    +

    0

    +
    -
    -
    -

    {{App\Util\Lexer\PrettyNumber::convert(DB::table('failed_jobs')->where('failed_at', '>=', \Carbon\Carbon::now()->subDay())->count())}}

    -

    Failed Jobs (24h)

    +
    +
    +

    Failed Jobs (24h)

    +

    {{$data['failedjobs']['count']}}

    +
    - @php($reports = App\Report::whereNull('admin_seen')->count())
    -
    -
    -

    {{App\Util\Lexer\PrettyNumber::convert($reports)}}

    -

    Reports

    -
    -
    -
    -
    - - @php($statuses = App\Status::whereNull('in_reply_to_id')->whereNull('reblog_of_id')->count()) -
    -
    -
    -
    -

    {{App\Util\Lexer\PrettyNumber::convert($statuses)}}

    -

    Statuses

    -
    -
    -
    - - @php($replies = App\Status::whereNotNull('in_reply_to_id')->count()) -
    -
    -
    -

    {{App\Util\Lexer\PrettyNumber::convert($replies)}}

    -

    Replies

    -
    -
    -
    -
    -
    -
    -

    {{App\Util\Lexer\PrettyNumber::convert(App\Status::whereNotNull('reblog_of_id')->count())}}

    -

    Shares (Reblogs)

    +
    +
    +

    Reports

    +

    {{$data['reports']['count']}}

    +
    -
    -
    -

    {{App\Util\Lexer\PrettyNumber::convert(App\Like::count())}}

    -

    Likes

    +
    +
    +

    Statuses

    +

    {{$data['statuses']['count']}}

    +
    -
    -
    -

    {{App\Util\Lexer\PrettyNumber::convert(App\Profile::count())}}

    -

    Profiles

    +
    +
    +

    Replies

    +

    {{$data['replies']['count']}}

    +
    -
    -
    -
    -

    {{App\Util\Lexer\PrettyNumber::convert(App\User::count())}}

    -

    Users

    +
    +
    +

    Shares (Reblogs)

    +

    {{$data['shares']['count']}}

    +
    -
    -
    -

    {{App\Util\Lexer\PrettyNumber::convert(App\Status::whereNotNull('url')->distinct('url')->count())}}

    -

    Remote Instances

    +
    +
    +

    Likes

    +

    {{$data['likes']['count']}}

    +
    -
    -
    -

    {{App\Util\Lexer\PrettyNumber::convert(App\Media::count())}}

    -

    Photos Uploaded

    +
    +
    +

    Profiles

    +

    {{$data['profiles']['count']}}

    + +
    +
    + +
    +
    +
    +

    Users

    +

    {{$data['users']['count']}}

    +
    + +
    +
    +
    + +
    +
    +
    +
    +

    Remote Instances

    +

    {{$data['instances']['count']}}

    +
    + +
    +
    + +
    +
    +
    +

    Photos Uploaded

    +

    {{$data['media']['count']}}

    +
    +
    -
    -
    -

    {{App\Media::sum('size')}} bytes

    -

    Storage Used

    +
    +
    +

    Storage Used

    +

    {{$data['storage']['count']}} bytes

    +
    @endsection @push('scripts') + @endpush \ No newline at end of file From 553010897616c1761890680b199927781b9476b2 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Tue, 5 Feb 2019 13:56:10 -0700 Subject: [PATCH 106/179] Update AdminController --- app/Http/Controllers/AdminController.php | 136 ++++++++++++++++++++--- 1 file changed, 118 insertions(+), 18 deletions(-) diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index d4a7d242..ecc5903b 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -2,21 +2,36 @@ namespace App\Http\Controllers; -use App\Media; -use App\Like; -use App\Profile; -use App\Report; -use App\Status; -use App\User; +use App\{ + FailedJob, + Hashtag, + Instance, + Media, + Like, + OauthClient, + Profile, + Report, + Status, + User +}; +use DB, Cache; use Carbon\Carbon; use Illuminate\Http\Request; use Jackiedo\DotenvEditor\DotenvEditor; -use App\Http\Controllers\Admin\AdminReportController; +use App\Http\Controllers\Admin\{ + AdminInstanceController, + AdminReportController, + AdminMediaController, + AdminSettingsController +}; use App\Util\Lexer\PrettyNumber; class AdminController extends Controller { - use AdminReportController; + use AdminReportController, + AdminMediaController, + AdminSettingsController, + AdminInstanceController; public function __construct() { @@ -26,7 +41,55 @@ class AdminController extends Controller public function home() { - return view('admin.home'); + $data = Cache::remember('admin:dashboard:home:data', 1, function() { + return [ + 'failedjobs' => [ + 'count' => PrettyNumber::convert(FailedJob::where('failed_at', '>=', \Carbon\Carbon::now()->subDay())->count()), + 'graph' => FailedJob::selectRaw('count(*) as count, day(failed_at) as d')->groupBy('d')->whereBetween('failed_at',[now()->subDays(24), now()])->orderBy('d')->pluck('count') + ], + 'reports' => [ + 'count' => PrettyNumber::convert(Report::whereNull('admin_seen')->count()), + 'graph' => Report::selectRaw('count(*) as count, day(created_at) as day')->whereBetween('created_at',[now()->subDays(14), now()])->groupBy('day')->orderBy('day')->pluck('count') + ], + 'statuses' => [ + 'count' => PrettyNumber::convert(Status::whereNull('in_reply_to_id')->whereNull('reblog_of_id')->count()), + 'graph' => Status::selectRaw('count(*) as count, day(created_at) as day')->whereBetween('created_at',[now()->subDays(14), now()])->groupBy('day')->orderBy('day')->pluck('count') + ], + 'replies' => [ + 'count' => PrettyNumber::convert(Status::whereNotNull('in_reply_to_id')->count()), + 'graph' => Status::whereNotNull('in_reply_to_id')->selectRaw('count(*) as count, day(created_at) as day')->whereBetween('created_at',[now()->subDays(14), now()])->groupBy('day')->orderBy('day')->pluck('count') + ], + 'shares' => [ + 'count' => PrettyNumber::convert(Status::whereNotNull('reblog_of_id')->count()), + 'graph' => Status::whereNotNull('reblog_of_id')->selectRaw('count(*) as count, day(created_at) as day')->whereBetween('created_at',[now()->subDays(14), now()])->groupBy('day')->orderBy('day')->pluck('count') + ], + 'likes' => [ + 'count' => PrettyNumber::convert(Like::count()), + 'graph' => Like::selectRaw('count(*) as count, day(created_at) as day')->whereBetween('created_at',[now()->subDays(14), now()])->groupBy('day')->orderBy('day')->pluck('count') + ], + 'profiles' => [ + 'count' => PrettyNumber::convert(Profile::count()), + 'graph' => Profile::selectRaw('count(*) as count, day(created_at) as day')->whereBetween('created_at',[now()->subDays(14), now()])->groupBy('day')->orderBy('day')->pluck('count') + ], + 'users' => [ + 'count' => PrettyNumber::convert(User::count()), + 'graph' => User::selectRaw('count(*) as count, day(created_at) as day')->whereBetween('created_at',[now()->subDays(14), now()])->groupBy('day')->orderBy('day')->pluck('count') + ], + 'instances' => [ + 'count' => PrettyNumber::convert(Instance::count()), + 'graph' => Instance::selectRaw('count(*) as count, day(created_at) as day')->whereBetween('created_at',[now()->subDays(28), now()])->groupBy('day')->orderBy('day')->pluck('count') + ], + 'media' => [ + 'count' => PrettyNumber::convert(Media::count()), + 'graph' => Media::selectRaw('count(*) as count, day(created_at) as day')->whereBetween('created_at',[now()->subDays(14), now()])->groupBy('day')->orderBy('day')->pluck('count') + ], + 'storage' => [ + 'count' => Media::sum('size'), + 'graph' => Media::selectRaw('sum(size) as count, day(created_at) as day')->whereBetween('created_at',[now()->subDays(14), now()])->groupBy('day')->orderBy('day')->pluck('count') + ] + ]; + }); + return view('admin.home', compact('data')); } public function users(Request $request) @@ -59,16 +122,23 @@ class AdminController extends Controller return view('admin.statuses.show', compact('status')); } - public function media(Request $request) - { - $media = Status::whereHas('media')->orderby('id', 'desc')->paginate(12); - - return view('admin.media.home', compact('media')); - } - public function reports(Request $request) { - $reports = Report::orderBy('created_at','desc')->paginate(12); + $filter = $request->input('filter'); + if(in_array($filter, ['open', 'closed'])) { + if($filter == 'open') { + $reports = Report::orderBy('created_at','desc') + ->whereNotNull('admin_seen') + ->paginate(10); + } else { + $reports = Report::orderBy('created_at','desc') + ->whereNull('admin_seen') + ->paginate(10); + } + } else { + $reports = Report::orderBy('created_at','desc') + ->paginate(10); + } return view('admin.reports.home', compact('reports')); } @@ -78,7 +148,6 @@ class AdminController extends Controller return view('admin.reports.show', compact('report')); } - protected function collectUserStats($request) { $total_duration = $request->query('total_duration') ?? '30'; @@ -106,4 +175,35 @@ class AdminController extends Controller return $stats; } + + public function profiles(Request $request) + { + $profiles = Profile::orderBy('id','desc')->paginate(10); + return view('admin.profiles.home', compact('profiles')); + } + + public function appsHome(Request $request) + { + $filter = $request->input('filter'); + if(in_array($filter, ['revoked'])) { + $apps = OauthClient::with('user') + ->whereNotNull('user_id') + ->whereRevoked(true) + ->orderByDesc('id') + ->paginate(10); + } else { + $apps = OauthClient::with('user') + ->whereNotNull('user_id') + ->orderByDesc('id') + ->paginate(10); + } + return view('admin.apps.home', compact('apps')); + } + + public function hashtagsHome(Request $request) + { + $hashtags = Hashtag::orderByDesc('id')->paginate(10); + return view('admin.hashtags.home', compact('hashtags')); + } + } From 14be8984317f50c7c9dddd9b691296b29f0ff71d Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Tue, 5 Feb 2019 13:57:01 -0700 Subject: [PATCH 107/179] Add OauthClient model --- app/OauthClient.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 app/OauthClient.php diff --git a/app/OauthClient.php b/app/OauthClient.php new file mode 100644 index 00000000..8ef97d92 --- /dev/null +++ b/app/OauthClient.php @@ -0,0 +1,18 @@ +belongsTo(User::class); + } + +} \ No newline at end of file From 326a1b353a41e6d64adfe57458cf21c09a4f393c Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Tue, 5 Feb 2019 13:58:48 -0700 Subject: [PATCH 108/179] Update SiteController --- app/Http/Controllers/SiteController.php | 50 +++++++++++++++++-------- 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/app/Http/Controllers/SiteController.php b/app/Http/Controllers/SiteController.php index fa12c939..a5a5f12e 100644 --- a/app/Http/Controllers/SiteController.php +++ b/app/Http/Controllers/SiteController.php @@ -2,16 +2,10 @@ namespace App\Http\Controllers; -use App; -use App\Follower; -use App\Profile; -use App\Status; -use App\User; -use App\UserFilter; -use App\Util\Lexer\PrettyNumber; -use Auth; -use Cache; use Illuminate\Http\Request; +use App, Auth, Cache, View; +use App\Util\Lexer\PrettyNumber; +use App\{Follower, Page, Profile, Status, User, UserFilter}; class SiteController extends Controller { @@ -47,18 +41,42 @@ class SiteController extends Controller public function about() { - $stats = Cache::remember('site:about:stats', 1440, function() { - return [ - 'posts' => Status::whereLocal(true)->count(), - 'users' => User::count(), - 'admin' => User::whereIsAdmin(true)->first() - ]; + $res = Cache::remember('site:about', 120, function() { + $custom = Page::whereSlug('/site/about')->whereActive(true)->exists(); + if($custom) { + $stats = Cache::remember('site:about:stats', 60, function() { + return [ + 'posts' => Status::whereLocal(true)->count(), + 'users' => User::count(), + 'admin' => User::whereIsAdmin(true)->first() + ]; + }); + return View::make('site.about')->with('stats', $stats)->render(); + } else { + $stats = Cache::remember('site:about:stats', 60, function() { + return [ + 'posts' => Status::whereLocal(true)->count(), + 'users' => User::count(), + 'admin' => User::whereIsAdmin(true)->first() + ]; + }); + //return view('site.about', compact('stats')); + return View::make('site.about')->with('stats', $stats)->render(); + } }); - return view('site.about', compact('stats')); + return $res; } public function language() { return view('site.language'); } + + public function communityGuidelines(Request $request) + { + $slug = '/site/kb/community-guidelines'; + $page = Page::whereSlug($slug)->whereActive(true)->first(); + return view('site.help.community-guidelines', compact('page')); + } + } From 507fbb90c02afc9f186d2cb302806879c3079712 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Tue, 5 Feb 2019 13:59:31 -0700 Subject: [PATCH 109/179] Update SettingsController --- app/Http/Controllers/SettingsController.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 730e0b4e..cd57a556 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; use App\AccountLog; use App\Following; +use App\Report; use App\UserFilter; use Auth, DB, Cache, Purify; use Carbon\Carbon; @@ -160,6 +161,7 @@ class SettingsController extends Controller if(config('pixelfed.account_deletion') == false) { abort(404); } + $user = Auth::user(); if($user->is_admin == true) { return abort(400, 'You cannot delete an admin account.'); @@ -175,5 +177,18 @@ class SettingsController extends Controller Auth::logout(); return redirect('/'); } + + public function requestFullExport(Request $request) + { + $user = Auth::user(); + return view('settings.export.show'); + } + + public function reportsHome(Request $request) + { + $profile = Auth::user()->profile; + $reports = Report::whereProfileId($profile->id)->orderByDesc('created_at')->paginate(10); + return view('settings.reports', compact('reports')); + } } From 37215d11eda419c72440fec4712e0afe6e74f03b Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Tue, 5 Feb 2019 14:18:06 -0700 Subject: [PATCH 110/179] Update notification localization --- resources/lang/en/notification.php | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/lang/en/notification.php b/resources/lang/en/notification.php index b85785d6..d737167a 100644 --- a/resources/lang/en/notification.php +++ b/resources/lang/en/notification.php @@ -6,5 +6,6 @@ return [ 'startedFollowingYou' => 'started following you.', 'commented' => 'commented on your post.', 'mentionedYou' => 'mentioned you.', + 'shared' => 'shared your post.', ]; From f4a6ccda90e07da88dd97fdbfb4be95544a68ba4 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Tue, 5 Feb 2019 19:06:44 -0700 Subject: [PATCH 111/179] Update readme --- README.md | 103 ++++++++++++++++-------------------------------------- 1 file changed, 31 insertions(+), 72 deletions(-) diff --git a/README.md b/README.md index cbbdee2f..767bce7d 100644 --- a/README.md +++ b/README.md @@ -1,66 +1,27 @@ -# PixelFed: Federated Image Sharing -[![Backers on Open Collective](https://opencollective.com/pixelfed-528/backers/badge.svg)](#backers) - [![Sponsors on Open Collective](https://opencollective.com/pixelfed-528/sponsors/badge.svg)](#sponsors) +

    -PixelFed is a federated social image sharing platform, similar to Instagram. -Federation is done using the [ActivityPub](https://activitypub.rocks/) protocol, -which is used by [Mastodon](http://joinmastodon.org/), [PeerTube](https://joinpeertube.org/en/), -[Pleroma](https://pleroma.social/), and more. Through ActivityPub PixelFed can share -and interact with these platforms, as well as other instances of PixelFed. +

    +Build Status +Total Downloads +Latest Stable Version +License +

    -**_Please note this is alpha software, not recommended for production use, -and federation is not supported yet._** +## Introduction -PixelFed is very early into the development stage. If you would like to have a -permanent instance with minimal breakage, **do not use this software until -there is a stable release**. The following setup instructions are intended for -testing and development. +A free and ethical photo sharing platform, powered by ActivityPub federation. -## Requirements - - PHP >= 7.1.3 < 7.3 (7.2.x recommended for stable version) - - MySQL >= 5.7 (Postgres, MariaDB and sqlite are not supported) - - Redis - - Composer - - GD or ImageMagick - - OpenSSL PHP Extension - - PDO PHP Extension - - Mbstring PHP Extension - - Tokenizer PHP Extension - - XML PHP Extension - - Ctype PHP Extension - - JSON PHP Extension - - BCMath PHP Extension - - JpegOptim - - Optipng - - Pngquant 2 - - SVGO - - Gifsicle +

    + +

    -## Installation +## Official Documentation -This guide assumes you have NGINX/Apache installed, along with the dependencies. -Those will not be covered in these early docs. - -```bash -git clone https://github.com/pixelfed/pixelfed.git -cd pixelfed -composer install -cp .env.example .env -``` - -**Edit .env file with proper values** - -```bash -php artisan key:generate -``` - -```bash -php artisan storage:link -php artisan migrate -php artisan horizon -``` +Documentation for Pixelfed can be found on the [Pixelfed documentation website](https://pixelfed.github.io/docs/master/). +## License +Pixelfed is open-sourced software licensed under the AGPL license. ## Communication @@ -68,7 +29,7 @@ The ways you can communicate on the project are below. Before interacting, pleas read through the [Code Of Conduct](CODE_OF_CONDUCT.md). * IRC: #pixelfed on irc.freenode.net ([#freenode_#pixelfed:matrix.org through -Matrix](https://matrix.to/#/#freenode_#pixelfed:matrix.org) +Matrix](https://matrix.to/#/#freenode_#pixelfed:matrix.org)) * Project on Mastodon: [@pixelfed@mastodon.social](https://mastodon.social/@pixelfed) * E-mail: [hello@pixelfed.org](mailto:hello@pixelfed.org) @@ -80,29 +41,27 @@ https://www.patreon.com/dansup ### Contributors This project exists thanks to all the people who contribute. - + ### Backers -Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/pixelfed-528#backer)] +Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/pixelfed#backer)] - + ### Sponsors -Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/pixelfed-528#sponsor)] - - - - - - - - - - - - +Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/pixelfed#sponsor)] + + + + + + + + + + \ No newline at end of file From 32d1667311cbd82be37ee1a3bf2fd71935174460 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 7 Feb 2019 00:34:32 -0700 Subject: [PATCH 112/179] Add DiscoverCategory model --- app/DiscoverCategory.php | 58 +++++++++++++++++++ .../DiscoverCategoryController.php | 10 ++++ ...04642_create_discover_categories_table.php | 41 +++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 app/DiscoverCategory.php create mode 100644 app/Http/Controllers/DiscoverCategoryController.php create mode 100644 database/migrations/2019_02_07_004642_create_discover_categories_table.php diff --git a/app/DiscoverCategory.php b/app/DiscoverCategory.php new file mode 100644 index 00000000..2112319f --- /dev/null +++ b/app/DiscoverCategory.php @@ -0,0 +1,58 @@ +belongsTo(Media::class); + } + + public function url() + { + return url('/discover/c/'.$this->slug); + } + + public function editUrl() + { + return url('/i/admin/discover/category/edit/' . $this->id); + } + + public function thumb() + { + return $this->media->thumb(); + } + + public function items() + { + return $this->hasMany(DiscoverCategoryHashtag::class, 'discover_category_id'); + } + + public function hashtags() + { + return $this->hasManyThrough( + Hashtag::class, + DiscoverCategoryHashtag::class, + 'discover_category_id', + 'id', + 'id', + 'hashtag_id' + ); + } + + public function posts() + { + return Status::select('*') + ->join('status_hashtags', 'statuses.id', '=', 'status_hashtags.status_id') + ->join('hashtags', 'status_hashtags.hashtag_id', '=', 'hashtags.id') + ->join('discover_category_hashtags', 'hashtags.id', '=', 'discover_category_hashtags.hashtag_id') + ->join('discover_categories', 'discover_category_hashtags.discover_category_id', '=', 'discover_categories.id') + ->where('discover_categories.id', $this->id); + } +} diff --git a/app/Http/Controllers/DiscoverCategoryController.php b/app/Http/Controllers/DiscoverCategoryController.php new file mode 100644 index 00000000..bd2869e2 --- /dev/null +++ b/app/Http/Controllers/DiscoverCategoryController.php @@ -0,0 +1,10 @@ +bigIncrements('id'); + $table->string('name')->nullable(); + $table->string('slug')->unique()->index(); + $table->boolean('active')->default(false)->index(); + $table->tinyInteger('order')->unsigned()->default(5); + $table->bigInteger('media_id')->unsigned()->unique()->nullable(); + $table->boolean('no_nsfw')->default(true); + $table->boolean('local_only')->default(true); + $table->boolean('public_only')->default(true); + $table->boolean('photos_only')->default(true); + $table->timestamp('active_until')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('discover_categories'); + } +} From 40ffaee6ed12d798070c91581ae760bac3714851 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 7 Feb 2019 00:35:38 -0700 Subject: [PATCH 113/179] Add DiscoverCategoryHashtag model --- app/DiscoverCategoryHashtag.php | 13 +++++++ .../DiscoverCategoryHashtagController.php | 10 ++++++ ...reate_discover_category_hashtags_table.php | 34 +++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 app/DiscoverCategoryHashtag.php create mode 100644 app/Http/Controllers/DiscoverCategoryHashtagController.php create mode 100644 database/migrations/2019_02_07_021214_create_discover_category_hashtags_table.php diff --git a/app/DiscoverCategoryHashtag.php b/app/DiscoverCategoryHashtag.php new file mode 100644 index 00000000..ff5372c2 --- /dev/null +++ b/app/DiscoverCategoryHashtag.php @@ -0,0 +1,13 @@ +bigIncrements('id'); + $table->bigInteger('discover_category_id')->unsigned()->index(); + $table->bigInteger('hashtag_id')->unsigned()->index(); + $table->unique(['discover_category_id', 'hashtag_id'], 'disc_hashtag_unique'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('discover_category_hashtags'); + } +} From 52c8f60a95f661e2077e1cf8f05dcd760924443a Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 7 Feb 2019 11:58:47 -0700 Subject: [PATCH 114/179] Add AdminDiscoverController --- .../Admin/AdminDiscoverController.php | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 app/Http/Controllers/Admin/AdminDiscoverController.php diff --git a/app/Http/Controllers/Admin/AdminDiscoverController.php b/app/Http/Controllers/Admin/AdminDiscoverController.php new file mode 100644 index 00000000..f19d01bc --- /dev/null +++ b/app/Http/Controllers/Admin/AdminDiscoverController.php @@ -0,0 +1,105 @@ +paginate(10); + return view('admin.discover.home', compact('categories')); + } + + public function discoverCreateCategory() + { + return view('admin.discover.create-category'); + } + + public function discoverCreateCategoryStore(Request $request) + { + $this->validate($request, [ + 'name' => 'required|string|min:1', + 'active' => 'required|boolean', + 'media' => 'nullable|integer|min:1' + ]); + + $name = $request->input('name'); + $slug = str_slug($name); + $active = $request->input('active'); + $media = (int) $request->input('media'); + + $media = Media::findOrFail($media); + + $category = DiscoverCategory::firstOrNew(['slug' => $slug]); + $category->name = $name; + $category->active = $active; + $category->media_id = $media->id; + $category->save(); + return $category; + } + + public function discoverCategoryEdit(Request $request, $id) + { + $category = DiscoverCategory::findOrFail($id); + return view('admin.discover.show', compact('category')); + } + + public function discoverCategoryUpdate(Request $request, $id) + { + $this->validate($request, [ + 'name' => 'required|string|min:1', + 'active' => 'required|boolean', + 'media' => 'nullable|integer|min:1', + 'hashtags' => 'nullable|string' + ]); + $name = $request->input('name'); + $slug = str_slug($name); + $active = $request->input('active'); + $media = (int) $request->input('media'); + $media = Media::findOrFail($media); + + $category = DiscoverCategory::findOrFail($id); + $category->name = $name; + $category->active = $active; + $category->media_id = $media->id; + $category->save(); + + return $category; + } + + public function discoveryCategoryTagStore(Request $request) + { + $this->validate($request, [ + 'category_id' => 'required|integer|min:1', + 'hashtag' => 'required|string', + 'action' => 'required|string|min:1|max:6' + ]); + $category_id = $request->input('category_id'); + $category = DiscoverCategory::findOrFail($category_id); + $hashtag = Hashtag::whereName($request->input('hashtag'))->firstOrFail(); + + $tag = DiscoverCategoryHashtag::firstOrCreate([ + 'hashtag_id' => $hashtag->id, + 'discover_category_id' => $category->id + ]); + + if($request->input('action') == 'delete') { + $tag->delete(); + return []; + } + return $tag; + } +} \ No newline at end of file From 3da5be325809ebdca575a453d3254a90c68507f5 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 7 Feb 2019 11:59:38 -0700 Subject: [PATCH 115/179] Add AdminSettingsController --- .../Admin/AdminSettingsController.php | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 app/Http/Controllers/Admin/AdminSettingsController.php diff --git a/app/Http/Controllers/Admin/AdminSettingsController.php b/app/Http/Controllers/Admin/AdminSettingsController.php new file mode 100644 index 00000000..708fa312 --- /dev/null +++ b/app/Http/Controllers/Admin/AdminSettingsController.php @@ -0,0 +1,114 @@ +size; + }); + $mediaSum = Cache::remember('admin:settings:storage:media:storageUsed', 360, function() { + return Media::sum('size'); + }); + $backupSum = Cache::remember('admin:settings:storage:backups:storageUsed', 360, function() { + $dir = storage_path('app/'.config('app.name')); + $size = 0; + foreach (glob(rtrim($dir, '/').'/*', GLOB_NOSORT) as $each) { + $size += is_file($each) ? filesize($each) : folderSize($each); + } + return $size; + }); + $storage = new \StdClass; + $storage->total = disk_total_space(base_path()); + $storage->free = disk_free_space(base_path()); + $storage->prettyTotal = PrettyNumber::size($storage->total, false, false); + $storage->prettyFree = PrettyNumber::size($storage->free, false, false); + $storage->percentFree = ceil($storage->free / $storage->total * 100); + $storage->percentUsed = ceil(100 - $storage->percentFree); + $storage->media = [ + 'used' => $mediaSum, + 'prettyUsed' => PrettyNumber::size($mediaSum), + 'percentUsed' => ceil($mediaSum / $storage->total * 100) + ]; + $storage->backups = [ + 'used' => $backupSum + ]; + $storage->database = [ + 'used' => $databaseSum + ]; + return view('admin.settings.storage', compact('storage')); + } + + public function settingsFeatures(Request $request) + { + return view('admin.settings.features'); + } + + public function settingsHomeStore(Request $request) + { + $this->validate($request, [ + 'APP_NAME' => 'required|string', + ]); + Artisan::call('config:clear'); + DotenvEditor::setKey('APP_NAME', $request->input('APP_NAME')); + DotenvEditor::save(); + return redirect()->back(); + } + + public function settingsPages(Request $request) + { + $pages = Page::orderByDesc('updated_at')->paginate(10); + return view('admin.pages.home', compact('pages')); + } + + public function settingsPageEdit(Request $request) + { + return view('admin.pages.edit'); + } + + public function settingsSystem(Request $request) + { + $sys = [ + 'pixelfed' => config('pixelfed.version'), + 'mysql' => DB::select( DB::raw("select version()") )[0]->{'version()'}, + 'php' => phpversion(), + 'redis' => explode(' ',exec('redis-cli -v'))[1], + ]; + return view('admin.settings.system', compact('sys')); + } +} \ No newline at end of file From aabfa6c0992efa6fc8e980d915accb9dddf7c0e3 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 7 Feb 2019 12:00:01 -0700 Subject: [PATCH 116/179] Update AdminController --- app/Http/Controllers/AdminController.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index ecc5903b..97dbcb36 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -19,6 +19,7 @@ use Carbon\Carbon; use Illuminate\Http\Request; use Jackiedo\DotenvEditor\DotenvEditor; use App\Http\Controllers\Admin\{ + AdminDiscoverController, AdminInstanceController, AdminReportController, AdminMediaController, @@ -29,6 +30,7 @@ use App\Util\Lexer\PrettyNumber; class AdminController extends Controller { use AdminReportController, + AdminDiscoverController, AdminMediaController, AdminSettingsController, AdminInstanceController; From 97bd7c7612c19b48d2fc23241fe55e9098e74c5f Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 7 Feb 2019 12:01:01 -0700 Subject: [PATCH 117/179] Update InternalApiController --- app/Http/Controllers/InternalApiController.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/Http/Controllers/InternalApiController.php b/app/Http/Controllers/InternalApiController.php index d1556285..519fcf3d 100644 --- a/app/Http/Controllers/InternalApiController.php +++ b/app/Http/Controllers/InternalApiController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use App\{ DirectMessage, + DiscoverCategory, Hashtag, Follower, Like, @@ -286,4 +287,17 @@ class InternalApiController extends Controller { } + + public function discoverCategories(Request $request) + { + $categories = DiscoverCategory::whereActive(true)->orderBy('order')->take(10)->get(); + $res = $categories->map(function($item) { + return [ + 'name' => $item->name, + 'url' => $item->url(), + 'thumb' => $item->thumb() + ]; + }); + return response()->json($res); + } } From 25a33d717afa7195f754ec43c25dc2f2cf3df0c0 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 7 Feb 2019 12:01:31 -0700 Subject: [PATCH 118/179] Update SearchController --- app/Http/Controllers/SearchController.php | 32 +++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php index 36103d52..1b34e5e1 100644 --- a/app/Http/Controllers/SearchController.php +++ b/app/Http/Controllers/SearchController.php @@ -7,6 +7,7 @@ use App\Hashtag; use App\Profile; use App\Status; use Illuminate\Http\Request; +use App\Util\ActivityPub\Helpers; use Illuminate\Support\Facades\Cache; class SearchController extends Controller @@ -24,6 +25,35 @@ class SearchController extends Controller $hash = hash('sha256', $tag); $tokens = Cache::remember('api:search:tag:'.$hash, 5, function () use ($tag) { $tokens = collect([]); + if(Helpers::validateUrl($tag)) { + $remote = Helpers::fetchFromUrl($tag); + if(isset($remote['type']) && in_array($remote['type'], ['Create', 'Person']) == true) { + $type = $remote['type']; + if($type == 'Person') { + $item = Helpers::profileFirstOrNew($tag); + $tokens->push([[ + 'count' => 1, + 'url' => $item->url(), + 'type' => 'profile', + 'value' => $item->username, + 'tokens' => [$item->username], + 'name' => $item->name, + ]]); + } else if ($type == 'Create') { + $item = Helpers::statusFirstOrFetch($tag, false); + $tokens->push([[ + 'count' => 0, + 'url' => $item->url(), + 'type' => 'status', + 'value' => "by {$item->profile->username} {$item->created_at->diffForHumans(null, true, true)}", + 'tokens' => [$item->caption], + 'name' => $item->caption, + 'thumb' => $item->thumb(), + ]]); + } + } + + } $hashtags = Hashtag::select('id', 'name', 'slug')->where('slug', 'like', '%'.$tag.'%')->limit(20)->get(); if($hashtags->count() > 0) { $tags = $hashtags->map(function ($item, $key) { @@ -41,6 +71,7 @@ class SearchController extends Controller $users = Profile::select('username', 'name', 'id') ->whereNull('status') ->where('username', 'like', '%'.$tag.'%') + ->orWhere('remote_url', $tag) ->limit(20) ->get(); @@ -66,6 +97,7 @@ class SearchController extends Controller ->whereNull('reblog_of_id') ->whereProfileId(Auth::user()->profile->id) ->where('caption', 'like', '%'.$tag.'%') + ->orWhere('uri', $tag) ->orderBy('created_at', 'desc') ->get(); From 6b7caa988fe1f819bd100cf73d298fc122f3f225 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 7 Feb 2019 12:02:24 -0700 Subject: [PATCH 119/179] Update VideoThumbnail job --- app/Jobs/VideoPipeline/VideoThumbnail.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Jobs/VideoPipeline/VideoThumbnail.php b/app/Jobs/VideoPipeline/VideoThumbnail.php index e52557f2..c6000d22 100644 --- a/app/Jobs/VideoPipeline/VideoThumbnail.php +++ b/app/Jobs/VideoPipeline/VideoThumbnail.php @@ -49,7 +49,7 @@ class VideoThumbnail implements ShouldQueue } elseif($video->getDurationInSeconds() < 5) { $video->getFrameFromSeconds(4); } - $video->export() + $video->export() ->save($save); $media->thumbnail_path = $save; From b1b3a9feb663755ba513a6351625af04bfd4eafd Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 7 Feb 2019 12:07:47 -0700 Subject: [PATCH 120/179] Add embed.js --- resources/assets/js/embed.js | 65 ++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 resources/assets/js/embed.js diff --git a/resources/assets/js/embed.js b/resources/assets/js/embed.js new file mode 100644 index 00000000..314917d5 --- /dev/null +++ b/resources/assets/js/embed.js @@ -0,0 +1,65 @@ +window.pixlfed = {}; +window.pixlfed.config = { + domain: process.env.MIX_APP_DOMAIN, +} + +pixlfed.autoSizeIFrame = function(el) { + console.log(el.contentDocument); + el.style.height = el.contentDocument.body.scrollHeight +'px'; +} + +pixlfed.polyfill = function() { + [].forEach.call(document.querySelectorAll('div.pixelfed-embed'), function(el) { + pixlfed.loadIFrame(el); + }); +} + +pixlfed.loadIFrame = function(el) { + let permalink = el.getAttribute('data-pixlfed-permalink'); + let parser = document.createElement('a'); + parser.href = permalink; + if(el.getAttribute('loaded') == 'true') { + return; + } + if(pixlfed.config.domain !== parser.host) { + el.setAttribute('loaded', 'true'); + console.error('Invalid embed permalink') + return; + } + let css = 'background: white; max-width: 540px; width: calc(100% - 2px); border-radius: 3px; border: 1px solid rgb(219, 219, 219); box-shadow: none; display: block; margin: 0px 0px 12px; min-width: 326px; padding: 0px;'; + let iframe = document.createElement('iframe'); + iframe.onload = function() { + pixlfed.autoSizeIFrame(iframe); + } + iframe.setAttribute('allowtransparency', 'true'); + iframe.setAttribute('frameborder', '0'); + iframe.setAttribute('scrolling', 'no'); + iframe.setAttribute('src', permalink); + iframe.setAttribute('style', css); + iframe.setAttribute('loaded', 'true'); + el.replaceWith(iframe); +} + +pixlfed.run = function() { + var lazyFrames = [].slice.call(document.querySelectorAll("div.pixelfed-embed")); + + if ("IntersectionObserver" in window) { + let lazyFrameObserver = new IntersectionObserver(function(entries, observer) { + entries.forEach(function(entry) { + if (entry.isIntersecting) { + if(entry.target.getAttribute('loaded') !== 'true') { + pixlfed.loadIFrame(entry.target); + } + } + }); + }); + + lazyFrames.forEach(function(lazyFrame) { + lazyFrameObserver.observe(lazyFrame); + }); + } else { + pixlfed.polyfill(); + } +} + +pixlfed.run(); \ No newline at end of file From e76658f6a0e088ebfc79b6277aec11ec1414448f Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 7 Feb 2019 12:08:18 -0700 Subject: [PATCH 121/179] Add dark sass --- resources/assets/sass/dark.scss | 167 ++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 resources/assets/sass/dark.scss diff --git a/resources/assets/sass/dark.scss b/resources/assets/sass/dark.scss new file mode 100644 index 00000000..9833484c --- /dev/null +++ b/resources/assets/sass/dark.scss @@ -0,0 +1,167 @@ +// Cyborg 4.2.1 +// Bootswatch + +// +// Color system +// + +$white: #fff !default; +$gray-100: #f8f9fa !default; +$gray-200: #e9ecef !default; +$gray-300: #dee2e6 !default; +$gray-400: #ADAFAE !default; +$gray-500: #888 !default; +$gray-600: #555 !default; +$gray-700: #282828 !default; +$gray-800: #222 !default; +$gray-900: #212529 !default; +$black: #000 !default; + +$blue: #2A9FD6 !default; +$indigo: #6610f2 !default; +$purple: #6f42c1 !default; +$pink: #e83e8c !default; +$red: #CC0000 !default; +$orange: #fd7e14 !default; +$yellow: #FF8800 !default; +$green: #77B300 !default; +$teal: #20c997 !default; +$cyan: #9933CC !default; + +$primary: $blue !default; +$secondary: $gray-600 !default; +$success: $green !default; +$info: $cyan !default; +$warning: $yellow !default; +$danger: $red !default; +$light: $gray-800 !default; +$dark: $gray-400 !default; + +$yiq-contrasted-threshold: 175 !default; + + +// Body + +$body-bg: #060606 !default; +$body-color: $gray-500 !default; + +// Fonts + +$font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; +$font-size-base: 0.9rem; + + +$headings-color: $white !default; + +// Tables + +$table-accent-bg: rgba($white,.05) !default; +$table-hover-bg: rgba($white,.075) !default; + +$table-border-color: $gray-700 !default; + +$table-dark-bg: $gray-500 !default; +$table-dark-border-color: darken($gray-500, 7.5%) !default; +$table-dark-color: $body-bg !default; + +// Buttons + +$input-btn-padding-x: 1rem !default; + +// Forms + +$input-disabled-bg: $gray-400 !default; + +$input-border-color: transparent !default; + +$input-group-addon-color: $white !default; +$input-group-addon-bg: $gray-700 !default; + +$custom-file-color: $white !default; +$custom-file-border-color: $gray-700 !default; + +// Dropdowns + +$dropdown-bg: $gray-700 !default; +$dropdown-divider-bg: $gray-800 !default; + +$dropdown-link-color: $white !default; +$dropdown-link-hover-color: $white !default; +$dropdown-link-hover-bg: $primary !default; + +// Navs + +$nav-tabs-border-color: $table-border-color !default; +$nav-tabs-link-hover-border-color: $nav-tabs-border-color !default; +$nav-tabs-link-active-color: $white !default; +$nav-tabs-link-active-bg: $nav-tabs-border-color !default; +$nav-tabs-link-active-border-color: $nav-tabs-border-color !default; + +// Navbar + +$navbar-dark-hover-color: $white !default; + +// Pagination + +$pagination-color: $white !default; +$pagination-bg: $gray-700 !default; +$pagination-border-color: transparent !default; + +$pagination-hover-color: $white !default; +$pagination-hover-bg: $primary !default; +$pagination-hover-border-color: $pagination-border-color !default; + +$pagination-disabled-bg: $pagination-bg !default; +$pagination-disabled-border-color: $pagination-border-color !default; + + +// Jumbotron + +$jumbotron-bg: $gray-700 !default; + +// Cards + +$card-bg: $gray-700 !default; + +// Tooltips + +$tooltip-bg: $gray-700 !default; +$tooltip-opacity: 1 !default; + +// Popovers + +$popover-bg: $gray-700 !default; + +// Modals + +$modal-content-bg: $gray-800 !default; + +$modal-header-border-color: $gray-700 !default; + +// Progress bars + +$progress-bg: $gray-700 !default; + +// List group + +$list-group-bg: $gray-800 !default; +$list-group-border-color: $gray-700 !default; + +$list-group-hover-bg: $primary !default; + +$list-group-disabled-bg: $gray-700 !default; + +$list-group-action-active-bg: $primary !default; + +// Breadcrumbs + +$breadcrumb-bg: $gray-700 !default; + +// Close + +$close-color: $white !default; +$close-text-shadow: none !default; + +// Code + +$pre-color: inherit !default; \ No newline at end of file From a49500fcbda9d86df979aa751025b58a47e38bd7 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 7 Feb 2019 12:09:35 -0700 Subject: [PATCH 122/179] Add admin apps view --- resources/views/admin/apps/home.blade.php | 48 +++++++++++++++++++++++ resources/views/admin/apps/show.blade.php | 0 2 files changed, 48 insertions(+) create mode 100644 resources/views/admin/apps/home.blade.php create mode 100644 resources/views/admin/apps/show.blade.php diff --git a/resources/views/admin/apps/home.blade.php b/resources/views/admin/apps/home.blade.php new file mode 100644 index 00000000..8aaeb117 --- /dev/null +++ b/resources/views/admin/apps/home.blade.php @@ -0,0 +1,48 @@ +@extends('admin.partial.template-full') + +@section('section') +
    +

    Apps

    + + + +
    + +
    + + + + + + + + + + + + + @foreach($apps as $app) + + + + + + + + + @endforeach + +
    #OwnerNameCallback URLRevokedCreated
    + + {{$app->id}} + + {{$app->user->username}}{{$app->name}}{{str_limit($app->redirect, 30)}}{{$app->revoked ? 'true' : 'false'}}{{now()->parse($app->created_at)->diffForHumans()}}
    +@endsection \ No newline at end of file diff --git a/resources/views/admin/apps/show.blade.php b/resources/views/admin/apps/show.blade.php new file mode 100644 index 00000000..e69de29b From 104aa7e0a48ece823d8bfbfaecf85635ba780a15 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 7 Feb 2019 12:10:52 -0700 Subject: [PATCH 123/179] Add admin discover views --- .../admin/discover/create-category.blade.php | 77 +++++++++++++++++++ resources/views/admin/discover/home.blade.php | 50 ++++++++++++ 2 files changed, 127 insertions(+) create mode 100644 resources/views/admin/discover/create-category.blade.php create mode 100644 resources/views/admin/discover/home.blade.php diff --git a/resources/views/admin/discover/create-category.blade.php b/resources/views/admin/discover/create-category.blade.php new file mode 100644 index 00000000..5d3ae8a8 --- /dev/null +++ b/resources/views/admin/discover/create-category.blade.php @@ -0,0 +1,77 @@ +@extends('admin.partial.template-full') + +@section('section') +
    +

    Discover

    +

    Create Category

    +
    + +
    + +
    +
    + +
    + +

    Slug: /discover/c/nature

    +
    +
    +
    + +
    + +

    Media ID is used for category thumbnail image

    +
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    + +
    +
    + + +
    +
    + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +@endsection + +@push('scripts') + +@endpush \ No newline at end of file diff --git a/resources/views/admin/discover/home.blade.php b/resources/views/admin/discover/home.blade.php new file mode 100644 index 00000000..c6d0333b --- /dev/null +++ b/resources/views/admin/discover/home.blade.php @@ -0,0 +1,50 @@ +@extends('admin.partial.template-full') + +@section('section') +
    +

    Discover

    + + Create + +
    + +
    +
      + @foreach($categories as $category) +
    • +
      + +
      +

      {{$category->slug}}

      +
      +
      +
      +

      {{$category->hashtags()->count()}}

      +

      Hashtags

      +
      +
      +

      {{$category->posts()->count()}}

      +

      Posts

      +
      +
      +
      + @if($category->active) + Active + @endif + Edit + View +
      +
      +
    • + @endforeach +
    +
    +
    + {{$categories->links()}} +
    +@endsection \ No newline at end of file From 41053f417ee3853b48aaf793c352b35bb1e05944 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 7 Feb 2019 12:12:13 -0700 Subject: [PATCH 124/179] Add admin hashtag views --- resources/views/admin/hashtags/home.blade.php | 43 +++++++++++++++++++ resources/views/admin/hashtags/show.blade.php | 0 2 files changed, 43 insertions(+) create mode 100644 resources/views/admin/hashtags/home.blade.php create mode 100644 resources/views/admin/hashtags/show.blade.php diff --git a/resources/views/admin/hashtags/home.blade.php b/resources/views/admin/hashtags/home.blade.php new file mode 100644 index 00000000..6fa2a1de --- /dev/null +++ b/resources/views/admin/hashtags/home.blade.php @@ -0,0 +1,43 @@ +@extends('admin.partial.template-full') + +@section('section') +
    +

    Hashtags

    +
    +
    + + + + + + + + + + + + + @foreach($hashtags as $tag) + + + + + + + + + @endforeach + +
    #HashtagStatus CountNSFWBannedCreated
    + + {{$tag->id}} + + {{$tag->name}} + + {{$tag->posts()->count()}} + + {{$tag->is_nsfw ? 'true' : 'false'}}{{$tag->is_banned ? 'true' : 'false'}}{{$tag->created_at->diffForHumans()}}
    +
    + {{$hashtags->links()}} +
    +@endsection diff --git a/resources/views/admin/hashtags/show.blade.php b/resources/views/admin/hashtags/show.blade.php new file mode 100644 index 00000000..e69de29b From 8cdf44009b4e9d53b3b5df3680e2988782adf7a4 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Fri, 8 Feb 2019 12:27:51 -0700 Subject: [PATCH 125/179] Update DiscoverCategory model --- app/DiscoverCategory.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/DiscoverCategory.php b/app/DiscoverCategory.php index 2112319f..8e9f87fd 100644 --- a/app/DiscoverCategory.php +++ b/app/DiscoverCategory.php @@ -29,6 +29,12 @@ class DiscoverCategory extends Model return $this->media->thumb(); } + public function mediaUrl() + { + return $this->media->url(); + } + + public function items() { return $this->hasMany(DiscoverCategoryHashtag::class, 'discover_category_id'); From 758677ada49dec80841af5a71a8966e742ed91ef Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 9 Feb 2019 22:38:46 -0700 Subject: [PATCH 126/179] Add new migration --- ...te_websockets_statistics_entries_table.php | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 database/migrations/2019_02_08_192219_create_websockets_statistics_entries_table.php diff --git a/database/migrations/2019_02_08_192219_create_websockets_statistics_entries_table.php b/database/migrations/2019_02_08_192219_create_websockets_statistics_entries_table.php new file mode 100644 index 00000000..b56e525b --- /dev/null +++ b/database/migrations/2019_02_08_192219_create_websockets_statistics_entries_table.php @@ -0,0 +1,30 @@ +increments('id'); + $table->string('app_id'); + $table->integer('peak_connection_count'); + $table->integer('websocket_message_count'); + $table->integer('api_message_count'); + $table->nullableTimestamps(); + }); + } + /** + * Reverse the migrations. + */ + public function down() + { + Schema::dropIfExists('websockets_statistics_entries'); + } +} From e00f65da03b0f84540e6207835953eb60d65d52b Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 9 Feb 2019 22:40:10 -0700 Subject: [PATCH 127/179] Add Circle controller,model and migration --- app/Circle.php | 38 ++++++++++ app/Http/Controllers/CircleController.php | 69 +++++++++++++++++++ ...2019_02_09_045935_create_circles_table.php | 37 ++++++++++ 3 files changed, 144 insertions(+) create mode 100644 app/Circle.php create mode 100644 app/Http/Controllers/CircleController.php create mode 100644 database/migrations/2019_02_09_045935_create_circles_table.php diff --git a/app/Circle.php b/app/Circle.php new file mode 100644 index 00000000..fdce9fcd --- /dev/null +++ b/app/Circle.php @@ -0,0 +1,38 @@ +hasManyThrough( + Profile::class, + CircleProfile::class, + 'circle_id', + 'id', + 'id', + 'profile_id' + ); + } + + public function owner() + { + return $this->belongsTo(Profile::class, 'profile_id'); + } + + public function url() + { + return url("/i/circle/show/{$this->id}"); + } +} diff --git a/app/Http/Controllers/CircleController.php b/app/Http/Controllers/CircleController.php new file mode 100644 index 00000000..24423ee8 --- /dev/null +++ b/app/Http/Controllers/CircleController.php @@ -0,0 +1,69 @@ +middleware('auth'); + } + + public function home(Request $request) + { + $circles = Circle::whereProfileId(Auth::user()->profile->id) + ->orderByDesc('created_at') + ->paginate(10); + return view('account.circles.home', compact('circles')); + } + + public function create(Request $request) + { + return view('account.circles.create'); + } + + public function store(Request $request) + { + $this->validate($request, [ + 'name' => 'required|string|min:1', + 'description' => 'nullable|string|max:255', + 'scope' => [ + 'required', + 'string', + Rule::in([ + 'public', + 'private', + 'unlisted', + 'exclusive' + ]) + ], + ]); + + $circle = Circle::firstOrCreate([ + 'profile_id' => Auth::user()->profile->id, + 'name' => $request->input('name') + ], [ + 'description' => $request->input('description'), + 'scope' => $request->input('scope'), + 'active' => false + ]); + + return redirect(route('account.circles')); + } + + public function show(Request $request, $id) + { + $circle = Circle::findOrFail($id); + return view('account.circles.show', compact('circle')); + } +} diff --git a/database/migrations/2019_02_09_045935_create_circles_table.php b/database/migrations/2019_02_09_045935_create_circles_table.php new file mode 100644 index 00000000..40faf510 --- /dev/null +++ b/database/migrations/2019_02_09_045935_create_circles_table.php @@ -0,0 +1,37 @@ +bigIncrements('id'); + $table->bigInteger('profile_id')->unsigned()->index(); + $table->string('name')->nullable(); + $table->text('description')->nullable(); + $table->string('scope')->default('public'); + $table->boolean('bcc')->default(false); + $table->boolean('active')->default(false)->index(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('circles'); + } +} From ee4b7ba8b242fe6b01a12cd0192199c5d987bb3d Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 9 Feb 2019 22:41:18 -0700 Subject: [PATCH 128/179] Add CircleProfile controller, model and migration --- app/CircleProfile.php | 13 +++++++ .../Controllers/CircleProfileController.php | 10 ++++++ ...09_045956_create_circle_profiles_table.php | 35 +++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 app/CircleProfile.php create mode 100644 app/Http/Controllers/CircleProfileController.php create mode 100644 database/migrations/2019_02_09_045956_create_circle_profiles_table.php diff --git a/app/CircleProfile.php b/app/CircleProfile.php new file mode 100644 index 00000000..bc99d08a --- /dev/null +++ b/app/CircleProfile.php @@ -0,0 +1,13 @@ +bigIncrements('id'); + $table->bigInteger('owner_id')->unsigned()->nullable()->index(); + $table->bigInteger('circle_id')->unsigned()->index(); + $table->bigInteger('profile_id')->unsigned()->index(); + $table->unique(['circle_id', 'profile_id']); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('circle_profiles'); + } +} From dd42ad7558ed667888ae7f4982c7cfdb707f96bf Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 9 Feb 2019 22:42:04 -0700 Subject: [PATCH 129/179] Update Profile model, add circles relation --- app/Profile.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/Profile.php b/app/Profile.php index 14556a2b..8cf7d110 100644 --- a/app/Profile.php +++ b/app/Profile.php @@ -274,4 +274,9 @@ class Profile extends Model ->unique() ->toArray(); } + + public function circles() + { + return $this->hasMany(Circle::class); + } } From 25a71a9f5f8aa7222874f187176f159644cb7000 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 9 Feb 2019 22:45:07 -0700 Subject: [PATCH 130/179] Add circle account view --- .../views/account/circles/home.blade.php | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 resources/views/account/circles/home.blade.php diff --git a/resources/views/account/circles/home.blade.php b/resources/views/account/circles/home.blade.php new file mode 100644 index 00000000..526c3fff --- /dev/null +++ b/resources/views/account/circles/home.blade.php @@ -0,0 +1,41 @@ +@extends('layouts.app') + +@section('content') + +
    +
    +
    +

    Circles

    +

    New

    +
    +
    +
    +
      + @foreach($circles as $circle) +
    • +
      +
      +

      {{$circle->name}}

      +
      +
      + @foreach($circle->members()->orderByDesc('created_at')->take(8)->get() as $member) + + @endforeach +
      +
      + {{$circle->members->count()}} Members + View +
      +
      +
    • + @endforeach +
    +
    +
    + {{$circles->links()}} +
    +
    +
    +
    + +@endsection \ No newline at end of file From 4fe46723ee7f23b1d59faa7ee9291db2558ff996 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 13:25:37 -0700 Subject: [PATCH 131/179] Update DiscoverController --- app/Http/Controllers/DiscoverController.php | 30 ++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/DiscoverController.php b/app/Http/Controllers/DiscoverController.php index a39dfd4b..0eddeed9 100644 --- a/app/Http/Controllers/DiscoverController.php +++ b/app/Http/Controllers/DiscoverController.php @@ -3,10 +3,12 @@ namespace App\Http\Controllers; use App\{ + DiscoverCategory, Follower, Hashtag, Profile, Status, + StatusHashtag, UserFilter }; use Auth, DB, Cache; @@ -28,7 +30,7 @@ class DiscoverController extends Controller { $this->validate($request, [ 'page' => 'nullable|integer|min:1|max:10', - ]); + ]); $tag = Hashtag::with('posts') ->withCount('posts') @@ -51,4 +53,30 @@ class DiscoverController extends Controller return view('discover.tags.show', compact('tag', 'posts')); } + + public function showCategory(Request $request, $slug) + { + $tag = DiscoverCategory::whereActive(true) + ->whereSlug($slug) + ->firstOrFail(); + + // todo refactor this mess + $tagids = $tag->hashtags->pluck('id')->toArray(); + $sids = StatusHashtag::whereIn('hashtag_id', $tagids)->orderByDesc('status_id')->take(500)->pluck('status_id')->toArray(); + $posts = Status::whereIn('id', $sids)->whereNull('uri')->whereType('photo')->whereNull('in_reply_to_id')->whereNull('reblog_of_id')->orderByDesc('created_at')->paginate(21); + $tag->posts_count = $tag->posts()->count(); + return view('discover.tags.category', compact('tag', 'posts')); + } + + public function showPersonal(Request $request) + { + $profile = Auth::user()->profile; + // todo refactor this mess + $tags = Hashtag::whereHas('posts')->orderByRaw('rand()')->take(5)->get(); + $following = $profile->following->pluck('id'); + $following = $following->push($profile->id)->toArray(); + $posts = Status::withCount(['likes','comments'])->whereNotIn('profile_id', $following)->whereHas('media')->whereType('photo')->orderByDesc('created_at')->paginate(21); + $posts->post_count = Status::whereNotIn('profile_id', $following)->whereHas('media')->whereType('photo')->count(); + return view('discover.personal', compact('posts', 'tags')); + } } From b6b1898073c11dc72921aefd87df1b6b221ba88b Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 13:29:04 -0700 Subject: [PATCH 132/179] Update discover views --- resources/views/discover/home.blade.php | 1 + resources/views/discover/personal.blade.php | 76 +++++++++++++ .../views/discover/tags/category.blade.php | 104 ++++++++++++++++++ 3 files changed, 181 insertions(+) create mode 100644 resources/views/discover/personal.blade.php create mode 100644 resources/views/discover/tags/category.blade.php diff --git a/resources/views/discover/home.blade.php b/resources/views/discover/home.blade.php index 089aa76b..ea8433a3 100644 --- a/resources/views/discover/home.blade.php +++ b/resources/views/discover/home.blade.php @@ -9,6 +9,7 @@ @endsection @push('scripts') + diff --git a/resources/views/discover/personal.blade.php b/resources/views/discover/personal.blade.php new file mode 100644 index 00000000..cbda555b --- /dev/null +++ b/resources/views/discover/personal.blade.php @@ -0,0 +1,76 @@ +@extends('layouts.app') + +@section('content') +
    +
    +
    +
    +

    My Discover

    +

    Discover posts based on hashtags you've used before

    +
    +
    +
    +
    + +
    +
    +

    + Related hashtags: + @foreach($tags as $hashtag) + #{{$hashtag->name}} + @endforeach +

    +

    + {{$posts->post_count}} posts +

    +
    +
    + +
    +
    + {{$posts->links()}} +
    +
    + +@endsection + +@push('scripts') + +@endpush \ No newline at end of file diff --git a/resources/views/discover/tags/category.blade.php b/resources/views/discover/tags/category.blade.php new file mode 100644 index 00000000..d918f53a --- /dev/null +++ b/resources/views/discover/tags/category.blade.php @@ -0,0 +1,104 @@ +@extends('layouts.app') + +@section('content') + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    + {{$tag->name}} +
    +
    +
    +
    +
    +
    + +
    +
    +

    + Related hashtags: + @foreach($tag->hashtags as $hashtag) + #{{$hashtag->name}} + @endforeach +

    +

    + {{$tag->posts_count}} posts +

    +
    +
    + +
    +
    + {{$posts->links()}} +
    +
    + +@endsection + +@push('meta') + + +@endpush + +@push('scripts') + +@endpush From cbb786f1224bdf898895359d65e268426785f67a Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 13:29:29 -0700 Subject: [PATCH 133/179] Add new base layout --- resources/views/layouts/bundle.blade.php | 47 ++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 resources/views/layouts/bundle.blade.php diff --git a/resources/views/layouts/bundle.blade.php b/resources/views/layouts/bundle.blade.php new file mode 100644 index 00000000..99775f59 --- /dev/null +++ b/resources/views/layouts/bundle.blade.php @@ -0,0 +1,47 @@ + + + + + + + + + + + + {{ $title ?? config('app.name', 'Laravel') }} + + + + + + + @stack('meta') + + + + + + + + @stack('styles') + + + + @include('layouts.partial.nav') +
    + @yield('content') +
    + @include('layouts.partial.footer') + @stack('scripts') + @if(Auth::check()) + + @endif + + From 9bbbd1116052e68ae5ac0a596234969262507783 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 13:42:26 -0700 Subject: [PATCH 134/179] Update PublicApiController --- app/Http/Controllers/PublicApiController.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/Http/Controllers/PublicApiController.php b/app/Http/Controllers/PublicApiController.php index b38bedfc..61e9e657 100644 --- a/app/Http/Controllers/PublicApiController.php +++ b/app/Http/Controllers/PublicApiController.php @@ -19,6 +19,7 @@ use Carbon\Carbon; use League\Fractal; use App\Transformer\Api\{ AccountTransformer, + RelationshipTransformer, StatusTransformer, }; use App\Jobs\StatusPipeline\NewStatusPipeline; @@ -330,4 +331,21 @@ class PublicApiController extends Controller return response()->json($res); } + + public function relationships(Request $request) + { + abort_if(!Auth::check(), 403); + + $this->validate($request, [ + 'id' => 'required|array|min:1|max:20' + ]); + $ids = collect($request->input('id')); + $filtered = $ids->filter(function($v) { + return $v != Auth::user()->profile->id; + }); + $relations = Profile::findOrFail($filtered->all()); + $fractal = new Fractal\Resource\Collection($relations, new RelationshipTransformer()); + $res = $this->fractal->createData($fractal)->toArray(); + return response()->json($res); + } } From e7301aef014adf5b856d32915da407b9bbbeed75 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 16:52:00 -0700 Subject: [PATCH 135/179] Update InternalApiController --- .../Controllers/InternalApiController.php | 92 +++++++++++++++++-- 1 file changed, 86 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/InternalApiController.php b/app/Http/Controllers/InternalApiController.php index 519fcf3d..8fc7409d 100644 --- a/app/Http/Controllers/InternalApiController.php +++ b/app/Http/Controllers/InternalApiController.php @@ -26,6 +26,7 @@ use App\Transformer\Api\{ use App\Jobs\StatusPipeline\NewStatusPipeline; use League\Fractal\Serializer\ArraySerializer; use League\Fractal\Pagination\IlluminatePaginatorAdapter; +use Illuminate\Validation\Rule; class InternalApiController extends Controller { @@ -200,14 +201,21 @@ class InternalApiController extends Controller { $profile = Auth::user()->profile; $pid = $profile->id; - $following = Cache::remember('feature:discover:following:'.$pid, 60, function() use ($pid) { + $following = Cache::remember('feature:discover:following:'.$pid, 15, function() use ($pid) { return Follower::whereProfileId($pid)->pluck('following_id')->toArray(); }); - $filters = Cache::remember("user:filter:list:$pid", 60, function() use($pid) { - return UserFilter::whereUserId($pid) - ->whereFilterableType('App\Profile') - ->whereIn('filter_type', ['mute', 'block']) - ->pluck('filterable_id')->toArray(); + $filters = Cache::remember("user:filter:list:$pid", 15, function() use($pid) { + $private = Profile::whereIsPrivate(true) + ->orWhere('unlisted', true) + ->orWhere('status', '!=', null) + ->pluck('id') + ->toArray(); + $filters = UserFilter::whereUserId($pid) + ->whereFilterableType('App\Profile') + ->whereIn('filter_type', ['mute', 'block']) + ->pluck('filterable_id') + ->toArray(); + return array_merge($private, $filters); }); $following = array_merge($following, $filters); @@ -300,4 +308,76 @@ class InternalApiController extends Controller }); return response()->json($res); } + + public function modAction(Request $request) + { + abort_unless(Auth::user()->is_admin, 403); + $this->validate($request, [ + 'action' => [ + 'required', + 'string', + Rule::in([ + 'autocw', + 'noautolink', + 'unlisted', + 'disable', + 'suspend' + ]) + ], + 'item_id' => 'required|integer|min:1', + 'item_type' => [ + 'required', + 'string', + Rule::in(['status']) + ] + ]); + + $action = $request->input('action'); + $item_id = $request->input('item_id'); + $item_type = $request->input('item_type'); + + switch($action) { + case 'autocw': + $profile = $item_type == 'status' ? Status::findOrFail($item_id)->profile : null; + $profile->cw = true; + $profile->save(); + break; + + case 'noautolink': + $profile = $item_type == 'status' ? Status::findOrFail($item_id)->profile : null; + $profile->no_autolink = true; + $profile->save(); + break; + + case 'unlisted': + $profile = $item_type == 'status' ? Status::findOrFail($item_id)->profile : null; + $profile->unlisted = true; + $profile->save(); + break; + + case 'disable': + $profile = $item_type == 'status' ? Status::findOrFail($item_id)->profile : null; + $user = $profile->user; + $profile->status = 'disabled'; + $user->status = 'disabled'; + $profile->save(); + $user->save(); + break; + + + case 'suspend': + $profile = $item_type == 'status' ? Status::findOrFail($item_id)->profile : null; + $user = $profile->user; + $profile->status = 'suspended'; + $user->status = 'suspended'; + $profile->save(); + $user->save(); + break; + + default: + # code... + break; + } + return ['msg' => 200]; + } } From f057ab689a41075d2ab4fdd72d446e3c3deed5d5 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 16:52:18 -0700 Subject: [PATCH 136/179] Update PublicApiController --- app/Http/Controllers/PublicApiController.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/PublicApiController.php b/app/Http/Controllers/PublicApiController.php index 61e9e657..ba132585 100644 --- a/app/Http/Controllers/PublicApiController.php +++ b/app/Http/Controllers/PublicApiController.php @@ -33,7 +33,6 @@ class PublicApiController extends Controller public function __construct() { - $this->middleware('throttle:3000, 30'); $this->fractal = new Fractal\Manager(); $this->fractal->setSerializer(new ArraySerializer()); } @@ -223,7 +222,11 @@ class PublicApiController extends Controller // $timeline = Timeline::build()->local(); $pid = Auth::user()->profile->id; - $private = Profile::whereIsPrivate(true)->orWhereNotNull('status')->where('id', '!=', $pid)->pluck('id'); + $private = Profile::whereIsPrivate(true) + ->orWhere('unlisted', true) + ->orWhere('status', '!=', null) + ->where('id', '!=', $pid) + ->pluck('id'); $filters = UserFilter::whereUserId($pid) ->whereFilterableType('App\Profile') ->whereIn('filter_type', ['mute', 'block']) From 94877eeb491dd8f78387bdd6e1f3b5201a88a7db Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 16:57:14 -0700 Subject: [PATCH 137/179] Add admin discover edit view --- resources/views/admin/discover/show.blade.php | 249 ++++++++++++++++++ 1 file changed, 249 insertions(+) create mode 100644 resources/views/admin/discover/show.blade.php diff --git a/resources/views/admin/discover/show.blade.php b/resources/views/admin/discover/show.blade.php new file mode 100644 index 00000000..05f88118 --- /dev/null +++ b/resources/views/admin/discover/show.blade.php @@ -0,0 +1,249 @@ +@extends('admin.partial.template-full') + +@section('section') +
    +
    +

    Discover Category

    +

    ID: #{{$category->id}}

    +
    +
    + Back +
    +
    + +
    + +
    +
    + +
    + +

    Slug: /discover/c/{{$category->slug}}

    +
    +
    +
    + +
    + +

    Media ID is used for category thumbnail image

    +
    +
    +
    + +
    +
    + active ?'checked=""':''}}> + +
    +
    +
    + +
    + +
    +
    + no_nsfw ?'checked=""':''}}> + +
    +
    + photos_only ?'checked=""':''}}> + +
    +
    + local_only ?'checked=""':''}}> + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    +
    +
    + +@endsection + +@push('scripts') + + +@endpush + +@push('styles') + +@endpush \ No newline at end of file From 87cf387d79e8881a206eb3cbcc04bbef9da4ebd0 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 16:59:29 -0700 Subject: [PATCH 138/179] Add admin pages views --- resources/views/admin/pages/edit.blade.php | 53 +++++++++++++++++++--- resources/views/admin/pages/home.blade.php | 47 +++++++++++++++++++ 2 files changed, 93 insertions(+), 7 deletions(-) create mode 100644 resources/views/admin/pages/home.blade.php diff --git a/resources/views/admin/pages/edit.blade.php b/resources/views/admin/pages/edit.blade.php index c40dabdd..bf903304 100644 --- a/resources/views/admin/pages/edit.blade.php +++ b/resources/views/admin/pages/edit.blade.php @@ -1,19 +1,37 @@ @extends('admin.partial.template') +@include('admin.settings.sidebar') + @section('section')

    Edit Page

    -

    {{request()->query('page')}}

    +

    {{$page->slug}}


    -
    -

    PixelFed is a federated image sharing platform, powered by the ActivityPub protocol.

    -
    -

    - Save + + +

    + Page URL: {{$page->url()}} + Edit

    +
    + {!!$page->content!!} +
    +
    +
    +
    + active?'checked="true"':''}}> + +
    + Set Expire Date +
    +
    + Preview + Save +
    +
    @endsection @@ -38,8 +56,29 @@ @endpush \ No newline at end of file diff --git a/resources/views/admin/pages/home.blade.php b/resources/views/admin/pages/home.blade.php new file mode 100644 index 00000000..4cb8c3e0 --- /dev/null +++ b/resources/views/admin/pages/home.blade.php @@ -0,0 +1,47 @@ +@extends('admin.partial.template') + +@include('admin.settings.sidebar') + +@section('section') +
    +

    Pages

    +

    Set custom page content

    +
    +
    + +
    + + + + + + + + + + + @foreach($pages as $page) + + + + + + + @endforeach + +
    + ID + + Slug + + Active + + Updated +
    + {{$page->id}} + {{$page->slug}}{{$page->active ? 'active':'inactive'}}{{$page->updated_at->diffForHumans(null, true, true, true)}}
    +
    +
    + {{$pages->links()}} +
    +@endsection \ No newline at end of file From de5e2351ee1b989c723c6c72dc27abc7bcc93db0 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 17:00:20 -0700 Subject: [PATCH 139/179] Update admin nav --- resources/views/admin/partial/topnav.blade.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/resources/views/admin/partial/topnav.blade.php b/resources/views/admin/partial/topnav.blade.php index 29a76e28..2e4ad691 100644 --- a/resources/views/admin/partial/topnav.blade.php +++ b/resources/views/admin/partial/topnav.blade.php @@ -8,11 +8,11 @@
  • - - -
  • -

    {{$file->getFilename()}}

    -

    - - Size: {{App\Util\Lexer\PrettyNumber::convert($file->getSize())}} - - - Created: {{\Carbon\Carbon::createFromTimestamp($file->getMTime())->diffForHumans()}}

    - -

    -
  • - @endif - @endforeach -
-
- -
-
+

+ Feature Unavailable: This feature will be released in v0.9.0. +

@endsection \ No newline at end of file From c76cd2e4458a54a29d2b2c4a60503aeaf967a78d Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 17:15:57 -0700 Subject: [PATCH 142/179] Add admin config settings view --- resources/views/admin/settings/config.blade.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 resources/views/admin/settings/config.blade.php diff --git a/resources/views/admin/settings/config.blade.php b/resources/views/admin/settings/config.blade.php new file mode 100644 index 00000000..b13b89bf --- /dev/null +++ b/resources/views/admin/settings/config.blade.php @@ -0,0 +1,13 @@ +@extends('admin.partial.template') + +@include('admin.settings.sidebar') + +@section('section') +
+

Configuration Settings

+

Edit any .env or config setting

+
+

+ Feature Unavailable: This feature will be released in v0.9.0. +

+@endsection \ No newline at end of file From b30236ec1554dd9e1885feb06aa162754d19aa71 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 17:17:20 -0700 Subject: [PATCH 143/179] Add admin features settings view --- resources/views/admin/settings/features.blade.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 resources/views/admin/settings/features.blade.php diff --git a/resources/views/admin/settings/features.blade.php b/resources/views/admin/settings/features.blade.php new file mode 100644 index 00000000..e393b090 --- /dev/null +++ b/resources/views/admin/settings/features.blade.php @@ -0,0 +1,14 @@ +@extends('admin.partial.template') + +@include('admin.settings.sidebar') + +@section('section') +
+

Features

+

Enable or disable core features

+
+
+

+ Feature Unavailable: This feature will be released in v0.9.0. +

+@endsection \ No newline at end of file From ec189fc045e3a1d059917fe9e992637c6d87422f Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 17:18:28 -0700 Subject: [PATCH 144/179] Update admin maintenance settings view --- .../views/admin/settings/maintenance.blade.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/resources/views/admin/settings/maintenance.blade.php b/resources/views/admin/settings/maintenance.blade.php index 9182e94d..a89b55f4 100644 --- a/resources/views/admin/settings/maintenance.blade.php +++ b/resources/views/admin/settings/maintenance.blade.php @@ -1,9 +1,14 @@ @extends('admin.partial.template') -@section('section') -
-

Maintenance

-
-
+@include('admin.settings.sidebar') +@section('section') +
+

Maintenance

+

Enable maintenance mode

+
+
+

+ Feature Unavailable: This feature will be released in v0.9.0. +

@endsection \ No newline at end of file From 01d14c649abf4a299ede3f45f8afd80409c9bbd7 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 17:18:49 -0700 Subject: [PATCH 145/179] Add admin settings sidebar partial --- .../views/admin/settings/sidebar.blade.php | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 resources/views/admin/settings/sidebar.blade.php diff --git a/resources/views/admin/settings/sidebar.blade.php b/resources/views/admin/settings/sidebar.blade.php new file mode 100644 index 00000000..a5e60f80 --- /dev/null +++ b/resources/views/admin/settings/sidebar.blade.php @@ -0,0 +1,28 @@ +@section('menu') + +@endsection \ No newline at end of file From 796e3ae4de4deae49d2e5dfcbcd7229dec34b48c Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 17:20:10 -0700 Subject: [PATCH 146/179] Update admin storage settings view --- .../views/admin/settings/storage.blade.php | 48 ++++++++----------- 1 file changed, 21 insertions(+), 27 deletions(-) diff --git a/resources/views/admin/settings/storage.blade.php b/resources/views/admin/settings/storage.blade.php index 294c84e3..27c8c92a 100644 --- a/resources/views/admin/settings/storage.blade.php +++ b/resources/views/admin/settings/storage.blade.php @@ -1,30 +1,24 @@ @extends('admin.partial.template') -@section('section') -
-

Storage

-
-
+@include('admin.settings.sidebar') -
-
-
-
-
-
- - Used: {{$storage->prettyTotal}} - - - {{$storage->percentUsed}}% Used - - - Free: {{$storage->prettyFree}} - -
-
- -
-@endsection \ No newline at end of file +@section('section') +
+

Storage

+

Filesystem storage stats

+
+
+

+ Feature Unavailable: This feature will be released in v0.9.0. +

+@endsection + +@push('scripts') + +@endpush From f353d6280dfe7e094e767f06e20090bb84be1667 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 17:25:37 -0700 Subject: [PATCH 147/179] Update admin system settings view --- .../views/admin/settings/system.blade.php | 118 ++++++++++++++---- 1 file changed, 97 insertions(+), 21 deletions(-) diff --git a/resources/views/admin/settings/system.blade.php b/resources/views/admin/settings/system.blade.php index 992d65de..ac6b1e6d 100644 --- a/resources/views/admin/settings/system.blade.php +++ b/resources/views/admin/settings/system.blade.php @@ -1,39 +1,115 @@ @extends('admin.partial.template') +@include('admin.settings.sidebar') + @section('section')

System

+

System information


+

STACK

-
+
-

{{$sys['pixelfed']}}

+

{{$sys['pixelfed']}}

- -
- -
-
-

{{$sys['mysql']}}

-
- -
+ +
-
+
+
+
+

{{$sys['mysql']}}

+
+ +
+
+
+
+
+

{{$sys['php']}}

+
+ +
+
+
-

{{$sys['php']}}

+

{{$sys['redis']}}

- -
-
-
-

{{$sys['redis']}}

-
- +
-@endsection \ No newline at end of file +
+

LATEST RELEASE

+
+
+
+ Loading... +
+
+
+
+
+
+

0.0.0

+
+
+

+

+

+
+
+
+
+
+@endsection + +@push('styles') + +@endpush + +@push('scripts') + + +@endpush \ No newline at end of file From 2083355193fd6433546301f4f2c7984cdbbad101 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 17:46:51 -0700 Subject: [PATCH 148/179] Update admin pages setting view --- resources/views/admin/pages/home.blade.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/resources/views/admin/pages/home.blade.php b/resources/views/admin/pages/home.blade.php index 4cb8c3e0..aeccb9e2 100644 --- a/resources/views/admin/pages/home.blade.php +++ b/resources/views/admin/pages/home.blade.php @@ -8,8 +8,10 @@

Set custom page content


- -
+

+ Feature Unavailable: This feature will be released in v0.9.0. +

+ {{--< div class="table-responsive"> @@ -43,5 +45,5 @@
{{$pages->links()}} -
+ --}} @endsection \ No newline at end of file From 67983516ea5bc4566e1b63298be71792c14315f5 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 17:56:52 -0700 Subject: [PATCH 149/179] Update Timeline.vue --- resources/assets/js/components/Timeline.vue | 405 +++++++++++++++----- 1 file changed, 313 insertions(+), 92 deletions(-) diff --git a/resources/assets/js/components/Timeline.vue b/resources/assets/js/components/Timeline.vue index c6ff2aa4..91d8c857 100644 --- a/resources/assets/js/components/Timeline.vue +++ b/resources/assets/js/components/Timeline.vue @@ -10,22 +10,43 @@ {{status.account.username}} @@ -74,9 +95,19 @@

- @@ -116,9 +147,14 @@ avatar -
-

@{{profile.username}}

-

{{profile.display_name}}

+
+
+

@{{profile.username}}

+

{{profile.display_name}}

+
+
+ +
@@ -141,7 +177,30 @@ -
+
+
+
+
+ + +
+ +
+ + +
+
+ + +
+
+
+
+ +

@@ -149,12 +208,12 @@ See All

-
+
Loading...
-
+
@@ -178,6 +237,11 @@ {{n.account.username}} followed you.

+
+

+ {{n.account.username}} shared your post. +

+
@@ -207,6 +271,9 @@ \ No newline at end of file From 549ce89b4b8b3cd569907c77461f5a44e78d1560 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 18:00:05 -0700 Subject: [PATCH 150/179] Update AdminController --- app/Http/Controllers/AdminController.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index 97dbcb36..e2adf6bb 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -43,7 +43,7 @@ class AdminController extends Controller public function home() { - $data = Cache::remember('admin:dashboard:home:data', 1, function() { + $data = Cache::remember('admin:dashboard:home:data', 15, function() { return [ 'failedjobs' => [ 'count' => PrettyNumber::convert(FailedJob::where('failed_at', '>=', \Carbon\Carbon::now()->subDay())->count()), @@ -100,6 +100,7 @@ class AdminController extends Controller $dir = $request->query('dir') ?? 'desc'; $stats = $this->collectUserStats($request); $users = User::withCount('statuses')->orderBy($col, $dir)->paginate(10); + return view('admin.users.home', compact('users', 'stats')); } From 1faa7ac011188bee28d339c9e24d4f203b3c6dcb Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 19:20:21 -0700 Subject: [PATCH 151/179] Add Story components --- resources/assets/js/components/Stories.vue | 26 ++++++++--- .../assets/js/components/StoryCompose.vue | 43 +++++++++++++++++++ 2 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 resources/assets/js/components/StoryCompose.vue diff --git a/resources/assets/js/components/Stories.vue b/resources/assets/js/components/Stories.vue index a92ed94e..7665780c 100644 --- a/resources/assets/js/components/Stories.vue +++ b/resources/assets/js/components/Stories.vue @@ -1,8 +1,21 @@ + + \ No newline at end of file From 4c4f8a73940d540ba1b1c85a2771098150cf8022 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 22:30:20 -0700 Subject: [PATCH 171/179] Update admin profile view --- resources/views/admin/profiles/home.blade.php | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 resources/views/admin/profiles/home.blade.php diff --git a/resources/views/admin/profiles/home.blade.php b/resources/views/admin/profiles/home.blade.php new file mode 100644 index 00000000..dbcef56d --- /dev/null +++ b/resources/views/admin/profiles/home.blade.php @@ -0,0 +1,144 @@ +@extends('admin.partial.template-full') + +@section('section') +
+

Profiles

+ + + + + + + + + +
+
+@if(request()->input('layout') == 'list') +
+
+ + + + + + + + + + @foreach($profiles as $profile) + + + + @endforeach + +
+ ID + + Username + + Statuses + + Storage + + Actions +
+ {{$profile->id}} +
+
+
+ {{$profiles->links()}} +
+@else +
+ @foreach($profiles as $profile) +
+
+
+ +

{{$profile->username}}

+
+
    +
  • +
    +

    {{$profile->statuses()->count()}}

    + +
    +
    +

    0

    + +
    +
    +

    {{$profile->followers()->count()}}

    + +
    +
  • +
  • + View + Actions +
  • +
+
+
+ @endforeach +
+
+ {{$profiles->links()}} +
+@endif +@endsection + +@push('styles') + +@endpush +@push('scripts') + +@endpush From 276712014b1a48d53743e71131b6fb24c44bc555 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 10 Feb 2019 22:31:49 -0700 Subject: [PATCH 172/179] Update PostComponent --- .../assets/js/components/PostComponent.vue | 81 +++++++++++-------- 1 file changed, 47 insertions(+), 34 deletions(-) diff --git a/resources/assets/js/components/PostComponent.vue b/resources/assets/js/components/PostComponent.vue index 6d86dd7a..fff13515 100644 --- a/resources/assets/js/components/PostComponent.vue +++ b/resources/assets/js/components/PostComponent.vue @@ -1,10 +1,4 @@