diff options
102 files changed, 909 insertions, 1096 deletions
diff --git a/.env.nanobox b/.env.nanobox index 03aa01a34..5951777a2 100644 --- a/.env.nanobox +++ b/.env.nanobox @@ -231,8 +231,8 @@ SMTP_FROM_ADDRESS=notifications@${APP_NAME}.nanoapp.io # Optional SAML authentication (cf. omniauth-saml) # SAML_ENABLED=true -# SAML_ACS_URL= -# SAML_ISSUER=http://localhost:3000/auth/auth/saml/callback +# SAML_ACS_URL=http://localhost:3000/auth/auth/saml/callback +# SAML_ISSUER=https://example.com # SAML_IDP_SSO_TARGET_URL=https://idp.testshib.org/idp/profile/SAML2/Redirect/SSO # SAML_IDP_CERT= # SAML_IDP_CERT_FINGERPRINT= diff --git a/.env.production.sample b/.env.production.sample index 8121aafeb..6036095e4 100644 --- a/.env.production.sample +++ b/.env.production.sample @@ -251,8 +251,8 @@ STREAMING_CLUSTER_NUM=1 # Optional SAML authentication (cf. omniauth-saml) # SAML_ENABLED=true -# SAML_ACS_URL= -# SAML_ISSUER=http://localhost:3000/auth/auth/saml/callback +# SAML_ACS_URL=http://localhost:3000/auth/auth/saml/callback +# SAML_ISSUER=https://example.com # SAML_IDP_SSO_TARGET_URL=https://idp.testshib.org/idp/profile/SAML2/Redirect/SSO # SAML_IDP_CERT= # SAML_IDP_CERT_FINGERPRINT= diff --git a/.gitignore b/.gitignore index c3f20deea..a4057eb6e 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ /db/*.sqlite3-journal # Ignore all logfiles and tempfiles. +.eslintcache /log/* !/log/.keep /tmp @@ -23,6 +24,7 @@ public/packs public/packs-test .env .env.production +.env.development node_modules/ build/ @@ -60,4 +62,3 @@ ubuntu-xenial-16.04-cloudimg-console.log # Ignore Docker option files docker-compose.override.yml - diff --git a/Gemfile b/Gemfile index 4d6d3aec0..bb4e65fdc 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,8 @@ ruby '>= 2.4.0', '< 2.7.0' gem 'pkg-config', '~> 1.4' gem 'puma', '~> 4.3' -gem 'rails', '~> 5.2.3' +gem 'rails', '~> 5.2.4' +gem 'sprockets', '~> 3.7' gem 'thor', '~> 0.20' gem 'hamlit-rails', '~> 0.2' @@ -15,7 +16,7 @@ gem 'makara', '~> 0.4' gem 'pghero', '~> 2.4' gem 'dotenv-rails', '~> 2.7' -gem 'aws-sdk-s3', '~> 1.57', require: false +gem 'aws-sdk-s3', '~> 1.59', require: false gem 'fog-core', '<= 2.1.0' gem 'fog-openstack', '~> 0.3', require: false gem 'paperclip', '~> 6.0' @@ -64,7 +65,7 @@ gem 'mime-types', '~> 3.3', require: 'mime/types/columnar' gem 'nilsimsa', git: 'https://github.com/witgo/nilsimsa', ref: 'fd184883048b922b176939f851338d0a4971a532' gem 'nokogiri', '~> 1.10' gem 'nsa', '~> 0.2' -gem 'oj', '~> 3.9' +gem 'oj', '~> 3.10' gem 'ostatus2', '~> 2.0' gem 'ox', '~> 2.11' gem 'parslet' @@ -89,7 +90,7 @@ gem 'simple-navigation', '~> 4.1' gem 'simple_form', '~> 5.0' gem 'sprockets-rails', '~> 3.2', require: 'sprockets/railtie' gem 'stoplight', '~> 2.2.0' -gem 'strong_migrations', '~> 0.4' +gem 'strong_migrations', '~> 0.5' gem 'tty-command', '~> 0.9', require: false gem 'tty-prompt', '~> 0.20', require: false gem 'twitter-text', '~> 1.14' @@ -119,13 +120,13 @@ end group :test do gem 'capybara', '~> 3.29' gem 'climate_control', '~> 0.2' - gem 'faker', '~> 2.8' + gem 'faker', '~> 2.9' gem 'microformats', '~> 4.1' gem 'rails-controller-testing', '~> 1.0' gem 'rspec-sidekiq', '~> 3.0' gem 'simplecov', '~> 0.17', require: false gem 'webmock', '~> 3.7' - gem 'parallel_tests', '~> 2.29' + gem 'parallel_tests', '~> 2.30' end group :development do @@ -137,7 +138,7 @@ group :development do gem 'letter_opener', '~> 1.7' gem 'letter_opener_web', '~> 1.3' gem 'memory_profiler' - gem 'rubocop', '~> 0.76', require: false + gem 'rubocop', '~> 0.78', require: false gem 'rubocop-rails', '~> 2.4', require: false gem 'brakeman', '~> 4.7', require: false gem 'bundler-audit', '~> 0.6', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 091fc78c4..cfa4201fd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -44,25 +44,25 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (5.2.3) - actionpack (= 5.2.3) + actioncable (5.2.4.1) + actionpack (= 5.2.4.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailer (5.2.3) - actionpack (= 5.2.3) - actionview (= 5.2.3) - activejob (= 5.2.3) + actionmailer (5.2.4.1) + actionpack (= 5.2.4.1) + actionview (= 5.2.4.1) + activejob (= 5.2.4.1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.2.3) - actionview (= 5.2.3) - activesupport (= 5.2.3) - rack (~> 2.0) + actionpack (5.2.4.1) + actionview (= 5.2.4.1) + activesupport (= 5.2.4.1) + rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.3) - activesupport (= 5.2.3) + actionview (5.2.4.1) + activesupport (= 5.2.4.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -73,20 +73,20 @@ GEM case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) active_record_query_trace (1.7) - activejob (5.2.3) - activesupport (= 5.2.3) + activejob (5.2.4.1) + activesupport (= 5.2.4.1) globalid (>= 0.3.6) - activemodel (5.2.3) - activesupport (= 5.2.3) - activerecord (5.2.3) - activemodel (= 5.2.3) - activesupport (= 5.2.3) + activemodel (5.2.4.1) + activesupport (= 5.2.4.1) + activerecord (5.2.4.1) + activemodel (= 5.2.4.1) + activesupport (= 5.2.4.1) arel (>= 9.0) - activestorage (5.2.3) - actionpack (= 5.2.3) - activerecord (= 5.2.3) + activestorage (5.2.4.1) + actionpack (= 5.2.4.1) + activerecord (= 5.2.4.1) marcel (~> 0.3.1) - activesupport (5.2.3) + activesupport (5.2.4.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -105,8 +105,8 @@ GEM av (0.9.0) cocaine (~> 0.5.3) aws-eventstream (1.0.3) - aws-partitions (1.246.0) - aws-sdk-core (3.82.0) + aws-partitions (1.251.0) + aws-sdk-core (3.84.0) aws-eventstream (~> 1.0, >= 1.0.2) aws-partitions (~> 1, >= 1.239.0) aws-sigv4 (~> 1.1) @@ -114,8 +114,8 @@ GEM aws-sdk-kms (1.26.0) aws-sdk-core (~> 3, >= 3.71.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.57.0) - aws-sdk-core (~> 3, >= 3.77.0) + aws-sdk-s3 (1.59.0) + aws-sdk-core (~> 3, >= 3.83.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.1) aws-sigv4 (1.1.0) @@ -134,7 +134,7 @@ GEM msgpack (~> 1.0) brakeman (4.7.2) browser (2.7.1) - builder (3.2.3) + builder (3.2.4) bullet (6.0.2) activesupport (>= 3.0.0) uniform_notifier (~> 1.11) @@ -218,7 +218,7 @@ GEM docile (1.3.2) domain_name (0.5.20180417) unf (>= 0.0.5, < 1.0.0) - doorkeeper (5.2.2) + doorkeeper (5.2.3) railties (>= 5) dotenv (2.7.5) dotenv-rails (2.7.5) @@ -238,9 +238,9 @@ GEM erubi (1.9.0) et-orbi (1.1.6) tzinfo - excon (0.62.0) + excon (0.71.0) fabrication (2.21.0) - faker (2.8.0) + faker (2.9.0) i18n (>= 1.6, < 1.8) faraday (0.15.4) multipart-post (>= 1.2, < 3) @@ -326,7 +326,7 @@ GEM jmespath (1.4.0) json (2.2.0) json-canonicalization (0.1.0) - json-ld-preloaded (3.0.4) + json-ld-preloaded (3.0.6) json-ld (~> 3.0) multi_json (~> 1.12) rdf (~> 3.0) @@ -358,7 +358,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.3.1) + loofah (2.4.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -382,7 +382,7 @@ GEM mini_portile2 (2.4.0) minitest (5.13.0) msgpack (1.3.1) - multi_json (1.13.1) + multi_json (1.14.1) multipart-post (2.1.1) necromancer (0.5.1) net-ldap (0.16.2) @@ -390,7 +390,7 @@ GEM net-ssh (>= 2.6.5, < 6.0.0) net-ssh (5.2.0) nio4r (2.5.2) - nokogiri (1.10.5) + nokogiri (1.10.7) mini_portile2 (~> 2.4.0) nokogumbo (2.0.1) nokogiri (~> 1.8, >= 1.8.4) @@ -399,7 +399,7 @@ GEM concurrent-ruby (~> 1.0, >= 1.0.2) sidekiq (>= 3.5) statsd-ruby (~> 1.4, >= 1.4.0) - oj (3.9.2) + oj (3.10.0) omniauth (1.9.0) hashie (>= 3.4.6, < 3.7.0) rack (>= 1.6.2, < 3) @@ -426,7 +426,7 @@ GEM av (~> 0.9.0) paperclip (>= 2.5.2) parallel (1.19.1) - parallel_tests (2.29.2) + parallel_tests (2.30.0) parallel parser (2.6.5.0) ast (~> 2.4.0) @@ -460,8 +460,8 @@ GEM pundit (2.1.0) activesupport (>= 3.0.0) raabro (1.1.6) - rack (2.0.7) - rack-attack (6.2.1) + rack (2.0.8) + rack-attack (6.2.2) rack (>= 1.0, < 3) rack-cors (1.1.0) rack (>= 2.0.0) @@ -471,18 +471,18 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (5.2.3) - actioncable (= 5.2.3) - actionmailer (= 5.2.3) - actionpack (= 5.2.3) - actionview (= 5.2.3) - activejob (= 5.2.3) - activemodel (= 5.2.3) - activerecord (= 5.2.3) - activestorage (= 5.2.3) - activesupport (= 5.2.3) + rails (5.2.4.1) + actioncable (= 5.2.4.1) + actionmailer (= 5.2.4.1) + actionpack (= 5.2.4.1) + actionview (= 5.2.4.1) + activejob (= 5.2.4.1) + activemodel (= 5.2.4.1) + activerecord (= 5.2.4.1) + activestorage (= 5.2.4.1) + activesupport (= 5.2.4.1) bundler (>= 1.3.0) - railties (= 5.2.3) + railties (= 5.2.4.1) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.4) actionpack (>= 5.0.1.x) @@ -498,15 +498,15 @@ GEM railties (>= 5.0, < 6) rails-settings-cached (0.6.6) rails (>= 4.2.0) - railties (5.2.3) - actionpack (= 5.2.3) - activesupport (= 5.2.3) + railties (5.2.4.1) + actionpack (= 5.2.4.1) + activesupport (= 5.2.4.1) method_source rake (>= 0.8.7) thor (>= 0.19.0, < 2.0) rainbow (3.0.0) rake (13.0.1) - rdf (3.0.12) + rdf (3.0.13) hamster (~> 3.0) link_header (~> 0.0, >= 0.0.8) rdf-normalize (0.3.3) @@ -561,7 +561,7 @@ GEM rspec-core (~> 3.0, >= 3.0.0) sidekiq (>= 2.4.0) rspec-support (3.9.0) - rubocop (0.76.0) + rubocop (0.78.0) jaro_winkler (~> 1.5.1) parallel (~> 1.10) parser (>= 2.6) @@ -594,7 +594,7 @@ GEM rufus-scheduler (~> 3.2) sidekiq (>= 3) tilt (>= 1.4.0) - sidekiq-unique-jobs (6.0.15) + sidekiq-unique-jobs (6.0.18) concurrent-ruby (~> 1.0, >= 1.0.5) sidekiq (>= 4.0, < 7.0) thor (~> 0) @@ -618,12 +618,12 @@ GEM sshkit (1.20.0) net-scp (>= 1.1.2) net-ssh (>= 2.8.0) - stackprof (0.2.13) + stackprof (0.2.14) statsd-ruby (1.4.0) stoplight (2.2.0) streamio-ffmpeg (3.0.2) multi_json (~> 1.8) - strong_migrations (0.4.2) + strong_migrations (0.5.1) activerecord (>= 5) temple (0.8.1) terminal-table (1.8.0) @@ -663,16 +663,16 @@ GEM addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webpacker (4.2.0) + webpacker (4.2.2) activesupport (>= 4.2) rack-proxy (>= 0.6.1) railties (>= 4.2) webpush (0.3.8) hkdf (~> 0.2) jwt (~> 2.0) - websocket-driver (0.7.0) + websocket-driver (0.7.1) websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.3) + websocket-extensions (0.1.4) wisper (2.0.1) xpath (3.2.0) nokogiri (~> 1.8) @@ -685,7 +685,7 @@ DEPENDENCIES active_record_query_trace (~> 1.7) addressable (~> 2.7) annotate (~> 3.0) - aws-sdk-s3 (~> 1.57) + aws-sdk-s3 (~> 1.59) better_errors (~> 2.5) binding_of_caller (~> 0.7) blurhash (~> 0.1) @@ -713,7 +713,7 @@ DEPENDENCIES doorkeeper (~> 5.2) dotenv-rails (~> 2.7) fabrication (~> 2.21) - faker (~> 2.8) + faker (~> 2.9) fast_blank (~> 1.0) fastimage fog-core (<= 2.1.0) @@ -748,7 +748,7 @@ DEPENDENCIES nilsimsa! nokogiri (~> 1.10) nsa (~> 0.2) - oj (~> 3.9) + oj (~> 3.10) omniauth (~> 1.9) omniauth-cas (~> 1.1) omniauth-saml (~> 1.10) @@ -757,7 +757,7 @@ DEPENDENCIES paperclip (~> 6.0) paperclip-av-transcoder (~> 0.6) parallel (~> 1.19) - parallel_tests (~> 2.29) + parallel_tests (~> 2.30) parslet pg (~> 1.1) pghero (~> 2.4) @@ -771,7 +771,7 @@ DEPENDENCIES pundit (~> 2.1) rack-attack (~> 6.2) rack-cors (~> 1.1) - rails (~> 5.2.3) + rails (~> 5.2.4) rails-controller-testing (~> 1.0) rails-i18n (~> 5.1) rails-settings-cached (~> 0.6) @@ -783,7 +783,7 @@ DEPENDENCIES rqrcode (~> 0.10) rspec-rails (~> 3.9) rspec-sidekiq (~> 3.0) - rubocop (~> 0.76) + rubocop (~> 0.78) rubocop-rails (~> 2.4) ruby-progressbar (~> 1.10) sanitize (~> 5.1) @@ -794,11 +794,12 @@ DEPENDENCIES simple-navigation (~> 4.1) simple_form (~> 5.0) simplecov (~> 0.17) + sprockets (~> 3.7) sprockets-rails (~> 3.2) stackprof stoplight (~> 2.2.0) streamio-ffmpeg (~> 3.0) - strong_migrations (~> 0.4) + strong_migrations (~> 0.5) thor (~> 0.20) tty-command (~> 0.9) tty-prompt (~> 0.20) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 599c64062..f1a4f0d02 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -212,6 +212,6 @@ class ApplicationController < ActionController::Base def respond_with_error(code) use_pack 'error' - render "errors/#{code}", layout: 'error', status: code + render "errors/#{code}", layout: 'error', status: code, formats: [:html] end end diff --git a/app/javascript/core/admin.js b/app/javascript/core/admin.js index ffdabe674..e4d683dd0 100644 --- a/app/javascript/core/admin.js +++ b/app/javascript/core/admin.js @@ -47,7 +47,25 @@ const onDomainBlockSeverityChange = (target) => { delegate(document, '#domain_block_severity', 'change', ({ target }) => onDomainBlockSeverityChange(target)); +const onEnableBootstrapTimelineAccountsChange = (target) => { + const bootstrapTimelineAccountsField = document.querySelector('#form_admin_settings_bootstrap_timeline_accounts'); + + if (bootstrapTimelineAccountsField) { + bootstrapTimelineAccountsField.disabled = !target.checked; + if (target.checked) { + bootstrapTimelineAccountsField.parentElement.classList.remove('disabled'); + } else { + bootstrapTimelineAccountsField.parentElement.classList.add('disabled'); + } + } +}; + +delegate(document, '#form_admin_settings_enable_bootstrap_timeline_accounts', 'change', ({ target }) => onEnableBootstrapTimelineAccountsChange(target)); + ready(() => { - const input = document.getElementById('domain_block_severity'); - if (input) onDomainBlockSeverityChange(input); + const domainBlockSeverityInput = document.getElementById('domain_block_severity'); + if (domainBlockSeverityInput) onDomainBlockSeverityChange(domainBlockSeverityInput); + + const enableBootstrapTimelineAccounts = document.getElementById('form_admin_settings_enable_bootstrap_timeline_accounts'); + if (enableBootstrapTimelineAccounts) onEnableBootstrapTimelineAccountsChange(enableBootstrapTimelineAccounts); }); diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js index 4c3555dea..f6e92813a 100644 --- a/app/javascript/flavours/glitch/containers/status_container.js +++ b/app/javascript/flavours/glitch/containers/status_container.js @@ -214,7 +214,7 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ title={intl.formatMessage(messages.editFilter)} href={filterEditLink(filter.get('id'))} > - <Icon icon='pencil' /> + <Icon id='pencil' /> </a> )} </li> diff --git a/app/javascript/flavours/glitch/reducers/timelines.js b/app/javascript/flavours/glitch/reducers/timelines.js index d3318f8d3..1ea9ed645 100644 --- a/app/javascript/flavours/glitch/reducers/timelines.js +++ b/app/javascript/flavours/glitch/reducers/timelines.js @@ -71,7 +71,7 @@ const updateTimeline = (state, timeline, status, usePendingItems, filtered) => { state = state.update(timeline, initialTimeline, map => map.update('pendingItems', list => list.unshift(status.get('id')))); if (!filtered) { - state = state.update('unread', unread => unread + 1); + state = state.updateIn([timeline, 'unread'], unread => unread + 1); } return state; diff --git a/app/javascript/flavours/glitch/styles/admin.scss b/app/javascript/flavours/glitch/styles/admin.scss index 1d25d0129..d2f477d19 100644 --- a/app/javascript/flavours/glitch/styles/admin.scss +++ b/app/javascript/flavours/glitch/styles/admin.scss @@ -181,18 +181,39 @@ $content-width: 840px; padding-top: 30px; } - h2 { - color: $secondary-text-color; - font-size: 24px; - line-height: 28px; - font-weight: 400; + &-heading { + display: flex; + padding-bottom: 40px; border-bottom: 1px solid lighten($ui-base-color, 8%); margin-bottom: 40px; + flex-wrap: wrap; + align-items: center; + + justify-content: space-between; + + &-actions { + display: inline-flex; + + & > * { + margin-left: 5px; + } + } + @media screen and (max-width: $no-columns-breakpoint) { border-bottom: 0; padding-bottom: 0; + } + } + + h2 { + color: $secondary-text-color; + font-size: 24px; + line-height: 28px; + font-weight: 400; + + @media screen and (max-width: $no-columns-breakpoint) { font-weight: 700; } } diff --git a/app/javascript/flavours/glitch/styles/components/index.scss b/app/javascript/flavours/glitch/styles/components/index.scss index febc95513..8e576fd86 100644 --- a/app/javascript/flavours/glitch/styles/components/index.scss +++ b/app/javascript/flavours/glitch/styles/components/index.scss @@ -726,7 +726,6 @@ overflow-x: hidden; flex: 1 1 auto; -webkit-overflow-scrolling: touch; - will-change: transform; // improves perf in mobile Chrome &.optionally-scrollable { overflow-y: auto; diff --git a/app/javascript/mastodon/extra_polyfills.js b/app/javascript/mastodon/extra_polyfills.js index 3acc55abd..13c4f6da9 100644 --- a/app/javascript/mastodon/extra_polyfills.js +++ b/app/javascript/mastodon/extra_polyfills.js @@ -1,5 +1,5 @@ import 'intersection-observer'; import 'requestidlecallback'; -import objectFitImages from 'object-fit-images'; +import objectFitImages from 'object-fit-images'; objectFitImages(); diff --git a/app/javascript/mastodon/features/compose/components/poll_form.js b/app/javascript/mastodon/features/compose/components/poll_form.js index 791a4b1ad..cac3776bb 100644 --- a/app/javascript/mastodon/features/compose/components/poll_form.js +++ b/app/javascript/mastodon/features/compose/components/poll_form.js @@ -82,8 +82,8 @@ class Option extends React.PureComponent { onKeyPress={this.handleCheckboxKeypress} role='button' tabIndex='0' - title={intl.formatMessage(isPollMultiple ? messages.switchToMultiple : messages.switchToSingle)} - aria-label={intl.formatMessage(isPollMultiple ? messages.switchToMultiple : messages.switchToSingle)} + title={intl.formatMessage(isPollMultiple ? messages.switchToSingle : messages.switchToMultiple)} + aria-label={intl.formatMessage(isPollMultiple ? messages.switchToSingle : messages.switchToMultiple)} /> <AutosuggestInput @@ -155,7 +155,7 @@ class PollForm extends ImmutablePureComponent { <div className='poll__footer'> <button disabled={options.size >= 5} className='button button-secondary' onClick={this.handleAddOption}><Icon id='plus' /> <FormattedMessage {...messages.add_option} /></button> - <select value={expiresIn} onBlur={this.handleSelectDuration}> + <select value={expiresIn} onChange={this.handleSelectDuration}> <option value={300}>{intl.formatMessage(messages.minutes, { number: 5 })}</option> <option value={1800}>{intl.formatMessage(messages.minutes, { number: 30 })}</option> <option value={3600}>{intl.formatMessage(messages.hours, { number: 1 })}</option> diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index de95d82bf..cba552433 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -181,18 +181,39 @@ $content-width: 840px; padding-top: 30px; } - h2 { - color: $secondary-text-color; - font-size: 24px; - line-height: 28px; - font-weight: 400; + &-heading { + display: flex; + padding-bottom: 40px; border-bottom: 1px solid lighten($ui-base-color, 8%); margin-bottom: 40px; + flex-wrap: wrap; + align-items: center; + + justify-content: space-between; + + &-actions { + display: inline-flex; + + & > * { + margin-left: 5px; + } + } + @media screen and (max-width: $no-columns-breakpoint) { border-bottom: 0; padding-bottom: 0; + } + } + + h2 { + color: $secondary-text-color; + font-size: 24px; + line-height: 28px; + font-weight: 400; + + @media screen and (max-width: $no-columns-breakpoint) { font-weight: 700; } } diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 0ec25e3f8..01a633c5f 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -2512,7 +2512,6 @@ a.account__display-name { overflow-x: hidden; flex: 1 1 auto; -webkit-overflow-scrolling: touch; - will-change: transform; // improves perf in mobile Chrome &.optionally-scrollable { overflow-y: auto; diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb index 0ca6b92a4..49b1dc9cd 100644 --- a/app/lib/activitypub/activity.rb +++ b/app/lib/activitypub/activity.rb @@ -5,7 +5,7 @@ class ActivityPub::Activity include Redisable SUPPORTED_TYPES = %w(Note Question).freeze - CONVERTED_TYPES = %w(Image Audio Video Article Page).freeze + CONVERTED_TYPES = %w(Image Audio Video Article Page Event).freeze def initialize(json, account, **options) @json = json diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb index 8a12a2b08..c55cfe08e 100644 --- a/app/lib/activitypub/activity/create.rb +++ b/app/lib/activitypub/activity/create.rb @@ -157,7 +157,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity return if tag['name'].blank? Tag.find_or_create_by_names(tag['name']) do |hashtag| - @tags << hashtag unless @tags.include?(hashtag) + @tags << hashtag unless @tags.include?(hashtag) || !hashtag.valid? end rescue ActiveRecord::RecordInvalid nil @@ -167,7 +167,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity return if tag['href'].blank? account = account_from_uri(tag['href']) - account = ::FetchRemoteAccountService.new.call(tag['href']) if account.nil? + account = ActivityPub::FetchRemoteAccountService.new.call(tag['href']) if account.nil? return if account.nil? diff --git a/app/models/backup.rb b/app/models/backup.rb index c2651313b..8eeb1748a 100644 --- a/app/models/backup.rb +++ b/app/models/backup.rb @@ -7,7 +7,7 @@ # user_id :bigint(8) # dump_file_name :string # dump_content_type :string -# dump_file_size :integer +# dump_file_size :bigint # dump_updated_at :datetime # processed :boolean default(FALSE), not null # created_at :datetime not null diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb index 3398af169..84a656864 100644 --- a/app/models/form/admin_settings.rb +++ b/app/models/form/admin_settings.rb @@ -16,6 +16,7 @@ class Form::AdminSettings open_deletion timeline_preview show_staff_badge + enable_bootstrap_timeline_accounts bootstrap_timeline_accounts flavour skin @@ -46,6 +47,7 @@ class Form::AdminSettings open_deletion timeline_preview show_staff_badge + enable_bootstrap_timeline_accounts activity_api_enabled peers_api_enabled show_known_fediverse_at_about_page diff --git a/app/models/form/custom_emoji_batch.rb b/app/models/form/custom_emoji_batch.rb index 076e8c9e3..6b7ea5355 100644 --- a/app/models/form/custom_emoji_batch.rb +++ b/app/models/form/custom_emoji_batch.rb @@ -40,7 +40,7 @@ class Form::CustomEmojiBatch if category_id.present? CustomEmojiCategory.find(category_id) elsif category_name.present? - CustomEmojiCategory.create!(name: category_name) + CustomEmojiCategory.find_or_create_by!(name: category_name) end end diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb index e05879188..880599028 100644 --- a/app/models/media_attachment.rb +++ b/app/models/media_attachment.rb @@ -167,6 +167,18 @@ class MediaAttachment < ApplicationRecord audio? || video? end + def variant?(other_file_name) + return true if file_file_name == other_file_name + + formats = file.styles.values.map(&:format).compact + + return false if formats.empty? + + extension = File.extname(other_file_name) + + formats.include?(extension.delete('.')) && File.basename(other_file_name, extension) == File.basename(file_file_name, File.extname(file_file_name)) + end + def to_param shortcode end diff --git a/app/models/tag.rb b/app/models/tag.rb index d3a7e1e6d..bce76fc16 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -117,7 +117,7 @@ class Tag < ApplicationRecord class << self def find_or_create_by_names(name_or_names) Array(name_or_names).map(&method(:normalize)).uniq { |str| str.mb_chars.downcase.to_s }.map do |normalized_name| - tag = matching_name(normalized_name).first || create!(name: normalized_name) + tag = matching_name(normalized_name).first || create(name: normalized_name) yield tag if block_given? diff --git a/app/services/backup_service.rb b/app/services/backup_service.rb index cc9fb1f4e..0b57b6d0c 100644 --- a/app/services/backup_service.rb +++ b/app/services/backup_service.rb @@ -3,6 +3,8 @@ require 'rubygems/package' class BackupService < BaseService + include Payloadable + attr_reader :account, :backup, :collection def call(backup) @@ -20,7 +22,7 @@ class BackupService < BaseService account.statuses.with_includes.reorder(nil).find_in_batches do |statuses| statuses.each do |status| - item = serialize(status, ActivityPub::ActivitySerializer) + item = serialize_payload(status, ActivityPub::ActivitySerializer, signer: @account) item.delete(:'@context') unless item[:type] == 'Announce' || item[:object][:attachment].blank? diff --git a/app/services/bootstrap_timeline_service.rb b/app/services/bootstrap_timeline_service.rb index c489601c1..8412aa7e7 100644 --- a/app/services/bootstrap_timeline_service.rb +++ b/app/services/bootstrap_timeline_service.rb @@ -5,7 +5,7 @@ class BootstrapTimelineService < BaseService @source_account = source_account autofollow_inviter! - autofollow_bootstrap_timeline_accounts! + autofollow_bootstrap_timeline_accounts! if Setting.enable_bootstrap_timeline_accounts end private diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb index 5d4a7c303..91141c1f5 100644 --- a/app/services/fetch_link_card_service.rb +++ b/app/services/fetch_link_card_service.rb @@ -45,7 +45,7 @@ class FetchLinkCardService < BaseService def html return @html if defined?(@html) - Request.new(:get, @url).perform do |res| + Request.new(:get, @url).add_headers('Accept' => 'text/html').perform do |res| if res.code == 200 && res.mime_type == 'text/html' @html = res.body_with_limit @html_charset = res.charset diff --git a/app/services/fetch_oembed_service.rb b/app/services/fetch_oembed_service.rb index 76d971bc5..67e33875c 100644 --- a/app/services/fetch_oembed_service.rb +++ b/app/services/fetch_oembed_service.rb @@ -93,7 +93,7 @@ class FetchOEmbedService def html return @html if defined?(@html) - @html = @options[:html] || Request.new(:get, @url).perform do |res| + @html = @options[:html] || Request.new(:get, @url).add_headers('Accept' => 'text/html').perform do |res| res.code != 200 || res.mime_type != 'text/html' ? nil : res.body_with_limit end end diff --git a/app/services/fetch_remote_account_service.rb b/app/services/fetch_remote_account_service.rb deleted file mode 100644 index 3cd06e30f..000000000 --- a/app/services/fetch_remote_account_service.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -class FetchRemoteAccountService < BaseService - def call(url, prefetched_body = nil, protocol = :ostatus) - if prefetched_body.nil? - resource_url, resource_options, protocol = FetchResourceService.new.call(url) - else - resource_url = url - resource_options = { prefetched_body: prefetched_body } - end - - case protocol - when :activitypub - ActivityPub::FetchRemoteAccountService.new.call(resource_url, **resource_options) - end - end -end diff --git a/app/services/fetch_remote_status_service.rb b/app/services/fetch_remote_status_service.rb index 208dc7809..eafde4d4a 100644 --- a/app/services/fetch_remote_status_service.rb +++ b/app/services/fetch_remote_status_service.rb @@ -1,17 +1,14 @@ # frozen_string_literal: true class FetchRemoteStatusService < BaseService - def call(url, prefetched_body = nil, protocol = :ostatus) + def call(url, prefetched_body = nil) if prefetched_body.nil? - resource_url, resource_options, protocol = FetchResourceService.new.call(url) + resource_url, resource_options = FetchResourceService.new.call(url) else resource_url = url resource_options = { prefetched_body: prefetched_body } end - case protocol - when :activitypub - ActivityPub::FetchRemoteStatusService.new.call(resource_url, **resource_options) - end + ActivityPub::FetchRemoteStatusService.new.call(resource_url, **resource_options) unless resource_url.nil? end end diff --git a/app/services/fetch_resource_service.rb b/app/services/fetch_resource_service.rb index 3676d899d..34382d279 100644 --- a/app/services/fetch_resource_service.rb +++ b/app/services/fetch_resource_service.rb @@ -33,7 +33,7 @@ class FetchResourceService < BaseService body = response.body_with_limit json = body_to_json(body) - [json['id'], { prefetched_body: body, id: true }, :activitypub] if supported_context?(json) && (equals_or_includes_any?(json['type'], ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES) || expected_type?(json)) + [json['id'], { prefetched_body: body, id: true }] if supported_context?(json) && (equals_or_includes_any?(json['type'], ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES) || expected_type?(json)) elsif !terminal link_header = response['Link'] && parse_link_header(response) diff --git a/app/services/resolve_url_service.rb b/app/services/resolve_url_service.rb index 4e971a4b8..79b1bad0c 100644 --- a/app/services/resolve_url_service.rb +++ b/app/services/resolve_url_service.rb @@ -19,9 +19,9 @@ class ResolveURLService < BaseService def process_url if equals_or_includes_any?(type, ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES) - FetchRemoteAccountService.new.call(resource_url, body, protocol) + ActivityPub::FetchRemoteAccountService.new.call(resource_url, prefetched_body: body) elsif equals_or_includes_any?(type, ActivityPub::Activity::Create::SUPPORTED_TYPES + ActivityPub::Activity::Create::CONVERTED_TYPES) - status = FetchRemoteStatusService.new.call(resource_url, body, protocol) + status = FetchRemoteStatusService.new.call(resource_url, body) authorize_with @on_behalf_of, status, :show? unless status.nil? status elsif fetched_resource.nil? && @on_behalf_of.present? @@ -45,12 +45,8 @@ class ResolveURLService < BaseService fetched_resource.second[:prefetched_body] end - def protocol - fetched_resource.third - end - def type - return json_data['type'] if protocol == :activitypub + json_data['type'] end def json_data diff --git a/app/views/admin/reports/index.html.haml b/app/views/admin/reports/index.html.haml index b09472270..30c7549b0 100644 --- a/app/views/admin/reports/index.html.haml +++ b/app/views/admin/reports/index.html.haml @@ -28,7 +28,7 @@ .report-card__profile = account_link_to target_account, '', size: 36, path: admin_account_path(target_account.id) .report-card__profile__stats - = link_to pluralize(target_account.targeted_moderation_notes.count, t('admin.reports.account.note')), admin_account_path(target_account.id) + = link_to t('admin.reports.account.notes', count: target_account.targeted_moderation_notes.count), admin_account_path(target_account.id) %br/ - if target_account.suspended? %span.red= t('admin.accounts.suspended') diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml index 0b84e1788..4321bb199 100644 --- a/app/views/admin/reports/show.html.haml +++ b/app/views/admin/reports/show.html.haml @@ -1,37 +1,28 @@ - content_for :page_title do = t('admin.reports.report', id: @report.id) -%div{ style: 'overflow: hidden; margin-bottom: 20px' } +- content_for :page_heading_actions do - if @report.unresolved? - %div{ style: 'float: right' } - - if @report.target_account.local? - = link_to t('admin.accounts.warn'), new_admin_account_action_path(@report.target_account_id, type: 'none', report_id: @report.id), class: 'button' - = link_to t('admin.accounts.disable'), new_admin_account_action_path(@report.target_account_id, type: 'disable', report_id: @report.id), class: 'button button--destructive' - = link_to t('admin.accounts.silence'), new_admin_account_action_path(@report.target_account_id, type: 'silence', report_id: @report.id), class: 'button button--destructive' - = link_to t('admin.accounts.perform_full_suspension'), new_admin_account_action_path(@report.target_account_id, type: 'suspend', report_id: @report.id), class: 'button button--destructive' - %div{ style: 'float: left' } - = link_to t('admin.reports.mark_as_resolved'), resolve_admin_report_path(@report), method: :post, class: 'button' + = link_to t('admin.reports.mark_as_resolved'), resolve_admin_report_path(@report), method: :post, class: 'button' - else = link_to t('admin.reports.mark_as_unresolved'), reopen_admin_report_path(@report), method: :post, class: 'button' -%hr.spacer - .table-wrapper %table.table.inline-table %tbody %tr %th= t('admin.reports.reported_account') %td= admin_account_link_to @report.target_account - %td= table_link_to 'flag', pluralize(@report.target_account.targeted_reports.count, t('admin.reports.account.report')), admin_reports_path(target_account_id: @report.target_account.id) - %td= table_link_to 'file', pluralize(@report.target_account.targeted_moderation_notes.count, t('admin.reports.account.note')), admin_reports_path(target_account_id: @report.target_account.id) + %td= table_link_to 'flag', t('admin.reports.account.reports', count: @report.target_account.targeted_reports.count), admin_reports_path(target_account_id: @report.target_account.id) + %td= table_link_to 'file', t('admin.reports.account.notes', count: @report.target_account.targeted_moderation_notes.count), admin_reports_path(target_account_id: @report.target_account.id) %tr %th= t('admin.reports.reported_by') - if @report.account.instance_actor? %td{ colspan: 3 }= site_hostname - elsif @report.account.local? %td= admin_account_link_to @report.account - %td= table_link_to 'flag', pluralize(@report.account.targeted_reports.count, t('admin.reports.account.report')), admin_reports_path(target_account_id: @report.account.id) - %td= table_link_to 'file', pluralize(@report.account.targeted_moderation_notes.count, t('admin.reports.account.note')), admin_reports_path(target_account_id: @report.account.id) + %td= table_link_to 'flag', t('admin.reports.account.reports', count: @report.account.targeted_reports.count), admin_reports_path(target_account_id: @report.account.id) + %td= table_link_to 'file', t('admin.reports.account.notes', count: @report.account.targeted_moderation_notes.count), admin_reports_path(target_account_id: @report.account.id) - else %td{ colspan: 3 }= @report.account.domain %tr @@ -74,6 +65,17 @@ %hr.spacer +%div{ style: 'overflow: hidden; margin-bottom: 20px; clear: both' } + - if @report.unresolved? + %div{ style: 'float: right' } + - if @report.target_account.local? + = link_to t('admin.accounts.warn'), new_admin_account_action_path(@report.target_account_id, type: 'none', report_id: @report.id), class: 'button' + = link_to t('admin.accounts.disable'), new_admin_account_action_path(@report.target_account_id, type: 'disable', report_id: @report.id), class: 'button button--destructive' + = link_to t('admin.accounts.silence'), new_admin_account_action_path(@report.target_account_id, type: 'silence', report_id: @report.id), class: 'button button--destructive' + = link_to t('admin.accounts.perform_full_suspension'), new_admin_account_action_path(@report.target_account_id, type: 'suspend', report_id: @report.id), class: 'button button--destructive' + +%hr.spacer + .speech-bubble .speech-bubble__bubble= simple_format(@report.comment.presence || t('admin.reports.comment.none')) .speech-bubble__owner diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml index ba66aeff8..63b352361 100644 --- a/app/views/admin/settings/edit.html.haml +++ b/app/views/admin/settings/edit.html.haml @@ -38,7 +38,9 @@ %hr.spacer/ .fields-group - = f.input :bootstrap_timeline_accounts, wrapper: :with_block_label, label: t('admin.settings.bootstrap_timeline_accounts.title'), hint: t('admin.settings.bootstrap_timeline_accounts.desc_html') + = f.input :enable_bootstrap_timeline_accounts, as: :boolean, wrapper: :with_label, label: t('admin.settings.enable_bootstrap_timeline_accounts.title') + .fields-group + = f.input :bootstrap_timeline_accounts, wrapper: :with_block_label, label: t('admin.settings.bootstrap_timeline_accounts.title'), hint: t('admin.settings.bootstrap_timeline_accounts.desc_html'), disabled: !Setting.enable_bootstrap_timeline_accounts %hr.spacer/ diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml index fc690409c..9fceb54eb 100644 --- a/app/views/layouts/admin.html.haml +++ b/app/views/layouts/admin.html.haml @@ -18,7 +18,12 @@ .content-wrapper .content - %h2= yield :page_title + .content-heading + %h2= yield :page_title + + - if :page_heading_actions + .content-heading-actions + = yield :page_heading_actions = render 'application/flashes' diff --git a/app/views/settings/applications/_fields.html.haml b/app/views/settings/applications/_fields.html.haml index 6a2863b20..ffd2491d2 100644 --- a/app/views/settings/applications/_fields.html.haml +++ b/app/views/settings/applications/_fields.html.haml @@ -7,7 +7,7 @@ .fields-group = f.input :redirect_uri, wrapper: :with_block_label, label: t('activerecord.attributes.doorkeeper/application.redirect_uri'), hint: t('doorkeeper.applications.help.redirect_uri') - %p.hint= t('doorkeeper.applications.help.native_redirect_uri', native_redirect_uri: Doorkeeper.configuration.native_redirect_uri) + %p.hint= t('doorkeeper.applications.help.native_redirect_uri', native_redirect_uri: content_tag(:code, Doorkeeper.configuration.native_redirect_uri)).html_safe .field-group .input.with_block_label diff --git a/app/views/settings/exports/show.html.haml b/app/views/settings/exports/show.html.haml index 76ff76bd9..0bb80e937 100644 --- a/app/views/settings/exports/show.html.haml +++ b/app/views/settings/exports/show.html.haml @@ -9,11 +9,11 @@ %td= number_to_human_size @export.total_storage %td %tr - %th= t('accounts.posts', count: @export.total_statuses) + %th= t('accounts.posts_tab_heading') %td= number_with_delimiter @export.total_statuses %td %tr - %th= t('exports.follows') + %th= t('admin.accounts.follows') %td= number_with_delimiter @export.total_follows %td= table_link_to 'download', t('exports.csv'), settings_exports_follows_path(format: :csv) %tr @@ -21,7 +21,7 @@ %td= number_with_delimiter @export.total_lists %td= table_link_to 'download', t('exports.csv'), settings_exports_lists_path(format: :csv) %tr - %th= t('accounts.followers', count: @export.total_followers) + %th= t('admin.accounts.followers') %td= number_with_delimiter @export.total_followers %td %tr diff --git a/boxfile.yml b/boxfile.yml index 1bc3929c8..c4fd19ce6 100644 --- a/boxfile.yml +++ b/boxfile.yml @@ -60,16 +60,15 @@ deploy.config: - touch /app/log/production.log before_live: web.web: + - bin/tootctl cache clear - bundle exec rake db:migrate:setup + after_live: + worker.sidekiq: - |- if [[ "${ES_ENABLED}" != "false" ]] then bin/tootctl search deploy fi - - bin/tootctl cache clear - after_live: - worker.sidekiq: - - bin/tootctl search deploy web.web: diff --git a/config/initializers/paperclip.rb b/config/initializers/paperclip.rb index 96607b7ce..5109baff7 100644 --- a/config/initializers/paperclip.rb +++ b/config/initializers/paperclip.rb @@ -52,7 +52,7 @@ if ENV['S3_ENABLED'] == 'true' if ENV.has_key?('S3_ENDPOINT') Paperclip::Attachment.default_options[:s3_options].merge!( endpoint: ENV['S3_ENDPOINT'], - force_path_style: true + force_path_style: ENV['S3_OVERRIDE_PATH_STYLE'] != 'true', ) Paperclip::Attachment.default_options[:url] = ':s3_path_url' @@ -89,7 +89,7 @@ else Paperclip::Attachment.default_options.merge!( storage: :filesystem, use_timestamp: true, - path: ENV.fetch('PAPERCLIP_ROOT_PATH', ':rails_root/public/system') + '/:class/:attachment/:id_partition/:style/:filename', + path: File.join(ENV.fetch('PAPERCLIP_ROOT_PATH', File.join(':rails_root', 'public', 'system')), ':class', ':attachment', ':id_partition', ':style', ':filename'), url: ENV.fetch('PAPERCLIP_ROOT_URL', '/system') + '/:class/:attachment/:id_partition/:style/:filename', ) end diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 13f509836..835e96769 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -124,9 +124,7 @@ ar: email_status: حالة البريد الإلكتروني enable: تفعيل enabled: مفعَّل - feed_url: عنوان رابط التغذية followers: المتابِعون - followers_url: عنوان رابط المتابِعين follows: يتابع header: الرأسية inbox_url: رابط صندوق الوارد @@ -154,10 +152,8 @@ ar: no_account_selected: لم يطرأ أي تغيير على أي حساب بما أنه لم يتم اختيار أي واحد no_limits_imposed: مِن دون حدود مشروطة not_subscribed: غير مشترك - outbox_url: رابط صندوق الصادر pending: في انتظار المراجعة perform_full_suspension: تعليق الحساب - profile_url: رابط الصفحة التعريفية promote: ترقية protocol: البروتوكول public: عمومي @@ -180,7 +176,6 @@ ar: moderator: مشرف staff: الفريق user: مستخدِم - salmon_url: عنوان رابط سالمون Salmon search: البحث shared_inbox_url: رابط الصندوق المُشترَك للبريد الوارد show: @@ -399,9 +394,6 @@ ar: created_msg: تم إنشاء ملاحظة الشكوى بنجاح! destroyed_msg: تم حذف ملاحظة الشكوى بنجاح! reports: - account: - note: ملحوظة - report: تقرير action_taken_by: تم اتخاذ الإجراء مِن طرف are_you_sure: هل أنت متأكد ؟ assign_to_self: عين لي diff --git a/config/locales/bn.yml b/config/locales/bn.yml index 24f0a654a..7dd49ff96 100644 --- a/config/locales/bn.yml +++ b/config/locales/bn.yml @@ -118,9 +118,7 @@ bn: email_status: ইমেইলের অবস্থা enable: চালু করুন enabled: চালু করুন - feed_url: সম্মিলিত(feed) লিংক followers: অনুসরকারীরা - followers_url: অনুসরণকারীদের লিংক follows: অনুসরণ করে header: শিরোলেখা inbox_url: চিঠি পাওয়ার বক্স লিংক @@ -148,10 +146,8 @@ bn: no_account_selected: কোনও অ্যাকাউন্টই নির্বাচন করা হয়নি বলে কোনও অ্যাকাউন্ট পরিবর্তন করা হয়নি no_limits_imposed: কোন সীমা আরোপ করা নেই not_subscribed: সাবস্ক্রাইব নেই - outbox_url: চিঠি পাঠানোর বাক্স লিংক pending: পয্র্যবেক্ষণের অপেক্ষায় আছে perform_full_suspension: বাতিল করা - profile_url: প্রোফাইল URL promote: প্রচার protocol: প্রোটোকল public: সর্বজনীন @@ -174,7 +170,6 @@ bn: moderator: নিয়ামক staff: কর্মী user: ব্যবহারকারী - salmon_url: সালমন URL search: অনুসন্ধান search_same_ip: একই IP সহ অন্যান্য ব্যবহারকারীরা shared_inbox_url: ভাগ করা ইনবক্স URL diff --git a/config/locales/ca.yml b/config/locales/ca.yml index b8436efd2..c3cfe3083 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -118,9 +118,7 @@ ca: email_status: Estat del correu electrònic enable: Habilita enabled: Habilitat - feed_url: URL del canal followers: Seguidors - followers_url: URL dels seguidors follows: Segueix header: Capçalera inbox_url: URL de la safata d'entrada @@ -148,10 +146,8 @@ ca: no_account_selected: No s'han canviat els comptes perque no s'han seleccionat no_limits_imposed: Sense límits imposats not_subscribed: No subscrit - outbox_url: URL de la bústia de sortida pending: Revisió pendent perform_full_suspension: Suspèn - profile_url: URL del perfil promote: Promociona protocol: Protocol public: Públic @@ -174,7 +170,6 @@ ca: moderator: Moderador staff: Personal user: Usuari - salmon_url: URL Salmon search: Cerca search_same_ip: Altres usuaris amb la mateixa IP shared_inbox_url: URL de la safata d'entrada compartida @@ -398,9 +393,6 @@ ca: created_msg: La nota del informe s'ha creat correctament! destroyed_msg: La nota del informe s'ha esborrat correctament! reports: - account: - note: nota - report: informe action_taken_by: Mesures adoptades per are_you_sure: N'estàs segur? assign_to_self: Assignar-me diff --git a/config/locales/co.yml b/config/locales/co.yml index f14f4e9ea..9653363ca 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -118,9 +118,7 @@ co: email_status: Statutu di l’e-mail enable: Attivà enabled: Attivatu - feed_url: URL di u flussu followers: Abbunati - followers_url: URL di l’abbunati follows: Abbunamenti header: Intistatura inbox_url: URL di l’inbox @@ -148,10 +146,8 @@ co: no_account_selected: Nisun contu hè statu cambiatu postu ch'ùn c'eranu micca selezziunati no_limits_imposed: Nisuna limita imposta not_subscribed: Micca abbunatu - outbox_url: URL di l’outbox pending: In attesa di rivista perform_full_suspension: Suspende - profile_url: URL di u prufile promote: Prumove protocol: Prutucollu public: Pubblicu @@ -174,7 +170,6 @@ co: moderator: Muderatore staff: Squadra user: Utilizatore - salmon_url: URL di Salmon search: Cercà search_same_ip: Altri utilizatori cù listessa IP shared_inbox_url: URL di l’inbox spartuta @@ -398,9 +393,6 @@ co: created_msg: Nota di signalamentu creata! destroyed_msg: Nota di signalamentu sguassata! reports: - account: - note: nota - report: palisà action_taken_by: Intervenzione di are_you_sure: Site sicuru·a? assign_to_self: Assignallu à mè diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 478169d70..81ae22680 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -126,9 +126,7 @@ cs: email_status: Stav e-mailu enable: Povolit enabled: Povoleno - feed_url: URL proudu followers: Sledující - followers_url: URL sledujících follows: Sledovaní header: Záhlaví inbox_url: URL příchozí schránky @@ -156,10 +154,8 @@ cs: no_account_selected: Nebyl změněn žádný účet, neboť žádný nebyl zvolen no_limits_imposed: Nejsou nastavena žádná omezení not_subscribed: Neodebírá - outbox_url: URL odchozí schránky pending: Čeká na posouzení perform_full_suspension: Pozastavit - profile_url: URL profilu promote: Povýšit protocol: Protokol public: Veřejný @@ -182,7 +178,6 @@ cs: moderator: Moderátor staff: Člen personálu user: Uživatel - salmon_url: URL Salmon search: Hledat search_same_ip: Další uživatelé se stejnou IP adresou shared_inbox_url: URL sdílené příchozí schránky @@ -410,9 +405,6 @@ cs: created_msg: Poznámka o nahlášení úspěšně vytvořena! destroyed_msg: Poznámka o nahlášení úspěšně smazána! reports: - account: - note: poznámka - report: nahlášení action_taken_by: Akci vykonal/a are_you_sure: Jste si jistý/á? assign_to_self: Přidělit ke mně diff --git a/config/locales/cy.yml b/config/locales/cy.yml index aa0974a1a..fde22cc33 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -133,9 +133,7 @@ cy: email_status: Statws E-bost enable: Galluogi enabled: Wedi ei alluogi - feed_url: Ffrwd URL followers: Dilynwyr - followers_url: URL Dilynwyr follows: Yn dilyn header: Pennawd inbox_url: URL Mewnflwch @@ -163,10 +161,8 @@ cy: no_account_selected: Ni newidwyd dim cyfrif achos ni ddewiswyd dim un no_limits_imposed: Dim terfynau wedi'i gosod not_subscribed: Heb danysgrifio - outbox_url: Allflwch URL pending: Yn aros am adolygiad perform_full_suspension: Atal - profile_url: URL proffil promote: Hyrwyddo protocol: Protocol public: Cyhoeddus @@ -189,7 +185,6 @@ cy: moderator: Aroglygydd staff: Staff user: Defnyddiwr - salmon_url: URL Eog search: Chwilio search_same_ip: Defnyddwyr eraill gyda'r un IP shared_inbox_url: URL Mewnflwch wedi ei rannu @@ -419,9 +414,6 @@ cy: created_msg: Llwyddwyd i greu nodyn adroddiad! destroyed_msg: Llwyddwyd i ddileu nodyn adroddiad! reports: - account: - note: nodyn - report: adroddiad action_taken_by: Gwnaethpwyd hyn gan are_you_sure: Ydych chi'n sicr? assign_to_self: Aseinio i mi diff --git a/config/locales/da.yml b/config/locales/da.yml index 982c712a8..57f4ed879 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -96,9 +96,7 @@ da: edit: Rediger enable: Aktiver enabled: Aktiveret - feed_url: Link til feed followers: Følgere - followers_url: Link til følgere follows: Følger inbox_url: Link til indbakke invited_by: Inviteret af @@ -123,9 +121,7 @@ da: most_recent_activity: Seneste aktivitet most_recent_ip: Senest IP not_subscribed: Ikke abonneret - outbox_url: Link til udgående perform_full_suspension: Udeluk - profile_url: Link til profil promote: Forfrem protocol: Protokol public: Offentligt @@ -147,7 +143,6 @@ da: moderator: Mod staff: Personale user: Bruger - salmon_url: Salmon-URL search: Søg search_same_ip: Andre brugere med den samme IP-adresse shared_inbox_url: Link til delt indbakke @@ -333,9 +328,6 @@ da: created_msg: Anmeldelse note blev oprettet! destroyed_msg: Anmeldelse note blev slettet! reports: - account: - note: notat - report: anmeld action_taken_by: Handling udført af are_you_sure: Er du sikker? assign_to_self: Tildel til mig diff --git a/config/locales/de.yml b/config/locales/de.yml index 490ee947e..445205871 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -118,9 +118,7 @@ de: email_status: E-Mail-Status enable: Freischalten enabled: Freigegeben - feed_url: Feed-URL followers: Folgende - followers_url: URL des Folgenden follows: Folgt header: Titelbild inbox_url: Posteingangs-URL @@ -148,10 +146,8 @@ de: no_account_selected: Keine Konten wurden geändert, da keine ausgewählt wurden no_limits_imposed: Keine Beschränkungen not_subscribed: Nicht abonniert - outbox_url: Postausgangs-URL pending: In Warteschlange perform_full_suspension: Verbannen - profile_url: Profil-URL promote: Befördern protocol: Protokoll public: Öffentlich @@ -174,7 +170,6 @@ de: moderator: Moderator_in staff: Mitarbeiter user: Nutzer - salmon_url: Salmon-URL search: Suche search_same_ip: Andere Benutzer mit derselben IP shared_inbox_url: Geteilte Posteingang-URL @@ -396,9 +391,6 @@ de: created_msg: Meldungs-Kommentar erfolgreich erstellt! destroyed_msg: Meldungs-Kommentar erfolgreich gelöscht! reports: - account: - note: Notiz - report: Meldung action_taken_by: Maßnahme ergriffen durch are_you_sure: Bist du dir sicher? assign_to_self: Mir zuweisen diff --git a/config/locales/el.yml b/config/locales/el.yml index 9f4a8969d..585eefab4 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -118,9 +118,7 @@ el: email_status: Κατάσταση email enable: Ενεργοποίηση enabled: Ενεργοποιημένο - feed_url: URL ροής followers: Ακόλουθοι - followers_url: URL ακολούθων follows: Ακολουθεί header: Επικεφαλίδα inbox_url: URL εισερχομένων @@ -148,10 +146,8 @@ el: no_account_selected: Κανείς λογαριασμός δεν ενημερώθηκε αφού κανείς δεν ήταν επιλεγμένος no_limits_imposed: Χωρίς όρια not_subscribed: Άνευ συνδρομής - outbox_url: URL εξερχομένων pending: Εκκρεμεί έγκριση perform_full_suspension: Αναστολή - profile_url: URL προφίλ promote: Προβίβασε protocol: Πρωτόκολλο public: Δημόσιο @@ -174,7 +170,6 @@ el: moderator: Συντονιστής staff: Προσωπικό user: Χρήστης - salmon_url: URL Salmon search: Αναζήτηση search_same_ip: Υπόλοιποι χρήστες με την ίδια διεύθυνση IP shared_inbox_url: URL κοινόχρηστων εισερχομένων @@ -398,9 +393,6 @@ el: created_msg: Επιτυχής δημιουργία σημείωσης καταγγελίας! destroyed_msg: Επιτυχής διαγραφή σημείωσης καταγγελίας! reports: - account: - note: σημείωση - report: καταγγελία action_taken_by: Ενέργεια από τον/την are_you_sure: Σίγουρα; assign_to_self: Ανάθεση σε μένα diff --git a/config/locales/en.yml b/config/locales/en.yml index c505896e7..43c24fc4e 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -119,9 +119,7 @@ en: email_status: Email status enable: Enable enabled: Enabled - feed_url: Feed URL followers: Followers - followers_url: Followers URL follows: Follows header: Header inbox_url: Inbox URL @@ -149,10 +147,8 @@ en: no_account_selected: No accounts were changed as none were selected no_limits_imposed: No limits imposed not_subscribed: Not subscribed - outbox_url: Outbox URL pending: Pending review perform_full_suspension: Suspend - profile_url: Profile URL promote: Promote protocol: Protocol public: Public @@ -175,7 +171,6 @@ en: moderator: Moderator staff: Staff user: User - salmon_url: Salmon URL search: Search search_same_ip: Other users with the same IP shared_inbox_url: Shared inbox URL @@ -401,8 +396,12 @@ en: destroyed_msg: Report note successfully deleted! reports: account: - note: note - report: report + notes: + one: "%{count} note" + other: "%{count} notes" + reports: + one: "%{count} report" + other: "%{count} reports" action_taken_by: Action taken by are_you_sure: Are you sure? assign_to_self: Assign to me @@ -453,6 +452,8 @@ en: users: To logged-in local users domain_blocks_rationale: title: Show rationale + enable_bootstrap_timeline_accounts: + title: Enable default follows for new users enable_keybase: desc_html: Allow your users to prove their identity via keybase title: Enable keybase integration @@ -731,7 +732,6 @@ en: blocks: You block csv: CSV domain_blocks: Domain blocks - follows: You follow lists: Lists mutes: You mute storage: Media storage diff --git a/config/locales/en_GB.yml b/config/locales/en_GB.yml index 33ba16210..939dfe0c1 100644 --- a/config/locales/en_GB.yml +++ b/config/locales/en_GB.yml @@ -105,9 +105,7 @@ en_GB: email_status: Email status enable: Enable enabled: Enabled - feed_url: Feed URL followers: Followers - followers_url: Followers URL follows: Follows header: Header inbox_url: Inbox URL @@ -134,10 +132,8 @@ en_GB: most_recent_ip: Most recent IP no_limits_imposed: No limits imposed not_subscribed: Not subscribed - outbox_url: Outbox URL pending: Pending review perform_full_suspension: Suspend - profile_url: Profile URL promote: Promote protocol: Protocol public: Public @@ -159,7 +155,6 @@ en_GB: moderator: Moderator staff: Staff user: User - salmon_url: Salmon URL search: Search shared_inbox_url: Shared inbox URL show: @@ -348,9 +343,6 @@ en_GB: created_msg: Report note successfully created! destroyed_msg: Report note successfully deleted! reports: - account: - note: note - report: report action_taken_by: Action taken by are_you_sure: Are you sure? assign_to_self: Assign to me diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 347873214..78ea19af5 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -111,9 +111,7 @@ eo: email_status: Retadreso Stato enable: Ebligi enabled: Ebligita - feed_url: URL de la fluo followers: Sekvantoj - followers_url: URL de la sekvantoj follows: Sekvatoj header: Kapa bildo inbox_url: Enira URL @@ -141,10 +139,8 @@ eo: no_account_selected: Neniu konto estis ŝanĝita ĉar neniu estis selektita no_limits_imposed: Neniu limito trudita not_subscribed: Ne abonita - outbox_url: Elira URL pending: Pritraktata recenzo perform_full_suspension: Haltigi - profile_url: Profila URL promote: Plirangigi protocol: Protokolo public: Publika @@ -167,7 +163,6 @@ eo: moderator: Kontrolanto staff: Teamo user: Uzanto - salmon_url: Salmon-URL search: Serĉi shared_inbox_url: URL de kunhavigita leterkesto show: @@ -380,9 +375,6 @@ eo: created_msg: Signala noto sukcese kreita! destroyed_msg: Signala noto sukcese forigita! reports: - account: - note: noto - report: signalo action_taken_by: Ago farita de are_you_sure: Ĉu vi certas? assign_to_self: Asigni al mi diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index 0af0c04bd..c52615139 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -118,9 +118,7 @@ es-AR: email_status: Estado del correo enable: Habilitar enabled: Habilitada - feed_url: Dirección de la fuente web followers: Seguidores - followers_url: Dirección web de los seguidores follows: Seguidores header: Cabecera inbox_url: Dirección web de la bandeja de entrada @@ -148,10 +146,8 @@ es-AR: no_account_selected: No se cambió ninguna cuenta ya que ninguna fue seleccionada no_limits_imposed: Sin límites impuestos not_subscribed: No suscripto - outbox_url: Dirección web de la bandeja de salida pending: Revisión pendiente perform_full_suspension: Suspender - profile_url: Dirección web del perfil promote: Promocionar protocol: Protocolo public: Pública @@ -395,9 +391,6 @@ es-AR: created_msg: "¡La nota de denuncia fue creada exitosamente!" destroyed_msg: "¡La nota de denuncia fue eliminada exitosamente!" reports: - account: - note: nota - report: denuncia action_taken_by: Acción tomada por are_you_sure: "¿Estás seguro?" assign_to_self: Asignármela a mí diff --git a/config/locales/es.yml b/config/locales/es.yml index 920a0ccdf..1826331b3 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -118,9 +118,7 @@ es: email_status: E-mail Status enable: Habilitar enabled: Habilitada - feed_url: URL de notificaciones followers: Seguidores - followers_url: URL de los seguidores follows: Sigue header: Cabecera inbox_url: URL de la bandeja de entrada @@ -148,10 +146,8 @@ es: no_account_selected: Ninguna cuenta se cambió como ninguna fue seleccionada no_limits_imposed: Sin límites impuestos not_subscribed: No se está suscrito - outbox_url: URL de bandeja de salida pending: Revisión pendiente perform_full_suspension: Suspender - profile_url: URL del perfil promote: Promocionar protocol: Protocolo public: Público @@ -174,7 +170,6 @@ es: moderator: Moderador staff: Personal user: Usuario - salmon_url: URL de salmón search: Buscar search_same_ip: Otros usuarios con la misma IP shared_inbox_url: URL de bandeja compartida @@ -398,9 +393,6 @@ es: created_msg: "¡El registro de la denuncia se ha creado correctamente!" destroyed_msg: "¡El registro de la denuncia se ha borrado correctamente!" reports: - account: - note: nota - report: denuncia action_taken_by: Acción tomada por are_you_sure: "¿Estás seguro?" assign_to_self: Asignármela a mí diff --git a/config/locales/et.yml b/config/locales/et.yml index aa58138f7..36a2931af 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -118,9 +118,7 @@ et: email_status: E-posti staatus enable: Luba enabled: Lubatud - feed_url: Voogu URL followers: Jälgijad - followers_url: Jälgijate URL follows: Jälgib header: Päis inbox_url: Sisendkausta URL @@ -148,10 +146,8 @@ et: no_account_selected: Mitte ühtegi kontot muudeti sest midagi polnud valitud no_limits_imposed: Mitte ühtegi limiiti kehtestatud not_subscribed: Ei ole tellitud - outbox_url: Väljundkausta URL pending: Ootab ülevaatamist perform_full_suspension: Peata - profile_url: Profiili URL promote: Edenda protocol: Protokoll public: Avalik @@ -174,7 +170,6 @@ et: moderator: Moderaator staff: Personal user: Kasutaja - salmon_url: Salmoni URL search: Otsi search_same_ip: Teised kasutajad, kellel on sama IP shared_inbox_url: Jagatud sisendkausta URL @@ -401,9 +396,6 @@ et: created_msg: Teade edukalt koostatud! destroyed_msg: Teade edukalt kustutatud! reports: - account: - note: märkus - report: teavita action_taken_by: Meetmeid kasutanud are_you_sure: Olete kindel? assign_to_self: Määra mulle diff --git a/config/locales/eu.yml b/config/locales/eu.yml index ab8a68746..9dfe5e9d3 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -118,9 +118,7 @@ eu: email_status: Posta elektronikoaren egoera enable: Gaitu enabled: Gaituta - feed_url: Jarioaren URL-a followers: Jarraitzaileak - followers_url: Jarraitzaileen URL-a follows: Jarraitzen du header: Goiburua inbox_url: Sarrera ontziaren URL-a @@ -148,10 +146,8 @@ eu: no_account_selected: Ez da konturik aldatu ez delako bata bera hautatu no_limits_imposed: Ez da mugarik ezarri not_subscribed: Harpidetu gabe - outbox_url: Irteera ontziaren URL-a pending: Berrikusketa egiteke perform_full_suspension: Kanporatu - profile_url: Profilaren URL-a promote: Sustatu protocol: Protokoloa public: Publikoa @@ -174,7 +170,6 @@ eu: moderator: Moderatzailea staff: Langilea user: Erabiltzailea - salmon_url: Salmon URL-a search: Bilatu search_same_ip: IP bera duten beste erabiltzaileak shared_inbox_url: Partekatutako sarrera ontziaren URL-a @@ -398,9 +393,6 @@ eu: created_msg: Salaketa oharra ongi sortu da! destroyed_msg: Salaketa oharra ongi ezabatu da! reports: - account: - note: oharra - report: salaketa action_taken_by: Neurrien hartzailea are_you_sure: Ziur zaude? assign_to_self: Esleitu niri diff --git a/config/locales/fa.yml b/config/locales/fa.yml index ea901423d..02a990a40 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -118,9 +118,7 @@ fa: email_status: وضعیت ایمیل enable: فعال enabled: فعال - feed_url: نشانی فید followers: پیگیران - followers_url: نشانی پیگیران follows: پی میگیرد header: زمینه inbox_url: نشانی صندوق ورودی @@ -148,10 +146,8 @@ fa: no_account_selected: هیچ حسابی تغییر نکرد زیرا حسابی انتخاب نشده بود no_limits_imposed: بدون محدودیت not_subscribed: عضو نیست - outbox_url: نشانی صندوق خروجی pending: در انتظار بررسی perform_full_suspension: تعلیق - profile_url: نشانی نمایه promote: ترفیعدادن protocol: پروتکل public: عمومی @@ -174,7 +170,6 @@ fa: moderator: ناظم staff: کارمند user: کاربر - salmon_url: نشانی Salmon search: جستجو search_same_ip: دیگر کاربران با همان IP shared_inbox_url: نشانی صندوق ورودی مشترک @@ -396,9 +391,6 @@ fa: created_msg: یادداشت گزارش با موفقیت ساخته شد! destroyed_msg: یادداشت گزارش با موفقیت حذف شد! reports: - account: - note: یادداشت - report: گزارش action_taken_by: انجامدهنده are_you_sure: آیا مطمئن هستید؟ assign_to_self: به عهدهٔ من بگذار diff --git a/config/locales/fi.yml b/config/locales/fi.yml index dfe71c098..3ab1a590e 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -96,9 +96,7 @@ fi: email_status: Sähköpostin tila enable: Ota käyttöön enabled: Käytössä - feed_url: Syötteen osoite followers: Seuraajat - followers_url: Seuraajien osoite follows: Seuraa inbox_url: Saapuvan postilaatikon osoite ip: IP @@ -122,9 +120,7 @@ fi: most_recent_activity: Viimeisin toiminta most_recent_ip: Viimeisin IP not_subscribed: Ei tilaaja - outbox_url: Lähtevän postilaatikon osoite perform_full_suspension: Siirrä kokonaan jäähylle - profile_url: Profiilin osoite promote: Ylennä protocol: Protokolla public: Julkinen @@ -146,7 +142,6 @@ fi: moderator: Moderaattori staff: Henkilöstö user: Käyttäjä - salmon_url: Salmon-URL search: Hae shared_inbox_url: Jaetun saapuvan postilaatikon osoite show: @@ -270,9 +265,6 @@ fi: created_msg: Muistiinpano onnistuneesti lisätty raporttiin! destroyed_msg: Muistiinpano onnistuneesti poistettu raportista! reports: - account: - note: muistiinpano - report: raportti action_taken_by: Toimenpiteen tekijä are_you_sure: Oletko varma? assign_to_self: Ota tehtäväksi diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 52dd032dd..06b2916fe 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -118,9 +118,7 @@ fr: email_status: État du courriel enable: Activer enabled: Activé - feed_url: URL du flux followers: Abonné⋅e⋅s - followers_url: URL des abonné·e·s follows: Abonnements header: Entête inbox_url: URL d’entrée @@ -148,10 +146,8 @@ fr: no_account_selected: Aucun compte n’a été modifié, car aucun n’a été sélectionné no_limits_imposed: Aucune limite imposée not_subscribed: Non abonné - outbox_url: URL de sortie pending: En attente d’approbation perform_full_suspension: Suspendre - profile_url: URL du profil promote: Promouvoir protocol: Protocole public: Publique @@ -174,7 +170,6 @@ fr: moderator: Modérateur staff: Équipe user: Utilisateur - salmon_url: URL Salmon search: Rechercher search_same_ip: Autres utilisateur·rice·s avec la même IP shared_inbox_url: URL de la boite de réception partagée @@ -398,9 +393,6 @@ fr: created_msg: Note de signalement créée avec succès ! destroyed_msg: Note de signalement effacée avec succès ! reports: - account: - note: note - report: signalement(s) action_taken_by: Intervention de are_you_sure: Êtes vous certain⋅e ? assign_to_self: Me l’assigner diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 64f479ec7..057b21566 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -118,9 +118,7 @@ gl: email_status: Estado do correo enable: Habilitar enabled: Habilitado - feed_url: URL fonte followers: Seguidoras - followers_url: URL das seguidoras follows: Segue header: Cabeceira inbox_url: URL da Caixa de entrada @@ -148,10 +146,8 @@ gl: no_account_selected: Non cambiou nada xa que non tiña nada seleccionado no_limits_imposed: Sen límites impostos not_subscribed: Non suscrita - outbox_url: URL caixa de saída pending: Pendente revisión perform_full_suspension: Suspender - profile_url: URL do perfil promote: Promocionar protocol: Protocolo public: Público @@ -174,7 +170,6 @@ gl: moderator: Moderador staff: Membresía user: Usuaria - salmon_url: URL Salmon search: Busca search_same_ip: Outros usuarios co mesmo IP shared_inbox_url: URL da caixa de entrada compartida @@ -396,9 +391,6 @@ gl: created_msg: Creouse correctamente a nota do informe! destroyed_msg: Nota do informe eliminouse con éxito! reports: - account: - note: nota - report: informe action_taken_by: Acción tomada por are_you_sure: Está segura? assign_to_self: Asignarmo diff --git a/config/locales/he.yml b/config/locales/he.yml index 50db571dc..89e8a6e4f 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -52,9 +52,7 @@ he: email_status: סטטוס דוא"ל enable: לאפשר enabled: מאופשר - feed_url: כתובת פיד followers: עוקבים - followers_url: כתובת עוקבים follows: נעקבים inbox_url: כתובת תיבה נכנסת ip: כתובת IP @@ -75,9 +73,7 @@ he: most_recent_activity: פעילות עדכנית most_recent_ip: כתובות אחרונות not_subscribed: לא רשום - outbox_url: כתובת תיבת דואר יוצא perform_full_suspension: ביצוע השעייה מלאה - profile_url: כתובת פרופיל promote: להעלות בדרגה protocol: פרטיכל public: פומבי @@ -95,7 +91,6 @@ he: admin: מנהל מערכת moderator: מנחה דיונים user: משתמש(ת) - salmon_url: כתובת סלמון search: חיפוש shared_inbox_url: תיבה משותפת לדואר נכנס show: diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 7f519c820..b4f8a970a 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -120,9 +120,7 @@ hu: email_status: E-mail állapot enable: Bekapcsolás enabled: Bekapcsolva - feed_url: Hírcsatorna URL followers: Követő - followers_url: Követő URL follows: Követett header: Fejléc inbox_url: Beérkezett üzenetek URL @@ -150,10 +148,8 @@ hu: no_account_selected: Nem változott meg egy fiók sem, mert semmi sem volt kiválasztva no_limits_imposed: Nincs korlátozás not_subscribed: Nincs feliratkozás - outbox_url: Kimenő üzenetek URL pending: Engedélyezés alatt perform_full_suspension: Felfüggesztés - profile_url: Profil URL promote: Előléptetés protocol: Protokoll public: Nyilvános @@ -176,7 +172,6 @@ hu: moderator: Moderátor staff: Stáb user: Felhasználó - salmon_url: Salmon URL search: Keresés search_same_ip: Más felhasználók ugyanezzel az IP-vel shared_inbox_url: Megosztott bejövő üzenetek URL @@ -400,9 +395,6 @@ hu: created_msg: Bejelentési feljegyzés létrehozva! destroyed_msg: Bejelentési feljegyzés törölve! reports: - account: - note: feljegyzés - report: bejelentés action_taken_by: 'Kezelte:' are_you_sure: Biztos vagy benne? assign_to_self: Magamhoz rendelés diff --git a/config/locales/id.yml b/config/locales/id.yml index 97e87460a..982e4289a 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -114,9 +114,7 @@ id: email_status: Status Email enable: Aktifkan enabled: Diaktifkan - feed_url: URL Feed followers: Pengikut - followers_url: URL pengikut follows: Mengikut header: Tajuk inbox_url: URL Kotak masuk @@ -144,10 +142,8 @@ id: no_account_selected: Tak ada akun yang diubah sebab tak ada yang dipilih no_limits_imposed: Tidak ada batasan not_subscribed: Tidak berlangganan - outbox_url: URL Kotak keluar pending: Tinjauan tertunda perform_full_suspension: Lakukan suspen penuh - profile_url: URL profil promote: Promosikan protocol: Protokol public: Publik @@ -170,7 +166,6 @@ id: moderator: Moderator staff: Staf user: Pengguna - salmon_url: URL Salmon search: Cari search_same_ip: Pengguna lain dengan IP yang sama shared_inbox_url: URL kotak masuk bersama @@ -391,9 +386,6 @@ id: created_msg: Catatan laporan berhasil dibuat! destroyed_msg: Catatan laporan berhasil dihapus! reports: - account: - note: catatan - report: lapor action_taken_by: Aksi dilakukan oleh are_you_sure: Apakah Anda yakin? assign_to_self: Tugaskan kpd saya diff --git a/config/locales/it.yml b/config/locales/it.yml index 3b5743f4d..aadf0f3d6 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -118,9 +118,7 @@ it: email_status: Stato email enable: Abilita enabled: Abilitato - feed_url: URL Feed followers: Follower - followers_url: URL follower follows: Segue header: Intestazione inbox_url: URL inbox @@ -148,10 +146,8 @@ it: no_account_selected: Nessun account è stato modificato visto che non ne è stato selezionato nessuno no_limits_imposed: Nessun limite imposto not_subscribed: Non sottoscritto - outbox_url: URL outbox pending: Revisioni in attesa perform_full_suspension: Sospendi - profile_url: URL profilo promote: Promuovi protocol: Protocollo public: Pubblico @@ -174,7 +170,6 @@ it: moderator: Moderatore staff: Personale user: Utente - salmon_url: URL Salmone search: Cerca search_same_ip: Altri utenti con lo stesso IP shared_inbox_url: URL Inbox Condiviso @@ -394,9 +389,6 @@ it: created_msg: Nota rapporto creata! destroyed_msg: Nota rapporto cancellata! reports: - account: - note: note - report: rapporto action_taken_by: Azione intrapresa da are_you_sure: Sei sicuro? assign_to_self: Assegna a me diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 8bf225bee..1f71a6e28 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -114,9 +114,7 @@ ja: email_status: メールアドレスの状態 enable: 有効化 enabled: 有効 - feed_url: フィードURL followers: フォロワー数 - followers_url: Followers URL follows: フォロー数 header: ヘッダー inbox_url: Inbox URL @@ -144,10 +142,8 @@ ja: no_account_selected: 何も選択されていないため、変更されていません no_limits_imposed: 制限なし not_subscribed: 購読していない - outbox_url: Outbox URL pending: 承認待ち perform_full_suspension: 活動を完全に停止させる - profile_url: プロフィールURL promote: 昇格 protocol: プロトコル public: パブリック @@ -170,7 +166,6 @@ ja: moderator: モデレーター staff: スタッフ user: ユーザー - salmon_url: Salmon URL search: 検索 search_same_ip: 同じ IP のユーザーを検索 shared_inbox_url: Shared inbox URL @@ -392,9 +387,6 @@ ja: created_msg: 通報メモを書き込みました! destroyed_msg: 通報メモを削除しました! reports: - account: - note: メモ - report: 通報 action_taken_by: 通報処理者 are_you_sure: 本当に実行しますか? assign_to_self: 担当になる diff --git a/config/locales/ka.yml b/config/locales/ka.yml index 0ab1f2d69..125912892 100644 --- a/config/locales/ka.yml +++ b/config/locales/ka.yml @@ -70,9 +70,7 @@ ka: email_status: ელ-ფოსტის სტატუსი enable: ჩართვა enabled: ჩართულია - feed_url: ლენტის ურლ followers: მიმდევრები - followers_url: მიმდევრების ურლ follows: დადევნებები inbox_url: ინბოქსის ურლ ip: აი-პი @@ -93,9 +91,7 @@ ka: most_recent_activity: უახლესი აქტივობა most_recent_ip: უახლესი აი-პი not_subscribed: გამოუწერელი - outbox_url: აუთბოქსის ურლ perform_full_suspension: მოახდინეთ სრული შეჩერება - profile_url: პროფილის ურლ promote: დაწინაურება protocol: პროტოკოლი public: საჯარო @@ -115,7 +111,6 @@ ka: moderator: მოდერატორი staff: სტაფი user: მომხმარებელი - salmon_url: სალმონის ურლ search: ძებნა shared_inbox_url: გაზიარებული ინბოქსის ურლ show: @@ -267,9 +262,6 @@ ka: created_msg: რეპორტის ჩანაწერი წარმატებით შეიქმნა! destroyed_msg: რეპორტის ჩანაწერი წარმატებით გაუქმდა! reports: - account: - note: ჩანაწერი - report: რეპორტი action_taken_by: მოქმედება შეასრულა are_you_sure: დარწმუნებული ხარ? assign_to_self: დანიშნე ჩემზე diff --git a/config/locales/kk.yml b/config/locales/kk.yml index 2b3f24e02..df2a29dab 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -118,9 +118,7 @@ kk: email_status: Email статусы enable: Қосу enabled: Қосылды - feed_url: Feеd URL followers: Оқырмандар - followers_url: Оқырмандар URL follows: Жазылғандары header: Басы inbox_url: Келген хаттар URL @@ -148,10 +146,8 @@ kk: no_account_selected: Бірде-бір аккаунт өзгерген жоқ, себебі ештеңе таңдалмады no_limits_imposed: Шектеу жоқ not_subscribed: Жазылмаған - outbox_url: Кеткен хаттар URL pending: Күтудегілерді қарау perform_full_suspension: Тоқтат - profile_url: Профиль URL promote: Жарнамалау protocol: Хаттама public: Ашық @@ -174,7 +170,6 @@ kk: moderator: Модератор staff: Қызметкерлер user: Қолданушы - salmon_url: Ақсерке URL search: Іздеу search_same_ip: Осы ІРмен кірген басқа қолданушылар shared_inbox_url: Бөлісілген инбокс URL @@ -398,9 +393,6 @@ kk: created_msg: Шағым жазбасы сәтті құрылды! destroyed_msg: Шағым жазбасы сәтті өшірілді! reports: - account: - note: жазба - report: шағым action_taken_by: Белсенділік жасаған are_you_sure: Шынымен бе? assign_to_self: Мені тағайындау diff --git a/config/locales/ko.yml b/config/locales/ko.yml index ceeadfb36..ee9e0e954 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -114,9 +114,7 @@ ko: email_status: 이메일 상태 enable: 활성화 enabled: 활성 - feed_url: 피드 URL followers: 팔로워 수 - followers_url: 팔로워 URL follows: 팔로잉 수 header: 헤더 inbox_url: 수신함 URL @@ -144,10 +142,8 @@ ko: no_account_selected: 아무 계정도 선택 되지 않아 아무 것도 변경 되지 않았습니다 no_limits_imposed: 제한 없음 not_subscribed: 구독하지 않음 - outbox_url: 발신함 URL pending: 심사 대기 perform_full_suspension: 정지시키기 - profile_url: 프로필 URL promote: 승급 protocol: 프로토콜 public: 전체 공개 @@ -170,7 +166,6 @@ ko: moderator: 모더레이터 staff: 스태프 user: 사용자 - salmon_url: Salmon URL search: 검색 search_same_ip: 같은 IP의 다른 사용자들 shared_inbox_url: 공유된 inbox URL @@ -392,9 +387,6 @@ ko: created_msg: 리포트 노트가 성공적으로 작성되었습니다! destroyed_msg: 리포트 노트가 성공적으로 삭제되었습니다! reports: - account: - note: 노트 - report: 리포트 action_taken_by: 신고 처리자 are_you_sure: 정말로 실행하시겠습니까? assign_to_self: 나에게 할당하기 diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 7a09bee59..e9634b397 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -75,9 +75,7 @@ lt: email_status: El pašto statusas enable: Įjungti enabled: Įjungta - feed_url: Srauto URL followers: Sekėjai - followers_url: Sekėjų URL follows: Seka header: Antraštė inbox_url: Gautųjų URL @@ -102,9 +100,7 @@ lt: most_recent_ip: Paskutinis IP no_limits_imposed: Be limitu not_subscribed: Ne prenumeruota - outbox_url: Išsiustųjų URL perform_full_suspension: Užrakinti - profile_url: Profilio URL promote: Paaukštinti protocol: Protokolas public: Viešas @@ -125,7 +121,6 @@ lt: moderator: Moderatorius staff: Personalas user: Vartotojas - salmon_url: Lašišos URL search: Ieškoti shared_inbox_url: Bendroji gautųjų URL show: @@ -309,9 +304,6 @@ lt: created_msg: Skundo žinutė sekmingai sukurta! destroyed_msg: Skundo žinutė sekmingai ištrinta! reports: - account: - note: raštelis - report: skundas action_taken_by: Veiksmo ėmėsi are_you_sure: Ar tu įsitikinęs? assign_to_self: Paskirti man diff --git a/config/locales/ms.yml b/config/locales/ms.yml index d824aed60..71dc72d9d 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -73,9 +73,7 @@ ms: email_status: Status Emel enable: Bolehkan enabled: Dibolehkan - feed_url: Suapan URL followers: Pengikut - followers_url: URL Pengikut follows: Mengikuti inbox_url: URL mesej masuk ip: Alamat IP @@ -97,9 +95,7 @@ ms: most_recent_ip: IP terbaru no_limits_imposed: Tiada had dikuatkuasakan not_subscribed: Tiada langganan - outbox_url: URL mesej keluar perform_full_suspension: Gantung - profile_url: URL profil promote: Naikkan pangkat protocol: Protokol public: Awam @@ -119,7 +115,6 @@ ms: moderator: Pengawal staff: Kakitangan user: Pengguna - salmon_url: URL Salmon search: Cari shared_inbox_url: URL Peti Masuk Berkongsi show: @@ -276,9 +271,6 @@ ms: created_msg: Nota laporan berjaya dicipta! destroyed_msg: Nota laporan berjaya dipadam! reports: - account: - note: nota - report: laporan action_taken_by: Tindakan oleh are_you_sure: Anda pasti? assign_to_self: Berikan pada saya diff --git a/config/locales/nl.yml b/config/locales/nl.yml index bfa4122ed..2b49708e3 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -118,9 +118,7 @@ nl: email_status: E-mailstatus enable: Inschakelen enabled: Ingeschakeld - feed_url: Feed-URL followers: Volgers - followers_url: Volgers-URL follows: Volgt header: Omslagfoto inbox_url: Inbox-URL @@ -148,10 +146,8 @@ nl: no_account_selected: Er zijn geen accounts veranderd, omdat er geen een was geselecteerd no_limits_imposed: Geen limieten ingesteld not_subscribed: Niet geabonneerd - outbox_url: Outbox-URL pending: Moet nog beoordeeld worden perform_full_suspension: Opschorten - profile_url: Profiel-URL promote: Promoveren protocol: Protocol public: Openbaar @@ -174,7 +170,6 @@ nl: moderator: Moderator staff: Medewerkers user: Gebruiker - salmon_url: Salmon-URL search: Zoeken search_same_ip: Andere gebruikers met hetzelfde IP-adres shared_inbox_url: Gedeelde inbox-URL @@ -396,9 +391,6 @@ nl: created_msg: Opmerking bij rapportage succesvol aangemaakt! destroyed_msg: Opmerking bij rapportage succesvol verwijderd! reports: - account: - note: opmerking - report: rapportage action_taken_by: Actie uitgevoerd door are_you_sure: Weet je het zeker? assign_to_self: Aan mij toewijzen diff --git a/config/locales/no.yml b/config/locales/no.yml index fa40975a7..2c8786066 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -48,9 +48,7 @@ email_status: E-poststatus enable: Aktiver enabled: Aktivert - feed_url: Feed-URL followers: Følgere - followers_url: Følgere URL follows: Følginger inbox_url: Innboks URL ip: IP-adresse @@ -71,9 +69,7 @@ most_recent_activity: Nyligste aktivitet most_recent_ip: Nyligste IP not_subscribed: Ikke abonnért - outbox_url: Utboks URL perform_full_suspension: Utfør full utvisning - profile_url: Profil-URL promote: Oppgradere protocol: Protokoll public: Offentlig @@ -90,7 +86,6 @@ roles: staff: Personale user: Bruker - salmon_url: Salmon-URL search: Søk shared_inbox_url: Delt Innboks URL show: diff --git a/config/locales/oc.yml b/config/locales/oc.yml index 851db0491..f84fe882a 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -108,9 +108,7 @@ oc: email_status: Estat de l’adreça enable: Activar enabled: Activat - feed_url: Flux URL followers: Seguidors - followers_url: URL dels seguidors follows: Abonaments header: Bandièra inbox_url: URL de recepcion @@ -138,10 +136,8 @@ oc: no_account_selected: Cap de compte pas cambiat estant que cap èra pas seleccionat no_limits_imposed: Cap de limit impausat not_subscribed: Pas seguidor - outbox_url: URL Outbox pending: Revision en espèra perform_full_suspension: Suspendre - profile_url: URL del perfil promote: Promòure protocol: Protocòl public: Public @@ -164,7 +160,6 @@ oc: moderator: Moderador staff: Personnal user: Uitlizaire - salmon_url: URL Salmon search: Cercar shared_inbox_url: URL de recepcion partejada show: @@ -383,9 +378,6 @@ oc: created_msg: Nòta de moderacion corrèctament creada ! destroyed_msg: Nòta de moderacion corrèctament suprimida ! reports: - account: - note: nòta - report: rapòrt action_taken_by: Mesura menada per are_you_sure: Es segur ? assign_to_self: Me l’assignar diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 5cf346dc7..c57d168bf 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -125,9 +125,7 @@ pl: email_status: Stan e-maila enable: Aktywuj enabled: Aktywowano - feed_url: Adres kanału followers: Śledzący - followers_url: Adres śledzących follows: Śledzeni header: Nagłówek inbox_url: Adres skrzynki @@ -155,10 +153,8 @@ pl: no_account_selected: Żadne konto nie zostało zmienione, bo żadne nie zostało wybrane no_limits_imposed: Nie nałożono ograniczeń not_subscribed: Nie zasubskrybowano - outbox_url: Adres skrzynki nadawczej pending: Oczekuje na przegląd perform_full_suspension: Zawieś - profile_url: Adres profilu promote: Podnieś uprawnienia protocol: Protokół public: Publiczne @@ -181,7 +177,6 @@ pl: moderator: Moderator staff: Ekipa user: Użytkownik - salmon_url: Adres Salmon search: Szukaj shared_inbox_url: Adres udostępnianej skrzynki show: @@ -403,9 +398,6 @@ pl: created_msg: Pomyslnie utworzono notatkę moderacyjną. destroyed_msg: Pomyślnie usunięto notatkę moderacyjną. reports: - account: - note: notatka - report: zgłoszenie action_taken_by: Działanie podjęte przez are_you_sure: Czy na pewno? assign_to_self: Przypisz do siebie diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 7391ff06c..84eff7991 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -107,9 +107,7 @@ pt-BR: email_status: Estado do e-mail enable: Ativar enabled: Ativado - feed_url: URL do feed followers: Seguidores - followers_url: URL de seguidores follows: Segue header: Cabeçalho inbox_url: URL da caixa de entrada @@ -137,10 +135,8 @@ pt-BR: no_account_selected: Nenhuma conta foi modificada, pois nenhuma conta foi selecionada no_limits_imposed: Nenhum limite imposto not_subscribed: Não está inscrito - outbox_url: URL da caixa de saída pending: Esperando revisão perform_full_suspension: Suspender - profile_url: URL do perfil promote: Promover protocol: Protocolo public: Público @@ -163,7 +159,6 @@ pt-BR: moderator: Moderador staff: Equipe user: Usuário - salmon_url: URL Salmon search: Pesquisar shared_inbox_url: URL da caixa de entrada compartilhada show: @@ -368,9 +363,6 @@ pt-BR: created_msg: Nota de denúncia criada com sucesso! destroyed_msg: Nota de denúncia excluída com sucesso! reports: - account: - note: nota - report: denúncia action_taken_by: Ação realizada por are_you_sure: Você tem certeza? assign_to_self: Designar para mim diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index bb1de517e..3c5b1ca9a 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -106,9 +106,7 @@ pt-PT: email_status: Estado do correio electrónico enable: Ativar enabled: Ativado - feed_url: URL do Feed followers: Seguidores - followers_url: URL dos seguidores follows: A seguir header: Cabeçalho inbox_url: URL da caixa de entrada @@ -132,9 +130,7 @@ pt-PT: most_recent_ip: IP mais recente no_limits_imposed: Sem limites impostos not_subscribed: Não inscrito - outbox_url: URL da caixa de saída perform_full_suspension: Fazer suspensão completa - profile_url: URL do perfil promote: Promover protocol: Protocolo public: Público @@ -155,7 +151,6 @@ pt-PT: moderator: Moderador staff: Equipa user: Utilizador - salmon_url: URL Salmon search: Pesquisar shared_inbox_url: URL da caixa de entrada compartilhada show: @@ -346,9 +341,6 @@ pt-PT: created_msg: Relatório criado com sucesso! destroyed_msg: Relatório apagado com sucesso! reports: - account: - note: nota - report: relatório action_taken_by: Ação tomada por are_you_sure: Tens a certeza? assign_to_self: Atribuí-me a mim diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 4c1035627..5c68ce4d4 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -126,9 +126,7 @@ ru: email_status: Статус e-mail enable: Включить enabled: Включен - feed_url: URL фида followers: Подписчики - followers_url: URL подписчиков follows: Подписки header: Шапка inbox_url: URL входящих @@ -156,10 +154,8 @@ ru: no_account_selected: Ничего не выбрано, никакие учётные записи не изменены no_limits_imposed: Без ограничений not_subscribed: Не подписаны - outbox_url: URL исходящих pending: Ожидает рассмотрения perform_full_suspension: Полная блокировка - profile_url: URL профиля promote: Повысить protocol: Протокол public: Публичный @@ -182,7 +178,6 @@ ru: moderator: Модератор staff: Персонал user: Пользователь - salmon_url: Страница Salmon search: Поиск search_same_ip: Другие пользователи с таким же IP shared_inbox_url: URL общих входящих @@ -410,9 +405,6 @@ ru: created_msg: Примечание жалобы создано! destroyed_msg: Примечание жалобы удалено! reports: - account: - note: заметок - report: жалоб action_taken_by: 'Действие предпринято:' are_you_sure: Вы уверены? assign_to_self: Назначить себе diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 5dc2113fd..8339309b3 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -122,9 +122,7 @@ sk: email_status: Stav emailu enable: Povoľ enabled: Povolený - feed_url: adresa časovej osi followers: Sledujúci - followers_url: URL adresa sledujúcich follows: Sledovania header: Záhlavie inbox_url: URL adresa prijatých správ @@ -152,10 +150,8 @@ sk: no_account_selected: Nedošlo k žiadnému pozmeneniu účtov, keďže žiadne neboli vybrané no_limits_imposed: Nie sú stanovené žiadné obmedzenia not_subscribed: Neodoberá - outbox_url: URL poslaných pending: Vyžaduje posúdenie perform_full_suspension: Vylúč - profile_url: URL adresa profilu promote: Vyzdvihni protocol: Protokol public: Verejná časová os @@ -178,7 +174,6 @@ sk: moderator: Moderátor staff: Člen user: Užívateľ - salmon_url: Salmon adresa search: Hľadaj search_same_ip: Ostatní užívatelia s rovnakou IP adresou shared_inbox_url: URL zdieľanej schránky @@ -403,9 +398,6 @@ sk: created_msg: Poznámka o nahlásení úspešne vytvorená! destroyed_msg: Poznámka o nahlásení úspešne vymazaná! reports: - account: - note: poznámka - report: nahlás action_taken_by: Zákrok vykonal/a are_you_sure: Si si istý/á? assign_to_self: Priraď sebe diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 22b58e7b6..2faaa149a 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -114,9 +114,7 @@ sl: email_status: Stanje e-pošte enable: Omogoči enabled: Omogočeno - feed_url: URL vira followers: Sledilci - followers_url: URL sledilcev follows: Sledi header: Glava inbox_url: URL mape "Prejeto" @@ -144,10 +142,8 @@ sl: no_account_selected: Noben račun ni bil spremenjen, ker ni bil izbran noben no_limits_imposed: Brez omejitev not_subscribed: Ni naročen - outbox_url: URL za pošiljanje pending: Čakanje na pregled perform_full_suspension: Suspendiraj - profile_url: URL profila promote: Promoviraj protocol: Protokol public: Javen @@ -170,7 +166,6 @@ sl: moderator: Moderator staff: Osebje user: Uporabnik - salmon_url: URL lososa search: Iskanje shared_inbox_url: URL mape "Prejeto v skupni rabi" show: @@ -375,9 +370,6 @@ sl: created_msg: Opomba o prijavi je uspešno ustvarjena! destroyed_msg: Opomba o prijavi je uspešno izbrisana! reports: - account: - note: opomba - report: prijava action_taken_by: Dejanje, ki ga je sprejel are_you_sure: Ali ste prepričani? assign_to_self: Dodeli meni diff --git a/config/locales/sq.yml b/config/locales/sq.yml index ac811b0b0..e5378082e 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -81,9 +81,7 @@ sq: email_status: Gjendje email-i enable: Aktivizoje enabled: E aktivizuar - feed_url: URL prurjeje followers: Ndjekës - followers_url: URL Ndjekësish follows: Ndjekje header: Krye inbox_url: URL Mesazhesh të Marrë @@ -108,9 +106,7 @@ sq: most_recent_ip: IP-ja më e freskët no_limits_imposed: Pa imponim kufijsh not_subscribed: Jo i pajtuar - outbox_url: URL Mesazhesh të Dërguar perform_full_suspension: Pezulloje - profile_url: URL profili promote: Promovojeni protocol: Protokoll public: Publike @@ -315,9 +311,6 @@ sq: created_msg: Shënimi i raportimit u krijua me sukses! destroyed_msg: Shënimi i raportimit u fshi me sukses! reports: - account: - note: shënim - report: raportojeni action_taken_by: Veprimi i ndërmarrë nga are_you_sure: A jeni i sigurt? assign_to_self: Caktojani vetes diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index 2bddaf311..1f3d69e21 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -47,9 +47,7 @@ sr-Latn: email_status: Status e-pošte enable: Uključi enabled: Uključeno - feed_url: Adresa dovoda followers: Pratioci - followers_url: Adresa pratioca follows: Praćeni inbox_url: Adresa sandučeta location: @@ -69,9 +67,7 @@ sr-Latn: most_recent_activity: Najskorija aktivnost most_recent_ip: Najskorija IP adresa not_subscribed: Nije pretplaćen - outbox_url: Odlazno sanduče perform_full_suspension: Izvrši kompletno isključenje - profile_url: Adresa profila promote: Unapredi protocol: Protokol public: Javno @@ -87,7 +83,6 @@ sr-Latn: roles: staff: Osoblje user: Korisnik - salmon_url: Salmon adresa search: Pretraga shared_inbox_url: Adresa deljenog sandučeta show: diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 404310fe9..d06bb214e 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -91,9 +91,7 @@ sr: email_status: Статус е-поште enable: Омогући enabled: Укључено - feed_url: Адреса довода followers: Пратиоци - followers_url: Адреса пратиоца follows: Праћени header: Заглавље inbox_url: Адреса сандучета @@ -118,9 +116,7 @@ sr: most_recent_ip: Најскорија IP адреса no_limits_imposed: Нема ограничења not_subscribed: Није претплаћен - outbox_url: Одлазно сандуче perform_full_suspension: Искључи - profile_url: Адреса профила promote: Унапреди protocol: Протокол public: Јавно @@ -141,7 +137,6 @@ sr: moderator: Модератор staff: Особље user: Корисник - salmon_url: Salmon адреса search: Претрага shared_inbox_url: Адреса дељеног сандучета show: @@ -330,9 +325,6 @@ sr: created_msg: Белешка пријаве успешно направљена! destroyed_msg: Белешка пријаве успешно избрисана! reports: - account: - note: белешка - report: извештај action_taken_by: Акцију извео are_you_sure: Да ли сте сигурни? assign_to_self: Додели мени diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 0068f59f4..911698620 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -106,9 +106,7 @@ sv: email_status: E-poststatus enable: Aktivera enabled: Aktiverad - feed_url: Flödes URL followers: Följare - followers_url: Följare URL follows: Följs header: Rubrik inbox_url: Inkorgs URL @@ -136,10 +134,8 @@ sv: no_account_selected: Inga konton har ändrats och inget har valts no_limits_imposed: Inga begränsningar har införts not_subscribed: Inte prenumererat - outbox_url: Utkorg URL pending: Inväntar granskning perform_full_suspension: Utför full avstängning - profile_url: Profil URL promote: Befordra protocol: Protokoll public: Offentlig @@ -162,7 +158,6 @@ sv: moderator: Moderator staff: Personal user: Användare - salmon_url: Lax URL search: Sök search_same_ip: Annan användare med samma IP-adress shared_inbox_url: Delad inkorg URL @@ -318,9 +313,6 @@ sv: created_msg: Anmälningsanteckning har skapats! destroyed_msg: Anmälningsanteckning har raderats! reports: - account: - note: anteckning - report: anmälan action_taken_by: Åtgärder vidtagna av are_you_sure: Är du säker? assign_to_self: Tilldela till mig diff --git a/config/locales/te.yml b/config/locales/te.yml index 526b03b49..dd6c878e7 100644 --- a/config/locales/te.yml +++ b/config/locales/te.yml @@ -87,9 +87,7 @@ te: email_status: ఈమెయిల్ స్థితి enable: చేతనం enabled: చేతనం చేయబడింది - feed_url: ఫీడ్ URL followers: అనుచరులు - followers_url: అనుచరుల URL follows: అనుసరిస్తున్నారు inbox_url: ఇన్ బాక్స్ URL location: diff --git a/config/locales/th.yml b/config/locales/th.yml index a63bbe917..214a93acf 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -97,9 +97,7 @@ th: email_status: สถานะอีเมล enable: เปิดใช้งาน enabled: เปิดใช้งานอยู่ - feed_url: URL ฟีด followers: ผู้ติดตาม - followers_url: URL ผู้ติดตาม follows: การติดตาม header: ส่วนหัว inbox_url: URL กล่องขาเข้า @@ -124,9 +122,7 @@ th: most_recent_activity: กิจกรรมล่าสุด most_recent_ip: IP ล่าสุด not_subscribed: ไม่ได้บอกรับ - outbox_url: URL กล่องขาออก perform_full_suspension: ระงับ - profile_url: URL โปรไฟล์ promote: เลื่อนตำแหน่ง protocol: โปรโตคอล public: สาธารณะ @@ -310,9 +306,6 @@ th: created_msg: สร้างหมายเหตุรายงานสำเร็จ! destroyed_msg: ลบหมายเหตุรายงานสำเร็จ! reports: - account: - note: หมายเหตุ - report: รายงาน are_you_sure: คุณแน่ใจหรือไม่? assign_to_self: มอบหมายให้ฉัน assigned: ผู้ควบคุมที่ได้รับมอบหมาย diff --git a/config/locales/tr.yml b/config/locales/tr.yml index b2b1dd078..f3a2817ec 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -118,9 +118,7 @@ tr: email_status: E-posta durumu enable: Etkinleştir enabled: Etkin - feed_url: Besleme linki followers: Takipçiler - followers_url: Takipçi bağlantısı follows: Takip edilen header: Üstbilgi inbox_url: Gelen kutusu bağlantısı @@ -148,10 +146,8 @@ tr: no_account_selected: Hiçbiri seçilmediğinden hiçbir hesap değiştirilmedi no_limits_imposed: Sınır koymaz not_subscribed: Abone edilmedi - outbox_url: Giden Kutusu URL'si pending: Bekleyen yorum perform_full_suspension: Askıya al - profile_url: Profil linki promote: Yükselt protocol: Protokol public: Herkese açık @@ -174,7 +170,6 @@ tr: moderator: Denetleyici staff: Personel user: Kullanıcı - salmon_url: Salmon Linki search: Ara search_same_ip: Aynı IP adresine sahip diğer kullanıcılar shared_inbox_url: Paylaşılan gelen kutusu bağlantısı @@ -398,9 +393,6 @@ tr: created_msg: Şikayet notu başarıyla oluşturuldu! destroyed_msg: Şikayet notu başarıyla silindi! reports: - account: - note: not - report: şikayet action_taken_by: tarafından gerçekleştirilen eylem are_you_sure: Emin misiniz? assign_to_self: Bana ata diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 7d8d83e2d..edcc289da 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -120,9 +120,7 @@ uk: email_status: Статус електронної пошти enable: Увімкнути enabled: Увімкнено - feed_url: URL-адреса каналу followers: Підписники - followers_url: URL підписників follows: Підписки header: Заголовок inbox_url: URL вхідних повідомлень @@ -150,10 +148,8 @@ uk: no_account_selected: Жоден обліковий запис не було змінено, оскільки жоден не було вибрано no_limits_imposed: Жодних обмежень не накладено not_subscribed: Не підписані - outbox_url: URL вихідних повідомлень pending: Відгук в очікуванні perform_full_suspension: Призупинити - profile_url: URL профілю promote: Просунути protocol: Протокол public: Публічний @@ -176,7 +172,6 @@ uk: moderator: Модератор staff: Персонал user: Користувач - salmon_url: Salmon URL search: Пошук shared_inbox_url: URL спільного вхідного кошика show: @@ -400,9 +395,6 @@ uk: created_msg: Скарга успішно створена! destroyed_msg: Скарга успішно видалена! reports: - account: - note: нотатка - report: скарга action_taken_by: Дія виконана are_you_sure: Ви впевнені? assign_to_self: Призначити мені diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 3af145c66..49dd31bac 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -107,9 +107,7 @@ zh-CN: email_status: 电子邮件地址状态 enable: 启用 enabled: 已启用 - feed_url: 订阅 URL followers: 关注者 - followers_url: 关注者(Followers)URL follows: 正在关注 header: 个人资料页横幅图片 inbox_url: 收件箱(Inbox)URL @@ -137,10 +135,8 @@ zh-CN: no_account_selected: 因为没有账户被选择,所以没有更改 no_limits_imposed: 无限制 not_subscribed: 未订阅 - outbox_url: 发件箱(Outbox)URL pending: 待审核 perform_full_suspension: 封禁 - profile_url: 个人资料页面 URL promote: 升任 protocol: 协议 public: 公开页面 @@ -163,7 +159,6 @@ zh-CN: moderator: 监察员 staff: 管理人员 user: 普通用户 - salmon_url: 三文鱼协议网址(Salmon URL) search: 搜索 search_same_ip: 具有相同IP的其他用户 shared_inbox_url: 公用收件箱(Shared Inbox)URL @@ -384,9 +379,6 @@ zh-CN: created_msg: 举报记录建立成功! destroyed_msg: 举报记录删除成功! reports: - account: - note: 条记录 - report: 条举报 action_taken_by: 操作执行者 are_you_sure: 你确定吗? assign_to_self: 接管 diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index 338cf810e..4b7ca52e1 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -64,9 +64,7 @@ zh-HK: email_status: 电子邮件状态 enable: 啟用 enabled: 已啟用 - feed_url: 訂閱 URL followers: 關注者 - followers_url: 關注者(Followers)URL follows: 正在關注 inbox_url: 收件箱(Inbox)URL ip: IP 位域 @@ -87,9 +85,7 @@ zh-HK: most_recent_activity: 最新活動 most_recent_ip: 最新 IP 位域 not_subscribed: 未訂閱 - outbox_url: 寄件箱(Outbox)URL perform_full_suspension: 完全停權 - profile_url: 個人檔案 URL promote: 升任 protocol: 協議 public: 公共 @@ -109,7 +105,6 @@ zh-HK: moderator: 監察員 staff: 管理人員 user: 普通用戶 - salmon_url: Salmon 反饋 URL search: 搜索 shared_inbox_url: 公共收件箱(Shared Inbox)URL show: @@ -233,9 +228,6 @@ zh-HK: created_msg: 舉報筆記已建立。 destroyed_msg: 舉報筆記已刪除。 reports: - account: - note: 筆記 - report: 舉報 action_taken_by: 操作執行者 are_you_sure: 你確認嗎? assign_to_self: 指派給自己 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index b7116e02e..7a5627c30 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -99,9 +99,7 @@ zh-TW: email_status: 電子信箱狀態 enable: 啟用 enabled: 已啟用 - feed_url: 訂閱 URL followers: 關注者 - followers_url: 關注者(Followers)URL follows: 正在關注 header: 開頭 inbox_url: 收件箱 (Inbox) URL @@ -128,10 +126,8 @@ zh-TW: most_recent_ip: 最近 IP 位址 no_limits_imposed: 未受限制 not_subscribed: 未訂閱 - outbox_url: 寄件箱 (Outbox) URL pending: 等待審核中 perform_full_suspension: 停權 - profile_url: 個人檔案 URL promote: 晉級 protocol: 協議 public: 公開 @@ -154,7 +150,6 @@ zh-TW: moderator: 版主 staff: 管理人員 user: 普通使用者 - salmon_url: Salmon 網址 search: 搜尋 shared_inbox_url: 共享收件箱網址 show: @@ -323,9 +318,6 @@ zh-TW: created_msg: 檢舉記錄建立成功! destroyed_msg: 檢舉記錄刪除成功! reports: - account: - note: 條記錄 - report: 條檢舉 action_taken_by: 操作執行者 are_you_sure: 你確定嗎? assign_to_self: 指派給自己 diff --git a/config/settings.yml b/config/settings.yml index 3cca40cbd..00a4421e4 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -66,6 +66,7 @@ defaults: &defaults - mod - moderator disallowed_hashtags: # space separated string or list of hashtags without the hash + enable_bootstrap_timeline_accounts: true bootstrap_timeline_accounts: '' activity_api_enabled: true peers_api_enabled: true diff --git a/db/migrate/20191212003415_increase_backup_size.rb b/db/migrate/20191212003415_increase_backup_size.rb new file mode 100644 index 000000000..a5192263c --- /dev/null +++ b/db/migrate/20191212003415_increase_backup_size.rb @@ -0,0 +1,21 @@ +require Rails.root.join('lib', 'mastodon', 'migration_helpers') + +class IncreaseBackupSize < ActiveRecord::Migration[5.2] + include Mastodon::MigrationHelpers + + disable_ddl_transaction! + + def up + safety_assured do + change_column_type_concurrently :backups, :dump_file_size, :bigint + cleanup_concurrent_column_type_change :backups, :dump_file_size + end + end + + def down + safety_assured do + change_column_type_concurrently :backups, :dump_file_size, :integer + cleanup_concurrent_column_type_change :backups, :dump_file_size + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 946f2c5e6..b7ab74033 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2019_10_31_163205) do +ActiveRecord::Schema.define(version: 2019_12_12_003415) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -200,7 +200,7 @@ ActiveRecord::Schema.define(version: 2019_10_31_163205) do t.bigint "user_id" t.string "dump_file_name" t.string "dump_content_type" - t.integer "dump_file_size" + t.bigint "dump_file_size" t.datetime "dump_updated_at" t.boolean "processed", default: false, null: false t.datetime "created_at", null: false @@ -706,30 +706,6 @@ ActiveRecord::Schema.define(version: 2019_10_31_163205) do t.index ["tag_id", "status_id"], name: "index_statuses_tags_on_tag_id_and_status_id", unique: true end - create_table "stream_entries", force: :cascade do |t| - t.bigint "activity_id" - t.string "activity_type" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.boolean "hidden", default: false, null: false - t.bigint "account_id" - t.index ["account_id", "activity_type", "id"], name: "index_stream_entries_on_account_id_and_activity_type_and_id" - t.index ["activity_id", "activity_type"], name: "index_stream_entries_on_activity_id_and_activity_type" - end - - create_table "subscriptions", force: :cascade do |t| - t.string "callback_url", default: "", null: false - t.string "secret" - t.datetime "expires_at" - t.boolean "confirmed", default: false, null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.datetime "last_successful_delivery_at" - t.string "domain" - t.bigint "account_id", null: false - t.index ["account_id", "callback_url"], name: "index_subscriptions_on_account_id_and_callback_url", unique: true - end - create_table "tags", force: :cascade do |t| t.string "name", default: "", null: false t.datetime "created_at", null: false diff --git a/lib/mastodon/media_cli.rb b/lib/mastodon/media_cli.rb index 3b702f155..d842b986f 100644 --- a/lib/mastodon/media_cli.rb +++ b/lib/mastodon/media_cli.rb @@ -44,6 +44,105 @@ module Mastodon say("Removed #{processed} media attachments (approx. #{number_to_human_size(aggregate)}) #{dry_run}", :green, true) end + option :start_after + option :dry_run, type: :boolean, default: false + desc 'remove-orphans', 'Scan storage and check for files that do not belong to existing media attachments' + long_desc <<~LONG_DESC + Scans file storage for files that do not belong to existing media attachments. Because this operation + requires iterating over every single file individually, it will be slow. + + Please mind that some storage providers charge for the necessary API requests to list objects. + LONG_DESC + def remove_orphans + progress = create_progress_bar(nil) + reclaimed_bytes = 0 + removed = 0 + dry_run = options[:dry_run] ? ' (DRY RUN)' : '' + + case Paperclip::Attachment.default_options[:storage] + when :s3 + paperclip_instance = MediaAttachment.new.file + s3_interface = paperclip_instance.s3_interface + bucket = s3_interface.bucket(Paperclip::Attachment.default_options[:s3_credentials][:bucket]) + last_key = options[:start_after] + + loop do + objects = begin + begin + bucket.objects(start_after: last_key, prefix: 'media_attachments/files/').limit(1000).map { |x| x } + rescue => e + progress.log(pastel.red("Error fetching list of files: #{e}")) + progress.log("If you want to continue from this point, add --start-after=#{last_key} to your command") if last_key + break + end + end + + break if objects.empty? + + last_key = objects.last.key + attachments_map = MediaAttachment.where(id: objects.map { |object| object.key.split('/')[2..-2].join.to_i }).each_with_object({}) { |attachment, map| map[attachment.id] = attachment } + + objects.each do |object| + attachment_id = object.key.split('/')[2..-2].join.to_i + filename = object.key.split('/').last + + progress.increment + + next unless attachments_map[attachment_id].nil? || !attachments_map[attachment_id].variant?(filename) + + begin + object.delete unless options[:dry_run] + + reclaimed_bytes += object.size + removed += 1 + + progress.log("Found and removed orphan: #{object.key}") + rescue => e + progress.log(pastel.red("Error processing #{object.key}: #{e}")) + end + end + end + when :fog + say('The fog storage driver is not supported for this operation at this time', :red) + exit(1) + when :filesystem + require 'find' + + root_path = ENV.fetch('RAILS_ROOT_PATH', File.join(':rails_root', 'public', 'system')).gsub(':rails_root', Rails.root.to_s) + + Find.find(File.join(root_path, 'media_attachments', 'files')) do |path| + next if File.directory?(path) + + key = path.gsub("#{root_path}#{File::SEPARATOR}", '') + attachment_id = key.split(File::SEPARATOR)[2..-2].join.to_i + filename = key.split(File::SEPARATOR).last + attachment = MediaAttachment.find_by(id: attachment_id) + + progress.increment + + next unless attachment.nil? || !attachment.variant?(filename) + + begin + size = File.size(path) + + File.delete(path) unless options[:dry_run] + + reclaimed_bytes += size + removed += 1 + + progress.log("Found and removed orphan: #{key}") + rescue => e + progress.log(pastel.red("Error processing #{key}: #{e}")) + end + end + end + + progress.total = progress.progress + progress.finish + + say("Removed #{removed} orphans (approx. #{number_to_human_size(reclaimed_bytes)})#{dry_run}", :green, true) + end + option :account, type: :string option :domain, type: :string option :status, type: :numeric diff --git a/lib/mastodon/statuses_cli.rb b/lib/mastodon/statuses_cli.rb index eeedc026c..875183372 100644 --- a/lib/mastodon/statuses_cli.rb +++ b/lib/mastodon/statuses_cli.rb @@ -13,6 +13,7 @@ module Mastodon end option :days, type: :numeric, default: 90 + option :clean_followed, type: :boolean desc 'remove', 'Remove unreferenced statuses' long_desc <<~LONG_DESC Remove statuses that are not referenced by local user activity, such as @@ -20,7 +21,7 @@ module Mastodon by someone locally but no longer are. This is a computationally heavy procedure that creates extra database - indicides before commencing, and removes them afterward. + indices before commencing, and removes them afterward. LONG_DESC def remove say('Creating temporary database indices...') @@ -34,18 +35,28 @@ module Mastodon say('Beginning removal... This might take a while...') - Status.remote - .where('id < ?', max_id) - .where(reblog_of_id: nil) # Skip reblogs - .where(in_reply_to_id: nil) # Skip replies - .where('id NOT IN (SELECT status_pins.status_id FROM status_pins WHERE statuses.id = status_id)') # Skip statuses that are pinned on profiles - .where('id NOT IN (SELECT mentions.status_id FROM mentions WHERE statuses.id = mentions.status_id AND mentions.account_id IN (SELECT accounts.id FROM accounts WHERE domain IS NULL))') # Skip statuses that mention local accounts - .where('id NOT IN (SELECT statuses1.in_reply_to_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.in_reply_to_id)') # Skip statuses favourited by local accounts - .where('id NOT IN (SELECT bookmarks.status_id FROM bookmarks WHERE statuses.id = bookmarks.status_id)') # Skip statuses bookmarked by local users - .where('id NOT IN (SELECT statuses1.reblog_of_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.reblog_of_id AND statuses1.account_id IN (SELECT accounts.id FROM accounts WHERE accounts.domain IS NULL))') # Skip statuses reblogged by local accounts - .where('account_id NOT IN (SELECT follows.target_account_id FROM follows WHERE statuses.account_id = follows.target_account_id)') # Skip accounts followed by local accounts - .in_batches - .delete_all + scope = Status.remote.where('id < ?', max_id) + # Skip reblogs of local statuses + scope = scope.where('reblog_of_id NOT IN (SELECT statuses1.id FROM statuses AS statuses1 WHERE statuses1.id = statuses.reblog_of_id AND (statuses1.uri IS NULL OR statuses1.local))') + # Skip statuses that are pinned on profiles + scope = scope.where('id NOT IN (SELECT status_pins.status_id FROM status_pins WHERE statuses.id = status_id)') + # Skip statuses that mention local accounts + scope = scope.where('id NOT IN (SELECT mentions.status_id FROM mentions WHERE statuses.id = mentions.status_id AND mentions.account_id IN (SELECT accounts.id FROM accounts WHERE domain IS NULL))') + # Skip statuses which have replies + scope = scope.where('id NOT IN (SELECT statuses1.in_reply_to_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.in_reply_to_id)') + # Skip statuses reblogged by local accounts or with recent boosts + scope = scope.where('id NOT IN (SELECT statuses1.reblog_of_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.reblog_of_id AND (statuses1.uri IS NULL OR statuses1.local OR statuses1.id >= ?))', max_id) + # Skip statuses favourited by local users + scope = scope.where('id NOT IN (SELECT favourites.status_id FROM favourites WHERE statuses.id = favourites.status_id AND favourites.account_id IN (SELECT accounts.id FROM accounts WHERE domain IS NULL))') + # Skip statuses bookmarked by local users + scope = scope.where('id NOT IN (SELECT bookmarks.status_id FROM bookmarks WHERE statuses.id = bookmarks.status_id)') + + unless options[:clean_followed] + # Skip accounts followed by local accounts + scope = scope.where('account_id NOT IN (SELECT follows.target_account_id FROM follows WHERE statuses.account_id = follows.target_account_id)') + end + + scope.in_batches.delete_all say('Beginning removal of now-orphaned media attachments to free up disk space...') diff --git a/package.json b/package.json index c00dea8b3..9e0c44550 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "start": "node ./streaming/index.js", "test": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:jest", "test:lint": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:lint:sass", - "test:lint:js": "eslint --ext=js .", + "test:lint:js": "eslint --ext=js . --cache", "test:lint:sass": "sass-lint -v", "test:jest": "cross-env NODE_ENV=test jest --coverage" }, @@ -60,17 +60,17 @@ }, "private": true, "dependencies": { - "@babel/core": "^7.7.4", + "@babel/core": "^7.7.5", "@babel/plugin-proposal-class-properties": "^7.7.4", "@babel/plugin-proposal-decorators": "^7.7.4", "@babel/plugin-transform-react-inline-elements": "^7.7.4", - "@babel/plugin-transform-runtime": "^7.7.4", - "@babel/preset-env": "^7.7.4", + "@babel/plugin-transform-runtime": "^7.7.6", + "@babel/preset-env": "^7.7.7", "@babel/preset-react": "^7.7.4", - "@babel/runtime": "^7.7.4", + "@babel/runtime": "^7.7.7", "@gamestdio/websocket": "^0.3.2", "@clusterws/cws": "^0.16.0", - "array-includes": "^3.0.3", + "array-includes": "^3.1.1", "atrament": "^0.2.3", "arrow-key-navigation": "^1.1.0", "autoprefixer": "^9.7.3", @@ -83,15 +83,15 @@ "babel-runtime": "^6.26.0", "blurhash": "^1.1.3", "classnames": "^2.2.5", - "compression-webpack-plugin": "^3.0.0", - "copy-webpack-plugin": "^5.0.5", + "compression-webpack-plugin": "^3.0.1", + "copy-webpack-plugin": "^5.1.1", "cross-env": "^6.0.3", - "css-loader": "^3.2.0", + "css-loader": "^3.4.0", "cssnano": "^4.1.10", "detect-passive-events": "^1.0.2", "dotenv": "^8.2.0", "emoji-mart": "Gargron/emoji-mart#build", - "es6-symbol": "^3.1.2", + "es6-symbol": "^3.1.3", "escape-html": "^1.0.3", "exif-js": "^2.3.0", "express": "^4.17.1", @@ -112,12 +112,12 @@ "lodash": "^4.17.14", "mark-loader": "^0.1.6", "marky": "^1.2.1", - "mini-css-extract-plugin": "^0.8.0", + "mini-css-extract-plugin": "^0.9.0", "mkdirp": "^0.5.1", "npmlog": "^4.1.2", "object-assign": "^4.1.1", "object-fit-images": "^3.2.3", - "object.values": "^1.1.0", + "object.values": "^1.1.1", "offline-plugin": "^5.0.7", "path-complete-extname": "^1.0.0", "pg": "^6.4.0", @@ -126,7 +126,7 @@ "prop-types": "^15.5.10", "punycode": "^2.1.0", "rails-ujs": "^5.2.4", - "react": "^16.10.2", + "react": "^16.12.0", "react-dom": "^16.12.0", "react-hotkeys": "^1.1.4", "react-immutable-proptypes": "^2.1.0", @@ -136,7 +136,7 @@ "react-motion": "^0.5.2", "react-notification": "^6.8.5", "react-overlays": "^0.9.1", - "react-redux": "^7.1.1", + "react-redux": "^7.1.3", "react-redux-loading-bar": "^4.0.8", "react-router-dom": "^4.1.1", "react-router-scroll-4": "^1.0.0-beta.1", @@ -153,11 +153,11 @@ "requestidlecallback": "^0.3.0", "reselect": "^4.0.0", "rimraf": "^3.0.0", - "sass": "^1.23.3", + "sass": "^1.24.0", "sass-loader": "^8.0.0", "stringz": "^2.0.0", "substring-trie": "^1.0.2", - "terser-webpack-plugin": "^2.2.1", + "terser-webpack-plugin": "^2.2.2", "tesseract.js": "^2.0.0-alpha.16", "throng": "^4.0.0", "tiny-queue": "^0.2.1", @@ -173,10 +173,10 @@ "devDependencies": { "babel-eslint": "^10.0.3", "babel-jest": "^24.9.0", - "enzyme": "^3.10.0", + "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.1", "eslint": "^6.7.2", - "eslint-plugin-import": "~2.18.2", + "eslint-plugin-import": "~2.19.1", "eslint-plugin-jsx-a11y": "~6.2.3", "eslint-plugin-promise": "~4.2.1", "eslint-plugin-react": "~7.17.0", @@ -186,6 +186,6 @@ "react-test-renderer": "^16.11.0", "sass-lint": "^1.13.1", "webpack-dev-server": "^3.9.0", - "yargs": "^13.3.0" + "yargs": "^15.0.2" } } diff --git a/spec/controllers/settings/featured_tags_controller_spec.rb b/spec/controllers/settings/featured_tags_controller_spec.rb new file mode 100644 index 000000000..33b87f9f6 --- /dev/null +++ b/spec/controllers/settings/featured_tags_controller_spec.rb @@ -0,0 +1,43 @@ +require 'rails_helper' + +describe Settings::FeaturedTagsController do + render_views + + shared_examples 'authenticate user' do + it 'redirects to sign_in page' do + is_expected.to redirect_to new_user_session_path + end + end + + describe 'POST #create' do + context 'when user is not sign in' do + subject { post :create } + + it_behaves_like 'authenticate user' + end + + context 'when user is sign in' do + subject { post :create, params: { featured_tag: params } } + + let(:user) { Fabricate(:user, password: '12345678') } + + before { sign_in user, scope: :user } + + context 'when parameter is valid' do + let(:params) { { name: 'test' } } + + it 'creates featured tag' do + expect { subject }.to change { user.account.featured_tags.count }.by(1) + end + end + + context 'when parameter is invalid' do + let(:params) { { name: 'test, #foo !bleh' } } + + it 'renders new' do + expect(subject).to render_template :index + end + end + end + end +end diff --git a/spec/features/log_in_spec.rb b/spec/features/log_in_spec.rb index f6c26cd0f..b874c255b 100644 --- a/spec/features/log_in_spec.rb +++ b/spec/features/log_in_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" feature "Log in" do - given(:email) { "test@examle.com" } + given(:email) { "test@example.com" } given(:password) { "password" } given(:confirmed_at) { Time.zone.now } diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb index b709954a3..c4efb5cc9 100644 --- a/spec/lib/activitypub/activity/create_spec.rb +++ b/spec/lib/activitypub/activity/create_spec.rb @@ -378,6 +378,28 @@ RSpec.describe ActivityPub::Activity::Create do end end + context 'with hashtags invalid name' do + let(:object_json) do + { + id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, + type: 'Note', + content: 'Lorem ipsum', + tag: [ + { + type: 'Hashtag', + href: 'http://example.com/blah', + name: 'foo, #eh !', + }, + ], + } + end + + it 'creates status' do + status = sender.statuses.first + expect(status).to_not be_nil + end + end + context 'with emojis' do let(:object_json) do { diff --git a/spec/services/activitypub/fetch_remote_status_service_spec.rb b/spec/services/activitypub/fetch_remote_status_service_spec.rb index 78dd59e3b..1ecc46952 100644 --- a/spec/services/activitypub/fetch_remote_status_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_status_service_spec.rb @@ -104,6 +104,26 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do end end + context 'with Event object' do + let(:object) do + { + '@context': 'https://www.w3.org/ns/activitystreams', + id: "https://#{valid_domain}/@foo/1234", + type: 'Event', + name: "Let's change the world", + attributedTo: ActivityPub::TagManager.instance.uri_for(sender) + } + end + + it 'creates status' do + status = sender.statuses.first + + expect(status).to_not be_nil + expect(status.url).to eq "https://#{valid_domain}/@foo/1234" + expect(strip_tags(status.text)).to eq "Let's change the world https://#{valid_domain}/@foo/1234" + end + end + context 'with wrong id' do let(:note) do { diff --git a/spec/services/fetch_remote_account_service_spec.rb b/spec/services/fetch_remote_account_service_spec.rb deleted file mode 100644 index ee7325be2..000000000 --- a/spec/services/fetch_remote_account_service_spec.rb +++ /dev/null @@ -1,50 +0,0 @@ -require 'rails_helper' - -RSpec.describe FetchRemoteAccountService, type: :service do - let(:url) { 'https://example.com/alice' } - let(:prefetched_body) { nil } - let(:protocol) { :ostatus } - - subject { FetchRemoteAccountService.new.call(url, prefetched_body, protocol) } - - let(:actor) do - { - '@context': 'https://www.w3.org/ns/activitystreams', - id: 'https://example.com/alice', - type: 'Person', - preferredUsername: 'alice', - name: 'Alice', - summary: 'Foo bar', - inbox: 'http://example.com/alice/inbox', - } - end - - let(:webfinger) { { subject: 'acct:alice@example.com', links: [{ rel: 'self', href: 'https://example.com/alice' }] } } - let(:xml) { File.read(Rails.root.join('spec', 'fixtures', 'xml', 'mastodon.atom')) } - - shared_examples 'return Account' do - it { is_expected.to be_an Account } - end - - context 'protocol is :activitypub' do - let(:prefetched_body) { Oj.dump(actor) } - let(:protocol) { :activitypub } - - before do - stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' }) - end - - include_examples 'return Account' - end - - context 'when prefetched_body is nil' do - context 'protocol is :activitypub' do - before do - stub_request(:get, url).to_return(status: 200, body: Oj.dump(actor), headers: { 'Content-Type' => 'application/activity+json' }) - stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' }) - end - - include_examples 'return Account' - end - end -end diff --git a/spec/services/fetch_remote_status_service_spec.rb b/spec/services/fetch_remote_status_service_spec.rb index f9db024b9..1c4b4fee2 100644 --- a/spec/services/fetch_remote_status_service_spec.rb +++ b/spec/services/fetch_remote_status_service_spec.rb @@ -16,9 +16,8 @@ RSpec.describe FetchRemoteStatusService, type: :service do end context 'protocol is :activitypub' do - subject { described_class.new.call(note[:id], prefetched_body, protocol) } + subject { described_class.new.call(note[:id], prefetched_body) } let(:prefetched_body) { Oj.dump(note) } - let(:protocol) { :activitypub } before do account.update(uri: ActivityPub::TagManager.instance.uri_for(account)) @@ -59,7 +58,7 @@ RSpec.describe FetchRemoteStatusService, type: :service do </entry> XML - expect(subject.call('https://fake.domain/foo', status_body, :ostatus)).to be_nil + expect(subject.call('https://fake.domain/foo', status_body)).to be_nil end it 'does not create status with wrong id when id uses http format' do @@ -81,7 +80,7 @@ RSpec.describe FetchRemoteStatusService, type: :service do </entry> XML - expect(subject.call('https://real.domain/statuses/456', status_body, :ostatus)).to be_nil + expect(subject.call('https://real.domain/statuses/456', status_body)).to be_nil end end end diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb index f836147d3..3af6a0689 100644 --- a/spec/services/fetch_resource_service_spec.rb +++ b/spec/services/fetch_resource_service_spec.rb @@ -71,14 +71,14 @@ RSpec.describe FetchResourceService, type: :service do let(:content_type) { 'application/activity+json; charset=utf-8' } let(:body) { json } - it { is_expected.to eq [1, { prefetched_body: body, id: true }, :activitypub] } + it { is_expected.to eq [1, { prefetched_body: body, id: true }] } end context 'when content type is ld+json with profile' do let(:content_type) { 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"' } let(:body) { json } - it { is_expected.to eq [1, { prefetched_body: body, id: true }, :activitypub] } + it { is_expected.to eq [1, { prefetched_body: body, id: true }] } end before do @@ -89,14 +89,14 @@ RSpec.describe FetchResourceService, type: :service do context 'when link header is present' do let(:headers) { { 'Link' => '<http://example.com/foo>; rel="alternate"; type="application/activity+json"', } } - it { is_expected.to eq [1, { prefetched_body: json, id: true }, :activitypub] } + it { is_expected.to eq [1, { prefetched_body: json, id: true }] } end context 'when content type is text/html' do let(:content_type) { 'text/html' } let(:body) { '<html><head><link rel="alternate" href="http://example.com/foo" type="application/activity+json"/></head></html>' } - it { is_expected.to eq [1, { prefetched_body: json, id: true }, :activitypub] } + it { is_expected.to eq [1, { prefetched_body: json, id: true }] } end end end diff --git a/yarn.lock b/yarn.lock index 54c3f140b..f7834e469 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,35 +9,15 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@^7.1.0", "@babel/core@^7.4.5": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.2.tgz#ea5b99693bcfc058116f42fa1dd54da412b29d91" - integrity sha512-eeD7VEZKfhK1KUXGiyPFettgF3m513f8FoBSWiQ1xTvl1RAopLs42Wp9+Ze911I6H0N9lNqJMDgoZT7gHsipeQ== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.2" - "@babel/helpers" "^7.7.0" - "@babel/parser" "^7.7.2" - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.7.2" - convert-source-map "^1.7.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.4.tgz#37e864532200cb6b50ee9a4045f5f817840166ab" - integrity sha512-+bYbx56j4nYBmpsWtnPUsKW3NdnYxbqyfrP2w9wILBuHzdfIKz9prieZK0DFPyIzkjYVUe4QkusGL07r5pXznQ== +"@babel/core@^7.1.0", "@babel/core@^7.4.5", "@babel/core@^7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.5.tgz#ae1323cd035b5160293307f50647e83f8ba62f7e" + integrity sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw== dependencies: "@babel/code-frame" "^7.5.5" "@babel/generator" "^7.7.4" "@babel/helpers" "^7.7.4" - "@babel/parser" "^7.7.4" + "@babel/parser" "^7.7.5" "@babel/template" "^7.7.4" "@babel/traverse" "^7.7.4" "@babel/types" "^7.7.4" @@ -49,17 +29,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.0.0", "@babel/generator@^7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.2.tgz#2f4852d04131a5e17ea4f6645488b5da66ebf3af" - integrity sha512-WthSArvAjYLz4TcbKOi88me+KmDJdKSlfwwN8CnUYn9jBkzhq0ZEPuBfkAWIvjJ3AdEV1Cf/+eSQTnp3IDJKlQ== - dependencies: - "@babel/types" "^7.7.2" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/generator@^7.7.4": +"@babel/generator@^7.0.0", "@babel/generator@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.4.tgz#db651e2840ca9aa66f327dcec1dc5f5fa9611369" integrity sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg== @@ -138,15 +108,6 @@ "@babel/traverse" "^7.7.4" "@babel/types" "^7.7.4" -"@babel/helper-function-name@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz#44a5ad151cfff8ed2599c91682dda2ec2c8430a3" - integrity sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q== - dependencies: - "@babel/helper-get-function-arity" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/types" "^7.7.0" - "@babel/helper-function-name@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz#ab6e041e7135d436d8f0a3eca15de5b67a341a2e" @@ -156,13 +117,6 @@ "@babel/template" "^7.7.4" "@babel/types" "^7.7.4" -"@babel/helper-get-function-arity@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz#c604886bc97287a1d1398092bc666bc3d7d7aa2d" - integrity sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw== - dependencies: - "@babel/types" "^7.7.0" - "@babel/helper-get-function-arity@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0" @@ -203,6 +157,18 @@ "@babel/types" "^7.7.4" lodash "^4.17.13" +"@babel/helper-module-transforms@^7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz#d044da7ffd91ec967db25cd6748f704b6b244835" + integrity sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw== + dependencies: + "@babel/helper-module-imports" "^7.7.4" + "@babel/helper-simple-access" "^7.7.4" + "@babel/helper-split-export-declaration" "^7.7.4" + "@babel/template" "^7.7.4" + "@babel/types" "^7.7.4" + lodash "^4.17.13" + "@babel/helper-optimise-call-expression@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz#034af31370d2995242aa4df402c3b7794b2dcdf2" @@ -251,13 +217,6 @@ "@babel/template" "^7.7.4" "@babel/types" "^7.7.4" -"@babel/helper-split-export-declaration@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz#1365e74ea6c614deeb56ebffabd71006a0eb2300" - integrity sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA== - dependencies: - "@babel/types" "^7.7.0" - "@babel/helper-split-export-declaration@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz#57292af60443c4a3622cf74040ddc28e68336fd8" @@ -275,15 +234,6 @@ "@babel/traverse" "^7.7.4" "@babel/types" "^7.7.4" -"@babel/helpers@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.0.tgz#359bb5ac3b4726f7c1fde0ec75f64b3f4275d60b" - integrity sha512-VnNwL4YOhbejHb7x/b5F39Zdg5vIQpUUNzJwx0ww1EcVRt41bbGRZWhAURrfY32T5zTT3qwNOQFWpn+P0i0a2g== - dependencies: - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - "@babel/helpers@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.4.tgz#62c215b9e6c712dadc15a9a0dcab76c92a940302" @@ -302,15 +252,10 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.7.0", "@babel/parser@^7.7.2": - version "7.7.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.3.tgz#5fad457c2529de476a248f75b0f090b3060af043" - integrity sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A== - -"@babel/parser@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.4.tgz#75ab2d7110c2cf2fa949959afb05fa346d2231bb" - integrity sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.7.4", "@babel/parser@^7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.5.tgz#cbf45321619ac12d83363fcf9c94bb67fa646d71" + integrity sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig== "@babel/plugin-proposal-async-generator-functions@^7.7.4": version "7.7.4" @@ -354,10 +299,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-json-strings" "^7.7.4" -"@babel/plugin-proposal-object-rest-spread@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz#cc57849894a5c774214178c8ab64f6334ec8af71" - integrity sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ== +"@babel/plugin-proposal-object-rest-spread@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz#9f27075004ab99be08c5c1bd653a2985813cb370" + integrity sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.7.4" @@ -370,10 +315,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" -"@babel/plugin-proposal-unicode-property-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.4.tgz#7c239ccaf09470dbe1d453d50057460e84517ebb" - integrity sha512-cHgqHgYvffluZk85dJ02vloErm3Y6xtH+2noOBOJ2kXOJH3aVCDnj5eR/lVNlTnYu4hndAPJD3rTFjW3qee0PA== +"@babel/plugin-proposal-unicode-property-regex@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz#433fa9dac64f953c12578b29633f456b68831c4e" + integrity sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" @@ -493,10 +438,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-dotall-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz#f7ccda61118c5b7a2599a72d5e3210884a021e96" - integrity sha512-mk0cH1zyMa/XHeb6LOTXTbG7uIJ8Rrjlzu91pUx/KS3JpcgaTDwMS8kM+ar8SLOvlL2Lofi4CGBAjCo3a2x+lw== +"@babel/plugin-transform-dotall-regex@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz#3e9713f1b69f339e87fa796b097d73ded16b937b" + integrity sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" @@ -545,21 +490,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-amd@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.4.tgz#276b3845ca2b228f2995e453adc2e6f54d72fb71" - integrity sha512-/542/5LNA18YDtg1F+QHvvUSlxdvjZoD/aldQwkq+E3WCkbEjNSN9zdrOXaSlfg3IfGi22ijzecklF/A7kVZFQ== +"@babel/plugin-transform-modules-amd@^7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz#39e0fb717224b59475b306402bb8eedab01e729c" + integrity sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ== dependencies: - "@babel/helper-module-transforms" "^7.7.4" + "@babel/helper-module-transforms" "^7.7.5" "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.4.tgz#bee4386e550446343dd52a571eda47851ff857a3" - integrity sha512-k8iVS7Jhc367IcNF53KCwIXtKAH7czev866ThsTgy8CwlXjnKZna2VHwChglzLleYrcHz1eQEIJlGRQxB53nqA== +"@babel/plugin-transform-modules-commonjs@^7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz#1d27f5eb0bcf7543e774950e5b2fa782e637b345" + integrity sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q== dependencies: - "@babel/helper-module-transforms" "^7.7.4" + "@babel/helper-module-transforms" "^7.7.5" "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-simple-access" "^7.7.4" babel-plugin-dynamic-import-node "^2.3.0" @@ -603,10 +548,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-replace-supers" "^7.7.4" -"@babel/plugin-transform-parameters@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.4.tgz#da4555c97f39b51ac089d31c7380f03bca4075ce" - integrity sha512-VJwhVePWPa0DqE9vcfptaJSzNDKrWU/4FbYCjZERtmqEs05g3UMXnYMZoXja7JAJ7Y7sPZipwm/pGApZt7wHlw== +"@babel/plugin-transform-parameters@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz#7a884b2460164dc5f194f668332736584c760007" + integrity sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew== dependencies: "@babel/helper-call-delegate" "^7.7.4" "@babel/helper-get-function-arity" "^7.7.4" @@ -659,10 +604,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.7.4" -"@babel/plugin-transform-regenerator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.4.tgz#d18eac0312a70152d7d914cbed2dc3999601cfc0" - integrity sha512-e7MWl5UJvmPEwFJTwkBlPmqixCtr9yAASBqff4ggXTNicZiwbF8Eefzm6NVgfiBp7JdAGItecnctKTgH44q2Jw== +"@babel/plugin-transform-regenerator@^7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz#3a8757ee1a2780f390e89f246065ecf59c26fce9" + integrity sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw== dependencies: regenerator-transform "^0.14.0" @@ -673,10 +618,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-runtime@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.7.4.tgz#51fe458c1c1fa98a8b07934f4ed38b6cd62177a6" - integrity sha512-O8kSkS5fP74Ad/8pfsCMGa8sBRdLxYoSReaARRNSz3FbFQj3z/QUvoUmJ28gn9BO93YfnXc3j+Xyaqe8cKDNBQ== +"@babel/plugin-transform-runtime@^7.7.6": + version "7.7.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.7.6.tgz#4f2b548c88922fb98ec1c242afd4733ee3e12f61" + integrity sha512-tajQY+YmXR7JjTwRvwL4HePqoL3DYxpYXIHKVvrOIvJmeHe2y1w4tz5qz9ObUDC9m76rCzIMPyn4eERuwA4a4A== dependencies: "@babel/helper-module-imports" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" @@ -728,19 +673,19 @@ "@babel/helper-create-regexp-features-plugin" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/preset-env@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.4.tgz#ccaf309ae8d1ee2409c85a4e2b5e280ceee830f8" - integrity sha512-Dg+ciGJjwvC1NIe/DGblMbcGq1HOtKbw8RLl4nIjlfcILKEOkWT/vRqPpumswABEBVudii6dnVwrBtzD7ibm4g== +"@babel/preset-env@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.7.tgz#c294167b91e53e7e36d820e943ece8d0c7fe46ac" + integrity sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg== dependencies: "@babel/helper-module-imports" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-async-generator-functions" "^7.7.4" "@babel/plugin-proposal-dynamic-import" "^7.7.4" "@babel/plugin-proposal-json-strings" "^7.7.4" - "@babel/plugin-proposal-object-rest-spread" "^7.7.4" + "@babel/plugin-proposal-object-rest-spread" "^7.7.7" "@babel/plugin-proposal-optional-catch-binding" "^7.7.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.7.4" + "@babel/plugin-proposal-unicode-property-regex" "^7.7.7" "@babel/plugin-syntax-async-generators" "^7.7.4" "@babel/plugin-syntax-dynamic-import" "^7.7.4" "@babel/plugin-syntax-json-strings" "^7.7.4" @@ -754,23 +699,23 @@ "@babel/plugin-transform-classes" "^7.7.4" "@babel/plugin-transform-computed-properties" "^7.7.4" "@babel/plugin-transform-destructuring" "^7.7.4" - "@babel/plugin-transform-dotall-regex" "^7.7.4" + "@babel/plugin-transform-dotall-regex" "^7.7.7" "@babel/plugin-transform-duplicate-keys" "^7.7.4" "@babel/plugin-transform-exponentiation-operator" "^7.7.4" "@babel/plugin-transform-for-of" "^7.7.4" "@babel/plugin-transform-function-name" "^7.7.4" "@babel/plugin-transform-literals" "^7.7.4" "@babel/plugin-transform-member-expression-literals" "^7.7.4" - "@babel/plugin-transform-modules-amd" "^7.7.4" - "@babel/plugin-transform-modules-commonjs" "^7.7.4" + "@babel/plugin-transform-modules-amd" "^7.7.5" + "@babel/plugin-transform-modules-commonjs" "^7.7.5" "@babel/plugin-transform-modules-systemjs" "^7.7.4" "@babel/plugin-transform-modules-umd" "^7.7.4" "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4" "@babel/plugin-transform-new-target" "^7.7.4" "@babel/plugin-transform-object-super" "^7.7.4" - "@babel/plugin-transform-parameters" "^7.7.4" + "@babel/plugin-transform-parameters" "^7.7.7" "@babel/plugin-transform-property-literals" "^7.7.4" - "@babel/plugin-transform-regenerator" "^7.7.4" + "@babel/plugin-transform-regenerator" "^7.7.5" "@babel/plugin-transform-reserved-words" "^7.7.4" "@babel/plugin-transform-shorthand-properties" "^7.7.4" "@babel/plugin-transform-spread" "^7.7.4" @@ -780,7 +725,7 @@ "@babel/plugin-transform-unicode-regex" "^7.7.4" "@babel/types" "^7.7.4" browserslist "^4.6.0" - core-js-compat "^3.1.1" + core-js-compat "^3.6.0" invariant "^2.2.2" js-levenshtein "^1.1.3" semver "^5.5.0" @@ -810,23 +755,14 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.4.tgz#b23a856751e4bf099262f867767889c0e3fe175b" - integrity sha512-r24eVUUr0QqNZa+qrImUk8fn5SPhHq+IfYvIoIMg0do3GdK9sMdiLKP3GYVVaxpPKORgm8KRKaNTEhAjgIpLMw== +"@babel/runtime@^7.1.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.7.tgz#194769ca8d6d7790ec23605af9ee3e42a0aa79cf" + integrity sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA== dependencies: regenerator-runtime "^0.13.2" -"@babel/template@^7.0.0", "@babel/template@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.0.tgz#4fadc1b8e734d97f56de39c77de76f2562e597d0" - integrity sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/template@^7.7.4": +"@babel/template@^7.0.0", "@babel/template@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.4.tgz#428a7d9eecffe27deac0a98e23bf8e3675d2a77b" integrity sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw== @@ -835,22 +771,7 @@ "@babel/parser" "^7.7.4" "@babel/types" "^7.7.4" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.2.tgz#ef0a65e07a2f3c550967366b3d9b62a2dcbeae09" - integrity sha512-TM01cXib2+rgIZrGJOLaHV/iZUAxf4A0dt5auY6KNZ+cm6aschuJGqKJM3ROTt3raPUdIDk9siAufIFEleRwtw== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.2" - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - "@babel/parser" "^7.7.2" - "@babel/types" "^7.7.2" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/traverse@^7.7.4": +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558" integrity sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw== @@ -865,7 +786,7 @@ globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.3.0", "@babel/types@^7.7.0", "@babel/types@^7.7.2", "@babel/types@^7.7.4": +"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.3.0", "@babel/types@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193" integrity sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA== @@ -1168,6 +1089,11 @@ dependencies: "@babel/types" "^7.3.0" +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" @@ -1591,6 +1517,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.0.tgz#5681f0dcf7ae5880a7841d8831c4724ed9cc0172" + integrity sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1670,13 +1604,14 @@ array-flatten@^2.1.0: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= +array-includes@^3.0.3, array-includes@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" + integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" + define-properties "^1.1.3" + es-abstract "^1.17.0" + is-string "^1.0.5" array-union@^1.0.1: version "1.0.2" @@ -1703,14 +1638,13 @@ array.prototype.find@^2.1.0: define-properties "^1.1.3" es-abstract "^1.13.0" -array.prototype.flat@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz#812db8f02cad24d3fab65dd67eabe3b8903494a4" - integrity sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw== +array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" + integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== dependencies: - define-properties "^1.1.2" - es-abstract "^1.10.0" - function-bind "^1.1.1" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" arrify@^1.0.1: version "1.0.1" @@ -2220,14 +2154,14 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.0.tgz#6f06b0f974a7cc3a84babc2ccc56493668e3c789" - integrity sha512-HYnxc/oLRWvJ3TsGegR0SRL/UDnknGq2s/a8dYYEO+kOQ9m9apKoS5oiathLKZdh/e9uE+/J3j92qPlGD/vTqA== +browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.8.0, browserslist@^4.8.2: + version "4.8.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.2.tgz#b45720ad5fbc8713b7253c20766f701c9a694289" + integrity sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA== dependencies: - caniuse-lite "^1.0.30001012" - electron-to-chromium "^1.3.317" - node-releases "^1.1.41" + caniuse-lite "^1.0.30001015" + electron-to-chromium "^1.3.322" + node-releases "^1.1.42" bser@^2.0.0: version "2.0.0" @@ -2285,26 +2219,6 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cacache@^11.2.0: - version "11.3.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc" - integrity sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - cacache@^12.0.2, cacache@^12.0.3: version "12.0.3" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" @@ -2421,6 +2335,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001012: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001013.tgz#da2440d4d266a17d40eb79bd19c0c8cc1d029c72" integrity sha512-hOAXaWKuq/UVFgYawxIOdPdyMQdYcwOCDOjnZcKn7wCgFUrhP7smuNZjGLuJlPSgE6aRA4cRJ+bGSrhtEt7ZAg== +caniuse-lite@^1.0.30001015: + version "1.0.30001016" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz#16ea48d7d6e8caf3cad3295c2d746fe38c4e7f66" + integrity sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA== + capture-exit@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" @@ -2468,13 +2387,13 @@ check-types@^8.0.3: resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== -cheerio@^1.0.0-rc.2: - version "1.0.0-rc.2" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" - integrity sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs= +cheerio@^1.0.0-rc.3: + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" + integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA== dependencies: css-select "~1.2.0" - dom-serializer "~0.1.0" + dom-serializer "~0.1.1" entities "~1.1.1" htmlparser2 "^3.9.1" lodash "^4.15.0" @@ -2601,6 +2520,15 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -2644,12 +2572,19 @@ color-convert@^1.9.0, color-convert@^1.9.1: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -2682,11 +2617,16 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.11.0, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@^2.8.1, commander@~2.20.0: +commander@^2.11.0, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@^2.8.1: version "2.20.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.1.tgz#3863ce3ca92d0831dcf2a102f5fb4b5926afd0f9" integrity sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg== +commander@~2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -2704,16 +2644,16 @@ compressible@~2.0.16: dependencies: mime-db ">= 1.40.0 < 2" -compression-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.0.0.tgz#097d2e4d95c3a14cb5c8ed20899009ab5b9bbca0" - integrity sha512-ls+oKw4eRbvaSv/hj9NmctihhBcR26j76JxV0bLRLcWhrUBdQFgd06z/Kgg7exyQvtWWP484wZxs0gIUX3NO0Q== +compression-webpack-plugin@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.0.1.tgz#be7a343e6dfbccbd64a77c5fbe29627d140fc321" + integrity sha512-FOwoBVzDiwSdJDnZTKXDpAjJU90k8SbChgxnoiYwTo15xjIDJkSC8wFKuc13DymXjgasPEqzS5+2RUgSKXdKKA== dependencies: - cacache "^11.2.0" + cacache "^13.0.1" find-cache-dir "^3.0.0" neo-async "^2.5.0" - schema-utils "^1.0.0" - serialize-javascript "^1.4.0" + schema-utils "^2.6.1" + serialize-javascript "^2.1.2" webpack-sources "^1.0.1" compression@^1.7.4: @@ -2817,10 +2757,10 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -copy-webpack-plugin@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.0.5.tgz#731df6a837a2ef0f8f8e2345bdfe9b7c62a2da68" - integrity sha512-7N68eIoQTyudAuxkfPT7HzGoQ+TsmArN/I3HFwG+lVE3FNzqvZKIiaxtYh4o3BIznioxUvx9j26+Rtsc9htQUQ== +copy-webpack-plugin@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz#5481a03dea1123d88a988c6ff8b78247214f0b88" + integrity sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg== dependencies: cacache "^12.0.3" find-cache-dir "^2.1.0" @@ -2832,22 +2772,16 @@ copy-webpack-plugin@^5.0.5: normalize-path "^3.0.0" p-limit "^2.2.1" schema-utils "^1.0.0" - serialize-javascript "^2.1.0" + serialize-javascript "^2.1.2" webpack-log "^2.0.0" -core-js-compat@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.1.3.tgz#0cc3ba4c7f62928c2837e1cffbe8dc78b4f1ae14" - integrity sha512-EP018pVhgwsKHz3YoN1hTq49aRe+h017Kjz0NQz3nXV0cCRMvH3fLQl+vEPGr4r4J5sk4sU3tUC7U1aqTCeJeA== +core-js-compat@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.0.tgz#4eb6cb69d03d99159ed7c860cd5fcf7d23a62ea9" + integrity sha512-Z3eCNjGgoYluH89Jt4wVkfYsc/VdLrA2/woX5lm0isO/pCT+P+Y+o65bOuEnjDJLthdwTBxbCVzptTXtc18fJg== dependencies: - browserslist "^4.6.0" - core-js-pure "3.1.3" - semver "^6.1.0" - -core-js-pure@3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.3.tgz#4c90752d5b9471f641514f3728f51c1e0783d0b5" - integrity sha512-k3JWTrcQBKqjkjI0bkfXS0lbpWPxYuHWfMMjC1VDmzU4Q58IwSbuXSo99YO/hUHlw/EB4AlfA2PVxOGkrIq6dA== + browserslist "^4.8.2" + semver "7.0.0" core-js@^1.0.0: version "1.2.7" @@ -3015,23 +2949,23 @@ css-list-helpers@^1.0.1: dependencies: tcomb "^2.5.0" -css-loader@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.2.0.tgz#bb570d89c194f763627fcf1f80059c6832d009b2" - integrity sha512-QTF3Ud5H7DaZotgdcJjGMvyDj5F3Pn1j/sC6VBEOVp94cbwqyIBdcs/quzj4MC1BKQSrTpQznegH/5giYbhnCQ== +css-loader@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.0.tgz#9fb263436783117a41d014e45e8eaeba54dd6670" + integrity sha512-JornYo4RAXl1Mzt0lOSVPmArzAMV3rGY2VuwtaDc732WTWjdwTaeS19nCGWMcSCf305Q396lhhDAJEWWM0SgPQ== dependencies: camelcase "^5.3.1" cssesc "^3.0.0" icss-utils "^4.1.1" loader-utils "^1.2.3" normalize-path "^3.0.0" - postcss "^7.0.17" + postcss "^7.0.23" postcss-modules-extract-imports "^2.0.0" postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.1.0" + postcss-modules-scope "^2.1.1" postcss-modules-values "^3.0.0" - postcss-value-parser "^4.0.0" - schema-utils "^2.0.0" + postcss-value-parser "^4.0.2" + schema-utils "^2.6.0" css-select-base-adapter@~0.1.0: version "0.1.1" @@ -3240,7 +3174,7 @@ date-now@^0.1.4: resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= -debug@2.6.9, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -3483,7 +3417,7 @@ dom-helpers@^3.2.1, dom-helpers@^3.3.1: dependencies: "@babel/runtime" "^7.1.2" -dom-serializer@0, dom-serializer@~0.1.0: +dom-serializer@0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" integrity sha1-BzxpdUbOB4DOI75KKOKT5AvDDII= @@ -3491,6 +3425,14 @@ dom-serializer@0, dom-serializer@~0.1.0: domelementtype "~1.1.1" entities "~1.1.1" +dom-serializer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + 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" @@ -3586,10 +3528,10 @@ ejs@^2.3.4, ejs@^2.6.1: resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz#5b5ab57f718b79d4aca9254457afecd36fa80228" integrity sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ== -electron-to-chromium@^1.3.317: - version "1.3.321" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.321.tgz#913869f5ec85daabba0e75c9c314b4bf26cdb01e" - integrity sha512-jJy/BZK2s2eAjMPXVMSaCmo7/pSY2aKkfQ+LoAb5Wk39qAhyP9r8KU74c4qTgr9cD/lPUhJgReZxxqU0n5puog== +electron-to-chromium@^1.3.322: + version "1.3.322" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8" + integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA== elliptic@^6.0.0: version "6.5.1" @@ -3683,40 +3625,41 @@ enzyme-adapter-utils@^1.12.1: prop-types "^15.7.2" semver "^5.7.0" -enzyme-shallow-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.0.tgz#d8e4603495e6ea279038eef05a4bf4887b55dc69" - integrity sha512-VUf+q5o1EIv2ZaloNQQtWCJM9gpeux6vudGVH6vLmfPXFLRuxl5+Aq3U260wof9nn0b0i+P5OEUXm1vnxkRpXQ== +enzyme-shallow-equal@^1.0.0, enzyme-shallow-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.1.tgz#7afe03db3801c9b76de8440694096412a8d9d49e" + integrity sha512-hGA3i1so8OrYOZSM9whlkNmVHOicJpsjgTzC+wn2JMJXhq1oO4kA4bJ5MsfzSIcC71aLDKzJ6gZpIxrqt3QTAQ== dependencies: has "^1.0.3" - object-is "^1.0.1" + object-is "^1.0.2" -enzyme@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.10.0.tgz#7218e347c4a7746e133f8e964aada4a3523452f6" - integrity sha512-p2yy9Y7t/PFbPoTvrWde7JIYB2ZyGC+NgTNbVEGvZ5/EyoYSr9aG/2rSbVvyNvMHEhw9/dmGUJHWtfQIEiX9pg== +enzyme@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28" + integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw== dependencies: - array.prototype.flat "^1.2.1" - cheerio "^1.0.0-rc.2" - function.prototype.name "^1.1.0" + array.prototype.flat "^1.2.3" + cheerio "^1.0.0-rc.3" + enzyme-shallow-equal "^1.0.1" + function.prototype.name "^1.1.2" has "^1.0.3" - html-element-map "^1.0.0" - is-boolean-object "^1.0.0" - is-callable "^1.1.4" - is-number-object "^1.0.3" - is-regex "^1.0.4" - is-string "^1.0.4" + html-element-map "^1.2.0" + is-boolean-object "^1.0.1" + is-callable "^1.1.5" + is-number-object "^1.0.4" + is-regex "^1.0.5" + is-string "^1.0.5" is-subset "^0.1.1" lodash.escape "^4.0.1" lodash.isequal "^4.5.0" - object-inspect "^1.6.0" - object-is "^1.0.1" + object-inspect "^1.7.0" + object-is "^1.0.2" object.assign "^4.1.0" - object.entries "^1.0.4" - object.values "^1.0.4" - raf "^3.4.0" + object.entries "^1.1.1" + object.values "^1.1.1" + raf "^3.4.1" rst-selector-parser "^2.2.3" - string.prototype.trim "^1.1.2" + string.prototype.trim "^1.2.1" errno@^0.1.3, errno@~0.1.7: version "0.1.7" @@ -3732,21 +3675,22 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.10.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.15.0, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.7.0: - version "1.16.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.2.tgz#4e874331645e9925edef141e74fc4bd144669d34" - integrity sha512-jYo/J8XU2emLXl3OLwfwtuFfuF2w6DYPs+xy9ZfVyPkDcrauu6LYrw/q2TyCtrbc/KUdCiC5e9UajRhgNkVopA== +es-abstract@^1.13.0, es-abstract@^1.15.0, es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.5.1: + version "1.17.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0.tgz#f42a517d0036a5591dbb2c463591dc8bb50309b1" + integrity sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.1" - is-callable "^1.1.4" - is-regex "^1.0.4" + is-callable "^1.1.5" + is-regex "^1.0.5" object-inspect "^1.7.0" object-keys "^1.1.1" - string.prototype.trimleft "^2.1.0" - string.prototype.trimright "^2.1.0" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" es-to-primitive@^1.2.1: version "1.2.1" @@ -3757,7 +3701,7 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@^0.10.51, es5-ext@~0.10.14: +es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14: version "0.10.51" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.51.tgz#ed2d7d9d48a12df86e0299287e93a09ff478842f" integrity sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ== @@ -3806,13 +3750,13 @@ es6-symbol@3.1.1: d "1" es5-ext "~0.10.14" -es6-symbol@^3.1.1, es6-symbol@^3.1.2, es6-symbol@~3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.2.tgz#859fdd34f32e905ff06d752e7171ddd4444a7ed1" - integrity sha512-/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ== +es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== dependencies: d "^1.0.1" - es5-ext "^0.10.51" + ext "^1.1.2" es6-weak-map@^2.0.1: version "2.0.2" @@ -3864,12 +3808,12 @@ eslint-import-resolver-node@^0.3.2: debug "^2.6.9" resolve "^1.5.0" -eslint-module-utils@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" - integrity sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw== +eslint-module-utils@^2.4.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.0.tgz#cdf0b40d623032274ccd2abd7e64c4e524d6e19c" + integrity sha512-kCo8pZaNz2dsAW7nCUjuVoI11EBXXpIzfNxmaoLhXoRDOnqXLC4iSGVRdZPhOitfbdEfMEfKOiENaK6wDPZEGw== dependencies: - debug "^2.6.8" + debug "^2.6.9" pkg-dir "^2.0.0" eslint-plugin-eslint-plugin@^2.1.0: @@ -3877,22 +3821,23 @@ eslint-plugin-eslint-plugin@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-2.1.0.tgz#a7a00f15a886957d855feacaafee264f039e62d5" integrity sha512-kT3A/ZJftt28gbl/Cv04qezb/NQ1dwYIbi8lyf806XMxkus7DvOVCLIfTXMrorp322Pnoez7+zabXH29tADIDg== -eslint-plugin-import@~2.18.2: - version "2.18.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6" - integrity sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ== +eslint-plugin-import@~2.19.1: + version "2.19.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.19.1.tgz#5654e10b7839d064dd0d46cd1b88ec2133a11448" + integrity sha512-x68131aKoCZlCae7rDXKSAQmbT5DQuManyXo2sK6fJJ0aK5CWAkv6A6HJZGgqC8IhjQxYPgo6/IY4Oz8AFsbBw== dependencies: array-includes "^3.0.3" + array.prototype.flat "^1.2.1" contains-path "^0.1.0" debug "^2.6.9" doctrine "1.5.0" eslint-import-resolver-node "^0.3.2" - eslint-module-utils "^2.4.0" + eslint-module-utils "^2.4.1" has "^1.0.3" minimatch "^3.0.4" object.values "^1.1.0" read-pkg-up "^2.0.0" - resolve "^1.11.0" + resolve "^1.12.0" eslint-plugin-jsx-a11y@~6.2.3: version "6.2.3" @@ -4235,6 +4180,13 @@ express@^4.16.3, express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.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" @@ -4433,10 +4385,10 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.0.0.tgz#cd4b7dd97b7185b7e17dbfe2d6e4115ee3eeb8fc" - integrity sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw== +find-cache-dir@^3.0.0, find-cache-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.1.0.tgz#9935894999debef4cf9f677fdf646d002c4cdecb" + integrity sha512-zw+EFiNBNPgI2NTrKkDd1xd7q0cs6wr/iWnr/oUkI0yF9K9GqQ+riIt4aiyFaaqpaWbxPrJXHI+QvmNUQbX+0Q== dependencies: commondir "^1.0.1" make-dir "^3.0.0" @@ -4461,7 +4413,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0: +find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -4641,36 +4593,26 @@ fsevents@^2.0.6: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.7.tgz#382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a" integrity sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ== -function-bind@^1.0.2, function-bind@^1.1.1: +function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.0.tgz#8bd763cc0af860a859cc5d49384d74b932cd2327" - integrity sha512-Bs0VRrTz4ghD8pTmbJQD1mZ8A/mN0ur/jGz+A6FBxPDUPkm1tNfF6bhTYPA7i7aF4lZJVr+OXTNNrnnIl58Wfg== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - is-callable "^1.1.3" - -function.prototype.name@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.1.tgz#6d252350803085abc2ad423d4fe3be2f9cbda392" - integrity sha512-e1NzkiJuw6xqVH7YSdiW/qDHebcmMhPNe6w+4ZYYEg0VA+LaLzx37RimbPLuonHhYGFGPx1ME2nSi74JiaCr/Q== +function.prototype.name@^1.1.1, function.prototype.name@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45" + integrity sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg== dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" - functions-have-names "^1.1.1" - is-callable "^1.1.4" + es-abstract "^1.17.0-next.1" + functions-have-names "^1.2.0" functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -functions-have-names@^1.1.1: +functions-have-names@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.0.tgz#83da7583e4ea0c9ac5ff530f73394b033e0bf77d" integrity sha512-zKXyzksTeaCSw5wIX79iCA40YAa6CJMJgNg9wdkU/ERBrIdPSimPICYiLp65lRbSBqtiHql/HZfS2DyI/AH6tQ== @@ -4890,9 +4832,9 @@ handle-thing@^2.0.0: integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== handlebars@^4.1.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.2.0.tgz#57ce8d2175b9bbb3d8b3cf3e4217b1aec8ddcb2e" - integrity sha512-Kb4xn5Qh1cxAKvQnzNWZ512DhABzyFNmsaJf3OAkWNa4NkaqWcNI8Tao8Tasi0/F4JD9oyG0YxuFyvyR57d+Gw== + version "4.5.3" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482" + integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA== dependencies: neo-async "^2.6.0" optimist "^0.6.1" @@ -4971,7 +4913,7 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.0, has@^1.0.1, has@^1.0.3: +has@^1.0.0, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== @@ -5085,10 +5027,10 @@ html-comment-regex@^1.1.0: resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== -html-element-map@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.0.1.tgz#3c4fcb4874ebddfe4283b51c8994e7713782b592" - integrity sha512-BZSfdEm6n706/lBfXKWa4frZRZcT5k1cOusw95ijZsHlI+GdgY0v95h6IzO3iIDf2ROwq570YTwqNPqHcNMozw== +html-element-map@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.2.0.tgz#dfbb09efe882806af63d990cf6db37993f099f22" + integrity sha512-0uXq8HsuG1v2TmQ8QkIhzbrqeskE4kn52Q18QJ9iAA/SnHoEKXWiUxHQtclRsCFWEUD2So34X+0+pZZu862nnw== dependencies: array-filter "^1.0.0" @@ -5521,10 +5463,10 @@ is-binary-path@^2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" - integrity sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M= +is-boolean-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.1.tgz#10edc0900dd127697a92f6f9807c7617d68ac48e" + integrity sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ== is-buffer@^1.1.5: version "1.1.6" @@ -5543,10 +5485,10 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" -is-callable@^1.1.3, is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== +is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== is-ci@^2.0.0: version "2.0.0" @@ -5685,10 +5627,10 @@ is-nan@^1.2.1: dependencies: define-properties "^1.1.1" -is-number-object@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799" - integrity sha1-8mWrian0RQNO9q/xWo8AsA9VF5k= +is-number-object@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" + integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== is-number@^3.0.0: version "3.0.0" @@ -5748,12 +5690,12 @@ is-property@^1.0.0, is-property@^1.0.2: resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= +is-regex@^1.0.4, is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== dependencies: - has "^1.0.1" + has "^1.0.3" is-resolvable@^1.0.0: version "1.1.0" @@ -5765,10 +5707,10 @@ is-stream@^1.0.1, is-stream@^1.1.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= -is-string@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz#cc3a9b69857d621e963725a24caeec873b826e64" - integrity sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ= +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== is-subset@^0.1.1: version "0.1.1" @@ -6861,10 +6803,10 @@ mimic-fn@^2.0.0, mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mini-css-extract-plugin@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz#81d41ec4fe58c713a96ad7c723cdb2d0bd4d70e1" - integrity sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw== +mini-css-extract-plugin@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" + integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== dependencies: loader-utils "^1.1.0" normalize-url "1.9.1" @@ -7188,10 +7130,10 @@ node-pre-gyp@^0.12.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.41: - version "1.1.41" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.41.tgz#57674a82a37f812d18e3b26118aefaf53a00afed" - integrity sha512-+IctMa7wIs8Cfsa8iYzeaLTFwv5Y4r5jZud+4AnfymzeEXKBCavFX0KBgzVaPVqf0ywa6PrO8/b+bPqdwjGBSg== +node-releases@^1.1.42: + version "1.1.42" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.42.tgz#a999f6a62f8746981f6da90627a8d2fc090bbad7" + integrity sha512-OQ/ESmUqGawI2PRX+XIRao44qWYBBfN54ImQYdWVTQqUckuejOg76ysSqDBK8NG3zwySRVnX36JwDQ6x+9GxzA== dependencies: semver "^6.3.0" @@ -7326,15 +7268,15 @@ object-fit-images@^3.2.3: resolved "https://registry.yarnpkg.com/object-fit-images/-/object-fit-images-3.2.4.tgz#6c299d38fdf207746e5d2d46c2877f6f25d15b52" integrity sha512-G+7LzpYfTfqUyrZlfrou/PLLLAPNC52FTy5y1CBywX+1/FkxIloOyQXBmZ3Zxa2AWO+lMF0JTuvqbr7G5e5CWg== -object-inspect@^1.6.0, object-inspect@^1.7.0: +object-inspect@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== -object-is@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" - integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= +object-is@^1.0.1, object-is@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" + integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -7358,13 +7300,13 @@ object.assign@^4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" -object.entries@^1.0.4, object.entries@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" - integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA== +object.entries@^1.1.0, object.entries@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b" + integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ== dependencies: define-properties "^1.1.3" - es-abstract "^1.12.0" + es-abstract "^1.17.0-next.1" function-bind "^1.1.1" has "^1.0.3" @@ -7393,13 +7335,13 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.0.4, object.values@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" - integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== +object.values@^1.0.4, object.values@^1.1.0, object.values@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== dependencies: define-properties "^1.1.3" - es-abstract "^1.12.0" + es-abstract "^1.17.0-next.1" function-bind "^1.1.1" has "^1.0.3" @@ -8112,10 +8054,10 @@ postcss-modules-local-by-default@^3.0.2: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.0.0" -postcss-modules-scope@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz#ad3f5bf7856114f6fcab901b0502e2a2bc39d4eb" - integrity sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A== +postcss-modules-scope@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz#33d4fc946602eb5e9355c4165d68a10727689dba" + integrity sha512-OXRUPecnHCg8b9xWvldG/jUpRIGPNRka0r4D4j0ESUU2/5IOnpsjfPPmDprM3Ih8CgZ8FXjWqaniK5v4rWt3oQ== dependencies: postcss "^7.0.6" postcss-selector-parser "^6.0.0" @@ -8313,7 +8255,7 @@ postcss@^5.0.16: source-map "^0.5.6" supports-color "^3.2.3" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.23, postcss@^7.0.5, postcss@^7.0.6: +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.23, postcss@^7.0.5, postcss@^7.0.6: version "7.0.23" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.23.tgz#9f9759fad661b15964f3cfc3140f66f1e05eadc1" integrity sha512-hOlMf3ouRIFXD+j2VJecwssTwbvsPGJVMzupptg+85WA+i7MwyrydmQAgY3R+m0Bc0exunhbJmijy8u8+vufuQ== @@ -8548,7 +8490,7 @@ quote@^0.4.0: resolved "https://registry.yarnpkg.com/quote/-/quote-0.4.0.tgz#10839217f6c1362b89194044d29b233fd7f32f01" integrity sha1-EIOSF/bBNiuJGUBE0psjP9fzLwE= -raf@^3.1.0, raf@^3.4.0, raf@^3.4.1: +raf@^3.1.0, raf@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== @@ -8690,12 +8632,7 @@ react-intl@^2.9.0: intl-relativeformat "^2.1.0" invariant "^2.1.1" -react-is@^16.10.2, react-is@^16.3.2, react-is@^16.7.0, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: - version "16.11.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.11.0.tgz#b85dfecd48ad1ce469ff558a882ca8e8313928fa" - integrity sha512-gbBVYR2p8mnriqAwWx9LbuUrShnAuSCNnuPGyc7GJrMVQtPDAh8iLpv7FRuMPFb56KkaVZIYSz1PrjI9q0QPCw== - -react-is@^16.8.1: +react-is@^16.10.2, react-is@^16.3.2, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: version "16.12.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c" integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q== @@ -8750,10 +8687,10 @@ react-redux-loading-bar@^4.0.8: prop-types "^15.6.2" react-lifecycles-compat "^3.0.2" -react-redux@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.1.1.tgz#ce6eee1b734a7a76e0788b3309bf78ff6b34fa0a" - integrity sha512-QsW0vcmVVdNQzEkrgzh2W3Ksvr8cqpAv5FhEk7tNEft+5pp7rXxAudTz3VOPawRkLIepItpkEIyLcN/VVXzjTg== +react-redux@^7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.1.3.tgz#717a3d7bbe3a1b2d535c94885ce04cdc5a33fc79" + integrity sha512-uI1wca+ECG9RoVkWQFF4jDMqmaw0/qnvaSvOoL/GA4dNxf6LoV8sUAcNDvE5NWKs4hFpn0t6wswNQnY3f7HT3w== dependencies: "@babel/runtime" "^7.5.5" hoist-non-react-statics "^3.3.0" @@ -8883,10 +8820,10 @@ react-transition-group@^2.2.1: prop-types "^15.6.2" react-lifecycles-compat "^3.0.4" -react@^16.10.2: - version "16.10.2" - resolved "https://registry.yarnpkg.com/react/-/react-16.10.2.tgz#a5ede5cdd5c536f745173c8da47bda64797a4cf0" - integrity sha512-MFVIq0DpIhrHFyqLU0S3+4dIcBhhOvBE8bJ/5kHPVOVaGdo0KuiQzpcjCPsf585WvhypqtrMILyoE2th6dT+Lw== +react@^16.12.0: + version "16.12.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.12.0.tgz#0c0a9c6a142429e3614834d5a778e18aa78a0b83" + integrity sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -9260,7 +9197,7 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.11.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: +resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: version "1.13.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.13.1.tgz#be0aa4c06acd53083505abb35f4d66932ab35d16" integrity sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w== @@ -9446,10 +9383,10 @@ sass-loader@^8.0.0: schema-utils "^2.1.0" semver "^6.3.0" -sass@^1.23.3: - version "1.23.3" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.23.3.tgz#f07503b9e8d2bcf06ef69e8beea5d085589b1620" - integrity sha512-1DKRZxJMOh4Bme16AbWTyYeJAjTlrvw2+fWshHHaepeJfGq2soFZTnt0YhWit+bohtDu4LdyPoEj6VFD4APHog== +sass@^1.24.0: + version "1.24.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.24.0.tgz#e8b9931bc5d18a37d271749311ef2edc83102a77" + integrity sha512-1TsPyMhLTx+9DLlmwg02iBW2p4poGA7LlkWJLpUY/XticFKNhPcx+l4FsIJLKl6oSUfXmAKpVljHEez1hwjqiw== dependencies: chokidar ">=2.0.0 <4.0.0" @@ -9483,10 +9420,10 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.0.0, schema-utils@^2.1.0, schema-utils@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.5.0.tgz#8f254f618d402cc80257486213c8970edfd7c22f" - integrity sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ== +schema-utils@^2.0.0, schema-utils@^2.1.0, schema-utils@^2.6.0, schema-utils@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.1.tgz#eb78f0b945c7bcfa2082b3565e8db3548011dc4f" + integrity sha512-0WXHDs1VDJyo+Zqs9TKLKyD/h7yDpHUhEFsM2CzkICFdoX1av+GBq/J2xRTFfsQO5kBfhZzANf2VcIm84jqDbg== dependencies: ajv "^6.10.2" ajv-keywords "^3.4.1" @@ -9521,7 +9458,12 @@ semver@4.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c= -semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -9545,15 +9487,15 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-javascript@^1.4.0, serialize-javascript@^1.7.0: +serialize-javascript@^1.7.0: version "1.9.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== -serialize-javascript@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.0.tgz#9310276819efd0eb128258bb341957f6eb2fc570" - integrity sha512-a/mxFfU00QT88umAJQsNWOnUKckhNCqOl028N48e7wFmo2/EHpTo9Wso+iJJCMrQnmFvcjto5RJdAHEvVhcyUQ== +serialize-javascript@^2.1.1, serialize-javascript@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" + integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== serve-index@^1.9.1: version "1.9.1" @@ -9999,7 +9941,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== @@ -10008,27 +9950,27 @@ string-width@^4.1.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string.prototype.trim@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" - integrity sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo= +string.prototype.trim@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782" + integrity sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw== dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.0" - function-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" -string.prototype.trimleft@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" - integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== +string.prototype.trimleft@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" + integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== dependencies: define-properties "^1.1.3" function-bind "^1.1.1" -string.prototype.trimright@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" - integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== +string.prototype.trimright@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" + integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== dependencies: define-properties "^1.1.3" function-bind "^1.1.1" @@ -10237,24 +10179,24 @@ terser-webpack-plugin@^1.4.1: webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser-webpack-plugin@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.2.1.tgz#5569e6c7d8be79e5e43d6da23acc3b6ba77d22bd" - integrity sha512-jwdauV5Al7zopR6OAYvIIRcxXCSvLjZjr7uZE8l2tIWb/ryrGN48sJftqGf5k9z09tWhajx53ldp0XPI080YnA== +terser-webpack-plugin@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.2.2.tgz#2a6e00237125564a455ad69b22e08ee59420473a" + integrity sha512-/CHMNswPMAwuD2kd++qys8UmBRmsshPSzHw4BlDwurPtK9YjeK93OV89YWkJulHk972cs07K/7Z92V6PNjWF8A== dependencies: cacache "^13.0.1" - find-cache-dir "^3.0.0" + find-cache-dir "^3.1.0" jest-worker "^24.9.0" - schema-utils "^2.5.0" - serialize-javascript "^2.1.0" + schema-utils "^2.6.1" + serialize-javascript "^2.1.1" source-map "^0.6.1" - terser "^4.3.9" + terser "^4.4.2" webpack-sources "^1.4.3" -terser@^4.1.2, terser@^4.3.9: - version "4.3.9" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.9.tgz#e4be37f80553d02645668727777687dad26bbca8" - integrity sha512-NFGMpHjlzmyOtPL+fDw3G7+6Ueh/sz4mkaUYa4lJCxOPTNzd0Uj0aZJOmsDYoSQyfuVoWDMSWTPU3huyOm2zdA== +terser@^4.1.2, terser@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.4.2.tgz#448fffad0245f4c8a277ce89788b458bfd7706e8" + integrity sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -10496,6 +10438,11 @@ type@^1.0.1: resolved "https://registry.yarnpkg.com/type/-/type-1.0.3.tgz#16f5d39f27a2d28d86e48f8981859e9d3296c179" integrity sha512-51IMtNfVcee8+9GJvj0spSuFcZHe9vSib6Xtgsny1Km9ugyz2mbS08I3rsUIRYgJohFRFU1160sgRodYz378Hg== +type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" + integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -10507,11 +10454,11 @@ ua-parser-js@^0.7.18: integrity sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ== uglify-js@^3.1.4: - version "3.6.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" - integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== + version "3.7.2" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.2.tgz#cb1a601e67536e9ed094a92dd1e333459643d3f9" + integrity sha512-uhRwZcANNWVLrxLfNFEdltoPNhECUR3lc+UdJoG9CBpMcSnKyWA94tc3eAujB1GcMY5Uwq8ZMp4qWpxWYDQmaA== dependencies: - commander "~2.20.0" + commander "~2.20.3" source-map "~0.6.1" unicode-astral-regex@^1.0.1: @@ -11054,6 +11001,15 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -11144,6 +11100,14 @@ yargs-parser@^13.1.0, yargs-parser@^13.1.1: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^16.1.0: + version "16.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" + integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs@12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" @@ -11195,6 +11159,23 @@ yargs@^13.3.0: y18n "^4.0.0" yargs-parser "^13.1.1" +yargs@^15.0.2: + version "15.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.0.2.tgz#4248bf218ef050385c4f7e14ebdf425653d13bd3" + integrity sha512-GH/X/hYt+x5hOat4LMnCqMd8r5Cv78heOMIJn1hr7QPPBqfeC6p89Y78+WB9yGDvfpCvgasfmWLzNzEioOUD9Q== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^16.1.0" + zlibjs@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/zlibjs/-/zlibjs-0.3.1.tgz#50197edb28a1c42ca659cc8b4e6a9ddd6d444554" |