diff --git a/.circleci/config.yml b/.circleci/config.yml index dd943e327..9f43a0573 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,12 +5,13 @@ aliases: docker: - image: circleci/ruby:2.7-buster-node environment: &ruby_environment + BUNDLE_JOBS: 3 + BUNDLE_RETRY: 3 BUNDLE_APP_CONFIG: ./.bundle/ BUNDLE_PATH: ./vendor/bundle/ DB_HOST: localhost DB_USER: root RAILS_ENV: test - PARALLEL_TEST_PROCESSORS: 4 ALLOW_NOPAM: true CONTINUOUS_INTEGRATION: true DISABLE_SIMPLECOV: true @@ -32,9 +33,9 @@ aliases: - &restore_ruby_dependencies restore_cache: keys: - - v2-ruby-dependencies-{{ checksum "/tmp/.ruby-version" }}-{{ checksum "Gemfile.lock" }} - - v2-ruby-dependencies-{{ checksum "/tmp/.ruby-version" }}- - - v2-ruby-dependencies- + - v3-ruby-dependencies-{{ checksum "/tmp/.ruby-version" }}-{{ checksum "Gemfile.lock" }} + - v3-ruby-dependencies-{{ checksum "/tmp/.ruby-version" }}- + - v3-ruby-dependencies- - &install_steps steps: @@ -42,11 +43,13 @@ aliases: - *attach_workspace - restore_cache: keys: - - v1-node-dependencies-{{ checksum "yarn.lock" }} - - v1-node-dependencies- - - run: yarn install --frozen-lockfile + - v2-node-dependencies-{{ checksum "yarn.lock" }} + - v2-node-dependencies- + - run: + name: Install yarn dependencies + command: yarn install --frozen-lockfile - save_cache: - key: v1-node-dependencies-{{ checksum "yarn.lock" }} + key: v2-node-dependencies-{{ checksum "yarn.lock" }} paths: - ./node_modules/ - *persist_to_workspace @@ -57,27 +60,28 @@ aliases: command: | sudo apt-get update sudo apt-get install -y libicu-dev libidn11-dev libprotobuf-dev protobuf-compiler - - ## TODO: FIX THESE BUSTER DEPENDANCES - sudo wget http://ftp.au.debian.org/debian/pool/main/i/icu/libicu57_57.1-6+deb9u3_amd64.deb - sudo dpkg -i libicu57_57.1-6+deb9u3_amd64.deb - sudo wget http://ftp.au.debian.org/debian/pool/main/p/protobuf/libprotobuf10_3.0.0-9_amd64.deb - sudo dpkg -i libprotobuf10_3.0.0-9_amd64.deb - &install_ruby_dependencies steps: - *attach_workspace - *install_system_dependencies - - run: ruby -e 'puts RUBY_VERSION' | tee /tmp/.ruby-version + - run: + name: Set Ruby version + command: ruby -e 'puts RUBY_VERSION' | tee /tmp/.ruby-version - *restore_ruby_dependencies - - run: bundle config set clean 'true' - - run: bundle config set deployment 'true' - - run: bundle config set with 'pam_authentication' - - run: bundle config set without 'development production' - - run: bundle config set frozen 'true' - - run: bundle install --jobs 16 --retry 3 && bundle clean + - run: + name: Set bundler settings + command: | + bundle config clean 'true' + bundle config deployment 'true' + bundle config with 'pam_authentication' + bundle config without 'development production' + bundle config frozen 'true' + - run: + name: Install bundler dependencies + command: bundle check || (bundle install && bundle clean) - save_cache: - key: v2-ruby-dependencies-{{ checksum "/tmp/.ruby-version" }}-{{ checksum "Gemfile.lock" }} + key: v3-ruby-dependencies-{{ checksum "/tmp/.ruby-version" }}-{{ checksum "Gemfile.lock" }} paths: - ./.bundle/ - ./vendor/bundle/ @@ -88,17 +92,26 @@ aliases: - ./mastodon/vendor/bundle/ - &test_steps + parallelism: 4 steps: - *attach_workspace - *install_system_dependencies - - run: sudo apt-get install -y ffmpeg - run: - name: Prepare Tests - command: ./bin/rails parallel:create parallel:load_schema parallel:prepare + name: Install FFMPEG + command: sudo apt-get install -y ffmpeg - run: - name: Run Tests - command: ./bin/retry bundle exec parallel_test ./spec/ --group-by filesize --type rspec - + name: Load database schema + command: ./bin/rails db:create db:schema:load db:seed + - run: + name: Run rspec in parallel + command: | + bundle exec rspec --profile 10 \ + --format RspecJunitFormatter \ + --out test_results/rspec.xml \ + --format progress \ + $(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings) + - store_test_results: + path: test_results jobs: install: <<: *defaults @@ -115,19 +128,14 @@ jobs: environment: *ruby_environment <<: *install_ruby_dependencies - install-ruby2.5: - <<: *defaults - docker: - - image: circleci/ruby:2.5-buster-node - environment: *ruby_environment - <<: *install_ruby_dependencies - build: <<: *defaults steps: - *attach_workspace - *install_system_dependencies - - run: ./bin/rails assets:precompile + - run: + name: Precompile assets + command: ./bin/rails assets:precompile - persist_to_workspace: root: ~/projects/ paths: @@ -149,10 +157,10 @@ jobs: - *install_system_dependencies - run: name: Create database - command: ./bin/rails parallel:create + command: ./bin/rails db:create - run: name: Run migrations - command: ./bin/rails parallel:migrate + command: ./bin/rails db:migrate test-ruby2.7: <<: *defaults @@ -178,35 +186,33 @@ jobs: - image: circleci/redis:5-alpine <<: *test_steps - test-ruby2.5: - <<: *defaults - docker: - - image: circleci/ruby:2.5-buster-node - environment: *ruby_environment - - image: circleci/postgres:12.2 - environment: - POSTGRES_USER: root - POSTGRES_HOST_AUTH_METHOD: trust - - image: circleci/redis:5-alpine - <<: *test_steps - test-webui: <<: *defaults docker: - image: circleci/node:12-buster steps: - *attach_workspace - - run: ./bin/retry yarn test:jest + - run: + name: Run jest + command: yarn test:jest check-i18n: <<: *defaults steps: - *attach_workspace - *install_system_dependencies - - run: bundle exec i18n-tasks check-normalized - - run: bundle exec i18n-tasks unused -l en - - run: bundle exec i18n-tasks check-consistent-interpolations - - run: bundle exec rake repo:check_locales_files + - run: + name: Check locale file normalization + command: bundle exec i18n-tasks check-normalized + - run: + name: Check for unused strings + command: bundle exec i18n-tasks unused -l en + - run: + name: Check for wrong string interpolations + command: bundle exec i18n-tasks check-consistent-interpolations + - run: + name: Check that all required locale files exist + command: bundle exec rake repo:check_locales_files workflows: version: 2 @@ -220,10 +226,6 @@ workflows: requires: - install - install-ruby2.7 - - install-ruby2.5: - requires: - - install - - install-ruby2.7 - build: requires: - install-ruby2.7 @@ -238,10 +240,6 @@ workflows: requires: - install-ruby2.6 - build - - test-ruby2.5: - requires: - - install-ruby2.5 - - build - test-webui: requires: - install diff --git a/.codeclimate.yml b/.codeclimate.yml index 9817d7f1c..d8d5c0ac7 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -30,7 +30,7 @@ plugins: channel: eslint-6 rubocop: enabled: true - channel: rubocop-0-76 + channel: rubocop-0-82 sass-lint: enabled: true exclude_patterns: diff --git a/.env.production.sample b/.env.production.sample index 8a6888621..e041e0a04 100644 --- a/.env.production.sample +++ b/.env.production.sample @@ -33,7 +33,7 @@ LOCAL_DOMAIN=example.com # ALTERNATE_DOMAINS=example1.com,example2.com # Application secrets -# Generate each with the `RAILS_ENV=production bundle exec rake secret` task (`docker-compose run --rm web rake secret` if you use docker compose) +# Generate each with the `RAILS_ENV=production bundle exec rake secret` task (`docker-compose run --rm web bundle exec rake secret` if you use docker compose) SECRET_KEY_BASE= OTP_SECRET= @@ -42,7 +42,7 @@ OTP_SECRET= # You should only generate this once per instance. If you later decide to change it, all push subscription will # be invalidated, requiring the users to access the website again to resubscribe. # -# Generate with `RAILS_ENV=production bundle exec rake mastodon:webpush:generate_vapid_key` task (`docker-compose run --rm web rake mastodon:webpush:generate_vapid_key` if you use docker compose) +# Generate with `RAILS_ENV=production bundle exec rake mastodon:webpush:generate_vapid_key` task (`docker-compose run --rm web bundle exec rake mastodon:webpush:generate_vapid_key` if you use docker compose) # # For more information visit https://rossta.net/blog/using-the-web-push-api-with-vapid.html VAPID_PRIVATE_KEY= diff --git a/.rubocop.yml b/.rubocop.yml index 9a68becbb..3a11f7000 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -2,7 +2,7 @@ require: - rubocop-rails AllCops: - TargetRubyVersion: 2.3 + TargetRubyVersion: 2.4 Exclude: - 'spec/**/*' - 'db/**/*' @@ -46,7 +46,7 @@ Metrics/ClassLength: Metrics/CyclomaticComplexity: Max: 25 -Metrics/LineLength: +Layout/LineLength: AllowURI: true Enabled: false diff --git a/CHANGELOG.md b/CHANGELOG.md index ad353e2ad..7d0110936 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,73 @@ Changelog All notable changes to this project will be documented in this file. +## [v3.1.4] - 2020-05-14 +### Added + +- Add `vi` to available locales ([taicv](https://github.com/tootsuite/mastodon/pull/13542)) +- Add ability to remove identity proofs from account ([Gargron](https://github.com/tootsuite/mastodon/pull/13682)) +- Add ability to exclude local content from federated timeline ([noellabo](https://github.com/tootsuite/mastodon/pull/13504), [noellabo](https://github.com/tootsuite/mastodon/pull/13745)) + - Add `remote` param to `GET /api/v1/timelines/public` REST API + - Add `public/remote` / `public:remote` variants to streaming API + - "Remote only" option in federated timeline column settings in web UI +- Add ability to exclude remote content from hashtag timelines in web UI ([noellabo](https://github.com/tootsuite/mastodon/pull/13502)) + - No changes to REST API + - "Local only" option in hashtag column settings in web UI +- Add Capistrano tasks that reload the services after deploying ([berkes](https://github.com/tootsuite/mastodon/pull/12642)) +- Add `invites_enabled` attribute to `GET /api/v1/instance` in REST API ([ThibG](https://github.com/tootsuite/mastodon/pull/13501)) +- Add `tootctl emoji export` command ([lfuelling](https://github.com/tootsuite/mastodon/pull/13534)) +- Add separate cache directory for non-local uploads ([Gargron](https://github.com/tootsuite/mastodon/pull/12821), [Hanage999](https://github.com/tootsuite/mastodon/pull/13593), [mayaeh](https://github.com/tootsuite/mastodon/pull/13551)) + - Add `tootctl upgrade storage-schema` command to move old non-local uploads to the cache directory +- Add buttons to delete header and avatar from profile settings ([sternenseemann](https://github.com/tootsuite/mastodon/pull/13234)) +- Add emoji graphics and shortcodes from Twemoji 12.1.5 ([DeeUnderscore](https://github.com/tootsuite/mastodon/pull/13021)) + +### Changed + +- Change error message when trying to migrate to an account that does not have current account set as an alias to be more clear ([TheEvilSkeleton](https://github.com/tootsuite/mastodon/pull/13746)) +- Change delivery failure tracking to work with hostnames instead of URLs ([Gargron](https://github.com/tootsuite/mastodon/pull/13437), [noellabo](https://github.com/tootsuite/mastodon/pull/13481), [noellabo](https://github.com/tootsuite/mastodon/pull/13482), [noellabo](https://github.com/tootsuite/mastodon/pull/13535)) +- Change Content-Security-Policy to not need unsafe-inline style-src ([ThibG](https://github.com/tootsuite/mastodon/pull/13679), [ThibG](https://github.com/tootsuite/mastodon/pull/13692), [ThibG](https://github.com/tootsuite/mastodon/pull/13576), [ThibG](https://github.com/tootsuite/mastodon/pull/13575), [ThibG](https://github.com/tootsuite/mastodon/pull/13438)) +- Change how RSS items are titled and formatted ([ThibG](https://github.com/tootsuite/mastodon/pull/13592), [ykzts](https://github.com/tootsuite/mastodon/pull/13591)) + +### Fixed + +- Fix dropdown of muted and followed accounts offering option to hide boosts in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/13748)) +- Fix "You are already signed in" alert being shown at wrong times ([ThibG](https://github.com/tootsuite/mastodon/pull/13547)) +- Fix retrying of failed-to-download media files not actually working ([noellabo](https://github.com/tootsuite/mastodon/pull/13741)) +- Fix first poll option not being focused when adding a poll in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/13740)) +- Fix `sr` locale being selected over `sr-Latn` ([ThibG](https://github.com/tootsuite/mastodon/pull/13693)) +- Fix error within error when limiting backtrace to 3 lines ([Gargron](https://github.com/tootsuite/mastodon/pull/13120)) +- Fix `tootctl media remove-orphans` crashing on "Import" files ([ThibG](https://github.com/tootsuite/mastodon/pull/13685)) +- Fix regression in `tootctl media remove-orphans` ([Gargron](https://github.com/tootsuite/mastodon/pull/13405)) +- Fix old unique jobs digests not having been cleaned up ([Gargron](https://github.com/tootsuite/mastodon/pull/13683)) +- Fix own following/followers not showing muted users ([ThibG](https://github.com/tootsuite/mastodon/pull/13614)) +- Fix list of followed people ignoring sorting on Follows & Followers page ([taras2358](https://github.com/tootsuite/mastodon/pull/13676)) +- Fix wrong pgHero Content-Security-Policy when `CDN_HOST` is set ([ThibG](https://github.com/tootsuite/mastodon/pull/13595)) +- Fix needlessly deduplicating usernames on collisions with remote accounts when signing-up through SAML/CAS ([kaiyou](https://github.com/tootsuite/mastodon/pull/13581)) +- Fix page incorrectly scrolling when bringing up dropdown menus in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/13574)) +- Fix messed up z-index when NoScript blocks media/previews in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/13449)) +- Fix "See what's happening" page showing public instead of local timeline for logged-in users ([ThibG](https://github.com/tootsuite/mastodon/pull/13499)) +- Fix not being able to resolve public resources in development environment ([Gargron](https://github.com/tootsuite/mastodon/pull/13505)) +- Fix uninformative error message when uploading unsupported image files ([ThibG](https://github.com/tootsuite/mastodon/pull/13540)) +- Fix expanded video player issues in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/13541), [eai04191](https://github.com/tootsuite/mastodon/pull/13533)) +- Fix and refactor keyboard navigation in dropdown menus in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/13528)) +- Fix uploaded image orientation being messed up in some browsers in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/13493)) +- Fix actions log crash when displaying updates of deleted announcements in admin UI ([ThibG](https://github.com/tootsuite/mastodon/pull/13489)) +- Fix search not working due to proxy settings when using hidden services ([Gargron](https://github.com/tootsuite/mastodon/pull/13488)) +- Fix poll refresh button not being debounced in web UI ([rasjonell](https://github.com/tootsuite/mastodon/pull/13485), [ThibG](https://github.com/tootsuite/mastodon/pull/13490)) +- Fix confusing error when failing to add an alias to an unknown account ([ThibG](https://github.com/tootsuite/mastodon/pull/13480)) +- Fix "Email changed" notification sometimes having wrong e-mail ([ThibG](https://github.com/tootsuite/mastodon/pull/13475)) +- Fix varioues issues on the account aliases page ([ThibG](https://github.com/tootsuite/mastodon/pull/13452)) +- Fix API footer link in web UI ([bubblineyuri](https://github.com/tootsuite/mastodon/pull/13441)) +- Fix pagination of following, followers, follow requests, blocks and mutes lists in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/13445)) +- Fix styling of polls in JS-less fallback on public pages ([ThibG](https://github.com/tootsuite/mastodon/pull/13436)) +- Fix trying to delete already deleted file when post-processing ([Gargron](https://github.com/tootsuite/mastodon/pull/13406)) + +### Security + +- Fix Doorkeeper vulnerability that exposed app secret to users who authorized the app and reset secret of the web UI that could have been exposed ([dependabot-preview[bot]](https://github.com/tootsuite/mastodon/pull/13613), [Gargron](https://github.com/tootsuite/mastodon/pull/13688)) + - For apps that self-register on behalf of every individual user (such as most mobile apps), this is a non-issue + - The issue only affects developers of apps who are shared between multiple users, such as server-side apps like cross-posters + ## [v3.1.3] - 2020-04-05 ### Added diff --git a/Gemfile b/Gemfile index bc1379a2b..8ef0e1fa5 100644 --- a/Gemfile +++ b/Gemfile @@ -20,7 +20,7 @@ gem 'makara', '~> 0.4' gem 'pghero', '~> 2.4' gem 'dotenv-rails', '~> 2.7' -gem 'aws-sdk-s3', '~> 1.61', require: false +gem 'aws-sdk-s3', '~> 1.64', require: false gem 'fog-core', '<= 2.1.0' gem 'fog-openstack', '~> 0.3', require: false gem 'paperclip', '~> 6.0' @@ -49,7 +49,7 @@ gem 'omniauth-saml', '~> 1.10' gem 'omniauth', '~> 1.9' gem 'discard', '~> 1.2' -gem 'doorkeeper', '~> 5.3' +gem 'doorkeeper', '~> 5.4' gem 'fast_blank', '~> 1.0' gem 'fastimage' gem 'goldfinger', '~> 2.1' @@ -57,12 +57,12 @@ gem 'hiredis', '~> 0.6' gem 'redis-namespace', '~> 1.7' gem 'health_check', git: 'https://github.com/ianheggie/health_check', ref: '0b799ead604f900ed50685e9b2d469cd2befba5b' gem 'htmlentities', '~> 4.3' -gem 'http', '~> 4.3' +gem 'http', '~> 4.4' gem 'http_accept_language', '~> 2.1' gem 'http_parser.rb', '~> 0.6', git: 'https://github.com/tmm1/http_parser.rb', ref: '54b17ba8c7d8d20a16dfc65d1775241833219cf2', submodules: true gem 'httplog', '~> 1.4.2' gem 'idn-ruby', require: 'idn' -gem 'kaminari', '~> 1.1' +gem 'kaminari', '~> 1.2' gem 'link_header', '~> 0.0' gem 'mime-types', '~> 3.3.1', require: 'mime/types/columnar' gem 'nilsimsa', git: 'https://github.com/witgo/nilsimsa', ref: 'fd184883048b922b176939f851338d0a4971a532' @@ -75,7 +75,7 @@ gem 'parallel', '~> 1.19' gem 'posix-spawn', git: 'https://github.com/rtomayko/posix-spawn', ref: '58465d2e213991f8afb13b984854a49fcdcc980c' gem 'pundit', '~> 2.1' gem 'premailer-rails' -gem 'rack-attack', '~> 6.2' +gem 'rack-attack', '~> 6.3' gem 'rack-cors', '~> 1.1', require: 'rack/cors' gem 'rails-i18n', '~> 5.1' gem 'rails-settings-cached', '~> 0.6' @@ -96,8 +96,8 @@ gem 'strong_migrations', '~> 0.6' gem 'tty-command', '~> 0.9', require: false gem 'tty-prompt', '~> 0.21', require: false gem 'twitter-text', '~> 1.14' -gem 'tzinfo-data', '~> 1.2019' -gem 'webpacker', '~> 4.2' +gem 'tzinfo-data', '~> 1.2020' +gem 'webpacker', '~> 5.1' gem 'webpush' gem 'json-ld' @@ -110,7 +110,7 @@ group :development, :test do gem 'fabrication', '~> 2.21' gem 'fuubar', '~> 2.5' gem 'i18n-tasks', '~> 0.9', require: false - gem 'pry-byebug', '~> 3.8' + gem 'pry-byebug', '~> 3.9' gem 'pry-rails', '~> 0.3' gem 'rspec-rails', '~> 4.0' end @@ -120,7 +120,7 @@ group :production, :test do end group :test do - gem 'capybara', '~> 3.31' + gem 'capybara', '~> 3.32' gem 'climate_control', '~> 0.2' gem 'faker', '~> 2.11' gem 'microformats', '~> 4.2' @@ -129,23 +129,24 @@ group :test do gem 'simplecov', '~> 0.18', require: false gem 'webmock', '~> 3.8' gem 'parallel_tests', '~> 2.32' + gem 'rspec_junit_formatter', '~> 0.4' end group :development do gem 'active_record_query_trace', '~> 1.7' gem 'annotate', '~> 3.1' - gem 'better_errors', '~> 2.6' + gem 'better_errors', '~> 2.7' gem 'binding_of_caller', '~> 0.7' gem 'bullet', '~> 6.1' gem 'letter_opener', '~> 1.7' gem 'letter_opener_web', '~> 1.4' gem 'memory_profiler' - gem 'rubocop', '~> 0.79', require: false + gem 'rubocop', '~> 0.82', require: false gem 'rubocop-rails', '~> 2.5', require: false gem 'brakeman', '~> 4.8', require: false gem 'bundler-audit', '~> 0.6', require: false - gem 'capistrano', '~> 3.13' + gem 'capistrano', '~> 3.14' gem 'capistrano-rails', '~> 1.4' gem 'capistrano-rbenv', '~> 2.1' gem 'capistrano-yarn', '~> 2.0' diff --git a/Gemfile.lock b/Gemfile.lock index 1824e6692..0da7be746 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -92,23 +92,23 @@ GEM av (0.9.0) cocaine (~> 0.5.3) aws-eventstream (1.1.0) - aws-partitions (1.296.0) - aws-sdk-core (3.94.0) + aws-partitions (1.312.0) + aws-sdk-core (3.95.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.239.0) aws-sigv4 (~> 1.1) jmespath (~> 1.0) - aws-sdk-kms (1.30.0) + aws-sdk-kms (1.31.0) aws-sdk-core (~> 3, >= 3.71.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.61.2) + aws-sdk-s3 (1.64.0) aws-sdk-core (~> 3, >= 3.83.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.1) - aws-sigv4 (1.1.2) + aws-sigv4 (1.1.3) aws-eventstream (~> 1.0, >= 1.0.2) bcrypt (3.1.13) - better_errors (2.6.0) + better_errors (2.7.0) coderay (>= 1.0.0) erubi (>= 1.0.0) rack (>= 0.9.0) @@ -118,8 +118,8 @@ GEM ffi (~> 1.10.0) bootsnap (1.4.6) msgpack (~> 1.0) - brakeman (4.8.0) - browser (4.0.0) + brakeman (4.8.1) + browser (4.1.0) builder (3.2.4) bullet (6.1.0) activesupport (>= 3.0.0) @@ -127,8 +127,8 @@ GEM bundler-audit (0.6.1) bundler (>= 1.2.0, < 3) thor (~> 0.18) - byebug (11.1.1) - capistrano (3.13.0) + byebug (11.1.3) + capistrano (3.14.0) airbrussh (>= 1.0.0) i18n rake (>= 10.0.0) @@ -143,7 +143,7 @@ GEM sshkit (~> 1.3) capistrano-yarn (2.0.2) capistrano (~> 3.0) - capybara (3.31.0) + capybara (3.32.1) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) @@ -194,7 +194,7 @@ GEM docile (1.3.2) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - doorkeeper (5.3.1) + doorkeeper (5.4.0) railties (>= 5) dotenv (2.7.5) dotenv-rails (2.7.5) @@ -213,7 +213,7 @@ GEM encryptor (3.0.0) equatable (0.6.1) erubi (1.9.0) - et-orbi (1.2.3) + et-orbi (1.2.4) tzinfo excon (0.73.0) fabrication (2.21.1) @@ -240,7 +240,7 @@ GEM fog-json (>= 1.0) ipaddress (>= 0.8) formatador (0.2.5) - fugit (1.3.3) + fugit (1.3.5) et-orbi (~> 1.1, >= 1.1.8) raabro (~> 1.1) fuubar (2.5.0) @@ -270,14 +270,14 @@ GEM hiredis (0.6.3) hkdf (0.3.0) htmlentities (4.3.4) - http (4.3.0) + http (4.4.1) addressable (~> 2.3) http-cookie (~> 1.0) http-form_data (~> 2.2) http-parser (~> 1.2.0) http-cookie (1.0.3) domain_name (~> 0.5) - http-form_data (2.2.0) + http-form_data (2.3.0) http-parser (1.2.1) ffi-compiler (>= 1.0, < 2.0) http_accept_language (2.1.1) @@ -303,7 +303,7 @@ GEM jmespath (1.4.0) json (2.3.0) json-canonicalization (0.2.0) - json-ld (3.1.2) + json-ld (3.1.4) htmlentities (~> 4.3) json-canonicalization (~> 0.2) link_header (~> 0.0, >= 0.0.8) @@ -314,21 +314,21 @@ GEM json-ld (~> 3.1) rdf (~> 3.1) jsonapi-renderer (0.2.2) - jwt (2.1.0) - kaminari (1.1.1) + jwt (2.2.1) + kaminari (1.2.0) activesupport (>= 4.1.0) - kaminari-actionview (= 1.1.1) - kaminari-activerecord (= 1.1.1) - kaminari-core (= 1.1.1) - kaminari-actionview (1.1.1) + kaminari-actionview (= 1.2.0) + kaminari-activerecord (= 1.2.0) + kaminari-core (= 1.2.0) + kaminari-actionview (1.2.0) actionview - kaminari-core (= 1.1.1) - kaminari-activerecord (1.1.1) + kaminari-core (= 1.2.0) + kaminari-activerecord (1.2.0) activerecord - kaminari-core (= 1.1.1) - kaminari-core (1.1.1) - launchy (2.4.3) - addressable (~> 2.3) + kaminari-core (= 1.2.0) + kaminari-core (1.2.0) + launchy (2.5.0) + addressable (~> 2.7) letter_opener (1.7.0) launchy (~> 2.2) letter_opener_web (1.4.0) @@ -353,14 +353,14 @@ GEM mario-redis-lock (1.2.1) redis (>= 3.0.5) memory_profiler (0.9.14) - method_source (0.9.2) + method_source (1.0.0) microformats (4.2.0) json (~> 2.2) nokogiri (~> 1.10) mime-types (3.3.1) mime-types-data (~> 3.2015) - mime-types-data (3.2019.1009) - mimemagic (0.3.4) + mime-types-data (3.2020.0425) + mimemagic (0.3.5) mini_mime (1.0.2) mini_portile2 (2.4.0) minitest (5.14.0) @@ -369,9 +369,9 @@ GEM multipart-post (2.1.1) necromancer (0.5.1) net-ldap (0.16.2) - net-scp (2.0.0) - net-ssh (>= 2.6.5, < 6.0.0) - net-ssh (5.2.0) + net-scp (3.0.0) + net-ssh (>= 2.6.5, < 7.0.0) + net-ssh (6.0.2) nio4r (2.5.2) nokogiri (1.10.9) mini_portile2 (~> 2.4.0) @@ -382,7 +382,7 @@ GEM concurrent-ruby (~> 1.0, >= 1.0.2) sidekiq (>= 3.5) statsd-ruby (~> 1.4, >= 1.4.0) - oj (3.10.5) + oj (3.10.6) omniauth (1.9.1) hashie (>= 3.4.6) rack (>= 1.6.2, < 3) @@ -407,40 +407,40 @@ GEM parallel (1.19.1) parallel_tests (2.32.0) parallel - parser (2.7.1.1) + parser (2.7.1.2) ast (~> 2.4.0) - parslet (1.8.2) - pastel (0.7.3) + parslet (2.0.0) + pastel (0.7.4) equatable (~> 0.6) tty-color (~> 0.5) pg (1.2.3) - pghero (2.4.1) + pghero (2.4.2) activerecord (>= 5) pkg-config (1.4.1) premailer (1.11.1) addressable css_parser (>= 1.6.0) htmlentities (>= 4.0.0) - premailer-rails (1.10.3) + premailer-rails (1.11.1) actionmailer (>= 3) premailer (~> 1.7, >= 1.7.9) private_address_check (0.5.0) - pry (0.12.2) - coderay (~> 1.1.0) - method_source (~> 0.9.0) - pry-byebug (3.8.0) + pry (0.13.1) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.9.0) byebug (~> 11.0) - pry (~> 0.10) + pry (~> 0.13.0) pry-rails (0.3.9) pry (>= 0.10.4) - public_suffix (4.0.4) + public_suffix (4.0.5) puma (4.3.3) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) - raabro (1.1.6) + raabro (1.3.1) rack (2.2.2) - rack-attack (6.2.2) + rack-attack (6.3.0) rack (>= 1.0, < 3) rack-cors (1.1.1) rack (>= 2.0.0) @@ -491,13 +491,13 @@ GEM rdf-normalize (0.4.0) rdf (~> 3.1) redcarpet (3.4.0) - redis (4.1.3) + redis (4.1.4) redis-actionpack (5.2.0) actionpack (>= 5, < 7) redis-rack (>= 2.1.0, < 3) redis-store (>= 1.1.0, < 2) - redis-activesupport (5.0.4) - activesupport (>= 3, < 6) + redis-activesupport (5.2.0) + activesupport (>= 3, < 7) redis-store (>= 1.3, < 2) redis-namespace (1.7.0) redis (>= 3.0.4) @@ -516,15 +516,16 @@ GEM responders (3.0.0) actionpack (>= 5.0) railties (>= 5.0) + rexml (3.2.4) rotp (2.1.2) rpam2 (4.0.2) rqrcode (1.1.2) chunky_png (~> 1.0) rqrcode_core (~> 0.1) rqrcode_core (0.1.2) - rspec-core (3.9.1) - rspec-support (~> 3.9.1) - rspec-expectations (3.9.1) + rspec-core (3.9.2) + rspec-support (~> 3.9.3) + rspec-expectations (3.9.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.9.0) rspec-mocks (3.9.1) @@ -541,20 +542,23 @@ GEM rspec-sidekiq (3.0.3) rspec-core (~> 3.0, >= 3.0.0) sidekiq (>= 2.4.0) - rspec-support (3.9.2) - rubocop (0.79.0) + rspec-support (3.9.3) + rspec_junit_formatter (0.4.1) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (0.82.0) jaro_winkler (~> 1.5.1) parallel (~> 1.10) parser (>= 2.7.0.1) rainbow (>= 2.2.2, < 4.0) + rexml ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 1.7) + unicode-display_width (>= 1.4.0, < 2.0) rubocop-rails (2.5.2) activesupport rack (>= 1.1) rubocop (>= 0.72.0) ruby-progressbar (1.10.1) - ruby-saml (1.9.0) + ruby-saml (1.11.0) nokogiri (>= 1.5.10) rufus-scheduler (3.6.0) fugit (~> 1.1, >= 1.1.6) @@ -563,9 +567,10 @@ GEM crass (~> 1.0.2) nokogiri (>= 1.8.0) nokogumbo (~> 2.0) - sidekiq (6.0.4) + semantic_range (2.3.0) + sidekiq (6.0.7) connection_pool (>= 2.2.2) - rack (>= 2.0.0) + rack (~> 2.0) rack-protection (>= 2.0.0) redis (>= 4.1.0) sidekiq-bulk (0.2.0) @@ -605,7 +610,7 @@ GEM stoplight (2.2.0) streamio-ffmpeg (3.0.2) multi_json (~> 1.8) - strong_migrations (0.6.2) + strong_migrations (0.6.6) activerecord (>= 5) temple (0.8.2) terminal-table (1.8.0) @@ -633,12 +638,12 @@ GEM unf (~> 0.1.0) tzinfo (1.2.7) thread_safe (~> 0.1) - tzinfo-data (1.2019.3) + tzinfo-data (1.2020.1) tzinfo (>= 1.0.0) unf (0.1.4) unf_ext - unf_ext (0.0.7.6) - unicode-display_width (1.6.1) + unf_ext (0.0.7.7) + unicode-display_width (1.7.0) uniform_notifier (1.13.0) warden (1.2.8) rack (>= 2.0.6) @@ -646,10 +651,11 @@ GEM addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webpacker (4.2.2) - activesupport (>= 4.2) + webpacker (5.1.1) + activesupport (>= 5.2) rack-proxy (>= 0.6.1) - railties (>= 4.2) + railties (>= 5.2) + semantic_range (>= 2.3.0) webpush (0.3.8) hkdf (~> 0.2) jwt (~> 2.0) @@ -668,8 +674,8 @@ DEPENDENCIES active_record_query_trace (~> 1.7) addressable (~> 2.7) annotate (~> 3.1) - aws-sdk-s3 (~> 1.61) - better_errors (~> 2.6) + aws-sdk-s3 (~> 1.64) + better_errors (~> 2.7) binding_of_caller (~> 0.7) blurhash (~> 0.1) bootsnap (~> 1.4) @@ -677,11 +683,11 @@ DEPENDENCIES browser bullet (~> 6.1) bundler-audit (~> 0.6) - capistrano (~> 3.13) + capistrano (~> 3.14) capistrano-rails (~> 1.4) capistrano-rbenv (~> 2.1) capistrano-yarn (~> 2.0) - capybara (~> 3.31) + capybara (~> 3.32) charlock_holmes (~> 0.7.7) chewy (~> 5.1) cld3 (~> 3.3.0) @@ -692,7 +698,7 @@ DEPENDENCIES devise-two-factor (~> 3.1) devise_pam_authenticatable2 (~> 9.2) discard (~> 1.2) - doorkeeper (~> 5.3) + doorkeeper (~> 5.4) dotenv-rails (~> 2.7) e2mmap (~> 0.1.0) fabrication (~> 2.21) @@ -707,7 +713,7 @@ DEPENDENCIES health_check! hiredis (~> 0.6) htmlentities (~> 4.3) - http (~> 4.3) + http (~> 4.4) http_accept_language (~> 2.1) http_parser.rb (~> 0.6)! httplog (~> 1.4.2) @@ -716,7 +722,7 @@ DEPENDENCIES iso-639 json-ld json-ld-preloaded (~> 3.1) - kaminari (~> 1.1) + kaminari (~> 1.2) letter_opener (~> 1.7) letter_opener_web (~> 1.4) link_header (~> 0.0) @@ -746,12 +752,12 @@ DEPENDENCIES posix-spawn! premailer-rails private_address_check (~> 0.5) - pry-byebug (~> 3.8) + pry-byebug (~> 3.9) pry-rails (~> 0.3) puma (~> 4.3) pundit (~> 2.1) rack (~> 2.2.2) - rack-attack (~> 6.2) + rack-attack (~> 6.3) rack-cors (~> 1.1) rails (~> 5.2.4.2) rails-controller-testing (~> 1.0) @@ -765,7 +771,8 @@ DEPENDENCIES rqrcode (~> 1.1) rspec-rails (~> 4.0) rspec-sidekiq (~> 3.0) - rubocop (~> 0.79) + rspec_junit_formatter (~> 0.4) + rubocop (~> 0.82) rubocop-rails (~> 2.5) ruby-progressbar (~> 1.10) sanitize (~> 5.1) @@ -787,7 +794,7 @@ DEPENDENCIES tty-command (~> 0.9) tty-prompt (~> 0.21) twitter-text (~> 1.14) - tzinfo-data (~> 1.2019) + tzinfo-data (~> 1.2020) webmock (~> 3.8) - webpacker (~> 4.2) + webpacker (~> 5.1) webpush diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 124393d62..db9f45b4e 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -27,7 +27,7 @@ class AccountsController < ApplicationController end @pinned_statuses = cache_collection(@account.pinned_statuses, Status) if show_pinned_statuses? - @statuses = filtered_status_page(params) + @statuses = filtered_status_page @statuses = cache_collection(@statuses, Status) @rss_url = rss_url @@ -40,7 +40,7 @@ class AccountsController < ApplicationController format.rss do expires_in 1.minute, public: true - @statuses = filtered_statuses.without_reblogs.without_replies.limit(PAGE_SIZE) + @statuses = filtered_statuses.without_reblogs.limit(PAGE_SIZE) @statuses = cache_collection(@statuses, Status) render xml: RSS::AccountSerializer.render(@account, @statuses, params[:tag]) end @@ -129,23 +129,23 @@ class AccountsController < ApplicationController end def media_requested? - request.path.ends_with?('/media') && !tag_requested? + request.path.split('.').first.ends_with?('/media') && !tag_requested? end def replies_requested? - request.path.ends_with?('/with_replies') && !tag_requested? + request.path.split('.').first.ends_with?('/with_replies') && !tag_requested? end def tag_requested? request.path.split('.').first.ends_with?(Addressable::URI.parse("/tagged/#{params[:tag]}").normalize) end - def filtered_status_page(params) - if params[:min_id].present? - filtered_statuses.paginate_by_min_id(PAGE_SIZE, params[:min_id]).reverse - else - filtered_statuses.paginate_by_max_id(PAGE_SIZE, params[:max_id], params[:since_id]).to_a - end + def filtered_status_page + filtered_statuses.paginate_by_id(PAGE_SIZE, params_slice(:max_id, :min_id, :since_id)) + end + + def params_slice(*keys) + params.slice(*keys).permit(*keys) end def restrict_fields_to diff --git a/app/controllers/activitypub/collections_controller.rb b/app/controllers/activitypub/collections_controller.rb index 910fefb1c..c1e7aa550 100644 --- a/app/controllers/activitypub/collections_controller.rb +++ b/app/controllers/activitypub/collections_controller.rb @@ -24,20 +24,23 @@ class ActivityPub::CollectionsController < ActivityPub::BaseController def set_size case params[:id] when 'featured' - @account.pinned_statuses.count + @size = @account.pinned_statuses.count else - raise ActiveRecord::RecordNotFound + not_found end end def scope_for_collection case params[:id] when 'featured' - return Status.none if @account.blocking?(signed_request_account) - - @account.pinned_statuses - else - raise ActiveRecord::RecordNotFound + # Because in public fetch mode we cache the response, there would be no + # benefit from performing the check below, since a blocked account or domain + # would likely be served the cache from the reverse proxy anyway + if authorized_fetch_mode? && !signed_request_account.nil? && (@account.blocking?(signed_request_account) || (!signed_request_account.domain.nil? && @account.domain_blocking?(signed_request_account.domain))) + Status.none + else + @account.pinned_statuses + end end end diff --git a/app/controllers/activitypub/outboxes_controller.rb b/app/controllers/activitypub/outboxes_controller.rb index 891756b7e..e25a4bc07 100644 --- a/app/controllers/activitypub/outboxes_controller.rb +++ b/app/controllers/activitypub/outboxes_controller.rb @@ -11,7 +11,7 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController before_action :set_cache_headers def show - expires_in(page_requested? ? 0 : 3.minutes, public: public_fetch_mode?) + expires_in(page_requested? ? 0 : 3.minutes, public: public_fetch_mode? && !(signed_request_account.present? && page_requested?)) render json: outbox_presenter, serializer: ActivityPub::OutboxSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json' end @@ -50,12 +50,12 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController return unless page_requested? @statuses = @account.statuses.permitted_for(@account, signed_request_account) - @statuses = params[:min_id].present? ? @statuses.paginate_by_min_id(LIMIT, params[:min_id]).reverse : @statuses.paginate_by_max_id(LIMIT, params[:max_id]) + @statuses = @statuses.paginate_by_id(LIMIT, params_slice(:max_id, :min_id, :since_id)) @statuses = cache_collection(@statuses, Status) end def page_requested? - params[:page] == 'true' + truthy_param?(:page) end def page_params diff --git a/app/controllers/activitypub/replies_controller.rb b/app/controllers/activitypub/replies_controller.rb index c62061555..43bf4e657 100644 --- a/app/controllers/activitypub/replies_controller.rb +++ b/app/controllers/activitypub/replies_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class ActivityPub::RepliesController < ActivityPub::BaseController - include SignatureAuthentication + include SignatureVerification include Authorization include AccountOwnedConcern @@ -19,15 +19,19 @@ class ActivityPub::RepliesController < ActivityPub::BaseController private + def pundit_user + signed_request_account + end + def set_status @status = @account.statuses.find(params[:status_id]) authorize @status, :show? rescue Mastodon::NotPermittedError - raise ActiveRecord::RecordNotFound + not_found end def set_replies - @replies = page_params[:only_other_accounts] ? Status.where.not(account_id: @account.id) : @account.statuses + @replies = only_other_accounts? ? Status.where.not(account_id: @account.id) : @account.statuses @replies = @replies.where(in_reply_to_id: @status.id, visibility: [:public, :unlisted]) @replies = @replies.paginate_by_min_id(DESCENDANTS_LIMIT, params[:min_id]) end @@ -38,7 +42,7 @@ class ActivityPub::RepliesController < ActivityPub::BaseController type: :unordered, part_of: account_status_replies_url(@account, @status), next: next_page, - items: @replies.map { |status| status.local ? status : status.uri } + items: @replies.map { |status| status.local? ? status : status.uri } ) return page if page_requested? @@ -51,16 +55,21 @@ class ActivityPub::RepliesController < ActivityPub::BaseController end def page_requested? - params[:page] == 'true' + truthy_param?(:page) + end + + def only_other_accounts? + truthy_param?(:only_other_accounts) end def next_page only_other_accounts = !(@replies&.last&.account_id == @account.id && @replies.size == DESCENDANTS_LIMIT) + account_status_replies_url( @account, @status, page: true, - min_id: only_other_accounts && !page_params[:only_other_accounts] ? nil : @replies&.last&.id, + min_id: only_other_accounts && !only_other_accounts? ? nil : @replies&.last&.id, only_other_accounts: only_other_accounts ) end diff --git a/app/controllers/api/v1/accounts/follower_accounts_controller.rb b/app/controllers/api/v1/accounts/follower_accounts_controller.rb index 1daa1ed0d..2277067c9 100644 --- a/app/controllers/api/v1/accounts/follower_accounts_controller.rb +++ b/app/controllers/api/v1/accounts/follower_accounts_controller.rb @@ -20,7 +20,7 @@ class Api::V1::Accounts::FollowerAccountsController < Api::BaseController return [] if hide_results? scope = default_accounts - scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? + scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? || current_account.id == @account.id scope.merge(paginated_follows).to_a end diff --git a/app/controllers/api/v1/accounts/following_accounts_controller.rb b/app/controllers/api/v1/accounts/following_accounts_controller.rb index 6fc23cf75..93d4bd3a4 100644 --- a/app/controllers/api/v1/accounts/following_accounts_controller.rb +++ b/app/controllers/api/v1/accounts/following_accounts_controller.rb @@ -20,7 +20,7 @@ class Api::V1::Accounts::FollowingAccountsController < Api::BaseController return [] if hide_results? scope = default_accounts - scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? + scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? || current_account.id == @account.id scope.merge(paginated_follows).to_a end diff --git a/app/controllers/api/v1/polls/votes_controller.rb b/app/controllers/api/v1/polls/votes_controller.rb index e1d26106a..513b937ef 100644 --- a/app/controllers/api/v1/polls/votes_controller.rb +++ b/app/controllers/api/v1/polls/votes_controller.rb @@ -18,7 +18,7 @@ class Api::V1::Polls::VotesController < Api::BaseController @poll = Poll.attached.find(params[:poll_id]) authorize @poll.status, :show? rescue Mastodon::NotPermittedError - raise ActiveRecord::RecordNotFound + not_found end def vote_params diff --git a/app/controllers/api/v1/polls_controller.rb b/app/controllers/api/v1/polls_controller.rb index 744baf7bb..6435e9f0d 100644 --- a/app/controllers/api/v1/polls_controller.rb +++ b/app/controllers/api/v1/polls_controller.rb @@ -17,7 +17,7 @@ class Api::V1::PollsController < Api::BaseController @poll = Poll.attached.find(params[:id]) authorize @poll.status, :show? rescue Mastodon::NotPermittedError - raise ActiveRecord::RecordNotFound + not_found end def refresh_poll diff --git a/app/controllers/api/v1/push/subscriptions_controller.rb b/app/controllers/api/v1/push/subscriptions_controller.rb index 1cbc92b93..d34b333eb 100644 --- a/app/controllers/api/v1/push/subscriptions_controller.rb +++ b/app/controllers/api/v1/push/subscriptions_controller.rb @@ -4,6 +4,7 @@ class Api::V1::Push::SubscriptionsController < Api::BaseController before_action -> { doorkeeper_authorize! :push } before_action :require_user! before_action :set_web_push_subscription + before_action :check_web_push_subscription, only: [:show, :update] def create @web_subscription&.destroy! @@ -21,16 +22,11 @@ class Api::V1::Push::SubscriptionsController < Api::BaseController end def show - raise ActiveRecord::RecordNotFound if @web_subscription.nil? - render json: @web_subscription, serializer: REST::WebPushSubscriptionSerializer end def update - raise ActiveRecord::RecordNotFound if @web_subscription.nil? - @web_subscription.update!(data: data_params) - render json: @web_subscription, serializer: REST::WebPushSubscriptionSerializer end @@ -45,12 +41,17 @@ class Api::V1::Push::SubscriptionsController < Api::BaseController @web_subscription = ::Web::PushSubscription.find_by(access_token_id: doorkeeper_token.id) end + def check_web_push_subscription + not_found if @web_subscription.nil? + end + def subscription_params params.require(:subscription).permit(:endpoint, keys: [:auth, :p256dh]) end def data_params return {} if params[:data].blank? + params.require(:data).permit(alerts: [:follow, :follow_request, :favourite, :reblog, :mention, :poll]) end end diff --git a/app/controllers/api/v1/statuses/mutes_controller.rb b/app/controllers/api/v1/statuses/mutes_controller.rb index 43c7a525a..87071a2b9 100644 --- a/app/controllers/api/v1/statuses/mutes_controller.rb +++ b/app/controllers/api/v1/statuses/mutes_controller.rb @@ -28,8 +28,7 @@ class Api::V1::Statuses::MutesController < Api::BaseController @status = Status.find(params[:status_id]) authorize @status, :show? rescue Mastodon::NotPermittedError - # Reraise in order to get a 404 instead of a 403 error code - raise ActiveRecord::RecordNotFound + not_found end def set_conversation diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb index 93a253cbb..8d6cb84b6 100644 --- a/app/controllers/api/v1/statuses_controller.rb +++ b/app/controllers/api/v1/statuses_controller.rb @@ -67,7 +67,7 @@ class Api::V1::StatusesController < Api::BaseController @status = Status.find(params[:id]) authorize @status, :show? rescue Mastodon::NotPermittedError - raise ActiveRecord::RecordNotFound + not_found end def set_thread diff --git a/app/controllers/api/v1/timelines/public_controller.rb b/app/controllers/api/v1/timelines/public_controller.rb index 581befef1..c6e7854d9 100644 --- a/app/controllers/api/v1/timelines/public_controller.rb +++ b/app/controllers/api/v1/timelines/public_controller.rb @@ -39,7 +39,7 @@ class Api::V1::Timelines::PublicController < Api::BaseController end def public_timeline_statuses - Status.as_public_timeline(current_account, truthy_param?(:local)) + Status.as_public_timeline(current_account, truthy_param?(:remote) ? :remote : truthy_param?(:local)) end def insert_pagination_headers @@ -47,7 +47,7 @@ class Api::V1::Timelines::PublicController < Api::BaseController end def pagination_params(core_params) - params.slice(:local, :limit, :only_media).permit(:local, :limit, :only_media).merge(core_params) + params.slice(:local, :remote, :limit, :only_media).permit(:local, :remote, :limit, :only_media).merge(core_params) end def next_path diff --git a/app/controllers/auth/sessions_controller.rb b/app/controllers/auth/sessions_controller.rb index f48b17c79..e95909447 100644 --- a/app/controllers/auth/sessions_controller.rb +++ b/app/controllers/auth/sessions_controller.rb @@ -111,6 +111,13 @@ class Auth::SessionsController < Devise::SessionsController render :two_factor end + def require_no_authentication + super + # Delete flash message that isn't entirely useful and may be confusing in + # most cases because /web doesn't display/clear flash messages. + flash.delete(:alert) if flash[:alert] == I18n.t('devise.failure.already_authenticated') + end + private def set_instance_presenter diff --git a/app/controllers/concerns/localized.rb b/app/controllers/concerns/localized.rb index b43859d9d..d1384ed56 100644 --- a/app/controllers/concerns/localized.rb +++ b/app/controllers/concerns/localized.rb @@ -28,18 +28,6 @@ module Localized end def request_locale - preferred_locale || compatible_locale - end - - def preferred_locale - http_accept_language.preferred_language_from(available_locales) - end - - def compatible_locale - http_accept_language.compatible_language_from(available_locales) - end - - def available_locales - I18n.available_locales.reverse + http_accept_language.language_region_compatible_from(I18n.available_locales) end end diff --git a/app/controllers/media_controller.rb b/app/controllers/media_controller.rb index 05cf09c28..1d166d6e7 100644 --- a/app/controllers/media_controller.rb +++ b/app/controllers/media_controller.rb @@ -33,7 +33,7 @@ class MediaController < ApplicationController def verify_permitted_status! authorize @media_attachment.status, :show? rescue Mastodon::NotPermittedError - raise ActiveRecord::RecordNotFound + not_found end def check_playable diff --git a/app/controllers/remote_interaction_controller.rb b/app/controllers/remote_interaction_controller.rb index 4073e7ac3..3b9202a5c 100644 --- a/app/controllers/remote_interaction_controller.rb +++ b/app/controllers/remote_interaction_controller.rb @@ -41,7 +41,7 @@ class RemoteInteractionController < ApplicationController @status = Status.find(params[:id]) authorize @status, :show? rescue Mastodon::NotPermittedError - raise ActiveRecord::RecordNotFound + not_found end def set_body_classes diff --git a/app/controllers/settings/identity_proofs_controller.rb b/app/controllers/settings/identity_proofs_controller.rb index a749d8020..3a90b7c4d 100644 --- a/app/controllers/settings/identity_proofs_controller.rb +++ b/app/controllers/settings/identity_proofs_controller.rb @@ -21,8 +21,7 @@ class Settings::IdentityProofsController < Settings::BaseController if current_account.username.casecmp(params[:username]).zero? render layout: 'auth' else - flash[:alert] = I18n.t('identity_proofs.errors.wrong_user', proving: params[:username], current: current_account.username) - redirect_to settings_identity_proofs_path + redirect_to settings_identity_proofs_path, alert: I18n.t('identity_proofs.errors.wrong_user', proving: params[:username], current: current_account.username) end end @@ -34,11 +33,16 @@ class Settings::IdentityProofsController < Settings::BaseController PostStatusService.new.call(current_user.account, text: post_params[:status_text]) if publish_proof? redirect_to @proof.on_success_path(params[:user_agent]) else - flash[:alert] = I18n.t('identity_proofs.errors.failed', provider: @proof.provider.capitalize) - redirect_to settings_identity_proofs_path + redirect_to settings_identity_proofs_path, alert: I18n.t('identity_proofs.errors.failed', provider: @proof.provider.capitalize) end end + def destroy + @proof = current_account.identity_proofs.find(params[:id]) + @proof.destroy! + redirect_to settings_identity_proofs_path, success: I18n.t('identity_proofs.removed') + end + private def check_required_params diff --git a/app/controllers/statuses_controller.rb b/app/controllers/statuses_controller.rb index 4fa128303..d362b97dc 100644 --- a/app/controllers/statuses_controller.rb +++ b/app/controllers/statuses_controller.rb @@ -46,7 +46,7 @@ class StatusesController < ApplicationController end def embed - return not_found if @status.hidden? + return not_found if @status.hidden? || @status.reblog? expires_in 180, public: true response.headers['X-Frame-Options'] = 'ALLOWALL' diff --git a/app/helpers/home_helper.rb b/app/helpers/home_helper.rb index b66e827fe..4da68500a 100644 --- a/app/helpers/home_helper.rb +++ b/app/helpers/home_helper.rb @@ -7,13 +7,13 @@ module HomeHelper } end - def account_link_to(account, button = '', size: 36, path: nil) + def account_link_to(account, button = '', path: nil) content_tag(:div, class: 'account') do content_tag(:div, class: 'account__wrapper') do section = if account.nil? content_tag(:div, class: 'account__display-name') do content_tag(:div, class: 'account__avatar-wrapper') do - content_tag(:div, '', class: 'account__avatar', style: "width: #{size}px; height: #{size}px; background-size: #{size}px #{size}px; background-image: url(#{full_asset_url('avatars/original/missing.png', skip_pipeline: true)})") + image_tag(full_asset_url('avatars/original/missing.png', skip_pipeline: true), class: 'account__avatar') end + content_tag(:span, class: 'display-name') do content_tag(:strong, t('about.contact_missing')) + @@ -23,7 +23,7 @@ module HomeHelper else link_to(path || ActivityPub::TagManager.instance.url_for(account), class: 'account__display-name') do content_tag(:div, class: 'account__avatar-wrapper') do - content_tag(:div, '', class: 'account__avatar', style: "width: #{size}px; height: #{size}px; background-size: #{size}px #{size}px; background-image: url(#{full_asset_url(current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url)})") + image_tag(full_asset_url(current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url), class: 'account__avatar') end + content_tag(:span, class: 'display-name') do content_tag(:bdi) do diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb index 74544bad9..87718dc05 100644 --- a/app/helpers/settings_helper.rb +++ b/app/helpers/settings_helper.rb @@ -68,6 +68,7 @@ module SettingsHelper tr: 'Türkçe', uk: 'Українська', ur: 'اُردُو', + vi: 'Tiếng Việt', 'zh-CN': '简体中文', 'zh-HK': '繁體中文(香港)', 'zh-TW': '繁體中文(臺灣)', diff --git a/app/helpers/webfinger_helper.rb b/app/helpers/webfinger_helper.rb new file mode 100644 index 000000000..70c493210 --- /dev/null +++ b/app/helpers/webfinger_helper.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module WebfingerHelper + def webfinger!(uri) + hidden_service_uri = /\.(onion|i2p)(:\d+)?$/.match(uri) + + raise Mastodon::HostValidationError, 'Instance does not support hidden service connections' if !Rails.configuration.x.access_to_hidden_service && hidden_service_uri + + opts = { + ssl: !hidden_service_uri, + + headers: { + 'User-Agent': Mastodon::Version.user_agent, + }, + } + + Goldfinger::Client.new(uri, opts.merge(Rails.configuration.x.http_client_proxy)).finger + end +end diff --git a/app/javascript/images/logo_transparent_white.svg b/app/javascript/images/logo_transparent_white.svg new file mode 100644 index 000000000..f061ffe4c --- /dev/null +++ b/app/javascript/images/logo_transparent_white.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/mastodon/actions/streaming.js b/app/javascript/mastodon/actions/streaming.js index 79b08bdda..080d665f4 100644 --- a/app/javascript/mastodon/actions/streaming.js +++ b/app/javascript/mastodon/actions/streaming.js @@ -73,7 +73,7 @@ const refreshHomeTimelineAndNotification = (dispatch, done) => { export const connectUserStream = () => connectTimelineStream('home', 'user', refreshHomeTimelineAndNotification); export const connectCommunityStream = ({ onlyMedia } = {}) => connectTimelineStream(`community${onlyMedia ? ':media' : ''}`, `public:local${onlyMedia ? ':media' : ''}`); -export const connectPublicStream = ({ onlyMedia } = {}) => connectTimelineStream(`public${onlyMedia ? ':media' : ''}`, `public${onlyMedia ? ':media' : ''}`); +export const connectPublicStream = ({ onlyMedia, onlyRemote } = {}) => connectTimelineStream(`public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, `public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`); export const connectHashtagStream = (id, tag, accept) => connectTimelineStream(`hashtag:${id}`, `hashtag&tag=${tag}`, null, accept); export const connectDirectStream = () => connectTimelineStream('direct', 'direct'); export const connectListStream = id => connectTimelineStream(`list:${id}`, `list&list=${id}`); diff --git a/app/javascript/mastodon/actions/timelines.js b/app/javascript/mastodon/actions/timelines.js index 50840cacc..01f0fb015 100644 --- a/app/javascript/mastodon/actions/timelines.js +++ b/app/javascript/mastodon/actions/timelines.js @@ -42,7 +42,7 @@ export function updateTimeline(timeline, status, accept) { export function deleteFromTimelines(id) { return (dispatch, getState) => { const accountId = getState().getIn(['statuses', id, 'account']); - const references = getState().get('statuses').filter(status => status.get('reblog') === id).map(status => [status.get('id'), status.get('account')]); + const references = getState().get('statuses').filter(status => status.get('reblog') === id).map(status => status.get('id')); const reblogOf = getState().getIn(['statuses', id, 'reblog'], null); dispatch({ @@ -107,7 +107,7 @@ export function expandTimeline(timelineId, path, params = {}, done = noOp) { }; export const expandHomeTimeline = ({ maxId } = {}, done = noOp) => expandTimeline('home', '/api/v1/timelines/home', { max_id: maxId }, done); -export const expandPublicTimeline = ({ maxId, onlyMedia } = {}, done = noOp) => expandTimeline(`public${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { max_id: maxId, only_media: !!onlyMedia }, done); +export const expandPublicTimeline = ({ maxId, onlyMedia, onlyRemote } = {}, done = noOp) => expandTimeline(`public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { remote: !!onlyRemote, max_id: maxId, only_media: !!onlyMedia }, done); export const expandCommunityTimeline = ({ maxId, onlyMedia } = {}, done = noOp) => expandTimeline(`community${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { local: true, max_id: maxId, only_media: !!onlyMedia }, done); export const expandAccountTimeline = (accountId, { maxId, withReplies } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, max_id: maxId }); export const expandAccountFeaturedTimeline = accountId => expandTimeline(`account:${accountId}:pinned`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true }); diff --git a/app/javascript/mastodon/components/dropdown_menu.js b/app/javascript/mastodon/components/dropdown_menu.js index 31c02d735..4734e0f3f 100644 --- a/app/javascript/mastodon/components/dropdown_menu.js +++ b/app/javascript/mastodon/components/dropdown_menu.js @@ -46,7 +46,7 @@ class DropdownMenu extends React.PureComponent { document.addEventListener('keydown', this.handleKeyDown, false); document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); if (this.focusedItem && this.props.openedViaKeyboard) { - this.focusedItem.focus(); + this.focusedItem.focus({ preventScroll: true }); } this.setState({ mounted: true }); } diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.js index 075ee1b87..9e4442cef 100644 --- a/app/javascript/mastodon/components/status.js +++ b/app/javascript/mastodon/components/status.js @@ -176,8 +176,8 @@ class Status extends ImmutablePureComponent { return
; } - handleOpenVideo = (media, startTime) => { - this.props.onOpenVideo(media, startTime); + handleOpenVideo = (media, options) => { + this.props.onOpenVideo(media, options); } handleHotkeyOpenMedia = e => { @@ -190,7 +190,7 @@ class Status extends ImmutablePureComponent { if (status.getIn(['media_attachments', 0, 'type']) === 'audio') { // TODO: toggle play/paused? } else if (status.getIn(['media_attachments', 0, 'type']) === 'video') { - onOpenVideo(status.getIn(['media_attachments', 0]), 0); + onOpenVideo(status.getIn(['media_attachments', 0]), { startTime: 0 }); } else { onOpenMedia(status.get('media_attachments'), 0); } diff --git a/app/javascript/mastodon/containers/status_container.js b/app/javascript/mastodon/containers/status_container.js index 2ba3a3123..decf7279f 100644 --- a/app/javascript/mastodon/containers/status_container.js +++ b/app/javascript/mastodon/containers/status_container.js @@ -150,8 +150,8 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ dispatch(openModal('MEDIA', { media, index })); }, - onOpenVideo (media, time) { - dispatch(openModal('VIDEO', { media, time })); + onOpenVideo (media, options) { + dispatch(openModal('VIDEO', { media, options })); }, onBlock (status) { diff --git a/app/javascript/mastodon/features/account/components/header.js b/app/javascript/mastodon/features/account/components/header.js index 92780a70b..8c85bbc39 100644 --- a/app/javascript/mastodon/features/account/components/header.js +++ b/app/javascript/mastodon/features/account/components/header.js @@ -192,10 +192,12 @@ class Header extends ImmutablePureComponent { menu.push({ text: intl.formatMessage(messages.domain_blocks), to: '/domain_blocks' }); } else { if (account.getIn(['relationship', 'following'])) { - if (account.getIn(['relationship', 'showing_reblogs'])) { - menu.push({ text: intl.formatMessage(messages.hideReblogs, { name: account.get('username') }), action: this.props.onReblogToggle }); - } else { - menu.push({ text: intl.formatMessage(messages.showReblogs, { name: account.get('username') }), action: this.props.onReblogToggle }); + if (!account.getIn(['relationship', 'muting'])) { + if (account.getIn(['relationship', 'showing_reblogs'])) { + menu.push({ text: intl.formatMessage(messages.hideReblogs, { name: account.get('username') }), action: this.props.onReblogToggle }); + } else { + menu.push({ text: intl.formatMessage(messages.showReblogs, { name: account.get('username') }), action: this.props.onReblogToggle }); + } } menu.push({ text: intl.formatMessage(account.getIn(['relationship', 'endorsed']) ? messages.unendorse : messages.endorse), action: this.props.onEndorseToggle }); diff --git a/app/javascript/mastodon/features/compose/components/poll_form.js b/app/javascript/mastodon/features/compose/components/poll_form.js index 2f37ce64b..db49f90eb 100644 --- a/app/javascript/mastodon/features/compose/components/poll_form.js +++ b/app/javascript/mastodon/features/compose/components/poll_form.js @@ -27,6 +27,7 @@ class Option extends React.PureComponent { title: PropTypes.string.isRequired, index: PropTypes.number.isRequired, isPollMultiple: PropTypes.bool, + autoFocus: PropTypes.bool, onChange: PropTypes.func.isRequired, onRemove: PropTypes.func.isRequired, onToggleMultiple: PropTypes.func.isRequired, @@ -71,7 +72,7 @@ class Option extends React.PureComponent { } render () { - const { isPollMultiple, title, index, intl } = this.props; + const { isPollMultiple, title, index, autoFocus, intl } = this.props; return (%{instance}
قد لا يكون هذا الخادم هو الذي سجلت فيه حيابك، لذا نحن بحاجة إلى إعادة توجيهك إلى خادمك الرئيسي أولاً."
remote_interaction:
favourite:
proceed: المواصلة إلى المفضلة
@@ -1018,6 +1030,7 @@ ar:
proceed: المواصلة إلى الرد
prompt: 'ترغب في الرد على هذا التبويق:'
scheduled_statuses:
+ over_daily_limit: لقد تجاوزتَ حد الـ %{limit} تبويقات مُبَرمَجة المسموح بها لذلك اليوم
over_total_limit: لقد بلغت حد الـ %{limit} مِن التبويقات المبرمَجة
too_soon: يجب أن يكون تاريخ البرمجة في المستقبَل
sessions:
@@ -1110,6 +1123,8 @@ ar:
other: 'يحتوي على وسوم غير مسموح بها: %{tags}'
two: 'يحتوي على وسوم غير مسموح بها: %{tags}'
zero: 'يحتوي على وسوم غير مسموح بها: %{tags}'
+ errors:
+ in_reply_not_found: إنّ المنشور الذي تحاول الرد عليه غير موجود على ما يبدو.
language_detection: اكتشاف اللغة تلقائيا
open_in_web: افتح في الويب
over_character_limit: تم تجاوز حد الـ %{max} حرف المسموح بها
@@ -1174,6 +1189,7 @@ ar:
manual_instructions: 'في حالة تعذّر مسح رمز الكيو آر أو طُلب منك إدخال يدوي، يُمْكِنك إدخال هذا النص السري على التطبيق:'
recovery_codes: النسخ الاحتياطي لرموز الاسترجاع
recovery_codes_regenerated: تم إعادة توليد رموز الاسترجاع الاحتياطية بنجاح
+ recovery_instructions_html: إن فقدت الوصول إلى هاتفك، يمكنك استخدام أحد رموز الاسترداد أدناه لاستعادة الوصول إلى حسابك. حافظ على رموز الاسترداد بأمان. يمكنك ، على سبيل المثال ، طباعتها وتخزينها مع مستندات أخرى هامة.
setup: تنشيط
wrong_code: الرمز الذي أدخلته غير صالح! تحقق من صحة الوقت على الخادم و الجهاز؟
user_mailer:
@@ -1182,6 +1198,8 @@ ar:
subject: نسخة بيانات حسابك جاهزة للتنزيل
title: المغادرة بأرشيف الحساب
warning:
+ explanation:
+ disable: عندما يتم تجميد حسابك، تظل بيانات حسابك سليمة، ولكن لا يمكنك تنفيذ أي إجراءات حتى يتم فتحه.
get_in_touch: يمكنك الرد على هذا البريد الإلكتروني للاتصال بفريق %{instance}.
review_server_policies: مراجعة شروط السيرفر
statuses: 'خصيصا لـ:'
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index 1d6c11f13..d2c1a1d72 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -173,6 +173,8 @@ ast:
body_remote: Daquién dende %{domain} informó de %{target}
new_trending_tag:
body: 'Güei la etiqueta #%{name} ye tendencia pero nun se revisó anteriormente. Nun va amosase públicamente a nun ser que lo permitas o guardes el formulariu como ta pa nun saber más d''ello.'
+ aliases:
+ empty: Nun tienes nomatos.
appearance:
advanced_web_interface: Interfaz web avanzada
advanced_web_interface_hint: 'Si quies asegúrate de que s''use tol anchor de la pantalla, la interfaz web avanzada permítete configurar munches columnes estremaes pa ver tanta información al empar como quieras: Aniciu, avisos, llinia temporal federada, cualesquier cantidá de llistes y etiquetes...'
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index f056bb943..ccb259eb1 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -635,6 +635,7 @@ ca:
add_new: Crea un àlies
created_msg: Nou àlies creat amb èxit. Ara pots iniciar el moviment des de'l compte vell.
deleted_msg: Àlies eliminat amb èxit. Moure't des d'aquell compte a aquests ja no serà possible.
+ empty: No hi tens cap àlies.
hint_html: Si et vols moure des d'un altre compte a aquest, aquí pots crear un àlies, el qual és requerit abans que puguis procedir a moure els seguidors del compte vell a aquest. Aquesta acció és per si mateixa inofensiva i reversible. La migració del compte és iniciada des de'l compte vell.
remove: Desvincula l'àlies
appearance:
@@ -756,7 +757,7 @@ ca:
username_unavailable: El teu nom d'usuari quedarà inutilitzable
directories:
directory: Directori de perfils
- explanation: Descobreix usuaris segons els seus interessos
+ explanation: Descobreix usuaris segons els teus interessos
explore_mastodon: Explora %{title}
domain_validator:
invalid_domain: no es un nom de domini vàlid
@@ -849,6 +850,8 @@ ca:
inactive: Inactiu
publicize_checkbox: 'I envia un tut d''això:'
publicize_toot: 'Està provat! Sóc %{username} a %{service}: %{url}'
+ remove: Elimina prova d’identitat del compte
+ removed: Prova d’identitat del compte eliminada amb èxit
status: Estat de verificació
view_proof: Veure la prova
imports:
diff --git a/config/locales/co.yml b/config/locales/co.yml
index 2d50cefd7..2585b550f 100644
--- a/config/locales/co.yml
+++ b/config/locales/co.yml
@@ -635,6 +635,7 @@ co:
add_new: Creà un pseudonimu
created_msg: Novu pseudonimu creatu. Pudete avà inizià u trasferimentu da u vechju contu.
deleted_msg: U pseudonimu hè statu sguassatu. Ùn si puderà più migrà da questu contu à quellu.
+ empty: Ùn avete un pseudonimu.
hint_html: Per traslucà da un altru contu à questu, quì pudete creà un pseudonimu o "alias", riquisitu per trasferì l'abbunati da u vechju contu à u novu. St'azzione sola ùn face nunda è pò esse annullata senza prublemi. A migrazione hè principiata dapoi u vechju contu.
remove: Sguassà u pseudonimu
appearance:
@@ -849,6 +850,8 @@ co:
inactive: Inattiva
publicize_checkbox: 'È mandà stu statutu:'
publicize_toot: 'Hè pruvata! Sò %{username} nant’à %{service}: %{url}'
+ remove: Sguassà a prova da u contu
+ removed: Prova sguassata da u contu
status: Statutu di a verificazione
view_proof: Vede a prova
imports:
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index d7c49279d..cb9eb77fc 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -100,6 +100,7 @@ cs:
delete: Smazat
destroyed_msg: Moderátorská poznámka byla úspěšně zničena!
accounts:
+ add_email_domain_block: Blokovat e-maily na této doméně
approve: Schválit
approve_all: Schválit vše
are_you_sure: Opravdu?
@@ -180,6 +181,7 @@ cs:
staff: Člen personálu
user: Uživatel
search: Hledat
+ search_same_email_domain: Ostatní uživatelé s e-mailem na stejné doméně
search_same_ip: Další uživatelé se stejnou IP adresou
shared_inbox_url: URL sdílené příchozí schránky
show:
@@ -201,6 +203,36 @@ cs:
web: Web
whitelisted: Na bílé listině
action_logs:
+ action_types:
+ assigned_to_self_report: Přiřadit hlášení
+ change_email_user: Změnit uživateli e-mailovou adresu
+ confirm_user: Potvrdit uživatele
+ create_account_warning: Vytvořit varování
+ create_announcement: Nové oznámení
+ create_custom_emoji: Vytvořit vlastní emoji
+ create_domain_allow: Povolit doménu
+ create_domain_block: Zablokovat doménu
+ create_email_domain_block: Zablokovat e-maily na doméně
+ demote_user: Snížit roli uživatele
+ destroy_announcement: Odstranit oznámení
+ destroy_custom_emoji: Odstranit vlastní emoji
+ destroy_domain_allow: Odstranit povolenou doménu
+ destroy_domain_block: Odstranit blokování domény
+ destroy_email_domain_block: Odstranit blokování e-mailů na doméně
+ destroy_status: Odstranit stav
+ disable_2fa_user: Vypnout 2FA
+ disable_custom_emoji: Zakázat vlastní emoji
+ disable_user: Deaktivovat uživatele
+ enable_custom_emoji: Povolit vlastní emoji
+ enable_user: Povolit uživatele
+ promote_user: Povýšit uživatele
+ reopen_report: Znovu otevřít hlášení
+ reset_password_user: Obnovit heslo
+ resolve_report: Označit hlášení jako vyřešené
+ unassigned_report: Zrušit přiřazení hlášení
+ update_announcement: Aktualizovat oznámení
+ update_custom_emoji: Aktualizovat vlastní emoji
+ update_status: Aktualizovat stav
actions:
assigned_to_self_report: Uživatel %{name} si přidělil hlášení %{target}
change_email_user: Uživatel %{name} změnil e-mailovou adresu uživatele %{target}
@@ -238,6 +270,8 @@ cs:
update_custom_emoji: Uživatel %{name} aktualizoval emoji %{target}
update_status: Uživatel %{name} aktualizoval toot uživatele %{target}
deleted_status: "(smazaný toot)"
+ filter_by_action: Filtrovat podle akce
+ filter_by_user: Filtrovat podle uživatele
title: Auditovací protokol
announcements:
destroyed_msg: Oznámení bylo úspěšně odstraněno
@@ -368,6 +402,7 @@ cs:
destroyed_msg: E-mailová doména úspěšně odstraněna z černé listiny
domain: Doména
empty: Na černé listině aktuálně nejsou žádné e-mailové domény.
+ from_html: z domény %{domain}
new:
create: Přidat doménu
title: Nová položka pro černou listinu e-mailů
@@ -553,6 +588,8 @@ cs:
trends:
desc_html: Veřejně zobrazit populární hashtagy, které byly předtím schváleny
title: Populární hashtagy
+ site_uploads:
+ delete: Odstranit nahraný soubor
statuses:
back_to_account: Zpět na stránku účtu
batch:
@@ -1099,6 +1136,8 @@ cs:
many: 'obsahoval nepovolené hashtagy: %{tags}'
one: 'obsahoval nepovolený hashtag: %{tags}'
other: 'obsahoval nepovolené hashtagy: %{tags}'
+ errors:
+ in_reply_not_found: Stav, na který se pokoušíte odpovědět, neexistuje.
language_detection: Zjistit jazyk automaticky
open_in_web: Otevřít na webu
over_character_limit: byl překročen limit %{max} znaků
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index 572cf895a..e5a069efa 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -108,6 +108,7 @@ cy:
delete: Dileu
destroyed_msg: Dinistrwyd nodyn goruwchwylio yn llwyddiannus!
accounts:
+ add_email_domain_block: Cosbrestru parth e-bost
approve: Cymeradwyo
approve_all: Cymeradwyo pob un
are_you_sure: Ydych chi'n siŵr?
@@ -188,6 +189,7 @@ cy:
staff: Staff
user: Defnyddiwr
search: Chwilio
+ search_same_email_domain: Defnyddwyr eraill gyda'r un parth ebost
search_same_ip: Defnyddwyr eraill gyda'r un IP
shared_inbox_url: URL Mewnflwch wedi ei rannu
show:
@@ -209,6 +211,42 @@ cy:
web: Gwe
whitelisted: Rhestredig wen
action_logs:
+ action_types:
+ assigned_to_self_report: Neilltuo Adroddiad
+ change_email_user: Newid Ebost ar gyfer Defnyddiwr
+ confirm_user: Cadarnhau Defnyddiwr
+ create_account_warning: Creu Rhybydd
+ create_announcement: Creu Cyhoeddiad
+ create_custom_emoji: Creu Emoji Addasiedig
+ create_domain_allow: Creu Alluogiad Parth
+ create_domain_block: Creu Gwaharddiad Parth
+ create_email_domain_block: Creu Gwaharddiad Parth Ebost
+ demote_user: Diraddio Defnyddiwr
+ destroy_announcement: Dileu Cyhoeddiad
+ destroy_custom_emoji: Dileu Emoji Addasiedig
+ destroy_domain_allow: Dileu Alluogiad Parth
+ destroy_domain_block: Dileu Gwaharddiad Parth
+ destroy_email_domain_block: Dileu gwaharddiad parth ebost
+ destroy_status: Dileu Statws
+ disable_2fa_user: Diffodd 2FA
+ disable_custom_emoji: Analluogi Emoji Addasiedig
+ disable_user: Analluogi Defnyddiwr
+ enable_custom_emoji: Alluogi Emoji Addasiedig
+ enable_user: Alluogi Defnyddiwr
+ memorialize_account: Cofadeilio Cyfrif
+ promote_user: Dyrchafu Defnyddiwr
+ remove_avatar_user: Tynnu Afatar
+ reopen_report: Ailagor Adroddiad
+ reset_password_user: Ailosod Cyfrinair
+ resolve_report: Datrus Adroddiad
+ silence_account: Tawelu Cyfrif
+ suspend_account: Gwahardd Cyfrif Dros Dro
+ unassigned_report: Dadneilltuo Adroddiad
+ unsilence_account: Dadawelu Cyfrif
+ unsuspend_account: Tynnu Gwahardd Cyfrif Dros Dro
+ update_announcement: Diweddaru Cyhoeddiad
+ update_custom_emoji: Diweddaru Emoji Addasiedig
+ update_status: Diweddaru Statws
actions:
assigned_to_self_report: Aseiniodd %{name} adroddiad %{target} i'w hunan
change_email_user: Newidodd %{name} gyfeiriad e-bost y defnyddiwr %{target}
@@ -246,6 +284,9 @@ cy:
update_custom_emoji: Diweddarodd %{name} emoji %{target}
update_status: Diweddarodd %{name} statws gan %{target}
deleted_status: "(statws wedi ei ddileu)"
+ empty: Dim logiau ar gael.
+ filter_by_action: Hidlo wrth weithred
+ filter_by_user: Hidlo wrth ddefnyddiwr
title: Log archwilio
announcements:
destroyed_msg: Cyhoeddiad wedi'i ddileu yn llwyddianus!
@@ -378,6 +419,7 @@ cy:
destroyed_msg: Llwyddwyd i ddileu parth e-bost o'r gosbrestr
domain: Parth
empty: Dim parthiau ebost ar y rhestr rhwystro.
+ from_html: o %{domain}
new:
create: Ychwanegu parth
title: Cofnod newydd yng nghosbrestr e-byst
@@ -625,6 +667,7 @@ cy:
add_new: Creu enw arall
created_msg: Wedi creu enw arall yn llwyddianus. Gallwch nawr dechrau'r symudiad o'r hen gyfrif.
deleted_msg: Wedi tynnu enw arall yn llwyddianus. Ni fydd symud o'r cyfrif hynny i'r cyfrif hon yn bosib.
+ empty: Nid oes gennych chi enwau eraill.
hint_html: Os hoffech symyd o gyfrif arall i'r cyfrif hon, gallwch creu enw arall fama, sydd yn angenrheidiol cyn i chi dechrau symyd ddilynwyr o'r hen gyfrif i'r cyfrif hon. Mae'r gweithred hon yn ddiniwed ac yn gildroadwy. Caiff symudiad y cyfrif ei dechrau o'r hen gyfrif.
remove: Dadgysylltu'r enw arall
appearance:
@@ -1136,6 +1179,8 @@ cy:
other: 'yn cynnwys yr hashnod gwaharddedig: %{tags}'
two: 'yn cynnwys yr hashnod gwaharddedig: %{tags}'
zero: 'yn cynnwys yr hashnod gwaharddedig: %{tags}'
+ errors:
+ in_reply_not_found: Nid yw'r statws rydych yn ceisio ymateb i yn edrych fel ei fod yn bodoli.
language_detection: Canfod iaith yn awtomataidd
open_in_web: Agor yn y wê
over_character_limit: wedi mynd heibio'r uchafswm nodyn o %{max}
diff --git a/config/locales/da.yml b/config/locales/da.yml
index c978029b3..c7189ae34 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -192,6 +192,12 @@ da:
web: Web
whitelisted: Hvidlistet
action_logs:
+ action_types:
+ confirm_user: Bekræft bruger
+ destroy_status: Slet status
+ disable_2fa_user: Slet 2FA
+ disable_user: Deaktiver brugeren
+ enable_user: Aktiver brugeren
actions:
assigned_to_self_report: "%{name} tildelte anmeldelsen %{target} til sig selv"
change_email_user: "%{name} ændrede email adressen for brugeren %{target}"
@@ -226,6 +232,8 @@ da:
update_custom_emoji: "%{name} opdaterede humørikonet %{target}"
update_status: "%{name} opdaterede status for %{target}"
deleted_status: "(slettet status)"
+ filter_by_action: Filtrer efter handling
+ filter_by_user: Filtrer efter bruger
title: Revisionslog
custom_emojis:
assign_category: Vælg kategori
@@ -314,6 +322,8 @@ da:
reject_reports: Afvis anmeldelser
rejecting_media: afviser mediefiler
rejecting_reports: afviser anmeldelser
+ severity:
+ suspend: suspenderet
show:
affected_accounts:
one: En konto i databasen påvirket
@@ -331,6 +341,7 @@ da:
delete: Slet
destroyed_msg: Fjernede succesfuldt email domænet fra sortliste
domain: Domæne
+ from_html: fra %{domain}
new:
create: Tilføj domæne
title: Ny email blokade opslag
@@ -614,6 +625,7 @@ da:
storage: Medie lager
filters:
contexts:
+ account: Profiler
home: Hjemme tidslinje
notifications: Notifikationer
public: Offentlig tidslinje
@@ -637,6 +649,7 @@ da:
all: Alle
changes_saved_msg: Ændringerne blev gemt!
copy: Kopier
+ delete: Slet
order_by: Sorter efter
save_changes: Gem ændringer
validation_errors:
@@ -848,6 +861,7 @@ da:
poll:
vote: Stem
show_more: Vis mere
+ show_thread: Vis tråd
sign_in_to_participate: Log ind for at deltage i samtalen
visibilities:
private: Kun-følgere
diff --git a/config/locales/devise.ar.yml b/config/locales/devise.ar.yml
index 2033e082d..d5763e6bd 100644
--- a/config/locales/devise.ar.yml
+++ b/config/locales/devise.ar.yml
@@ -49,9 +49,11 @@ ar:
subject: 'ماستدون: نظام المصادقة بخطوتين مُعطّل'
title: إنّ 2FA معطّل
two_factor_enabled:
+ explanation: تم تفعيل المصادقة بخطوتين على حسابك. سيُطلب منك رمز تم توليده بواسطة تطبيق TOTP المقترن للولوج.
subject: 'ماستدون: تم تفعيل نظام المصادقة بخطوتين'
title: إنّ 2FA نشِط
two_factor_recovery_codes_changed:
+ explanation: لقد تم إلغاء رموز الاسترداد السابقة وأنشئت رموز جديدة.
subject: 'ماستدون: تم إعادة توليد رموز استرجاع المصادقة بخطوتين'
title: تم استبدال رموز استرجاع 2FA
unlock_instructions:
diff --git a/config/locales/devise.da.yml b/config/locales/devise.da.yml
index 2cfd24658..75a035935 100644
--- a/config/locales/devise.da.yml
+++ b/config/locales/devise.da.yml
@@ -11,7 +11,7 @@ da:
invalid: Ugyldig %{authentication_keys} eller adgangskode.
last_attempt: Du har ét forsøg mere, før din konto bliver låst.
locked: Din konto er låst.
- not_found_in_database: Ugyldig %{authentication_keys} eller ugyldigt kodeord.
+ not_found_in_database: Ugyldig %{authentication_keys} eller adgangskode.
pending: Din konto er stadig under bedømmelse.
timeout: Din session er udløbet. Log venligst ind igen for at fortsætte.
unauthenticated: Du er nødt til at logge ind eller oprette dig for at fortsætte.
diff --git a/config/locales/devise.el.yml b/config/locales/devise.el.yml
index 5dc7658c2..7eb064e5d 100644
--- a/config/locales/devise.el.yml
+++ b/config/locales/devise.el.yml
@@ -18,10 +18,10 @@ el:
unconfirmed: Πρέπει να επιβεβαιώσεις τη διεύθυνση email σου για να συνεχίσεις.
mailer:
confirmation_instructions:
- action: Επιβεβαίωσε διεύθυνση email
+ action: Επιβεβαίωση διεύθυνσης email
action_with_app: Επιβεβαίωση και επιστροφή στο %{app}
explanation: Δημιούργησες έναν λογαριασμό στο %{host} με αυτή τη διεύθυνση email. Με ένα κλικ θα τον ενεργοποιήσεις. Αν δεν το έκανες εσύ, παρακαλούμε αγνόησε αυτό το email.
- explanation_when_pending: Έχεις υποβάλλει αίτηση πρόσκλησης στο %{host} με αυτή την ηλεκτρονική διεύθυνση email. Μόλις επιβεβαιώσεις το email σου, θα ελέγξουμε την αίτηση σου. Μέχρι τότε δε θα μπορεις να συνδεθείς. Αν απορριφθεί η αίτησή σου, τα στοιχεία σου θα αφαιρεθούν, άρα δε θα χρειαστεί να κάνεις κάτι επιπλέον. Αν δεν υπέβαλες εσύ την αίτηση, αγνόησε αυτό το email.
+ explanation_when_pending: Έχεις υποβάλλει αίτηση πρόσκλησης στο %{host} με αυτή την ηλεκτρονική διεύθυνση email. Μόλις επιβεβαιώσεις το email σου, θα ελέγξουμε την αίτηση σου. Μέχρι τότε δε θα μπορείς να συνδεθείς. Αν απορριφθεί η αίτησή σου, τα στοιχεία σου θα αφαιρεθούν, άρα δε θα χρειαστεί να κάνεις κάτι επιπλέον. Αν δεν υπέβαλες εσύ την αίτηση, αγνόησε αυτό το email.
extra_html: Παρακαλούμε να διαβάσεις του κανόνες αυτού του κόμβου και τους όρους χρήσης της υπηρεσίας μας.
subject: 'Mastodon: Οδηγίες επιβεβαίωσης για %{instance}'
title: Επιβεβαίωσε διεύθυνση email
@@ -47,17 +47,17 @@ el:
subject: 'Mastodon: Οδηγίες επαναφοράς συνθηματικού'
title: Επαναφορά συνθηματικού
two_factor_disabled:
- explanation: Ο έλεγχος ταυτότητας δυο παραγόντων (2FA) έχει απενεργοποιηθεί για το λογαριασμό σου. Η σύνδεση γίνεται απλά με το email και το συνθηματικό.
- subject: 'Mastodon: Απενεργοποιήθηκε ο έλεγχος ταυτότητας δύο παραγόντων'
- title: Απενεργοποιημένο 2FA
+ explanation: Η επαλήθευση 2 βημάτων (2FA) έχει απενεργοποιηθεί για το λογαριασμό σου. Η σύνδεση γίνεται απλά με το email και το συνθηματικό.
+ subject: 'Mastodon: Απενεργοποιήθηκε η επαλήθευση 2 βημάτων (2FA)'
+ title: Επαλήθευση 2 βημάτων ανενεργή (2FA)
two_factor_enabled:
explanation: Έχει ενεργοποιηθεί η πιστοποίηση 2 παραγόντων για το λογαριασμό σου (2FA). Για να συνδεθείς θα απαιτηθεί πιστοποιημένο τεκμήριο από κάποια ζευγαρωμένη εφαρμογή.
- subject: 'Mastodon: Ενεργοποιήθηκε η πιστοποίηση 2 παραγόντων (2FA)'
- title: Επαλήθευση δύο βημάτων ενεργή
+ subject: 'Mastodon: Ενεργοποιήθηκε η επαλήθευση 2 βημάτων (2FA)'
+ title: Επαλήθευση 2 βημάτων ενεργή (2FA)
two_factor_recovery_codes_changed:
explanation: Οι προηγούμενοι κωδικοί ανάκτησης ακυρώθηκαν και δημιουργήθηκαν νέοι.
subject: 'Mastodon: Δημιουργήθηκαν νέοι κωδικοί ανάκτησης'
- title: Οι κωδικοί ανάκτησης 2FA άλλαξαν
+ title: Οι κωδικοί ανάκτησης επαλήθευσης 2 βημάτων (2FA) άλλαξαν
unlock_instructions:
subject: 'Mastodon: Οδηγίες ξεκλειδώματος'
omniauth_callbacks:
@@ -70,7 +70,7 @@ el:
updated: Το συνθηματικό σου άλλαξε. Πλέον έχεις συνδεθεί.
updated_not_active: Το συνθηματικό σου άλλαξε.
registrations:
- destroyed: Στο καλό! Ο λογαριασμός σου ακυρώθηκε με επιτυχία. Ελπίζουμε να σε ξαναδούμε σύντομα.
+ destroyed: Αντίο! Ο λογαριασμός σου ακυρώθηκε με επιτυχία. Ελπίζουμε να σε ξαναδούμε σύντομα.
signed_up: Καλώς ήρθες! Εγγράφηκες με επιτυχία.
signed_up_but_inactive: Εγγράφηκες με επιτυχία. Όμως δε μπορέσαμε να σε συνδέσουμε γιατί ο λογαριασμός σου δεν έχει ενεργοποιηθεί ακόμα.
signed_up_but_locked: Εγγράφηκες με επιτυχία. Όμως δε μπορέσαμε να σε συνδέσουμε γιατί ο λογαριασμός σου είναι κλειδωμένος.
diff --git a/config/locales/devise.eo.yml b/config/locales/devise.eo.yml
index 7c67ac8fa..0631d1c07 100644
--- a/config/locales/devise.eo.yml
+++ b/config/locales/devise.eo.yml
@@ -47,9 +47,17 @@ eo:
subject: 'Mastodon: Instrukcioj por ŝanĝi pasvorton'
title: Pasvorto restarigita
two_factor_disabled:
+ explanation: Dufaktora aŭtentigo por via konto malebligis. Ensalutado nun eblas per nur retpoŝtadreso kaj pasvorto.
+ subject: 'Mastodon: dufaktora aŭtentigo malebligita'
title: la du-etapa aŭtentigo estas malŝaltita
two_factor_enabled:
+ explanation: Dufaktora aŭtentigo sukcese ebligita por via akonto. Vi bezonos ĵetonon kreitan per parigitan aplikaĵon por ensaluti.
+ subject: 'Mastodon: dufaktora aŭtentigo ebligita'
title: la du-etapa aŭtentigo estas ŝaltita
+ two_factor_recovery_codes_changed:
+ explanation: La antaŭaj reakiraj kodoj estis nuligitaj kaj novaj estis generitaj.
+ subject: 'Mastodon: Reakiraj kodoj de dufaktora aŭtentigo rekreitaj'
+ title: Reakiraj kodoj de 2FA estas ŝanĝitaj
unlock_instructions:
subject: 'Mastodon: Instrukcioj por malŝlosi'
omniauth_callbacks:
diff --git a/config/locales/devise.it.yml b/config/locales/devise.it.yml
index 85c010495..aeb4c3f6d 100644
--- a/config/locales/devise.it.yml
+++ b/config/locales/devise.it.yml
@@ -8,10 +8,10 @@ it:
failure:
already_authenticated: Hai già effettuato l'accesso.
inactive: Non hai ancora attivato il tuo account.
- invalid: "%{authentication_keys} o password invalida."
+ invalid: "%{authentication_keys} o password non valida."
last_attempt: Hai un altro tentativo prima che il tuo account venga bloccato.
locked: Il tuo account è stato bloccato.
- not_found_in_database: "%{authentication_keys} o password invalida."
+ not_found_in_database: "%{authentication_keys} o password non valida."
pending: Il tuo account è ancora in fase di approvazione.
timeout: La tua sessione è terminata. Per favore, effettua l'accesso o registrati per continuare.
unauthenticated: Devi effettuare l'accesso o registrarti per continuare.
diff --git a/config/locales/devise.pt-BR.yml b/config/locales/devise.pt-BR.yml
index 5f46a4ba1..bb5d5d34b 100644
--- a/config/locales/devise.pt-BR.yml
+++ b/config/locales/devise.pt-BR.yml
@@ -9,8 +9,8 @@ pt-BR:
already_authenticated: Você entrou na sua conta.
inactive: Sua conta não foi confirmada ainda.
invalid: "%{authentication_keys} ou senha inválida."
- last_attempt: Você tem apenas mais uma tentativa sobrando antes que a sua conta seja bloqueada.
- locked: Sua conta está bloqueada.
+ last_attempt: Você tem mais uma tentativa antes de sua conta ser trancada.
+ locked: Sua conta está trancada.
not_found_in_database: "%{authentication_keys} ou senha inválida."
pending: Sua conta está sendo revisada.
timeout: Você saiu de sua conta. Por favor, entre novamente para continuar.
@@ -27,12 +27,12 @@ pt-BR:
title: Confirme o endereço de e-mail
email_changed:
explanation: 'O e-mail vinculado à sua conta será alterado para:'
- extra: Se você não alterou seu e-mail, é possível que alguém tenha acessado a sua conta. Altere sua senha imediatamente ou entre em contato com o administrador da sua instância se você perdeu o acesso à sua conta.
+ extra: Se você não alterou seu email, é provável que alguém tenha ganhado acesso a sua conta. Por favor altere sua senha imediatamente ou entre em contato com o administrador do servidor se você está trancado fora de sua conta.
subject: 'Mastodon: Endereço de e-mail alterado'
title: Novo endereço de e-mail
password_change:
explanation: A senha da sua conta foi alterada.
- extra: Se você não alterou sua senha, é possível que alguém tenha acessado a sua conta. Altere sua senha imediatamente ou entre em contato com o administrador da sua instância se você perdeu o acesso à sua conta.
+ extra: Se você não alterou sua senha, é provável que alguém tenha ganhado acesso a sua conta. Por favor altere sua senha imediatamente ou entre em contato com o administrador do servidor se você está trancado fora de sua conta.
subject: 'Mastodon: Senha alterada'
title: Senha alterada
reconfirmation_instructions:
@@ -73,7 +73,7 @@ pt-BR:
destroyed: Adeus! Sua conta foi cancelada. Talvez um dia possamos nos ver de novo.
signed_up: Boas vindas! Conta criada.
signed_up_but_inactive: Conta criada! Agora você deve confirmá-la.
- signed_up_but_locked: Conta criada! Porém, você deve desbloqueá-la.
+ signed_up_but_locked: Você se cadastrou com sucesso. Contudo, não pudemos fazer login porque sua conta está trancada.
signed_up_but_pending: Um e-mail com um link de confirmação foi enviado para o seu endereço de e-mail. Após você entrar no link, revisaremos sua solicitação e você será notificado caso seja aprovado.
signed_up_but_unconfirmed: Um e-mail com instruções para confirmar o seu endereço de e-mail foi enviado. Por favor, verifique sua pasta de spam caso ainda não o tenha recebido.
update_needs_confirmation: Você alterou seu endereço de e-mail ou sua senha, porém é preciso confirmar a alteração. Por favor, entre no link que foi enviado para o seu novo endereço de e-mail e verifique sua pasta de spam caso ainda não o tenha recebido.
@@ -83,16 +83,16 @@ pt-BR:
signed_in: Você entrou na sua conta.
signed_out: Você saiu de sua conta.
unlocks:
- send_instructions: Você receberá um e-mail com instruções para desbloquear a sua conta dentro de alguns minutos. Por favor, verifique sua pasta de spam caso ainda não o tenha recebido.
- send_paranoid_instructions: Se a sua conta já existe, você receberá um e-mail com instruções para desbloqueá-la dentro de alguns minutos. Por favor, verifique sua pasta de spam caso ainda não o tenha recebido.
- unlocked: Sua conta foi desbloqueada. Por favor, entre na sua conta para continuar.
+ send_instructions: Você receberá um email com instruções para destrancar a sua conta em alguns minutos. Por favor verifique sua pasta de spam se não recebeu este email.
+ send_paranoid_instructions: Se a sua conta existe, você vai reveber um email com instruções para destrancá-la em alguns minutos. Por favor verifique sua pasta de spam se você não recebeu este email.
+ unlocked: Sua conta foi destrancada com sucesso. Por favor entre na sua conta para continuar.
errors:
messages:
already_confirmed: confirmado, agora tente entrar na sua conta
confirmation_period_expired: precisa ser confirmada em até %{period}, por favor, solicite novo link de confirmação
expired: expirou, por favor solicite uma nova
not_found: não encontrado
- not_locked: Sua conta não está bloqueada.
+ not_locked: não foi trancada
not_saved:
one: '1 erro impediu este %{resource} de ser salvo(a):'
other: "%{count} erros impediram este %{resource} de ser salvo(a):"
diff --git a/config/locales/devise.pt-PT.yml b/config/locales/devise.pt-PT.yml
index c6cfe0c37..935189a16 100644
--- a/config/locales/devise.pt-PT.yml
+++ b/config/locales/devise.pt-PT.yml
@@ -20,19 +20,19 @@ pt-PT:
confirmation_instructions:
action: Verificar o endereço de e-mail
action_with_app: Confirmar e regressar a %{app}
- explanation: Criaste uma conta em %{host} com este endereço de e-mail. Estás a um clique de activá-la. Se não foste tu que fizeste este registo, por favor ignora esta mensagem.
+ explanation: Criou uma conta em %{host} com este endereço de e-mail. Está a um clique de activá-la. Se não foi você que fez este registo, por favor ignore esta mensagem.
explanation_when_pending: Você solicitou um convite para %{host} com este endereço de e-mail. Logo que confirme o seu endereço de e-mail, iremos rever a sua inscrição. Pode iniciar sessão para alterar os seus dados ou eliminar a sua conta, mas não poderá aceder à maioria das funções até que a sua conta seja aprovada. Se a sua inscrição for rejeitada, os seus dados serão removidos, pelo que não será necessária qualquer acção adicional da sua parte. Se não solicitou este convite, por favor, ignore este e-mail.
- extra_html: Por favor lê as regras da instância e os nossos termos de serviço.
+ extra_html: Por favor leia as regras da instância e os nossos termos de serviço.
subject: 'Mastodon: Instruções de confirmação %{instance}'
title: Verificar o endereço de e-mail
email_changed:
explanation: 'O e-mail associado à tua conta será alterado para:'
- extra: Se não alterou o seu email, é possível que alguém tenha conseguido aceder à sua conta. Por favor altere a sua palavra-passe imediatamente ou entra em contacto com um administrador do servidor se tiver ficado sem acesso à sua conta.
+ extra: Se não alterou o seu email, é possível que alguém tenha conseguido aceder à sua conta. Por favor altere a sua palavra-passe imediatamente ou entra em contacto com um administrador da instância se tiver ficado sem acesso à sua conta.
subject: 'Mastodon: Email alterado'
title: Novo endereço de e-mail
password_change:
explanation: A palavra-passe da tua conta foi alterada.
- extra: Se não alterou a sua palavra-passe, é possível que alguém tenha conseguido aceder à sua conta. Por favor altere a sua palavra-passe imediatamente ou entre em contacto com um administrador do servidor se tiver ficado sem acesso à sua conta.
+ extra: Se não alterou a sua palavra-passe, é possível que alguém tenha conseguido aceder à sua conta. Por favor altere a sua palavra-passe imediatamente ou entre em contacto com um administrador da instância se tiver ficado sem acesso à sua conta.
subject: 'Mastodon: Nova palavra-passe'
title: Palavra-passe alterada
reconfirmation_instructions:
diff --git a/config/locales/devise.ro.yml b/config/locales/devise.ro.yml
index 79dbaa871..8579d2c64 100644
--- a/config/locales/devise.ro.yml
+++ b/config/locales/devise.ro.yml
@@ -1 +1,99 @@
+---
ro:
+ devise:
+ confirmations:
+ confirmed: Adresa ta de e-mail a fost confirmată cu succes.
+ send_instructions: Vei primi un e-mail cu instrucțiuni despre cum să confirmi adresa ta de e-mail în câteva minute. Te rugăm să verifici dosarul spam dacă nu ai primit acest e-mail.
+ send_paranoid_instructions: Dacă adresa ta de e-mail există în baza noastră de date, în câteva minute vei primi un e-mail cu instrucțiuni pentru confirmarea adresei tale de e-mail. Te rugăm să verifici dosarul spam dacă nu ai primit acest e-mail.
+ failure:
+ already_authenticated: Ești deja conectat.
+ inactive: Contul tău nu este încă activat.
+ invalid: "%{authentication_keys} sau parolă greșită."
+ last_attempt: Mai ai încă o încercare înainte de a bloca contul.
+ locked: Contul tău este blocat.
+ not_found_in_database: "%{authentication_keys} sau parolă greșită."
+ pending: Contul tău este încă în curs de revizuire.
+ timeout: Sesiunea ta a expirat. Te rugăm să te conectezi din nou pentru a continua.
+ unauthenticated: Trebuie să te conectezi sau să te înregistrezi înainte de a continua.
+ unconfirmed: Trebuie să confirmi adresa ta de e-mail înainte de a continua.
+ mailer:
+ confirmation_instructions:
+ action: Verifică adresa de e-mail
+ action_with_app: Confirmați și reveniți la %{app}
+ explanation: Ai creat un cont pe %{host} cu această adresă de e-mail. Ești la un click distanță de a o activa. Dacă nu ai fost tu, ignoră acest e-mail.
+ explanation_when_pending: Ai solicitat o invitație către %{host} cu această adresă de e-mail. Odată ce îți confirmi adresa de e-mail, îți vom revizui cererea. Te poți autentifica pentru a-ți schimba detaliile sau pentru a-ți șterge contul, dar nu poți accesa majoritatea funcțiilor până când contul tău nu este aprobat. Dacă cererea ta este respinsă, datele tale vor fi șterse, astfel încât nu va fi necesară nicio altă acțiune din partea ta. Dacă nu ai fost tu, ignoră acest e-mail.
+ extra_html: Te rugăm să verifici și regulile serverului și termenii noștri de serviciu.
+ subject: 'Mastodon: Instrucțiuni de confirmare pentru %{instance}'
+ title: Verifică adresa de e-mail
+ email_changed:
+ explanation: 'Adresa de e-mail pentru contul tău este schimbată la:'
+ extra: Dacă nu v-ați schimbat adresa de e-mail, probabil că cineva a obținut acces la contul dvs. Te rugăm să îți schimbi parola imediat sau să contactezi administratorul serverului dacă nu ai acces la contul tău.
+ subject: E-mail schimbat
+ title: Noua adresa de e-mail
+ password_change:
+ explanation: Parola contului tău a fost schimbată.
+ extra: Dacă nu v-ați schimbat parola, este posibil ca cineva să fi obținut acces la contul dvs. Te rugăm să îți schimbi parola imediat sau să contactezi administratorul serverului dacă nu ai acces la contul tău.
+ subject: Parolă schimbată
+ title: Parolă schimbată
+ reconfirmation_instructions:
+ explanation: Confirmă noua adresă pentru a schimba adresa de e-mail.
+ extra: Dacă această modificare nu a fost inițiată de dvs., vă rugăm să ignorați acest e-mail. Adresa de e-mail pentru contul Mastodon nu se va schimba până când nu accesați link-ul de mai sus.
+ subject: 'Mastodon: Confirmați e-mailul pentru %{instance}'
+ title: Verifică adresa de e-mail
+ reset_password_instructions:
+ action: Schimbă parola
+ explanation: Ați solicitat o nouă parolă pentru contul dvs.
+ extra: Dacă nu ați solicitat acest lucru, ignorați acest e-mail. Parola dvs. nu se va schimba până când nu veți accesa link-ul de mai sus și nu veți crea unul nou.
+ subject: Instrucțiuni pentru resetarea parolei
+ title: Resetare parolă
+ two_factor_disabled:
+ explanation: Autentificarea în doi pași pentru contul tău a fost dezactivată. Autentificarea este posibilă acum folosind doar adresa de e-mail și parola.
+ subject: Autentificare cu doi factori dezactivată
+ title: 2FA dezactivat
+ two_factor_enabled:
+ explanation: Autentificarea în doi pași a fost activată pentru contul dvs. Un token generat de aplicația TOTP împerecheată va fi necesar pentru autentificare.
+ subject: Autentificare în doi pași activată
+ title: 2FA activat
+ two_factor_recovery_codes_changed:
+ explanation: Codurile anterioare de recuperare au fost invalidate și unele noi generate.
+ subject: Recuperare în doi factori
+ title: Coduri de recuperare 2FA modificate
+ unlock_instructions:
+ subject: Instrucțiuni de deblocare
+ omniauth_callbacks:
+ failure: Nu te-am putut autentifica de la %{kind} deoarece "%{reason}".
+ success: Autentificat cu succes din contul %{kind}.
+ passwords:
+ no_token: Nu puteți accesa această pagină fără să veniți dintr-un e-mail de resetare a parolei. Dacă vii dintr-un e-mail de resetare a parolei, te rugăm să te asiguri că ai folosit URL-ul complet furnizat.
+ send_instructions: Dacă adresa ta de e-mail există în baza noastră de date, vei primi în câteva minute un link de recuperare a parolei la adresa ta de e-mail. Te rugăm să verifici dosarul spam dacă nu ai primit acest e-mail.
+ send_paranoid_instructions: Dacă adresa ta de e-mail există în baza noastră de date, vei primi în câteva minute un link de recuperare a parolei la adresa ta de e-mail. Te rugăm să verifici dosarul spam dacă nu ai primit acest e-mail.
+ updated: Parola ta a fost schimbată cu succes. Acum ești conectat.
+ updated_not_active: Parola ta a fost schimbată cu succes.
+ registrations:
+ destroyed: La revedere! Contul tău a fost anulat cu succes. Sperăm să te vedem din nou în curând.
+ signed_up: Bine ați venit! V-ați înregistrat cu succes.
+ signed_up_but_inactive: V-ați înregistrat cu succes. Cu toate acestea, nu vă putem conecta deoarece contul dvs. nu este încă activat.
+ signed_up_but_locked: V-ați înregistrat cu succes. Cu toate acestea, nu vă putem conecta deoarece contul dvs. este blocat.
+ signed_up_but_pending: Un mesaj cu un link de confirmare a fost trimis la adresa ta de e-mail. După ce faceți clic pe link, vă vom revizui cererea. Veți fi notificat dacă este aprobat.
+ signed_up_but_unconfirmed: Un mesaj cu un link de confirmare a fost trimis la adresa ta de e-mail. Vă rugăm să urmaţi link-ul pentru a vă activa contul. Vă rugăm să verificaţi folderul spam dacă nu aţi primit acest e-mail.
+ update_needs_confirmation: Ți-ai actualizat contul cu succes, dar trebuie să verificăm noua ta adresă de e-mail. Vă rugăm să verificați adresa de e-mail și să urmați link-ul de confirmare pentru a confirma noua dvs. adresă de e-mail. Te rugăm să verifici dosarul spam dacă nu ai primit acest e-mail.
+ updated: Contul dvs. a fost actualizat cu succes.
+ sessions:
+ already_signed_out: Deconectat cu succes.
+ signed_in: Conectat cu succes.
+ signed_out: Deconectat cu succes.
+ unlocks:
+ send_instructions: Veţi primi un e-mail cu instrucţiuni despre cum să vă deblocaţi contul în câteva minute. Te rugăm să verifici dosarul spam dacă nu ai primit acest e-mail.
+ send_paranoid_instructions: Dacă contul tău există, vei primi un e-mail cu instrucțiuni pentru cum să-l deblochezi în câteva minute. Te rugăm să verifici dosarul spam dacă nu ai primit acest e-mail.
+ unlocked: Contul tău a fost deblocat cu succes. Te rugăm să te autentifici pentru a continua.
+ errors:
+ messages:
+ already_confirmed: a fost deja confirmat, încercați să vă conectați
+ confirmation_period_expired: trebuie să fie confirmat în %{period}, vă rugăm să solicitați unul nou
+ expired: a expirat, vă rugăm să solicitaţi unul nou
+ not_found: nu a fost găsit
+ not_locked: nu a fost blocat
+ not_saved:
+ few: "%{count} erori au împiedicat salvarea acestui %{resource}:"
+ one: 'O eroare a împiedicat salvarea acestui %{resource}:'
+ other: "%{count} de erori au împiedicat salvarea acestui %{resource}:"
diff --git a/config/locales/devise.sc.yml b/config/locales/devise.sc.yml
new file mode 100644
index 000000000..91bd6d92f
--- /dev/null
+++ b/config/locales/devise.sc.yml
@@ -0,0 +1 @@
+sc:
diff --git a/config/locales/devise.sk.yml b/config/locales/devise.sk.yml
index ba2a64ed0..be85887ce 100644
--- a/config/locales/devise.sk.yml
+++ b/config/locales/devise.sk.yml
@@ -48,15 +48,15 @@ sk:
two_factor_disabled:
explanation: Dvojfázové overovanie tvojho účtu bolo vypnuté. Teraz sa môžeš prihlásiť len pomocou emailu a hesla.
subject: 'Mastodon: Dvojfázové overovanie vypnuté'
- title: 2FA vypnuté
+ title: Dvoj-faktorové overovanie vypnuté
two_factor_enabled:
explanation: Dvojfázové overovanie bolo zapnuté pre tvoj účet. Pre prihlásenie budeš potrebovať token vygenerovaný pre TOTP aplikáciu, ktorá je spárovaná.
subject: 'Mastodon: Dvojfázové overovanie zapnuté'
- title: 2FA zapnuté
+ title: Dvoj-faktorové overovanie zapnuté
two_factor_recovery_codes_changed:
explanation: Predošlé obnovovacie kódy boli urobené neplatnými a boli vygenerované nové.
subject: 'Mastodon: dvojfázové zálohové kódy boli znovu vygenerované'
- title: Obnovovacie kódy 2FA zmenené
+ title: Obnovovacie kódy pre dvoj-faktorové overovanie zmenené
unlock_instructions:
subject: 'Mastodon: Pokyny na odomknutie účtu'
omniauth_callbacks:
diff --git a/config/locales/devise.sq.yml b/config/locales/devise.sq.yml
index 0380d962e..0fb59cb48 100644
--- a/config/locales/devise.sq.yml
+++ b/config/locales/devise.sq.yml
@@ -44,6 +44,10 @@ sq:
extra: Nëse këtë s’e kërkuat ju, ju lutemi, shpërfilleni këtë email. Fjalëkalimi juaj s’do të ndryshohet pa hyrë në lidhjen më sipër dhe krijimin e një të riu.
subject: 'Mastodon: Udhëzime ricaktimi fjalëkalimi'
title: Ricaktim fjalëkalimi
+ two_factor_disabled:
+ title: 2FA ç'aktivizuar
+ two_factor_enabled:
+ title: 2FA aktivizuar
unlock_instructions:
subject: 'Mastodon: Udhëzime shkyçjeje'
omniauth_callbacks:
diff --git a/config/locales/devise.zh-CN.yml b/config/locales/devise.zh-CN.yml
index 4c75a8816..cc17b6289 100644
--- a/config/locales/devise.zh-CN.yml
+++ b/config/locales/devise.zh-CN.yml
@@ -8,14 +8,14 @@ zh-CN:
failure:
already_authenticated: 你已经登录。
inactive: 你还没有激活帐户。
- invalid: "%{authentication_keys}或密码错误。"
+ invalid: 无效的%{authentication_keys}或密码错误。
last_attempt: 你还有最后一次尝试机会,再次失败你的帐户将被锁定。
locked: 你的帐户已被锁定。
not_found_in_database: "%{authentication_keys}或密码错误。"
pending: 你的帐号仍在审核中。
- timeout: 你已登录超时,请重新登录。
+ timeout: 您的会话已过期。请重新登录再继续操作。
unauthenticated: 继续操作前请注册或者登录。
- unconfirmed: 继续操作前请先确认你的帐户。
+ unconfirmed: 您必须先确认您的电子邮件地址才能继续。
mailer:
confirmation_instructions:
action: 验证电子邮件地址
@@ -26,7 +26,7 @@ zh-CN:
subject: Mastodon:确认 %{instance} 帐户信息
title: 验证电子邮件地址
email_changed:
- explanation: 你的帐户的电子邮件地址即将变更为:
+ explanation: 你的帐户的电子邮件地址将变更为:
extra: 如果你并没有请求更改你的电子邮件地址,则他人很有可能已经入侵你的帐户。请立即更改你的密码;如果你已经无法访问你的帐户,请联系服务器管理员请求协助。
subject: Mastodon:电子邮件地址已被更改
title: 新电子邮件地址
@@ -80,8 +80,8 @@ zh-CN:
updated: 帐户资料更新成功。
sessions:
already_signed_out: 已成功登出。
- signed_in: 登录成功。
- signed_out: 登出成功。
+ signed_in: 已成功登录。
+ signed_out: 已成功登出。
unlocks:
send_instructions: 几分钟后,你将收到一封解锁帐户的邮件。如果没有,请检查你的垃圾邮箱。
send_paranoid_instructions: 如果你的邮箱存在于我们的数据库中,你将收到一封解锁帐户的邮件。如果没有,请检查你的垃圾邮箱。
@@ -91,7 +91,7 @@ zh-CN:
already_confirmed: 已经确认成功,请尝试登录
confirmation_period_expired: 必须在 %{period}以内确认。请重新发起请求
expired: 已过期。请重新发起请求
- not_found: 找不到
+ not_found: 未找到
not_locked: 未被锁定
not_saved:
- other: 发生 %{count} 个错误,导致%{resource}保存失败:
+ other: 发生了 %{count} 个错误, %{resource} 将保存失败:
diff --git a/config/locales/doorkeeper.cs.yml b/config/locales/doorkeeper.cs.yml
index 00345db76..aecb781c9 100644
--- a/config/locales/doorkeeper.cs.yml
+++ b/config/locales/doorkeeper.cs.yml
@@ -148,4 +148,4 @@ cs:
write:mutes: skrývat lidi a konverzace
write:notifications: mazat vaše oznámení
write:reports: nahlašovat jiné uživatele
- write:statuses: zvařejňovat tooty
+ write:statuses: zveřejňovat tooty
diff --git a/config/locales/doorkeeper.da.yml b/config/locales/doorkeeper.da.yml
index 04f524c0a..cf630195f 100644
--- a/config/locales/doorkeeper.da.yml
+++ b/config/locales/doorkeeper.da.yml
@@ -38,6 +38,7 @@ da:
application: Applikation
callback_url: Callback-URL
delete: Slet
+ empty: Du har ingen applikationer.
name: Navn
new: Ny applikation
scopes: Omfang
diff --git a/config/locales/doorkeeper.fi.yml b/config/locales/doorkeeper.fi.yml
index abe1a96b2..34b08dd76 100644
--- a/config/locales/doorkeeper.fi.yml
+++ b/config/locales/doorkeeper.fi.yml
@@ -38,6 +38,7 @@ fi:
application: Sovellus
callback_url: Takaisinkutsu-URL
delete: Poista
+ empty: Sinulla ei ole sovelluksia.
name: Nimi
new: Uusi sovellus
scopes: Oikeudet
diff --git a/config/locales/doorkeeper.gl.yml b/config/locales/doorkeeper.gl.yml
index 281f03f84..c6c347a7f 100644
--- a/config/locales/doorkeeper.gl.yml
+++ b/config/locales/doorkeeper.gl.yml
@@ -5,7 +5,7 @@ gl:
doorkeeper/application:
name: Nome do aplicativo
redirect_uri: URI a redireccionar
- scopes: Permisos
+ scopes: Ámbitos
website: Sitio web da aplicación
errors:
models:
@@ -79,8 +79,8 @@ gl:
errors:
messages:
access_denied: O propietario do recurso ou o servidor autorizado denegaron a petición.
- credential_flow_not_configured: O fluxo do Contrasinal de Credenciais do Dono do Recurso fallou debido a que Doorkeeper.configure.resource_owner_from_credentials non están configuradas.
- invalid_client: A autenticación do cliente fallou debido a un cliente descoñecido, non se incluíu autenticación do cliente, ou o método de autenticación non está soportado.
+ credential_flow_not_configured: O fluxo do Contrasinal de Credenciais do Dono do Recurso fallou debido a que Doorkeeper.configure.resource_owner_from_credentials non están configuradas.
+ invalid_client: A autenticación do cliente fallou por ser un cliente descoñecido, non se incluíu autenticación do cliente, ou o método de autenticación non está soportado.
invalid_grant: A validación da autorización proporcionada non é valida, caducou, foi rexeitada, non coincide a redirección URI utilizada na petición de autorización, ou foi proporcionada para outro cliente.
invalid_redirect_uri: A uri de redirección incluída non é válida.
invalid_request: A petición fáltalle un parámetro requerido, inclúe un valor de parámetro non soportado, ou de algún xeito non ten o formato axeitado.
@@ -99,53 +99,53 @@ gl:
flash:
applications:
create:
- notice: Aplicativo creado.
+ notice: Aplicación creada.
destroy:
- notice: Aplicativo eliminado.
+ notice: Aplicación eliminada.
update:
- notice: Aplicativo actualizado.
+ notice: Aplicación actualizada.
authorized_applications:
destroy:
- notice: Aplicativo rexeitado.
+ notice: Aplicación revogada.
layouts:
admin:
nav:
- applications: Aplicativos
- oauth2_provider: Proveedor OAuth2
+ applications: Aplicacións
+ oauth2_provider: Provedor OAuth2
application:
title: Precisa autorización OAuth
scopes:
admin:read: ler todos os datos no servidor
admin:read:accounts: ler información sensible de todas as contas
- admin:read:reports: ler información sensible de todos os informes e contas reportadas
+ admin:read:reports: ler información sensible de todos os informes e contas denunciadas
admin:write: modificar todos os datos no servidor
admin:write:accounts: executar accións de moderación nas contas
- admin:write:reports: executar accións de moderación nos informes
+ admin:write:reports: executar accións de moderación nas denuncias
follow: modificar as relacións da conta
push: recibir notificacións push
- read: ler todos os datos da súa conta
+ read: ler todos os datos da tua conta
read:accounts: ver información das contas
- read:blocks: ver a quen bloquea
- read:bookmarks: aquí tes os marcadores
- read:favourites: ver as súas favoritas
- read:filters: ver os seus filtros
- read:follows: ver a quen segue
- read:lists: ver as súas listas
- read:mutes: ver a quen ten acalado
+ read:blocks: ver a quen bloqueas
+ read:bookmarks: ver os marcadores
+ read:favourites: ver os favoritos
+ read:filters: ver os filtros
+ read:follows: ver a quen segues
+ read:lists: ver as tuas listaxes
+ read:mutes: ver a quen tes acalado
read:notifications: ver as notificacións
- read:reports: ver os seus informes
- read:search: buscar no seu nome
+ read:reports: ver as túas denuncias
+ read:search: buscar no teu nome
read:statuses: ver todos os estados
- write: modificar todos os datos da súa conta
- write:accounts: modificar o seu perfil
+ write: modificar todos os datos da tua conta
+ write:accounts: modificar o teu perfil
write:blocks: bloquear contas e dominios
- write:bookmarks: marca os estados
+ write:bookmarks: marcar os estados
write:favourites: estados favoritos
write:filters: crear filtros
write:follows: seguir usuarias
- write:lists: crear listas
- write:media: subir ficheiros de medios
+ write:lists: crear listaxes
+ write:media: subir ficheiros multimedia
write:mutes: acalar usuarias e conversas
write:notifications: eliminar as notificacións
- write:reports: informe a outras usuarias
+ write:reports: denunciar usuarias
write:statuses: publicar estados
diff --git a/config/locales/doorkeeper.pt-PT.yml b/config/locales/doorkeeper.pt-PT.yml
index 2433f23e9..d492029b4 100644
--- a/config/locales/doorkeeper.pt-PT.yml
+++ b/config/locales/doorkeeper.pt-PT.yml
@@ -144,7 +144,7 @@ pt-PT:
write:filters: criar filtros
write:follows: seguir pessoas
write:lists: criar listas
- write:media: carregar arquivos de média
+ write:media: carregar arquivos de media
write:mutes: silenciar pessoas e conversas
write:notifications: limpar as suas notificações
write:reports: reportar outras pessoas
diff --git a/config/locales/doorkeeper.ro.yml b/config/locales/doorkeeper.ro.yml
index 79dbaa871..3f3077c1e 100644
--- a/config/locales/doorkeeper.ro.yml
+++ b/config/locales/doorkeeper.ro.yml
@@ -1 +1,151 @@
+---
ro:
+ activerecord:
+ attributes:
+ doorkeeper/application:
+ name: Numele aplicației
+ redirect_uri: URI de redirecționare
+ scopes: Domenii
+ website: Pagina web a aplicației
+ errors:
+ models:
+ doorkeeper/application:
+ attributes:
+ redirect_uri:
+ fragment_present: nu poate conține un fragment.
+ invalid_uri: trebuie să fie un URI valid.
+ relative_uri: trebuie să fie un URI absolut.
+ secured_uri: trebuie să fie un URI HTTPS/SSL.
+ doorkeeper:
+ applications:
+ buttons:
+ authorize: Autorizează
+ cancel: Anulează
+ destroy: Distruge
+ edit: Editează
+ submit: Trimite
+ confirmations:
+ destroy: Ești sigur?
+ edit:
+ title: Editați aplicația
+ form:
+ error: Ups! Verificați formularul pentru posibile erori
+ help:
+ native_redirect_uri: Utilizați %{native_redirect_uri} pentru teste locale
+ redirect_uri: Folosește câte o linie per URI
+ scopes: Separați domeniile cu spații. Lăsați necompletat pentru a utiliza domeniile implicite.
+ index:
+ application: Aplicație
+ callback_url: URL pentru callback
+ delete: Șterge
+ empty: Nu aveți aplicații.
+ name: Nume
+ new: Aplicație nouă
+ scopes: Domenii
+ show: Arată
+ title: Aplicațiile tale
+ new:
+ title: Aplicație nouă
+ show:
+ actions: Acțiuni
+ application_id: Cheie client
+ callback_urls: URL-uri de callback
+ scopes: Domenii
+ secret: Codul secret al clientului
+ title: 'Aplicație: %{name}'
+ authorizations:
+ buttons:
+ authorize: Autorizează
+ deny: Interzice
+ error:
+ title: A apărut o eroare
+ new:
+ able_to: Acesta va putea să
+ prompt: Aplicația %{client_name} cere acces la contul dvs
+ title: Autorizare necesară
+ show:
+ title: Copiați acest cod de autorizare și lipiți-l în aplicație.
+ authorized_applications:
+ buttons:
+ revoke: Revocați
+ confirmations:
+ revoke: Ești sigur?
+ index:
+ application: Aplicație
+ created_at: Autorizat
+ date_format: "%Y-%m-%d %H:%M:%S"
+ scopes: Domenii
+ title: Aplicațiile dvs autorizate
+ errors:
+ messages:
+ access_denied: Proprietarul de resurse sau serverul de autorizare a refuzat cererea.
+ credential_flow_not_configured: Fluxul Resurselor de Acreditări Parole a eșuat din cauza faptului că Doorkeeper.configure.resource_owner_from_credentials nu este configurat.
+ invalid_client: Autentificarea clientului a eșuat din cauza unui client necunoscut, nici o autentificare client inclusă, sau metodă de autentificare nesuportată.
+ invalid_grant: Acordarea autorizației furnizată este invalidă, expirată, revocată, nu corespunde URI-ului de redirecționare folosit în cererea de autorizare, sau a fost eliberat altui client.
+ invalid_redirect_uri: Uri-ul de redirecționare inclus nu este valid.
+ invalid_request: Solicitarea îi lipsește un parametru necesar, include o valoare de parametru nesuportată sau este dealtfel formatat incorect.
+ invalid_resource_owner: Acreditările proprietarului de resurse nu sunt valide sau proprietarul de resurse nu poate fi găsit
+ invalid_scope: Domeniul de aplicare solicitat este invalid, necunoscut sau incorect.
+ invalid_token:
+ expired: Token-ul de acces a expirat
+ revoked: Token-ul de acces a fost revocat
+ unknown: Token-ul de acces nu este valid
+ resource_owner_authenticator_not_configured: Găsirea Proprietarului de Resurse a eșuat deoarece Doorkeeper.configure.resource_owner_authenticator nu a fost configurată.
+ server_error: Serverul de autorizare a întâmpinat o condiție neașteptată care l-a împiedicat să îndeplinească cererea.
+ temporarily_unavailable: Serverul de autorizare este în prezent incapabil să gestioneze cererea din cauza unei supraîncărcări sau întrețineri temporare a serverului.
+ unauthorized_client: Clientul nu este autorizat să efectueze această cerere folosind această metodă.
+ unsupported_grant_type: Tipul de acordare a autorizației nu este suportat de serverul de autorizare.
+ unsupported_response_type: Serverul de autorizare nu acceptă acest tip de răspuns.
+ flash:
+ applications:
+ create:
+ notice: Aplicație creată.
+ destroy:
+ notice: Aplicație ștearsă.
+ update:
+ notice: Aplicație actualizată.
+ authorized_applications:
+ destroy:
+ notice: Aplicație revocată.
+ layouts:
+ admin:
+ nav:
+ applications: Aplicaţii
+ oauth2_provider: Furnizor OAuth2
+ application:
+ title: Este necesară autorizarea OAuth
+ scopes:
+ admin:read: citește toate datele de pe server
+ admin:read:accounts: citește informații sensibile ale tuturor conturilor
+ admin:read:reports: citește informații sensibile din toate rapoartele și conturile raportate
+ admin:write: modifică toate datele de pe server
+ admin:write:accounts: efectuează acțiuni de moderare pe conturi
+ admin:write:reports: efectuează acțiuni de moderare pe rapoarte
+ follow: modifică relațiile contului
+ push: primește notificările tale push
+ read: citește toate datele contului tău
+ read:accounts: vede informațiile privind conturile
+ read:blocks: vede blocurile tale
+ read:bookmarks: vede marcajele tale
+ read:favourites: vede favoritele tale
+ read:filters: vede filtrele tale
+ read:follows: vede urmăririle tale
+ read:lists: vede listele tale
+ read:mutes: vede ignorările tale
+ read:notifications: vede notificările tale
+ read:reports: vede raportările tale
+ read:search: caută în numele tău
+ read:statuses: vede toate stările
+ write: modifică toate datele contului tău
+ write:accounts: modifică profilul tău
+ write:blocks: blochează conturile și domeniile
+ write:bookmarks: marchează stările
+ write:favourites: favorizează stările
+ write:filters: creează filtre
+ write:follows: urmărește persoane
+ write:lists: creează liste
+ write:media: încarcă fișiere media
+ write:mutes: ignoră persoane și conversații
+ write:notifications: curăță notificările
+ write:reports: raportează alte persoane
+ write:statuses: publică stări
diff --git a/config/locales/doorkeeper.sc.yml b/config/locales/doorkeeper.sc.yml
new file mode 100644
index 000000000..91bd6d92f
--- /dev/null
+++ b/config/locales/doorkeeper.sc.yml
@@ -0,0 +1 @@
+sc:
diff --git a/config/locales/doorkeeper.sq.yml b/config/locales/doorkeeper.sq.yml
index a1f2121f9..1541213d1 100644
--- a/config/locales/doorkeeper.sq.yml
+++ b/config/locales/doorkeeper.sq.yml
@@ -3,10 +3,10 @@ sq:
activerecord:
attributes:
doorkeeper/application:
- name: Emër aplikacioni
+ name: Emri aplikacionit
redirect_uri: URI Ridrejtimi
scopes: Fushëveprime
- website: Sajt aplikacioni
+ website: Webi i aplikacionit
errors:
models:
doorkeeper/application:
@@ -19,49 +19,50 @@ sq:
doorkeeper:
applications:
buttons:
- authorize: Autorizoje
- cancel: Anuloje
- destroy: Asgjësoje
- edit: Përpunoni
- submit: Parashtroje
+ authorize: Autorizo
+ cancel: Anulo
+ destroy: Shkatërro
+ edit: Modifiko
+ submit: Dërgo
confirmations:
- destroy: A jeni i sigurt?
+ destroy: A jeni të sigurt?
edit:
- title: Përpunoni aplikacion
+ title: Modifiko aplikacionin
form:
error: Oh! Kontrolloni formularin tuaj për gabime të mundshme
help:
- native_redirect_uri: Përdor %{native_redirect_uri} për teste vendore
+ native_redirect_uri: Përdorni %{native_redirect_uri} për teste lokale
redirect_uri: Përdorni një URI për rresht
scopes: Ndajini fushëveprimet me hapësira. Që të përdoren fushëveprimet parazgjedhje, lëreni të zbrazët.
index:
application: Aplikacion
- callback_url: URL Callback-u
- delete: Fshije
- name: Emër
+ callback_url: URL pasuese
+ delete: Fshij
+ empty: Nuk posedoni aplikacione.
+ name: Emri
new: Aplikacion i ri
scopes: Fushëveprime
- show: Shfaqe
+ show: Shfaq
title: Aplikacionet tuaja
new:
title: Aplikacion i ri
show:
actions: Veprime
- application_id: Kyç klienti
- callback_urls: URL-ra Callback
+ application_id: Çelësi për klient
+ callback_urls: URL pasuese
scopes: Fushëveprime
- secret: E fshehtë klienti
- title: 'Aplikacion: %{name}'
+ secret: Sekreti për klient
+ title: 'Aplikacioni: %{name}'
authorizations:
buttons:
- authorize: Autorizoje
- deny: Mohoje
+ authorize: Autorizo
+ deny: Refuzo
error:
title: Ndodhi një gabim
new:
- able_to: Do të jetë në gjendje të
- prompt: "%{client_name} kërkesa hyrjeje aplikacionesh te llogaria juaj"
- title: Lypset autorizim
+ able_to: Do të jet e mundshme të
+ prompt: Aplikacioni %{client_name} kërkon të ketë qasje në llogarinë tuaj
+ title: Autorizim i domosdoshëm
show:
title: Kopjojeni këtë kod autorizimi dhe ngjiteni te aplikacioni.
authorized_applications:
@@ -114,11 +115,18 @@ sq:
application:
title: Lypset autorizim OAuth
scopes:
+ admin:read: lexo gjithë të dhënat në server
+ admin:read:accounts: lexo të dhëna sensitive të të gjithë llogarive
+ admin:read:reports: lexo të dhëna sensitive të raporteve dhe të llogarive të raportuara
+ admin:write: modifiko gjithë të dhënat në server
+ admin:write:accounts: realizo veprime moderimi në llogaritë
+ admin:write:reports: realizo veprime moderimi në raporte
follow: të ndryshojë marrëdhënies llogarish
push: të marrë njoftime push për ju
read: të lexojë krejt të dhënat e llogarisë tuaj
read:accounts: të shohë të dhëna llogarish
read:blocks: të shohë blloqet tuaja
+ read:bookmarks: shih shënjimet tuaja
read:favourites: të shohë të parapëlqyerit tuaj
read:filters: të shohë filtrat tuaj
read:follows: të shohë ndjekësit tuaj
@@ -131,6 +139,7 @@ sq:
write: të ndryshojë krejt të dhënat e llogarisë tuaj
write:accounts: të ndryshojë profilin tuaj
write:blocks: të bllokojë llogari dhe përkatësi
+ write:bookmarks: shënjo statuse
write:favourites: të parapëlqejë gjendje
write:filters: të krijojë filtra
write:follows: të ndjekë persona
@@ -139,4 +148,4 @@ sq:
write:mutes: të heshtojë persona dhe biseda
write:notifications: të pastrojë njoftimet tuaja
write:reports: të raportojë persona të tjerë
- write:statuses: të botojë gjendje
+ write:statuses: publiko statuse
diff --git a/config/locales/el.yml b/config/locales/el.yml
index e2fe9056b..1e6254c5b 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -196,16 +196,40 @@ el:
whitelisted: Εγκεκριμένοι
action_logs:
action_types:
+ assigned_to_self_report: Ανάθεση Αναφοράς
change_email_user: Αλλαγή email για χρήστη
+ confirm_user: Επιβεβαίωση Χρήστη
+ create_account_warning: Δημιουργία Προειδοποίησης
+ create_announcement: Δημιουργία Ανακοίνωσης
+ create_custom_emoji: Δημιουργία Προσαρμοσμένου Emoji
+ create_domain_allow: Δημιουργία Επιτρεπτού Τομέα
+ create_domain_block: Δημιουργία Αποκλεισμένου Τομέα
+ create_email_domain_block: Δημουργία Αποκλεισμένου Τομέα email
+ demote_user: Υποβιβασμός Χρήστη
+ destroy_announcement: Διαγραφή Ανακοίνωσης
+ destroy_custom_emoji: Διαγραφή Προσαρμοσμένου Emoji
+ destroy_domain_allow: Διαγραφή Επιτρεπτού Τομέα
+ destroy_domain_block: Διαγραφή Αποκλεισμού Τομέα
+ destroy_email_domain_block: Διαγραφή Αποκλεισμένου Τομέα email
destroy_status: Διαγραφή Κατάστασης
disable_2fa_user: Απενεργοποίηση 2FA
disable_custom_emoji: Απενεργοποίηση Προσαρμοσμένων Emoji
disable_user: Απενεργοποίηση Χρήστη
enable_custom_emoji: Ενεργοποίηση Προσαρμοσμένων Emoji
enable_user: Ενεργοποίηση Χρήστη
+ memorialize_account: Μετατροπή Λογαριασμού σε Αναμνηστικό
promote_user: Προαγωγή Χρήστη
remove_avatar_user: Αφαίρεση Avatar
+ reopen_report: Ξανάνοιγμα Καταγγελίας
+ reset_password_user: Επαναφορά Συνθηματικού
+ resolve_report: Επίλυση Καταγγελίας
silence_account: Σίγαση Λογαριασμού
+ suspend_account: Αναστολή Λογαριασμού
+ unassigned_report: Αποδέσμευση Καταγγελίας
+ unsilence_account: Άρση Σίγασης Λογαριασμού
+ unsuspend_account: Άρση Αναστολής Λογαριασμού
+ update_announcement: Ενημέρωση Ανακοίνωσης
+ update_custom_emoji: Ενημέρωση Προσαρμοσμένου Emoji
update_status: Ενημέρωση Κατάστασης
actions:
assigned_to_self_report: Ο/Η %{name} ανάθεσε την καταγγελία %{target} στον εαυτό του/της
@@ -611,6 +635,7 @@ el:
add_new: Δημιουργία ψευδώνυμου
created_msg: Δημιουργήθηκε νέο ψευδώνυμο. Τώρα μπορείς να ξεκινήσεις τη μεταφορά από τον παλιό λογαριασμό.
deleted_msg: Αφαιρέθηκε το ψευδώνυμο. Η μεταφορά από εκείνον τον λογαριασμό σε αυτόν εδώ δε θα είναι πλέον δυνατή.
+ empty: Δεν έχεις ψευδώνυμα.
hint_html: Αν θέλεις να μετακομίσεις από έναν άλλο λογαριασμό σε αυτόν εδώ, μπορείς εδώ να δημιουργήσεις ένα ψευδώνυμο, πράγμα που απαιτείται πριν προχωρήσεις για να μεταφέρεις τους ακολούθους σου από τον παλιό λογαριασμό σε αυτόν εδώ. Η ενέργεια αυτή είναι ακίνδυνη και αναστρέψιμη.Η μετακόμιση του λογαριασμού ξεκινάει από τον παλιό λογαριασμό.
remove: Αφαίρεση ψευδώνυμου
appearance:
@@ -825,6 +850,8 @@ el:
inactive: Ανενεργή
publicize_checkbox: 'Και κάνε τουτ αυτό:'
publicize_toot: 'Αποδείχτηκε! Λέγομαι %{username} στο %{service}: %{url}'
+ remove: Αφαίρεση απόδειξης από τον λογαριασμό
+ removed: Επιτυχής αφαίρεση απόδειξης από τον λογαριασμό
status: Κατάσταση επαλήθευσης
view_proof: Εμφάνιση απόδειξης
imports:
diff --git a/config/locales/en.yml b/config/locales/en.yml
index c5cb6a7ed..5c1abdbfc 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -844,12 +844,14 @@ en:
invalid_token: Keybase tokens are hashes of signatures and must be 66 hex characters
verification_failed: Keybase does not recognize this token as a signature of Keybase user %{kb_username}. Please retry from Keybase.
wrong_user: Cannot create a proof for %{proving} while logged in as %{current}. Log in as %{proving} and try again.
- explanation_html: Here you can cryptographically connect your other identities, such as a Keybase profile. This lets other people send you encrypted messages and trust content you send them.
+ explanation_html: Here you can cryptographically connect your other identities from other platforms, such as Keybase. This lets other people send you encrypted messages on those platforms and allows them to trust that the content you send them comes from you.
i_am_html: I am %{username} on %{service}.
identity: Identity
inactive: Inactive
publicize_checkbox: 'And toot this:'
publicize_toot: 'It is proven! I am %{username} on %{service}: %{url}'
+ remove: Remove proof from account
+ removed: Successfully removed proof from account
status: Verification status
view_proof: View proof
imports:
@@ -904,7 +906,7 @@ en:
cancelled_msg: Successfully cancelled the redirect.
errors:
already_moved: is the same account you have already moved to
- missing_also_known_as: is not back-referencing this account
+ missing_also_known_as: is not an alias of this account
move_to_self: cannot be current account
not_found: could not be found
on_cooldown: You are on cooldown
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index a558efc51..4f398763f 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -187,6 +187,10 @@ eo:
web: Reto
whitelisted: En la blanka listo
action_logs:
+ action_types:
+ disable_user: Malebligi uzanton
+ enable_user: Ebligi uzanton
+ reopen_report: Remalfermi signalon
actions:
assigned_to_self_report: "%{name} asignis signalon %{target} al si mem"
change_email_user: "%{name} ŝanĝis retadreson de uzanto %{target}"
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index b71ea5f39..bfed20eab 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -635,6 +635,7 @@ es-AR:
add_new: Crear alias
created_msg: El nuevo alias se creó exitosamente. Ahora podés empezar la mudanza desde la cuenta vieja.
deleted_msg: Eliminaste el alias exitosamente. La mudanza de esa cuenta a esta ya no será posible.
+ empty: No tenés alias.
hint_html: Si querés mudarte desde otra cuenta a esta, acá podés crear un alias, el cual es necesario antes de empezar a mudar seguidores de la cuenta vieja a esta. Esta acción por sí misma es inofensiva y reversible. La migración de la cuenta se inicia desde la cuenta anterior.
remove: Desenlazar alias
appearance:
@@ -849,6 +850,8 @@ es-AR:
inactive: Inactiva
publicize_checkbox: 'Y tooteá esto:'
publicize_toot: "¡Comprobado! Soy %{username} en %{service}: %{url}"
+ remove: Quitar prueba de cuenta
+ removed: Se quitó la prueba de cuenta exitosamente
status: Estado de verificación
view_proof: Ver prueba
imports:
diff --git a/config/locales/es.yml b/config/locales/es.yml
index fac96aadf..f58b44c77 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -635,6 +635,7 @@ es:
add_new: Crear alias
created_msg: El nuevo alias se ha creado correctamente. Ahora puedes empezar el traslado desde la cuenta antigua.
deleted_msg: Elimina el alias correctamente. El traslado de esa cuenta a esta ya no será posible.
+ empty: No tienes ningún alias.
hint_html: Si quieres migrar de otra cuenta a esta, aquí puedes crear un alias, es necesario proceder antes de empezar a mover seguidores de la cuenta anterior a esta. Esta acción por sí misma es inofensiva y reversible. La migración de la cuenta se inicia desde la cuenta antigua.
remove: Desvincular alias
appearance:
@@ -849,6 +850,8 @@ es:
inactive: Inactivo
publicize_checkbox: 'Y tootee esto:'
publicize_toot: "¡Comprobado! Soy %{username} en %{service}: %{url}"
+ remove: Eliminar prueba de la cuenta
+ removed: Prueba eliminada con éxito de la cuenta
status: Estado de la verificación
view_proof: Ver prueba
imports:
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index 868dd8bcf..fda99a72c 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -219,6 +219,7 @@ fa:
disable_user: از کار انداختن کاربر
enable_custom_emoji: به کار انداختن اموجی سفارشی
enable_user: به کار انداختن کاربر
+ memorialize_account: یادسپاری حساب
promote_user: ترفیع کاربر
remove_avatar_user: برداشتن تصویر نمایه
reopen_report: بازگشایی گزارش
@@ -636,6 +637,7 @@ fa:
add_new: ساختن نام مستعار
created_msg: نام مستعار تازه با موفقیت ساخته شد. الان میتوانید انتقال از حساب قدیمی را آغاز کنید.
deleted_msg: نام مستعار با موفقیت حذف شد. انتقال از آن حساب به حساب فعلی دیگر ممکن نیست.
+ empty: هیچ نام مستعاری ندارید.
hint_html: اگر میخواهید از حساب دیگری به این حساب منتقل شوید، اینجا میتوانید یک نام مستعار بسازید که برای انتقال از حساب قدیمی به این حساب لازم است. این کار به تنهایی بیضرر و قابل بازگشت است. فرایند انتقال حساب از حساب قدیمی آغاز خواهد شد.
remove: حذف ارتباط نام مستعار
appearance:
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 1b259d7c9..bc3bc0d2f 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -635,6 +635,7 @@ fr:
add_new: Créer un alias
created_msg: Un nouvel alias a été créé avec succès. Vous pouvez maintenant déménager depuis l'ancien compte.
deleted_msg: Alias supprimé avec succès. Le déménagement de ce compte vers celui-ci ne sera plus possible.
+ empty: Vous n’avez pas d’alias.
hint_html: Si vous voulez déménager d’un autre compte vers celui-ci, vous pouvez créer ici un alias, qui est nécessaire avant de pouvoir migrer les abonné·e·s de l’ancien compte vers celui-ci. Cette action en soi est inoffensive et réversible. La migration du compte est initiée à partir de l’ancien compte.
remove: Détacher l'alias
appearance:
@@ -849,6 +850,8 @@ fr:
inactive: Inactive
publicize_checkbox: 'Et le poueter :'
publicize_toot: 'C’est prouvé ! Je suis %{username} sur %{service}: %{url}'
+ remove: Retirer une preuve du compte
+ removed: Preuve retirée du compte avec succès
status: État de la vérification
view_proof: Voir la preuve
imports:
@@ -908,7 +911,7 @@ fr:
not_found: n'a pas été trouvé
on_cooldown: Vous êtes soumis·e à un temps de rechargement
followers_count: Abonné·e·s au moment du déménagement
- incoming_migrations: Déplacement d'un compte différent
+ incoming_migrations: Déplacement depuis un compte différent
incoming_migrations_html: Pour déménager d'un autre compte à celui-ci, vous devez d'abord créer un alias de compte.
moved_msg: Votre compte est maintenant redirigé vers %{acct} et vos abonné·e·s sont en train d'être déplacé·e·s.
not_redirecting: Votre compte n'est pas redirigé vers un autre compte actuellement.
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index 35d8ac2d6..d92e06761 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -51,7 +51,7 @@ gl:
accounts:
choices_html: 'Escollas de %{name}:'
endorsements_hint: Podes suxerir a persoas que segues dende a interface web, e amosaranse aquí.
- featured_tags_hint: Podes destacar determinadas etiquetas que se amosarán aquí.
+ featured_tags_hint: Podes destacar determinados cancelos que se amosarán aquí.
follow: Seguir
followers:
one: Seguidora
@@ -197,28 +197,28 @@ gl:
action_logs:
action_types:
assigned_to_self_report: Asignar denuncia
- change_email_user: Editar email do usuario
- confirm_user: Confirmar usuario
+ change_email_user: Editar email da usuaria
+ confirm_user: Confirmar usuaria
create_account_warning: Crear aviso
create_announcement: Crear anuncio
create_custom_emoji: Crear emoticonas personalizadas
create_domain_allow: Crear permiso de dominio
create_domain_block: Crear bloqueo de dominio
create_email_domain_block: Crear bloqueo de dominio de correo electrónico
- demote_user: Degradar usuario
+ demote_user: Degradar usuaria
destroy_announcement: Eliminar anuncio
destroy_custom_emoji: Eliminar emoticona personalizada
destroy_domain_allow: Eliminar permiso de dominio
destroy_domain_block: Eliminar bloqueo de dominio
destroy_email_domain_block: Eliminar bloqueo de dominio de correo electrónico
destroy_status: Eliminar estado
- disable_2fa_user: Desactivar autenticación de dous factores
- disable_custom_emoji: Deshabilitar emoticona personalizada
- disable_user: Deshabilitar usuario
- enable_custom_emoji: Habilitar emoticona personalizada
- enable_user: Activar usuario
+ disable_2fa_user: Desactivar 2FA
+ disable_custom_emoji: Desactivar emoticona personalizada
+ disable_user: Desactivar usuaria
+ enable_custom_emoji: Activar emoticona personalizada
+ enable_user: Activar usuaria
memorialize_account: Transformar en conta conmemorativa
- promote_user: Promover usuario
+ promote_user: Promover usuaria
remove_avatar_user: Eliminar avatar
reopen_report: Reabrir denuncia
reset_password_user: Restabelecer contrasinal
@@ -270,7 +270,7 @@ gl:
deleted_status: "(estado eliminado)"
empty: Non se atoparon rexistros.
filter_by_action: Filtrar por acción
- filter_by_user: Filtrar por usuario
+ filter_by_user: Filtrar por usuaria
title: Rexistro de auditoría
announcements:
destroyed_msg: Anuncio eliminado de xeito correcto!
@@ -530,7 +530,7 @@ gl:
title: Activar o directorio de perfil
registrations:
closed_message:
- desc_html: Mostrado na páxina de portada cando o rexistro está pechado. Pode utilizar etiquetas HTML
+ desc_html: Mostrado na páxina de portada cando o rexistro está pechado. Pode utilizar cancelos HTML
title: Mensaxe de rexistro pechado
deletion:
desc_html: Permitirlle a calquera que elimine a súa conta
@@ -551,16 +551,16 @@ gl:
desc_html: Mostrar unha insignia de membresía nunha páxina de usuaria
title: Mostrar insigna de membresía
site_description:
- desc_html: Parágrafo de presentación na páxina principal. Describe o que fai especial a este servidor Mastodon e calquera outra ouca importante. Pode utilizar etiquetas HTML, en particular <a>
e <em>
.
+ desc_html: Parágrafo de presentación na páxina principal. Describe o que fai especial a este servidor Mastodon e calquera outra ouca importante. Pode utilizar cancelos HTML, en particular <a>
e <em>
.
title: Descrición do servidor
site_description_extended:
- desc_html: Un bo lugar para o teu código de conduta, regras, guías e outras cousas para diferenciar o teu servidor. Podes empregar etiquetas HTML
+ desc_html: Un bo lugar para o teu código de conduta, regras, guías e outras cousas para diferenciar o teu servidor. Podes empregar cancelos HTML
title: Información extendida da personalización
site_short_description:
- desc_html: Amosado na barra lateral e nas etiquetas meta. Describe o que é Mastodon e que fai especial a este servidor nun só parágrafo. Se está baleiro, amosará a descrición do servidor.
+ desc_html: Amosado na barra lateral e nos cancelos meta. Describe o que é Mastodon e que fai especial a este servidor nun só parágrafo. Se está baleiro, amosará a descrición do servidor.
title: Descrición curta do servidor
site_terms:
- desc_html: Podes escribir a túa propia política de privacidade, termos de servizo ou aclaracións legais. Podes empregar etiquetas HTML
+ desc_html: Podes escribir a túa propia política de privacidade, termos de servizo ou aclaracións legais. Podes empregar cancelos HTML
title: Termos de servizo personalizados
site_title: Nome do servidor
spam_check_enabled:
@@ -635,6 +635,7 @@ gl:
add_new: Crear alcume
created_msg: Creou un novo alcume correctamente. Pode iniciar o movemento desde a conta antiga.
deleted_msg: Eliminou correctamente o alcume. Xa non será posible mover desde esa conta a esta.
+ empty: Non tes alcumes.
hint_html: Se queres mudarte desde outra conta a esta nova, aquí podes crear un alcume, que é requerido antes de poder proceder a mover os seguidores da conta antiga a esta nova. Esta acción por si mesma é inocua e reversible. A migración da conta iníciase desde a conta antiga.
remove: Desligar alcume
appearance:
@@ -796,7 +797,7 @@ gl:
add_new: Engadir novo
errors:
limit: Xa acadaches o número máximo de cancelos
- hint_html: "¿Qué son as etiquetas destacadas? Móstranse destacadas no seu perfil público e permítenlle a outras persoas ver os seus toots públicos nos que as utilizou. Son unha ferramenta moi útil para facer seguimento de traballos creativos e proxectos a longo prazo."
+ hint_html: "¿Qué son os cancelos destacados? Móstranse destacados no teu perfil público e permítenlle a outras persoas ver os teus toots públicos nos que os utilizaches. Son unha ferramenta moi útil para facer seguimento de traballos creativos e proxectos a longo prazo."
filters:
contexts:
account: Perfís
@@ -832,7 +833,7 @@ gl:
one: Algo non está ben de todo! Por favor revise abaixo o erro
other: Algo aínda non está ben! Por favor revise os %{count} erros abaixo
html_validator:
- invalid_markup: 'contén etiquetas HTML non válidas: %{error}'
+ invalid_markup: 'contén cancelos HTML non válidas: %{error}'
identity_proofs:
active: Activo
authorize: Si, autorizar
@@ -849,6 +850,8 @@ gl:
inactive: Inactiva
publicize_checkbox: 'E tootee esto:'
publicize_toot: 'Comprobado! Eu son %{username} en %{service}: %{url}'
+ remove: Quitar a verificación da conta
+ removed: Quitaches correctamente a verificación da conta
status: Estado da validación
view_proof: Ver proba
imports:
@@ -1286,7 +1289,7 @@ gl:
edit_profile_step: Podes personalizar o teu perfil subindo un avatar, cabeceira, cambiar o nome público e aínda máis. Se restrinxes a tua conta podes revisar a conta das persoas que solicitan seguirte antes de permitirlles o acceso aos teus toots.
explanation: Aquí ten alunhas endereitas para ir aprendendo
final_action: Comece a publicar
- final_step: 'Publique! Incluso sin seguidoras as súas mensaxes serán vistas por outras, por exemplo na liña temporal local e nas etiquetas. Podería presentarse no #fediverso utilizando a etiqueta #introductions.'
+ final_step: 'Publica! Incluso sen seguidoras as túas mensaxes serán vistas por outras, por exemplo na liña temporal local e nos cancelos. Poderías presentarte ao #fediverso utilizando o cancelo #introductions.'
full_handle: O seu alcume completo
full_handle_hint: Esto é o que lle dirá aos seus amigos para que poidan seguila ou enviarlle mensaxes desde outro servidor.
review_preferences_action: Cambiar preferencias
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index 30331b2cb..6b444b478 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -111,7 +111,7 @@ hu:
deleted: Törölve
demote: Lefokozás
disable: Kikapcsolás
- disable_two_factor_authentication: Kétlépcsős azonosítás kikapcsolása
+ disable_two_factor_authentication: Kétlépcsős hitelesítés kikapcsolása
disabled: Kikapcsolva
display_name: Megjelenített név
domain: Domain
@@ -123,7 +123,7 @@ hu:
followers: Követő
follows: Követett
header: Fejléc
- inbox_url: Beérkezett üzenetek URL
+ inbox_url: Beérkezett üzenetek URL-je
invited_by: Meghívta
ip: IP
joined: Csatlakozott
@@ -635,7 +635,8 @@ hu:
add_new: Alias készítése
created_msg: Elkészült az új aliasod. Most már elkezdheted a költöztetést a régi fiókból.
deleted_msg: Sikeresen eltávolítottad az aliast. A fiókról erre a fiókra való áttérés már nem lehetséges.
- hint_html: Ha másik fiókról kívánsz átlépni erre a fiókra, itt létrehozhatsz egy aliast, amelyre szükség van, mielőtt folytathatod a követők áthelyezését a régi fiókból erre. Ez az áthelyezés önmagában ártalmatlan és visszafordítható folyamat. A fiók áttelepítését a régi fiókból indul el.
+ empty: Nincsenek aliasaid.
+ hint_html: Ha másik fiókról kívánsz átlépni erre a fiókra, itt létrehozhatsz egy aliast, amelyre szükség van, mielőtt folytathatod a követők áthelyezését a régi fiókból erre. Ez az áthelyezés önmagában ártalmatlan és visszafordítható folyamat. A fiók áttelepítése a régi fiókból indul el.
remove: Alias szétkapcsolása
appearance:
advanced_web_interface: Haladó webes felület
@@ -849,6 +850,8 @@ hu:
inactive: Inaktív
publicize_checkbox: 'És ezt tülköld ki:'
publicize_toot: 'Tanúsítva! %{username} vagyok %{service}: %{url} szerveren'
+ remove: Tanúsítás eltávolítása a fiókról
+ removed: Leszedtük a tanúsítást a fiókról
status: Ellenőrzés állapota
view_proof: Tanúsítás megtekintése
imports:
@@ -1240,7 +1243,7 @@ hu:
mastodon-light: Mastodon (Világos)
time:
formats:
- default: "%Y %b %d, %H:%M"
+ default: "%Y. %b %d., %H:%M"
month: "%Y %b"
two_factor_authentication:
code_hint: Megerősítéshez írd be az alkalmazás által generált kódot
diff --git a/config/locales/id.yml b/config/locales/id.yml
index 27bfccc22..c22c75bd9 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -191,6 +191,27 @@ id:
web: Web
whitelisted: Masuk daftar putih
action_logs:
+ action_types:
+ change_email_user: Ubah Surel untuk Pengguna
+ confirm_user: Konfirmasi Pengguna
+ create_account_warning: Buat Peringatan
+ create_announcement: Buat Pengumuman
+ create_custom_emoji: Buat Emoji Khusus
+ create_domain_allow: Buat Izin Domain
+ create_domain_block: Buat Blokir Domain
+ create_email_domain_block: Buat Surel Blokir Domain
+ demote_user: Turunkan Pengguna
+ destroy_announcement: Hapus Pengumuman
+ destroy_custom_emoji: Hapus Emoji Khusus
+ destroy_domain_allow: Hapus Izin Domain
+ destroy_domain_block: Hapus Blokir Domain
+ destroy_email_domain_block: Hapus surel blokir domain
+ destroy_status: Hapus Status
+ disable_2fa_user: Nonaktifkan 2FA
+ disable_custom_emoji: Nonaktifkan Emoji Khusus
+ disable_user: Nonaktifkan Pengguna
+ enable_custom_emoji: Aktifkan Emoji Khusus
+ enable_user: Aktifkan Pengguna
actions:
assigned_to_self_report: "%{name} menugaskan laporan %{target} kpd dirinya sendiri"
change_email_user: "%{name} mengubah alamat surel pengguna %{target}"
diff --git a/config/locales/is.yml b/config/locales/is.yml
index 7e681e736..2138068e5 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -635,6 +635,7 @@ is:
add_new: Búa til samnefni (alias)
created_msg: Tókst að búa til samnefni. Þú getur núna byrjað að færa gögn af gamla aðgangnum.
deleted_msg: Tókst að fjarlægja samnefnið. Flutningur af þeim notandaaðgangi yfir á þennan er ekki lengur mögulegur.
+ empty: Þú ert ekki með nein samnefni.
hint_html: Ef þú vilt flytjast af öðrum notandaaðgangi yfir á þennan, þá geturðu búið hér til samnefni, sem er nauðsynlegt áður en þú getur haldið áfram við að flytja fylgjendur af gamla notandaaðgangnum yfir á þennan aðgang. Þessi aðgerð er í sjálfu sér skaðlaus og afturkræf. Yfirfærsla notandaaðgangsins er síðan ræst á gamla notandaaðgangnum.
remove: Aftengja samnefni
appearance:
@@ -849,6 +850,8 @@ is:
inactive: Óvirkt
publicize_checkbox: 'Og tísti þetta:'
publicize_toot: 'Það er búið að sanna þetta! Ég er %{username} á %{service}: %{url}'
+ remove: Fjarlægja sönnun úr notandaaðgangi
+ removed: Tókst að fjarlægja sönnun úr notandaaðgangi
status: Staða sannvottunar
view_proof: Skoða sönnun
imports:
@@ -1082,7 +1085,7 @@ is:
settings:
account: Notandaaðgangur
account_settings: Stillingar notandaaðgangs
- aliases: Samheiti notandaaðgangs
+ aliases: Samnefni notandaaðgangs
appearance: Útlit
authorized_apps: Leyfð forrit
back: Til baka í Mastodon
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 2cc6d50d2..4a9fe507a 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -635,6 +635,7 @@ it:
add_new: Crea alias
created_msg: Hai creato un nuovo alias. Ora puoi iniziare lo spostamento dal vecchio account.
deleted_msg: L'alias è stato eliminato. Lo spostamento da quell'account a questo non sarà più possibile.
+ empty: Non hai alias.
hint_html: Se vuoi trasferirti da un altro account a questo, qui puoi creare un alias, che è necessario prima di poter spostare i seguaci dal vecchio account a questo. Questa azione è innocua e reversibile. La migrazione dell'account è avviata dal vecchio account.
remove: Scollega alias
appearance:
@@ -850,6 +851,8 @@ it:
inactive: Inattiva
publicize_checkbox: 'E posta questo:'
publicize_toot: 'É provato! Io sono %{username} su %{service}: %{url}'
+ remove: Elimina prova dall'account
+ removed: Prova eliminata dall'account
status: Stato della verifica
view_proof: Vedi prova
imports:
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 489463ed6..e15a25b0f 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -627,6 +627,7 @@ ja:
add_new: エイリアスを作成
created_msg: エイリアスを作成しました。これで以前のアカウントから引っ越しを開始できます。
deleted_msg: エイリアスを削除しました。指定されていたアカウントからは引っ越しできなくなります。
+ empty: エイリアスがありません。
hint_html: 他のアカウントからこのアカウントにフォロワーを引き継いで引っ越したい場合、ここでエイリアスを作成しておく必要があります。エイリアス自体は無害で、取り消すことができます。引っ越しは以前のアカウント側から開始する必要があります。
remove: エイリアスを削除
appearance:
@@ -840,6 +841,8 @@ ja:
inactive: 非アクティブ
publicize_checkbox: 'そしてこれをトゥートします:'
publicize_toot: 'It is proven! I am %{username} on %{service}: %{url}'
+ remove: アカウントから証明書を削除
+ removed: アカウントから証明書を削除することに成功しました
status: 認証状態
view_proof: 証明を表示
imports:
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index 2ac3fb39d..e1f543fe0 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -629,6 +629,7 @@ ko:
add_new: 별칭 만들기
created_msg: 새 별칭이 성공적으로 만들어졌습니다. 이제 기존 계정에서 이주를 시작할 수 있습니다.
deleted_msg: 성공적으로 별칭을 삭제했습니다. 해당 계정에서 이 계정으로의 이주는 더이상 가능하지 않습니다.
+ empty: 별칭이 없습니다.
hint_html: 다른 계정에서 이 계정으로 옮기길 원하는 경우, 여기에서 별칭을 만들 수 있습니다, 기존 계정의 팔로워를 이쪽으로 옮기고 싶은 경우 필요한 과정입니다. 이 행동 자체는 해롭지 않고 되돌리기가 가능합니다.계정 이주는 이전 계정에서 착수하게 됩니다
remove: 별칭 연결 끊기
appearance:
@@ -842,6 +843,8 @@ ko:
inactive: 비활성
publicize_checkbox: '그리고 이것을 툿 하세요:'
publicize_toot: '증명되었습니다! 저는 %{service}에 있는 %{username}입니다: %{url}'
+ remove: 계정증명을 삭제
+ removed: 성공적으로 계정증명을 삭제했습니다
status: 인증 상태
view_proof: 증명 보기
imports:
diff --git a/config/locales/nn.yml b/config/locales/nn.yml
index f83646a7b..d47956c72 100644
--- a/config/locales/nn.yml
+++ b/config/locales/nn.yml
@@ -90,6 +90,7 @@ nn:
delete: Slett
destroyed_msg: Moderatormerknad er utsletta!
accounts:
+ add_email_domain_block: Svartelist E-postdomenet
approve: Godtak
approve_all: Godtak alle
are_you_sure: Er du sikker?
@@ -170,6 +171,7 @@ nn:
staff: Personell
user: Brukar
search: Søk
+ search_same_email_domain: Andre brukere med samme E-postdomene
search_same_ip: Andre brukarar med same IP
shared_inbox_url: Delt Innboks URL
show:
@@ -191,6 +193,24 @@ nn:
web: Nett
whitelisted: Kvitlista
action_logs:
+ action_types:
+ change_email_user: Endre brukerens E-postadresse
+ confirm_user: Bekreft brukeren
+ create_account_warning: Opprett en advarsel
+ create_announcement: Opprett en kunngjøring
+ create_custom_emoji: Opprett en tilpasset emoji
+ destroy_announcement: Slett kunngjøringen
+ destroy_custom_emoji: Slett den tilpassede emojien
+ destroy_status: Slett statusen
+ disable_2fa_user: Skru av 2-trinnsinnlogging
+ disable_user: Deaktiver bruker
+ enable_user: Aktiver bruker
+ reopen_report: Gjenåpne rapporten
+ reset_password_user: Tilbakestill passord
+ suspend_account: Suspender kontoen
+ unsuspend_account: Opphev suspensjonen av kontoen
+ update_announcement: Oppdater kunngjøringen
+ update_status: Oppdater statusen
actions:
assigned_to_self_report: "%{name} tilegnet rapport %{target} til seg selv"
change_email_user: "%{name} endra e-postadressa til brukaren %{target}"
@@ -228,6 +248,9 @@ nn:
update_custom_emoji: "%{name} oppdaterte kjensleteiknet %{target}"
update_status: "%{name} oppdaterte status for %{target}"
deleted_status: "(sletta status)"
+ empty: Ingen loggføringer ble funnet.
+ filter_by_action: Sorter etter handling
+ filter_by_user: Sorter etter bruker
title: Revisionslogg
announcements:
destroyed_msg: Kunngjøringen er slettet!
@@ -356,6 +379,7 @@ nn:
destroyed_msg: E-postdomenet har blitt fjernet fra blokkeringslisten uten problemer
domain: Domene
empty: Ingen e-mail-domener er sortelistet på dette tidspunkt.
+ from_html: fra %{domain}
new:
create: Legg til domene
title: Ny blokkeringsoppføring av e-postdomene
@@ -528,6 +552,8 @@ nn:
title: Tillat emneknaggar å verta populære utan gjennomgang på førehand
trends:
title: Populære emneknaggar
+ site_uploads:
+ delete: Slett den opplastede filen
statuses:
back_to_account: Tilbake til kontosida
batch:
@@ -581,6 +607,7 @@ nn:
add_new: Lag psevdonym
created_msg: Laga eit nytt kallenamn. No kan du setja i gang med flyttinga frå den gamle kontoen.
deleted_msg: Fjerna kallenamnet. No vert det ikkje lenger mogeleg å flytta frå den andre kontoen til denne.
+ empty: Du har ingen aliaser.
hint_html: Dersom du vil flytte fra en annen konto til den, kan du lage et alias her, som er påkrevd før du kan gå videre med å flytte følgere fra den gamle kontoen til den nye. Handlingen i seg selv er harmløs og reversibel. Kontoflyttingen har blitt satt i gang fra den gamle kontoen.
remove: Fjern aliaslenking
appearance:
@@ -838,6 +865,7 @@ nn:
already_moved: er den same kontoen som du allereie har flytta til
move_to_self: kan ikkje vera denne kontoen
not_found: fann ikkje
+ on_cooldown: Du er i en nedkjølingsperiode
followers_count: Fylgjarar då kontoen vart flytta
incoming_migrations: Flyttar frå ein annan konto
incoming_migrations_html: For å flytta frå ein annnan konto til denne må du fyrst laga eit kallenamn til kontoen.
@@ -921,6 +949,7 @@ nn:
reactions:
errors:
limit_reached: Grensen for forskjellige reaksjoner nådd
+ unrecognized_emoji: er ikke en gjenkjent emoji
relationships:
activity: Kontoaktivitet
dormant: I dvale
@@ -1016,6 +1045,8 @@ nn:
profile: Profil
relationships: Fylgjar og fylgjarar
two_factor_authentication: Tostegsautorisering
+ spam_check:
+ spam_detected: Dette er en automatisert rapport. Spam har blitt oppdaget.
statuses:
attached:
description: 'Vedlagt: %{attached}'
@@ -1047,6 +1078,7 @@ nn:
other: "%{count} røyster"
vote: Røyst
show_more: Vis meir
+ show_thread: Vis tråden
sign_in_to_participate: Logg inn for å verta med i samtalen
title: "%{name}: «%{quote}»"
visibilities:
diff --git a/config/locales/no.yml b/config/locales/no.yml
index 4a1b859dc..24dc22284 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -92,6 +92,7 @@
delete: Slett
destroyed_msg: Moderasjonsnotat slettet uten problem!
accounts:
+ add_email_domain_block: Svartelist E-postdomenet
approve: Godkjenn
approve_all: Godkjenn alle
are_you_sure: Er du sikker?
@@ -172,6 +173,7 @@
staff: Personale
user: Bruker
search: Søk
+ search_same_email_domain: Andre brukere med samme E-postdomene
search_same_ip: Andre brukere med den samme IP-en
shared_inbox_url: Delt Innboks URL
show:
@@ -193,6 +195,24 @@
web: Nett
whitelisted: Hvitelistet
action_logs:
+ action_types:
+ change_email_user: Endre brukerens E-postadresse
+ confirm_user: Bekreft brukeren
+ create_account_warning: Opprett en advarsel
+ create_announcement: Opprett en kunngjøring
+ create_custom_emoji: Opprett en tilpasset emoji
+ destroy_announcement: Slett kunngjøringen
+ destroy_custom_emoji: Slett den tilpassede emojien
+ destroy_status: Slett statusen
+ disable_2fa_user: Skru av 2-trinnsinnlogging
+ disable_user: Deaktiver bruker
+ enable_user: Aktiver bruker
+ reopen_report: Gjenåpne rapporten
+ reset_password_user: Tilbakestill passord
+ suspend_account: Suspender kontoen
+ unsuspend_account: Opphev suspensjonen av kontoen
+ update_announcement: Oppdater kunngjøringen
+ update_status: Oppdater statusen
actions:
assigned_to_self_report: "%{name} tilegnet rapport %{target} til seg selv"
change_email_user: "%{name} forandret e-postadressen for bruker %{target}"
@@ -230,6 +250,9 @@
update_custom_emoji: "%{name} oppdaterte emoji %{target}"
update_status: "%{name} oppdaterte status for %{target}"
deleted_status: "(statusen er slettet)"
+ empty: Ingen loggføringer ble funnet.
+ filter_by_action: Sorter etter handling
+ filter_by_user: Sorter etter bruker
title: Revisionslogg
announcements:
destroyed_msg: Kunngjøringen er slettet!
@@ -358,6 +381,7 @@
destroyed_msg: E-postdomenet har blitt fjernet fra blokkeringslisten uten problemer
domain: Domene
empty: Ingen e-mail-domener er sortelistet på dette tidspunkt.
+ from_html: fra %{domain}
new:
create: Legg til domene
title: Ny blokkeringsoppføring av e-postdomene
@@ -527,6 +551,8 @@
title: Nettstedsinnstillinger
trends:
title: Trendende emneknagger
+ site_uploads:
+ delete: Slett den opplastede filen
statuses:
back_to_account: Tilbake til kontosiden
batch:
@@ -573,6 +599,7 @@
body: 'Emneknaggen #%{name} trender i dag, men den har ikke blitt gjennomgått tidligere. Den vil ikke bli vist offentlig med mindre du tillater at den blir det, eller du kan bare lagre skjemaet slik det er for å aldri høre om det igjen.'
aliases:
add_new: Lag et alias
+ empty: Du har ingen aliaser.
hint_html: Dersom du vil flytte fra en annen konto til den, kan du lage et alias her, som er påkrevd før du kan gå videre med å flytte følgere fra den gamle kontoen til den nye. Handlingen i seg selv er harmløs og reversibel. Kontoflyttingen har blitt satt i gang fra den gamle kontoen.
remove: Fjern aliaslenking
appearance:
@@ -828,6 +855,8 @@
already_moved: er den samme kontoen du allerede har flyttet til
move_to_self: kan ikke være den nåværende kontoen
not_found: ble ikke funnet
+ on_cooldown: Du er i en nedkjølingsperiode
+ followers_count: Følgere på flyttetidspunktet
incoming_migrations: Flytte fra en annen konto
incoming_migrations_html: For å flytte fra en annen konto til denne, må du først sette opp et kontoalias.
past_migrations: Tidligere migreringer
@@ -895,6 +924,7 @@
polls:
errors:
already_voted: Du har allerede stemt i denne avstemningen
+ duplicate_options: inneholder duplikatgjenstander
duration_too_long: er for langt frem i tid
duration_too_short: er for snart
expired: Denne avstemningen er allerede ferdig
@@ -909,6 +939,7 @@
reactions:
errors:
limit_reached: Grensen for forskjellige reaksjoner nådd
+ unrecognized_emoji: er ikke en gjenkjent emoji
relationships:
activity: Kontoaktivitet
dormant: Dormende
@@ -1004,6 +1035,8 @@
profile: Profil
relationships: Følginger og følgere
two_factor_authentication: Tofaktorautentisering
+ spam_check:
+ spam_detected: Dette er en automatisert rapport. Spam har blitt oppdaget.
statuses:
attached:
description: 'Vedlagt: %{attached}'
@@ -1031,6 +1064,7 @@
other: "%{count} stemmer"
vote: Stem
show_more: Vis mer
+ show_thread: Vis tråden
sign_in_to_participate: Logg på for å delta i samtalen
title: "%{name}: «%{quote}»"
visibilities:
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index c8bad6de3..e17986772 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -651,6 +651,7 @@ pl:
add_new: Utwórz alias
created_msg: Pomyślnie utworzono nowy alias. Możesz teraz rozpocząć przenoszenie ze starego konta.
deleted_msg: Pomyślnie usunięto alias. Przenoszenie z tamtego konta na to nie będzie dłużej możliwe.
+ empty: Nie masz żadnych aliasów.
hint_html: Jeżeli chcesz przenieść się z innego konta na to, możesz utworzyć alias, który jest wymagany zanim zaczniesz przenoszenie obserwacji z poprzedniego konta na to. To działanie nie wyrządzi szkód i jest odwracalne. Migracja konta jest inicjowana ze starego konta.
remove: Odłącz alias
appearance:
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 45f2b22d1..bdee8d695 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -92,7 +92,7 @@ pt-BR:
delete: Excluir
destroyed_msg: Nota de moderação excluída com sucesso!
accounts:
- add_email_domain_block: Adicionar o domínio de email à lista negra
+ add_email_domain_block: Adicionar o domínio de e-mail à lista negra
approve: Aprovar
approve_all: Aprovar tudo
are_you_sure: Você tem certeza?
@@ -203,14 +203,14 @@ pt-BR:
create_announcement: Criar Anúncio
create_custom_emoji: Criar Emoji Personalizado
create_domain_allow: Adicionar domínio permitido
- create_domain_block: Adicionar domínio bloqueado
- create_email_domain_block: Adicionar domínio de e-mail bloqueado
- demote_user: Despromover Utilizador
+ create_domain_block: Criar Bloqueio de Domínio
+ create_email_domain_block: Criar Bloqueio de Domínio de E-mail
+ demote_user: Rebaixar usuário
destroy_announcement: Excluir anúncio
destroy_custom_emoji: Excluir emoji personalizado
destroy_domain_allow: Excluir domínio permitido
- destroy_domain_block: Excluir domínio bloqueado
- destroy_email_domain_block: Excluir domínio de e-mail bloqueado
+ destroy_domain_block: Excluir Bloqueio de Domínio
+ destroy_email_domain_block: Excluir bloqueio de domínio de e-mail
destroy_status: Excluir Status
disable_2fa_user: Desativar autenticação de dois fatores
disable_custom_emoji: Desativar Emoji Personalizado
@@ -226,8 +226,8 @@ pt-BR:
silence_account: Silenciar conta
suspend_account: Suspender Conta
unassigned_report: Remover relatório
- unsilence_account: Deixar de Silenciar Conta
- unsuspend_account: Retirar Suspensão à Conta
+ unsilence_account: Desfazer silenciar conta
+ unsuspend_account: Remover suspensão de conta
update_announcement: Editar anúncio
update_custom_emoji: Editar Emoji Personalizado
update_status: Editar Status
@@ -263,7 +263,7 @@ pt-BR:
suspend_account: "%{name} baniu a conta de %{target}"
unassigned_report: "%{name} largou a denúncia %{target}"
unsilence_account: "%{name} desativou o silêncio de %{target}"
- unsuspend_account: "%{name} desbaniu %{target}"
+ unsuspend_account: "%{name} removeu a suspensão da conta de %{target}"
update_announcement: "%{name} atualizou o anúncio %{target}"
update_custom_emoji: "%{name} atualizou o emoji %{target}"
update_status: "%{name} atualizou o status de %{target}"
@@ -353,31 +353,31 @@ pt-BR:
destroyed_msg: Domínio foi bloqueado
undo: Bloquear
domain_blocks:
- add_new: Novo bloqueio de domínio
+ add_new: Adicionar novo bloqueio de domínio
created_msg: Domínio está sendo bloqueado
destroyed_msg: Domínio desbloqueado
domain: Domínio
edit: Editar bloqueio de domínio
- existing_domain_block_html: Você já bloqueou %{name}, é necessário desbloqueá-lo primeiro.
+ existing_domain_block_html: Você já impôs limites mais estritos em %{name}, você precisa desbloqueá-lo primeiro.
new:
create: Criar bloqueio
- hint: O bloqueio de domínio não prevenirá a criação de entradas de contas na base de dados, mas vai retroativamente e automaticamente aplicar métodos específicos de moderação nestas contas.
+ hint: O bloqueio de domínio não vai prevenir a criação de entradas de contas na base de dados, mas vai retroativamente e automaticamente aplicar métodos específicos de moderação nessas contas.
severity:
- desc_html: "Silenciar fará com que os toots da conta fiquem invisíveis para qualquer um que não a esteja seguindo. Banir removerá todo o conteúdo da conta, mídia e dados do perfil. Use Nenhum se você apenas deseja recusar os arquivos de mídia."
+ desc_html: "Silenciar vai fazer os posts da conta invisíveis para qualquer um que não os esteja seguindo. Suspender vai remover todo o conteúdo, mídia, e dados de perfil da conta. Use Nenhum se você só quer rejeitar arquivos de mídia."
noop: Nenhum
silence: Silenciar
suspend: Banir
- title: Bloquear domínio
+ title: Novo bloqueio de domínio
private_comment: Comentário privado
private_comment_hint: Comente sobre essa restrição ao domínio para uso interno dos moderadores.
public_comment: Comentário público
public_comment_hint: Comente sobre essa restrição ao domínio para o público geral, caso a divulgação da lista de bloqueio esteja ativada.
- reject_media: Recusar arquivos de mídia
- reject_media_hint: Remove arquivos de mídia armazenados localmente e recusa quaisquer outros no futuro. Irrelevante para banimentos
- reject_reports: Recusar denúncias
- reject_reports_hint: Ignora todas as denúncias vindas deste domínio. Irrelevante para banimentos
- rejecting_media: recusando arquivos de mídia
- rejecting_reports: recusando denúncias
+ reject_media: Rejeitar arquivos de mídia
+ reject_media_hint: Remove arquivos de mídia armazenados localmente e recusa fazer download de qualquer um no futuro. Irrelevante para suspensões
+ reject_reports: Rejeitar denúncias
+ reject_reports_hint: Ignora todas as denúncias vindo deste domínio. Irrelevante para suspensões
+ rejecting_media: rejeitando arquivos de mídia
+ rejecting_reports: rejeitando denúncias
severity:
silence: silenciado
suspend: banido
@@ -386,24 +386,24 @@ pt-BR:
one: Uma conta no banco de dados foi afetada
other: "%{count} contas no banco de dados foram afetadas"
retroactive:
- silence: Desativar silêncio de todas as contas desse domínio
- suspend: Desbanir todas as contas deste domínio
- title: Desbloquear domínio %{domain}
+ silence: Dessilenciar contas existentes afetadas deste domínio
+ suspend: Dessuspender contas existentes afetadas deste domínio
+ title: Desfazer bloqueio de domínio para %{domain}
undo: Desfazer
- undo: Desbloquear domínio
+ undo: Desfazer bloqueio de domínio
view: Ver domínios bloqueados
email_domain_blocks:
add_new: Adicionar novo
- created_msg: Domínio de e-mail bloqueado
+ created_msg: Domínio de e-mail adicionado à lista negra com sucesso
delete: Excluir
- destroyed_msg: Domínio de e-mail desbloqueado
+ destroyed_msg: Domínio de e-mail excluído da lista negra com sucesso
domain: Domínio
- empty: Sem domínios de e-mail bloqueados.
+ empty: Nenhum domínio de e-mail atualmente na lista negra.
from_html: de %{domain}
new:
create: Adicionar domínio
- title: Novo domínio de e-mail bloqueado
- title: Lista de bloqueio de domínios de e-mail
+ title: Nova entrada de lista negra de e-mail
+ title: Lista de negra de e-mail
instances:
by_domain: Domínio
delivery_available: Envio disponível
@@ -508,7 +508,7 @@ pt-BR:
all: Para todos
disabled: Para ninguém
title: Mostrar domínios bloqueados
- users: Para usuários locais ativos
+ users: Para usuários locais logados
domain_blocks_rationale:
title: Mostrar motivo
enable_bootstrap_timeline_accounts:
@@ -633,8 +633,9 @@ pt-BR:
subject: Nova hashtag disponível para revisão em %{instance} (#%{name})
aliases:
add_new: Criar alias
- created_msg: Um novo alias foi criado com sucesso. Agora você pode se mudar.
- deleted_msg: Alias excluído com sucesso. Não será mais possível se mudar para esta conta.
+ created_msg: Um novo alias foi criado com sucesso. Agora você pode iniciar a mudança da conta antiga.
+ deleted_msg: Alias removido com sucesso. Não será mais possível se mudar daquela conta para esta conta.
+ empty: Você não tem alias.
hint_html: Se você quiser migrar de uma outra conta para esta, você pode criar um alias aqui, o que é necessário antes que você possa migrar os seguidores da conta antiga para esta. Esta ação por si só é inofensiva e reversível. A migração da conta é iniciada pela conta antiga.
remove: Desvincular alias
appearance:
@@ -767,7 +768,7 @@ pt-BR:
'406': Esta página não está disponível no formato solicitado.
'410': A página que você procura não existe mais.
'422':
- content: Falha na verificação de segurança. Você desativou o uso de cookies?
+ content: Falha na verificação de segurança. Você está bloqueando cookies?
title: Falha na verificação de segurança
'429': Muitas solicitações
'500':
@@ -849,6 +850,8 @@ pt-BR:
inactive: Inativo
publicize_checkbox: 'E toote isso:'
publicize_toot: 'Está provado! Eu sou %{username} no %{service}: %{url}'
+ remove: Remover comprovatido da conta
+ removed: Comprovativo removido da conta com sucesso
status: Status da verificação
view_proof: Ver prova
imports:
@@ -1265,7 +1268,7 @@ pt-BR:
title: Baixar arquivo
warning:
explanation:
- disable: Enquanto sua conta está bloqueada, seus dados estão intactos, mas você não pode realizar nenhuma ação até que sua conta seja desbloqueada.
+ disable: Enquanto sua conta está congelada, seus dados de conta permanecem intactos, mas você não pode realizar nenhuma ação até que esteja destrancada.
silence: Enquanto sua conta está silenciada, somente pessoas que já estão seguindo você poderão ver seus toots nessa instância, e você pode ser excluído de várias listas públicas. No entanto, outros ainda podem te seguir manualmente.
suspend: Sua conta foi banida e todos os seus toots e mídias foram irreversivelmente excluídos desta instância e das instâncias dos seus seguidores.
get_in_touch: Você pode responder a este e-mail para entrar em contato com a equipe de %{instance}.
@@ -1283,7 +1286,7 @@ pt-BR:
suspend: Conta banida
welcome:
edit_profile_action: Configurar perfil
- edit_profile_step: Você pode personalizar o seu perfil enviando uma imagem de perfil, uma capa, alterando seu nome de exibição e etc. Se você preferir aprovar seus novos seguidores antes de eles verem seus toots, você pode trancar a sua conta.
+ edit_profile_step: Você pode customizar o seu perfil ao fazer upload de um avatar, header, alterar seu nome de exibição e mais. Se você preferir revisar novos seguidores antes de poderem te seguir, você pode trancar a sua conta.
explanation: Aqui estão algumas dicas para você começar
final_action: Comece a tootar
final_step: 'Comece a tootar! Mesmo sem seguidores, suas mensagens públicas podem ser vistas pelos outros, por exemplo, na linha local e nas hashtags. Você pode querer fazer uma introdução usando a hashtag #introdução, ou em inglês usando a hashtag #introductions.'
diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml
index 7bff3bf5c..d17358956 100644
--- a/config/locales/pt-PT.yml
+++ b/config/locales/pt-PT.yml
@@ -11,38 +11,38 @@ pt-PT:
apps: Aplicações móveis
apps_platforms: Usar o Mastodon a partir do iOS, Android e outras plataformas
browse_directory: Navegue pelo directório de perfis e filtre por interesses
- browse_local_posts: Visualize as publicações públicas deste servidor em tempo real
+ browse_local_posts: Visualize as publicações públicas desta instância em tempo real
browse_public_posts: Visualize as publicações públicas do Mastodon em tempo real
contact: Contacto
contact_missing: Não configurado
contact_unavailable: n.d.
discover_users: Descobrir utilizadores
documentation: Documentação
- federation_hint_html: Ter uma conta em %{instance} permitirá seguir pessoas em qualquer servidor Mastodon.
+ federation_hint_html: Ter uma conta em %{instance} permitirá seguir pessoas em qualquer instância Mastodon.
get_apps: Experimente uma aplicação
hosted_on: Mastodon em %{domain}
instance_actor_flash: |
- Esta conta é um actor virtual usado para representar o próprio servidor e não um utilizador individual.
+ Esta conta é um actor virtual usado para representar a própria instância e não um utilizador individual.
É usada para motivos de federação e não deve ser bloqueada a não ser que que queira bloquear a instância por completo. Se for esse o caso, deverá usar o bloqueio de domínio.
learn_more: Saber mais
privacy_policy: Política de privacidade
see_whats_happening: Veja o que está a acontecer
- server_stats: 'Estatísticas do servidor:'
+ server_stats: 'Estatísticas da instância:'
source_code: Código fonte
status_count_after:
one: publicação
other: publicações
status_count_before: Que fizeram
tagline: Siga os seus amigos e descubra novas amizades
- terms: termos de serviço
+ terms: Termos de serviço
unavailable_content: Conteúdo indisponível
unavailable_content_description:
- domain: Servidor
+ domain: Instância
reason: Motivo
- rejecting_media: 'Arquivos de média destes servidores não serão processados ou armazenados, e nenhuma miniatura será exibida, o que requer que o utilizador clique e abra o arquivo original manualmente:'
- silenced: 'Publicações destes servidores serão ocultas em linhas do tempo e conversas públicas, e nenhuma notificação será gerada a partir das interações dos seus utilizadores, a menos que você os esteja a seguir:'
- suspended: 'Nenhum dado desses servidores será processado, armazenado ou trocado, tornando qualquer interação ou comunicação com os utilizadores desses servidores impossível:'
- unavailable_content_html: Mastodon geralmente permite que você veja o conteúdo e interaja com usuários de qualquer outro servidor no fediverso. Estas são as exceções deste servidor específico.
+ rejecting_media: 'Arquivos de media destas instâncias não serão processados ou armazenados, e nenhuma miniatura será exibida, o que requer que o utilizador clique e abra o arquivo original manualmente:'
+ silenced: 'Publicações destas instâncias serão ocultas em linhas do tempo e conversas públicas, e nenhuma notificação será gerada a partir das interações dos seus utilizadores, a menos que você os esteja a seguir:'
+ suspended: 'Nenhum dado dessas instâncias será processado, armazenado ou trocado, tornando qualquer interação ou comunicação com os utilizadores dessas instâncias impossível:'
+ unavailable_content_html: Mastodon geralmente permite que você veja o conteúdo e interaja com utilizadores de qualquer outra instância no fediverso. Estas são as exceções desta instância em específico.
user_count_after:
one: utilizador
other: utilizadores
@@ -60,7 +60,7 @@ pt-PT:
joined: Aderiu %{date}
last_active: última vez activo
link_verified_on: A posse deste link foi verificada em %{date}
- media: Média
+ media: Media
moved_html: "%{name} mudou-se para %{new_profile_link}:"
network_hidden: Esta informação não está disponível
never_active: Nunca
@@ -133,7 +133,7 @@ pt-PT:
remote: Remoto
title: Local
login_status: Estado de início de sessão
- media_attachments: Anexos de média
+ media_attachments: Anexos de media
memorialize: Converter em memorial
moderation:
active: Activo
@@ -160,7 +160,7 @@ pt-PT:
remove_avatar: Remover a imagem de perfil
remove_header: Remover o cabeçalho
resend_confirmation:
- already_confirmed: Este usuário já está confirmado
+ already_confirmed: Este utilizador já está confirmado
send: Reenviar um email de confirmação
success: Email de confirmação enviado com sucesso!
reset: Restaurar
@@ -190,7 +190,7 @@ pt-PT:
undo_silenced: Desfazer silenciar
undo_suspension: Desfazer supensão
unsubscribe: Cancelar inscrição
- username: Usuário
+ username: Utilizador
warn: Aviso
web: Web
whitelisted: Está na lista branca
@@ -363,7 +363,7 @@ pt-PT:
create: Criar bloqueio
hint: O bloqueio de dominio não vai previnir a criação de entradas na base de dados, mas irá retroativamente e automaticamente aplicar métodos de moderação específica nessas contas.
severity:
- desc_html: "Silenciar irá fazer com que as publicações dessa conta sejam invisíveis para quem não a segue. Supender irá eliminar todo o conteúdo guardado dessa conta, média e informação de perfil. Use Nenhum se apenas deseja rejeitar arquivos de média."
+ desc_html: "Silenciar irá fazer com que as publicações dessa conta sejam invisíveis para quem não a segue. Supender irá eliminar todo o conteúdo guardado dessa conta, media e informação de perfil. Use Nenhum se apenas deseja rejeitar arquivos de media."
noop: Nenhum
silence: Silenciar
suspend: Suspender
@@ -372,11 +372,11 @@ pt-PT:
private_comment_hint: Comentário sobre essa limitação de domínio para uso interno pelos moderadores.
public_comment: Comentário público
public_comment_hint: Comentário sobre essa limitação de domínio para o público geral, se ativada a divulgação da lista de limitações de domínio.
- reject_media: Rejeitar ficheiros de média
- reject_media_hint: Remove arquivos de média armazenados localmente e rejeita descarregar novos arquivos no futuro. Irrelevante para suspensões
+ reject_media: Rejeitar ficheiros de media
+ reject_media_hint: Remove arquivos de media armazenados localmente e rejeita descarregar novos arquivos no futuro. Irrelevante para suspensões
reject_reports: Rejeitar relatórios
reject_reports_hint: Ignorar todos os relatórios vindos deste domínio. Irrelevantes para efectuar suspensões
- rejecting_media: a rejeitar ficheiros de média
+ rejecting_media: a rejeitar ficheiros de media
rejecting_reports: a rejeitar relatórios
severity:
silence: silenciado
@@ -421,7 +421,7 @@ pt-PT:
total_followed_by_them: Seguidas por eles
total_followed_by_us: Seguidas por nós
total_reported: Relatórios sobre eles
- total_storage: Anexos de média
+ total_storage: Anexos de media
invites:
deactivate_all: Desactivar todos
filter:
@@ -437,11 +437,11 @@ pt-PT:
relays:
add_new: Adicionar novo repetidor
delete: Apagar
- description_html: Um repetidor da federação é um servidor intermediário que troca grandes volumes de publicações públicas entre servidores que o subscrevem e publicam. Ele pode ajudar pequenos e médios servidores a descobrir conteúdo do "fediverse" que, de outro modo, exigiria que os utilizadores locais seguissem manualmente outras pessoas em servidores remotos.
+ description_html: Um repetidor de federação é um servidor intermediário que troca grandes volumes de publicações públicas entre instâncias que o subscrevem e publicam. Ele pode ajudar pequenas e medias instâncias a descobrir conteúdo do fediverso que, de outro modo, exigiria que os utilizadores locais seguissem manualmente outras pessoas em instâncias remotas.
disable: Desactivar
disabled: Desactivado
enable: Activar
- enable_hint: Uma vez activado, o teu servidor irá subscrever a todas as publicações deste repetidor e irá começar a enviar as suas publicações públicas para ele.
+ enable_hint: Uma vez ativado, a tua instância irá subscrever a todas as publicações deste repetidor e irá começar a enviar as suas publicações públicas para ele.
enabled: Ativado
inbox_url: URL do repetidor
pending: À espera da aprovação do repetidor
@@ -514,7 +514,7 @@ pt-PT:
enable_bootstrap_timeline_accounts:
title: Habilitar seguidores predefinidos para novos utilizadores
hero:
- desc_html: Apresentado na primeira página. Pelo menos 600x100px recomendados. Quando não é definido, é apresentado o thumbnail do servidor
+ desc_html: Apresentado na primeira página. Pelo menos 600x100px recomendados. Quando não é definido, é apresentada a miniatura da instância
title: Imagem Hero
mascot:
desc_html: Apresentada em múltiplas páginas. Pelo menos 293x205px recomendados. Quando não é definida, é apresentada a mascote predefinida
@@ -523,8 +523,8 @@ pt-PT:
desc_html: Nomes de domínio que esta instância encontrou no fediverso
title: Publicar lista de instâncias descobertas
preview_sensitive_media:
- desc_html: A pre-visualização de links noutros sites irá apresentar uma miniatura, mesmo que a média seja marcada como sensível
- title: Mostrar média sensível em pre-visualizações OpenGraph
+ desc_html: A pre-visualização de links noutros sites irá apresentar uma miniatura, mesmo que a media seja marcada como sensível
+ title: Mostrar media sensível em pre-visualizações OpenGraph
profile_directory:
desc_html: Permite aos utilizadores serem descobertos
title: Ativar directório do perfil
@@ -557,11 +557,11 @@ pt-PT:
desc_html: Mostrar na página de mais informações%{instance}
pode não ser o servidor onde tu estás registado. Por isso, nós precisamos de te redirecionar para o teu servidor inicial em primeiro lugar."
+ reason_html: " Porque é este passo necessário? %{instance}
pode não ser a instância onde você está registado. Por isso, precisamos de o redirecionar para a sua instância de origem em primeiro lugar."
remote_interaction:
favourite:
proceed: Prosseguir para os favoritos
@@ -1266,10 +1269,10 @@ pt-PT:
warning:
explanation:
disable: Enquanto a tua conta está congelada, os seus dados permanecem intactos, mas tu não podes executar quaisquer acções até que ela seja desbloqueada.
- silence: Enquanto a tua conta estiver limitada, só pessoas que já estiveres a seguir irão ver as tuas publicações neste servidor e poderás ser excluído de várias listagens públicas. No entanto, outros ainda te poderão seguir de forma manual.
- suspend: A tua conta foi suspensa e todas as tuas publicações e os teus ficheiros de media foram irreversivelmente removidos deste servidor e dos servidores onde tinhas seguidores.
+ silence: Enquanto a sua conta estiver limitada, só pessoas que já estiver a seguir irão ver as suas publicações nesta instância e poderá ser excluído de várias listagens públicas. No entanto, outros ainda o poderão seguir de forma manual.
+ suspend: A sua conta foi suspensa e todas as suas publicações e os seus ficheiros de media foram irreversivelmente removidos desta instância e das instâncias onde tinhas seguidores.
get_in_touch: Pode responder a este e-mail para entrar em contacto com a equipa de %{instance}.
- review_server_policies: Revê as políticas do servidor
+ review_server_policies: Reveja a política da instância
statuses: 'Especificamente, para:'
subject:
disable: A tua conta %{acct} foi congelada
@@ -1288,13 +1291,13 @@ pt-PT:
final_action: Começa a publicar
final_step: 'Começa a publicar! Mesmo sem seguidores, as tuas mensagens públicas podem ser vistas por outros, por exemplo, na cronologia local e em hashtags. Tu podes querer apresentar-te na hashtag #introductions.'
full_handle: O teu nome completo
- full_handle_hint: Isto é o que tu dirias aos teus amigos para que eles te possam enviar mensagens ou seguir-te a partir de outro servidor.
+ full_handle_hint: Isto é o que você diria aos seus amigos para que eles lhe possam enviar mensagens ou seguir a partir de outra instância.
review_preferences_action: Alterar preferências
- review_preferences_step: Certifica-te de configurar as tuas preferências, tais como os e-mails que gostarias de receber ou o nível de privacidade que desejas que as tuas publicações tenham por defeito. Se não sofres de enjoo, podes activar a opção GIF autoplay.
+ review_preferences_step: Certifica-te de configurar as tuas preferências, tais como os e-mails que gostarias de receber ou o nível de privacidade que desejas que as tuas publicações tenham por defeito. Se não sofres de enjoo, podes ativar a opção de auto-iniciar GIFs.
subject: Bem-vindo ao Mastodon
tip_federated_timeline: A cronologia federativa é uma visão global da rede Mastodon. Mas só inclui pessoas que os teus vizinhos subscrevem, por isso não é uma visão completa.
- tip_following: Tu segues o(s) administrador(es) do teu servidor por defeito. Para encontrares mais pessoas interessantes, procura nas cronologias local e federativa.
- tip_local_timeline: A cronologia local é uma visão global das pessoas em %{instance}. Estes são os teus vizinhos mais próximos!
+ tip_following: Você segue o(s) administrador(es) da sua instância por defeito. Para encontrar mais pessoas interessantes, procure nas cronologias local e federada.
+ tip_local_timeline: A cronologia local é uma visão global das pessoas em %{instance}. Estes são os seus vizinhos mais próximos!
tip_mobile_webapp: Se o teu navegador móvel te oferecer a possibilidade de adicionar o Mastodon ao teu homescreen, tu podes receber notificações push. Ele age como uma aplicação nativa de vários modos!
tips: Dicas
title: Bem-vindo a bordo, %{name}!
diff --git a/config/locales/ro.yml b/config/locales/ro.yml
index 3dc2a944d..9d68ad803 100644
--- a/config/locales/ro.yml
+++ b/config/locales/ro.yml
@@ -1,11 +1,258 @@
---
ro:
about:
+ about_hashtag_html: Acestea sunt postări publice etichetate cu #%{hashtag}. Poți interacționa cu ele dacă ai un cont oriunde în rețea.
+ about_mastodon_html: 'Rețeaua socială a viitorului: Fără reclame, fără supraveghere corporativă, design etic și descentralizare! Dețineți-vă datele cu Mastodon!'
+ about_this: Despre
+ active_count_after: activi
+ active_footnote: Utilizatori activi lunar (UAL)
+ administered_by: 'Administrat de:'
+ api: API
+ apps: Aplicații mobile
+ apps_platforms: Folosește Mastodon de pe iOS, Android și alte platforme
+ browse_directory: Răsfoiți directorul de profil și filtrați după interese
+ browse_local_posts: Răsfoiți un flux live al postărilor publice de pe acest server
+ browse_public_posts: Răsfoiește un flux live de postări publice pe Mastodon
+ contact: Contact
+ contact_missing: Nesetat
+ contact_unavailable: N/A
+ discover_users: Descoperă utilizatori
+ documentation: Documentație
+ federation_hint_html: Cu un cont pe %{instance} vei putea urmări oameni pe orice server de Mastodon sau mai departe.
+ get_apps: Încercați o aplicație pentru mobil
hosted_on: Mastodon găzduit de %{domain}
+ instance_actor_flash: |
+ Acest cont este un actor virtual folosit pentru a reprezenta serverul în sine și nu un utilizator individual.
+ Acesta este folosit în scopuri de federație și nu ar trebui blocat decât dacă doriți să blocați întreaga instanță, în ce caz trebuie să utilizaţi un bloc de domeniu.
+ learn_more: Află mai multe
+ privacy_policy: Politica de confidenţialitate
+ see_whats_happening: Vezi ce se întâmplă
+ server_stats: 'Statistici server:'
+ source_code: Cod sursă
+ status_count_after:
+ few: stări
+ one: stare
+ other: de stări
+ status_count_before: Care au postat
+ tagline: Urmăriți prietenii și descoperiți alții noi
+ terms: Termeni de serviciu
+ unavailable_content: Conținut indisponibil
+ unavailable_content_description:
+ domain: Server
+ reason: Motiv
+ rejecting_media: 'Fişierele media de pe aceste servere nu vor fi procesate sau stocate şi nici o miniatură nu va fi afişată, necesitând click manual la fişierul original:'
+ silenced: 'Postările de pe aceste servere vor fi ascunse în cronologii și conversații publice, și nici o notificare nu va fi generată de interacțiunile utilizatorilor lor decât dacă le urmărești:'
+ suspended: 'Nici o informație de pe aceste servere nu va fi procesată, stocată sau schimbată, ceea ce face imposibilă orice interacțiune sau comunicare cu utilizatorii de pe aceste servere:'
+ unavailable_content_html: Mastodon vă permite în general să vedeți conținutul din orice alt server și să interacționați cu utilizatorii din rețea. Acestea sunt excepţiile care au fost făcute pe acest server.
+ user_count_after:
+ few: utilizatori
+ one: utilizator
+ other: de utilizatori
+ user_count_before: Casa a
+ what_is_mastodon: Ce este Mastodon?
+ accounts:
+ choices_html: 'Alegerile lui %{name}:'
+ endorsements_hint: Poți promova oameni pe care îi urmărești din interfața web, și ei vor apărea aici.
+ featured_tags_hint: Puteți promova anumite hashtag-uri care vor fi afișate aici.
+ follow: Urmărește
+ followers:
+ few: Urmăritori
+ one: Urmăritor
+ other: De Urmăritori
+ following: Urmăriți
+ joined: Înscris %{date}
+ last_active: ultima activitate
+ link_verified_on: Proprietatea acestui link a fost verificată la %{date}
+ media: Media
+ moved_html: "%{name} s-a mutat la %{new_profile_link}:"
+ network_hidden: Aceste informaţii nu sunt disponibile
+ never_active: Niciodată
+ nothing_here: Nu există nimic aici!
+ people_followed_by: Persoane pe care %{name} le urmărește
+ people_who_follow: Persoane care urmăresc pe %{name}
+ pin_errors:
+ following: Trebuie să urmăriți deja persoana pe care doriți să o aprobați
+ posts:
+ few: Postări
+ one: Postare
+ other: De Postări
+ posts_tab_heading: Postări
+ posts_with_replies: Postări și răspunsuri
+ reserved_username: Numele de utilizator este rezervat
+ roles:
+ admin: Admin
+ bot: Robot
+ group: Grup
+ moderator: Mod
+ unavailable: Profil indisponibil
+ unfollow: Nu mai urmării
+ admin:
+ account_actions:
+ action: Efectuează acțiunea
+ title: Efectuează acțiune de moderare la %{acct}
+ account_moderation_notes:
+ create: Lasă o notă
+ created_msg: Notă de moderare creată cu succes!
+ delete: Șterge
+ destroyed_msg: Notă de moderare distrusă cu succes!
+ accounts:
+ add_email_domain_block: Domeniu de e-mail în lista neagră
+ approve: Aprobă
+ approve_all: Aprobă toate
+ are_you_sure: Ești sigur?
+ avatar: Avatar
+ by_domain: Domeniu
+ change_email:
+ changed_msg: E-mail de cont schimbat cu succes!
+ current_email: E-mailul curent
+ label: Schimbă adresa de email
+ new_email: E-mail nou
+ submit: Schimbă adresa de email
+ title: Schimbă e-mailul pentru %{username}
+ confirm: Confirmă
+ confirmed: Confirmat
+ confirming: Confirmare
+ deleted: Șters
+ demote: Retrogradează
+ disable: Dezactivează
+ disable_two_factor_authentication: Dezactivează 2FA
+ disabled: Dezactivat
+ display_name: Nume afișat
+ domain: Domeniu
+ edit: Editează
+ email: E-mail
+ email_status: Stare e-mail
+ enable: Activează
+ enabled: Activat
+ followers: Urmăritori
+ follows: Urmăriri
+ header: Antet
+ inbox_url: URL mesaje primite
+ invited_by: Invitat de
+ ip: IP
+ joined: Înscris
+ location:
+ all: Toate
+ local: Local
+ remote: La distanţă
+ title: Locaţie
+ login_status: Stare conectare
+ media_attachments: Atașamente media
+ memorialize: Transformă în memorie
+ moderation:
+ active: Activ
+ all: Toate
+ pending: În așteptare
+ silenced: Ignorate
+ suspended: Suspendate
+ title: Moderare
+ moderation_notes: Note de moderare
+ most_recent_activity: Cea mai recentă activitate
+ most_recent_ip: Cel mai recent IP
+ no_account_selected: Nici un cont nu a fost schimbat deoarece nici unul nu a fost selectat
+ no_limits_imposed: Nicio limită impusă
+ not_subscribed: Nesubscrise
+ pending: În așteptare
+ perform_full_suspension: Suspendate
+ promote: Promovează
+ protocol: Protocol
+ public: Public
+ push_subscription_expires: Abonamentul PuSH expiră
+ redownload: Reîmprospătează profilul
+ reject: Respinge
+ reject_all: Respinge toate
+ remove_avatar: Elimină avatar
+ remove_header: Elimină antet
+ resend_confirmation:
+ already_confirmed: Acest utilizator este deja confirmat
+ send: Retrimite e-mail de confirmare
+ success: E-mail de confirmare trimis cu succes!
+ reset: Resetează
+ reset_password: Resetează parola
+ resubscribe: Resubscrie-te
+ role: Permisiuni
+ roles:
+ admin: Administrator
+ moderator: Moderator
+ staff: Personal
+ user: Utilizator
+ search: Caută
+ search_same_email_domain: Alţi utilizatori cu acelaşi domeniu de e-mail
+ search_same_ip: Alţi utilizatori cu acelaşi IP
+ shared_inbox_url: URL inbox distribuit
+ show:
+ created_reports: Rapoarte realizate
+ targeted_reports: Raportat de alții
+ silence: Ignoră
+ silenced: Ignorate
+ statuses: Stări
+ subscribe: Subscrie
+ suspended: Suspendate
+ time_in_queue: Așteptare în coadă %{time}
+ title: Conturi
+ unconfirmed_email: E-mail neconfirmat
+ undo_silenced: Anulează ignorarea
+ undo_suspension: Anulați suspendarea
+ unsubscribe: Dezabonare
+ username: Nume
+ warn: Avertizează
+ web: Web
+ whitelisted: Excluse la blocare
+ action_logs:
+ action_types:
+ assigned_to_self_report: Atribuie raportul
+ change_email_user: Schimbă e-mailul pentru utilizator
+ confirm_user: Confirmare Utilizator
+ create_account_warning: Crează avertisment
+ create_announcement: Creează Anunț
+ create_custom_emoji: Creează Zâmbet Personalizat
+ create_domain_allow: Creează permis domeniu
+ create_domain_block: Crează blocare de domenii
+ create_email_domain_block: Creați blocare de domeniu e-mail
+ demote_user: Retrogradare Utilizatorul
+ destroy_announcement: Ștergere anunț
+ destroy_custom_emoji: Ștergere Zâmbet Personalizat
+ destroy_domain_allow: Ștergere Permitere Domeniu
+ destroy_domain_block: Ștergere Blocare Domeniu
+ aliases:
+ add_new: Creează un alias
+ created_msg: A fost creat cu succes un alias nou. Acum puteţi iniţia mutarea din vechiul cont.
+ deleted_msg: Eliminați cu succes aliasul. Mutarea din acel cont în acesta nu va mai fi posibilă.
+ empty: Nu ai aliasuri.
+ hint_html: Dacă doriți să vă mutați dintr-un cont în altul, aici puteți crea un alias, care este necesar înainte de a putea continua mutarea urmăritorilor din vechiul cont în acesta. Această acțiune este inofensivă și reversibilă. Migrarea contului este inițiată din vechiul cont.
+ remove: Deconectare alias
+ appearance:
+ localization:
+ guide_link: https://crowdin.com/project/mastodon
+ guide_link_text: Toată lumea poate contribui.
+ sensitive_content: Conținut sensibil
+ toot_layout: Aspect postare
+ application_mailer:
+ notification_preferences: Modifică preferințe e-mail
+ salutation: "%{name},"
+ settings: 'Modifică preferințe e-mail: %{link}'
+ view: 'Vizualizare:'
+ view_profile: Vizualizați profilul
+ view_status: Vezi starea
+ applications:
+ created: Aplicație creată cu succes
+ destroyed: Aplicație ștearsă cu succes
+ invalid_url: URL-ul furnizat nu este valid
+ regenerate_token: Regenerează token-ul de acces
+ token_regenerated: Token de acces regenerat cu succes
+ warning: Fiți foarte atent cu aceste date. Nu le împărtășiți niciodată cu cineva!
+ your_token: Token-ul tău de acces
auth:
+ apply_for_account: Solicită o invitație
change_password: Parolă
+ checkbox_agreement_html: Sunt de acord cu regulile serverului şi termenii de serviciu
+ checkbox_agreement_without_rules_html: Sunt de acord cu termenii serviciului
delete_account: Șterge contul
delete_account_html: Dacă vrei să ștergi acest cont poți începe aici. Va trebui să confirmi această acțiune.
+ description:
+ prefix_invited_by_user: "@%{name} vă invită să vă alăturați acestui server de Mastodon!"
+ prefix_sign_up: Înscrie-te pe Mastodon astăzi!
+ suffix: Cu un cont, vei putea să urmărești oameni, să postezi actualizări și să schimbi mesaje cu utilizatorii de pe orice server Mastodon și multe altele!
didnt_get_confirmation: Nu ai primit instrucțiunile de confirmare?
forgot_password: Ai uitat parola?
invalid_reset_password_token: Această cerere este invalidă sau a expirat. Încearcă resetarea parolei din nou.
@@ -14,13 +261,29 @@ ro:
migrate_account: Transfer către un alt cont
migrate_account_html: Dacă dorești să redirecționezi acest cont către un altul, poți configura asta aici.
or_log_in_with: Sau conectează-te cu
+ providers:
+ cas: CAS
+ saml: SAML
register: Înregistrare
+ registration_closed: "%{instance} nu acceptă membri noi"
resend_confirmation: Retrimite instrucțiunile de confirmare
reset_password: Resetare parolă
security: Securitate
set_new_password: Setează o nouă parolă
+ setup:
+ email_below_hint_html: Dacă adresa de e-mail de mai jos este incorectă, o puteți schimba aici și puteți primi un nou e-mail de confirmare.
+ email_settings_hint_html: E-mailul de confirmare a fost trimis la %{email}. Dacă această adresă de e-mail nu este corectă, o puteți schimba în setările contului.
+ title: Configurare
+ status:
+ account_status: Starea contului
+ confirming: Se așteaptă finalizarea confirmării prin e-mail.
+ functional: Contul dvs. este complet operațional.
+ pending: Cererea dvs. este în curs de revizuire de către personalul nostru. Este posibil să dureze ceva timp. Veți primi un e-mail dacă cererea dvs. este aprobată.
+ redirecting_to: Contul dvs. este inactiv deoarece în prezent se redirecționează către %{acct}.
+ trouble_logging_in: Probleme la conectare?
authorize_follow:
already_following: Urmărești deja acest cont
+ already_requested: Ați trimis deja o cerere de urmărire către acel cont
error: Din păcate a apărut o eroare
follow: Urmărește
follow_request: 'Ai trimis o cerere de urmărire către:'
@@ -30,6 +293,14 @@ ro:
return: Arată profilul utilizatorului
web: Mergi la web
title: Urmărește %{acct}
+ challenge:
+ confirm: Continuă
+ hint_html: "Sfat: Nu vă vom mai cere parola pentru următoarea oră."
+ invalid_password: Parolă incorectă
+ prompt: Confirmă parola pentru a continua
+ date:
+ formats:
+ default: "%d %m, %Y"
datetime:
distance_in_words:
about_x_hours: "%{count}o"
@@ -41,11 +312,21 @@ ro:
less_than_x_seconds: Chiar acum
over_x_years: "%{count}ani"
x_days: "%{count}z"
+ x_minutes: "%{count}m"
x_months: "%{count}l"
+ x_seconds: "%{count}s"
deletes:
+ challenge_not_passed: Informațiile introduse nu au fost corecte
confirm_password: Introdu parola curentă pentru a-ți verifica identitatea
+ confirm_username: Introduceți numele de utilizator pentru a confirma procedura
proceed: Șterge contul
success_msg: Contul tău a fost șterg. Nu mai poate fi recuperat :D
+ warning:
+ before: 'Înainte de a continua, vă rugăm să citiţi aceste note cu atenţie:'
+ caches: Conținutul care a fost memorat de alte servere poate persista
+ data_removal: Postările tale și alte date vor fi șterse permanent
+ email_change_html: Puteți schimba adresa de e-mail fără a șterge contul dvs
+ email_contact_html: Dacă tot nu ajunge, puteți trimite e-mail la %{email} pentru ajutor
directories:
explanation: Descoperă oameni și companii în funcție de interesele lor
explore_mastodon: Explorează %{title}
@@ -91,11 +372,345 @@ ro:
title: Filtre
new:
title: Adaugă un filtru nou
+ imports:
+ modes:
+ overwrite: Suprascrie
+ overwrite_long: Înlocuiţi înregistrările curente cu cele noi
+ preface: Puteți importa date pe care le-ați exportat de pe un alt server, cum ar fi o listă a persoanelor pe care le urmăriți sau blocați.
+ success: Datele dvs. au fost încărcate cu succes și vor fi procesate acum în timp util
+ types:
+ blocking: Lista de blocare
+ domain_blocking: Listă de blocare domenii
+ following: Lista de urmărire
+ muting: Lista de ignorare
+ upload: Încarcă
+ in_memoriam_html: În Memoria.
invites:
+ delete: Dezactivați
+ expired: Expirat
expires_in:
- '1800': 30 minutes
- '21600': 6 hours
- '3600': 1 hour
- '43200': 12 hours
- '604800': 1 week
- '86400': 1 day
+ '1800': 30 de minute
+ '21600': 6 ore
+ '3600': 1 oră
+ '43200': 12 ore
+ '604800': 1 săptămână
+ '86400': 1 zi
+ expires_in_prompt: Niciodată
+ generate: Generează link de invitație
+ invited_by: 'Ai fost invitat de:'
+ max_uses:
+ few: "%{count} utilizări"
+ one: 1 utilizare
+ other: "%{count} de utilizări"
+ max_uses_prompt: Fără limită
+ prompt: Generați și împărtășiți link-uri cu alții pentru a acorda acces la acest server
+ table:
+ expires_at: Expiră
+ uses: Utilizări
+ title: Invită persoane
+ lists:
+ errors:
+ limit: Ați atins valoarea maximă a listelor
+ media_attachments:
+ validations:
+ images_and_video: Nu se poate atașa un videoclip la o stare care conține deja imagini
+ not_ready: Nu se pot ataşa fişiere care nu au terminat procesarea. Încercaţi din nou într-un moment!
+ too_many: Nu se pot ataşa mai mult de 4 fişiere
+ migrations:
+ acct: Mutat la
+ cancel: Anulează redirecționarea
+ cancel_explanation: Anularea redirecționării va reactiva contul curent, dar nu va aduce înapoi urmăritorii care au fost mutați în acel cont.
+ cancelled_msg: Redirecționarea a fost anulată cu succes.
+ errors:
+ already_moved: este același cont în care ați fost deja mutat
+ missing_also_known_as: nu are corelare inversă cu acest cont
+ move_to_self: nu poate fi contul curent
+ not_found: nu a putut fi găsit
+ on_cooldown: Ești în așteptare
+ followers_count: Urmăritori în momentul mutării
+ incoming_migrations: Mutarea de la un cont diferit
+ incoming_migrations_html: Pentru a trece de la un cont la altul, trebuie mai întâi să creați un alias.
+ moved_msg: Contul tău se redirecționează acum către %{acct} și urmăritorii tăi sunt mutați înapoi.
+ not_redirecting: Contul dvs. nu se redirecționează către niciun alt cont în prezent.
+ on_cooldown: Ți-ai migrat recent contul. Această funcție va deveni disponibilă din nou în %{count} zile.
+ past_migrations: Migrări trecute
+ proceed_with_move: Mută urmăritorii
+ redirecting_to: Contul dvs. se redirecționează către %{acct}.
+ set_redirect: Setați redirecționarea
+ notification_mailer:
+ reblog:
+ body: 'Postarea ta a fost impulsionată de %{name}:'
+ subject: "%{name} ți-a impulsionat postarea"
+ title: Impuls nou
+ polls:
+ errors:
+ expired: Sondajul s-a încheiat deja
+ invalid_choice: Opțiunea aleasă de vot nu există
+ over_character_limit: nu poate fi mai lung de %{max} caractere
+ too_few_options: trebuie să aibă mai mult de un element
+ too_many_options: nu poate conține mai mult de %{max} elemente
+ preferences:
+ other: Altele
+ posting_defaults: Valori prestabilite de postare
+ public_timelines: Fluxuri publice
+ reactions:
+ errors:
+ limit_reached: S-a atins limita diferitelor reacţii
+ unrecognized_emoji: nu este un zâmbet recunoscut
+ relationships:
+ activity: Activitate cont
+ dormant: Latente
+ followers: Urmăritori
+ following: Urmăriți
+ invited: Invitați
+ last_active: Ultima activitate
+ most_recent: Cei mai recenți
+ moved: Mutat
+ mutual: Mutuali
+ primary: Primar
+ relationship: Relaţie
+ remove_selected_domains: Eliminați toți urmăritorii din domeniile selectate
+ remove_selected_followers: Elimină urmăritorii selectați
+ remove_selected_follows: Anulează urmărirea utilizatorilor selectați
+ status: Starea contului
+ remote_follow:
+ acct: Introduceți numele@domeniu din care doriți să acționați
+ missing_resource: Nu s-a putut găsi URL-ul de redirecționare necesar pentru contul dvs
+ no_account_html: Nu ai un cont? Poți să te înregistrezi aici
+ proceed: Continuă să urmărești
+ prompt: 'Vei urmării pe:'
+ reason_html: "De ce este necesar acest pas? %{instance}
ar putea să nu fie serverul în care sunteți înregistrat, așa că trebuie să te redirecționăm către serverul tău de acasă."
+ remote_interaction:
+ favourite:
+ proceed: Continuă să favorizezi
+ prompt: 'Vrei să favorizezi această postare:'
+ reblog:
+ proceed: Continuă să dai impuls
+ prompt: 'Vrei să impulsionezi această postare:'
+ reply:
+ proceed: Continuă să răspunzi
+ prompt: 'Vrei să răspunzi la această postare:'
+ scheduled_statuses:
+ over_daily_limit: Ai depășit limita de %{limit} postări programate pentru acea zi
+ over_total_limit: Ai depășit limita de %{limit} postări programate
+ too_soon: Data programată trebuie să fie în viitor
+ sessions:
+ activity: Ultima activitate
+ browser: Navigator
+ browsers:
+ alipay: Alipay
+ blackberry: Blackberry
+ chrome: Chrome
+ edge: Microsoft Edge
+ electron: Electron
+ firefox: Firefox
+ generic: Navigator necunoscut
+ ie: Internet Explorer
+ statuses:
+ attached:
+ image:
+ few: "%{count} imagini"
+ one: "%{count} imagine"
+ other: "%{count} de imagini"
+ video:
+ few: "%{count} videoclipuri"
+ one: "%{count} video"
+ other: "%{count} de videoclipuri"
+ boosted_from_html: Impuls de la %{acct_link}
+ content_warning: 'Avertisment privind conținutul: %{warning}'
+ disallowed_hashtags:
+ few: 'conținea aceste hashtag-uri nepermise: %{tags}'
+ one: 'conținea un hashtag nepermis: %{tags}'
+ other: 'conținea aceste hashtag-uri nepermise: %{tags}'
+ errors:
+ in_reply_not_found: Postarea la care încercați să răspundeți nu pare să existe.
+ language_detection: Detectează automat limba
+ open_in_web: Deschide pe web
+ over_character_limit: s-a depășit limita de caracter %{max}
+ pin_errors:
+ limit: Deja ai fixat numărul maxim de postări
+ ownership: Postarea altcuiva nu poate fi fixată
+ private: Postarea non-publică nu poate fi fixată
+ reblog: Un impuls nu poate fi fixat
+ poll:
+ total_people:
+ few: "%{count} persoane"
+ one: "%{count} persoană"
+ other: "%{count} de persoane"
+ total_votes:
+ few: "%{count} voturi"
+ one: "%{count} vot"
+ other: "%{count} de voturi"
+ vote: Votează
+ show_more: Arată mai mult
+ show_thread: Arată discuția
+ sign_in_to_participate: Conectează-te pentru a participa la conversație
+ title: '%{name}: "%{quote}"'
+ visibilities:
+ private: Doar urmăritorii
+ private_long: Arată doar urmăritorilor
+ public: Public
+ public_long: Toată lumea poate vedea
+ unlisted: Nelistat
+ unlisted_long: Toată lumea poate vedea, dar nu este listată pe fluxurile publice
+ stream_entries:
+ pinned: Postare fixată
+ reblogged: impulsionată
+ sensitive_content: Conținut sensibil
+ tags:
+ does_not_match_previous_name: nu se potrivește cu numele anterior
+ terms:
+ body_html: |
+ Toate informațiile pe care le colectăm de la dvs. pot fi utilizate în următoarele moduri:
+ +Implementăm o varietate de măsuri de securitate pentru a menține siguranța informațiilor dvs. personale atunci când introduceți, trimiteți sau accesați informațiile dvs. personale. Printre altele, sesiunea navigatorului dvs., precum și traficul dintre aplicațiile dvs. și API-ul, sunt securizate cu SSL, iar parola dvs. este salvată folosind un algoritm puternic unidirecțional. Puteți activa autentificarea în doi pași pentru a asigura accesul suplimentar la contul dvs..
+ +Vom depune eforturi de bună credință pentru:
+ +Puteți solicita și descărca o arhivă a conținutului dvs., inclusiv postările, atașamentele media, poza de profil și imaginea antetului.
+ +Puteți șterge ireversibil contul în orice moment.
+ +Da. Cookie-urile sunt fișiere mici pe care un site sau furnizorul său de servicii le transferă pe hard disk-ul computerului prin intermediul navigatorului dvs. Web (dacă permiteți). Aceste cookie-uri permit site-ului să vă recunoască navigatorul și, dacă aveți un cont înregistrat, să îl asociați cu contul dvs. înregistrat.
+ +Folosim cookie-uri pentru a înțelege și salva preferințele pentru vizitele viitoare.
+ +Nu vindem, comercializăm sau nu transferăm în alte părți informațiilor dvs. de identificare personală. Aceasta nu include terți de încredere care ne ajută în operarea site-ului nostru, în desfășurarea activității noastre sau în deservirea dvs., atât timp cât acele părți acceptă să păstreze aceste informații confidențiale. De asemenea, putem elibera informațiile dvs. atunci când considerăm că eliberarea este adecvată pentru a respecta legea, a aplica politicile site-ului nostru sau a proteja drepturile noastre, proprietatea sau siguranța noastră sau a altor persoane.
+ +Conținutul dvs. public poate fi descărcat de alte servere din rețea. Postările dvs. publice și cele doar pentru urmăritori sunt livrate pe serverele de unde provin urmăritorii dvs., iar mesajele directe sunt livrate către serverele destinatarilor, în măsura în care acei urmăritori sau destinatari provin de pe un server diferit decât acesta.
+ +Atunci când autorizați o aplicație să vă utilizeze contul, în funcție de sfera de autorizare pe care o aprobați, aceasta poate accesa informațiile despre profilul dvs. public, lista dvs. de urmăritori, urmăritorii, listele dvs., toate postările și favorizările dvs. Aplicațiile nu vă pot accesa niciodată adresa de e-mail sau parola.
+ +Site-ul nostru, produsele și serviciile noastre sunt destinate tuturor persoanelor care au cel puțin 16 ani. Dacă aveți sub 16 ani, conform cerințelor GDPR ( Regulamentul general privind protecția datelor ) nu utilizați acest site . p> + +
Cerințele legii pot fi diferite dacă acest server se află într-o altă jurisdicție.
+ +Dacă decidem să ne schimbăm politica de confidențialitate, vom posta aceste modificări pe această pagină.
+ +Acsta a fost actualizat ultima dată pe 27 aprilie 2020.
+ +Adaptat inițial din Politica de confidențialitate Discourse .
+ title: "%{instance} Termeni de utilizare și Politica de confidențialitate" + themes: + contrast: Mastodon (contrast mare) + default: Mastodon (Întunecat) + mastodon-light: Mastodon (Luminat) + time: + formats: + default: "%d %m, %Y, %H:%M" + month: "%m %Y" + two_factor_authentication: + code_hint: Introduceți codul generat de aplicația dvs de autentificare pentru a confirma + description_html: Dacă activați autentificarea în doi pași, autentificarea va necesita ca tu să fii în posesia telefonului tău, ceea ce va genera token-uri pentru ca tu să intri. + disable: Dezactivează + enable: Activează + enabled: Autentificare în doi pași este activată + enabled_success: Autentificarea în doi pași activată cu succes + generate_recovery_codes: Generează coduri de recuperare + instructions_html: "Scanați acest cod QR în Google Authenticator sau o aplicație TOTP similiară de pe telefonul dvs.. De acum înainte, acea aplicație va genera token-uri pe care va trebui să îi introduceți atunci când vă conectați." + lost_recovery_codes: Codurile de recuperare vă permit să redobândiți accesul la contul dvs. dacă vă pierdeți telefonul. Dacă ți-ai pierdut codurile de recuperare, le poți regenera aici. Codurile tale vechi de recuperare vor fi invalidate. + manual_instructions: 'Dacă nu puteți scana codul QR și trebuie să-l introduceți manual, aici este textul simplu pentru cheia secretă:' + recovery_codes: Copie a codurilor de recuperare + recovery_codes_regenerated: Coduri de recuperare regenerate cu succes + recovery_instructions_html: Dacă îți pierzi vreodată accesul la telefon, poți folosi unul dintre codurile de recuperare de mai jos pentru a recâștiga accesul la contul tău. Păstrați codurile de recuperare în condiții de siguranță. De exemplu, le puteți tipări și stoca cu alte documente importante. + setup: Configurare + wrong_code: Codul introdus nu a fost valid! Orele serverului și timpul dispozitivului sunt corecte? + user_mailer: + backup_ready: + explanation: Ai solicitat o copie de rezervă completă a contului tău. Acum este gata pentru descărcare! + subject: Arhiva ta este gata pentru descărcare + title: Preluare arhivă + warning: + explanation: + disable: În timp ce contul tău este înghețat, datele contului tău rămân intacte, dar nu poți efectua nicio acțiune până când acesta este deblocat. + silence: În timp ce contul tău este limitat, doar persoanele care deja te urmăresc îți vor vedea postările pe acest server, și puteți fi exclus de la diverse liste publice. Cu toate acestea, este posibil ca alte persoane să vă urmărească manual. + suspend: Contul tău a fost suspendat și toate postările tale și fișierele media încărcate au fost șterse ireversibil de pe acest server, și servere unde ai avut urmăritori. + get_in_touch: Puteți răspunde la acest e-mail pentru a lua legătura cu personalul din %{instance}. + review_server_policies: Revizuiește politicile serverului + statuses: 'Mai precis, pentru:' + subject: + disable: Contul tău %{acct} a fost înghețat + none: Avertizare pentru %{acct} + silence: Contul tău %{acct} a fost limitat + suspend: Contul tău %{acct} a fost suspendat + title: + disable: Cont înghețat + none: Avertizare + silence: Cont limitat + suspend: Cont suspendat + welcome: + edit_profile_action: Configurare profil + edit_profile_step: Vă puteți personaliza profilul încărcând un avatar, un antet, schimbându-vă numele afișat și multe altele. Dacă dorești să revizuiești noi urmăritori înainte de a primi permisiunea de a te urmări, îți poți bloca contul. + explanation: Iată câteva sfaturi pentru a începe + final_action: Începe să postezi + final_step: 'Începe să postezi! Chiar și fără urmăritori, mesajele publice pot fi văzute de alții, de exemplu pe fluxul local și pe hashtag-uri. Poate doriți să vă prezentați pe hashtag-ul #introducere.' + full_handle: Numele tău complet + full_handle_hint: Asta este ceea ce vei putea spune prietenilor pentru a te putea contacta sau pentru a te urmării de pe un alt server. + review_preferences_action: Schimbă preferințele + review_preferences_step: Asigură-te că setezi preferințele tale, cum ar fi e-mailurile pe care dorești să le primești sau ce nivel de confidențialitate vrei ca mesajele tale să fie implicite. Dacă nu ai rău de mişcare, ai putea alege să activezi imaginile GIF să pornească automat. + subject: Bine ai venit + tip_federated_timeline: Fluxul federat este o vedere de ansamblu a rețelei Mastodon. Dar include doar oameni la care s-au abonat vecinii tăi, așa că nu este completă. + tip_following: Urmăriți implicit administratorul(ii) serverului. Pentru a găsi oameni mai interesanți, verificați fluxurile locale și federalizate. + tip_local_timeline: Fluxul local este o vedere în ansamblu a persoanelor de pe %{instance}. Aceștia sunt vecinii tăi apropiați! + tip_mobile_webapp: Dacă navigatorul tău mobil îți oferă să adaugi Mastodon pe ecranul tău de pornire, poți primi notificări push. Se comportă ca o aplicație nativă în multe moduri! + tips: Sfaturi + title: Bine ai venit la bord, %{name}! + users: + follow_limit_reached: Nu poți urmări mai mult de %{limit} persoane + invalid_email: Adresa de e-mail nu este validă + invalid_otp_token: Cod doi pași nevalid + otp_lost_help_html: Dacă ai pierdut accesul la ambele, poți lua legătura cu %{email} + seamless_external_login: Sunteți autentificat prin intermediul unui serviciu extern, astfel încât parola și setările de e-mail nu sunt disponibile. + signed_in_as: 'Conectat ca:' + verification: + explanation_html: 'Poți să te verifici ca proprietar al link-urilor din metadatele profilului tău. Pentru aceasta, site-ul web asociat trebuie să conțină un link înapoi la profilul tău. Link-ul înapoi trebuie să aibă un atributrel="me"
. Conținut textului link-ului nu contează. Iată un exemplu:'
+ verification: Verificare
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index 30f237780..b84da7abf 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -210,11 +210,13 @@ ru:
create_account_warning: Выдача предупреждения
create_announcement: Создание объявлений
create_custom_emoji: Добавление эмодзи
+ create_domain_allow: Создать разрешение для домена
create_domain_block: Блокировка доменов
create_email_domain_block: Блокировка e-mail доменов
demote_user: Разжалование пользователей
destroy_announcement: Удаление объявлений
destroy_custom_emoji: Удаление эмодзи
+ destroy_domain_allow: Удалить разрешение для домена
destroy_domain_block: Разблокировка доменов
destroy_email_domain_block: Разблокировка e-mail доменов
destroy_status: Удаление постов
@@ -223,6 +225,7 @@ ru:
disable_user: Заморозка пользователей
enable_custom_emoji: Включение эмодзи
enable_user: Разморозка пользователей
+ memorialize_account: Сделать мемориалом
promote_user: Повышение пользователей
remove_avatar_user: Удаление аватаров
reopen_report: Возобновление жалоб
@@ -653,6 +656,7 @@ ru:
add_new: Создать псевдоним
created_msg: Новый псевдоним установлен. Теперь мы можете начать миграцию со старой учётной записи.
deleted_msg: Псевдоним успешно удалён. Миграция старой учётной записи в текущую более невозможна.
+ empty: У вас нет псевдонимов.
hint_html: Если вы собираетесь мигрировать с другой учётной записи на эту, вы можете настроить псевдоним, что требуется для переноса подписчиков со старой учётной записи. Это действие само по себе безвредно и обратимо. Миграция учётной записи начинается со старой учётной записи.
remove: Отвязать псевдоним
appearance:
@@ -869,14 +873,16 @@ ru:
inactive: Неактивно
publicize_checkbox: 'И опубликуйте текст:'
publicize_toot: 'Подтверждено! Я %{username} на %{service}: %{url}'
+ remove: Удалить идентификатор
+ removed: Идентификатор учётной записи удалён
status: Статус
view_proof: Посмотреть подтверждение
imports:
modes:
merge: Объединить
- merge_long: Сохранить имеющиеся данные и добавить новые
+ merge_long: Сохранить имеющиеся данные и добавить новые.
overwrite: Перезаписать
- overwrite_long: Перезаписать имеющиеся данные новыми
+ overwrite_long: Перезаписать имеющиеся данные новыми.
preface: Вы можете загрузить некоторые данные, например, списки людей, на которых Вы подписаны или которых блокируете, в Вашу учётную запись на этом узле из файлов, экспортированных с другого узла.
success: Ваши данные были успешно загружены и будут обработаны с должной скоростью
types:
@@ -905,7 +911,7 @@ ru:
one: 1 исп
other: "%{count} исп"
max_uses_prompt: Без ограничения
- prompt: Создавайте и делитесь ссылками с другими, чтобы предоставить им доступом к этому узлу
+ prompt: Создавайте и делитесь ссылками с другими, чтобы предоставить им доступом к этому узлу.
table:
expires_at: Истекает
uses: Исп.
@@ -1020,7 +1026,7 @@ ru:
too_few_options: должно быть больше 1 варианта
too_many_options: может содержать не больше %{max} вариантов
preferences:
- other: Всё остальное
+ other: Остальное
posting_defaults: Настройки отправки по умолчанию
public_timelines: Публичные ленты
reactions:
@@ -1275,7 +1281,7 @@ ru:
default: "%d %b %Y, %H:%M"
month: "%m.%Y"
two_factor_authentication:
- code_hint: Для подтверждения введите код, сгенерированный приложением-аутентификатором
+ code_hint: Для подтверждения введите код, сгенерированный приложением-аутентификатором.
description_html: 'На этой странице можно включить двухфакторную авторизацию: с ней, чтобы войти в свою учётную запись, потребуется ввести небольшой временный код, генерируемый через приложение на своём смартфоне.'
disable: Отключить
enable: Включить
diff --git a/config/locales/sc.yml b/config/locales/sc.yml
new file mode 100644
index 000000000..d1b8b43b4
--- /dev/null
+++ b/config/locales/sc.yml
@@ -0,0 +1,20 @@
+---
+sc:
+ errors:
+ '400': The request you submitted was invalid or malformed.
+ '403': You don't have permission to view this page.
+ '404': The page you are looking for isn't here.
+ '406': This page is not available in the requested format.
+ '410': The page you were looking for doesn't exist here anymore.
+ '422':
+ '429': Too many requests
+ '500':
+ '503': The page could not be served due to a temporary server failure.
+ invites:
+ expires_in:
+ '1800': 30 minutes
+ '21600': 6 hours
+ '3600': 1 hour
+ '43200': 12 hours
+ '604800': 1 week
+ '86400': 1 day
diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml
index a4a77e20f..0be13c8e5 100644
--- a/config/locales/simple_form.ar.yml
+++ b/config/locales/simple_form.ar.yml
@@ -10,6 +10,7 @@ ar:
text: بإمكانك استخدام نفس القواعد التي نجدها في التبويقات كعناوين الروابط والوسوم والإشارات
title: اختياري. غير مرئي للمُستَلِم
admin_account_action:
+ include_statuses: سيرى المستخدم أي مِن التبويقات تسببت في إجراء الإشراف أو التحذير
send_email_notification: سوف يتلقى المستخدم رسالة تُفسِّر ما حدث على حسابه
type_html: اختر ما تود إجراؤه على %{acct}
warning_preset_id: اختياري. يمكنك إضافة نص مخصص إلى نهاية النموذج
diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml
index 62d5823fc..7795f43f3 100644
--- a/config/locales/simple_form.cs.yml
+++ b/config/locales/simple_form.cs.yml
@@ -8,6 +8,7 @@ cs:
acct: Zadejte svůj účet, na který se chcete přesunout, ve formátu přezdívka@doména
account_warning_preset:
text: Můžete používat syntaxi tootů, jako například URL, hashtagy a zmínky
+ title: Nepovinné. Není viditelné pro příjemce
admin_account_action:
include_statuses: Uživatel uvidí, které tooty způsobily moderátorskou akci nebo varování
send_email_notification: Uživatel obdrží vysvětlení toho, co se stalo s jeho účtem
@@ -78,6 +79,7 @@ cs:
acct: Adresa nového účtu
account_warning_preset:
text: Text předlohy
+ title: Nadpis
admin_account_action:
include_statuses: Zahrnout v e-mailu nahlášené tooty
send_email_notification: Informovat uživatele e-mailem
@@ -150,6 +152,8 @@ cs:
username: Uživatelské jméno
username_or_email: Uživatelské jméno nebo e-mail
whole_word: Celé slovo
+ email_domain_block:
+ with_dns_records: Zahrnout MX záznamy a IP adresy domény
featured_tag:
name: Hashtag
interactions:
diff --git a/config/locales/simple_form.cy.yml b/config/locales/simple_form.cy.yml
index d8e272c8b..d6681e664 100644
--- a/config/locales/simple_form.cy.yml
+++ b/config/locales/simple_form.cy.yml
@@ -54,6 +54,9 @@ cy:
whole_word: Os yw'r allweddair neu'r ymadrodd yn alffaniwmerig yn unig, mi fydd ond yn cael ei osod os yw'n cyfateb a'r gair cyfan
domain_allow:
domain: Bydd y parth hwn yn gallu nôl data o'r gweinydd hwn a bydd data sy'n dod i mewn ohono yn cael ei brosesu a'i storio
+ email_domain_block:
+ domain: Gall hyn fod yr enw parth sy'n dangos yn yr ebost, y cofnod MX mae'r parth yn adfer i, neu'r cyfeiriad IP o'r gweinydd mae'r cofnod MX yn adfer i. Bydd y rhain yn cael eu gwirio wrth i defnyddiwr cofrestru, a chaiff y cofrestriad ei wrthod.
+ with_dns_records: Bydd ceisiad i adfer cofnodau DNS y parth penodol yn cael ei wneud, a bydd y canlyniadau hefyd yn cael ei gosbrestru
featured_tag:
name: 'Efallai hoffech defnyddio un o''r rhain:'
form_challenge:
@@ -152,6 +155,8 @@ cy:
username: Enw defnyddiwr
username_or_email: Enw defnyddiwr neu e-bost
whole_word: Gair cyfan
+ email_domain_block:
+ with_dns_records: Cynnwys cofnodion MX a chyfeiriadau IP y parth
featured_tag:
name: Hashnod
interactions:
diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml
index 3fadd7fb9..d7a10a4a9 100644
--- a/config/locales/simple_form.da.yml
+++ b/config/locales/simple_form.da.yml
@@ -39,6 +39,8 @@ da:
fields:
name: Etiket
value: Indhold
+ account_warning_preset:
+ title: Titel
admin_account_action:
include_statuses: Inkluder rapporteret toot i email
send_email_notification: Underret brugeren per email
diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml
index bb9033085..841cafbf4 100644
--- a/config/locales/simple_form.el.yml
+++ b/config/locales/simple_form.el.yml
@@ -54,6 +54,9 @@ el:
whole_word: Όταν η λέξη ή η φράση κλειδί είναι μόνο αλφαριθμητική, θα εφαρμοστεί μόνο αν ταιριάζει με ολόκληρη τη λέξη
domain_allow:
domain: Ο τομέας αυτός θα επιτρέπεται να ανακτά δεδομένα από αυτό τον διακομιστή και τα εισερχόμενα δεδομένα θα επεξεργάζονται και θα αποθηκεύονται
+ email_domain_block:
+ domain: Αυτό μπορεί να είναι το όνομα του τομέα που εμφανίζεται στη διεύθυνση email, στην εγγραφή MX στην οποία δείχνει ο τομέας ή την διεύθυνση IP του σέρβερ που δείχνει η εγγραφή MX. Αυτά θα ελεγχθούν κατά την εγγραφή του χρήστη και η εγγραφή θα απορριφθεί αναλόγως.
+ with_dns_records: Θα γίνει απόπειρα ανάλυσης των εγγραφών DNS του τομέα και τα αποτελέσματα θα μπουν και αυτά σε μαύρη λίστα
featured_tag:
name: 'Ίσως να θες να χρησιμοποιήσεις μια από αυτές:'
form_challenge:
diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml
index 3bd77a8e8..e3e68b107 100644
--- a/config/locales/simple_form.eo.yml
+++ b/config/locales/simple_form.eo.yml
@@ -17,6 +17,7 @@ eo:
current_password: Pro sekuraj kialoj, bonvolu enigi la pasvorton de la nuna konto
current_username: Por konfirmi, bonvolu enigi la uzantnomon de la nuna konto
digest: Sendita nur post longa tempo de neaktiveco, kaj nur se vi ricevis personan mesaĝon en via foresto
+ discoverable: Montru ĉi tiun profilon en la profilujon por ke la konto estos pli-vaste vidata
email: Vi ricevos konfirman retmesaĝon
fields: Vi povas havi ĝis 4 tabelajn elementojn en via profilo
header: Formato PNG, GIF aŭ JPG. Ĝis %{size}. Estos malgrandigita al %{dimensions}px
diff --git a/config/locales/simple_form.eu.yml b/config/locales/simple_form.eu.yml
index c0f36df77..c3520b072 100644
--- a/config/locales/simple_form.eu.yml
+++ b/config/locales/simple_form.eu.yml
@@ -145,7 +145,7 @@ eu:
setting_reduce_motion: Murriztu animazioen mugimenduak
setting_show_application: Utzi agerian tootak bidaltzeko erabilitako aplikazioa
setting_system_font_ui: Erabili sistemako tipografia lehenetsia
- setting_theme: Gunearen gaia
+ setting_theme: Gunearen azala
setting_trends: Erakutsi gaurko joerak
setting_unfollow_modal: Erakutsi baieztapen elkarrizketa-koadroa inor jarraitzeari utzi aurretik
setting_use_blurhash: Erakutsi gradiente koloretsuak ezkutatutako multimediaren ordez
diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml
index 77e91329a..bbcd53f5e 100644
--- a/config/locales/simple_form.fr.yml
+++ b/config/locales/simple_form.fr.yml
@@ -3,9 +3,9 @@ fr:
simple_form:
hints:
account_alias:
- acct: Spécifiez le nom d’utilisateur@domaine du compte que vous souhaitez migrer
+ acct: Spécifiez l’identifiant@domaine du compte que vous souhaitez migrer
account_migration:
- acct: Spécifiez le nom d’utilisateur@domaine du compte vers lequel vous souhaitez déménager
+ acct: Spécifiez l’identifiant@domaine du compte vers lequel vous souhaitez déménager
account_warning_preset:
text: Vous pouvez utiliser la syntaxe des pouets, comme les URLs, les hashtags et les mentions
title: Facultatif. Invisible pour le destinataire
@@ -77,7 +77,7 @@ fr:
name: Étiquette
value: Contenu
account_alias:
- acct: L’identifiant de l’ancien compte
+ acct: Identifiant de l’ancien compte
account_migration:
acct: L’identifiant du nouveau compte
account_warning_preset:
diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml
index 86d4bea5f..5c2637342 100644
--- a/config/locales/simple_form.gl.yml
+++ b/config/locales/simple_form.gl.yml
@@ -7,13 +7,13 @@ gl:
account_migration:
acct: Indica o usuaria@servidor da conta a cal queres migrar
account_warning_preset:
- text: Pódeslle dar formato ao toot, como URLs, etiquetas e mencións
+ text: Pódeslle dar formato ao toot, como URLs, cancelos e mencións
title: Optativo. Non visible para a correspondente
admin_account_action:
include_statuses: A usuaria verá que toots causaron a acción da moderación ou aviso
send_email_notification: A usuaria recibirá unha explicación sobre o que lle aconteceu a súa conta
- text_html: Optativo. Pode utilizar formato no toot. Pode engadir avisos preestablecidos para aforrar tempo
- type_html: Escolla que facer con %{acct}
+ text_html: Optativo. Podes utilizar formato no toot. Podes engadir avisos preestablecidos para aforrar tempo
+ type_html: Escolle que facer con %{acct}
warning_preset_id: Optativo. Poderás engadir texto personalizado ao final do preestablecido
announcement:
all_day: Cando se marca, só serán amosadas as datas do intre de tempo
@@ -28,29 +28,29 @@ gl:
context: Un ou varios contextos onde se debería aplicar o filtro
current_password: Por razóns de seguridade, introduce o contrasinal da conta actual
current_username: Para confirmar, introduce o nome de usuaria da conta actual
- digest: Enviar só tras un longo período de inactividade e só se recibeu algunha mensaxe directa na súa ausencia
- discoverable: O directorio de perfil é outro xeito para que a túa conta alcance unha maior audiencia
+ digest: Enviar só tras un longo período de inactividade e só se recibiches algunha mensaxe directa na tua ausencia
+ discoverable: O directorio de perfil é outro xeito de que a túa conta alcance unha maior audiencia
email: Ímosche enviar un correo de confirmación
- fields: Pode ter ate 4 elementos no seu perfil mostrados como unha táboa
+ fields: Podes ter ate 4 elementos no teu perfil mostrados como unha táboa
header: PNG, GIF ou JPG. Máximo %{size}. Será reducida a %{dimensions}px
inbox_url: Copiar o URL desde a páxina de inicio do repetidor que queres utilizar
- irreversible: Os toots filtrados desaparecerán de xeito irreversible, incluso si despois se elimina o filtro
+ irreversible: Os toots filtrados desaparecerán de xeito irreversible, incluso se despois se elimina o filtro
locale: O idioma da interface de usuaria, correos e notificacións
locked: Require que ti aceptes as seguidoras de xeito manual
- password: Utilice 8 caracteres ao menos
+ password: Utiliza 8 caracteres ao menos
phrase: Concordará independentemente das maiúsculas ou avisos de contido no toot
- scopes: A que APIs terá acceso a aplicación. Se selecciona un ámbito de alto nivel, non precisa seleccionar elementos individuais.
+ scopes: A que APIs terá acceso a aplicación. Se escolles un ámbito de alto nivel, non precisas seleccionar elementos individuais.
setting_aggregate_reblogs: Non mostrar novas promocións de toots que foron promocionados recentemente (só afecta a promocións recén recibidas)
setting_default_sensitive: Medios sensibles marcados como ocultos por defecto e móstranse cun click
setting_display_media_default: Ocultar medios marcados como sensibles
setting_display_media_hide_all: Ocultar sempre os medios
setting_display_media_show_all: Mostrar sempre os medios marcados como sensibles
- setting_hide_network: Non se mostrará no seu perfil quen a segue e quen a está a seguir
- setting_noindex: Afecta ao seu perfil público e páxinas de estado
- setting_show_application: A aplicación que está a utilizar para enviar toots mostrarase na vista detallada do toot
+ setting_hide_network: Non se mostrará no teu perfil quen te segue e a quen estás a seguir
+ setting_noindex: Afecta ao teu perfil público e páxinas de estado
+ setting_show_application: A aplicación que estás a utilizar para enviar toots mostrarase na vista detallada do toot
setting_use_blurhash: Os gradientes toman as cores da imaxe oculta pero esborranchando todos os detalles
setting_use_pending_items: Ocultar as actualizacións da liña temporal tras un click no lugar de desprazar automáticamente os comentarios
- username: O seu nome de usuaria será único en %{domain}
+ username: O teu nome de usuaria será único en %{domain}
whole_word: Se a chave ou frase de paso é só alfanumérica, só se aplicará se concorda a palabra completa
domain_allow:
domain: Este dominio estará en disposición de obter datos desde este servidor e datos de entrada a el poderán ser procesados e gardados
@@ -58,17 +58,17 @@ gl:
domain: Esto pode ser o nome de dominio que aparece no enderezo do correo, o rexistro MX que resolve o dominio, ou o IP do servidor que resolve o rexistro MX. Estos confrontaranse contra o rexistro da usuaria e o rexistro será rexeitado.
with_dns_records: Vaise facer un intento de resolver os rexistros DNS propocionados e os resultados tamén irán a lista negra
featured_tag:
- name: 'Podería utilizar algunha de estas:'
+ name: 'Poderías usar algunha destas:'
form_challenge:
current_password: Estás entrando nun área segura
imports:
data: Ficheiro CSV exportado desde outro servidor Mastodon
invite_request:
- text: Esto axudaranos a revisar a súa aplicación
+ text: Esto axudaranos a revisar a tua aplicación
sessions:
- otp: 'Introduza o código de dobre-factor creado pola aplicación do seu móbil ou utilice un dos seus códigos de recuperación:'
+ otp: 'Introduce o código do segundo factor creado pola aplicación do teu móbil ou usa un dos códigos de recuperación:'
tag:
- name: Só pode cambiar maiús/minúsculas, por exemplo, mellorar a lexibilidade
+ name: Só podes cambiar maiús/minúsculas, por exemplo, mellorar a lexibilidade
user:
chosen_languages: Se ten marca, só os toots nos idiomas seleccionados serán mostrados en liñas temporais públicas
labels:
@@ -79,17 +79,17 @@ gl:
account_alias:
acct: Xestiona a conta antiga
account_migration:
- acct: Xestiona a nova conta
+ acct: Usuaria na nova conta
account_warning_preset:
text: Texto preestablecido
title: Título
admin_account_action:
- include_statuses: Incluír toots reportados no correo
+ include_statuses: Incluír toots denunciados no correo
send_email_notification: Notificar a usuaria por correo-e
- text: Aviso persoalizado
+ text: Aviso personalizado
type: Acción
types:
- disable: Desactivar
+ disable: Desactivar conexión
none: Non facer nada
silence: Acalar
suspend: Suspender e eliminar irreversiblemente datos da conta
@@ -101,7 +101,7 @@ gl:
starts_at: Comezo do acontecemento
text: Anuncio
defaults:
- autofollow: Convide a seguir a súa conta
+ autofollow: Convida a seguir a tua conta
avatar: Avatar
bot: Esta conta é de un bot
chosen_languages: Filtrar idiomas
@@ -112,8 +112,8 @@ gl:
data: Datos
discoverable: Incluír esta conta no directorio
display_name: Nome mostrado
- email: enderezo correo electrónico
- expires_in: Caducidade despois de
+ email: Enderezo de email
+ expires_in: Caduca tras
fields: Metadatos do perfil
header: Cabeceira
inbox_url: URL da caixa de entrada do repetidor
@@ -123,7 +123,7 @@ gl:
max_uses: Número máximo de usos
new_password: Novo contrasinal
note: Acerca de ti
- otp_attempt: Código de Dobre-Factor
+ otp_attempt: Código do Segundo Factor
password: Contrasinal
phrase: Palabra chave ou frase
setting_advanced_layout: Activar interface web avanzada
@@ -132,10 +132,10 @@ gl:
setting_boost_modal: Pedir confirmación antes de promocionar
setting_crop_images: Recortar imaxes a 16x9 en toots non despregados
setting_default_language: Idioma de publicación
- setting_default_privacy: Intimidade da publicación
+ setting_default_privacy: Privacidade da publicación
setting_default_sensitive: Marcar sempre multimedia como sensible
setting_delete_modal: Solicitar confirmación antes de eliminar unha mensaxe
- setting_display_media: Mostrar medios
+ setting_display_media: Mostrar multimedia
setting_display_media_default: Por omisión
setting_display_media_hide_all: Ocultar todo
setting_display_media_show_all: Mostrar todo
@@ -158,30 +158,30 @@ gl:
email_domain_block:
with_dns_records: Incluír rexistros MX e IPs do dominio
featured_tag:
- name: Etiqueta
+ name: Cancelo
interactions:
must_be_follower: Bloquear as notificacións de non-seguidoras
- must_be_following: Bloquea as notificacións de persoas que non segue
- must_be_following_dm: Bloquea as mensaxes directas de persoas que non segue
+ must_be_following: Bloquea as notificacións de persoas que non segues
+ must_be_following_dm: Bloquea as mensaxes directas de persoas que non segues
invite:
comment: Comentar
invite_request:
text: Por que queres unirte?
notification_emails:
digest: Enviar correos con resumos
- favourite: Enviar un correo cando alguén marca como favorita unha das súas publicacións
- follow: Enviar un correo cando alguén a segue
- follow_request: Enviar un correo cando alguén solicita seguila
- mention: Enviar un correo cando alguén a menciona
- pending_account: Enviar correo-e cando unha nova conta precisa revisión
- reblog: Enviar un correo cando alguén promociona a súa mensaxe
- report: Enviar un correo cando se envíe un novo informe
- trending_tag: Enviar correo cando unha etiqueta non revisada é tendencia
+ favourite: Enviar un correo cando alguén marca como favorita unha das tuas publicacións
+ follow: Enviar un correo cando alguén te segue
+ follow_request: Enviar un correo cando alguén solicita seguirte
+ mention: Enviar un correo cando alguén te menciona
+ pending_account: Enviar un correo cando unha nova conta precisa revisión
+ reblog: Enviar un correo cando alguén promociona a tua mensaxe
+ report: Enviar un correo cando se envíe unha denuncia
+ trending_tag: Un cancelo ser revisar está sendo tendencia
tag:
- listable: Permitir a esta etiqueta aparecer no directorio de perfil
- name: Etiqueta
- trendable: Permitir a esta etiqueta aparecer baixo Tendencias
- usable: Permitir que os toots utilicen esta etiqueta
+ listable: Permitir que este cancelo apareza en buscas e no directorio de perfil
+ name: Cancelo
+ trendable: Permitir que este cancelo apareza en tendencias
+ usable: Permitir que os toots utilicen este cancelo
'no': Non
recommended: Recomendado
required:
diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml
index 2063446f1..5f8c525e1 100644
--- a/config/locales/simple_form.hu.yml
+++ b/config/locales/simple_form.hu.yml
@@ -153,10 +153,10 @@ hu:
severity: Súlyosság
type: Importálás típusa
username: Felhasználónév
- username_or_email: Felhasználónév vagy E-mail
+ username_or_email: Felhasználónév vagy e-mail cím
whole_word: Teljes szó
email_domain_block:
- with_dns_records: Domain MX rekordjainak és IP címeinek hozzávétele
+ with_dns_records: Domain MX rekordjainak és IP-címeinek hozzávétele
featured_tag:
name: Hashtag
interactions:
@@ -179,7 +179,7 @@ hu:
trending_tag: E-mail küldése, ha egy még nem látott hashtag trendi lett
tag:
listable: A hashtag megjelenhet a profiladatbázisban
- name: Címke
+ name: Hashtag
trendable: A hashtag megjelenhet a trendek között
usable: Tülkök használhatják ezt a hashtaget
'no': Nem
diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml
index 1e25419cf..a14dc3e04 100644
--- a/config/locales/simple_form.ja.yml
+++ b/config/locales/simple_form.ja.yml
@@ -56,7 +56,7 @@ ja:
domain: 登録するとこのサーバーからデータを受信したり、このドメインから受信するデータを処理して保存できるようになります
email_domain_block:
domain: メールアドレスのドメイン名および、名前解決したMXレコード、IPアドレスを指定できます。ユーザー登録時にこれらをチェックし、該当する場合はユーザー登録を拒否します。
- with_dns_records: 指定したドメインの名前解決ができない場合、ブラックリストに登録されます
+ with_dns_records: 指定したドメインのDNSレコードを取得し、その結果もブラックリストに登録されます
featured_tag:
name: 'これらを使うといいかもしれません:'
form_challenge:
diff --git a/config/locales/simple_form.nn.yml b/config/locales/simple_form.nn.yml
index 5fb0e8fce..8eddd3589 100644
--- a/config/locales/simple_form.nn.yml
+++ b/config/locales/simple_form.nn.yml
@@ -78,6 +78,7 @@ nn:
acct: Brukernavnet til den nye brukeren
account_warning_preset:
text: Føreåtstekst
+ title: Tittel
admin_account_action:
include_statuses: Inkluder rapporterte tuter i e-mailen
send_email_notification: Varsl brukaren med e-post
diff --git a/config/locales/simple_form.no.yml b/config/locales/simple_form.no.yml
index 426247676..55b33a281 100644
--- a/config/locales/simple_form.no.yml
+++ b/config/locales/simple_form.no.yml
@@ -78,6 +78,7 @@
acct: Brukernavnet til den nye brukeren
account_warning_preset:
text: Forhåndsvalgt tekst
+ title: Tittel
admin_account_action:
include_statuses: Inkluder rapporterte tuter i e-mailen
send_email_notification: Si ifra til brukeren over E-post
diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml
index 1f72f278d..600ebe5c5 100644
--- a/config/locales/simple_form.pt-BR.yml
+++ b/config/locales/simple_form.pt-BR.yml
@@ -55,7 +55,7 @@ pt-BR:
domain_allow:
domain: Este domínio poderá obter dados deste servidor e os dados recebidos dele serão processados e armazenados
email_domain_block:
- domain: Este pode ser o nome de domínio que aparece no endereço de email, o registro MX para o qual o domínio resolve, ou o IP do servidor para o qual o registro MX resolve. Estes serão verificados no momento da inscrição do usuário e a inscrição será rejeitada.
+ domain: Este pode ser o nome de domínio que aparece no endereço de e-mail, o registro MX para o qual o domínio resolve, ou o IP do servidor para o qual o registro MX resolve. Esses vão ser verificados no momento da cadastro do usuário e o cadastro será rejeitado.
with_dns_records: Será feita uma tentativa de resolver os registros DNS do domínio em questão e os resultados também serão colocados na lista negra
featured_tag:
name: 'Você pode querer usar um destes:'
diff --git a/config/locales/simple_form.pt-PT.yml b/config/locales/simple_form.pt-PT.yml
index 3bec60f38..43927893d 100644
--- a/config/locales/simple_form.pt-PT.yml
+++ b/config/locales/simple_form.pt-PT.yml
@@ -3,14 +3,14 @@ pt-PT:
simple_form:
hints:
account_alias:
- acct: Especifique o nome de usuário@domínio da conta de onde você deseja mover
+ acct: Especifique o utilizador@domínio da conta de onde você deseja migrar
account_migration:
- acct: Especifique o nome de usuário@domínio da conta para onde você deseja mover
+ acct: Especifique o utilizador@domínio da conta para onde você deseja migrar
account_warning_preset:
text: Tu podes usar sintaxe de escrita, como URLs, hashtags e referências
title: Opcional. Não visível para o destinatário
admin_account_action:
- include_statuses: O usuário verá quais ferramentas causaram a ação de moderação ou aviso
+ include_statuses: O utilizador verá quais toots causaram a ação de moderação ou aviso
send_email_notification: O utilizador receberá uma explicação sobre o que aconteceu com a sua conta
text_html: Opcional. Tu podes usar sintaxe de escrita. Tu podes adicionar predefinições de aviso para poupar tempo
type_html: Escolhe o que fazer com %{acct}
@@ -41,10 +41,10 @@ pt-PT:
phrase: Será correspondido independentemente da capitalização ou do aviso de conteúdo duma publicação
scopes: Quais as APIs a que será concedido acesso. Se escolheres uma abrangência de nível superior, não precisarás de as seleccionar individualmente.
setting_aggregate_reblogs: Não mostrar novas partilhas que foram partilhadas recentemente (só afecta as novas partilhas)
- setting_default_sensitive: Média sensível está oculta por padrão e pode ser revelada com um clique
- setting_display_media_default: Esconder média marcada como sensível
- setting_display_media_hide_all: Esconder sempre toda a média
- setting_display_media_show_all: Mostrar sempre a média marcada como sensível
+ setting_default_sensitive: Media sensível está oculta por padrão e pode ser revelada com um clique
+ setting_display_media_default: Esconder media marcada como sensível
+ setting_display_media_hide_all: Esconder sempre toda a media
+ setting_display_media_show_all: Mostrar sempre a media marcada como sensível
setting_hide_network: Quem tu segues e quem te segue não será mostrado no teu perfil
setting_noindex: Afecta o teu perfil público e as páginas das tuas publicações
setting_show_application: A aplicação que tu usas para publicar será mostrada na vista detalhada das tuas publicações
@@ -53,7 +53,7 @@ pt-PT:
username: O teu nome de utilizador será único em %{domain}
whole_word: Quando a palavra-chave ou expressão-chave é somente alfanumérica, ela só será aplicada se corresponder à palavra completa
domain_allow:
- domain: Este domínio será capaz de obter dados deste servidor e os dados dele recebidos serão processados e armazenados
+ domain: Este domínio será capaz de obter dados desta instância e os dados dele recebidos serão processados e armazenados
email_domain_block:
domain: Este pode ser o nome de domínio que aparece no endereço de email, o registro MX para o qual o domínio resolve, ou o IP do servidor para o qual o registro MX resolve. Estes serão verificados no momento da inscrição do utilizador e a inscrição será rejeitada.
with_dns_records: Será feita uma tentativa de resolver os registros DNS do domínio em questão e os resultados também serão colocados na lista negra
@@ -62,7 +62,7 @@ pt-PT:
form_challenge:
current_password: Está a entrar numa área restrita
imports:
- data: Arquivo CSV exportado de outro servidor do Mastodon
+ data: Arquivo CSV exportado de outra instância do Mastodon
invite_request:
text: Isto vai ajudar-nos a rever o seu pedido
sessions:
@@ -133,9 +133,9 @@ pt-PT:
setting_crop_images: Cortar imagens em toots não expandidos para o formato 16x9
setting_default_language: Língua de publicação
setting_default_privacy: Privacidade da publicação
- setting_default_sensitive: Sempre marcar média como sensível
+ setting_default_sensitive: Sempre marcar media como sensível
setting_delete_modal: Solicitar confirmação antes de eliminar uma publicação
- setting_display_media: Exposição de média
+ setting_display_media: Visualização de media
setting_display_media_default: Pré-definição
setting_display_media_hide_all: Esconder todos
setting_display_media_show_all: Mostrar todos
@@ -148,7 +148,7 @@ pt-PT:
setting_theme: Tema do site
setting_trends: Mostrar as tendências de hoje
setting_unfollow_modal: Solicitar confirmação antes de deixar de seguir alguém
- setting_use_blurhash: Mostrar gradientes coloridos para médias ocultas
+ setting_use_blurhash: Mostrar gradientes coloridos para medias ocultas
setting_use_pending_items: Modo lento
severity: Gravidade
type: Tipo de importação
diff --git a/config/locales/simple_form.ro.yml b/config/locales/simple_form.ro.yml
index ac4c344f1..aa0b07708 100644
--- a/config/locales/simple_form.ro.yml
+++ b/config/locales/simple_form.ro.yml
@@ -2,19 +2,34 @@
ro:
simple_form:
hints:
+ account_alias:
+ acct: Specificați numele de utilizator@domeniu al contului de la care doriți să treceți
+ account_migration:
+ acct: Specificați numele de utilizator@domeniu al contului la care doriți să vă mutați
account_warning_preset:
text: Poți utiliza sintaxe precum URL, hastag sau menționări
+ title: Opțional. Nu este vizibil pentru destinatar
admin_account_action:
+ include_statuses: Utilizatorul va vedea ce postări au provocat acțiunea de moderare sau avertismentul
send_email_notification: Utilizatorul va primi o explicație cu privire la ceea ce sa întâmplat cu contul lui
text_html: Opțional. Poți utiliza sintaxe. Poți adăuga avertismente predefinite pentru a salva timp
type_html: Alege ce se întâmplă cu %{acct}
warning_preset_id: Opțional. Poți adăuga text personalizat la sfârșitul presetului
+ announcement:
+ all_day: Când este bifat, numai datele intervalului de timp vor fi afișate
+ ends_at: Opțional. Anunțul va fi automat nepublicat în acest moment
+ scheduled_at: Lăsați necompletat pentru a publica anunțul imediat
+ starts_at: Opțional. În cazul în care anunțul tău este legat de un anumit interval de timp
+ text: Poți folosi sintaxa de postare. Te rugăm să fii atent la spațiul pe care anunțul îl va ocupa pe ecranul utilizatorului
defaults:
autofollow: Persoanele care se înregistrează datorită invitației tale te vor urmări automat
avatar: PNG, GIF sau JPG. Cel mult %{size}. Va fi redimensionată la %{dimensions}px
bot: Acest cont performează în cea mai mare parte acțiuni automate și nu poate fi monitorizat
context: Contextele în care filtrul trebuie aplicat
+ current_password: În scopuri de securitate, vă rugăm să introduceţi parola contului curent
+ current_username: Pentru a confirma, vă rugăm să introduceţi numele de utilizator al contului curent
digest: Este trimis doar după o lungă perioadă de inactivitate și numai dacă primești mesaje personale în perioada de absență
+ discoverable: Directorul de profil este un alt mod prin care contul tău poate ajunge la un public mai larg
email: Vei primi un e-mail de confirmare
fields: Poti afișa pană la maxim 4 adrese sub formă de tabel pe pofilul tău
header: PNG, GIF sau JPG. Cel mult %{size}. Vor fi redimensionate la %{dimensions}px
@@ -25,18 +40,35 @@ ro:
password: Utilizează cel puțin 8 caractere
phrase: Vor fi potrivite indiferent de textul din casetă sau advertismentul unei postări
scopes: La care API-uri aplicația are nevoie de acces. Dacă selectezi un scop principal nu mai e nevoie să selectezi fiecare sub-scop al acestuia.
- setting_aggregate_reblogs: Nu afișa redistribuirile noi pentru postările care au fost deja recent redistribuite (afectează doar noile redistribuiri primite)
+ setting_aggregate_reblogs: Nu afișa impulsurile noi pentru postările care au fost deja recent impulsionate (afectează doar noile impulsuri primite)
+ setting_default_sensitive: Fișierele media sensibile sunt ascunse implicit și pot fi dezvăluite cu un clic
setting_display_media_default: Ascunde conținutul media marcat ca sensibil (NSFW)
setting_display_media_hide_all: Întotdeauna ascunde tot conținutul media
setting_display_media_show_all: Întotdeauna afișează conținutul media marcat ca sensibil
setting_hide_network: Pe cine urmărești și cine te urmărește nu vor fi afișați pe profilul tău
setting_noindex: Afecteazâ profilul tău public și statusurile tale
+ setting_show_application: Aplicația pe care o utilizați pentru a posta va fi afișată în vizualizarea detaliată a postărilor
+ setting_use_blurhash: Gradienții sunt bazați pe culorile vizualelor ascunse, dar ofuscă orice detalii
+ setting_use_pending_items: Ascunde actualizările cronologice din spatele unui click în loc de a derula automat fluxul
username: Numele tău de utilizator va fi unic pe %{domain}
whole_word: Când fraza sau cuvântul este doar alfanumeric, acesta se aplică doar dacă există o potrivire completă
+ domain_allow:
+ domain: Acest domeniu va putea prelua date de pe acest server și datele primite de la el vor fi procesate și stocate
+ email_domain_block:
+ domain: Acesta poate fi numele domeniului care apare pe adresa de e-mail, înregistrarea MX la care domeniul se rezolvă sau IP-ul serverului la care înregistrează MX rezolvă. Acestea vor fi verificate după înregistrarea utilizatorului, iar înscrierea va fi respinsă.
+ with_dns_records: Se va face o încercare de a rezolva înregistrările DNS ale domeniului dat și rezultatele vor fi de asemenea afișate pe lista neagră
+ featured_tag:
+ name: 'S-ar putea să vreți să folosiți unul dintre acestea:'
+ form_challenge:
+ current_password: Ați intrat într-o zonă securizată
imports:
data: Fișierul CSV exportat de la o altă instanță
+ invite_request:
+ text: Acest lucru ne va ajuta să revizuim cererea dvs
sessions:
otp: 'Introdu codul pentru dubla protecție generat de telefonul mobil sau unul din codurile de rezervă:'
+ tag:
+ name: Poți doar să schimbi caseta literelor, de exemplu, pentru a o face mai lizibilă
user:
chosen_languages: Doar postările în limbile selectate vor fi afișate în fluxurile publice
labels:
@@ -44,9 +76,15 @@ ro:
fields:
name: Etichetă
value: Conținut
+ account_alias:
+ acct: Manipularea contului vechi
+ account_migration:
+ acct: Manipularea contului nou
account_warning_preset:
text: Text presetat
+ title: Titlu
admin_account_action:
+ include_statuses: Include postările raportate în e-mail
send_email_notification: Notificați utilizatorul prin e-mail
text: Avertisment personalizat
type: Acțiune
@@ -56,6 +94,12 @@ ro:
silence: Liniște
suspend: Suspendă și șterge ireversibil datele contului
warning_preset_id: Utilizează un avertisment predefinit
+ announcement:
+ all_day: Eveniment pe toată ziua
+ ends_at: Sfârșitul evenimentului
+ scheduled_at: Programare publicare
+ starts_at: Începerea evenimentului
+ text: Anunţ
defaults:
autofollow: Invită să te urmărească
avatar: Fotografie de profil
@@ -65,6 +109,7 @@ ro:
confirm_password: Confirmă parola
context: Contextele filtrului
current_password: Parola actuală
+ data: Date
discoverable: Listează acest cont in director
display_name: Numele afișat
email: Adresa de e-mail
@@ -81,37 +126,65 @@ ro:
otp_attempt: Cod dublă protecție
password: Parolă
phrase: Cuvânt sau frază
+ setting_advanced_layout: Activează interfața web avansată
+ setting_aggregate_reblogs: Grupează impulsurile în fluxuri
setting_auto_play_gif: Redă automat animațiile GIF
- setting_boost_modal: Arată dialogul de confirmare înainte de a redistribui
+ setting_boost_modal: Arată dialogul de confirmare înainte de a impulsiona
+ setting_crop_images: Decupează imaginile în postările non-extinse la 16x9
setting_default_language: În ce limbă postezi
setting_default_privacy: Cine vede postările tale
setting_default_sensitive: Întotdeauna marchează conținutul media ca sensibil
setting_delete_modal: Arată dialogul de confirmare înainte de a șterge o postare
+ setting_display_media: Afișare media
setting_display_media_default: Standard
+ setting_display_media_hide_all: Ascunde toate
+ setting_display_media_show_all: Arată toate
+ setting_expand_spoilers: Întotdeauna extinde postările marcate cu avertismente referitoare la conținut
setting_hide_network: Ascunde rețeaua
setting_noindex: Nu permite motoarelor de căutare să indexeze rețeaua ta
setting_reduce_motion: Redu mișcarea în animații
+ setting_show_application: Dezvăluie aplicația folosită pentru a trimite postări
setting_system_font_ui: Utilizează fontul standard as sistemului
setting_theme: Tema siteului
+ setting_trends: Arată tendințele de astăzi
setting_unfollow_modal: Arată dialogul de confirmare înainte de a nu mai urmări pe cineva
+ setting_use_blurhash: Arată gradiente colorate pentru media ascunse
+ setting_use_pending_items: Modul lent
severity: Severitate
type: Ce importați
username: Nume de utilizator
username_or_email: Numele de utilizator sau adresa de E-mail
whole_word: Cuvânt întreg
+ email_domain_block:
+ with_dns_records: Include înregistrările MX și IP-urile domeniului
+ featured_tag:
+ name: Hashtag
interactions:
must_be_follower: Blochează notificările de la persoane care nu te urmăresc
must_be_following: Blochează notificările de la persoane pe care nu le urmărești
must_be_following_dm: Blochează mesajele directe de la persoane pe care nu le urmărești
+ invite:
+ comment: Comentariu
+ invite_request:
+ text: De ce vrei să te alături?
notification_emails:
digest: Trimite rezumate
favourite: Trimite e-mail când cineva favorizează unul din statusurile tale
follow: Trimite e-mail când cineva te urmărește
follow_request: Trimite e-mail când cineva trimite o cerere de urmărire
mention: Trimite e-mail când cineva te menționează
- reblog: Trimite e-mail când cineva redistribuie unul din statusurile tale
+ pending_account: Noul cont trebuie revizuit
+ reblog: Trimite e-mail când cineva impulsionează una din postările tale
report: Trimite e-mail când un raport nou este trimis
+ trending_tag: Un hashtag nerevizuit este în tendință
+ tag:
+ listable: Permite acestui hashtag să apară în căutări și în directorul de profil
+ name: Hashtag
+ trendable: Permite acestui hashtag să apară sub tendințe
+ usable: Permite postărilor să folosească acest hashtag
'no': Nu
+ recommended: Recomandat
required:
+ mark: "*"
text: obligatoriu
'yes': Da
diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml
index 7bc585c64..15f383b2a 100644
--- a/config/locales/simple_form.ru.yml
+++ b/config/locales/simple_form.ru.yml
@@ -22,34 +22,34 @@ ru:
starts_at: Необязательно. На случай, если ваше объявление привязано к какому-то временному интервалу
text: Вы можете использовать тот же синтаксис, что и в постах. Будьте предусмотрительны насчёт места, которое займёт объявление на экране пользователей
defaults:
- autofollow: Люди, пришедшие по этому приглашению, автоматически будут подписаны на вас
- avatar: Поддерживается PNG, GIF и JPG. Максимальный размер — %{size}. Будет уменьшен до %{dimensions}px
- bot: Эта учётная запись обычно выполяет автоматизированные действия и может не просматриваться владельцем
+ autofollow: Люди, пришедшие по этому приглашению, автоматически будут подписаны на вас.
+ avatar: Поддерживается PNG, GIF и JPG. Максимальный размер — %{size}. Будет уменьшен до %{dimensions}px.
+ bot: Отметьте, если с этой учётной записи выполняются автоматизированные действия и она может не просматриваться владельцем.
context: Один или несколько контекстов, к которым должны быть применены фильтры
current_password: В целях безопасности введите пароль текущей учётной записи
current_username: Для подтверждения, пожалуйста, введите имя пользователя текущей учётной записи
digest: Если вы долго не заглядывали, отправим вам дайджест событий, которые происходили в период вашего отсутствия.
- discoverable: Каталог профилей это один из способов получить охват вашего профиля более обширной аудиторией
- email: Вам будет отправлено электронное письмо с подтверждением
- fields: В профиле можно отобразить до 4 пунктов в виде таблицы
- header: Поддерживается PNG, GIF и JPG. Максимальный размер — %{size}. Будет уменьшена до %{dimensions}px
+ discoverable: Каталог профилей это один из способов получить охват вашего профиля более обширной аудиторией.
+ email: Вам будет отправлено электронное письмо с подтверждением.
+ fields: В профиле можно отобразить до 4 пунктов в виде таблицы.
+ header: Поддерживается PNG, GIF и JPG. Максимальный размер — %{size}. Будет уменьшена до %{dimensions}px.
inbox_url: Копировать URL с главной страницы ретранслятора, который вы хотите использовать
irreversible: Отфильтрованные посты будут утеряны навсегда, даже если в будущем фильтр будет убран
locale: Язык интерфейса, e-mail писем и push-уведомлений
- locked: Подписчиков нужно будет подтверждать самостоятельно
- password: Укажите не менее 8 символов
+ locked: Подписчиков нужно будет подтверждать вручную.
+ password: Укажите не менее 8 символов.
phrase: Будет сопоставлено независимо от присутствия в тексте или предупреждения о содержании поста
scopes: Какие API приложению будет позволено использовать. Если вы выберете самый верхний, нижестоящие будут выбраны автоматически.
- setting_aggregate_reblogs: Не показывать новые продвижения постов, которые уже были недавно продвинуты (относится только к новым продвижениям)
- setting_default_sensitive: Деликатные медиафайлы скрыты по умолчанию и могут быть показаны по нажатию на них
+ setting_aggregate_reblogs: Не показывать новые продвижения постов, которые уже были недавно продвинуты (относится только к новым продвижениям).
+ setting_default_sensitive: Деликатные медиафайлы скрыты по умолчанию и могут быть показаны по нажатию на них.
setting_display_media_default: Скрывать деликатные медиафайлы
setting_display_media_hide_all: Всегда скрывать любые медиафайлы
setting_display_media_show_all: Всегда показывать деликатные медиафайлы
- setting_hide_network: Другие не смогут видеть ни ваши подписки, ни ваших подписчиков
- setting_noindex: Относится к вашему публичному профилю и страницам постов
- setting_show_application: При просмотре поста будет видно из какого приложения он отправлен
- setting_use_blurhash: Градиенты основаны на цветах скрытых медиа, но скрывают любые детали
- setting_use_pending_items: Показывать обновления в ленте только после клика вместо автоматической прокрутки
+ setting_hide_network: Другие не смогут видеть ни ваши подписки, ни ваших подписчиков.
+ setting_noindex: Ваш публичный профиль и страницы постов будут скрыты из поисковых движков.
+ setting_show_application: При просмотре поста будет видно из какого приложения он отправлен.
+ setting_use_blurhash: Градиенты основаны на цветах скрытых медиа, но скрывают любые детали.
+ setting_use_pending_items: Показывать обновления в ленте только после клика вместо автоматической прокрутки.
username: Ваше имя пользователя будет уникальным на %{domain}
whole_word: Если слово или фраза состоит только из букв и цифр, сопоставление произойдёт только по полному совпадению
domain_allow:
@@ -62,7 +62,7 @@ ru:
form_challenge:
current_password: Вы входите в зону безопасности
imports:
- data: Файл CSV, экспортированный с другого узла Mastodon
+ data: Файл CSV, экспортированный с другого узла Mastodon.
invite_request:
text: Это поможет нам рассмотреть вашу заявку
sessions:
@@ -70,7 +70,7 @@ ru:
tag:
name: Вы можете изменить только регистр букв чтобы, например, сделать тег более читаемым
user:
- chosen_languages: Если выбрано, то в публичных лентах будут показаны только посты на выбранных языках
+ chosen_languages: Если выбрано, то в публичных лентах будут показаны только посты на выбранных языках.
labels:
account:
fields:
diff --git a/config/locales/simple_form.sc.yml b/config/locales/simple_form.sc.yml
new file mode 100644
index 000000000..91bd6d92f
--- /dev/null
+++ b/config/locales/simple_form.sc.yml
@@ -0,0 +1 @@
+sc:
diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml
index b365bdda8..485f74d24 100644
--- a/config/locales/simple_form.sq.yml
+++ b/config/locales/simple_form.sq.yml
@@ -59,8 +59,12 @@ sq:
silence: Heshtje
suspend: Pezulloje dhe fshi në mënyrë të pakthyeshme të dhënat e llogarisë
warning_preset_id: Përdor një sinjalizim të paracaktuar
+ announcement:
+ starts_at: Fillimi i ngjarjes
+ text: Lajmërim
defaults:
autofollow: Ftesë për ndjekje të llogarisë tuaj
+ avatar: Foto profili
bot: Kjo është një llogari robot
chosen_languages: Filtro gjuhë
confirm_new_password: Ripohoni fjalëkalimin e ri
@@ -84,6 +88,7 @@ sq:
otp_attempt: Kod mirëfilltësimi dyfaktorësh
password: Fjalëkalim
phrase: Fjalëkyç ose frazë
+ setting_advanced_layout: Aktivizo ueb interface të avancuar
setting_aggregate_reblogs: Grupoji përforcimet në rrjedha kohore
setting_auto_play_gif: Vetëluaji GIF-et e animuar
setting_boost_modal: Shfaq dialog ripohimi përpara përforcimi
@@ -102,16 +107,23 @@ sq:
setting_show_application: Tregoje aplikacionin e përdorur për të dërguar mesazhe
setting_system_font_ui: Përdor shkronja parazgjedhje të sistemit
setting_theme: Temë sajti
+ setting_trends: Shfaq trendet e sodit
setting_unfollow_modal: Shfaq dialog ripohimi përpara heqjes së ndjekjes për dikë
+ setting_use_blurhash: Shfaq ngjyra me pjerrësi për media të fshehura
+ setting_use_pending_items: Gjendje e ngadalshme
severity: Rreptësi
type: Lloj importimi
username: Emër përdoruesi
username_or_email: Emër përdoruesi ose Email
whole_word: Krejt fjalën
+ featured_tag:
+ name: Hashtag
interactions:
must_be_follower: Blloko njoftime nga jo-ndjekës
must_be_following: Blloko njoftime nga persona që nuk i ndiqni
must_be_following_dm: Blloko mesazhe të drejtpërdrejt nga persona që nuk i ndiqni
+ invite:
+ comment: Komento
notification_emails:
digest: Dërgo email-e përmbledhës
favourite: Të dërgohet email kur dikush parapëlqen gjendjen tuaj
@@ -120,7 +132,11 @@ sq:
mention: Të dërgohet email kur dikush ju përmend
reblog: Dërgo email kur dikush përforcon gjendjen time
report: Dërgo email kur parashtrohet një raportim i ri
+ tag:
+ name: Hashtag
'no': Jo
+ recommended: Rekomanduar
required:
+ mark: "*"
text: e domosdoshme
'yes': Po
diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml
index 22a2647a3..0f8578bb1 100644
--- a/config/locales/simple_form.th.yml
+++ b/config/locales/simple_form.th.yml
@@ -24,7 +24,7 @@ th:
defaults:
autofollow: ผู้คนที่ลงทะเบียนผ่านคำเชิญจะติดตามคุณโดยอัตโนมัติ
avatar: PNG, GIF หรือ JPG สูงสุด %{size} จะถูกย่อขนาดเป็น %{dimensions}px
- bot: บัญชีนี้ทำการกระทำอัตโนมัติเป็นหลักและอาจไม่ได้รับการสังเกตการณ์
+ bot: บัญชีนี้ทำการกระทำแบบอัตโนมัติเป็นหลักและอาจไม่ได้รับการสังเกตการณ์
context: บริบทจำนวนหนึ่งหรือมากกว่าที่ตัวกรองควรใช้
current_password: เพื่อวัตถุประสงค์ด้านความปลอดภัย โปรดป้อนรหัสผ่านของบัญชีปัจจุบัน
current_username: เพื่อยืนยัน โปรดป้อนชื่อผู้ใช้ของบัญชีปัจจุบัน
diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml
index 69ee19f1b..60f7c9eac 100644
--- a/config/locales/simple_form.tr.yml
+++ b/config/locales/simple_form.tr.yml
@@ -78,6 +78,7 @@ tr:
acct: Yeni hesabın tanıtıcısı
account_warning_preset:
text: Ön-ayar metni
+ title: Başlık
admin_account_action:
include_statuses: Birdirilen tootları e-postaya dahil et
send_email_notification: E-postayla kullanıcıyı bilgilendir
diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml
index 2fe0461cf..10977aedc 100644
--- a/config/locales/simple_form.uk.yml
+++ b/config/locales/simple_form.uk.yml
@@ -8,6 +8,7 @@ uk:
acct: Вкажіть ім'я користувача@домен облікового запису, на яку ви хочете переміститися
account_warning_preset:
text: Ви можете використовувати синтаксис дмухів, наприклад URLи, хештеґи та згадки
+ title: Необов'язково. Не відображається отримувачу
admin_account_action:
include_statuses: Користувач побачить, які дмухи призвели до адміністративних дій або попереджень
send_email_notification: Користувач отримає роз'яснення, що сталося з його обліковим записом
@@ -23,7 +24,7 @@ uk:
defaults:
autofollow: Люди, що зареєструвалися за вашим запрошенням, автоматично підпишуться на вас
avatar: PNG, GIF, або JPG. Максимум - %{size}. Буде зменшено до %{dimensions}px
- bot: Цей аккаунт в основному виконує автоматичні дії та може не відстежуватіся
+ bot: Цей акаунт виконує автоматичні дії та може не відстежуватися
context: Один або кілька контекстів, до яких повинні бути застосовані фільтри
current_password: Для цілей безпеки, будь ласка, введіть пароль поточного облікового запису
current_username: Для підтвердження, будь ласка, введіть ім'я користувача поточного облікового запису
@@ -42,8 +43,8 @@ uk:
setting_aggregate_reblogs: Не показувати передмухи для дмухів, які нещодавно вже були передмухнуті (не вплине на вже отримані передмухи)
setting_default_sensitive: Дражливі медіа приховані за промовчанням та можуть бути розкрити кліком
setting_display_media_default: Приховувати медіа, помічені як дражливі
- setting_display_media_hide_all: Приховувати будь-які медіа
- setting_display_media_show_all: Завжди відображати медіа, помічені як дражливі
+ setting_display_media_hide_all: Завжди приховувати медіа
+ setting_display_media_show_all: Завжди показувати медіа
setting_hide_network: У вашому профілі не буде відображено підписки та підписників
setting_noindex: Впливає на ваш публічний профіль та сторінки статусу
setting_show_application: Застосунок, за допомогою якого ви дмухнули, буде відображено серед деталей дмуху
@@ -78,6 +79,7 @@ uk:
acct: Оброблювач нового облікового запису
account_warning_preset:
text: Текст шаблону
+ title: Заголовок
admin_account_action:
include_statuses: Додати дмухи, на які ви скаржитесь, до електронного листа
send_email_notification: Сповістити користувача електронною поштою
diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml
index a617df62e..040e90ef7 100644
--- a/config/locales/simple_form.zh-CN.yml
+++ b/config/locales/simple_form.zh-CN.yml
@@ -7,7 +7,7 @@ zh-CN:
account_migration:
acct: 指定你想迁移过去的帐号的 用户名@站点域名
account_warning_preset:
- text: 你可以使用嘟文格式,在嘟文中加入 URL、话题标签和提及“@”
+ text: 你可以在嘟文中使用特殊格式,例如在嘟文中加入 URL、话题标签和提及“@”
title: 可选。对接收者不可见
admin_account_action:
include_statuses: 用户将会看到哪些嘟文导致了审核行为或警告
@@ -33,7 +33,7 @@ zh-CN:
email: 我们会向你发送一封确认邮件
fields: 这将会在个人资料页上以表格的形式展示,最多 4 个项目
header: 文件大小限制 %{size},只支持 PNG、GIF 或 JPG 格式。图片分辨率将会压缩至 %{dimensions}px
- inbox_url: 从你想要使用的中继的主页上复制 URL
+ inbox_url: 从你想要使用的中继站的主页上复制 URL
irreversible: 已过滤的嘟文会不可逆转地消失,即便移除过滤器之后也一样
locale: 用户界面、电子邮件和推送通知中使用的语言
locked: 你需要手动审核所有关注请求
@@ -116,8 +116,8 @@ zh-CN:
expires_in: 失效时间
fields: 个人资料附加信息
header: 个人资料页横幅图片
- inbox_url: 中继收件箱的 URL
- irreversible: 放弃而非隐藏
+ inbox_url: 中继站收件箱的 URL
+ irreversible: 丢弃而非隐藏
locale: 界面语言
locked: 保护你的帐户(锁嘟)
max_uses: 最大使用次数
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index 3a327c1d0..e11fb3e69 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -10,7 +10,7 @@ sk:
api: API
apps: Aplikácie
apps_platforms: Užívaj Mastodon z iOSu, Androidu, a iných platforiem
- browse_directory: Prehľadávaj databázu profilov, filtruj podľa záujmov
+ browse_directory: Prehľadávaj databázu profilov, a filtruj podľa záujmov
browse_local_posts: Prebádaj naživo prúd verejných príspevkov z tohto servera
browse_public_posts: Sleduj naživo prúd verejných príspevkov na Mastodone
contact: Kontakt
@@ -76,9 +76,9 @@ sk:
following: Musíš už následovať toho človeka, ktorého si praješ zviditeľniť
posts:
few: Príspevkov
- many: Príspevkov
+ many: Príspevky
one: Príspevok
- other: Príspevky
+ other: Príspevkov
posts_tab_heading: Príspevky
posts_with_replies: Príspevky s odpoveďami
reserved_username: Prihlasovacie meno je vyhradené
@@ -118,7 +118,7 @@ sk:
deleted: Vymazané
demote: Degraduj
disable: Zablokuj
- disable_two_factor_authentication: Zakáž 2FA
+ disable_two_factor_authentication: Vypni dvoj-faktorové overovanie
disabled: Blokovaný
display_name: Ukáž meno
domain: Doména
@@ -202,6 +202,28 @@ sk:
web: Web
whitelisted: Na bielej listine
action_logs:
+ action_types:
+ assigned_to_self_report: Priraď hlásenie
+ change_email_user: Zmeň email pre užívateľa
+ confirm_user: Potvrď užívateľa
+ create_account_warning: Vytvor výstrahu
+ create_announcement: Vytvor oboznámenie
+ create_domain_allow: Vytvor povolenie pre doménu
+ create_domain_block: Vytvor doménovú blokádu
+ demote_user: Zniž užívateľskú rolu
+ destroy_announcement: Vymaž oboznámenie
+ destroy_domain_allow: Zmaž povolenie pre doménu
+ destroy_domain_block: Zruš blokovanie domény
+ destroy_status: Vymaž príspevok
+ disable_2fa_user: Vypni dvoj-faktorové overovanie
+ disable_user: Deaktivuj užívateľa
+ enable_user: Povoľ užívateľa
+ remove_avatar_user: Vymaž avatar
+ reopen_report: Znovu otvor hlásenie
+ reset_password_user: Obnov heslo
+ silence_account: Utíš účet
+ suspend_account: Vylúč účet
+ update_status: Aktualizuj stav
actions:
assigned_to_self_report: "%{name} pridelil/a hlásenie užívateľa %{target} sebe"
change_email_user: "%{name} zmenil/a emailovú adresu užívateľa %{target}"
@@ -236,6 +258,8 @@ sk:
update_custom_emoji: "%{name} aktualizoval/a emoji %{target}"
update_status: "%{name} aktualizoval/a status pre %{target}"
deleted_status: "(zmazaný príspevok)"
+ filter_by_action: Filtruj podľa úkonu
+ filter_by_user: Trieď podľa užívateľa
title: Kontrólny záznam
announcements:
destroyed_msg: Oboznámenie úspešne vymazané!
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index 91720c602..a7cf869a4 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -58,6 +58,7 @@ sl:
media: Mediji
moved_html: "%{name} se je prestavil na %{new_profile_link}:"
network_hidden: Ta informacija ni na voljo
+ never_active: Nikoli
nothing_here: Tukaj ni ničesar!
people_followed_by: Ljudje, ki jim sledi %{name}
people_who_follow: Ljudje, ki sledijo %{name}
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
index 0e20902ff..eee431006 100644
--- a/config/locales/sq.yml
+++ b/config/locales/sq.yml
@@ -4,23 +4,37 @@ sq:
about_hashtag_html: Këto janë mesazhe publike të etiketuar me #%{hashtag}. Mundeni të ndërveproni me ta, nëse keni një llogari kudo qoftë në fediverse.
about_mastodon_html: Mastodon-i është një rrjet shoqëror i bazuar në protokolle web të hapur dhe në software të lirë, me burim të hapur. Është i decentralizuar, si email-ii.
about_this: Mbi
+ active_count_after: aktive
+ active_footnote: Përdorues Aktivë Mujor (PAM)
administered_by: 'Administruar nga:'
+ api: API
apps: Aplikacione për celular
contact: Kontakt
contact_missing: I parregulluar
+ contact_unavailable: N/A
+ discover_users: Zbulo përdoruesit
documentation: Dokumentim
+ get_apps: Provo app mobil
hosted_on: Mastodon i strehuar në %{domain}
learn_more: Mësoni më tepër
privacy_policy: Rregulla privatësie
+ see_whats_happening: Shih se ç'po ndodhë
+ server_stats: 'Statistika serveri:'
source_code: Kod burim
status_count_after:
one: gjendje
other: gjendje
status_count_before: Cili krijoi
+ tagline: Ndjek shokët/shoqet dhe gjej të ri
terms: Kushte shërbimi
+ unavailable_content: Përmbajtje e pa arritshme
+ unavailable_content_description:
+ domain: Server
+ reason: Arsye
user_count_after:
one: përdorues
other: përdorues
+ user_count_before: Shtëpi për
what_is_mastodon: Ç’është Mastodon-i?
accounts:
choices_html: 'Zgjedhje të %{name}:'
@@ -32,8 +46,10 @@ sq:
joined: U bë pjesë më %{date}
last_active: aktiv së fundi
link_verified_on: Pronësia e kësaj lidhjeje qe kontrolluar më %{date}
+ media: Media
moved_html: "%{name} ka kaluar te %{new_profile_link}:"
network_hidden: Këto të dhëna nuk mund të kihen
+ never_active: Asnjëherë
nothing_here: S’ka gjë këtu!
people_followed_by: Persona të ndjekur nga %{name}
people_who_follow: Persona që ndjekin %{name}
@@ -47,6 +63,9 @@ sq:
reserved_username: Emri i përdoruesit është i ruajtur për dikë
roles:
admin: Përgjegjës
+ bot: Bot
+ group: Grup
+ unavailable: Profil i pa arritshëm
unfollow: Resht së ndjekuri
admin:
account_actions:
@@ -58,7 +77,11 @@ sq:
delete: Fshije
destroyed_msg: Shënimi i moderimit u asgjësua me sukses!
accounts:
+ add_email_domain_block: Shto e-mail domain në listën e zezë
+ approve: Prano
+ approve_all: Prano të gjithë
are_you_sure: A jeni i sigurt?
+ avatar: Foto profili
by_domain: Përkatësi
change_email:
changed_msg: Email-i i llogarisë u ndryshua me sukses!
@@ -78,6 +101,7 @@ sq:
display_name: Emër në ekran
domain: Përkatësi
edit: Përpunojeni
+ email: Email
email_status: Gjendje email-i
enable: Aktivizoje
enabled: E aktivizuar
@@ -86,6 +110,7 @@ sq:
header: Krye
inbox_url: URL Mesazhesh të Marrë
invited_by: Ftuar nga
+ ip: IP
joined: U bë pjesë
location:
all: Krejt
@@ -98,20 +123,25 @@ sq:
moderation:
active: Aktiv
all: Krejt
+ pending: Në pritje
silenced: U heshtua
suspended: Të pezulluara
title: Moderim
moderation_notes: Shënime moderimesh
most_recent_activity: Veprimtaria më e freskët
most_recent_ip: IP-ja më e freskët
+ no_account_selected: Asnjë llogari nuk është ndryshuar pasiqë asnjë llogari nuk është zgjedhur
no_limits_imposed: Pa imponim kufijsh
not_subscribed: Jo i pajtuar
+ pending: Në pritje për rishikim
perform_full_suspension: Pezulloje
promote: Promovojeni
protocol: Protokoll
public: Publike
push_subscription_expires: Pajtimi PuSH skadon më
redownload: Rifresko profilin
+ reject: Refuzo
+ reject_all: Refuzo të gjitha
remove_avatar: Hiqe avatarin
remove_header: Hiqe kryen
resend_confirmation:
@@ -124,9 +154,12 @@ sq:
role: Leje
roles:
admin: Përgjegjës
+ moderator: Moderues
staff: Staf
user: Përdorues
search: Kërkoni
+ search_same_email_domain: Përdorues tjerë me e-mail domain të ngjajshëm
+ search_same_ip: Përdorues tjerë me IP të ngjajshme
shared_inbox_url: URL kutie të përbashkët mesazesh
show:
created_reports: Ka bërë raportime
@@ -136,6 +169,7 @@ sq:
statuses: Gjendje
subscribe: Pajtomë
suspended: Të pezulluara
+ time_in_queue: Në pritje në radhë %{time}
title: Llogari
unconfirmed_email: Email i paripohuar
undo_silenced: Zhbëje heshtjen
@@ -143,7 +177,28 @@ sq:
unsubscribe: Shpajtohuni
username: Emër përdoruesi
warn: Sinjalizoje
+ web: Ueb
+ whitelisted: Lista e bardhë
action_logs:
+ action_types:
+ assigned_to_self_report: Përcakto Raportin
+ change_email_user: Ndrysho E-mail për përdoruesin
+ confirm_user: Konfirmo përdoruesin
+ create_account_warning: Krijo vërrejtje
+ create_announcement: Krijo lajmërim
+ create_custom_emoji: Krijo Emoji të veçantë
+ create_domain_allow: Lejo krijimin e domain
+ create_domain_block: Krijo bllokimin e domain
+ create_email_domain_block: Krijo bllokadë për E-mailët me domain
+ destroy_status: Fshij gjendjen
+ disable_2fa_user: Ç'aktivizo 2FA
+ disable_custom_emoji: Ç'aktivizo Emoji të veçantë
+ disable_user: Ç'aktivizo përdorues
+ enable_user: Aktivizo përdorues
+ promote_user: Promovo përdoruesin
+ remove_avatar_user: Largo foton e profilit
+ reopen_report: Rihap rapotin
+ update_status: Përditëso gjendjen
actions:
assigned_to_self_report: "%{name} ia kaloi raportimin %{target} në ngarkim vetvetes"
change_email_user: "%{name} ndryshoi adresën email të përdoruesit %{target}"
@@ -176,21 +231,40 @@ sq:
update_custom_emoji: "%{name} përditësoi emotikonin %{target}"
update_status: "%{name} përditësoi gjendjen me %{target}"
deleted_status: "(fshiu gjendjen)"
+ empty: Nuk u gjendën regjistrat.
+ filter_by_action: Filtro sipas veprimit
+ filter_by_user: Filtro sipas përdoruesit
title: Auditim regjistri
+ announcements:
+ destroyed_msg: Lajmërimi është fshirë me sukses!
+ edit:
+ title: Modifiko lajmërimin
+ empty: Nuk u gjendën lajmërimet.
+ live: Drejtpërdrejtë
+ new:
+ create: Krijo lajmërim
+ title: Lajmërimi i ri
+ published_msg: Lajmërimi u publikua me sukses!
+ title: Lajmërimet
custom_emojis:
+ assign_category: Përcakto kategori
by_domain: Përkatësi
copied_msg: Kopja vendore e emotikonëve u krijua me sukses
copy: Kopjoje
copy_failed_msg: S’u bë dot një kopje vendore e emotikoneve
+ create_new_category: Krijo kategori të re
created_msg: Emotikoni u krijua me sukses!
delete: Fshije
destroyed_msg: Emotikoni u asgjësua me sukses!
disable: Çaktivizoje
+ disabled: Pamundësuar
disabled_msg: Ai emotikon u çaktivizua me sukses
emoji: Emotikon
enable: Aktivizoje
+ enabled: Mundësuar
enabled_msg: Ai emotikon u aktivizua me sukses
image_hint: PNG deri 50KB
+ list: Listë
listed: Në listë
new:
title: Shtoni emotikon të ri vetjak
@@ -198,11 +272,14 @@ sq:
shortcode: Kod i shkurtër
shortcode_hint: Të paktën 2 shenja, vetëm shenja alfanumerike dhe nënvija
title: Emotikone vetjake
+ uncategorized: E pakategorizuar
+ unlist: Ç'listo
unlisted: Hequr prej liste
update_failed_msg: S’u përditësua dot ai emotikon
updated_msg: Emotikoni u përditësua me sukses!
upload: Ngarkoje
dashboard:
+ authorized_fetch_mode: Gjendja e sigurtë
backlog: punë të prapambetura
config: Formësim
feature_deletions: Fshirje llogarish
@@ -210,12 +287,17 @@ sq:
feature_profile_directory: Drejtori profilesh
feature_registrations: Regjistrime
feature_relay: Rele federimi
+ feature_spam_check: Kundër spam
+ feature_timeline_preview: Parashikimi kohështrirjes
features: Veçori
hidden_service: Federim me shërbime të fshehura
open_reports: raportime të hapur
+ pending_tags: hashtag në pritje për rishikim
+ pending_users: përdorues në pritje për rishikim
recent_users: Përdorues së fundi
search: Kërko tekstin e plotë
single_user_mode: Mënyrë me përdorues të vetëm
+ software: Softuerë
space: Përdorim hapësire
title: Pult
total_users: përdorues gjithsej
@@ -223,6 +305,8 @@ sq:
week_interactions: ndërveprime këtë javë
week_users_active: aktivë këtë javë
week_users_new: përdorues këtë javë
+ domain_allows:
+ undo: Largo nga lista e bardhë
domain_blocks:
add_new: Shtoni bllokim të ri përkatësie
created_msg: Bllokimi i përkatësisë tani po përpunohet
@@ -237,6 +321,8 @@ sq:
silence: Heshtoji
suspend: Pezulloje
title: Bllokim i ri përkatësie
+ private_comment: Koment privat
+ public_comment: Koment publik
reject_media: Mos prano kartela media
reject_media_hint: Heq kartela media të depozituara lokalisht dhe nuk pranon të shkarkohen të tilla në të ardhmen. Pa peshë për pezullimet
reject_reports: Hidh tej raportimet
@@ -262,11 +348,13 @@ sq:
delete: Fshije
destroyed_msg: Përkatësia email u fshi me sukses nga lista e bllokimeve
domain: Përkatësi
+ from_html: nga %{domain}
new:
create: Shtoni përkatësi
title: Zë i ri email në listë bllokimesh
title: Listë bllokimesh email-esh
instances:
+ by_domain: Domain
delivery_available: Ka shpërndarje të mundshme
known_accounts:
one: "%{count} llogari e njohur"
@@ -275,6 +363,8 @@ sq:
all: Krejt
limited: E kufizuar
title: Moderim
+ private_comment: Koment privat
+ public_comment: Koment publik
title: Federim
total_blocked_by_us: Bllokuar nga ne
total_followed_by_them: Ndjekur prej tyre
@@ -347,6 +437,9 @@ sq:
custom_css:
desc_html: Modifikojeni pamjen me CSS të nagrkuar në çdo faqe
title: CSS Vetjake
+ domain_blocks:
+ all: Për të gjithë
+ disabled: Për askend
hero:
desc_html: E shfaqur në faqen ballore. Këshillohet të paktën 600x100px. Kur nuk caktohet gjë, përdoret miniaturë e shërbyesit
title: Figurë heroi
@@ -404,13 +497,26 @@ sq:
delete: Fshije
nsfw_off: Vëri shenjë si jo rezervat
nsfw_on: Vëri shenjë si rezervat
+ deleted: Fshirë
failed_to_execute: S’u arrit të përmbushej
+ media:
+ title: Media
no_media: S’ka media
no_status_selected: S’u ndryshua ndonjë gjendje, ngaqë s’u përzgjodh ndonjë e tillë
title: Gjendje llogarish
with_media: Me media
tags:
+ context: Kontekst
+ directory: Në direktorium
+ last_active: Aktive së fundi
+ most_popular: Më e famshmja
+ most_recent: Të fundit
+ name: Hashtag
+ review: Gjendja e rishikimit
+ reviewed: Rishikuar
title: Hashtage
+ trending_right_now: Në trend tani
+ unreviewed: E parishikuar
title: Administrim
warning_presets:
add_new: Shtoni të ri
@@ -422,8 +528,17 @@ sq:
body: "%{reporter} ka raportuar %{target}"
body_remote: Dikush nga %{domain} ka raportuar %{target}
subject: Raport i ri për %{instance} (#%{id})
+ aliases:
+ add_new: Krijo shkurtesë
+ remove: Fshijë shkurtesën
+ appearance:
+ localization:
+ guide_link_text: Çdokush mund të kontribuojë.
+ sensitive_content: Përmbajtje sensitive
+ toot_layout: Pamja e cicërimës
application_mailer:
notification_preferences: Ndryshoni parapëlqime email-i
+ salutation: "%{name},"
settings: 'Ndryshoni parapëlqime email-i: %{link}'
view: 'Parje:'
view_profile: Shihni Profilin
@@ -437,6 +552,7 @@ sq:
warning: Hapni sytë me ato të dhëna. Mos ia jepni kurrë njeriu!
your_token: Token-i juaj për hyrje
auth:
+ apply_for_account: Kërko ftesë
change_password: Fjalëkalim
delete_account: Fshije llogarinë
delete_account_html: Nëse dëshironi të fshihni llogarinë tuaj, mund ta bëni që këtu. Do t’ju kërkohet ta ripohoni.
@@ -448,11 +564,18 @@ sq:
migrate_account: Kaloni në një tjetër llogari
migrate_account_html: Nëse doni ta ridrejtoni këtë llogari te një tjetër, këtë mund ta formësoni këtu.
or_log_in_with: Ose bëni hyrjen me
+ providers:
+ cas: CAS
+ saml: SAML
register: Regjistrohuni
resend_confirmation: Ridërgo udhëzime ripohimi
reset_password: Ricaktoni fjalëkalimin
security: Siguri
set_new_password: Caktoni fjalëkalim të ri
+ setup:
+ title: Rregullo
+ status:
+ account_status: Gjendja e llogarisë
authorize_follow:
already_following: E ndiqni tashmë këtë llogari
error: Mjerisht, pati një gabim gjatë kërkimit të llogarisë së largët
@@ -464,6 +587,8 @@ sq:
return: Shfaq profilin e përdoruesit
web: Kalo në web
title: Ndiq %{acct}
+ challenge:
+ confirm: Vazhdo
datetime:
distance_in_words:
about_x_hours: "%{count}o"
@@ -537,10 +662,19 @@ sq:
generic:
changes_saved_msg: Ndryshimet u ruajtën me sukses!
copy: Kopjoje
+ order_by: Rendit sipas
save_changes: Ruaji ndryshimet
validation_errors:
one: Diçka s’është ende si duhet! Ju lutemi, shqyrtoni gabimin më poshtë
other: Diçka s’është ende si duhet! Ju lutemi, shqyrtoni %{count} gabimet më poshtë
+ identity_proofs:
+ active: Aktive
+ authorize: Po, autorizoje
+ identity: Identifiko
+ inactive: Ç'aktivizo
+ publicize_checkbox: 'Dhe cicëro këtë:'
+ status: Gjendja e verifikimit
+ view_proof: Shfaq evidencë
imports:
modes:
merge: Përzieji
@@ -555,6 +689,7 @@ sq:
following: Listë ndjekjesh
muting: Listë heshtimesh
upload: Ngarkoje
+ in_memoriam_html: Në përkujtim.
invites:
delete: Çaktivizoje
expired: Ka skaduar
@@ -586,6 +721,9 @@ sq:
too_many: S’mund të bashkëngjiten më shumë se 4 kartela
migrations:
acct: emërpërdoruesi@përkatësi e llogarisë së re
+ cancel: Anulo ridrejtimin
+ proceed_with_move: Lëviz ndjekësit
+ set_redirect: Cakto ridrejtim
moderation:
title: Moderim
notification_mailer:
@@ -626,6 +764,7 @@ sq:
human:
decimal_units:
units:
+ billion: B
quadrillion: K
pagination:
newer: Më të ri
@@ -634,6 +773,18 @@ sq:
prev: I mëparshmi
preferences:
other: Tjetër
+ relationships:
+ activity: Aktivitet e llogarisë
+ dormant: Inaktive
+ followers: Ndjekësit
+ following: Të ndjekurit
+ invited: Të ftuarit
+ last_active: Së fundi aktiv
+ most_recent: Të fundit
+ moved: Lëvizur
+ mutual: Përbashkët
+ primary: Primare
+ relationship: Marrëdhënie
remote_follow:
acct: Jepni çiftin tuaj emërpërdoruesi@përkatësi prej të cilit doni që të veprohet
missing_resource: S’u gjet dot URL-ja e domosdoshme e ridrejtimit për llogarinë tuaj
@@ -659,17 +810,48 @@ sq:
activity: Veprimtaria e fundit
browser: Shfletues
browsers:
+ alipay: Alipay
+ blackberry: Blackberry
+ chrome: Chrome
+ edge: Microsoft Edge
+ electron: Electron
+ firefox: Firefox
generic: Shfletues i panjohur
+ ie: Internet Explorer
+ micro_messenger: MicroMessenger
nokia: Shfletues Nokia S40 Ovi
+ opera: Opera
+ otter: Otter
+ phantom_js: PhantomJS
+ qq: QQ Browser
+ safari: Safari
+ uc_browser: UCBrowser
+ weibo: Weibo
current_session: Sesioni i tanishëm
description: "%{browser} në %{platform}"
explanation: Këta janë shfletuesit e futur në këtë çast te llogaria juaj Mastodon.
+ ip: IP
platforms:
+ adobe_air: Adobe Air
+ android: Android
+ blackberry: Blackberry
+ chrome_os: ChromeOS
+ firefox_os: Firefox OS
+ ios: iOS
+ linux: Linux
+ mac: macOS
other: platformë e panjohur
+ windows: Windows
+ windows_mobile: Windows Mobile
+ windows_phone: Windows Phone
revoke: Shfuqizoje
revoke_success: Sesioni u shfuqizua me sukses
title: Sesione
settings:
+ account: Llogari
+ account_settings: Rregullimet e llogarisë
+ aliases: Shkurtesat e llogarisë
+ appearance: Dukja
authorized_apps: Aplikacione të autorizuara
back: Mbrapsht te Mastodon
delete: Fshirje llogarie
diff --git a/config/locales/ta.yml b/config/locales/ta.yml
index b4fc2ffac..fa4c1a87b 100644
--- a/config/locales/ta.yml
+++ b/config/locales/ta.yml
@@ -165,10 +165,47 @@ ta:
warn: எச்சரி
whitelisted: அனுமதிப்பட்டியல்
action_logs:
+ action_types:
+ change_email_user: பயனரின் மின்னஞ்சலை மாற்று
+ confirm_user: பயனரை உறுதி செய்
+ create_account_warning: எச்சரிக்கையை உருவாக்கு
+ create_announcement: அறிவிப்பை உருவாக்கு
+ create_custom_emoji: தனிப்பயனான எமோஜியை உருவாக்கு
+ create_domain_allow: கள அனுமதியை உருவாக்கு
+ create_domain_block: கள முடக்கத்தை உருவாக்கு
+ create_email_domain_block: மின்னஞ்சல் கள முடக்கத்தை உருவாக்கு
+ demote_user: பயனரைப் படியிறக்கு
+ destroy_announcement: அறிவிப்பை நீக்கு
+ destroy_custom_emoji: தனிப்பயனான எமோஜியை நீக்கு
+ destroy_domain_allow: கள அனுமதியை நீக்கு
+ destroy_domain_block: கள முடக்கத்தை நீக்கு
+ destroy_email_domain_block: மின்னஞ்சல் கள முடக்கத்தை நீக்கு
+ destroy_status: பதிவை நீக்கு
+ disable_2fa_user: 2FA-வை முடக்கு
+ disable_custom_emoji: தனிப்பயனான எமோஜியை முடக்கு
+ disable_user: பயனரை முடக்கு
+ enable_custom_emoji: தனிப்பயனான எமோஜியை அனுமதி
+ enable_user: பயனரை அனுமதி
+ memorialize_account: கணக்கை நினைவிடம் ஆக்கு
+ promote_user: பயனரைப் பதவி உயர்த்து
+ remove_avatar_user: சுயவிவரப் படத்தை நீக்கு
+ reopen_report: அறிக்கையை மீண்டும் திற
+ reset_password_user: கடவுச்சொல்லை மீட்டமை
+ resolve_report: புகாரை சரிசெய்
+ silence_account: கணக்கை அமைதியாக்கு
+ suspend_account: கணக்கை இடைநீக்கு
+ unsilence_account: கணக்கிலிருந்து மீண்டும் அறிவிப்பைப் பெறு
+ unsuspend_account: கணக்கின் இடைநீக்கத்தைத் திரும்பப்பெறு
+ update_announcement: அறிவிப்பைப் புதுப்பி
+ update_custom_emoji: தனிப்பயனான எமோஜியைப் புதுப்பி
+ update_status: பதிவைப் புதுப்பி
actions:
create_announcement: "%{name} %{target} என்றொரு புதிய அறிவிப்பை உருவாக்கியிருக்கிறார்"
destroy_announcement: "%{name} %{target} அறிவிப்பை நீக்கிவிட்டார்"
update_announcement: "%{name} %{target} அறிவிப்பைப் புதுப்பித்துள்ளார்"
+ empty: குறிப்புகள் எவையும் காணப்படவில்லை.
+ filter_by_action: செயலின் அடிப்படையில் வடிகட்டு
+ filter_by_user: பயனரின் அடிப்படையில் வடிகட்டு
announcements:
destroyed_msg: அறிவிப்பு வெற்றிகரமாக நீக்கப்பட்டது!
edit:
diff --git a/config/locales/th.yml b/config/locales/th.yml
index 10f25549b..8215f2259 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -77,6 +77,7 @@ th:
delete: ลบ
destroyed_msg: ทำลายหมายเหตุการควบคุมสำเร็จ!
accounts:
+ add_email_domain_block: ขึ้นบัญชีดำโดเมนอีเมล
approve: อนุมัติ
approve_all: อนุมัติทั้งหมด
are_you_sure: คุณแน่ใจหรือไม่?
@@ -154,6 +155,7 @@ th:
staff: พนักงาน
user: ผู้ใช้
search: ค้นหา
+ search_same_email_domain: ผู้ใช้อื่น ๆ ที่มีโดเมนอีเมลเดียวกัน
search_same_ip: ผู้ใช้อื่น ๆ ที่มี IP เดียวกัน
shared_inbox_url: URL กล่องขาเข้าที่แบ่งปัน
show:
@@ -288,6 +290,7 @@ th:
overwrite: เขียนทับ
shortcode: รหัสย่อ
title: อีโมจิที่กำหนดเอง
+ uncategorized: ไม่มีหมวดหมู่
unlist: เลิกแสดงรายการ
unlisted: ไม่อยู่ในรายการ
update_failed_msg: ไม่สามารถอัปเดตอีโมจินั้น
@@ -305,6 +308,7 @@ th:
feature_spam_check: การป้องกันสแปม
feature_timeline_preview: ตัวอย่างเส้นเวลา
features: คุณลักษณะ
+ hidden_service: การติดต่อกับภายนอกกับบริการที่ซ่อนอยู่
open_reports: รายงานที่เปิด
pending_tags: แฮชแท็กที่กำลังรอการตรวจทาน
pending_users: ผู้ใช้ที่กำลังรอการตรวจทาน
@@ -462,6 +466,7 @@ th:
mascot:
title: ภาพมาสคอต
peers_api_enabled:
+ desc_html: ชื่อโดเมนที่เซิร์ฟเวอร์นี้ได้พบในเฟดิเวิร์ส
title: เผยแพร่รายการเซิร์ฟเวอร์ที่ค้นพบ
profile_directory:
desc_html: อนุญาตให้ผู้ใช้สามารถค้นพบได้
@@ -503,6 +508,9 @@ th:
title: การตั้งค่าไซต์
trends:
title: แฮชแท็กที่กำลังนิยม
+ site_uploads:
+ delete: ลบไฟล์ที่อัปโหลด
+ destroyed_msg: ลบการอัปโหลดไซต์สำเร็จ!
statuses:
back_to_account: กลับไปที่หน้าบัญชี
batch:
@@ -528,6 +536,7 @@ th:
trending_right_now: กำลังนิยม
unique_uses_today: "%{count} การโพสต์วันนี้"
unreviewed: ยังไม่ได้ตรวจทาน
+ updated_msg: อัปเดตการตั้งค่าแฮชแท็กสำเร็จ
title: การดูแล
warning_presets:
add_new: เพิ่มใหม่
@@ -541,6 +550,7 @@ th:
subject: รายงานใหม่สำหรับ %{instance} (#%{id})
aliases:
add_new: สร้างนามแฝง
+ empty: คุณไม่มีนามแฝง
remove: เลิกเชื่อมโยงนามแฝง
appearance:
advanced_web_interface: ส่วนติดต่อเว็บขั้นสูง
@@ -597,6 +607,7 @@ th:
follow_request: 'คุณได้ส่งคำขอติดตามไปยัง:'
following: 'สำเร็จ! คุณกำลังติดตาม:'
post_follow:
+ close: หรือคุณสามารถปิดหน้าต่างนี้
return: แสดงโปรไฟล์ของผู้ใช้
web: ไปยังเว็บ
title: ติดตาม %{acct}
@@ -623,6 +634,7 @@ th:
x_seconds: "%{count} วินาที"
deletes:
challenge_not_passed: ข้อมูลที่คุณป้อนไม่ถูกต้อง
+ confirm_password: ป้อนรหัสผ่านปัจจุบันของคุณเพื่อยืนยันตัวตนของคุณ
confirm_username: ป้อนชื่อผู้ใช้ของคุณเพื่อยืนยันกระบวนงาน
proceed: ลบบัญชี
success_msg: ลบบัญชีของคุณสำเร็จ
@@ -631,6 +643,8 @@ th:
email_change_html: คุณสามารถ เปลี่ยนที่อยู่อีเมลของคุณ โดยไม่ต้องลบบัญชีของคุณ
email_reconfirmation_html: หากคุณไม่ได้รับอีเมลยืนยัน คุณสามารถ ขออีเมลอีกครั้ง
more_details_html: สำหรับรายละเอียดเพิ่มเติม ดู นโยบายความเป็นส่วนตัว
+ username_available: ชื่อผู้ใช้ของคุณจะพร้อมใช้งานอีกครั้ง
+ username_unavailable: ชื่อผู้ใช้ของคุณจะยังคงไม่พร้อมใช้งาน
directories:
directory: ไดเรกทอรีโปรไฟล์
explanation: ค้นพบผู้ใช้ตามความสนใจของเขา
@@ -642,15 +656,16 @@ th:
'403': คุณไม่มีสิทธิอนุญาตเพื่อดูหน้านี้
'404': หน้าที่คุณกำลังมองหาไม่ได้อยู่ที่นี่
'406': This page is not available in the requested format.
- '410': หน้าที่คุณกำลังมองหาไม่มีอยู่ที่นี่อีกต่อไป
+ '410': ไม่มีหน้าที่คุณกำลังมองหาอยู่ที่นี่อีกต่อไป
'422':
content: การตรวจสอบความปลอดภัยล้มเหลว คุณกำลังปิดกั้นคุกกี้หรือไม่?
title: การตรวจสอบความปลอดภัยล้มเหลว
- '429': Too many requests
+ '429': คำขอมากเกินไป
'500':
title: หน้านี้ไม่ถูกต้อง
'503': The page could not be served due to a temporary server failure.
existing_username_validator:
+ not_found: ไม่พบผู้ใช้ในเซิร์ฟเวอร์ที่มีชื่อผู้ใช้นั้น
not_found_multiple: ไม่พบ %{usernames}
exports:
archive_takeout:
@@ -698,13 +713,18 @@ th:
identity_proofs:
active: ใช้งานอยู่
authorize: ใช่ อนุญาต
+ identity: ตัวตน
inactive: ไม่ได้ใช้งาน
publicize_checkbox: 'และโพสต์สิ่งนี้:'
+ remove: เอาการพิสูจน์ออกจากบัญชี
+ removed: เอาการพิสูจน์ออกจากบัญชีสำเร็จ
status: สถานะการตรวจสอบ
imports:
modes:
merge: ผสาน
+ merge_long: เก็บระเบียนที่มีอยู่และเพิ่มระเบียนใหม่
overwrite: เขียนทับ
+ overwrite_long: แทนที่ระเบียนปัจจุบันด้วยระเบียนใหม่
types:
blocking: รายการปิดกั้น
domain_blocking: รายการปิดกั้นโดเมน
@@ -738,6 +758,7 @@ th:
migrations:
acct: ย้ายไปยัง
cancel: ยกเลิกการเปลี่ยนเส้นทาง
+ cancelled_msg: ยกเลิกการเปลี่ยนเส้นทางสำเร็จ
errors:
move_to_self: ไม่สามารถเป็นบัญชีปัจจุบัน
not_found: ไม่พบ
@@ -751,6 +772,10 @@ th:
digest:
action: ดูการแจ้งเตือนทั้งหมด
mention: "%{name} ได้กล่าวถึงคุณใน:"
+ new_followers_summary:
+ other: นอกจากนี้คุณยังได้รับ %{count} ผู้ติดตามใหม่ขณะที่ไม่อยู่! มหัศจรรย์!
+ subject:
+ other: "%{count} การแจ้งเตือนใหม่นับตั้งแต่การเยี่ยมชมล่าสุดของคุณ \U0001F418"
title: เมื่อคุณไม่อยู่...
favourite:
body: 'สถานะของคุณได้รับการชื่นชอบโดย %{name}:'
@@ -776,6 +801,7 @@ th:
title: การดันใหม่
notifications:
email_events: เหตุการณ์สำหรับการแจ้งเตือนอีเมล
+ email_events_hint: 'เลือกเหตุการณ์ที่คุณต้องการรับการแจ้งเตือน:'
other_settings: การตั้งค่าการแจ้งเตือนอื่น ๆ
pagination:
newer: ใหม่กว่า
@@ -787,6 +813,7 @@ th:
errors:
already_voted: คุณได้ลงคะแนนในการสำรวจความคิดเห็นนี้อยู่แล้ว
duplicate_options: มีรายการที่ซ้ำกัน
+ invalid_choice: ไม่มีตัวเลือกการลงคะแนนที่เลือกอยู่
too_few_options: ต้องมีมากกว่าหนึ่งรายการ
too_many_options: ไม่สามารถมีมากกว่า %{max} รายการ
preferences:
@@ -798,6 +825,7 @@ th:
unrecognized_emoji: ไม่ใช่อีโมจิที่รู้จัก
relationships:
activity: กิจกรรมบัญชี
+ dormant: ไม่เคลื่อนไหว
followers: ผู้ติดตาม
following: กำลังติดตาม
invited: เชิญแล้ว
@@ -870,6 +898,7 @@ th:
settings:
account: บัญชี
account_settings: การตั้งค่าบัญชี
+ aliases: นามแฝงบัญชี
appearance: ลักษณะที่ปรากฏ
authorized_apps: แอปที่ได้รับอนุญาต
back: กลับไปที่ Mastodon
@@ -878,6 +907,7 @@ th:
edit_profile: แก้ไขโปรไฟล์
export: การส่งออกข้อมูล
featured_tags: แฮชแท็กที่แนะนำ
+ identity_proofs: การพิสูจน์ตัวตน
import: การนำเข้า
import_and_export: การนำเข้าและการส่งออก
migrate: การโยกย้ายบัญชี
@@ -886,6 +916,8 @@ th:
profile: โปรไฟล์
relationships: การติดตามและผู้ติดตาม
two_factor_authentication: การรับรองความถูกต้องด้วยสองปัจจัย
+ spam_check:
+ spam_detected: นี่คือรายงานแบบอัตโนมัติ ตรวจพบสแปม
statuses:
attached:
description: 'แนบอยู่: %{attached}'
@@ -936,6 +968,7 @@ th:
default: "%d %b %Y, %H:%M"
month: "%b %Y"
two_factor_authentication:
+ code_hint: ป้อนรหัสที่สร้างโดยแอปตัวรับรองความถูกต้องของคุณเพื่อยืนยัน
disable: ปิดใช้งาน
enable: เปิดใช้งาน
enabled: เปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยแล้ว
@@ -957,10 +990,12 @@ th:
review_preferences_action: เปลี่ยนการกำหนดลักษณะ
subject: ยินดีต้อนรับสู่ Mastodon
tips: เคล็ดลับ
+ title: ยินดีต้อนรับ %{name}!
users:
follow_limit_reached: คุณไม่สามารถติดตามมากกว่า %{limit} คน
invalid_email: ที่อยู่อีเมลไม่ถูกต้อง
invalid_otp_token: รหัสสองปัจจัยไม่ถูกต้อง
+ seamless_external_login: คุณได้เข้าสู่ระบบผ่านบริการภายนอก ดังนั้นจึงไม่มีการตั้งค่ารหัสผ่านและอีเมล
signed_in_as: 'ลงชื่อเข้าเป็น:'
verification:
verification: การตรวจสอบ
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index 1dcf9ccea..41c39ba1f 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -193,6 +193,12 @@ tr:
web: Web
whitelisted: Beyaz listede
action_logs:
+ action_types:
+ change_email_user: Kullanıcı için e-postayı değiştir
+ confirm_user: Kullanıcıyı Onayla
+ create_announcement: Duyuru Oluştur
+ create_custom_emoji: Özel İfade Oluştur
+ destroy_status: Durumu Sil
actions:
assigned_to_self_report: "%{name} kendilerine %{target} adlı raporu verdi"
change_email_user: "%{name}, %{target} kullanıcısının e-posta adresini değiştirdi"
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index 3df83e756..6ff21b068 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -100,6 +100,7 @@ uk:
delete: Видалити
destroyed_msg: Нотатку модератора успішно видалено!
accounts:
+ add_email_domain_block: Додати поштовий домен до чорного списку
approve: Схвалити
approve_all: Схвалити всіх
are_you_sure: Ви впевнені?
@@ -180,11 +181,12 @@ uk:
staff: Персонал
user: Користувач
search: Пошук
+ search_same_email_domain: Інші користувачі з тим самим поштовим доменом
search_same_ip: Інші користувачі з тим самим IP
shared_inbox_url: URL спільного вхідного кошика
show:
- created_reports: Скарги, створені цим аккаунтом
- targeted_reports: Скарги щодо цього аккаунту
+ created_reports: Скарги, створені цим акаунтом
+ targeted_reports: Скарги щодо цього акаунту
silence: Глушення
silenced: Заглушені
statuses: Статуси
@@ -201,6 +203,38 @@ uk:
web: Веб
whitelisted: У білому списку
action_logs:
+ action_types:
+ change_email_user: Змінити електронну пошту для користувача
+ confirm_user: Підтвердити користувача
+ create_account_warning: Створити попередження
+ create_announcement: Створити оголошення
+ create_custom_emoji: Створити користувацьке емодзі
+ create_domain_allow: Створити дозвіл на домен
+ create_domain_block: Створити блокування домену
+ create_email_domain_block: Створити блокування поштового домену
+ demote_user: Понизити користувача
+ destroy_announcement: Видалити оголошення
+ destroy_custom_emoji: Видалити користувацьке емодзі
+ destroy_domain_allow: Видалити дозвіл на домен
+ destroy_domain_block: Видалити блокування домену
+ destroy_email_domain_block: Видалити блокування поштового домену
+ destroy_status: Видалити пост
+ disable_custom_emoji: Вимкнути користувацькі емодзі
+ disable_user: Відключити користувача
+ enable_custom_emoji: Увімкнути користувацькі емодзі
+ enable_user: Активувати користувача
+ promote_user: Підвищити користувача
+ remove_avatar_user: Видалити аватар
+ reopen_report: Перевідкрити скаргу
+ reset_password_user: Скинути пароль
+ resolve_report: Розв'язати скаргу
+ silence_account: Заглушити обліковий запис
+ suspend_account: Призупинити обліковий запис
+ unsilence_account: Розглушити обліковий запис
+ unsuspend_account: Розморозити обліковий запис
+ update_announcement: Оновити оголошення
+ update_custom_emoji: Оновити користувацькі емодзі
+ update_status: Оновити статус
actions:
assigned_to_self_report: "%{name} призначив(-ла) скаргу %{target} на себе"
change_email_user: "%{name} змінив(-ла) поштову адресу користувача %{target}"
@@ -230,14 +264,17 @@ uk:
reset_password_user: "%{name} скинув(-ла) пароль користувача %{target}"
resolve_report: "%{name} розв'язав(-ла) скаргу %{target}"
silence_account: "%{name} заглушив(-ла) обліковий запис %{target}"
- suspend_account: "%{name} заморозив обліковий запис користувача %{target}"
+ suspend_account: "%{name} заморозив(-ла) обліковий запис %{target}"
unassigned_report: "%{name} зняв(-ла) призначення скарги %{target}"
unsilence_account: "%{name} розглушив(-ла) обліковий запис %{target}"
- unsuspend_account: "%{name} розморозив обліковий запис користувача %{target}"
+ unsuspend_account: "%{name} розморозив(-ла) обліковий запис %{target}"
update_announcement: "%{name} оновив оголошення %{target}"
update_custom_emoji: "%{name} оновив(-ла) емодзі %{target}"
update_status: "%{name} змінив(-ла) статус користуача %{target}"
deleted_status: "(видалений статус)"
+ empty: Не знайдено жодного журналу.
+ filter_by_action: Фільтрувати за дією
+ filter_by_user: Фільтрувати за користувачем
title: Журнал подій
announcements:
destroyed_msg: Оголошення успішно видалено!
@@ -368,6 +405,7 @@ uk:
destroyed_msg: Успішно видалено поштовий домен з чорного списку
domain: Домен
empty: Ніякі e-mail домени не блокуються.
+ from_html: з %{domain}
new:
create: Додати домен
title: Нове блокування поштового домену
@@ -555,6 +593,8 @@ uk:
trends:
desc_html: Відображати розглянуті хештеґи, які популярні зараз
title: Популярні хештеги
+ site_uploads:
+ delete: Видалити завантажений файл
statuses:
back_to_account: Назад до сторінки облікового запису
batch:
@@ -608,6 +648,7 @@ uk:
add_new: Створити псевдонім
created_msg: Новий псевдонім успішно створено. Тепер ви можете починати переміщення зі старого облікового запису.
deleted_msg: Псевдонім успішно видалено. Переміщення з того облікового запису до цього більше не можливе.
+ empty: У вас немає псевдонімів.
hint_html: Якщо ви збираєтеся мігрувати з іншого облікового запису на цей, ви можете налаштувати псевдонім, що потрібно для перенесення передплатників зі старою облікового запису. Ця дія саме по собі нешкідливо і оборотно. Міграція облікового запису починається з старого облікового запису.
remove: Від'єднати псевдонім
appearance:
@@ -620,7 +661,7 @@ uk:
body: Mastodon перекладено волонтерами.
guide_link: https://uk.crowdin.com/project/mastodon
guide_link_text: Кожен може взяти участь.
- sensitive_content: Дражливий вміст
+ sensitive_content: Дражливий зміст
toot_layout: Зовнішній вигляд дмухів
application_mailer:
notification_preferences: Змінити налаштування e-mail
@@ -678,6 +719,7 @@ uk:
trouble_logging_in: Проблема під час входу?
authorize_follow:
already_following: Ви вже слідкуєте за цим обліковим записом
+ already_requested: Ви вже надіслали запит на підписку до цього облікового запису
error: На жаль, під час пошуку віддаленого облікового запису сталася помилка
follow: Підписатися
follow_request: 'Вам надіслали запит на підписку:'
@@ -823,6 +865,8 @@ uk:
inactive: Неактивний
publicize_checkbox: 'Та дмухнути це:'
publicize_toot: 'Це доведено! Я таки %{username} з %{service}: %{url}'
+ remove: Видалення підтвердження з облікового запису
+ removed: Підтвердження видалено з облікового запису
status: Стан перевірки
view_proof: Переглянути доказ
imports:
@@ -870,6 +914,7 @@ uk:
media_attachments:
validations:
images_and_video: Не можна додати відео до статусу з зображеннями
+ not_ready: Не можна прикріпити файли, оброблення яких ще не закінчилося. Спробуйте ще раз через хвилину!
too_many: Не можна додати більше 4 файлів
migrations:
acct: username@domain нового облікового запису
@@ -1101,6 +1146,8 @@ uk:
many: 'заборонених хештеґів: %{tags}'
one: 'заборонений хештеґ: %{tags}'
other: 'заборонених хештеґів: %{tags}'
+ errors:
+ in_reply_not_found: Статуса, на який ви намагаєтеся відповісти, не існує.
language_detection: Автоматично визначати мову
open_in_web: Відкрити у вебі
over_character_limit: перевищено ліміт символів (%{max})
@@ -1121,7 +1168,7 @@ uk:
one: "%{count} голос"
other: "%{count} голоси"
vote: Проголосувати
- show_more: Детальніше
+ show_more: Розгорнути
show_thread: Відкрити обговорення
sign_in_to_participate: Увійдіть, щоб брати участь у бесіді
title: '%{name}: "%{quote}"'
@@ -1135,7 +1182,7 @@ uk:
stream_entries:
pinned: Закріплений пост
reblogged: передмухнув(-ла)
- sensitive_content: Дражливий контент
+ sensitive_content: Дражливий зміст
tags:
does_not_match_previous_name: не збігається з попереднім ім'ям
terms:
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 33f25eaa6..be116f6e7 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -138,7 +138,7 @@ zh-CN:
silenced: 已隐藏
suspended: 已封禁
title: 帐户状态
- moderation_notes: 管理备忘
+ moderation_notes: 管理员备注
most_recent_activity: 最后一次活跃的时间
most_recent_ip: 最后一次活跃的 IP 地址
no_account_selected: 因为没有帐号被选择,所以没有更改
@@ -166,7 +166,7 @@ zh-CN:
roles:
admin: 管理员
moderator: 监察员
- staff: 管理人员
+ staff: 站务人员
user: 普通用户
search: 搜索
search_same_email_domain: 其他具有相同电子邮箱域名的用户
@@ -191,6 +191,42 @@ zh-CN:
web: 站内页面
whitelisted: 已加入白名单
action_logs:
+ action_types:
+ assigned_to_self_report: 指派举报
+ change_email_user: 为用户修改邮箱地址
+ confirm_user: 确认用户
+ create_account_warning: 创建警告
+ create_announcement: 创建公告
+ create_custom_emoji: 创建自定义表情符号
+ create_domain_allow: 允许新域名
+ create_domain_block: 封禁新域名
+ create_email_domain_block: 封禁电子邮箱域名
+ demote_user: 给用户降职
+ destroy_announcement: 删除公告
+ destroy_custom_emoji: 删除自定义表情符号
+ destroy_domain_allow: 解除域名允许
+ destroy_domain_block: 解除域名封禁
+ destroy_email_domain_block: 解除电子邮箱域名封禁
+ destroy_status: 删除嘟文
+ disable_2fa_user: 禁用双重认证
+ disable_custom_emoji: 禁用自定义表情符号
+ disable_user: 禁用用户
+ enable_custom_emoji: 启用自定义表情符号
+ enable_user: 启用用户
+ memorialize_account: 将账户设为追悼模式
+ promote_user: 给用户升任
+ remove_avatar_user: 移除头像
+ reopen_report: 重开举报
+ reset_password_user: 重置密码
+ resolve_report: 处理举报
+ silence_account: 隐藏用户
+ suspend_account: 封禁用户
+ unassigned_report: 取消举报的指派
+ unsilence_account: 解除账号隐藏
+ unsuspend_account: 解除账号封禁
+ update_announcement: 更新公告
+ update_custom_emoji: 更新自定义表情符号
+ update_status: 更新嘟文
actions:
assigned_to_self_report: "%{name} 接管了举报 %{target}"
change_email_user: "%{name} 更改了用户 %{target} 的电子邮件地址"
@@ -228,6 +264,9 @@ zh-CN:
update_custom_emoji: "%{name} 更新了自定义表情 %{target}"
update_status: "%{name} 刷新了 %{target} 的嘟文"
deleted_status: "(嘟文已删除)"
+ empty: 没有找到日志
+ filter_by_action: 根据行为过滤
+ filter_by_user: 根据用户过滤
title: 运营日志
announcements:
destroyed_msg: 公告已删除!
@@ -284,7 +323,7 @@ zh-CN:
feature_invites: 邀请链接
feature_profile_directory: 用户目录
feature_registrations: 公开注册
- feature_relay: 中继服务器
+ feature_relay: 联邦中继站
feature_spam_check: 反垃圾
feature_timeline_preview: 时间轴预览
features: 功能
@@ -362,7 +401,7 @@ zh-CN:
title: 电子邮件域名屏蔽
instances:
by_domain: 域名
- delivery_available: 无法投递
+ delivery_available: 可投递
known_accounts:
other: "%{count} 个已知帐户"
moderation:
@@ -390,21 +429,21 @@ zh-CN:
relationships:
title: "%{acct} 的关系"
relays:
- add_new: 订阅新的中继
+ add_new: 订阅新的中继站
delete: 删除
description_html: "中继服务器是一个信息统合服务器,各服务器可以通过订阅中继服务器和向中继服务器推送信息来交换大量公开嘟文。它可以帮助中小型服务器发现联邦宇宙中的其他服务器的内容,而无需本站用户手动关注其他远程服务器上的用户。"
disable: 禁用
disabled: 已禁用
enable: 启用
- enable_hint: 启用此功能后,你的实例会订阅此中继的所有公开嘟文,并同时向其推送本服务器的公开嘟文。
+ enable_hint: 启用此功能后,你的实例会订阅此中继站的所有公开嘟文,并同时向其推送本服务器的公开嘟文。
enabled: 已启用
- inbox_url: 中继 URL
- pending: 等待中继确认
+ inbox_url: 中继站 URL
+ pending: 等待中继站的确认
save_and_enable: 保存并启用
setup: 设置中继连接
signatures_not_enabled: 安全模式或白名单模式启用时,中继将不会正常工作
status: 状态
- title: 中继
+ title: 中继站
report_notes:
created_msg: 举报记录建立成功!
destroyed_msg: 举报记录删除成功!
@@ -588,6 +627,7 @@ zh-CN:
add_new: 创建别名
created_msg: 成功创建了一个新别名。您现在可以从旧账户开始迁移了。
deleted_msg: 成功移除别名。已经无法从该帐户移动到此帐户了。
+ empty: 你没有设置别名
hint_html: 如果你想把另一个帐号迁移到这里,你可以先在这里创建一个别名。如果你想把关注者迁移过来,这一步是必须的。设置别名的操作时无害而且可以恢复的。帐号迁移的操作会从旧帐号开始。
remove: 取消关联别名
appearance:
@@ -801,6 +841,8 @@ zh-CN:
inactive: 失效
publicize_checkbox: 并发一条这样的嘟文:
publicize_toot: '证明完毕!我是 %{service} 上的 %{username}: %{url}'
+ remove: 从帐户中移除凭据
+ removed: 成功从帐户中删除凭据
status: 验证状态
view_proof: 查看证明
imports:
diff --git a/config/pghero.yml b/config/pghero.yml
index 244245d0d..84d0d7eef 100644
--- a/config/pghero.yml
+++ b/config/pghero.yml
@@ -38,4 +38,4 @@ databases:
# aws_secret_access_key: ...
# aws_region: us-east-1
-override_csp: true
+override_csp: false
diff --git a/config/routes.rb b/config/routes.rb
index fa6639138..920a48fe7 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -130,7 +130,7 @@ Rails.application.routes.draw do
resource :confirmation, only: [:new, :create]
end
- resources :identity_proofs, only: [:index, :show, :new, :create, :update]
+ resources :identity_proofs, only: [:index, :new, :create, :destroy]
resources :applications, except: [:edit] do
member do
diff --git a/db/migrate/20171125031751_add_invite_id_to_users.rb b/db/migrate/20171125031751_add_invite_id_to_users.rb
index 16829f866..9cfb0c542 100644
--- a/db/migrate/20171125031751_add_invite_id_to_users.rb
+++ b/db/migrate/20171125031751_add_invite_id_to_users.rb
@@ -1,5 +1,5 @@
class AddInviteIdToUsers < ActiveRecord::Migration[5.1]
def change
- add_reference :users, :invite, null: true, default: nil, foreign_key: { on_delete: :nullify }, index: false
+ safety_assured { add_reference :users, :invite, null: true, default: nil, foreign_key: { on_delete: :nullify }, index: false }
end
end
diff --git a/db/migrate/20180402031200_add_assigned_account_id_to_reports.rb b/db/migrate/20180402031200_add_assigned_account_id_to_reports.rb
index 0456839c4..e2d1371d2 100644
--- a/db/migrate/20180402031200_add_assigned_account_id_to_reports.rb
+++ b/db/migrate/20180402031200_add_assigned_account_id_to_reports.rb
@@ -1,5 +1,5 @@
class AddAssignedAccountIdToReports < ActiveRecord::Migration[5.1]
def change
- add_reference :reports, :assigned_account, null: true, default: nil, foreign_key: { on_delete: :nullify, to_table: :accounts }, index: false
+ safety_assured { add_reference :reports, :assigned_account, null: true, default: nil, foreign_key: { on_delete: :nullify, to_table: :accounts }, index: false }
end
end
diff --git a/db/migrate/20180510214435_add_access_token_id_to_web_push_subscriptions.rb b/db/migrate/20180510214435_add_access_token_id_to_web_push_subscriptions.rb
index 94ef8e0f5..f60716532 100644
--- a/db/migrate/20180510214435_add_access_token_id_to_web_push_subscriptions.rb
+++ b/db/migrate/20180510214435_add_access_token_id_to_web_push_subscriptions.rb
@@ -1,6 +1,8 @@
class AddAccessTokenIdToWebPushSubscriptions < ActiveRecord::Migration[5.2]
def change
- add_reference :web_push_subscriptions, :access_token, null: true, default: nil, foreign_key: { on_delete: :cascade, to_table: :oauth_access_tokens }, index: false
- add_reference :web_push_subscriptions, :user, null: true, default: nil, foreign_key: { on_delete: :cascade }, index: false
+ safety_assured do
+ add_reference :web_push_subscriptions, :access_token, null: true, default: nil, foreign_key: { on_delete: :cascade, to_table: :oauth_access_tokens }, index: false
+ add_reference :web_push_subscriptions, :user, null: true, default: nil, foreign_key: { on_delete: :cascade }, index: false
+ end
end
end
diff --git a/db/migrate/20181219235220_add_created_by_application_id_to_users.rb b/db/migrate/20181219235220_add_created_by_application_id_to_users.rb
index 17ce900af..81c9237e8 100644
--- a/db/migrate/20181219235220_add_created_by_application_id_to_users.rb
+++ b/db/migrate/20181219235220_add_created_by_application_id_to_users.rb
@@ -2,7 +2,7 @@ class AddCreatedByApplicationIdToUsers < ActiveRecord::Migration[5.2]
disable_ddl_transaction!
def change
- add_reference :users, :created_by_application, foreign_key: { to_table: 'oauth_applications', on_delete: :nullify }, index: false
+ safety_assured { add_reference :users, :created_by_application, foreign_key: { to_table: 'oauth_applications', on_delete: :nullify }, index: false }
add_index :users, :created_by_application_id, algorithm: :concurrently
end
end
diff --git a/db/migrate/20190103124754_add_scheduled_status_id_to_media_attachments.rb b/db/migrate/20190103124754_add_scheduled_status_id_to_media_attachments.rb
index 6f6cf2351..7d904af60 100644
--- a/db/migrate/20190103124754_add_scheduled_status_id_to_media_attachments.rb
+++ b/db/migrate/20190103124754_add_scheduled_status_id_to_media_attachments.rb
@@ -2,7 +2,7 @@ class AddScheduledStatusIdToMediaAttachments < ActiveRecord::Migration[5.2]
disable_ddl_transaction!
def change
- add_reference :media_attachments, :scheduled_status, foreign_key: { on_delete: :nullify }, index: false
+ safety_assured { add_reference :media_attachments, :scheduled_status, foreign_key: { on_delete: :nullify }, index: false }
add_index :media_attachments, :scheduled_status_id, algorithm: :concurrently
end
end
diff --git a/db/migrate/20200312185443_add_parent_id_to_email_domain_blocks.rb b/db/migrate/20200312185443_add_parent_id_to_email_domain_blocks.rb
index 03915040c..54ca3b87c 100644
--- a/db/migrate/20200312185443_add_parent_id_to_email_domain_blocks.rb
+++ b/db/migrate/20200312185443_add_parent_id_to_email_domain_blocks.rb
@@ -1,5 +1,5 @@
class AddParentIdToEmailDomainBlocks < ActiveRecord::Migration[5.2]
def change
- add_reference :email_domain_blocks, :parent, null: true, default: nil, foreign_key: { on_delete: :cascade, to_table: :email_domain_blocks }, index: false
+ safety_assured { add_reference :email_domain_blocks, :parent, null: true, default: nil, foreign_key: { on_delete: :cascade, to_table: :email_domain_blocks }, index: false }
end
end
diff --git a/db/migrate/20200417125749_add_storage_schema_version.rb b/db/migrate/20200417125749_add_storage_schema_version.rb
new file mode 100644
index 000000000..7438f97ba
--- /dev/null
+++ b/db/migrate/20200417125749_add_storage_schema_version.rb
@@ -0,0 +1,9 @@
+class AddStorageSchemaVersion < ActiveRecord::Migration[5.2]
+ def change
+ add_column :preview_cards, :image_storage_schema_version, :integer
+ add_column :accounts, :avatar_storage_schema_version, :integer
+ add_column :accounts, :header_storage_schema_version, :integer
+ add_column :media_attachments, :file_storage_schema_version, :integer
+ add_column :custom_emojis, :image_storage_schema_version, :integer
+ end
+end
diff --git a/db/migrate/20200508212852_reset_unique_jobs_locks.rb b/db/migrate/20200508212852_reset_unique_jobs_locks.rb
new file mode 100644
index 000000000..3ffdeb0aa
--- /dev/null
+++ b/db/migrate/20200508212852_reset_unique_jobs_locks.rb
@@ -0,0 +1,12 @@
+class ResetUniqueJobsLocks < ActiveRecord::Migration[5.2]
+ disable_ddl_transaction!
+
+ def up
+ # We do this to clean up unique job digests that were not properly
+ # disposed of prior to https://github.com/tootsuite/mastodon/pull/13361
+
+ SidekiqUniqueJobs::Digests.delete_by_pattern('*', count: SidekiqUniqueJobs::Digests.count)
+ end
+
+ def down; end
+end
diff --git a/db/migrate/20200510110808_reset_web_app_secret.rb b/db/migrate/20200510110808_reset_web_app_secret.rb
new file mode 100644
index 000000000..b274844c5
--- /dev/null
+++ b/db/migrate/20200510110808_reset_web_app_secret.rb
@@ -0,0 +1,15 @@
+class ResetWebAppSecret < ActiveRecord::Migration[5.2]
+ disable_ddl_transaction!
+
+ def up
+ web_app = Doorkeeper::Application.find_by(superapp: true)
+
+ return if web_app.nil?
+
+ web_app.renew_secret
+ web_app.save!
+ end
+
+ def down
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 54e81bd3f..31f0c96bc 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: 2020_04_07_202420) do
+ActiveRecord::Schema.define(version: 2020_05_10_110808) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -172,6 +172,8 @@ ActiveRecord::Schema.define(version: 2020_04_07_202420) do
t.datetime "suspended_at"
t.integer "trust_level"
t.boolean "hide_collections"
+ t.integer "avatar_storage_schema_version"
+ t.integer "header_storage_schema_version"
t.index "(((setweight(to_tsvector('simple'::regconfig, (display_name)::text), 'A'::\"char\") || setweight(to_tsvector('simple'::regconfig, (username)::text), 'B'::\"char\")) || setweight(to_tsvector('simple'::regconfig, (COALESCE(domain, ''::character varying))::text), 'C'::\"char\")))", name: "search_index", using: :gin
t.index "lower((username)::text), lower((domain)::text)", name: "index_accounts_on_username_and_domain_lower", unique: true
t.index ["moved_to_account_id"], name: "index_accounts_on_moved_to_account_id"
@@ -299,6 +301,7 @@ ActiveRecord::Schema.define(version: 2020_04_07_202420) do
t.string "image_remote_url"
t.boolean "visible_in_picker", default: true, null: false
t.bigint "category_id"
+ t.integer "image_storage_schema_version"
t.index ["shortcode", "domain"], name: "index_custom_emojis_on_shortcode_and_domain", unique: true
end
@@ -464,6 +467,7 @@ ActiveRecord::Schema.define(version: 2020_04_07_202420) do
t.bigint "scheduled_status_id"
t.string "blurhash"
t.integer "processing"
+ t.integer "file_storage_schema_version"
t.index ["account_id"], name: "index_media_attachments_on_account_id"
t.index ["scheduled_status_id"], name: "index_media_attachments_on_scheduled_status_id"
t.index ["shortcode"], name: "index_media_attachments_on_shortcode", unique: true
@@ -604,6 +608,7 @@ ActiveRecord::Schema.define(version: 2020_04_07_202420) do
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "embed_url", default: "", null: false
+ t.integer "image_storage_schema_version"
t.index ["url"], name: "index_preview_cards_on_url", unique: true
end
diff --git a/ide-helper.js b/ide-helper.js
new file mode 100644
index 000000000..9e645cb0e
--- /dev/null
+++ b/ide-helper.js
@@ -0,0 +1,12 @@
+/* global path */
+/*
+Preferences | Languages & Frameworks | JavaScript | Webpack | webpack configuration file
+jetbrains://WebStorm/settings?name=Languages+%26+Frameworks--JavaScript--Webpack
+*/
+module.exports = {
+ resolve: {
+ alias: {
+ 'mastodon': path.resolve(__dirname, 'app/javascript/mastodon'),
+ },
+ },
+};
diff --git a/lib/cli.rb b/lib/cli.rb
index 19cc5d6b5..313a36a3d 100644
--- a/lib/cli.rb
+++ b/lib/cli.rb
@@ -11,6 +11,7 @@ require_relative 'mastodon/statuses_cli'
require_relative 'mastodon/domains_cli'
require_relative 'mastodon/preview_cards_cli'
require_relative 'mastodon/cache_cli'
+require_relative 'mastodon/upgrade_cli'
require_relative 'mastodon/version'
module Mastodon
@@ -49,6 +50,9 @@ module Mastodon
desc 'cache SUBCOMMAND ...ARGS', 'Manage cache'
subcommand 'cache', Mastodon::CacheCLI
+ desc 'upgrade SUBCOMMAND ...ARGS', 'Various version upgrade utilities'
+ subcommand 'upgrade', Mastodon::UpgradeCLI
+
option :dry_run, type: :boolean
desc 'self-destruct', 'Erase the server from the federation'
long_desc <<~LONG_DESC
diff --git a/lib/mastodon/cli_helper.rb b/lib/mastodon/cli_helper.rb
index ec4d9a81e..4a20fa8d6 100644
--- a/lib/mastodon/cli_helper.rb
+++ b/lib/mastodon/cli_helper.rb
@@ -10,6 +10,10 @@ Paperclip.options[:log] = false
module Mastodon
module CLIHelper
+ def dry_run?
+ options[:dry_run]
+ end
+
def create_progress_bar(total = nil)
ProgressBar.create(total: total, format: '%c/%u |%b%i| %e')
end
diff --git a/lib/mastodon/emoji_cli.rb b/lib/mastodon/emoji_cli.rb
index dbaf12018..da8fd6a0d 100644
--- a/lib/mastodon/emoji_cli.rb
+++ b/lib/mastodon/emoji_cli.rb
@@ -23,7 +23,7 @@ module Mastodon
Existing emoji will be skipped unless the --overwrite option
is provided, in which case they will be overwritten.
- You can specifiy a --category under which the emojis will be
+ You can specify a --category under which the emojis will be
grouped together.
With the --prefix option, a prefix can be added to all
@@ -72,6 +72,48 @@ module Mastodon
say("Imported #{imported}, skipped #{skipped}, failed to import #{failed}", color(imported, skipped, failed))
end
+ option :category
+ option :overwrite, type: :boolean
+ desc 'export PATH', 'Export emoji to a TAR GZIP archive at PATH'
+ long_desc <<-LONG_DESC
+ Exports custom emoji to 'export.tar.gz' at PATH.
+
+ The --category option dumps only the specified category.
+ If this option is not specified, all emoji will be exported.
+
+ The --overwrite option will overwrite an existing archive.
+ LONG_DESC
+ def export(path)
+ exported = 0
+ category = CustomEmojiCategory.find_by(name: options[:category])
+ export_file_name = File.join(path, 'export.tar.gz')
+
+ if File.file?(export_file_name) && !options[:overwrite]
+ say("Archive already exists! Use '--overwrite' to overwrite it!")
+ exit 1
+ end
+ if category.nil? && options[:category]
+ say("Unable to find category '#{options[:category]}'!")
+ exit 1
+ end
+
+ File.open(export_file_name, 'wb') do |file|
+ Zlib::GzipWriter.wrap(file) do |gzip|
+ Gem::Package::TarWriter.new(gzip) do |tar|
+ scope = !options[:category] || category.nil? ? CustomEmoji.local : category.emojis
+ scope.find_each do |emoji|
+ say("Adding '#{emoji.shortcode}'...")
+ tar.add_file_simple(emoji.shortcode + File.extname(emoji.image_file_name), 0o644, emoji.image_file_size) do |io|
+ io.write Paperclip.io_adapters.for(emoji.image).read
+ exported += 1
+ end
+ end
+ end
+ end
+ end
+ say("Exported #{exported}")
+ end
+
option :remote_only, type: :boolean
desc 'purge', 'Remove all custom emoji'
long_desc <<-LONG_DESC
diff --git a/lib/mastodon/media_cli.rb b/lib/mastodon/media_cli.rb
index 0f211f272..2b1653335 100644
--- a/lib/mastodon/media_cli.rb
+++ b/lib/mastodon/media_cli.rb
@@ -85,7 +85,9 @@ module Mastodon
record_map = preload_records_from_mixed_objects(objects)
objects.each do |object|
- path_segments = object.key.split('/')
+ path_segments = object.key.split('/')
+ path_segments.delete('cache')
+
model_name = path_segments.first.classify
attachment_name = path_segments[1].singularize
record_id = path_segments[2..-2].join.to_i
@@ -120,8 +122,11 @@ module Mastodon
Find.find(File.join(*[root_path, prefix].compact)) do |path|
next if File.directory?(path)
- key = path.gsub("#{root_path}#{File::SEPARATOR}", '')
- path_segments = key.split(File::SEPARATOR)
+ key = path.gsub("#{root_path}#{File::SEPARATOR}", '')
+
+ path_segments = key.split(File::SEPARATOR)
+ path_segments.delete('cache')
+
model_name = path_segments.first.classify
record_id = path_segments[2..-2].join.to_i
attachment_name = path_segments[1].singularize
@@ -139,7 +144,14 @@ module Mastodon
begin
size = File.size(path)
- File.delete(path) unless options[:dry_run]
+ unless options[:dry_run]
+ File.delete(path)
+ begin
+ FileUtils.rmdir(File.dirname(path), parents: true)
+ rescue Errno::ENOTEMPTY
+ # OK
+ end
+ end
reclaimed_bytes += size
removed += 1
@@ -186,7 +198,7 @@ module Mastodon
if options[:status]
scope = MediaAttachment.where(status_id: options[:status])
elsif options[:account]
- username, domain = username.split('@')
+ username, domain = options[:account].split('@')
account = Account.find_remote(username, domain)
if account.nil?
@@ -205,7 +217,7 @@ module Mastodon
next if media_attachment.remote_url.blank? || (!options[:force] && media_attachment.file_file_name.present?)
unless options[:dry_run]
- media_attachment.reset_file!
+ media_attachment.file_remote_url = media_attachment.remote_url
media_attachment.save
end
@@ -229,10 +241,13 @@ module Mastodon
desc 'lookup URL', 'Lookup where media is displayed by passing a media URL'
def lookup(url)
- path = Addressable::URI.parse(url).path
+ path = Addressable::URI.parse(url).path
+
path_segments = path.split('/')[2..-1]
- model_name = path_segments.first.classify
- record_id = path_segments[2..-2].join.to_i
+ path_segments.delete('cache')
+
+ model_name = path_segments.first.classify
+ record_id = path_segments[2..-2].join.to_i
unless PRELOAD_MODEL_WHITELIST.include?(model_name)
say("Cannot find corresponding model: #{model_name}", :red)
@@ -276,7 +291,9 @@ module Mastodon
preload_map = Hash.new { |hash, key| hash[key] = [] }
objects.map do |object|
- segments = object.key.split('/')
+ segments = object.key.split('/')
+ segments.delete('cache')
+
model_name = segments.first.classify
record_id = segments[2..-2].join.to_i
diff --git a/lib/mastodon/upgrade_cli.rb b/lib/mastodon/upgrade_cli.rb
new file mode 100644
index 000000000..779462a4f
--- /dev/null
+++ b/lib/mastodon/upgrade_cli.rb
@@ -0,0 +1,148 @@
+# frozen_string_literal: true
+
+require_relative '../../config/boot'
+require_relative '../../config/environment'
+require_relative 'cli_helper'
+
+module Mastodon
+ class UpgradeCLI < Thor
+ include CLIHelper
+
+ def self.exit_on_failure?
+ true
+ end
+
+ CURRENT_STORAGE_SCHEMA_VERSION = 1
+
+ option :dry_run, type: :boolean, default: false
+ option :verbose, type: :boolean, default: false, aliases: [:v]
+ desc 'storage-schema', 'Upgrade storage schema of various file attachments to the latest version'
+ long_desc <<~LONG_DESC
+ Iterates over every file attachment of every record and, if its storage schema is outdated, performs the
+ necessary upgrade to the latest one. In practice this means e.g. moving files to different directories.
+
+ Will most likely take a long time.
+ LONG_DESC
+ def storage_schema
+ progress = create_progress_bar(nil)
+ dry_run = dry_run? ? ' (DRY RUN)' : ''
+ records = 0
+
+ klasses = [
+ Account,
+ CustomEmoji,
+ MediaAttachment,
+ PreviewCard,
+ ]
+
+ klasses.each do |klass|
+ attachment_names = klass.attachment_definitions.keys
+
+ klass.find_each do |record|
+ attachment_names.each do |attachment_name|
+ attachment = record.public_send(attachment_name)
+
+ next if attachment.blank? || attachment.storage_schema_version >= CURRENT_STORAGE_SCHEMA_VERSION
+
+ attachment.styles.each_key do |style|
+ case Paperclip::Attachment.default_options[:storage]
+ when :s3
+ upgrade_storage_s3(progress, attachment, style)
+ when :fog
+ upgrade_storage_fog(progress, attachment, style)
+ when :filesystem
+ upgrade_storage_filesystem(progress, attachment, style)
+ end
+
+ progress.increment
+ end
+
+ attachment.instance_write(:storage_schema_version, CURRENT_STORAGE_SCHEMA_VERSION)
+ end
+
+ if record.changed?
+ record.save unless dry_run?
+ records += 1
+ end
+ end
+ end
+
+ progress.total = progress.progress
+ progress.finish
+
+ say("Upgraded storage schema of #{records} records#{dry_run}", :green, true)
+ end
+
+ private
+
+ def upgrade_storage_s3(progress, attachment, style)
+ previous_storage_schema_version = attachment.storage_schema_version
+ object = attachment.s3_object(style)
+
+ attachment.instance_write(:storage_schema_version, CURRENT_STORAGE_SCHEMA_VERSION)
+
+ upgraded_path = attachment.path(style)
+
+ if upgraded_path != object.key && object.exists?
+ progress.log("Moving #{object.key} to #{upgraded_path}") if options[:verbose]
+
+ begin
+ object.move_to(upgraded_path) unless dry_run?
+ rescue => e
+ progress.log(pastel.red("Error processing #{object.key}: #{e}"))
+ end
+ end
+
+ # Because we move files style-by-style, it's important to restore
+ # previous version at the end. The upgrade will be recorded after
+ # all styles are updated
+ attachment.instance_write(:storage_schema_version, previous_storage_schema_version)
+ end
+
+ def upgrade_storage_fog(_progress, _attachment, _style)
+ say('The fog storage driver is not supported for this operation at this time', :red)
+ exit(1)
+ end
+
+ def upgrade_storage_filesystem(progress, attachment, style)
+ previous_storage_schema_version = attachment.storage_schema_version
+ previous_path = attachment.path(style)
+
+ attachment.instance_write(:storage_schema_version, CURRENT_STORAGE_SCHEMA_VERSION)
+
+ upgraded_path = attachment.path(style)
+
+ if upgraded_path != previous_path && File.exist?(previous_path)
+ progress.log("Moving #{previous_path} to #{upgraded_path}") if options[:verbose]
+
+ begin
+ unless dry_run?
+ FileUtils.mkdir_p(File.dirname(upgraded_path))
+ FileUtils.mv(previous_path, upgraded_path)
+
+ begin
+ FileUtils.rmdir(File.dirname(previous_path), parents: true)
+ rescue Errno::ENOTEMPTY
+ # OK
+ end
+ end
+ rescue => e
+ progress.log(pastel.red("Error processing #{previous_path}: #{e}"))
+
+ unless dry_run?
+ begin
+ FileUtils.rmdir(File.dirname(upgraded_path), parents: true)
+ rescue Errno::ENOTEMPTY
+ # OK
+ end
+ end
+ end
+ end
+
+ # Because we move files style-by-style, it's important to restore
+ # previous version at the end. The upgrade will be recorded after
+ # all styles are updated
+ attachment.instance_write(:storage_schema_version, previous_storage_schema_version)
+ end
+ end
+end
diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb
index 00ac7753f..f73b8805a 100644
--- a/lib/mastodon/version.rb
+++ b/lib/mastodon/version.rb
@@ -13,7 +13,7 @@ module Mastodon
end
def patch
- 3
+ 4
end
def flags
diff --git a/lib/paperclip/attachment_extensions.rb b/lib/paperclip/attachment_extensions.rb
index ce5780557..f3e51dbd3 100644
--- a/lib/paperclip/attachment_extensions.rb
+++ b/lib/paperclip/attachment_extensions.rb
@@ -14,6 +14,15 @@ module Paperclip
end
end
+ def storage_schema_version
+ instance_read(:storage_schema_version) || 0
+ end
+
+ def assign_attributes
+ super
+ instance_write(:storage_schema_version, 1)
+ end
+
def variant?(other_filename)
return true if original_filename == other_filename
return false if original_filename.nil?
diff --git a/package.json b/package.json
index d3c3e195b..44f810b98 100644
--- a/package.json
+++ b/package.json
@@ -59,17 +59,17 @@
},
"private": true,
"dependencies": {
- "@babel/core": "^7.9.0",
+ "@babel/core": "^7.9.6",
"@babel/plugin-proposal-class-properties": "^7.8.3",
"@babel/plugin-proposal-decorators": "^7.8.3",
"@babel/plugin-transform-react-inline-elements": "^7.9.0",
"@babel/plugin-transform-runtime": "^7.9.0",
- "@babel/preset-env": "^7.9.0",
+ "@babel/preset-env": "^7.9.6",
"@babel/preset-react": "^7.9.4",
"@babel/runtime": "^7.8.4",
- "@clusterws/cws": "^0.17.3",
+ "@clusterws/cws": "^2.0.0",
"@gamestdio/websocket": "^0.3.2",
- "@rails/ujs": "^6.0.2",
+ "@rails/ujs": "^6.0.3",
"array-includes": "^3.1.1",
"arrow-key-navigation": "^1.1.0",
"autoprefixer": "^9.7.6",
@@ -77,7 +77,7 @@
"babel-loader": "^8.1.0",
"babel-plugin-lodash": "^3.3.4",
"babel-plugin-preval": "^5.0.0",
- "babel-plugin-react-intl": "^3.4.1",
+ "babel-plugin-react-intl": "^6.2.0",
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
"babel-runtime": "^6.26.0",
"blurhash": "^1.1.3",
@@ -125,7 +125,7 @@
"prop-types": "^15.5.10",
"punycode": "^2.1.0",
"react": "^16.13.1",
- "react-dom": "^16.13.0",
+ "react-dom": "^16.13.1",
"react-hotkeys": "^1.1.4",
"react-immutable-proptypes": "^2.2.0",
"react-immutable-pure-component": "^1.1.1",
@@ -156,15 +156,15 @@
"stacktrace-js": "^2.0.2",
"stringz": "^2.1.0",
"substring-trie": "^1.0.2",
- "terser-webpack-plugin": "^2.3.5",
+ "terser-webpack-plugin": "^3.0.1",
"tesseract.js": "^2.0.0-alpha.16",
"throng": "^4.0.0",
"tiny-queue": "^0.2.1",
- "uuid": "^7.0.3",
- "wavesurfer.js": "^3.3.1",
- "webpack": "^4.42.1",
+ "uuid": "^8.0.0",
+ "wavesurfer.js": "^3.3.3",
+ "webpack": "^4.43.0",
"webpack-assets-manifest": "^3.1.1",
- "webpack-bundle-analyzer": "^3.6.1",
+ "webpack-bundle-analyzer": "^3.7.0",
"webpack-cli": "^3.3.11",
"webpack-merge": "^4.2.1",
"wicg-inert": "^3.0.2"
@@ -179,10 +179,10 @@
"eslint-plugin-jsx-a11y": "~6.2.3",
"eslint-plugin-promise": "~4.2.1",
"eslint-plugin-react": "~7.19.0",
- "jest": "^24.9.0",
+ "jest": "^25.4.0",
"raf": "^3.4.1",
"react-intl-translations-manager": "^5.0.3",
- "react-test-renderer": "^16.13.0",
+ "react-test-renderer": "^16.13.1",
"sass-lint": "^1.13.1",
"webpack-dev-server": "^3.10.3",
"yargs": "^15.3.1"
diff --git a/public/inert.css b/public/inert.css
new file mode 100644
index 000000000..275fad2e6
--- /dev/null
+++ b/public/inert.css
@@ -0,0 +1,11 @@
+[inert] {
+ pointer-events: none;
+ cursor: default;
+}
+
+[inert], [inert] * {
+ user-select: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+}
diff --git a/spec/controllers/accounts_controller_spec.rb b/spec/controllers/accounts_controller_spec.rb
index 3d2a0665d..bd36f5494 100644
--- a/spec/controllers/accounts_controller_spec.rb
+++ b/spec/controllers/accounts_controller_spec.rb
@@ -3,108 +3,608 @@ require 'rails_helper'
RSpec.describe AccountsController, type: :controller do
render_views
- let(:alice) { Fabricate(:account, username: 'alice', user: Fabricate(:user)) }
- let(:eve) { Fabricate(:user) }
+ let(:account) { Fabricate(:user).account }
describe 'GET #show' do
- let!(:status1) { Status.create!(account: alice, text: 'Hello world') }
- let!(:status2) { Status.create!(account: alice, text: 'Boop', thread: status1) }
- let!(:status3) { Status.create!(account: alice, text: 'Picture!') }
- let!(:status4) { Status.create!(account: alice, text: 'Mentioning @alice') }
- let!(:status5) { Status.create!(account: alice, text: 'Kitsune') }
- let!(:status6) { Status.create!(account: alice, text: 'Neko') }
- let!(:status7) { Status.create!(account: alice, text: 'Tanuki') }
+ let(:format) { 'html' }
- let!(:status_pin1) { StatusPin.create!(account: alice, status: status5, created_at: 5.days.ago) }
- let!(:status_pin2) { StatusPin.create!(account: alice, status: status6, created_at: 2.years.ago) }
- let!(:status_pin3) { StatusPin.create!(account: alice, status: status7, created_at: 10.minutes.ago) }
+ let!(:status) { Fabricate(:status, account: account) }
+ let!(:status_reply) { Fabricate(:status, account: account, thread: Fabricate(:status)) }
+ let!(:status_self_reply) { Fabricate(:status, account: account, thread: status) }
+ let!(:status_media) { Fabricate(:status, account: account) }
+ let!(:status_pinned) { Fabricate(:status, account: account) }
+ let!(:status_private) { Fabricate(:status, account: account, visibility: :private) }
+ let!(:status_direct) { Fabricate(:status, account: account, visibility: :direct) }
+ let!(:status_reblog) { Fabricate(:status, account: account, reblog: Fabricate(:status)) }
before do
- alice.block!(eve.account)
- status3.media_attachments.create!(account: alice, file: fixture_file_upload('files/attachment.jpg', 'image/jpeg'))
+ status_media.media_attachments << Fabricate(:media_attachment, account: account, type: :image)
+ account.pinned_statuses << status_pinned
end
- shared_examples 'responses' do
- before do
- sign_in(current_user) if defined? current_user
- get :show, params: {
- username: alice.username,
- max_id: (max_id if defined? max_id),
- since_id: (since_id if defined? since_id),
- current_user: (current_user if defined? current_user),
- }, format: format
+ shared_examples 'preliminary checks' do
+ context 'when account is not approved' do
+ before do
+ account.user.update(approved: false)
+ end
+
+ it 'returns http not found' do
+ get :show, params: { username: account.username, format: format }
+ expect(response).to have_http_status(404)
+ end
end
- it 'assigns @account' do
- expect(assigns(:account)).to eq alice
- end
+ context 'when account is suspended' do
+ before do
+ account.suspend!
+ end
- it 'returns http success' do
- expect(response).to have_http_status(200)
- end
-
- it 'returns correct format' do
- expect(response.content_type).to eq content_type
+ it 'returns http gone' do
+ get :show, params: { username: account.username, format: format }
+ expect(response).to have_http_status(410)
+ end
end
end
- context 'activitystreams2' do
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it_behaves_like 'preliminary checks'
+
+ shared_examples 'common response characteristics' do
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include ActivityPub::TagManager.instance.uri_for(account)
+ end
+
+ it 'renders show template' do
+ expect(response).to render_template(:show)
+ end
+ end
+
+ context do
+ before do
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it_behaves_like 'common response characteristics'
+
+ it 'renders public status' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'renders self-reply' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'renders status with media' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'renders reblog' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'renders pinned status' do
+ expect(response.body).to include(I18n.t('stream_entries.pinned'))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'does not render reply to someone else' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
+ end
+ end
+
+ context 'when signed-in' do
+ let(:user) { Fabricate(:user) }
+
+ before do
+ sign_in(user)
+ end
+
+ context 'when user follows account' do
+ before do
+ user.account.follow!(account)
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+ end
+
+ context 'when user is blocked' do
+ before do
+ account.block!(user.account)
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it 'renders unavailable message' do
+ expect(response.body).to include(I18n.t('accounts.unavailable'))
+ end
+
+ it 'does not render public status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'does not render self-reply' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'does not render status with media' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'does not render reblog' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'does not render pinned status' do
+ expect(response.body).to_not include(I18n.t('stream_entries.pinned'))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'does not render reply to someone else' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
+ end
+ end
+ end
+
+ context 'with replies' do
+ before do
+ allow(controller).to receive(:replies_requested?).and_return(true)
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it_behaves_like 'common response characteristics'
+
+ it 'renders public status' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'renders self-reply' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'renders status with media' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'renders reblog' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'does not render pinned status' do
+ expect(response.body).to_not include(I18n.t('stream_entries.pinned'))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'renders reply to someone else' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_reply))
+ end
+ end
+
+ context 'with media' do
+ before do
+ allow(controller).to receive(:media_requested?).and_return(true)
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it_behaves_like 'common response characteristics'
+
+ it 'does not render public status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'does not render self-reply' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'renders status with media' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'does not render reblog' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'does not render pinned status' do
+ expect(response.body).to_not include(I18n.t('stream_entries.pinned'))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'does not render reply to someone else' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
+ end
+ end
+
+ context 'with tag' do
+ let(:tag) { Fabricate(:tag) }
+
+ let!(:status_tag) { Fabricate(:status, account: account) }
+
+ before do
+ allow(controller).to receive(:tag_requested?).and_return(true)
+ status_tag.tags << tag
+ get :show, params: { username: account.username, format: format, tag: tag.to_param }
+ end
+
+ it_behaves_like 'common response characteristics'
+
+ it 'does not render public status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'does not render self-reply' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'does not render status with media' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'does not render reblog' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'does not render pinned status' do
+ expect(response.body).to_not include(I18n.t('stream_entries.pinned'))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'does not render reply to someone else' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
+ end
+
+ it 'renders status with tag' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_tag))
+ end
+ end
+ end
+
+ context 'as JSON' do
+ let(:authorized_fetch_mode) { false }
let(:format) { 'json' }
- let(:content_type) { 'application/activity+json' }
- include_examples 'responses'
+ before do
+ allow(controller).to receive(:authorized_fetch_mode?).and_return(authorized_fetch_mode)
+ end
+
+ it_behaves_like 'preliminary checks'
+
+ context do
+ before do
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'renders account' do
+ json = body_as_json
+ expect(json).to include(:id, :type, :preferredUsername, :inbox, :publicKey, :name, :summary)
+ end
+
+ context 'in authorized fetch mode' do
+ let(:authorized_fetch_mode) { true }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'returns Vary header with Signature' do
+ expect(response.headers['Vary']).to include 'Signature'
+ end
+
+ it 'renders bare minimum account' do
+ json = body_as_json
+ expect(json).to include(:id, :type, :preferredUsername, :inbox, :publicKey)
+ expect(json).to_not include(:name, :summary)
+ end
+ end
+ end
+
+ context 'when signed in' do
+ let(:user) { Fabricate(:user) }
+
+ before do
+ sign_in(user)
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'renders account' do
+ json = body_as_json
+ expect(json).to include(:id, :type, :preferredUsername, :inbox, :publicKey, :name, :summary)
+ end
+ end
+
+ context 'with signature' do
+ let(:remote_account) { Fabricate(:account, domain: 'example.com') }
+
+ before do
+ allow(controller).to receive(:signed_request_account).and_return(remote_account)
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'renders account' do
+ json = body_as_json
+ expect(json).to include(:id, :type, :preferredUsername, :inbox, :publicKey, :name, :summary)
+ end
+
+ context 'in authorized fetch mode' do
+ let(:authorized_fetch_mode) { true }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'private'
+ end
+
+ it 'returns Vary header with Signature' do
+ expect(response.headers['Vary']).to include 'Signature'
+ end
+
+ it 'renders account' do
+ json = body_as_json
+ expect(json).to include(:id, :type, :preferredUsername, :inbox, :publicKey, :name, :summary)
+ end
+ end
+ end
end
- context 'html' do
- let(:format) { nil }
- let(:content_type) { 'text/html' }
+ context 'as RSS' do
+ let(:format) { 'rss' }
- shared_examples 'responsed statuses' do
- it 'assigns @pinned_statuses' do
- pinned_statuses = assigns(:pinned_statuses).to_a
- expect(pinned_statuses.size).to eq expected_pinned_statuses.size
- pinned_statuses.each.zip(expected_pinned_statuses.each) do |pinned_status, expected_pinned_status|
- expect(pinned_status).to eq expected_pinned_status
- end
+ it_behaves_like 'preliminary checks'
+
+ shared_examples 'common response characteristics' do
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
end
- it 'assigns @statuses' do
- statuses = assigns(:statuses).to_a
- expect(statuses.size).to eq expected_statuses.size
- statuses.each.zip(expected_statuses.each) do |status, expected_status|
- expect(status).to eq expected_status
- end
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
end
end
- include_examples 'responses'
-
- context 'with anonymous visitor' do
- context 'without since_id nor max_id' do
- let(:expected_statuses) { [status7, status6, status5, status4, status3, status2, status1] }
- let(:expected_pinned_statuses) { [status7, status5, status6] }
-
- include_examples 'responsed statuses'
+ context do
+ before do
+ get :show, params: { username: account.username, format: format }
end
- context 'with since_id nor max_id' do
- let(:max_id) { status4.id }
- let(:since_id) { status1.id }
- let(:expected_statuses) { [status3, status2] }
- let(:expected_pinned_statuses) { [] }
+ it_behaves_like 'common response characteristics'
- include_examples 'responsed statuses'
+ it 'renders public status' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'renders self-reply' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'renders status with media' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'does not render reblog' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'does not render reply to someone else' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
end
end
- context 'with blocked visitor' do
- let(:current_user) { eve }
+ context 'with replies' do
+ before do
+ allow(controller).to receive(:replies_requested?).and_return(true)
+ get :show, params: { username: account.username, format: format }
+ end
- context 'without since_id nor max_id' do
- let(:expected_statuses) { [] }
- let(:expected_pinned_statuses) { [] }
+ it_behaves_like 'common response characteristics'
- include_examples 'responsed statuses'
+ it 'renders public status' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'renders self-reply' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'renders status with media' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'does not render reblog' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'renders reply to someone else' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_reply))
+ end
+ end
+
+ context 'with media' do
+ before do
+ allow(controller).to receive(:media_requested?).and_return(true)
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it_behaves_like 'common response characteristics'
+
+ it 'does not render public status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'does not render self-reply' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'renders status with media' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'does not render reblog' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'does not render reply to someone else' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
+ end
+ end
+
+ context 'with tag' do
+ let(:tag) { Fabricate(:tag) }
+
+ let!(:status_tag) { Fabricate(:status, account: account) }
+
+ before do
+ allow(controller).to receive(:tag_requested?).and_return(true)
+ status_tag.tags << tag
+ get :show, params: { username: account.username, format: format, tag: tag.to_param }
+ end
+
+ it_behaves_like 'common response characteristics'
+
+ it 'does not render public status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'does not render self-reply' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'does not render status with media' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'does not render reblog' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'does not render reply to someone else' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
+ end
+
+ it 'renders status with tag' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_tag))
end
end
end
diff --git a/spec/controllers/activitypub/collections_controller_spec.rb b/spec/controllers/activitypub/collections_controller_spec.rb
index 34114cc85..56be49be3 100644
--- a/spec/controllers/activitypub/collections_controller_spec.rb
+++ b/spec/controllers/activitypub/collections_controller_spec.rb
@@ -3,21 +3,133 @@
require 'rails_helper'
RSpec.describe ActivityPub::CollectionsController, type: :controller do
- describe 'POST #show' do
- let(:account) { Fabricate(:account) }
+ let!(:account) { Fabricate(:account) }
+ let(:remote_account) { nil }
- context 'id is "featured"' do
- it 'returns 200 with "application/activity+json"' do
- post :show, params: { id: 'featured', account_username: account.username }
+ before do
+ allow(controller).to receive(:signed_request_account).and_return(remote_account)
- expect(response).to have_http_status(200)
- expect(response.content_type).to eq 'application/activity+json'
+ Fabricate(:status_pin, account: account)
+ Fabricate(:status_pin, account: account)
+ Fabricate(:status, account: account, visibility: :private)
+ end
+
+ describe 'GET #show' do
+ context 'when id is "featured"' do
+ context 'without signature' do
+ let(:remote_account) { nil }
+
+ before do
+ get :show, params: { id: 'featured', account_username: account.username }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'returns orderedItems with pinned statuses' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 2
+ end
+ end
+
+ context 'with signature' do
+ let(:remote_account) { Fabricate(:account, domain: 'example.com') }
+
+ context do
+ before do
+ get :show, params: { id: 'featured', account_username: account.username }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'returns orderedItems with pinned statuses' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 2
+ end
+ end
+
+ context 'in authorized fetch mode' do
+ before do
+ allow(controller).to receive(:authorized_fetch_mode?).and_return(true)
+ end
+
+ context 'when signed request account is blocked' do
+ before do
+ account.block!(remote_account)
+ get :show, params: { id: 'featured', account_username: account.username }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'private'
+ end
+
+ it 'returns empty orderedItems' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 0
+ end
+ end
+
+ context 'when signed request account is domain blocked' do
+ before do
+ account.block_domain!(remote_account.domain)
+ get :show, params: { id: 'featured', account_username: account.username }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'private'
+ end
+
+ it 'returns empty orderedItems' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 0
+ end
+ end
+ end
end
end
- context 'id is not "featured"' do
- it 'returns 404' do
- post :show, params: { id: 'hoge', account_username: account.username }
+ context 'when id is not "featured"' do
+ it 'returns http not found' do
+ get :show, params: { id: 'hoge', account_username: account.username }
expect(response).to have_http_status(404)
end
end
diff --git a/spec/controllers/activitypub/inboxes_controller_spec.rb b/spec/controllers/activitypub/inboxes_controller_spec.rb
index a9ee75490..f3bc23953 100644
--- a/spec/controllers/activitypub/inboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/inboxes_controller_spec.rb
@@ -3,25 +3,31 @@
require 'rails_helper'
RSpec.describe ActivityPub::InboxesController, type: :controller do
- describe 'POST #create' do
- context 'with signed_request_account' do
- it 'returns 202' do
- allow(controller).to receive(:signed_request_account) do
- Fabricate(:account)
- end
+ let(:remote_account) { nil }
+ before do
+ allow(controller).to receive(:signed_request_account).and_return(remote_account)
+ end
+
+ describe 'POST #create' do
+ context 'with signature' do
+ let(:remote_account) { Fabricate(:account, domain: 'example.com', protocol: :activitypub) }
+
+ before do
post :create, body: '{}'
+ end
+
+ it 'returns http accepted' do
expect(response).to have_http_status(202)
end
end
- context 'without signed_request_account' do
- it 'returns 401' do
- allow(controller).to receive(:signed_request_account) do
- false
- end
-
+ context 'without signature' do
+ before do
post :create, body: '{}'
+ end
+
+ it 'returns http not authorized' do
expect(response).to have_http_status(401)
end
end
diff --git a/spec/controllers/activitypub/outboxes_controller_spec.rb b/spec/controllers/activitypub/outboxes_controller_spec.rb
index 47460b22c..03490533d 100644
--- a/spec/controllers/activitypub/outboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/outboxes_controller_spec.rb
@@ -4,20 +4,174 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do
let!(:account) { Fabricate(:account) }
before do
- Fabricate(:status, account: account)
+ Fabricate(:status, account: account, visibility: :public)
+ Fabricate(:status, account: account, visibility: :unlisted)
+ Fabricate(:status, account: account, visibility: :private)
+ Fabricate(:status, account: account, visibility: :direct)
+ Fabricate(:status, account: account, visibility: :limited)
+ end
+
+ before do
+ allow(controller).to receive(:signed_request_account).and_return(remote_account)
end
describe 'GET #show' do
- before do
- get :show, params: { account_username: account.username }
+ context 'without signature' do
+ let(:remote_account) { nil }
+
+ before do
+ get :show, params: { account_username: account.username, page: page }
+ end
+
+ context 'with page not requested' do
+ let(:page) { nil }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns totalItems' do
+ json = body_as_json
+ expect(json[:totalItems]).to eq 4
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+ end
+
+ context 'with page requested' do
+ let(:page) { 'true' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns orderedItems with public or unlisted statuses' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 2
+ expect(json[:orderedItems].all? { |item| item[:to].include?(ActivityPub::TagManager::COLLECTIONS[:public]) || item[:cc].include?(ActivityPub::TagManager::COLLECTIONS[:public]) }).to be true
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+ end
end
- it 'returns http success' do
- expect(response).to have_http_status(200)
- end
+ context 'with signature' do
+ let(:remote_account) { Fabricate(:account, domain: 'example.com') }
+ let(:page) { 'true' }
- it 'returns application/activity+json' do
- expect(response.content_type).to eq 'application/activity+json'
+ context 'when signed request account does not follow account' do
+ before do
+ get :show, params: { account_username: account.username, page: page }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns orderedItems with public or unlisted statuses' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 2
+ expect(json[:orderedItems].all? { |item| item[:to].include?(ActivityPub::TagManager::COLLECTIONS[:public]) || item[:cc].include?(ActivityPub::TagManager::COLLECTIONS[:public]) }).to be true
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to eq 'max-age=0, private'
+ end
+ end
+
+ context 'when signed request account follows account' do
+ before do
+ remote_account.follow!(account)
+ get :show, params: { account_username: account.username, page: page }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns orderedItems with private statuses' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 3
+ expect(json[:orderedItems].all? { |item| item[:to].include?(ActivityPub::TagManager::COLLECTIONS[:public]) || item[:cc].include?(ActivityPub::TagManager::COLLECTIONS[:public]) || item[:to].include?(account_followers_url(account, ActionMailer::Base.default_url_options)) }).to be true
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to eq 'max-age=0, private'
+ end
+ end
+
+ context 'when signed request account is blocked' do
+ before do
+ account.block!(remote_account)
+ get :show, params: { account_username: account.username, page: page }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns empty orderedItems' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 0
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to eq 'max-age=0, private'
+ end
+ end
+
+ context 'when signed request account is domain blocked' do
+ before do
+ account.block_domain!(remote_account.domain)
+ get :show, params: { account_username: account.username, page: page }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns empty orderedItems' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 0
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to eq 'max-age=0, private'
+ end
+ end
end
end
end
diff --git a/spec/controllers/activitypub/replies_controller_spec.rb b/spec/controllers/activitypub/replies_controller_spec.rb
new file mode 100644
index 000000000..a5ed14180
--- /dev/null
+++ b/spec/controllers/activitypub/replies_controller_spec.rb
@@ -0,0 +1,196 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe ActivityPub::RepliesController, type: :controller do
+ let(:status) { Fabricate(:status, visibility: parent_visibility) }
+ let(:remote_account) { nil }
+
+ before do
+ allow(controller).to receive(:signed_request_account).and_return(remote_account)
+
+ Fabricate(:status, thread: status, visibility: :public)
+ Fabricate(:status, thread: status, visibility: :public)
+ Fabricate(:status, thread: status, visibility: :private)
+ Fabricate(:status, account: status.account, thread: status, visibility: :public)
+ Fabricate(:status, account: status.account, thread: status, visibility: :private)
+ end
+
+ describe 'GET #index' do
+ context 'with no signature' do
+ before do
+ get :index, params: { account_username: status.account.username, status_id: status.id }
+ end
+
+ context 'when status is public' do
+ let(:parent_visibility) { :public }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'returns items with account\'s own replies' do
+ json = body_as_json
+
+ expect(json[:first]).to be_a Hash
+ expect(json[:first][:items]).to be_an Array
+ expect(json[:first][:items].size).to eq 1
+ expect(json[:first][:items].all? { |item| item[:to].include?(ActivityPub::TagManager::COLLECTIONS[:public]) || item[:cc].include?(ActivityPub::TagManager::COLLECTIONS[:public]) }).to be true
+ end
+ end
+
+ context 'when status is private' do
+ let(:parent_visibility) { :private }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is direct' do
+ let(:parent_visibility) { :direct }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+
+ context 'with signature' do
+ let(:remote_account) { Fabricate(:account, domain: 'example.com') }
+ let(:only_other_accounts) { nil }
+
+ context do
+ before do
+ get :index, params: { account_username: status.account.username, status_id: status.id, only_other_accounts: only_other_accounts }
+ end
+
+ context 'when status is public' do
+ let(:parent_visibility) { :public }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ context 'without only_other_accounts' do
+ it 'returns items with account\'s own replies' do
+ json = body_as_json
+
+ expect(json[:first]).to be_a Hash
+ expect(json[:first][:items]).to be_an Array
+ expect(json[:first][:items].size).to eq 1
+ expect(json[:first][:items].all? { |item| item[:to].include?(ActivityPub::TagManager::COLLECTIONS[:public]) || item[:cc].include?(ActivityPub::TagManager::COLLECTIONS[:public]) }).to be true
+ end
+ end
+
+ context 'with only_other_accounts' do
+ let(:only_other_accounts) { 'true' }
+
+ it 'returns items with other public or unlisted replies' do
+ json = body_as_json
+
+ expect(json[:first]).to be_a Hash
+ expect(json[:first][:items]).to be_an Array
+ expect(json[:first][:items].size).to eq 2
+ expect(json[:first][:items].all? { |item| item[:to].include?(ActivityPub::TagManager::COLLECTIONS[:public]) || item[:cc].include?(ActivityPub::TagManager::COLLECTIONS[:public]) }).to be true
+ end
+ end
+ end
+
+ context 'when status is private' do
+ let(:parent_visibility) { :private }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is direct' do
+ let(:parent_visibility) { :direct }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+
+ context 'when signed request account is blocked' do
+ before do
+ status.account.block!(remote_account)
+ get :index, params: { account_username: status.account.username, status_id: status.id }
+ end
+
+ context 'when status is public' do
+ let(:parent_visibility) { :public }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is private' do
+ let(:parent_visibility) { :private }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is direct' do
+ let(:parent_visibility) { :direct }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+
+ context 'when signed request account is domain blocked' do
+ before do
+ status.account.block_domain!(remote_account.domain)
+ get :index, params: { account_username: status.account.username, status_id: status.id }
+ end
+
+ context 'when status is public' do
+ let(:parent_visibility) { :public }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is private' do
+ let(:parent_visibility) { :private }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is direct' do
+ let(:parent_visibility) { :direct }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb b/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb
index 54587187f..482a19ef2 100644
--- a/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb
@@ -36,5 +36,28 @@ describe Api::V1::Accounts::FollowerAccountsController do
expect(body_as_json.size).to eq 1
expect(body_as_json[0][:id]).to eq alice.id.to_s
end
+
+ context 'when requesting user is blocked' do
+ before do
+ account.block!(user.account)
+ end
+
+ it 'hides results' do
+ get :index, params: { account_id: account.id, limit: 2 }
+ expect(body_as_json.size).to eq 0
+ end
+ end
+
+ context 'when requesting user is the account owner' do
+ let(:user) { Fabricate(:user, account: account) }
+
+ it 'returns all accounts, including muted accounts' do
+ user.account.mute!(bob)
+ get :index, params: { account_id: account.id, limit: 2 }
+
+ expect(body_as_json.size).to eq 2
+ expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s])
+ end
+ end
end
end
diff --git a/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb b/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb
index a580a7368..e35b625fe 100644
--- a/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb
@@ -36,5 +36,28 @@ describe Api::V1::Accounts::FollowingAccountsController do
expect(body_as_json.size).to eq 1
expect(body_as_json[0][:id]).to eq alice.id.to_s
end
+
+ context 'when requesting user is blocked' do
+ before do
+ account.block!(user.account)
+ end
+
+ it 'hides results' do
+ get :index, params: { account_id: account.id, limit: 2 }
+ expect(body_as_json.size).to eq 0
+ end
+ end
+
+ context 'when requesting user is the account owner' do
+ let(:user) { Fabricate(:user, account: account) }
+
+ it 'returns all accounts, including muted accounts' do
+ user.account.mute!(bob)
+ get :index, params: { account_id: account.id, limit: 2 }
+
+ expect(body_as_json.size).to eq 2
+ expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s])
+ end
+ end
end
end
diff --git a/spec/controllers/api/v1/accounts_controller_spec.rb b/spec/controllers/api/v1/accounts_controller_spec.rb
index f5f65c000..024409dab 100644
--- a/spec/controllers/api/v1/accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts_controller_spec.rb
@@ -21,7 +21,7 @@ RSpec.describe Api::V1::AccountsController, type: :controller do
describe 'POST #create' do
let(:app) { Fabricate(:application) }
- let(:token) { Doorkeeper::AccessToken.find_or_create_for(app, nil, 'read write', nil, false) }
+ let(:token) { Doorkeeper::AccessToken.find_or_create_for(application: app, resource_owner: nil, scopes: 'read write', use_refresh_token: false) }
let(:agreement) { nil }
before do
diff --git a/spec/controllers/concerns/localized_spec.rb b/spec/controllers/concerns/localized_spec.rb
index 7635d10e1..a89e24af0 100644
--- a/spec/controllers/concerns/localized_spec.rb
+++ b/spec/controllers/concerns/localized_spec.rb
@@ -16,10 +16,16 @@ describe ApplicationController, type: :controller do
end
shared_examples 'default locale' do
+ it 'sets available and preferred language' do
+ request.headers['Accept-Language'] = 'sr-Latn'
+ get 'success'
+ expect(response.body).to eq 'sr-Latn'
+ end
+
it 'sets available and preferred language' do
request.headers['Accept-Language'] = 'ca-ES, fa'
get 'success'
- expect(response.body).to eq 'fa'
+ expect(response.body).to eq 'ca'
end
it 'sets available and compatible language if none of available languages are preferred' do
diff --git a/spec/controllers/oauth/authorizations_controller_spec.rb b/spec/controllers/oauth/authorizations_controller_spec.rb
index a84260a54..c5eeea397 100644
--- a/spec/controllers/oauth/authorizations_controller_spec.rb
+++ b/spec/controllers/oauth/authorizations_controller_spec.rb
@@ -41,11 +41,11 @@ RSpec.describe Oauth::AuthorizationsController, type: :controller do
context 'when app is already authorized' do
before do
Doorkeeper::AccessToken.find_or_create_for(
- app,
- user.id,
- app.scopes,
- Doorkeeper.configuration.access_token_expires_in,
- Doorkeeper.configuration.refresh_token_enabled?
+ application: app,
+ resource_owner: user.id,
+ scopes: app.scopes,
+ expires_in: Doorkeeper.configuration.access_token_expires_in,
+ use_refresh_token: Doorkeeper.configuration.refresh_token_enabled?
)
end
diff --git a/spec/controllers/oauth/tokens_controller_spec.rb b/spec/controllers/oauth/tokens_controller_spec.rb
index ba8e367a6..3804e035b 100644
--- a/spec/controllers/oauth/tokens_controller_spec.rb
+++ b/spec/controllers/oauth/tokens_controller_spec.rb
@@ -5,11 +5,12 @@ require 'rails_helper'
RSpec.describe Oauth::TokensController, type: :controller do
describe 'POST #revoke' do
let!(:user) { Fabricate(:user) }
- let!(:access_token) { Fabricate(:accessible_access_token, resource_owner_id: user.id) }
+ let!(:application) { Fabricate(:application, confidential: false) }
+ let!(:access_token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, application: application) }
let!(:web_push_subscription) { Fabricate(:web_push_subscription, user: user, access_token: access_token) }
before do
- post :revoke, params: { token: access_token.token }
+ post :revoke, params: { client_id: application.uid, token: access_token.token }
end
it 'revokes the token' do
diff --git a/spec/controllers/remote_follow_controller_spec.rb b/spec/controllers/remote_follow_controller_spec.rb
index d79dd2949..3ef8f14d9 100644
--- a/spec/controllers/remote_follow_controller_spec.rb
+++ b/spec/controllers/remote_follow_controller_spec.rb
@@ -35,7 +35,7 @@ describe RemoteFollowController do
context 'when webfinger values are wrong' do
it 'renders new when redirect url is nil' do
resource_with_nil_link = double(link: nil)
- allow(Goldfinger).to receive(:finger).with('acct:user@example.com').and_return(resource_with_nil_link)
+ allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@example.com').and_return(resource_with_nil_link)
post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@example.com' } }
expect(response).to render_template(:new)
@@ -45,7 +45,7 @@ describe RemoteFollowController do
it 'renders new when template is nil' do
link_with_nil_template = double(template: nil)
resource_with_link = double(link: link_with_nil_template)
- allow(Goldfinger).to receive(:finger).with('acct:user@example.com').and_return(resource_with_link)
+ allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@example.com').and_return(resource_with_link)
post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@example.com' } }
expect(response).to render_template(:new)
@@ -57,7 +57,7 @@ describe RemoteFollowController do
before do
link_with_template = double(template: 'http://example.com/follow_me?acct={uri}')
resource_with_link = double(link: link_with_template)
- allow(Goldfinger).to receive(:finger).with('acct:user@example.com').and_return(resource_with_link)
+ allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@example.com').and_return(resource_with_link)
post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@example.com' } }
end
@@ -79,7 +79,7 @@ describe RemoteFollowController do
end
it 'renders new with error when goldfinger fails' do
- allow(Goldfinger).to receive(:finger).with('acct:user@example.com').and_raise(Goldfinger::Error)
+ allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@example.com').and_raise(Goldfinger::Error)
post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@example.com' } }
expect(response).to render_template(:new)
@@ -87,7 +87,7 @@ describe RemoteFollowController do
end
it 'renders new when occur HTTP::ConnectionError' do
- allow(Goldfinger).to receive(:finger).with('acct:user@unknown').and_raise(HTTP::ConnectionError)
+ allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@unknown').and_raise(HTTP::ConnectionError)
post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@unknown' } }
expect(response).to render_template(:new)
diff --git a/spec/controllers/settings/identity_proofs_controller_spec.rb b/spec/controllers/settings/identity_proofs_controller_spec.rb
index 261e980d4..16f236227 100644
--- a/spec/controllers/settings/identity_proofs_controller_spec.rb
+++ b/spec/controllers/settings/identity_proofs_controller_spec.rb
@@ -151,7 +151,7 @@ describe Settings::IdentityProofsController do
@proof1 = Fabricate(:account_identity_proof, account: user.account)
@proof2 = Fabricate(:account_identity_proof, account: user.account)
allow_any_instance_of(AccountIdentityProof).to receive(:badge) { double(avatar_url: '', profile_url: '', proof_url: '') }
- allow_any_instance_of(AccountIdentityProof).to receive(:refresh!) { }
+ allow_any_instance_of(AccountIdentityProof).to receive(:refresh!) {}
end
it 'has the first proof username on the page' do
@@ -165,4 +165,22 @@ describe Settings::IdentityProofsController do
end
end
end
+
+ describe 'DELETE #destroy' do
+ before do
+ allow_any_instance_of(ProofProvider::Keybase::Verifier).to receive(:valid?) { true }
+ @proof1 = Fabricate(:account_identity_proof, account: user.account)
+ allow_any_instance_of(AccountIdentityProof).to receive(:badge) { double(avatar_url: '', profile_url: '', proof_url: '') }
+ allow_any_instance_of(AccountIdentityProof).to receive(:refresh!) {}
+ delete :destroy, params: { id: @proof1.id }
+ end
+
+ it 'redirects to :index' do
+ expect(response).to redirect_to settings_identity_proofs_path
+ end
+
+ it 'removes the proof' do
+ expect(AccountIdentityProof.where(id: @proof1.id).count).to eq 0
+ end
+ end
end
diff --git a/spec/controllers/statuses_controller_spec.rb b/spec/controllers/statuses_controller_spec.rb
index 6905dae10..ba1f1370a 100644
--- a/spec/controllers/statuses_controller_spec.rb
+++ b/spec/controllers/statuses_controller_spec.rb
@@ -5,128 +5,821 @@ require 'rails_helper'
describe StatusesController do
render_views
- describe '#show' do
- context 'account is suspended' do
- it 'returns gone' do
- account = Fabricate(:account, suspended: true)
- status = Fabricate(:status, account: account)
+ describe 'GET #show' do
+ let(:account) { Fabricate(:account) }
+ let(:status) { Fabricate(:status, account: account) }
+ context 'when account is suspended' do
+ let(:account) { Fabricate(:account, suspended: true) }
+
+ before do
get :show, params: { account_username: account.username, id: status.id }
+ end
+ it 'returns http gone' do
expect(response).to have_http_status(410)
end
end
- context 'status is not permitted' do
- it 'raises ActiveRecord::RecordNotFound' do
- user = Fabricate(:user)
- status = Fabricate(:status)
- status.account.block!(user.account)
+ context 'when status is a reblog' do
+ let(:original_account) { Fabricate(:account, domain: 'example.com') }
+ let(:original_status) { Fabricate(:status, account: original_account, url: 'https://example.com/123') }
+ let(:status) { Fabricate(:status, account: account, reblog: original_status) }
- sign_in(user)
+ before do
get :show, params: { account_username: status.account.username, id: status.id }
-
- expect(response).to have_http_status(404)
end
- end
- context 'status is a reblog' do
it 'redirects to the original status' do
- original_account = Fabricate(:account, domain: 'example.com')
- original_status = Fabricate(:status, account: original_account, uri: 'tag:example.com,2017:foo', url: 'https://example.com/123')
- status = Fabricate(:status, reblog: original_status)
-
- get :show, params: { account_username: status.account.username, id: status.id }
-
expect(response).to redirect_to(original_status.url)
end
end
- context 'account is not suspended and status is permitted' do
- it 'assigns @account' do
- status = Fabricate(:status)
- get :show, params: { account_username: status.account.username, id: status.id }
- expect(assigns(:account)).to eq status.account
+ context 'when status is public' do
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
end
- it 'assigns @status' do
- status = Fabricate(:status)
- get :show, params: { account_username: status.account.username, id: status.id }
- expect(assigns(:status)).to eq status
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'renders status' do
+ expect(response).to render_template(:show)
+ expect(response.body).to include status.text
+ end
end
- it 'assigns @ancestors for ancestors of the status if it is a reply' do
- ancestor = Fabricate(:status)
- status = Fabricate(:status, in_reply_to_id: ancestor.id)
+ context 'as JSON' do
+ let(:format) { 'json' }
- get :show, params: { account_username: status.account.username, id: status.id }
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
- expect(assigns(:ancestors)).to eq [ancestor]
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'returns Content-Type header' do
+ expect(response.headers['Content-Type']).to include 'application/activity+json'
+ end
+
+ it 'renders ActivityPub Note object' do
+ json = body_as_json
+ expect(json[:content]).to include status.text
+ end
+ end
+ end
+
+ context 'when status is private' do
+ let(:status) { Fabricate(:status, account: account, visibility: :private) }
+
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
end
- it 'assigns @ancestors for [] if it is not a reply' do
- status = Fabricate(:status)
- get :show, params: { account_username: status.account.username, id: status.id }
- expect(assigns(:ancestors)).to eq []
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
end
- it 'assigns @descendant_threads for a thread with several statuses' do
- status = Fabricate(:status)
- child = Fabricate(:status, in_reply_to_id: status.id)
- grandchild = Fabricate(:status, in_reply_to_id: child.id)
+ context 'as HTML' do
+ let(:format) { 'html' }
- get :show, params: { account_username: status.account.username, id: status.id }
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
- expect(assigns(:descendant_threads)[0][:statuses].pluck(:id)).to eq [child.id, grandchild.id]
+ context 'when status is direct' do
+ let(:status) { Fabricate(:status, account: account, visibility: :direct) }
+
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
end
- it 'assigns @descendant_threads for several threads sharing the same descendant' do
- status = Fabricate(:status)
- child = Fabricate(:status, in_reply_to_id: status.id)
- grandchildren = 2.times.map { Fabricate(:status, in_reply_to_id: child.id) }
+ context 'as JSON' do
+ let(:format) { 'json' }
- get :show, params: { account_username: status.account.username, id: status.id }
-
- expect(assigns(:descendant_threads)[0][:statuses].pluck(:id)).to eq [child.id, grandchildren[0].id]
- expect(assigns(:descendant_threads)[1][:statuses].pluck(:id)).to eq [grandchildren[1].id]
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
end
- it 'assigns @max_descendant_thread_id for the last thread if it is hitting the status limit' do
- stub_const 'StatusControllerConcern::DESCENDANTS_LIMIT', 1
- status = Fabricate(:status)
- child = Fabricate(:status, in_reply_to_id: status.id)
+ context 'as HTML' do
+ let(:format) { 'html' }
- get :show, params: { account_username: status.account.username, id: status.id }
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
- expect(assigns(:descendant_threads)).to eq []
- expect(assigns(:max_descendant_thread_id)).to eq child.id
+ context 'when signed-in' do
+ let(:user) { Fabricate(:user) }
+
+ before do
+ sign_in(user)
end
- it 'assigns @descendant_threads for threads with :next_status key if they are hitting the depth limit' do
- stub_const 'StatusControllerConcern::DESCENDANTS_DEPTH_LIMIT', 2
- status = Fabricate(:status)
- child0 = Fabricate(:status, in_reply_to_id: status.id)
- child1 = Fabricate(:status, in_reply_to_id: child0.id)
- child2 = Fabricate(:status, in_reply_to_id: child0.id)
+ context 'when account blocks user' do
+ before do
+ account.block!(user.account)
+ get :show, params: { account_username: status.account.username, id: status.id }
+ end
- get :show, params: { account_username: status.account.username, id: status.id }
-
- expect(assigns(:descendant_threads)[0][:statuses].pluck(:id)).not_to include child1.id
- expect(assigns(:descendant_threads)[1][:statuses].pluck(:id)).not_to include child2.id
- expect(assigns(:descendant_threads)[0][:next_status].id).to eq child1.id
- expect(assigns(:descendant_threads)[1][:next_status].id).to eq child2.id
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
end
- it 'returns a success' do
- status = Fabricate(:status)
- get :show, params: { account_username: status.account.username, id: status.id }
+ context 'when status is public' do
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns no Cache-Control header' do
+ expect(response.headers).to_not include 'Cache-Control'
+ end
+
+ it 'renders status' do
+ expect(response).to render_template(:show)
+ expect(response.body).to include status.text
+ end
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'returns Content-Type header' do
+ expect(response.headers['Content-Type']).to include 'application/activity+json'
+ end
+
+ it 'renders ActivityPub Note object' do
+ json = body_as_json
+ expect(json[:content]).to include status.text
+ end
+ end
+ end
+
+ context 'when status is private' do
+ let(:status) { Fabricate(:status, account: account, visibility: :private) }
+
+ context 'when user is authorized to see it' do
+ before do
+ user.account.follow!(account)
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns no Cache-Control header' do
+ expect(response.headers).to_not include 'Cache-Control'
+ end
+
+ it 'renders status' do
+ expect(response).to render_template(:show)
+ expect(response.body).to include status.text
+ end
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'private'
+ end
+
+ it 'returns Content-Type header' do
+ expect(response.headers['Content-Type']).to include 'application/activity+json'
+ end
+
+ it 'renders ActivityPub Note object' do
+ json = body_as_json
+ expect(json[:content]).to include status.text
+ end
+ end
+ end
+
+ context 'when user is not authorized to see it' do
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+ end
+
+ context 'when status is direct' do
+ let(:status) { Fabricate(:status, account: account, visibility: :direct) }
+
+ context 'when user is authorized to see it' do
+ before do
+ Fabricate(:mention, account: user.account, status: status)
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns no Cache-Control header' do
+ expect(response.headers).to_not include 'Cache-Control'
+ end
+
+ it 'renders status' do
+ expect(response).to render_template(:show)
+ expect(response.body).to include status.text
+ end
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'private'
+ end
+
+ it 'returns Content-Type header' do
+ expect(response.headers['Content-Type']).to include 'application/activity+json'
+ end
+
+ it 'renders ActivityPub Note object' do
+ json = body_as_json
+ expect(json[:content]).to include status.text
+ end
+ end
+ end
+
+ context 'when user is not authorized to see it' do
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+ end
+ end
+
+ context 'with signature' do
+ let(:remote_account) { Fabricate(:account, domain: 'example.com') }
+
+ before do
+ allow(controller).to receive(:signed_request_account).and_return(remote_account)
+ end
+
+ context 'when account blocks account' do
+ before do
+ account.block!(remote_account)
+ get :show, params: { account_username: status.account.username, id: status.id }
+ end
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when account domain blocks account' do
+ before do
+ account.block_domain!(remote_account.domain)
+ get :show, params: { account_username: status.account.username, id: status.id }
+ end
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is public' do
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns no Cache-Control header' do
+ expect(response.headers).to_not include 'Cache-Control'
+ end
+
+ it 'renders status' do
+ expect(response).to render_template(:show)
+ expect(response.body).to include status.text
+ end
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'returns Content-Type header' do
+ expect(response.headers['Content-Type']).to include 'application/activity+json'
+ end
+
+ it 'renders ActivityPub Note object' do
+ json = body_as_json
+ expect(json[:content]).to include status.text
+ end
+ end
+ end
+
+ context 'when status is private' do
+ let(:status) { Fabricate(:status, account: account, visibility: :private) }
+
+ context 'when user is authorized to see it' do
+ before do
+ remote_account.follow!(account)
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns no Cache-Control header' do
+ expect(response.headers).to_not include 'Cache-Control'
+ end
+
+ it 'renders status' do
+ expect(response).to render_template(:show)
+ expect(response.body).to include status.text
+ end
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'private'
+ end
+
+ it 'returns Content-Type header' do
+ expect(response.headers['Content-Type']).to include 'application/activity+json'
+ end
+
+ it 'renders ActivityPub Note object' do
+ json = body_as_json
+ expect(json[:content]).to include status.text
+ end
+ end
+ end
+
+ context 'when user is not authorized to see it' do
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+ end
+
+ context 'when status is direct' do
+ let(:status) { Fabricate(:status, account: account, visibility: :direct) }
+
+ context 'when user is authorized to see it' do
+ before do
+ Fabricate(:mention, account: remote_account, status: status)
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns no Cache-Control header' do
+ expect(response.headers).to_not include 'Cache-Control'
+ end
+
+ it 'renders status' do
+ expect(response).to render_template(:show)
+ expect(response.body).to include status.text
+ end
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'private'
+ end
+
+ it 'returns Content-Type header' do
+ expect(response.headers['Content-Type']).to include 'application/activity+json'
+ end
+
+ it 'renders ActivityPub Note object' do
+ json = body_as_json
+ expect(json[:content]).to include status.text
+ end
+ end
+ end
+
+ context 'when user is not authorized to see it' do
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+ end
+ end
+ end
+
+ describe 'GET #activity' do
+ let(:account) { Fabricate(:account) }
+ let(:status) { Fabricate(:status, account: account) }
+
+ context 'when account is suspended' do
+ let(:account) { Fabricate(:account, suspended: true) }
+
+ before do
+ get :activity, params: { account_username: account.username, id: status.id }
+ end
+
+ it 'returns http gone' do
+ expect(response).to have_http_status(410)
+ end
+ end
+
+ context 'when status is public' do
+ pending
+ end
+
+ context 'when status is private' do
+ pending
+ end
+
+ context 'when status is direct' do
+ pending
+ end
+
+ context 'when signed-in' do
+ context 'when status is public' do
+ pending
+ end
+
+ context 'when status is private' do
+ context 'when user is authorized to see it' do
+ pending
+ end
+
+ context 'when user is not authorized to see it' do
+ pending
+ end
+ end
+
+ context 'when status is direct' do
+ context 'when user is authorized to see it' do
+ pending
+ end
+
+ context 'when user is not authorized to see it' do
+ pending
+ end
+ end
+ end
+
+ context 'with signature' do
+ context 'when status is public' do
+ pending
+ end
+
+ context 'when status is private' do
+ context 'when user is authorized to see it' do
+ pending
+ end
+
+ context 'when user is not authorized to see it' do
+ pending
+ end
+ end
+
+ context 'when status is direct' do
+ context 'when user is authorized to see it' do
+ pending
+ end
+
+ context 'when user is not authorized to see it' do
+ pending
+ end
+ end
+ end
+ end
+
+ describe 'GET #embed' do
+ let(:account) { Fabricate(:account) }
+ let(:status) { Fabricate(:status, account: account) }
+
+ context 'when account is suspended' do
+ let(:account) { Fabricate(:account, suspended: true) }
+
+ before do
+ get :embed, params: { account_username: account.username, id: status.id }
+ end
+
+ it 'returns http gone' do
+ expect(response).to have_http_status(410)
+ end
+ end
+
+ context 'when status is a reblog' do
+ let(:original_account) { Fabricate(:account, domain: 'example.com') }
+ let(:original_status) { Fabricate(:status, account: original_account, url: 'https://example.com/123') }
+ let(:status) { Fabricate(:status, account: account, reblog: original_status) }
+
+ before do
+ get :embed, params: { account_username: status.account.username, id: status.id }
+ end
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is public' do
+ before do
+ get :embed, params: { account_username: status.account.username, id: status.id }
+ end
+
+ it 'returns http success' do
expect(response).to have_http_status(200)
end
- it 'renders statuses/show' do
- status = Fabricate(:status)
- get :show, params: { account_username: status.account.username, id: status.id }
- expect(response).to render_template 'statuses/show'
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'renders status' do
+ expect(response).to render_template(:embed)
+ expect(response.body).to include status.text
+ end
+ end
+
+ context 'when status is private' do
+ let(:status) { Fabricate(:status, account: account, visibility: :private) }
+
+ before do
+ get :embed, params: { account_username: status.account.username, id: status.id }
+ end
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is direct' do
+ let(:status) { Fabricate(:status, account: account, visibility: :direct) }
+
+ before do
+ get :embed, params: { account_username: status.account.username, id: status.id }
+ end
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
end
end
end
diff --git a/spec/fabricators/status_pin_fabricator.rb b/spec/fabricators/status_pin_fabricator.rb
index 6a9006c9f..f1f1c05f3 100644
--- a/spec/fabricators/status_pin_fabricator.rb
+++ b/spec/fabricators/status_pin_fabricator.rb
@@ -1,4 +1,4 @@
Fabricator(:status_pin) do
account
- status
+ status { |attrs| Fabricate(:status, account: attrs[:account], visibility: :public) }
end
diff --git a/spec/lib/rss/serializer_spec.rb b/spec/lib/rss/serializer_spec.rb
new file mode 100644
index 000000000..0364d13de
--- /dev/null
+++ b/spec/lib/rss/serializer_spec.rb
@@ -0,0 +1,63 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe RSS::Serializer do
+ describe '#status_title' do
+ let(:text) { 'This is a toot' }
+ let(:spoiler) { '' }
+ let(:sensitive) { false }
+ let(:reblog) { nil }
+ let(:account) { Fabricate(:account) }
+ let(:status) { Fabricate(:status, account: account, text: text, spoiler_text: spoiler, sensitive: sensitive, reblog: reblog) }
+
+ subject { RSS::Serializer.new.send(:status_title, status) }
+
+ context 'if destroyed?' do
+ it 'returns "#{account.acct} deleted status"' do
+ status.destroy!
+ expect(subject).to eq "#{account.acct} deleted status"
+ end
+ end
+
+ context 'on a toot with long text' do
+ let(:text) { "This toot's text is longer than the allowed number of characters" }
+
+ it 'truncates toot text appropriately' do
+ expect(subject).to eq "#{account.acct}: “This toot's text is longer tha…”"
+ end
+ end
+
+ context 'on a toot with long text with a newline' do
+ let(:text) { "This toot's text is longer\nthan the allowed number of characters" }
+
+ it 'truncates toot text appropriately' do
+ expect(subject).to eq "#{account.acct}: “This toot's text is longer…”"
+ end
+ end
+
+ context 'on a toot with a content warning' do
+ let(:spoiler) { 'long toot' }
+
+ it 'displays spoiler text instead of toot content' do
+ expect(subject).to eq "#{account.acct}: CW “long toot”"
+ end
+ end
+
+ context 'on a toot with sensitive media' do
+ let(:sensitive) { true }
+
+ it 'displays that the media is sensitive' do
+ expect(subject).to eq "#{account.acct}: “This is a toot” (sensitive)"
+ end
+ end
+
+ context 'on a reblog' do
+ let(:reblog) { Fabricate(:status, text: 'This is a toot') }
+
+ it 'display that the toot is a reblog' do
+ expect(subject).to eq "#{account.acct} boosted #{reblog.account.acct}: “This is a toot”"
+ end
+ end
+ end
+end
diff --git a/spec/models/relationship_filter_spec.rb b/spec/models/relationship_filter_spec.rb
new file mode 100644
index 000000000..7c0f37a06
--- /dev/null
+++ b/spec/models/relationship_filter_spec.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe RelationshipFilter do
+ let(:account) { Fabricate(:account) }
+
+ describe '#results' do
+ context 'when default params are used' do
+ let(:subject) do
+ RelationshipFilter.new(account, 'order' => 'active').results
+ end
+
+ before do
+ add_following_account_with(last_status_at: 7.days.ago)
+ add_following_account_with(last_status_at: 1.day.ago)
+ add_following_account_with(last_status_at: 3.days.ago)
+ end
+
+ it 'returns followings ordered by last activity' do
+ expected_result = account.following.eager_load(:account_stat).reorder(nil).by_recent_status
+
+ expect(subject).to eq expected_result
+ end
+ end
+ end
+
+ def add_following_account_with(last_status_at:)
+ following_account = Fabricate(:account)
+ Fabricate(:account_stat, account: following_account,
+ last_status_at: last_status_at,
+ statuses_count: 1,
+ following_count: 0,
+ followers_count: 0)
+ Fabricate(:follow, account: account, target_account: following_account).account
+ end
+end
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index b238691a8..4aee14cbd 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -82,39 +82,6 @@ RSpec.describe Status, type: :model do
end
end
- describe '#title' do
- # rubocop:disable Style/InterpolationCheck
-
- let(:account) { subject.account }
-
- context 'if destroyed?' do
- it 'returns "#{account.acct} deleted status"' do
- subject.destroy!
- expect(subject.title).to eq "#{account.acct} deleted status"
- end
- end
-
- context 'unless destroyed?' do
- context 'if reblog?' do
- it 'returns "#{account.acct} shared #{reblog.account.acct}\'s: #{preview}"' do
- reblog = subject.reblog = other
- preview = subject.text.slice(0, 10).split("\n")[0]
- expect(subject.title).to(
- eq "#{account.acct} shared #{reblog.account.acct}'s: #{preview}"
- )
- end
- end
-
- context 'unless reblog?' do
- it 'returns "#{account.acct}: #{preview}"' do
- subject.reblog = nil
- preview = subject.text.slice(0, 20).split("\n")[0]
- expect(subject.title).to eq "#{account.acct}: #{preview}"
- end
- end
- end
- end
-
describe '#hidden?' do
context 'if private_visibility?' do
it 'returns true' do
@@ -407,6 +374,33 @@ RSpec.describe Status, type: :model do
end
end
+ context 'with a remote_only option set' do
+ let!(:local_account) { Fabricate(:account, domain: nil) }
+ let!(:remote_account) { Fabricate(:account, domain: 'test.com') }
+ let!(:local_status) { Fabricate(:status, account: local_account) }
+ let!(:remote_status) { Fabricate(:status, account: remote_account) }
+
+ subject { Status.as_public_timeline(viewer, :remote) }
+
+ context 'without a viewer' do
+ let(:viewer) { nil }
+
+ it 'does not include local instances statuses' do
+ expect(subject).not_to include(local_status)
+ expect(subject).to include(remote_status)
+ end
+ end
+
+ context 'with a viewer' do
+ let(:viewer) { Fabricate(:account, username: 'viewer') }
+
+ it 'does not include local instances statuses' do
+ expect(subject).not_to include(local_status)
+ expect(subject).to include(remote_status)
+ end
+ end
+ end
+
describe 'with an account passed in' do
before do
@account = Fabricate(:account)
diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb
index 3af6a0689..ded05ffbc 100644
--- a/spec/services/fetch_resource_service_spec.rb
+++ b/spec/services/fetch_resource_service_spec.rb
@@ -21,7 +21,11 @@ RSpec.describe FetchResourceService, type: :service do
context 'when OpenSSL::SSL::SSLError is raised' do
before do
- allow(Request).to receive_message_chain(:new, :add_headers, :on_behalf_of, :perform).and_raise(OpenSSL::SSL::SSLError)
+ request = double()
+ allow(Request).to receive(:new).and_return(request)
+ allow(request).to receive(:add_headers)
+ allow(request).to receive(:on_behalf_of)
+ allow(request).to receive(:perform).and_raise(OpenSSL::SSL::SSLError)
end
it { is_expected.to be_nil }
@@ -29,7 +33,11 @@ RSpec.describe FetchResourceService, type: :service do
context 'when HTTP::ConnectionError is raised' do
before do
- allow(Request).to receive_message_chain(:new, :add_headers, :on_behalf_of, :perform).and_raise(HTTP::ConnectionError)
+ request = double()
+ allow(Request).to receive(:new).and_return(request)
+ allow(request).to receive(:add_headers)
+ allow(request).to receive(:on_behalf_of)
+ allow(request).to receive(:perform).and_raise(HTTP::ConnectionError)
end
it { is_expected.to be_nil }
diff --git a/streaming/index.js b/streaming/index.js
index 0a19c74a6..500d577ce 100644
--- a/streaming/index.js
+++ b/streaming/index.js
@@ -266,6 +266,8 @@ const startWorker = (workerId) => {
'public:media',
'public:local',
'public:local:media',
+ 'public:remote',
+ 'public:remote:media',
'hashtag',
'hashtag:local',
];
@@ -297,6 +299,7 @@ const startWorker = (workerId) => {
const PUBLIC_ENDPOINTS = [
'/api/v1/streaming/public',
'/api/v1/streaming/public/local',
+ '/api/v1/streaming/public/remote',
'/api/v1/streaming/hashtag',
'/api/v1/streaming/hashtag/local',
];
@@ -535,6 +538,13 @@ const startWorker = (workerId) => {
streamFrom(channel, req, streamToHttp(req, res), streamHttpEnd(req), true);
});
+ app.get('/api/v1/streaming/public/remote', (req, res) => {
+ const onlyMedia = req.query.only_media === '1' || req.query.only_media === 'true';
+ const channel = onlyMedia ? 'timeline:public:remote:media' : 'timeline:public:remote';
+
+ streamFrom(channel, req, streamToHttp(req, res), streamHttpEnd(req), true);
+ });
+
app.get('/api/v1/streaming/direct', (req, res) => {
const channel = `timeline:direct:${req.accountId}`;
streamFrom(channel, req, streamToHttp(req, res), streamHttpEnd(req, subscriptionHeartbeat(channel)), true);
@@ -599,12 +609,18 @@ const startWorker = (workerId) => {
case 'public:local':
streamFrom('timeline:public:local', req, streamToWs(req, ws), streamWsEnd(req, ws), true);
break;
+ case 'public:remote':
+ streamFrom('timeline:public:remote', req, streamToWs(req, ws), streamWsEnd(req, ws), true);
+ break;
case 'public:media':
streamFrom('timeline:public:media', req, streamToWs(req, ws), streamWsEnd(req, ws), true);
break;
case 'public:local:media':
streamFrom('timeline:public:local:media', req, streamToWs(req, ws), streamWsEnd(req, ws), true);
break;
+ case 'public:remote:media':
+ streamFrom('timeline:public:remote:media', req, streamToWs(req, ws), streamWsEnd(req, ws), true);
+ break;
case 'direct':
channel = `timeline:direct:${req.accountId}`;
streamFrom(channel, req, streamToWs(req, ws), streamWsEnd(req, ws, subscriptionHeartbeat(channel)), true);
diff --git a/yarn.lock b/yarn.lock
index e0ded94d6..b8b9d2771 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -9,28 +9,28 @@
dependencies:
"@babel/highlight" "^7.8.3"
-"@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c"
- integrity sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g==
+"@babel/compat-data@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.6.tgz#3f604c40e420131affe6f2c8052e9a275ae2049b"
+ integrity sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g==
dependencies:
- browserslist "^4.9.1"
+ browserslist "^4.11.1"
invariant "^2.2.4"
semver "^5.5.0"
-"@babel/core@^7.1.0", "@babel/core@^7.4.5", "@babel/core@^7.7.5", "@babel/core@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e"
- integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==
+"@babel/core@^7.1.0", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.6.tgz#d9aa1f580abf3b2286ef40b6904d390904c63376"
+ integrity sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==
dependencies:
"@babel/code-frame" "^7.8.3"
- "@babel/generator" "^7.9.0"
+ "@babel/generator" "^7.9.6"
"@babel/helper-module-transforms" "^7.9.0"
- "@babel/helpers" "^7.9.0"
- "@babel/parser" "^7.9.0"
+ "@babel/helpers" "^7.9.6"
+ "@babel/parser" "^7.9.6"
"@babel/template" "^7.8.6"
- "@babel/traverse" "^7.9.0"
- "@babel/types" "^7.9.0"
+ "@babel/traverse" "^7.9.6"
+ "@babel/types" "^7.9.6"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.1"
@@ -40,13 +40,13 @@
semver "^5.4.1"
source-map "^0.5.0"
+"@babel/generator@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz#5408c82ac5de98cda0d77d8124e99fa1f2170a43"
+ integrity sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==
-"@babel/generator@^7.4.0", "@babel/generator@^7.9.0":
- version "7.9.4"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.4.tgz#12441e90c3b3c4159cdecf312075bf1a8ce2dbce"
- integrity sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==
dependencies:
- "@babel/types" "^7.9.0"
+ "@babel/types" "^7.9.6"
jsesc "^2.5.1"
lodash "^4.17.13"
source-map "^0.5.0"
@@ -83,13 +83,13 @@
"@babel/helper-annotate-as-pure" "^7.8.3"
"@babel/types" "^7.9.0"
-"@babel/helper-compilation-targets@^7.8.7":
- version "7.8.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz#dac1eea159c0e4bd46e309b5a1b04a66b53c1dde"
- integrity sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==
+"@babel/helper-compilation-targets@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz#1e05b7ccc9d38d2f8b40b458b380a04dcfadd38a"
+ integrity sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw==
dependencies:
- "@babel/compat-data" "^7.8.6"
- browserslist "^4.9.1"
+ "@babel/compat-data" "^7.9.6"
+ browserslist "^4.11.1"
invariant "^2.2.4"
levenary "^1.1.1"
semver "^5.5.0"
@@ -149,6 +149,15 @@
"@babel/template" "^7.8.3"
"@babel/types" "^7.8.3"
+"@babel/helper-function-name@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c"
+ integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.8.3"
+ "@babel/template" "^7.8.3"
+ "@babel/types" "^7.9.5"
+
"@babel/helper-get-function-arity@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5"
@@ -231,14 +240,14 @@
"@babel/types" "^7.8.3"
"@babel/helper-replace-supers@^7.8.6":
- version "7.8.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8"
- integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz#03149d7e6a5586ab6764996cd31d6981a17e1444"
+ integrity sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==
dependencies:
"@babel/helper-member-expression-to-functions" "^7.8.3"
"@babel/helper-optimise-call-expression" "^7.8.3"
- "@babel/traverse" "^7.8.6"
- "@babel/types" "^7.8.6"
+ "@babel/traverse" "^7.9.6"
+ "@babel/types" "^7.9.6"
"@babel/helper-simple-access@^7.8.3":
version "7.8.3"
@@ -255,10 +264,10 @@
dependencies:
"@babel/types" "^7.8.3"
-"@babel/helper-validator-identifier@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed"
- integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==
+"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80"
+ integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==
"@babel/helper-wrap-function@^7.8.3":
version "7.8.3"
@@ -270,14 +279,14 @@
"@babel/traverse" "^7.8.3"
"@babel/types" "^7.8.3"
-"@babel/helpers@^7.9.0":
- version "7.9.2"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f"
- integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==
+"@babel/helpers@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.6.tgz#092c774743471d0bb6c7de3ad465ab3d3486d580"
+ integrity sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==
dependencies:
"@babel/template" "^7.8.3"
- "@babel/traverse" "^7.9.0"
- "@babel/types" "^7.9.0"
+ "@babel/traverse" "^7.9.6"
+ "@babel/types" "^7.9.6"
"@babel/highlight@^7.8.3":
version "7.9.0"
@@ -288,10 +297,10 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0":
- version "7.9.4"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8"
- integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==
+"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7"
+ integrity sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==
"@babel/plugin-proposal-async-generator-functions@^7.8.3":
version "7.8.3"
@@ -351,13 +360,14 @@
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-numeric-separator" "^7.8.3"
-"@babel/plugin-proposal-object-rest-spread@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz#a28993699fc13df165995362693962ba6b061d6f"
- integrity sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow==
+"@babel/plugin-proposal-object-rest-spread@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz#7a093586fcb18b08266eb1a7177da671ac575b63"
+ integrity sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-object-rest-spread" "^7.8.0"
+ "@babel/plugin-transform-parameters" "^7.9.5"
"@babel/plugin-proposal-optional-catch-binding@^7.8.3":
version "7.8.3"
@@ -383,20 +393,27 @@
"@babel/helper-create-regexp-features-plugin" "^7.8.8"
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-syntax-async-generators@^7.8.0":
+"@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4":
version "7.8.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-bigint@^7.0.0":
+"@babel/plugin-syntax-bigint@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
+"@babel/plugin-syntax-class-properties@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz#6cb933a8872c8d359bfde69bbeaae5162fd1e8f7"
+ integrity sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
"@babel/plugin-syntax-decorators@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.8.3.tgz#8d2c15a9f1af624b0025f961682a9d53d3001bda"
@@ -411,7 +428,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-json-strings@^7.8.0":
+"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
@@ -425,7 +442,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0":
+"@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz#3995d7d7ffff432f6ddc742b47e730c054599897"
+ integrity sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
@@ -439,21 +463,21 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0":
+"@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-optional-catch-binding@^7.8.0":
+"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-optional-chaining@^7.8.0":
+"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
@@ -498,14 +522,14 @@
"@babel/helper-plugin-utils" "^7.8.3"
lodash "^4.17.13"
-"@babel/plugin-transform-classes@^7.9.0":
- version "7.9.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz#8603fc3cc449e31fdbdbc257f67717536a11af8d"
- integrity sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ==
+"@babel/plugin-transform-classes@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c"
+ integrity sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==
dependencies:
"@babel/helper-annotate-as-pure" "^7.8.3"
"@babel/helper-define-map" "^7.8.3"
- "@babel/helper-function-name" "^7.8.3"
+ "@babel/helper-function-name" "^7.9.5"
"@babel/helper-optimise-call-expression" "^7.8.3"
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/helper-replace-supers" "^7.8.6"
@@ -519,10 +543,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-transform-destructuring@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz#20ddfbd9e4676906b1056ee60af88590cc7aaa0b"
- integrity sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==
+"@babel/plugin-transform-destructuring@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50"
+ integrity sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
@@ -578,34 +602,34 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-transform-modules-amd@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4"
- integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==
+"@babel/plugin-transform-modules-amd@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz#8539ec42c153d12ea3836e0e3ac30d5aae7b258e"
+ integrity sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw==
dependencies:
"@babel/helper-module-transforms" "^7.9.0"
"@babel/helper-plugin-utils" "^7.8.3"
- babel-plugin-dynamic-import-node "^2.3.0"
+ babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-commonjs@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940"
- integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g==
+"@babel/plugin-transform-modules-commonjs@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz#64b7474a4279ee588cacd1906695ca721687c277"
+ integrity sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ==
dependencies:
"@babel/helper-module-transforms" "^7.9.0"
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/helper-simple-access" "^7.8.3"
- babel-plugin-dynamic-import-node "^2.3.0"
+ babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-systemjs@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90"
- integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==
+"@babel/plugin-transform-modules-systemjs@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz#207f1461c78a231d5337a92140e52422510d81a4"
+ integrity sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg==
dependencies:
"@babel/helper-hoist-variables" "^7.8.3"
"@babel/helper-module-transforms" "^7.9.0"
"@babel/helper-plugin-utils" "^7.8.3"
- babel-plugin-dynamic-import-node "^2.3.0"
+ babel-plugin-dynamic-import-node "^2.3.3"
"@babel/plugin-transform-modules-umd@^7.9.0":
version "7.9.0"
@@ -637,10 +661,10 @@
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/helper-replace-supers" "^7.8.3"
-"@babel/plugin-transform-parameters@^7.8.7":
- version "7.9.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz#3028d0cc20ddc733166c6e9c8534559cee09f54a"
- integrity sha512-fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg==
+"@babel/plugin-transform-parameters@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795"
+ integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==
dependencies:
"@babel/helper-get-function-arity" "^7.8.3"
"@babel/helper-plugin-utils" "^7.8.3"
@@ -771,13 +795,13 @@
"@babel/helper-create-regexp-features-plugin" "^7.8.3"
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/preset-env@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.0.tgz#a5fc42480e950ae8f5d9f8f2bbc03f52722df3a8"
- integrity sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ==
+"@babel/preset-env@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.6.tgz#df063b276c6455ec6fcfc6e53aacc38da9b0aea6"
+ integrity sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ==
dependencies:
- "@babel/compat-data" "^7.9.0"
- "@babel/helper-compilation-targets" "^7.8.7"
+ "@babel/compat-data" "^7.9.6"
+ "@babel/helper-compilation-targets" "^7.9.6"
"@babel/helper-module-imports" "^7.8.3"
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-proposal-async-generator-functions" "^7.8.3"
@@ -785,7 +809,7 @@
"@babel/plugin-proposal-json-strings" "^7.8.3"
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3"
"@babel/plugin-proposal-numeric-separator" "^7.8.3"
- "@babel/plugin-proposal-object-rest-spread" "^7.9.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.9.6"
"@babel/plugin-proposal-optional-catch-binding" "^7.8.3"
"@babel/plugin-proposal-optional-chaining" "^7.9.0"
"@babel/plugin-proposal-unicode-property-regex" "^7.8.3"
@@ -802,9 +826,9 @@
"@babel/plugin-transform-async-to-generator" "^7.8.3"
"@babel/plugin-transform-block-scoped-functions" "^7.8.3"
"@babel/plugin-transform-block-scoping" "^7.8.3"
- "@babel/plugin-transform-classes" "^7.9.0"
+ "@babel/plugin-transform-classes" "^7.9.5"
"@babel/plugin-transform-computed-properties" "^7.8.3"
- "@babel/plugin-transform-destructuring" "^7.8.3"
+ "@babel/plugin-transform-destructuring" "^7.9.5"
"@babel/plugin-transform-dotall-regex" "^7.8.3"
"@babel/plugin-transform-duplicate-keys" "^7.8.3"
"@babel/plugin-transform-exponentiation-operator" "^7.8.3"
@@ -812,14 +836,14 @@
"@babel/plugin-transform-function-name" "^7.8.3"
"@babel/plugin-transform-literals" "^7.8.3"
"@babel/plugin-transform-member-expression-literals" "^7.8.3"
- "@babel/plugin-transform-modules-amd" "^7.9.0"
- "@babel/plugin-transform-modules-commonjs" "^7.9.0"
- "@babel/plugin-transform-modules-systemjs" "^7.9.0"
+ "@babel/plugin-transform-modules-amd" "^7.9.6"
+ "@babel/plugin-transform-modules-commonjs" "^7.9.6"
+ "@babel/plugin-transform-modules-systemjs" "^7.9.6"
"@babel/plugin-transform-modules-umd" "^7.9.0"
"@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3"
"@babel/plugin-transform-new-target" "^7.8.3"
"@babel/plugin-transform-object-super" "^7.8.3"
- "@babel/plugin-transform-parameters" "^7.8.7"
+ "@babel/plugin-transform-parameters" "^7.9.5"
"@babel/plugin-transform-property-literals" "^7.8.3"
"@babel/plugin-transform-regenerator" "^7.8.7"
"@babel/plugin-transform-reserved-words" "^7.8.3"
@@ -830,8 +854,8 @@
"@babel/plugin-transform-typeof-symbol" "^7.8.4"
"@babel/plugin-transform-unicode-regex" "^7.8.3"
"@babel/preset-modules" "^0.1.3"
- "@babel/types" "^7.9.0"
- browserslist "^4.9.1"
+ "@babel/types" "^7.9.6"
+ browserslist "^4.11.1"
core-js-compat "^3.6.2"
invariant "^2.2.2"
levenary "^1.1.1"
@@ -882,14 +906,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.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
- version "7.9.2"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06"
- integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==
+"@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.8.4", "@babel/runtime@^7.9.2":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f"
+ integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==
dependencies:
regenerator-runtime "^0.13.4"
-"@babel/template@^7.4.0", "@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6":
+"@babel/template@^7.3.3", "@babel/template@^7.8.3", "@babel/template@^7.8.6":
version "7.8.6"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b"
integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==
@@ -898,39 +922,44 @@
"@babel/parser" "^7.8.6"
"@babel/types" "^7.8.6"
-"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.4", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892"
- integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz#5540d7577697bf619cc57b92aa0f1c231a94f442"
+ integrity sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==
dependencies:
"@babel/code-frame" "^7.8.3"
- "@babel/generator" "^7.9.0"
- "@babel/helper-function-name" "^7.8.3"
+ "@babel/generator" "^7.9.6"
+ "@babel/helper-function-name" "^7.9.5"
"@babel/helper-split-export-declaration" "^7.8.3"
- "@babel/parser" "^7.9.0"
- "@babel/types" "^7.9.0"
+ "@babel/parser" "^7.9.6"
+ "@babel/types" "^7.9.6"
debug "^4.1.0"
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.4.0", "@babel/types@^7.4.4", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5"
- integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==
+"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5", "@babel/types@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7"
+ integrity sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==
dependencies:
- "@babel/helper-validator-identifier" "^7.9.0"
+ "@babel/helper-validator-identifier" "^7.9.5"
lodash "^4.17.13"
to-fast-properties "^2.0.0"
-"@clusterws/cws@^0.17.3":
- version "0.17.3"
- resolved "https://registry.yarnpkg.com/@clusterws/cws/-/cws-0.17.3.tgz#64ce6a34b2bd357c29bdc0675f27b37279e8661f"
- integrity sha512-5WSpxwD8yIIWPTyMspS/IDBp1d4yHnK4A0pjIzYGS1EmJHKylc4jgMiG66qbirjxZ9/IlzuvmYCgaXA+TQbe+A==
+"@bcoe/v8-coverage@^0.2.3":
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
+ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+
+"@clusterws/cws@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@clusterws/cws/-/cws-2.0.0.tgz#73e6ee97b2dcb561d294caa47d48a195234e18a9"
+ integrity sha512-ZKG2vR0XJyyaXEvcV8cxzuspYnEl4owyqkdcMcHd/Pza9nAKQ5iH+yrEg1JsScg/zBIqTZ9D/3rWJavVwTy0mw==
"@cnakazawa/watch@^1.0.3":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef"
- integrity sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a"
+ integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==
dependencies:
exec-sh "^0.3.2"
minimist "^1.2.0"
@@ -1017,6 +1046,18 @@
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.4.tgz#622a72bebd1e3f48d921563b4b60a762295a81fc"
integrity sha512-6PYY5DVdAY1ifaQW6XYTnOMihmBVT27elqSjEoodchsGjzYlEsTQMcEhSud99kVawatyTZRTiVkJ/c6lwbQ7nA==
+"@formatjs/intl-unified-numberformat@^3.3.3":
+ version "3.3.6"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-unified-numberformat/-/intl-unified-numberformat-3.3.6.tgz#ab69818f7568894023cb31fdb5b5c7eed62c6537"
+ integrity sha512-VQYswh9Pxf4kN6FQvKprAQwSJrF93eJstCDPM1HIt3c3O6NqPFWNWhZ91PLTppOV11rLYsFK11ZxiGbnLNiPTg==
+ dependencies:
+ "@formatjs/intl-utils" "^2.2.5"
+
+"@formatjs/intl-utils@^2.2.5":
+ version "2.2.5"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-utils/-/intl-utils-2.2.5.tgz#eaafd94df3d102ee13e54e80f992a33868a6b1e8"
+ integrity sha512-p7gcmazKROteL4IECCp03Qrs790fZ8tbemUAjQu0+K0AaAlK49rI1SIFFq3LzDUAqXIshV95JJhRe/yXxkal5g==
+
"@gamestdio/websocket@^0.3.2":
version "0.3.2"
resolved "https://registry.yarnpkg.com/@gamestdio/websocket/-/websocket-0.3.2.tgz#321ba0976ee30fd14e51dbf8faa85ce7b325f76a"
@@ -1037,178 +1078,156 @@
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd"
integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==
-"@jest/console@^24.7.1":
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz#32a9e42535a97aedfe037e725bd67e954b459545"
- integrity sha512-iNhtIy2M8bXlAOULWVTUxmnelTLFneTNEkHCgPmgd+zNwy9zVddJ6oS5rZ9iwoscNdT5mMwUd0C51v/fSlzItg==
+"@jest/console@^25.4.0", "@jest/console@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.5.0.tgz#770800799d510f37329c508a9edd0b7b447d9abb"
+ integrity sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==
dependencies:
- "@jest/source-map" "^24.3.0"
- chalk "^2.0.1"
- slash "^2.0.0"
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
+ jest-message-util "^25.5.0"
+ jest-util "^25.5.0"
+ slash "^3.0.0"
-"@jest/console@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0"
- integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==
+"@jest/core@^25.4.0":
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.4.0.tgz#cc1fe078df69b8f0fbb023bb0bcee23ef3b89411"
+ integrity sha512-h1x9WSVV0+TKVtATGjyQIMJENs8aF6eUjnCoi4jyRemYZmekLr8EJOGQqTWEX8W6SbZ6Skesy9pGXrKeAolUJw==
dependencies:
- "@jest/source-map" "^24.9.0"
- chalk "^2.0.1"
- slash "^2.0.0"
-
-"@jest/core@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4"
- integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==
- dependencies:
- "@jest/console" "^24.7.1"
- "@jest/reporters" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/transform" "^24.9.0"
- "@jest/types" "^24.9.0"
- ansi-escapes "^3.0.0"
- chalk "^2.0.1"
+ "@jest/console" "^25.4.0"
+ "@jest/reporters" "^25.4.0"
+ "@jest/test-result" "^25.4.0"
+ "@jest/transform" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ ansi-escapes "^4.2.1"
+ chalk "^3.0.0"
exit "^0.1.2"
- graceful-fs "^4.1.15"
- jest-changed-files "^24.9.0"
- jest-config "^24.9.0"
- jest-haste-map "^24.9.0"
- jest-message-util "^24.9.0"
- jest-regex-util "^24.3.0"
- jest-resolve "^24.9.0"
- jest-resolve-dependencies "^24.9.0"
- jest-runner "^24.9.0"
- jest-runtime "^24.9.0"
- jest-snapshot "^24.9.0"
- jest-util "^24.9.0"
- jest-validate "^24.9.0"
- jest-watcher "^24.9.0"
- micromatch "^3.1.10"
- p-each-series "^1.0.0"
- realpath-native "^1.1.0"
- rimraf "^2.5.4"
- slash "^2.0.0"
- strip-ansi "^5.0.0"
+ graceful-fs "^4.2.3"
+ jest-changed-files "^25.4.0"
+ jest-config "^25.4.0"
+ jest-haste-map "^25.4.0"
+ jest-message-util "^25.4.0"
+ jest-regex-util "^25.2.6"
+ jest-resolve "^25.4.0"
+ jest-resolve-dependencies "^25.4.0"
+ jest-runner "^25.4.0"
+ jest-runtime "^25.4.0"
+ jest-snapshot "^25.4.0"
+ jest-util "^25.4.0"
+ jest-validate "^25.4.0"
+ jest-watcher "^25.4.0"
+ micromatch "^4.0.2"
+ p-each-series "^2.1.0"
+ realpath-native "^2.0.0"
+ rimraf "^3.0.0"
+ slash "^3.0.0"
+ strip-ansi "^6.0.0"
-"@jest/environment@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18"
- integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==
+"@jest/environment@^25.4.0", "@jest/environment@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.5.0.tgz#aa33b0c21a716c65686638e7ef816c0e3a0c7b37"
+ integrity sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==
dependencies:
- "@jest/fake-timers" "^24.9.0"
- "@jest/transform" "^24.9.0"
- "@jest/types" "^24.9.0"
- jest-mock "^24.9.0"
+ "@jest/fake-timers" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ jest-mock "^25.5.0"
-"@jest/fake-timers@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93"
- integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==
+"@jest/fake-timers@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.5.0.tgz#46352e00533c024c90c2bc2ad9f2959f7f114185"
+ integrity sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==
dependencies:
- "@jest/types" "^24.9.0"
- jest-message-util "^24.9.0"
- jest-mock "^24.9.0"
+ "@jest/types" "^25.5.0"
+ jest-message-util "^25.5.0"
+ jest-mock "^25.5.0"
+ jest-util "^25.5.0"
+ lolex "^5.0.0"
-"@jest/reporters@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43"
- integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==
+"@jest/globals@^25.5.2":
+ version "25.5.2"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-25.5.2.tgz#5e45e9de8d228716af3257eeb3991cc2e162ca88"
+ integrity sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA==
dependencies:
- "@jest/environment" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/transform" "^24.9.0"
- "@jest/types" "^24.9.0"
- chalk "^2.0.1"
+ "@jest/environment" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ expect "^25.5.0"
+
+"@jest/reporters@^25.4.0":
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.4.0.tgz#836093433b32ce4e866298af2d6fcf6ed351b0b0"
+ integrity sha512-bhx/buYbZgLZm4JWLcRJ/q9Gvmd3oUh7k2V7gA4ZYBx6J28pIuykIouclRdiAC6eGVX1uRZT+GK4CQJLd/PwPg==
+ dependencies:
+ "@bcoe/v8-coverage" "^0.2.3"
+ "@jest/console" "^25.4.0"
+ "@jest/test-result" "^25.4.0"
+ "@jest/transform" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ chalk "^3.0.0"
+ collect-v8-coverage "^1.0.0"
exit "^0.1.2"
glob "^7.1.2"
- istanbul-lib-coverage "^2.0.2"
- istanbul-lib-instrument "^3.0.1"
- istanbul-lib-report "^2.0.4"
- istanbul-lib-source-maps "^3.0.1"
- istanbul-reports "^2.2.6"
- jest-haste-map "^24.9.0"
- jest-resolve "^24.9.0"
- jest-runtime "^24.9.0"
- jest-util "^24.9.0"
- jest-worker "^24.6.0"
- node-notifier "^5.4.2"
- slash "^2.0.0"
+ istanbul-lib-coverage "^3.0.0"
+ istanbul-lib-instrument "^4.0.0"
+ istanbul-lib-report "^3.0.0"
+ istanbul-lib-source-maps "^4.0.0"
+ istanbul-reports "^3.0.2"
+ jest-haste-map "^25.4.0"
+ jest-resolve "^25.4.0"
+ jest-util "^25.4.0"
+ jest-worker "^25.4.0"
+ slash "^3.0.0"
source-map "^0.6.0"
- string-length "^2.0.0"
+ string-length "^3.1.0"
+ terminal-link "^2.0.0"
+ v8-to-istanbul "^4.1.3"
+ optionalDependencies:
+ node-notifier "^6.0.0"
-"@jest/source-map@^24.3.0":
- version "24.3.0"
- resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.3.0.tgz#563be3aa4d224caf65ff77edc95cd1ca4da67f28"
- integrity sha512-zALZt1t2ou8le/crCeeiRYzvdnTzaIlpOWaet45lNSqNJUnXbppUUFR4ZUAlzgDmKee4Q5P/tKXypI1RiHwgag==
+"@jest/source-map@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-25.5.0.tgz#df5c20d6050aa292c2c6d3f0d2c7606af315bd1b"
+ integrity sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==
dependencies:
callsites "^3.0.0"
- graceful-fs "^4.1.15"
+ graceful-fs "^4.2.4"
source-map "^0.6.0"
-"@jest/source-map@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714"
- integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==
+"@jest/test-result@^25.4.0", "@jest/test-result@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.5.0.tgz#139a043230cdeffe9ba2d8341b27f2efc77ce87c"
+ integrity sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==
dependencies:
- callsites "^3.0.0"
- graceful-fs "^4.1.15"
- source-map "^0.6.0"
-
-"@jest/test-result@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca"
- integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==
- dependencies:
- "@jest/console" "^24.9.0"
- "@jest/types" "^24.9.0"
+ "@jest/console" "^25.5.0"
+ "@jest/types" "^25.5.0"
"@types/istanbul-lib-coverage" "^2.0.0"
+ collect-v8-coverage "^1.0.0"
-"@jest/test-sequencer@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31"
- integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==
+"@jest/test-sequencer@^25.5.4":
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz#9b4e685b36954c38d0f052e596d28161bdc8b737"
+ integrity sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA==
dependencies:
- "@jest/test-result" "^24.9.0"
- jest-haste-map "^24.9.0"
- jest-runner "^24.9.0"
- jest-runtime "^24.9.0"
+ "@jest/test-result" "^25.5.0"
+ graceful-fs "^4.2.4"
+ jest-haste-map "^25.5.1"
+ jest-runner "^25.5.4"
+ jest-runtime "^25.5.4"
-"@jest/transform@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56"
- integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==
+"@jest/transform@^25.2.4", "@jest/transform@^25.4.0", "@jest/transform@^25.5.1":
+ version "25.5.1"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.5.1.tgz#0469ddc17699dd2bf985db55fa0fb9309f5c2db3"
+ integrity sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/types" "^24.9.0"
- babel-plugin-istanbul "^5.1.0"
- chalk "^2.0.1"
- convert-source-map "^1.4.0"
- fast-json-stable-stringify "^2.0.0"
- graceful-fs "^4.1.15"
- jest-haste-map "^24.9.0"
- jest-regex-util "^24.9.0"
- jest-util "^24.9.0"
- micromatch "^3.1.10"
- pirates "^4.0.1"
- realpath-native "^1.1.0"
- slash "^2.0.0"
- source-map "^0.6.1"
- write-file-atomic "2.4.1"
-
-"@jest/transform@^25.2.4":
- version "25.2.4"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.2.4.tgz#34336f37f13f62f7d1f5b93d5d150ba9eb3e11b9"
- integrity sha512-6eRigvb+G6bs4kW5j1/y8wu4nCrmVuIe0epPBbiWaYlwawJ8yi1EIyK3d/btDqmBpN5GpN4YhR6iPPnDmkYdTA==
- dependencies:
- "@babel/core" "^7.1.0"
- "@jest/types" "^25.2.3"
+ "@jest/types" "^25.5.0"
babel-plugin-istanbul "^6.0.0"
chalk "^3.0.0"
convert-source-map "^1.4.0"
fast-json-stable-stringify "^2.0.0"
- graceful-fs "^4.2.3"
- jest-haste-map "^25.2.3"
- jest-regex-util "^25.2.1"
- jest-util "^25.2.3"
+ graceful-fs "^4.2.4"
+ jest-haste-map "^25.5.1"
+ jest-regex-util "^25.2.6"
+ jest-util "^25.5.0"
micromatch "^4.0.2"
pirates "^4.0.1"
realpath-native "^2.0.0"
@@ -1216,34 +1235,32 @@
source-map "^0.6.1"
write-file-atomic "^3.0.0"
-"@jest/types@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59"
- integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==
- dependencies:
- "@types/istanbul-lib-coverage" "^2.0.0"
- "@types/istanbul-reports" "^1.1.1"
- "@types/yargs" "^13.0.0"
-
-"@jest/types@^25.2.3":
- version "25.2.3"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.2.3.tgz#035c4fb94e2da472f359ff9a211915d59987f6b6"
- integrity sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==
+"@jest/types@^25.2.3", "@jest/types@^25.4.0", "@jest/types@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d"
+ integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==
dependencies:
"@types/istanbul-lib-coverage" "^2.0.0"
"@types/istanbul-reports" "^1.1.1"
"@types/yargs" "^15.0.0"
chalk "^3.0.0"
-"@rails/ujs@^6.0.2":
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.0.2.tgz#8d32452d51c5e115374a218fb5475803dc17f4c0"
- integrity sha512-KSQjJG8yzSWC1IT+UtFQglefABU37hpJ7uAz39K1/iWtoaJaI9ydGIaxxpJBT/PmYv4kS6lCSjXq13DELeJocw==
+"@rails/ujs@^6.0.3":
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.0.3.tgz#e68a03278e30daea6a110aac5dfa33c60c53055d"
+ integrity sha512-CM9OEvoN9eXkaX7PXEnbsQLULJ97b9rVmwliZbz/iBOERLJ68Rk3ClJe+fQEMKU4CBZfky2lIRnfslOdUs9SLQ==
-"@types/babel__core@^7.1.0", "@types/babel__core@^7.1.2":
- version "7.1.3"
- resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.3.tgz#e441ea7df63cd080dfcd02ab199e6d16a735fc30"
- integrity sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA==
+"@sinonjs/commons@^1.7.0":
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.7.2.tgz#505f55c74e0272b43f6c52d81946bed7058fc0e2"
+ integrity sha512-+DUO6pnp3udV/v2VfUWgaY5BIE1IfT7lLfeDzPVeMT1XKkaAp9LgSI9x5RtrFQoZ9Oi0PgXQQHPaoKu7dCjVxw==
+ dependencies:
+ type-detect "4.0.8"
+
+"@types/babel__core@^7.1.0", "@types/babel__core@^7.1.3", "@types/babel__core@^7.1.7":
+ version "7.1.7"
+ resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89"
+ integrity sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw==
dependencies:
"@babel/parser" "^7.1.0"
"@babel/types" "^7.0.0"
@@ -1252,9 +1269,9 @@
"@types/babel__traverse" "*"
"@types/babel__generator@*":
- version "7.0.2"
- resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc"
- integrity sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ==
+ version "7.6.1"
+ resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04"
+ integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==
dependencies:
"@babel/types" "^7.0.0"
@@ -1267,9 +1284,9 @@
"@babel/types" "^7.0.0"
"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
- version "7.0.6"
- resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.6.tgz#328dd1a8fc4cfe3c8458be9477b219ea158fd7b2"
- integrity sha512-XYVgHF2sQ0YblLRMLNPB3CkFMewzFmlDsH/TneZFHUXDlABQgh88uOxuez7ZcXxayLFrqLwtDH1t+FmlFwNZxw==
+ version "7.0.11"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.11.tgz#1ae3010e8bf8851d324878b42acec71986486d18"
+ integrity sha512-ddHK5icION5U6q11+tV2f9Mo6CZVuT8GJKld2q9LqHSZbvLbH34Kcu2yFGckZut453+eQU6btIA3RihmnRgI+Q==
dependencies:
"@babel/types" "^7.3.0"
@@ -1292,15 +1309,22 @@
"@types/minimatch" "*"
"@types/node" "*"
-"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0":
+"@types/graceful-fs@^4.1.2":
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f"
+ integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==
+ dependencies:
+ "@types/node" "*"
+
+"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff"
integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==
"@types/istanbul-lib-report@*":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c"
- integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686"
+ integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==
dependencies:
"@types/istanbul-lib-coverage" "*"
@@ -1318,19 +1342,29 @@
integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
"@types/node@*":
- version "12.7.8"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.8.tgz#cb1bf6800238898bc2ff6ffa5702c3cadd350708"
- integrity sha512-FMdVn84tJJdV+xe+53sYiZS4R5yn1mAIxfj+DVoNiQjTYz1+OYmjwEZr1ev9nU0axXwda0QDbYl06QHanRVH3A==
+ version "13.13.5"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.5.tgz#96ec3b0afafd64a4ccea9107b75bf8489f0e5765"
+ integrity sha512-3ySmiBYJPqgjiHA7oEaIo2Rzz0HrOZ7yrNO5HWyaE5q0lQ3BppDZ3N53Miz8bw2I7gh1/zir2MGVZBvpb1zq9g==
+
+"@types/normalize-package-data@^2.4.0":
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
+ integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==
"@types/parse-json@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
+"@types/prettier@^1.19.0":
+ version "1.19.1"
+ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f"
+ integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==
+
"@types/q@^1.5.1":
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.1.tgz#48fd98c1561fe718b61733daed46ff115b496e18"
- integrity sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA==
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8"
+ integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==
"@types/react@16.4.6":
version "16.4.6"
@@ -1339,22 +1373,20 @@
dependencies:
csstype "^2.2.0"
+"@types/schema-utils@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@types/schema-utils/-/schema-utils-1.0.0.tgz#295d36f01e2cb8bc3207ca1d9a68e210db6b40cb"
+ integrity sha512-YesPanU1+WCigC/Aj1Mga8UCOjHIfMNHZ3zzDsUY7lI8GlKnh/Kv2QwJOQ+jNQ36Ru7IfzSedlG14hppYaN13A==
+
"@types/stack-utils@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==
"@types/yargs-parser@*":
- version "13.1.0"
- resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz#c563aa192f39350a1d18da36c5a8da382bbd8228"
- integrity sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==
-
-"@types/yargs@^13.0.0":
- version "13.0.2"
- resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.2.tgz#a64674fc0149574ecd90ba746e932b5a5f7b3653"
- integrity sha512-lwwgizwk/bIIU+3ELORkyuOgDjCh7zuWDFqRtPPhhVgq9N1F7CvLNKg1TX4f2duwtKQ0p044Au9r1PLIXHrIzQ==
- dependencies:
- "@types/yargs-parser" "*"
+ version "15.0.0"
+ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d"
+ integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==
"@types/yargs@^15.0.0":
version "15.0.4"
@@ -1523,11 +1555,6 @@ abab@^2.0.0:
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a"
integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==
-abbrev@1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
- integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
-
accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
version "1.3.7"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
@@ -1536,10 +1563,10 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
mime-types "~2.1.24"
negotiator "0.6.2"
-acorn-globals@^4.1.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103"
- integrity sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw==
+acorn-globals@^4.3.2:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7"
+ integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==
dependencies:
acorn "^6.0.1"
acorn-walk "^6.0.1"
@@ -1571,20 +1598,20 @@ acorn@^3.0.4:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
integrity sha1-ReN/s56No/JbruP/U2niu18iAXo=
-acorn@^5.5.0, acorn@^5.5.3:
+acorn@^5.5.0:
version "5.7.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
-acorn@^6.0.1, acorn@^6.2.1:
- version "6.3.0"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e"
- integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==
+acorn@^6.0.1, acorn@^6.4.1:
+ version "6.4.1"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
+ integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
acorn@^7.1.0, acorn@^7.1.1:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf"
- integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe"
+ integrity sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==
aggregate-error@^3.0.0:
version "3.0.1"
@@ -1633,20 +1660,10 @@ ajv@^4.7.0:
co "^4.6.0"
json-stable-stringify "^1.0.1"
-ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1:
- version "6.10.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52"
- integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==
- dependencies:
- fast-deep-equal "^2.0.1"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.4.1"
- uri-js "^4.2.2"
-
-ajv@^6.12.0:
- version "6.12.0"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7"
- integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==
+ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5, ajv@^6.9.1:
+ version "6.12.2"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd"
+ integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==
dependencies:
fast-deep-equal "^3.1.1"
fast-json-stable-stringify "^2.0.0"
@@ -1668,11 +1685,6 @@ ansi-escapes@^1.1.0:
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
integrity sha1-06ioOzGapneTZisT52HHkRQiMG4=
-ansi-escapes@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
- integrity sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==
-
ansi-escapes@^4.2.1:
version "4.3.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz#a4ce2b33d6b214b7950d8595c212f12ac9cc569d"
@@ -1695,11 +1707,6 @@ ansi-regex@^3.0.0:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
-ansi-regex@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9"
- integrity sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==
-
ansi-regex@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
@@ -1722,15 +1729,7 @@ 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"
-
-ansi-styles@^4.1.0:
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359"
integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==
@@ -1852,12 +1851,12 @@ array-unique@^0.3.2:
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
array.prototype.find@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.0.tgz#630f2eaf70a39e608ac3573e45cf8ccd0ede9ad7"
- integrity sha512-Wn41+K1yuO5p7wRZDl7890c3xvv5UBrfVXTVIe28rSQb6LS0fZMDrQB6PAcxQFRFy6vJTLDc3A2+3CjQdzVKRg==
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.1.tgz#3baca26108ca7affb08db06bf0be6cb3115a969c"
+ integrity sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==
dependencies:
define-properties "^1.1.3"
- es-abstract "^1.13.0"
+ es-abstract "^1.17.4"
array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3:
version "1.2.3"
@@ -1867,11 +1866,6 @@ array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3:
define-properties "^1.1.3"
es-abstract "^1.17.0-next.1"
-arrify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
- integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
-
arrow-key-navigation@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/arrow-key-navigation/-/arrow-key-navigation-1.1.0.tgz#c0f7021d006593e2e34e79aa1f032714877d3a76"
@@ -1967,9 +1961,9 @@ aws-sign2@~0.7.0:
integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
aws4@^1.8.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
- integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e"
+ integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==
axios@^0.18.0:
version "0.18.1"
@@ -2003,19 +1997,6 @@ babel-eslint@^10.0.3:
eslint-visitor-keys "^1.0.0"
resolve "^1.12.0"
-babel-jest@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54"
- integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==
- dependencies:
- "@jest/transform" "^24.9.0"
- "@jest/types" "^24.9.0"
- "@types/babel__core" "^7.1.0"
- babel-plugin-istanbul "^5.1.0"
- babel-preset-jest "^24.9.0"
- chalk "^2.4.2"
- slash "^2.0.0"
-
babel-jest@^25.2.4:
version "25.2.4"
resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.2.4.tgz#b21b68d3af8f161c3e6e501e91f0dea8e652e344"
@@ -2029,6 +2010,20 @@ babel-jest@^25.2.4:
chalk "^3.0.0"
slash "^3.0.0"
+babel-jest@^25.5.1:
+ version "25.5.1"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.5.1.tgz#bc2e6101f849d6f6aec09720ffc7bc5332e62853"
+ integrity sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==
+ dependencies:
+ "@jest/transform" "^25.5.1"
+ "@jest/types" "^25.5.0"
+ "@types/babel__core" "^7.1.7"
+ babel-plugin-istanbul "^6.0.0"
+ babel-preset-jest "^25.5.0"
+ chalk "^3.0.0"
+ graceful-fs "^4.2.4"
+ slash "^3.0.0"
+
babel-loader@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3"
@@ -2040,10 +2035,10 @@ babel-loader@^8.1.0:
pify "^4.0.1"
schema-utils "^2.6.5"
-babel-plugin-dynamic-import-node@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f"
- integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==
+babel-plugin-dynamic-import-node@^2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
+ integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
dependencies:
object.assign "^4.1.0"
@@ -2063,15 +2058,6 @@ babel-plugin-emotion@^10.0.14:
find-root "^1.1.0"
source-map "^0.5.7"
-babel-plugin-istanbul@^5.1.0:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.1.tgz#7981590f1956d75d67630ba46f0c22493588c893"
- integrity sha512-RNNVv2lsHAXJQsEJ5jonQwrJVWK8AcZpG1oxhnjCUaAjL7xahYLANhPUZbzEQHjKy1NMYUwn+0NPKQc8iSY4xQ==
- dependencies:
- find-up "^3.0.0"
- istanbul-lib-instrument "^3.0.0"
- test-exclude "^5.0.0"
-
babel-plugin-istanbul@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765"
@@ -2083,18 +2069,13 @@ babel-plugin-istanbul@^6.0.0:
istanbul-lib-instrument "^4.0.0"
test-exclude "^6.0.0"
-babel-plugin-jest-hoist@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756"
- integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==
- dependencies:
- "@types/babel__traverse" "^7.0.6"
-
-babel-plugin-jest-hoist@^25.2.1:
- version "25.2.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.2.1.tgz#d0003a1f3d5caa281e1107fe03bbf16b799f9955"
- integrity sha512-HysbCQfJhxLlyxDbKcB2ucGYV0LjqK4h6dBoI3RtFuOxTiTWK6XGZMsHb0tGh8iJdV4hC6Z2GCHzVvDeh9i0lQ==
+babel-plugin-jest-hoist@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz#129c80ba5c7fc75baf3a45b93e2e372d57ca2677"
+ integrity sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==
dependencies:
+ "@babel/template" "^7.3.3"
+ "@babel/types" "^7.3.3"
"@types/babel__traverse" "^7.0.6"
babel-plugin-lodash@^3.3.4:
@@ -2126,16 +2107,18 @@ babel-plugin-preval@^5.0.0:
babel-plugin-macros "^2.8.0"
require-from-string "^2.0.2"
-babel-plugin-react-intl@^3.4.1:
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-3.4.1.tgz#b107b0756599c2fccb09f601454a7b805e8df659"
- integrity sha512-1Dp+b5E71ot3YjxPkX1u4l5pJkiLDmU4V6m6gatgrFRxGL8NQlQ67WrPA7GTNJhOhs75PYGmR3+l1PT7It4eyQ==
+babel-plugin-react-intl@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-6.2.0.tgz#ac51ca757f318938792fc91e1747515e9225386a"
+ integrity sha512-ajGpa14mLzyDgdOS75DRlQ0aEL+q7iSCB77613YUPOZbxnAvfB0wg+gLngbd/43eKRw7a4y+IzO3P8kDHl40nA==
dependencies:
- "@babel/core" "^7.4.5"
+ "@babel/core" "^7.7.2"
"@babel/helper-plugin-utils" "^7.0.0"
- "@types/babel__core" "^7.1.2"
- fs-extra "^8.0.1"
- intl-messageformat-parser "^1.7.1"
+ "@types/babel__core" "^7.1.3"
+ "@types/schema-utils" "^1.0.0"
+ fs-extra "^8.1.0"
+ intl-messageformat-parser "^4.1.1"
+ schema-utils "^2.2.0"
babel-plugin-syntax-jsx@^6.18.0:
version "6.18.0"
@@ -2147,22 +2130,29 @@ babel-plugin-transform-react-remove-prop-types@^0.4.24:
resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a"
integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==
-babel-preset-jest@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc"
- integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==
+babel-preset-current-node-syntax@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz#fb4a4c51fe38ca60fede1dc74ab35eb843cb41d6"
+ integrity sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw==
dependencies:
- "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
- babel-plugin-jest-hoist "^24.9.0"
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/plugin-syntax-bigint" "^7.8.3"
+ "@babel/plugin-syntax-class-properties" "^7.8.3"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.8.3"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
-babel-preset-jest@^25.2.1:
- version "25.2.1"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.2.1.tgz#4ccd0e577f69aa11b71806edfe8b25a5c3ac93a2"
- integrity sha512-zXHJBM5iR8oEO4cvdF83AQqqJf3tJrXy3x8nfu2Nlqvn4cneg4Ca8M7cQvC5S9BzDDy1O0tZ9iXru9J6E3ym+A==
+babel-preset-jest@^25.2.1, babel-preset-jest@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz#c1d7f191829487a907764c65307faa0e66590b49"
+ integrity sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw==
dependencies:
- "@babel/plugin-syntax-bigint" "^7.0.0"
- "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
- babel-plugin-jest-hoist "^25.2.1"
+ babel-plugin-jest-hoist "^25.5.0"
+ babel-preset-current-node-syntax "^0.1.2"
babel-runtime@^6.26.0:
version "6.26.0"
@@ -2245,9 +2235,9 @@ bindings@^1.5.0:
file-uri-to-path "1.0.0"
bluebird@^3.5.5:
- version "3.5.5"
- resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f"
- integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
+ integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
blurhash@^1.1.3:
version "1.1.3"
@@ -2340,10 +2330,10 @@ brorand@^1.0.1:
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
-browser-process-hrtime@^0.1.2:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4"
- integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==
+browser-process-hrtime@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
+ integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
browser-resolve@^1.11.3:
version "1.11.3"
@@ -2411,20 +2401,20 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
-browserslist@^4.0.0, browserslist@^4.11.1, browserslist@^4.8.3, browserslist@^4.9.1:
- version "4.11.1"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.1.tgz#92f855ee88d6e050e7e7311d987992014f1a1f1b"
- integrity sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g==
+browserslist@^4.0.0, browserslist@^4.11.1, browserslist@^4.8.5:
+ version "4.12.0"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d"
+ integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==
dependencies:
- caniuse-lite "^1.0.30001038"
- electron-to-chromium "^1.3.390"
+ caniuse-lite "^1.0.30001043"
+ electron-to-chromium "^1.3.413"
node-releases "^1.1.53"
pkg-up "^2.0.0"
-bser@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719"
- integrity sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=
+bser@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
+ integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
dependencies:
node-int64 "^0.4.0"
@@ -2457,11 +2447,6 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
-builtin-modules@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
- integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
-
builtin-status-codes@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
@@ -2478,9 +2463,9 @@ bytes@3.1.0:
integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
cacache@^12.0.2, cacache@^12.0.3:
- version "12.0.3"
- resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390"
- integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==
+ version "12.0.4"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c"
+ integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==
dependencies:
bluebird "^3.5.5"
chownr "^1.1.1"
@@ -2522,6 +2507,29 @@ cacache@^13.0.1:
ssri "^7.0.0"
unique-filename "^1.1.1"
+cacache@^15.0.3:
+ version "15.0.3"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.3.tgz#2225c2d1dd8e872339950d6a39c051e0e9334392"
+ integrity sha512-bc3jKYjqv7k4pWh7I/ixIjfcjPul4V4jme/WbjvwGS5LzoPL/GzXr4C5EgPNLO/QEZl9Oi61iGitYEdwcrwLCQ==
+ dependencies:
+ chownr "^2.0.0"
+ fs-minipass "^2.0.0"
+ glob "^7.1.4"
+ infer-owner "^1.0.4"
+ lru-cache "^5.1.1"
+ minipass "^3.1.1"
+ minipass-collect "^1.0.2"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.2"
+ mkdirp "^1.0.3"
+ move-file "^2.0.0"
+ p-map "^4.0.0"
+ promise-inflight "^1.0.1"
+ rimraf "^3.0.2"
+ ssri "^8.0.0"
+ tar "^6.0.2"
+ unique-filename "^1.1.1"
+
cache-base@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
@@ -2588,24 +2596,29 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001038, caniuse-lite@^1.0.30001039:
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001039:
version "1.0.30001041"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001041.tgz#c2ea138dafc6fe03877921ddcddd4a02a14daf76"
integrity sha512-fqDtRCApddNrQuBxBS7kEiSGdBsgO4wiVw4G/IClfqzfhW45MbTumfN4cuUJGTM0YGFNn97DCXPJ683PS6zwvA==
-capture-exit@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f"
- integrity sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=
+caniuse-lite@^1.0.30001043:
+ version "1.0.30001055"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001055.tgz#7b52c3537f7a8c0408aca867e83d2b04268b54cd"
+ integrity sha512-MbwsBmKrBSKIWldfdIagO5OJWZclpJtS4h0Jrk/4HFrXJxTdVdH23Fd+xCiHriVGvYcWyW8mR/CPsYajlH8Iuw==
+
+capture-exit@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4"
+ integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==
dependencies:
- rsvp "^3.3.3"
+ rsvp "^4.8.4"
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
-chalk@2.4.2, chalk@^2.0, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2:
+chalk@2.4.2, chalk@^2.0, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -2699,15 +2712,15 @@ chokidar@^2.1.8:
optionalDependencies:
fsevents "^1.2.7"
-chownr@^1.1.1:
+chownr@^1.1.1, chownr@^1.1.2:
version "1.1.4"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
-chownr@^1.1.2:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142"
- integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==
+chownr@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
+ integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
chrome-trace-event@^1.0.2:
version "1.0.2"
@@ -2769,9 +2782,9 @@ cli-cursor@^3.1.0:
restore-cursor "^3.1.0"
cli-width@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
- integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48"
+ integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==
cliui@^4.0.0:
version "4.1.0"
@@ -2814,7 +2827,7 @@ co@^4.6.0:
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
-coa@~2.0.1:
+coa@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
@@ -2828,6 +2841,11 @@ code-point-at@^1.0.0:
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
+collect-v8-coverage@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59"
+ integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==
+
collection-visit@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
@@ -2876,19 +2894,14 @@ color@^3.0.0:
color-convert "^1.9.1"
color-string "^1.5.2"
-colors@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
- integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM=
-
combined-stream@^1.0.6, combined-stream@~1.0.6:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828"
- integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
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.3:
+commander@^2.11.0, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@^2.8.1:
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==
@@ -2987,7 +3000,7 @@ content-type@~1.0.4:
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
-convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.7.0:
+convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
@@ -3040,17 +3053,17 @@ copy-webpack-plugin@^5.1.1:
webpack-log "^2.0.0"
core-js-compat@^3.6.2:
- version "3.6.4"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17"
- integrity sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==
+ version "3.6.5"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c"
+ integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==
dependencies:
- browserslist "^4.8.3"
+ browserslist "^4.8.5"
semver "7.0.0"
core-js-pure@^3.0.0:
- version "3.6.4"
- resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.4.tgz#4bf1ba866e25814f149d4e9aaa08c36173506e3a"
- integrity sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw==
+ version "3.6.5"
+ resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813"
+ integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==
core-js@^2.4.0:
version "2.6.1"
@@ -3142,6 +3155,15 @@ cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5:
shebang-command "^1.2.0"
which "^1.2.9"
+cross-spawn@^7.0.0:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6"
+ integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==
+ dependencies:
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
cross-spawn@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14"
@@ -3231,18 +3253,18 @@ css-loader@^3.4.2:
postcss-value-parser "^4.0.2"
schema-utils "^2.6.0"
-css-select-base-adapter@~0.1.0:
+css-select-base-adapter@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==
css-select@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede"
- integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef"
+ integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==
dependencies:
boolbase "^1.0.0"
- css-what "^2.1.2"
+ css-what "^3.2.1"
domutils "^1.7.0"
nth-check "^1.0.2"
@@ -3261,41 +3283,31 @@ css-system-font-keywords@^1.0.0:
resolved "https://registry.yarnpkg.com/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz#85c6f086aba4eb32c571a3086affc434b84823ed"
integrity sha1-hcbwhquk6zLFcaMIav/ENLhII+0=
-css-tree@1.0.0-alpha.28:
- version "1.0.0-alpha.28"
- resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f"
- integrity sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w==
+css-tree@1.0.0-alpha.37:
+ version "1.0.0-alpha.37"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22"
+ integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==
dependencies:
- mdn-data "~1.1.0"
- source-map "^0.5.3"
+ mdn-data "2.0.4"
+ source-map "^0.6.1"
-css-tree@1.0.0-alpha.29:
- version "1.0.0-alpha.29"
- resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39"
- integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==
+css-tree@1.0.0-alpha.39:
+ version "1.0.0-alpha.39"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb"
+ integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==
dependencies:
- mdn-data "~1.1.0"
- source-map "^0.5.3"
+ mdn-data "2.0.6"
+ source-map "^0.6.1"
-css-unit-converter@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996"
- integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=
-
-css-url-regex@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec"
- integrity sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=
-
-css-what@2.1, css-what@^2.1.2:
+css-what@2.1:
version "2.1.3"
resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
-cssesc@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703"
- integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==
+css-what@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1"
+ integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==
cssesc@^3.0.0:
version "3.0.0"
@@ -3370,24 +3382,29 @@ cssnano@^4.1.10:
is-resolvable "^1.0.0"
postcss "^7.0.0"
-csso@^3.5.0:
- version "3.5.1"
- resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b"
- integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==
+csso@^4.0.2:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903"
+ integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==
dependencies:
- css-tree "1.0.0-alpha.29"
+ css-tree "1.0.0-alpha.39"
-cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
+cssom@^0.4.1:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"
+ integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==
+
+cssom@~0.3.6:
version "0.3.8"
resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
-cssstyle@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.1.1.tgz#18b038a9c44d65f7a8e428a653b9f6fe42faf5fb"
- integrity sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==
+cssstyle@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852"
+ integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
dependencies:
- cssom "0.3.x"
+ cssom "~0.3.6"
csstype@^2.2.0:
version "2.6.0"
@@ -3423,9 +3440,9 @@ d@1, d@^1.0.1:
type "^1.0.1"
damerau-levenshtein@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514"
- integrity sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791"
+ integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==
dashdash@^1.12.0:
version "1.14.1"
@@ -3434,7 +3451,7 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
-data-urls@^1.0.0:
+data-urls@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe"
integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==
@@ -3457,7 +3474,7 @@ debug@=3.1.0:
dependencies:
ms "2.0.0"
-debug@^3.0.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6:
+debug@^3.0.0, debug@^3.1.1, debug@^3.2.5:
version "3.2.6"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
@@ -3482,9 +3499,9 @@ decode-uri-component@^0.2.0:
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
deep-equal@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.0.tgz#3103cdf8ab6d32cf4a8df7865458f2b8d33f3745"
- integrity sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw==
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
+ integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==
dependencies:
is-arguments "^1.0.4"
is-date-object "^1.0.1"
@@ -3498,16 +3515,16 @@ deep-extend@^0.5.1:
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f"
integrity sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==
-deep-extend@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
- integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
-
deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
+deepmerge@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
+ integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+
default-gateway@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b"
@@ -3596,15 +3613,10 @@ detect-file@^1.0.0:
resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=
-detect-libc@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
- integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
-
-detect-newline@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
- integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=
+detect-newline@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
+ integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
detect-node@^2.0.4:
version "2.0.4"
@@ -3616,10 +3628,10 @@ detect-passive-events@^1.0.2:
resolved "https://registry.yarnpkg.com/detect-passive-events/-/detect-passive-events-1.0.4.tgz#6ed477e6e5bceb79079735dcd357789d37f9a91a"
integrity sha1-btR35uW863kHlzXc01d4nTf5qRo=
-diff-sequences@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5"
- integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==
+diff-sequences@^25.2.6:
+ version "25.2.6"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd"
+ integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==
diffie-hellman@^5.0.0:
version "5.0.3"
@@ -3760,12 +3772,12 @@ domutils@^1.5.1, domutils@^1.7.0:
dom-serializer "0"
domelementtype "1"
-dot-prop@^4.1.1:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
- integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==
+dot-prop@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb"
+ integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==
dependencies:
- is-obj "^1.0.0"
+ is-obj "^2.0.0"
dotenv@^8.2.0:
version "8.2.0"
@@ -3805,10 +3817,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.390:
- version "1.3.391"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.391.tgz#9b7ee2f387814ad7d37addaafe41c8f4c4498d24"
- integrity sha512-WOi6loSnDmfICOqGRrgeK7bZeWDAbGjCptDhI5eyJAqSzWfoeRuOOU1rOTZRL29/9AaxTndZB6Uh8YrxRfZJqw==
+electron-to-chromium@^1.3.413:
+ version "1.3.432"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.432.tgz#3bf7b191978ff2e8bc3caf811bb52b1e9f9eab25"
+ integrity sha512-/GdNhXyLP5Yl2322CUX/+Xi8NhdHBqL6lD9VJVKjH6CjoPGakvwZ5CpKgj/oOlbzuWWjOvMjDw1bBuAIRCNTlw==
elliptic@^6.0.0:
version "6.5.1"
@@ -3962,7 +3974,7 @@ error-stack-parser@^2.0.6:
dependencies:
stackframe "^1.1.1"
-es-abstract@^1.13.0, es-abstract@^1.17.0, es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5, es-abstract@^1.5.1:
+es-abstract@^1.17.0, es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.4, es-abstract@^1.17.5:
version "1.17.5"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9"
integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==
@@ -3988,16 +4000,16 @@ 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.14:
- version "0.10.51"
- resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.51.tgz#ed2d7d9d48a12df86e0299287e93a09ff478842f"
- integrity sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ==
+es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14:
+ version "0.10.53"
+ resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1"
+ integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==
dependencies:
es6-iterator "~2.0.3"
- es6-symbol "~3.1.1"
- next-tick "^1.0.0"
+ es6-symbol "~3.1.3"
+ next-tick "~1.0.0"
-es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
+es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c=
@@ -4037,7 +4049,7 @@ es6-symbol@3.1.1:
d "1"
es5-ext "~0.10.14"
-es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1:
+es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1, es6-symbol@~3.1.3:
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==
@@ -4046,13 +4058,13 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1:
ext "^1.1.2"
es6-weak-map@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
- integrity sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53"
+ integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==
dependencies:
d "1"
- es5-ext "^0.10.14"
- es6-iterator "^2.0.1"
+ es5-ext "^0.10.46"
+ es6-iterator "^2.0.3"
es6-symbol "^3.1.1"
escape-html@^1.0.3, escape-html@~1.0.3:
@@ -4065,7 +4077,7 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-escodegen@^1.9.1:
+escodegen@^1.11.1:
version "1.14.1"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457"
integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==
@@ -4354,9 +4366,9 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
safe-buffer "^5.1.1"
exec-sh@^0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz#6738de2eb7c8e671d0366aea0b0db8c6f7d7391b"
- integrity sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg==
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5"
+ integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==
execa@^1.0.0:
version "1.0.0"
@@ -4371,6 +4383,22 @@ execa@^1.0.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
+execa@^3.2.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89"
+ integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==
+ dependencies:
+ cross-spawn "^7.0.0"
+ get-stream "^5.0.0"
+ human-signals "^1.1.1"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.0"
+ onetime "^5.1.0"
+ p-finally "^2.0.0"
+ signal-exit "^3.0.2"
+ strip-final-newline "^2.0.0"
+
exif-js@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/exif-js/-/exif-js-2.3.0.tgz#9d10819bf571f873813e7640241255ab9ce1a814"
@@ -4406,17 +4434,17 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
dependencies:
homedir-polyfill "^1.0.1"
-expect@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca"
- integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==
+expect@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-25.5.0.tgz#f07f848712a2813bb59167da3fb828ca21f58bba"
+ integrity sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==
dependencies:
- "@jest/types" "^24.9.0"
- ansi-styles "^3.2.0"
- jest-get-type "^24.9.0"
- jest-matcher-utils "^24.9.0"
- jest-message-util "^24.9.0"
- jest-regex-util "^24.9.0"
+ "@jest/types" "^25.5.0"
+ ansi-styles "^4.0.0"
+ jest-get-type "^25.2.6"
+ jest-matcher-utils "^25.5.0"
+ jest-message-util "^25.5.0"
+ jest-regex-util "^25.2.6"
express@^4.16.3, express@^4.17.1:
version "4.17.1"
@@ -4514,20 +4542,15 @@ extsprintf@^1.2.0:
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
-fast-deep-equal@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
- integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
-
fast-deep-equal@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4"
integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==
fast-json-stable-stringify@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
- integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
fast-levenshtein@~2.0.6:
version "2.0.6"
@@ -4549,16 +4572,16 @@ faye-websocket@~0.11.1:
websocket-driver ">=0.5.1"
fb-watchman@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58"
- integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85"
+ integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==
dependencies:
- bser "^2.0.0"
+ bser "2.1.1"
figgy-pudding@^3.5.1:
- version "3.5.1"
- resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
- integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
+ integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==
figures@^1.3.5:
version "1.7.0"
@@ -4652,13 +4675,13 @@ find-cache-dir@^2.1.0:
make-dir "^2.0.0"
pkg-dir "^3.0.0"
-find-cache-dir@^3.0.0, find-cache-dir@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.2.0.tgz#e7fe44c1abc1299f516146e563108fd1006c1874"
- integrity sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg==
+find-cache-dir@^3.0.0, find-cache-dir@^3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880"
+ integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==
dependencies:
commondir "^1.0.1"
- make-dir "^3.0.0"
+ make-dir "^3.0.2"
pkg-dir "^4.1.0"
find-root@^1.1.0:
@@ -4718,9 +4741,9 @@ flat-cache@^2.0.1:
write "1.0.3"
flatted@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916"
- integrity sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
+ integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
flush-write-stream@^1.0.0:
version "1.1.1"
@@ -4809,22 +4832,15 @@ fs-extra@^3.0.1:
jsonfile "^3.0.0"
universalify "^0.1.0"
-fs-extra@^8.0.1:
- version "8.0.1"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.0.1.tgz#90294081f978b1f182f347a440a209154344285b"
- integrity sha512-W+XLrggcDzlle47X/XnS7FXrXu9sDo+Ze9zpndeBxdgv88FHLm1HtmkhEwavruS6koanBjp098rUpHs65EmG7A==
+fs-extra@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
+ integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
dependencies:
- graceful-fs "^4.1.2"
+ graceful-fs "^4.2.0"
jsonfile "^4.0.0"
universalify "^0.1.0"
-fs-minipass@^1.2.5:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
- integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
- dependencies:
- minipass "^2.6.0"
-
fs-minipass@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.0.0.tgz#a6415edab02fae4b9e9230bc87ee2e4472003cd1"
@@ -4848,23 +4864,17 @@ fs.realpath@^1.0.0:
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
fsevents@^1.2.7:
- version "1.2.12"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c"
- integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==
+ version "1.2.13"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38"
+ integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==
dependencies:
bindings "^1.5.0"
nan "^2.12.1"
- node-pre-gyp "*"
-fsevents@^2.0.6:
- version "2.0.7"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.7.tgz#382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a"
- integrity sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ==
-
-fsevents@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805"
- integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==
+fsevents@^2.0.6, fsevents@^2.1.2:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
+ integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
function-bind@^1.1.1:
version "1.1.1"
@@ -4886,9 +4896,9 @@ functional-red-black-tree@^1.0.1:
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
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==
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91"
+ integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA==
gauge@~2.7.3:
version "2.7.4"
@@ -4945,6 +4955,13 @@ get-stream@^4.0.0:
dependencies:
pump "^3.0.0"
+get-stream@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9"
+ integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==
+ dependencies:
+ pump "^3.0.0"
+
get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
@@ -5076,10 +5093,10 @@ gonzales-pe-sl@^4.2.3:
dependencies:
minimist "1.1.x"
-graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.2, graceful-fs@^4.2.3:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
- integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
+graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4:
+ version "4.2.4"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
+ integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
growly@^1.3.0:
version "1.3.0"
@@ -5095,27 +5112,16 @@ gzip-size@^5.0.0:
pify "^4.0.1"
handle-thing@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754"
- integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==
-
-handlebars@^4.1.2:
- 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"
- source-map "^0.6.1"
- optionalDependencies:
- uglify-js "^3.1.4"
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
+ integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
-har-validator@~5.1.0:
+har-validator@~5.1.3:
version "5.1.3"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
@@ -5271,9 +5277,9 @@ hoopy@^0.1.4:
integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==
hosted-git-info@^2.1.4:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047"
- integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==
+ version "2.8.8"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
+ integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
hpack.js@^2.1.6:
version "2.1.6"
@@ -5315,9 +5321,14 @@ html-encoding-sniffer@^1.0.2:
whatwg-encoding "^1.0.1"
html-entities@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f"
- integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44"
+ integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==
+
+html-escaper@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
+ integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
htmlparser2@^3.9.1:
version "3.10.1"
@@ -5411,7 +5422,12 @@ https-browserify@^1.0.0:
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
-iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
+human-signals@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
+ integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+
+iconv-lite@0.4.24, iconv-lite@^0.4.24:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -5440,13 +5456,6 @@ iferr@^0.1.5:
resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
-ignore-walk@^3.0.1:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37"
- integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==
- dependencies:
- minimatch "^3.0.4"
-
ignore@^3.1.2, ignore@^3.3.5:
version "3.3.10"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
@@ -5500,6 +5509,14 @@ import-local@2.0.0, import-local@^2.0.0:
pkg-dir "^3.0.0"
resolve-cwd "^2.0.0"
+import-local@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6"
+ integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==
+ dependencies:
+ pkg-dir "^4.2.0"
+ resolve-cwd "^3.0.0"
+
imports-loader@^0.8.0:
version "0.8.0"
resolved "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.8.0.tgz#030ea51b8ca05977c40a3abfd9b4088fe0be9a69"
@@ -5551,7 +5568,7 @@ inherits@2.0.3:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
-ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
+ini@^1.3.4, ini@^1.3.5:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
@@ -5631,10 +5648,12 @@ intl-messageformat-parser@1.4.0:
resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz#b43d45a97468cadbe44331d74bb1e8dea44fc075"
integrity sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=
-intl-messageformat-parser@^1.7.1:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz#0eb14c5618333be4c95c409457b66c8c33ddcc01"
- integrity sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==
+intl-messageformat-parser@^4.1.1:
+ version "4.1.4"
+ resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-4.1.4.tgz#98f3415e6990d44bebf2e0ad8e4cfbacf3ef5ed3"
+ integrity sha512-zV4kBUD1yhxSyaXm6bGhmP4HFH9Gh4pRQwNn+xq5P+B1dT8mpaAfU75nfUn4HgddIB6pyFnzM5MQjO55UpJwkQ==
+ dependencies:
+ "@formatjs/intl-unified-numberformat" "^3.3.3"
intl-messageformat@^2.0.0, intl-messageformat@^2.1.0, intl-messageformat@^2.2.0:
version "2.2.0"
@@ -5751,16 +5770,9 @@ is-boolean-object@^1.0.1:
integrity sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ==
is-buffer@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725"
- integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==
-
-is-builtin-module@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
- integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74=
- dependencies:
- builtin-modules "^1.0.0"
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623"
+ integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==
is-callable@^1.1.4, is-callable@^1.1.5:
version "1.1.5"
@@ -5863,9 +5875,9 @@ is-fullwidth-code-point@^3.0.0:
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
is-generator-fn@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.0.0.tgz#038c31b774709641bda678b1f06a4e3227c10b3e"
- integrity sha512-elzyIdM7iKoFHzcrndIqjYomImhxrFRnGP3galODoII4TB9gI7mZ+FnlLQmmjf27SxHS2gKEeyhX5/+YRS6H9g==
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
+ integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
is-glob@^3.1.0:
version "3.1.0"
@@ -5921,10 +5933,10 @@ is-number@^7.0.0:
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-is-obj@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
- integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
+is-obj@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
+ integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
is-path-cwd@^2.0.0:
version "2.2.0"
@@ -5984,6 +5996,11 @@ is-stream@^1.1.0:
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
+is-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
+ integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
+
is-string@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6"
@@ -6033,6 +6050,11 @@ is-wsl@^1.1.0:
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
+is-wsl@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d"
+ integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==
+
isarray@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
@@ -6065,11 +6087,6 @@ isstream@~0.1.2:
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
-istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.3, istanbul-lib-coverage@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49"
- integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==
-
istanbul-lib-coverage@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec"
@@ -6094,14 +6111,11 @@ istanbul-lib-instrument@^3.0.0, istanbul-lib-instrument@^3.0.1:
semver "^6.0.0"
istanbul-lib-instrument@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz#61f13ac2c96cfefb076fe7131156cc05907874e6"
- integrity sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d"
+ integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==
dependencies:
"@babel/core" "^7.7.5"
- "@babel/parser" "^7.7.5"
- "@babel/template" "^7.7.4"
- "@babel/traverse" "^7.7.4"
"@istanbuljs/schema" "^0.1.2"
istanbul-lib-coverage "^3.0.0"
semver "^6.3.0"
@@ -6119,171 +6133,155 @@ istanbul-lib-instrument@^4.0.0:
istanbul-lib-coverage "^3.0.0"
semver "^6.3.0"
-istanbul-lib-report@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.4.tgz#bfd324ee0c04f59119cb4f07dab157d09f24d7e4"
- integrity sha512-sOiLZLAWpA0+3b5w5/dq0cjm2rrNdAfHWaGhmn7XEFW6X++IV9Ohn+pnELAl9K3rfpaeBfbmH9JU5sejacdLeA==
+istanbul-lib-report@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6"
+ integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==
dependencies:
- istanbul-lib-coverage "^2.0.3"
- make-dir "^1.3.0"
- supports-color "^6.0.0"
+ istanbul-lib-coverage "^3.0.0"
+ make-dir "^3.0.0"
+ supports-color "^7.1.0"
-istanbul-lib-source-maps@^3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.2.tgz#f1e817229a9146e8424a28e5d69ba220fda34156"
- integrity sha512-JX4v0CiKTGp9fZPmoxpu9YEkPbEqCqBbO3403VabKjH+NRXo72HafD5UgnjTEqHL2SAjaZK1XDuDOkn6I5QVfQ==
+istanbul-lib-source-maps@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9"
+ integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==
dependencies:
debug "^4.1.1"
- istanbul-lib-coverage "^2.0.3"
- make-dir "^1.3.0"
- rimraf "^2.6.2"
+ istanbul-lib-coverage "^3.0.0"
source-map "^0.6.1"
-istanbul-reports@^2.2.6:
- version "2.2.6"
- resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af"
- integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==
+istanbul-reports@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b"
+ integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==
dependencies:
- handlebars "^4.1.2"
+ html-escaper "^2.0.0"
+ istanbul-lib-report "^3.0.0"
-jest-changed-files@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039"
- integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==
+jest-changed-files@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.4.0.tgz#e573db32c2fd47d2b90357ea2eda0622c5c5cbd6"
+ integrity sha512-VR/rfJsEs4BVMkwOTuStRyS630fidFVekdw/lBaBQjx9KK3VZFOZ2c0fsom2fRp8pMCrCTP6LGna00o/DXGlqA==
dependencies:
- "@jest/types" "^24.9.0"
- execa "^1.0.0"
- throat "^4.0.0"
+ "@jest/types" "^25.4.0"
+ execa "^3.2.0"
+ throat "^5.0.0"
-jest-cli@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af"
- integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==
+jest-cli@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.4.0.tgz#5dac8be0fece6ce39f0d671395a61d1357322bab"
+ integrity sha512-usyrj1lzCJZMRN1r3QEdnn8e6E6yCx/QN7+B1sLoA68V7f3WlsxSSQfy0+BAwRiF4Hz2eHauf11GZG3PIfWTXQ==
dependencies:
- "@jest/core" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- chalk "^2.0.1"
+ "@jest/core" "^25.4.0"
+ "@jest/test-result" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ chalk "^3.0.0"
exit "^0.1.2"
- import-local "^2.0.0"
+ import-local "^3.0.2"
is-ci "^2.0.0"
- jest-config "^24.9.0"
- jest-util "^24.9.0"
- jest-validate "^24.9.0"
+ jest-config "^25.4.0"
+ jest-util "^25.4.0"
+ jest-validate "^25.4.0"
prompts "^2.0.1"
- realpath-native "^1.1.0"
- yargs "^13.3.0"
+ realpath-native "^2.0.0"
+ yargs "^15.3.1"
-jest-config@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5"
- integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==
+jest-config@^25.4.0, jest-config@^25.5.4:
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.5.4.tgz#38e2057b3f976ef7309b2b2c8dcd2a708a67f02c"
+ integrity sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/test-sequencer" "^24.9.0"
- "@jest/types" "^24.9.0"
- babel-jest "^24.9.0"
- chalk "^2.0.1"
+ "@jest/test-sequencer" "^25.5.4"
+ "@jest/types" "^25.5.0"
+ babel-jest "^25.5.1"
+ chalk "^3.0.0"
+ deepmerge "^4.2.2"
glob "^7.1.1"
- jest-environment-jsdom "^24.9.0"
- jest-environment-node "^24.9.0"
- jest-get-type "^24.9.0"
- jest-jasmine2 "^24.9.0"
- jest-regex-util "^24.3.0"
- jest-resolve "^24.9.0"
- jest-util "^24.9.0"
- jest-validate "^24.9.0"
- micromatch "^3.1.10"
- pretty-format "^24.9.0"
- realpath-native "^1.1.0"
+ graceful-fs "^4.2.4"
+ jest-environment-jsdom "^25.5.0"
+ jest-environment-node "^25.5.0"
+ jest-get-type "^25.2.6"
+ jest-jasmine2 "^25.5.4"
+ jest-regex-util "^25.2.6"
+ jest-resolve "^25.5.1"
+ jest-util "^25.5.0"
+ jest-validate "^25.5.0"
+ micromatch "^4.0.2"
+ pretty-format "^25.5.0"
+ realpath-native "^2.0.0"
-jest-diff@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da"
- integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==
+jest-diff@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9"
+ integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==
dependencies:
- chalk "^2.0.1"
- diff-sequences "^24.9.0"
- jest-get-type "^24.9.0"
- pretty-format "^24.9.0"
+ chalk "^3.0.0"
+ diff-sequences "^25.2.6"
+ jest-get-type "^25.2.6"
+ pretty-format "^25.5.0"
-jest-docblock@^24.3.0:
- version "24.3.0"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.3.0.tgz#b9c32dac70f72e4464520d2ba4aec02ab14db5dd"
- integrity sha512-nlANmF9Yq1dufhFlKG9rasfQlrY7wINJbo3q01tu56Jv5eBU5jirylhF2O5ZBnLxzOVBGRDz/9NAwNyBtG4Nyg==
+jest-docblock@^25.3.0:
+ version "25.3.0"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef"
+ integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg==
dependencies:
- detect-newline "^2.1.0"
+ detect-newline "^3.0.0"
-jest-each@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05"
- integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==
+jest-each@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.5.0.tgz#0c3c2797e8225cb7bec7e4d249dcd96b934be516"
+ integrity sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA==
dependencies:
- "@jest/types" "^24.9.0"
- chalk "^2.0.1"
- jest-get-type "^24.9.0"
- jest-util "^24.9.0"
- pretty-format "^24.9.0"
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
+ jest-get-type "^25.2.6"
+ jest-util "^25.5.0"
+ pretty-format "^25.5.0"
-jest-environment-jsdom@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b"
- integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==
+jest-environment-jsdom@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz#dcbe4da2ea997707997040ecf6e2560aec4e9834"
+ integrity sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A==
dependencies:
- "@jest/environment" "^24.9.0"
- "@jest/fake-timers" "^24.9.0"
- "@jest/types" "^24.9.0"
- jest-mock "^24.9.0"
- jest-util "^24.9.0"
- jsdom "^11.5.1"
+ "@jest/environment" "^25.5.0"
+ "@jest/fake-timers" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ jest-mock "^25.5.0"
+ jest-util "^25.5.0"
+ jsdom "^15.2.1"
-jest-environment-node@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3"
- integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==
+jest-environment-node@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.5.0.tgz#0f55270d94804902988e64adca37c6ce0f7d07a1"
+ integrity sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA==
dependencies:
- "@jest/environment" "^24.9.0"
- "@jest/fake-timers" "^24.9.0"
- "@jest/types" "^24.9.0"
- jest-mock "^24.9.0"
- jest-util "^24.9.0"
+ "@jest/environment" "^25.5.0"
+ "@jest/fake-timers" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ jest-mock "^25.5.0"
+ jest-util "^25.5.0"
+ semver "^6.3.0"
-jest-get-type@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e"
- integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==
+jest-get-type@^25.2.6:
+ version "25.2.6"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877"
+ integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==
-jest-haste-map@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d"
- integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==
+jest-haste-map@^25.4.0, jest-haste-map@^25.5.1:
+ version "25.5.1"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.5.1.tgz#1df10f716c1d94e60a1ebf7798c9fb3da2620943"
+ integrity sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==
dependencies:
- "@jest/types" "^24.9.0"
- anymatch "^2.0.0"
- fb-watchman "^2.0.0"
- graceful-fs "^4.1.15"
- invariant "^2.2.4"
- jest-serializer "^24.9.0"
- jest-util "^24.9.0"
- jest-worker "^24.9.0"
- micromatch "^3.1.10"
- sane "^4.0.3"
- walker "^1.0.7"
- optionalDependencies:
- fsevents "^1.2.7"
-
-jest-haste-map@^25.2.3:
- version "25.2.3"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.2.3.tgz#2649392b5af191f0167a27bfb62e5d96d7eaaade"
- integrity sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A==
- dependencies:
- "@jest/types" "^25.2.3"
+ "@jest/types" "^25.5.0"
+ "@types/graceful-fs" "^4.1.2"
anymatch "^3.0.3"
fb-watchman "^2.0.0"
- graceful-fs "^4.2.3"
- jest-serializer "^25.2.1"
- jest-util "^25.2.3"
- jest-worker "^25.2.1"
+ graceful-fs "^4.2.4"
+ jest-serializer "^25.5.0"
+ jest-util "^25.5.0"
+ jest-worker "^25.5.0"
micromatch "^4.0.2"
sane "^4.0.3"
walker "^1.0.7"
@@ -6291,279 +6289,284 @@ jest-haste-map@^25.2.3:
optionalDependencies:
fsevents "^2.1.2"
-jest-jasmine2@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0"
- integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==
+jest-jasmine2@^25.4.0, jest-jasmine2@^25.5.4:
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz#66ca8b328fb1a3c5364816f8958f6970a8526968"
+ integrity sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ==
dependencies:
"@babel/traverse" "^7.1.0"
- "@jest/environment" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- chalk "^2.0.1"
+ "@jest/environment" "^25.5.0"
+ "@jest/source-map" "^25.5.0"
+ "@jest/test-result" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
co "^4.6.0"
- expect "^24.9.0"
+ expect "^25.5.0"
is-generator-fn "^2.0.0"
- jest-each "^24.9.0"
- jest-matcher-utils "^24.9.0"
- jest-message-util "^24.9.0"
- jest-runtime "^24.9.0"
- jest-snapshot "^24.9.0"
- jest-util "^24.9.0"
- pretty-format "^24.9.0"
- throat "^4.0.0"
+ jest-each "^25.5.0"
+ jest-matcher-utils "^25.5.0"
+ jest-message-util "^25.5.0"
+ jest-runtime "^25.5.4"
+ jest-snapshot "^25.5.1"
+ jest-util "^25.5.0"
+ pretty-format "^25.5.0"
+ throat "^5.0.0"
-jest-leak-detector@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a"
- integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==
+jest-leak-detector@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.4.0.tgz#cf94a160c78e53d810e7b2f40b5fd7ee263375b3"
+ integrity sha512-7Y6Bqfv2xWsB+7w44dvZuLs5SQ//fzhETgOGG7Gq3TTGFdYvAgXGwV8z159RFZ6fXiCPm/szQ90CyfVos9JIFQ==
dependencies:
- jest-get-type "^24.9.0"
- pretty-format "^24.9.0"
+ jest-get-type "^25.2.6"
+ pretty-format "^25.4.0"
-jest-matcher-utils@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073"
- integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==
+jest-leak-detector@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz#2291c6294b0ce404241bb56fe60e2d0c3e34f0bb"
+ integrity sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA==
dependencies:
- chalk "^2.0.1"
- jest-diff "^24.9.0"
- jest-get-type "^24.9.0"
- pretty-format "^24.9.0"
+ jest-get-type "^25.2.6"
+ pretty-format "^25.5.0"
-jest-message-util@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3"
- integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==
+jest-matcher-utils@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz#fbc98a12d730e5d2453d7f1ed4a4d948e34b7867"
+ integrity sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==
+ dependencies:
+ chalk "^3.0.0"
+ jest-diff "^25.5.0"
+ jest-get-type "^25.2.6"
+ pretty-format "^25.5.0"
+
+jest-message-util@^25.4.0, jest-message-util@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.5.0.tgz#ea11d93204cc7ae97456e1d8716251185b8880ea"
+ integrity sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
+ "@jest/types" "^25.5.0"
"@types/stack-utils" "^1.0.1"
- chalk "^2.0.1"
- micromatch "^3.1.10"
- slash "^2.0.0"
+ chalk "^3.0.0"
+ graceful-fs "^4.2.4"
+ micromatch "^4.0.2"
+ slash "^3.0.0"
stack-utils "^1.0.1"
-jest-mock@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6"
- integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==
+jest-mock@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.5.0.tgz#a91a54dabd14e37ecd61665d6b6e06360a55387a"
+ integrity sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==
dependencies:
- "@jest/types" "^24.9.0"
+ "@jest/types" "^25.5.0"
jest-pnp-resolver@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a"
integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==
-jest-regex-util@^24.3.0:
- version "24.3.0"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36"
- integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg==
+jest-regex-util@^25.2.6:
+ version "25.2.6"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964"
+ integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==
-jest-regex-util@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636"
- integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==
-
-jest-regex-util@^25.2.1:
- version "25.2.1"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.1.tgz#db64b0d15cd3642c93b7b9627801d7c518600584"
- integrity sha512-wroFVJw62LdqTdkL508ZLV82FrJJWVJMIuYG7q4Uunl1WAPTf4ftPKrqqfec4SvOIlvRZUdEX2TFpWR356YG/w==
-
-jest-resolve-dependencies@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab"
- integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==
+jest-resolve-dependencies@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.4.0.tgz#783937544cfc40afcc7c569aa54748c4b3f83f5a"
+ integrity sha512-A0eoZXx6kLiuG1Ui7wITQPl04HwjLErKIJTt8GR3c7UoDAtzW84JtCrgrJ6Tkw6c6MwHEyAaLk7dEPml5pf48A==
dependencies:
- "@jest/types" "^24.9.0"
- jest-regex-util "^24.3.0"
- jest-snapshot "^24.9.0"
+ "@jest/types" "^25.4.0"
+ jest-regex-util "^25.2.6"
+ jest-snapshot "^25.4.0"
-jest-resolve@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321"
- integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==
+jest-resolve@^25.4.0, jest-resolve@^25.5.1:
+ version "25.5.1"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.5.1.tgz#0e6fbcfa7c26d2a5fe8f456088dc332a79266829"
+ integrity sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==
dependencies:
- "@jest/types" "^24.9.0"
+ "@jest/types" "^25.5.0"
browser-resolve "^1.11.3"
- chalk "^2.0.1"
+ chalk "^3.0.0"
+ graceful-fs "^4.2.4"
jest-pnp-resolver "^1.2.1"
- realpath-native "^1.1.0"
+ read-pkg-up "^7.0.1"
+ realpath-native "^2.0.0"
+ resolve "^1.17.0"
+ slash "^3.0.0"
-jest-runner@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42"
- integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==
+jest-runner@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.4.0.tgz#6ca4a3d52e692bbc081228fa68f750012f1f29e5"
+ integrity sha512-wWQSbVgj2e/1chFdMRKZdvlmA6p1IPujhpLT7TKNtCSl1B0PGBGvJjCaiBal/twaU2yfk8VKezHWexM8IliBfA==
dependencies:
- "@jest/console" "^24.7.1"
- "@jest/environment" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- chalk "^2.4.2"
+ "@jest/console" "^25.4.0"
+ "@jest/environment" "^25.4.0"
+ "@jest/test-result" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ chalk "^3.0.0"
exit "^0.1.2"
- graceful-fs "^4.1.15"
- jest-config "^24.9.0"
- jest-docblock "^24.3.0"
- jest-haste-map "^24.9.0"
- jest-jasmine2 "^24.9.0"
- jest-leak-detector "^24.9.0"
- jest-message-util "^24.9.0"
- jest-resolve "^24.9.0"
- jest-runtime "^24.9.0"
- jest-util "^24.9.0"
- jest-worker "^24.6.0"
+ graceful-fs "^4.2.3"
+ jest-config "^25.4.0"
+ jest-docblock "^25.3.0"
+ jest-haste-map "^25.4.0"
+ jest-jasmine2 "^25.4.0"
+ jest-leak-detector "^25.4.0"
+ jest-message-util "^25.4.0"
+ jest-resolve "^25.4.0"
+ jest-runtime "^25.4.0"
+ jest-util "^25.4.0"
+ jest-worker "^25.4.0"
source-map-support "^0.5.6"
- throat "^4.0.0"
+ throat "^5.0.0"
-jest-runtime@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac"
- integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==
+jest-runner@^25.5.4:
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.5.4.tgz#ffec5df3875da5f5c878ae6d0a17b8e4ecd7c71d"
+ integrity sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg==
dependencies:
- "@jest/console" "^24.7.1"
- "@jest/environment" "^24.9.0"
- "@jest/source-map" "^24.3.0"
- "@jest/transform" "^24.9.0"
- "@jest/types" "^24.9.0"
- "@types/yargs" "^13.0.0"
- chalk "^2.0.1"
+ "@jest/console" "^25.5.0"
+ "@jest/environment" "^25.5.0"
+ "@jest/test-result" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.4"
+ jest-config "^25.5.4"
+ jest-docblock "^25.3.0"
+ jest-haste-map "^25.5.1"
+ jest-jasmine2 "^25.5.4"
+ jest-leak-detector "^25.5.0"
+ jest-message-util "^25.5.0"
+ jest-resolve "^25.5.1"
+ jest-runtime "^25.5.4"
+ jest-util "^25.5.0"
+ jest-worker "^25.5.0"
+ source-map-support "^0.5.6"
+ throat "^5.0.0"
+
+jest-runtime@^25.4.0, jest-runtime@^25.5.4:
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.5.4.tgz#dc981fe2cb2137abcd319e74ccae7f7eeffbfaab"
+ integrity sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ==
+ dependencies:
+ "@jest/console" "^25.5.0"
+ "@jest/environment" "^25.5.0"
+ "@jest/globals" "^25.5.2"
+ "@jest/source-map" "^25.5.0"
+ "@jest/test-result" "^25.5.0"
+ "@jest/transform" "^25.5.1"
+ "@jest/types" "^25.5.0"
+ "@types/yargs" "^15.0.0"
+ chalk "^3.0.0"
+ collect-v8-coverage "^1.0.0"
exit "^0.1.2"
glob "^7.1.3"
- graceful-fs "^4.1.15"
- jest-config "^24.9.0"
- jest-haste-map "^24.9.0"
- jest-message-util "^24.9.0"
- jest-mock "^24.9.0"
- jest-regex-util "^24.3.0"
- jest-resolve "^24.9.0"
- jest-snapshot "^24.9.0"
- jest-util "^24.9.0"
- jest-validate "^24.9.0"
- realpath-native "^1.1.0"
- slash "^2.0.0"
- strip-bom "^3.0.0"
- yargs "^13.3.0"
+ graceful-fs "^4.2.4"
+ jest-config "^25.5.4"
+ jest-haste-map "^25.5.1"
+ jest-message-util "^25.5.0"
+ jest-mock "^25.5.0"
+ jest-regex-util "^25.2.6"
+ jest-resolve "^25.5.1"
+ jest-snapshot "^25.5.1"
+ jest-util "^25.5.0"
+ jest-validate "^25.5.0"
+ realpath-native "^2.0.0"
+ slash "^3.0.0"
+ strip-bom "^4.0.0"
+ yargs "^15.3.1"
-jest-serializer@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73"
- integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==
+jest-serializer@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.5.0.tgz#a993f484e769b4ed54e70e0efdb74007f503072b"
+ integrity sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==
+ dependencies:
+ graceful-fs "^4.2.4"
-jest-serializer@^25.2.1:
- version "25.2.1"
- resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.2.1.tgz#51727a5fc04256f461abe0fa024a022ba165877a"
- integrity sha512-fibDi7M5ffx6c/P66IkvR4FKkjG5ldePAK1WlbNoaU4GZmIAkS9Le/frAwRUFEX0KdnisSPWf+b1RC5jU7EYJQ==
-
-jest-snapshot@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba"
- integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==
+jest-snapshot@^25.4.0, jest-snapshot@^25.5.1:
+ version "25.5.1"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.5.1.tgz#1a2a576491f9961eb8d00c2e5fd479bc28e5ff7f"
+ integrity sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ==
dependencies:
"@babel/types" "^7.0.0"
- "@jest/types" "^24.9.0"
- chalk "^2.0.1"
- expect "^24.9.0"
- jest-diff "^24.9.0"
- jest-get-type "^24.9.0"
- jest-matcher-utils "^24.9.0"
- jest-message-util "^24.9.0"
- jest-resolve "^24.9.0"
- mkdirp "^0.5.1"
- natural-compare "^1.4.0"
- pretty-format "^24.9.0"
- semver "^6.2.0"
-
-jest-util@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162"
- integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==
- dependencies:
- "@jest/console" "^24.9.0"
- "@jest/fake-timers" "^24.9.0"
- "@jest/source-map" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- callsites "^3.0.0"
- chalk "^2.0.1"
- graceful-fs "^4.1.15"
- is-ci "^2.0.0"
- mkdirp "^0.5.1"
- slash "^2.0.0"
- source-map "^0.6.0"
-
-jest-util@^25.2.3:
- version "25.2.3"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.2.3.tgz#0abf95a1d6b96f2de5a3ecd61b36c40a182dc256"
- integrity sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw==
- dependencies:
- "@jest/types" "^25.2.3"
+ "@jest/types" "^25.5.0"
+ "@types/prettier" "^1.19.0"
chalk "^3.0.0"
+ expect "^25.5.0"
+ graceful-fs "^4.2.4"
+ jest-diff "^25.5.0"
+ jest-get-type "^25.2.6"
+ jest-matcher-utils "^25.5.0"
+ jest-message-util "^25.5.0"
+ jest-resolve "^25.5.1"
+ make-dir "^3.0.0"
+ natural-compare "^1.4.0"
+ pretty-format "^25.5.0"
+ semver "^6.3.0"
+
+jest-util@^25.4.0, jest-util@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.5.0.tgz#31c63b5d6e901274d264a4fec849230aa3fa35b0"
+ integrity sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==
+ dependencies:
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
+ graceful-fs "^4.2.4"
is-ci "^2.0.0"
make-dir "^3.0.0"
-jest-validate@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab"
- integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==
+jest-validate@^25.4.0, jest-validate@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.5.0.tgz#fb4c93f332c2e4cf70151a628e58a35e459a413a"
+ integrity sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==
dependencies:
- "@jest/types" "^24.9.0"
+ "@jest/types" "^25.5.0"
camelcase "^5.3.1"
- chalk "^2.0.1"
- jest-get-type "^24.9.0"
+ chalk "^3.0.0"
+ jest-get-type "^25.2.6"
leven "^3.1.0"
- pretty-format "^24.9.0"
+ pretty-format "^25.5.0"
-jest-watcher@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b"
- integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==
+jest-watcher@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.4.0.tgz#63ec0cd5c83bb9c9d1ac95be7558dd61c995ff05"
+ integrity sha512-36IUfOSRELsKLB7k25j/wutx0aVuHFN6wO94gPNjQtQqFPa2rkOymmx9rM5EzbF3XBZZ2oqD9xbRVoYa2w86gw==
dependencies:
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- "@types/yargs" "^13.0.0"
- ansi-escapes "^3.0.0"
- chalk "^2.0.1"
- jest-util "^24.9.0"
- string-length "^2.0.0"
+ "@jest/test-result" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ ansi-escapes "^4.2.1"
+ chalk "^3.0.0"
+ jest-util "^25.4.0"
+ string-length "^3.1.0"
-jest-worker@^24.6.0, jest-worker@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5"
- integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==
- dependencies:
- merge-stream "^2.0.0"
- supports-color "^6.1.0"
-
-jest-worker@^25.1.0:
- version "25.1.0"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.1.0.tgz#75d038bad6fdf58eba0d2ec1835856c497e3907a"
- integrity sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==
+jest-worker@^25.4.0, jest-worker@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1"
+ integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==
dependencies:
merge-stream "^2.0.0"
supports-color "^7.0.0"
-jest-worker@^25.2.1:
- version "25.2.1"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.2.1.tgz#209617015c768652646aa33a7828cc2ab472a18a"
- integrity sha512-IHnpekk8H/hCUbBlfeaPZzU6v75bqwJp3n4dUrQuQOAgOneI4tx3jV2o8pvlXnDfcRsfkFIUD//HWXpCmR+evQ==
+jest-worker@^26.0.0:
+ version "26.0.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.0.0.tgz#4920c7714f0a96c6412464718d0c58a3df3fb066"
+ integrity sha512-pPaYa2+JnwmiZjK9x7p9BoZht+47ecFCDFA/CJxspHzeDvQcfVBLWzCiWyo+EGrSiQMWZtCFo9iSvMZnAAo8vw==
dependencies:
merge-stream "^2.0.0"
supports-color "^7.0.0"
-jest@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171"
- integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==
+jest@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-25.4.0.tgz#fb96892c5c4e4a6b9bcb12068849cddf4c5f8cc7"
+ integrity sha512-XWipOheGB4wai5JfCYXd6vwsWNwM/dirjRoZgAa7H2wd8ODWbli2AiKjqG8AYhyx+8+5FBEdpO92VhGlBydzbw==
dependencies:
- import-local "^2.0.0"
- jest-cli "^24.9.0"
+ "@jest/core" "^25.4.0"
+ import-local "^3.0.2"
+ jest-cli "^25.4.0"
js-base64@^2.1.9:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.0.tgz#42255ba183ab67ce59a0dee640afdc00ab5ae93e"
- integrity sha512-wlEBIZ5LP8usDylWbDNhKPEFVFdI5hCHpnVoT/Ysvoi/PRhJENm/Rlh9TvjYB38HFfKZN7OzEbRjmjvLkFw11g==
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.2.tgz#313b6274dda718f714d00b3330bbae6e38e90209"
+ integrity sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==
js-string-escape@1.0.1:
version "1.0.1"
@@ -6575,7 +6578,7 @@ js-string-escape@1.0.1:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-js-yaml@^3.12.0, js-yaml@^3.13.1, js-yaml@^3.4.6, js-yaml@^3.5.1, js-yaml@^3.5.4, js-yaml@^3.9.0:
+js-yaml@^3.13.1, js-yaml@^3.4.6, js-yaml@^3.5.1, js-yaml@^3.5.4, js-yaml@^3.9.0:
version "3.13.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
@@ -6588,36 +6591,36 @@ jsbn@~0.1.0:
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
-jsdom@^11.5.1:
- version "11.12.0"
- resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8"
- integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==
+jsdom@^15.2.1:
+ version "15.2.1"
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5"
+ integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==
dependencies:
abab "^2.0.0"
- acorn "^5.5.3"
- acorn-globals "^4.1.0"
+ acorn "^7.1.0"
+ acorn-globals "^4.3.2"
array-equal "^1.0.0"
- cssom ">= 0.3.2 < 0.4.0"
- cssstyle "^1.0.0"
- data-urls "^1.0.0"
+ cssom "^0.4.1"
+ cssstyle "^2.0.0"
+ data-urls "^1.1.0"
domexception "^1.0.1"
- escodegen "^1.9.1"
+ escodegen "^1.11.1"
html-encoding-sniffer "^1.0.2"
- left-pad "^1.3.0"
- nwsapi "^2.0.7"
- parse5 "4.0.0"
+ nwsapi "^2.2.0"
+ parse5 "5.1.0"
pn "^1.1.0"
- request "^2.87.0"
- request-promise-native "^1.0.5"
- sax "^1.2.4"
+ request "^2.88.0"
+ request-promise-native "^1.0.7"
+ saxes "^3.1.9"
symbol-tree "^3.2.2"
- tough-cookie "^2.3.4"
+ tough-cookie "^3.0.1"
w3c-hr-time "^1.0.1"
+ w3c-xmlserializer "^1.1.2"
webidl-conversions "^4.0.2"
- whatwg-encoding "^1.0.3"
- whatwg-mimetype "^2.1.0"
- whatwg-url "^6.4.1"
- ws "^5.2.0"
+ whatwg-encoding "^1.0.5"
+ whatwg-mimetype "^2.3.0"
+ whatwg-url "^7.0.0"
+ ws "^7.0.0"
xml-name-validator "^3.0.0"
jsesc@^2.5.1:
@@ -6680,9 +6683,9 @@ json5@^1.0.1:
minimist "^1.2.0"
json5@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e"
- integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"
+ integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==
dependencies:
minimist "^1.2.5"
@@ -6743,10 +6746,10 @@ kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0, kind-of@^4.0.0, kind-of@^5.0.0,
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
-kleur@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.2.tgz#83c7ec858a41098b613d5998a7b653962b504f68"
- integrity sha512-3h7B2WRT5LNXOtQiAaWonilegHcPSf9nLVXlSTci8lu1dZUuui61+EsPEZqSVxY7rXYmB2DVKMQILxaO5WL61Q==
+kleur@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
+ integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
knot.js@^1.1.5:
version "1.1.5"
@@ -6765,11 +6768,6 @@ lcid@^2.0.0:
dependencies:
invert-kv "^2.0.0"
-left-pad@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e"
- integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==
-
leven@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
@@ -6805,16 +6803,6 @@ load-json-file@^2.0.0:
pify "^2.0.0"
strip-bom "^3.0.0"
-load-json-file@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
- integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^4.0.0"
- pify "^3.0.0"
- strip-bom "^3.0.0"
-
loader-runner@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
@@ -6936,15 +6924,22 @@ lodash.uniq@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
-lodash@^4.0.0, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.3.0, lodash@~4.17.12:
+lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.3.0, lodash@~4.17.12:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
loglevel@^1.6.6:
- version "1.6.6"
- resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.6.tgz#0ee6300cc058db6b3551fa1c4bf73b83bb771312"
- integrity sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ==
+ version "1.6.8"
+ resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171"
+ integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==
+
+lolex@^5.0.0:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367"
+ integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==
+ dependencies:
+ "@sinonjs/commons" "^1.7.0"
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
version "1.4.0"
@@ -6960,13 +6955,6 @@ lru-cache@^5.1.1:
dependencies:
yallist "^3.0.2"
-make-dir@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
- integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
- dependencies:
- pify "^3.0.0"
-
make-dir@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
@@ -6975,10 +6963,10 @@ make-dir@^2.0.0:
pify "^4.0.1"
semver "^5.6.0"
-make-dir@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz#1b5f39f6b9270ed33f9f054c5c0f84304989f801"
- integrity sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==
+make-dir@^3.0.0, make-dir@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
dependencies:
semver "^6.0.0"
@@ -7027,10 +7015,15 @@ md5.js@^1.3.4:
inherits "^2.0.1"
safe-buffer "^5.1.2"
-mdn-data@~1.1.0:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01"
- integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==
+mdn-data@2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
+ integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
+
+mdn-data@2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978"
+ integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==
media-typer@0.3.0:
version "0.3.0"
@@ -7114,34 +7107,22 @@ miller-rabin@^4.0.0:
bn.js "^4.0.0"
brorand "^1.0.1"
-mime-db@1.40.0:
- version "1.40.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32"
- integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==
+mime-db@1.44.0:
+ version "1.44.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
+ integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
"mime-db@>= 1.40.0 < 2":
version "1.42.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac"
integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==
-mime-db@~1.37.0:
- version "1.37.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8"
- integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==
-
-mime-types@^2.1.12, mime-types@~2.1.19:
- version "2.1.21"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96"
- integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==
+mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24:
+ version "2.1.27"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
+ integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
dependencies:
- mime-db "~1.37.0"
-
-mime-types@~2.1.17, mime-types@~2.1.24:
- version "2.1.24"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81"
- integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==
- dependencies:
- mime-db "1.40.0"
+ mime-db "1.44.0"
mime@1.6.0:
version "1.6.0"
@@ -7195,16 +7176,11 @@ minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
-minimist@^1.2.5:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
- integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
-
minimist@~0.0.1:
version "0.0.10"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
-
+
minipass-collect@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
@@ -7226,14 +7202,6 @@ minipass-pipeline@^1.2.2:
dependencies:
minipass "^3.0.0"
-minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
- version "2.9.0"
- resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
- integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
- dependencies:
- safe-buffer "^5.1.2"
- yallist "^3.0.0"
-
minipass@^3.0.0, minipass@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5"
@@ -7241,12 +7209,13 @@ minipass@^3.0.0, minipass@^3.1.1:
dependencies:
yallist "^4.0.0"
-minizlib@^1.2.1:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
- integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
+minizlib@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.0.tgz#fd52c645301ef09a63a2c209697c294c6ce02cf3"
+ integrity sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==
dependencies:
- minipass "^2.9.0"
+ minipass "^3.0.0"
+ yallist "^4.0.0"
mississippi@^3.0.0:
version "3.0.0"
@@ -7272,29 +7241,22 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
-mkdirp@^0.5, mkdirp@^0.5.3, mkdirp@~0.5.1:
- version "0.5.4"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512"
- integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==
- dependencies:
- minimist "^1.2.5"
-
-mkdirp@^0.5.0, mkdirp@^0.5.1:
+mkdirp@^0.5, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
dependencies:
minimist "^1.2.5"
-mkdirp@^1.0.4:
+mkdirp@^1.0.3, mkdirp@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
-moo@^0.4.3:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e"
- integrity sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==
+moo@^0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4"
+ integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==
mousetrap@^1.5.2:
version "1.6.5"
@@ -7313,6 +7275,13 @@ move-concurrently@^1.0.1:
rimraf "^2.5.4"
run-queue "^1.0.3"
+move-file@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/move-file/-/move-file-2.0.0.tgz#83ffa309b5d7f69d518b28e1333e2ffadf331e3e"
+ integrity sha512-cdkdhNCgbP5dvS4tlGxZbD+nloio9GIimP57EjqFhwLcMjnU+XJKAZzlmg/TN/AK1LuNAdTSvm3CPPP4Xkv0iQ==
+ dependencies:
+ path-exists "^4.0.0"
+
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -7352,9 +7321,9 @@ mute-stream@0.0.8:
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
nan@^2.12.1:
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
- integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
+ version "2.14.1"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01"
+ integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==
nanomatch@^1.2.9:
version "1.2.13"
@@ -7379,36 +7348,27 @@ natural-compare@^1.4.0:
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
nearley@^2.7.10:
- version "2.16.0"
- resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.16.0.tgz#77c297d041941d268290ec84b739d0ee297e83a7"
- integrity sha512-Tr9XD3Vt/EujXbZBv6UAHYoLUSMQAxSsTnm9K3koXzjzNWY195NqALeyrzLZBKzAkL3gl92BcSogqrHjD8QuUg==
+ version "2.19.2"
+ resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.19.2.tgz#40cafbf235121ae94b1aa1e585890d24fade182d"
+ integrity sha512-h6lygT0BWAGErDvoE2LfI+tDeY2+UUrqG5dcBPdCmjnjud9z1wE0P7ljb85iNbE93YA+xJLpoSYGMuUqhnSSSA==
dependencies:
commander "^2.19.0"
- moo "^0.4.3"
+ moo "^0.5.0"
railroad-diagrams "^1.0.0"
randexp "0.4.6"
semver "^5.4.1"
-needle@^2.2.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.1.tgz#14af48732463d7475696f937626b1b993247a56a"
- integrity sha512-x/gi6ijr4B7fwl6WYL9FwlCvRQKGlUNvnceho8wxkwXqN8jvVmmmATTmZPRRG7b/yC1eode26C2HO9jl78Du9g==
- dependencies:
- debug "^3.2.6"
- iconv-lite "^0.4.4"
- sax "^1.2.4"
-
negotiator@0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
-neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1:
+neo-async@^2.5.0, neo-async@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
-next-tick@^1.0.0:
+next-tick@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
@@ -7462,53 +7422,29 @@ node-modules-regexp@^1.0.0:
resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
-node-notifier@^5.4.2:
- version "5.4.3"
- resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50"
- integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==
+node-notifier@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12"
+ integrity sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==
dependencies:
growly "^1.3.0"
- is-wsl "^1.1.0"
- semver "^5.5.0"
+ is-wsl "^2.1.1"
+ semver "^6.3.0"
shellwords "^0.1.1"
- which "^1.3.0"
-
-node-pre-gyp@*:
- version "0.14.0"
- resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83"
- integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==
- dependencies:
- detect-libc "^1.0.2"
- mkdirp "^0.5.1"
- needle "^2.2.1"
- nopt "^4.0.1"
- npm-packlist "^1.1.6"
- npmlog "^4.0.2"
- rc "^1.2.7"
- rimraf "^2.6.1"
- semver "^5.3.0"
- tar "^4.4.2"
+ which "^1.3.1"
node-releases@^1.1.53:
- version "1.1.53"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4"
- integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==
+ version "1.1.55"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.55.tgz#8af23b7c561d8e2e6e36a46637bab84633b07cee"
+ integrity sha512-H3R3YR/8TjT5WPin/wOoHOUPHgvj8leuU/Keta/rwelEQN9pA/S2Dx8/se4pZ2LBxSd0nAGzsNzhqwa77v7F1w==
-nopt@^4.0.1:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48"
- integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==
- dependencies:
- abbrev "1"
- osenv "^0.1.4"
-
-normalize-package-data@^2.3.2:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
- integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==
+normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+ integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
dependencies:
hosted-git-info "^2.1.4"
- is-builtin-module "^1.0.0"
+ resolve "^1.10.0"
semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1"
@@ -7544,27 +7480,6 @@ normalize-url@^3.0.0:
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
-npm-bundled@^1.0.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b"
- integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==
- dependencies:
- npm-normalize-package-bin "^1.0.1"
-
-npm-normalize-package-bin@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
- integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
-
-npm-packlist@^1.1.6:
- version "1.4.8"
- resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e"
- integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==
- dependencies:
- ignore-walk "^3.0.1"
- npm-bundled "^1.0.1"
- npm-normalize-package-bin "^1.0.1"
-
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -7572,7 +7487,14 @@ npm-run-path@^2.0.0:
dependencies:
path-key "^2.0.0"
-npmlog@^4.0.2, npmlog@^4.1.2:
+npm-run-path@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+ integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
+ dependencies:
+ path-key "^3.0.0"
+
+npmlog@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
@@ -7599,10 +7521,10 @@ number-is-nan@^1.0.0:
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
-nwsapi@^2.0.7:
- version "2.0.9"
- resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.9.tgz#77ac0cdfdcad52b6a1151a84e73254edc33ed016"
- integrity sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ==
+nwsapi@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
+ integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
oauth-sign@~0.9.0:
version "0.9.0"
@@ -7639,9 +7561,12 @@ object-inspect@^1.7.0:
integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==
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==
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6"
+ integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
version "1.1.1"
@@ -7685,13 +7610,13 @@ object.fromentries@^2.0.2:
function-bind "^1.1.1"
has "^1.0.3"
-object.getownpropertydescriptors@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
- integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=
+object.getownpropertydescriptors@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649"
+ integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==
dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.5.1"
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
object.pick@^1.3.0:
version "1.3.0"
@@ -7700,7 +7625,7 @@ object.pick@^1.3.0:
dependencies:
isobject "^3.0.1"
-object.values@^1.0.4, object.values@^1.1.0, object.values@^1.1.1:
+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==
@@ -7774,14 +7699,6 @@ opn@^5.5.0:
dependencies:
is-wsl "^1.1.0"
-optimist@^0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
- integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
- dependencies:
- minimist "~0.0.1"
- wordwrap "~0.0.2"
-
optionator@^0.8.1, optionator@^0.8.3:
version "0.8.3"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
@@ -7820,36 +7737,31 @@ os-locale@^3.0.0, os-locale@^3.1.0:
lcid "^2.0.0"
mem "^4.0.0"
-os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
+os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
-osenv@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
- integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
- dependencies:
- os-homedir "^1.0.0"
- os-tmpdir "^1.0.0"
-
p-defer@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
-p-each-series@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71"
- integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=
- dependencies:
- p-reduce "^1.0.0"
+p-each-series@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48"
+ integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
+p-finally@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561"
+ integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==
+
p-is-promise@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e"
@@ -7862,10 +7774,10 @@ p-limit@^1.1.0:
dependencies:
p-try "^1.0.0"
-p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1, p-limit@^2.2.2:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e"
- integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==
+p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1, p-limit@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
dependencies:
p-try "^2.0.0"
@@ -7902,10 +7814,12 @@ p-map@^3.0.0:
dependencies:
aggregate-error "^3.0.0"
-p-reduce@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa"
- integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=
+p-map@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
+ integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
+ dependencies:
+ aggregate-error "^3.0.0"
p-retry@^3.0.1:
version "3.0.1"
@@ -8007,10 +7921,10 @@ parse-passwd@^1.0.0:
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
-parse5@4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
- integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==
+parse5@5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2"
+ integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==
parse5@^3.0.1:
version "3.0.3"
@@ -8069,6 +7983,11 @@ path-key@^2.0.0, path-key@^2.0.1:
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
+path-key@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
path-key@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.0.tgz#99a10d870a803bdd5ee6f0470e58dfcd2f9a54d3"
@@ -8239,7 +8158,7 @@ pkg-dir@^3.0.0:
dependencies:
find-up "^3.0.0"
-pkg-dir@^4.1.0:
+pkg-dir@^4.1.0, pkg-dir@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
@@ -8278,14 +8197,13 @@ posix-character-classes@^0.1.0:
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
postcss-calc@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436"
- integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.2.tgz#504efcd008ca0273120568b0792b16cdcde8aac1"
+ integrity sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==
dependencies:
- css-unit-converter "^1.1.1"
- postcss "^7.0.5"
- postcss-selector-parser "^5.0.0-rc.4"
- postcss-value-parser "^3.3.1"
+ postcss "^7.0.27"
+ postcss-selector-parser "^6.0.2"
+ postcss-value-parser "^4.0.2"
postcss-colormin@^4.0.3:
version "4.0.3"
@@ -8432,9 +8350,9 @@ postcss-modules-local-by-default@^3.0.2:
postcss-value-parser "^4.0.0"
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==
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee"
+ integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==
dependencies:
postcss "^7.0.6"
postcss-selector-parser "^6.0.0"
@@ -8567,20 +8485,11 @@ postcss-reduce-transforms@^4.0.2:
postcss-value-parser "^3.0.0"
postcss-selector-parser@^3.0.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865"
- integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270"
+ integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==
dependencies:
- dot-prop "^4.1.1"
- indexes-of "^1.0.1"
- uniq "^1.0.1"
-
-postcss-selector-parser@^5.0.0-rc.4:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c"
- integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==
- dependencies:
- cssesc "^2.0.0"
+ dot-prop "^5.2.0"
indexes-of "^1.0.1"
uniq "^1.0.1"
@@ -8612,15 +8521,15 @@ postcss-unique-selectors@^4.0.1:
postcss "^7.0.0"
uniqs "^2.0.0"
-postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.1:
+postcss-value-parser@^3.0.0:
version "3.3.1"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz#651ff4593aa9eda8d5d0d66593a2417aeaeb325d"
- integrity sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
+ integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
postcss@^5.0.16:
version "5.2.18"
@@ -8633,9 +8542,9 @@ postcss@^5.0.16:
supports-color "^3.2.3"
postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.23, postcss@^7.0.27, postcss@^7.0.5, postcss@^7.0.6:
- version "7.0.27"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.27.tgz#cc67cdc6b0daa375105b7c424a85567345fc54d9"
- integrity sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==
+ version "7.0.29"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.29.tgz#d3a903872bd52280b83bce38cdc83ce55c06129e"
+ integrity sha512-ba0ApvR3LxGvRMMiUa9n0WR4HjzcYm7tS+ht4/2Nd0NLtHpPIH77fuB9Xh1/yJVz9O/E/95Y/dn8ygWsyffXtw==
dependencies:
chalk "^2.4.2"
source-map "^0.6.1"
@@ -8657,9 +8566,9 @@ postgres-date@~1.0.0:
integrity sha1-4tiXAu/bJY/52c7g/pG9BpdSV6g=
postgres-interval@^1.1.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.1.2.tgz#bf71ff902635f21cb241a013fc421d81d1db15a9"
- integrity sha512-fC3xNHeTskCxL1dC8KOtxXt7YeFmlbTYtn7ul8MkVERuTmf7pI4DrkAxcw3kh1fQ9uz4wQmd03a1mRiXUZChfQ==
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695"
+ integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==
dependencies:
xtend "^4.0.0"
@@ -8673,15 +8582,15 @@ prepend-http@^1.0.0:
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
-pretty-format@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9"
- integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==
+pretty-format@^25.4.0, pretty-format@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a"
+ integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==
dependencies:
- "@jest/types" "^24.9.0"
- ansi-regex "^4.0.0"
- ansi-styles "^3.2.0"
- react-is "^16.8.4"
+ "@jest/types" "^25.5.0"
+ ansi-regex "^5.0.0"
+ ansi-styles "^4.0.0"
+ react-is "^16.12.0"
private@^0.1.8:
version "0.1.8"
@@ -8723,12 +8632,12 @@ promise.prototype.finally@^3.1.2:
function-bind "^1.1.1"
prompts@^2.0.1:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.0.3.tgz#c5ccb324010b2e8f74752aadceeb57134c1d2522"
- integrity sha512-H8oWEoRZpybm6NV4to9/1limhttEo13xK62pNvn2JzY0MA03p7s0OjtmhXyon3uJmxiJJVSuUwEJFFssI3eBiQ==
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068"
+ integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==
dependencies:
- kleur "^3.0.2"
- sisteransi "^1.0.0"
+ kleur "^3.0.3"
+ sisteransi "^1.0.4"
prop-types-exact@^1.2.0:
version "1.2.0"
@@ -8769,10 +8678,10 @@ prr@~1.0.1:
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
-psl@^1.1.24, psl@^1.1.28:
- version "1.1.31"
- resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184"
- integrity sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==
+psl@^1.1.28:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
+ integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
public-encrypt@^4.0.0:
version "4.0.3"
@@ -8816,7 +8725,7 @@ punycode@1.3.2:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
-punycode@^1.2.4, punycode@^1.4.1:
+punycode@^1.2.4:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
@@ -8919,25 +8828,15 @@ raw-body@2.4.0:
iconv-lite "0.4.24"
unpipe "1.0.0"
-rc@^1.2.7:
- version "1.2.8"
- resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
- integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
- dependencies:
- deep-extend "^0.6.0"
- ini "~1.3.0"
- minimist "^1.2.0"
- strip-json-comments "~2.0.1"
-
-react-dom@^16.13.0:
- version "16.13.0"
- resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.0.tgz#cdde54b48eb9e8a0ca1b3dc9943d9bb409b81866"
- integrity sha512-y09d2c4cG220DzdlFkPTnVvGTszVvNpC73v+AaLGLHbkpy3SSgvYq8x0rNwPJ/Rk/CicTNgk0hbHNw1gMEZAXg==
+react-dom@^16.13.1:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f"
+ integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"
- scheduler "^0.19.0"
+ scheduler "^0.19.1"
react-event-listener@^0.6.0:
version "0.6.5"
@@ -9008,7 +8907,7 @@ react-intl@^2.9.0:
intl-relativeformat "^2.1.0"
invariant "^2.1.1"
-react-is@^16.12.0, 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:
+react-is@^16.12.0, react-is@^16.3.2, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6, react-is@^16.9.0:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@@ -9159,15 +9058,15 @@ react-swipeable-views@^0.13.9:
react-swipeable-views-utils "^0.13.9"
warning "^4.0.1"
-react-test-renderer@^16.0.0-0, react-test-renderer@^16.13.0:
- version "16.13.0"
- resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.0.tgz#39ba3bf72cedc8210c3f81983f0bb061b14a3014"
- integrity sha512-NQ2S9gdMUa7rgPGpKGyMcwl1d6D9MCF0lftdI3kts6kkiX+qvpC955jNjAZXlIDTjnN9jwFI8A8XhRh/9v0spA==
+react-test-renderer@^16.0.0-0, react-test-renderer@^16.13.1:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1"
+ integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ==
dependencies:
object-assign "^4.1.1"
prop-types "^15.6.2"
react-is "^16.8.6"
- scheduler "^0.19.0"
+ scheduler "^0.19.1"
react-textarea-autosize@^7.1.2:
version "7.1.2"
@@ -9221,13 +9120,14 @@ read-pkg-up@^2.0.0:
find-up "^2.0.0"
read-pkg "^2.0.0"
-read-pkg-up@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978"
- integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==
+read-pkg-up@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
+ integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==
dependencies:
- find-up "^3.0.0"
- read-pkg "^3.0.0"
+ find-up "^4.1.0"
+ read-pkg "^5.2.0"
+ type-fest "^0.8.1"
read-pkg@^2.0.0:
version "2.0.0"
@@ -9238,29 +9138,17 @@ read-pkg@^2.0.0:
normalize-package-data "^2.3.2"
path-type "^2.0.0"
-read-pkg@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
- integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
+read-pkg@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
+ integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
dependencies:
- load-json-file "^4.0.0"
- normalize-package-data "^2.3.2"
- path-type "^3.0.0"
+ "@types/normalize-package-data" "^2.4.0"
+ normalize-package-data "^2.5.0"
+ parse-json "^5.0.0"
+ type-fest "^0.6.0"
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
- version "2.3.6"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
- integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.3"
- isarray "~1.0.0"
- process-nextick-args "~2.0.0"
- safe-buffer "~5.1.1"
- string_decoder "~1.1.1"
- util-deprecate "~1.0.1"
-
-readable-stream@^2.0.2, readable-stream@^2.0.6:
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
version "2.3.7"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
@@ -9307,13 +9195,6 @@ readline2@^1.0.1:
is-fullwidth-code-point "^1.0.0"
mute-stream "0.0.5"
-realpath-native@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c"
- integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==
- dependencies:
- util.promisify "^1.0.0"
-
realpath-native@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866"
@@ -9369,13 +9250,6 @@ reflect.ownkeys@^0.2.0:
resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460"
integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=
-regenerate-unicode-properties@^8.1.0:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e"
- integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==
- dependencies:
- regenerate "^1.4.0"
-
regenerate-unicode-properties@^8.2.0:
version "8.2.0"
resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec"
@@ -9440,19 +9314,7 @@ regexpp@^2.0.1:
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
-regexpu-core@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6"
- integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==
- dependencies:
- regenerate "^1.4.0"
- regenerate-unicode-properties "^8.1.0"
- regjsgen "^0.5.0"
- regjsparser "^0.6.0"
- unicode-match-property-ecmascript "^1.0.4"
- unicode-match-property-value-ecmascript "^1.1.0"
-
-regexpu-core@^4.7.0:
+regexpu-core@^4.6.0, regexpu-core@^4.7.0:
version "4.7.0"
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938"
integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==
@@ -9464,23 +9326,11 @@ regexpu-core@^4.7.0:
unicode-match-property-ecmascript "^1.0.4"
unicode-match-property-value-ecmascript "^1.2.0"
-regjsgen@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd"
- integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==
-
regjsgen@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c"
integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==
-regjsparser@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c"
- integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==
- dependencies:
- jsesc "~0.5.0"
-
regjsparser@^0.6.4:
version "0.6.4"
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272"
@@ -9508,26 +9358,26 @@ repeat-string@^1.6.1:
resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
-request-promise-core@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6"
- integrity sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=
+request-promise-core@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9"
+ integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==
dependencies:
- lodash "^4.13.1"
+ lodash "^4.17.15"
-request-promise-native@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5"
- integrity sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=
+request-promise-native@^1.0.7:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36"
+ integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==
dependencies:
- request-promise-core "1.1.1"
- stealthy-require "^1.1.0"
- tough-cookie ">=2.3.3"
+ request-promise-core "1.1.3"
+ stealthy-require "^1.1.1"
+ tough-cookie "^2.3.3"
-request@^2.87.0:
- version "2.88.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
- integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
+request@^2.88.0:
+ version "2.88.2"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
+ integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.8.0"
@@ -9536,7 +9386,7 @@ request@^2.87.0:
extend "~3.0.2"
forever-agent "~0.6.1"
form-data "~2.3.2"
- har-validator "~5.1.0"
+ har-validator "~5.1.3"
http-signature "~1.2.0"
is-typedarray "~1.0.0"
isstream "~0.1.2"
@@ -9546,7 +9396,7 @@ request@^2.87.0:
performance-now "^2.1.0"
qs "~6.5.2"
safe-buffer "^5.1.2"
- tough-cookie "~2.4.3"
+ tough-cookie "~2.5.0"
tunnel-agent "^0.6.0"
uuid "^3.3.2"
@@ -9605,6 +9455,13 @@ resolve-cwd@^2.0.0:
dependencies:
resolve-from "^3.0.0"
+resolve-cwd@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
+ integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
+ dependencies:
+ resolve-from "^5.0.0"
+
resolve-dir@^1.0.0, resolve-dir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43"
@@ -9653,10 +9510,10 @@ resolve@1.1.7:
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
-resolve@^1.12.0, resolve@^1.15.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1:
- version "1.15.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8"
- integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==
+resolve@^1.10.0, resolve@^1.12.0, resolve@^1.15.1, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1:
+ version "1.17.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
+ integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
dependencies:
path-parse "^1.0.6"
@@ -9703,14 +9560,14 @@ rimraf@2.6.3, rimraf@~2.6.2:
dependencies:
glob "^7.1.3"
-rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1:
+rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
dependencies:
glob "^7.1.3"
-rimraf@^3.0.2:
+rimraf@^3.0.0, rimraf@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
@@ -9733,10 +9590,10 @@ rst-selector-parser@^2.2.3:
lodash.flattendeep "^4.4.0"
nearley "^2.7.10"
-rsvp@^3.3.3:
- version "3.6.2"
- resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a"
- integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==
+rsvp@^4.8.4:
+ version "4.8.5"
+ resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
+ integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==
run-async@^0.1.0:
version "0.1.0"
@@ -9765,9 +9622,9 @@ rx-lite@^3.1.2:
integrity sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=
rxjs@^6.4.0:
- version "6.5.2"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7"
- integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==
+ version "6.5.5"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec"
+ integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==
dependencies:
tslib "^1.9.0"
@@ -9776,11 +9633,16 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
+safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@^5.1.1:
version "5.2.0"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
+safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
safe-regex@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
@@ -9794,13 +9656,13 @@ safe-regex@^1.1.0:
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sane@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/sane/-/sane-4.0.3.tgz#e878c3f19e25cc57fbb734602f48f8a97818b181"
- integrity sha512-hSLkC+cPHiBQs7LSyXkotC3UUtyn8C4FMn50TNaacRyvBlI+3ebcxMpqckmTdtXVtel87YS7GXN3UIOj7NiGVQ==
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded"
+ integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==
dependencies:
"@cnakazawa/watch" "^1.0.3"
anymatch "^2.0.0"
- capture-exit "^1.2.0"
+ capture-exit "^2.0.0"
exec-sh "^0.3.2"
execa "^1.0.0"
fb-watchman "^2.0.0"
@@ -9846,15 +9708,22 @@ sass@^1.26.3:
dependencies:
chokidar ">=2.0.0 <4.0.0"
-sax@^1.2.4, sax@~1.2.4:
+sax@~1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-scheduler@^0.19.0:
- version "0.19.0"
- resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.0.tgz#a715d56302de403df742f4a9be11975b32f5698d"
- integrity sha512-xowbVaTPe9r7y7RUejcK73/j8tt2jfiyTednOvHbA8JoClvMYCp+r8QegLwK/n8zWQAtZb1fFnER4XLBZXrCxA==
+saxes@^3.1.9:
+ version "3.1.11"
+ resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b"
+ integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==
+ dependencies:
+ xmlchars "^2.1.1"
+
+scheduler@^0.19.1:
+ version "0.19.1"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
+ integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
@@ -9868,10 +9737,10 @@ schema-utils@^1.0.0:
ajv-errors "^1.0.0"
ajv-keywords "^3.1.0"
-schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1, schema-utils@^2.6.4, schema-utils@^2.6.5:
- version "2.6.5"
- resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.5.tgz#c758f0a7e624263073d396e29cd40aa101152d8a"
- integrity sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==
+schema-utils@^2.2.0, schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.6.6:
+ version "2.6.6"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.6.tgz#299fe6bd4a3365dc23d99fd446caff8f1d6c330c"
+ integrity sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==
dependencies:
ajv "^6.12.0"
ajv-keywords "^3.4.1"
@@ -9896,7 +9765,7 @@ selfsigned@^1.10.7:
dependencies:
node-forge "0.9.0"
-"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1:
+"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -9911,7 +9780,7 @@ semver@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:
+semver@^6.0.0, semver@^6.1.2, 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==
@@ -9940,6 +9809,11 @@ serialize-javascript@^2.1.2:
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61"
integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==
+serialize-javascript@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.0.0.tgz#492e489a2d77b7b804ad391a5f5d97870952548e"
+ integrity sha512-skZcHYw2vEX4bw90nAr2iTTsz6x2SrHEnfxgKYmZlvJYBEZrvbKtobJWlQ20zczKb3bsHHXXTYt48zBA7ni9cw==
+
serve-index@^1.9.1:
version "1.9.1"
resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
@@ -10067,7 +9941,7 @@ simple-swizzle@^0.2.2:
dependencies:
is-arrayish "^0.3.1"
-sisteransi@^1.0.0:
+sisteransi@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
@@ -10077,11 +9951,6 @@ slash@^1.0.0:
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
-slash@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
- integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
-
slash@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
@@ -10174,18 +10043,10 @@ source-map-resolve@^0.5.0:
source-map-url "^0.4.0"
urix "^0.1.0"
-source-map-support@^0.5.6:
- version "0.5.9"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f"
- integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==
- dependencies:
- buffer-from "^1.0.0"
- source-map "^0.6.0"
-
-source-map-support@~0.5.12:
- version "0.5.13"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
- integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
+source-map-support@^0.5.6, source-map-support@~0.5.12:
+ version "0.5.19"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
+ integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
@@ -10200,7 +10061,7 @@ source-map@0.5.6:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
integrity sha1-dc449SvwczxafwwRjYEzSiu19BI=
-source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7:
+source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
@@ -10210,6 +10071,11 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+source-map@^0.7.3:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
+ integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+
spdx-correct@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
@@ -10219,9 +10085,9 @@ spdx-correct@^3.0.0:
spdx-license-ids "^3.0.0"
spdx-exceptions@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977"
- integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
+ integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
spdx-expression-parse@^3.0.0:
version "3.0.0"
@@ -10232,9 +10098,9 @@ spdx-expression-parse@^3.0.0:
spdx-license-ids "^3.0.0"
spdx-license-ids@^3.0.0:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz#81c0ce8f21474756148bbb5f3bfc0f36bf15d76e"
- integrity sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
+ integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==
spdy-transport@^3.0.0:
version "3.0.0"
@@ -10249,9 +10115,9 @@ spdy-transport@^3.0.0:
wbuf "^1.7.3"
spdy@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2"
- integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b"
+ integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==
dependencies:
debug "^4.1.0"
handle-thing "^2.0.0"
@@ -10308,7 +10174,14 @@ ssri@^7.0.0:
figgy-pudding "^3.5.1"
minipass "^3.1.1"
-stable@~0.1.6:
+ssri@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808"
+ integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==
+ dependencies:
+ minipass "^3.1.1"
+
+stable@^0.1.8:
version "0.1.8"
resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
@@ -10360,7 +10233,7 @@ static-extend@^0.1.1:
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
-stealthy-require@^1.1.0:
+stealthy-require@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=
@@ -10402,13 +10275,13 @@ strict-uri-encode@^1.0.0:
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
-string-length@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed"
- integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=
+string-length@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837"
+ integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==
dependencies:
astral-regex "^1.0.0"
- strip-ansi "^4.0.0"
+ strip-ansi "^5.2.0"
string-width@^1.0.1:
version "1.0.2"
@@ -10554,11 +10427,21 @@ strip-bom@^3.0.0:
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
+strip-bom@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
+ integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
+
strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
+strip-final-newline@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
strip-json-comments@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7"
@@ -10569,15 +10452,10 @@ strip-json-comments@~1.0.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"
integrity sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=
-strip-json-comments@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
- integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
-
stylehacks@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.1.tgz#3186595d047ab0df813d213e51c8b94e0b9010f2"
- integrity sha512-TK5zEPeD9NyC1uPIdjikzsgWxdQQN/ry1X3d1iOz1UkYDCmcr928gWD1KHgyC27F50UnE0xCTrBOO1l6KR8M4w==
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"
+ integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==
dependencies:
browserslist "^4.0.0"
postcss "^7.0.0"
@@ -10588,7 +10466,7 @@ substring-trie@^1.0.2:
resolved "https://registry.yarnpkg.com/substring-trie/-/substring-trie-1.0.2.tgz#7b42592391628b4f2cb17365c6cce4257c7b7af5"
integrity sha1-e0JZI5Fii08ssXNlxszkJXx7evU=
-supports-color@6.1.0, supports-color@^6.0.0, supports-color@^6.1.0:
+supports-color@6.1.0, supports-color@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
@@ -10621,23 +10499,30 @@ supports-color@^7.0.0, supports-color@^7.1.0:
dependencies:
has-flag "^4.0.0"
-svgo@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.1.1.tgz#12384b03335bcecd85cfa5f4e3375fed671cb985"
- integrity sha512-GBkJbnTuFpM4jFbiERHDWhZc/S/kpHToqmZag3aEBjPYK44JAN2QBjvrGIxLOoCyMZjuFQIfTO2eJd8uwLY/9g==
+supports-hyperlinks@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47"
+ integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==
dependencies:
- coa "~2.0.1"
- colors "~1.1.2"
+ has-flag "^4.0.0"
+ supports-color "^7.0.0"
+
+svgo@^1.0.0:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
+ integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==
+ dependencies:
+ chalk "^2.4.1"
+ coa "^2.0.2"
css-select "^2.0.0"
- css-select-base-adapter "~0.1.0"
- css-tree "1.0.0-alpha.28"
- css-url-regex "^1.1.0"
- csso "^3.5.0"
- js-yaml "^3.12.0"
+ css-select-base-adapter "^0.1.1"
+ css-tree "1.0.0-alpha.37"
+ csso "^4.0.2"
+ js-yaml "^3.13.1"
mkdirp "~0.5.1"
- object.values "^1.0.4"
+ object.values "^1.1.0"
sax "~1.2.4"
- stable "~0.1.6"
+ stable "^0.1.8"
unquote "~1.1.1"
util.promisify "~1.0.0"
@@ -10647,9 +10532,9 @@ symbol-observable@^1.2.0:
integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
symbol-tree@^3.2.2:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
- integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
+ integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
table@^3.7.8:
version "3.8.3"
@@ -10678,24 +10563,31 @@ tapable@^1.0.0, tapable@^1.1.3:
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
-tar@^4.4.2:
- version "4.4.13"
- resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
- integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
+tar@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.2.tgz#5df17813468a6264ff14f766886c622b84ae2f39"
+ integrity sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==
dependencies:
- chownr "^1.1.1"
- fs-minipass "^1.2.5"
- minipass "^2.8.6"
- minizlib "^1.2.1"
- mkdirp "^0.5.0"
- safe-buffer "^5.1.2"
- yallist "^3.0.3"
+ chownr "^2.0.0"
+ fs-minipass "^2.0.0"
+ minipass "^3.0.0"
+ minizlib "^2.1.0"
+ mkdirp "^1.0.3"
+ yallist "^4.0.0"
tcomb@^2.5.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-2.7.0.tgz#10d62958041669a5d53567b9a4ee8cde22b1c2b0"
integrity sha1-ENYpWAQWaaXVNWe5pO6M3iKxwrA=
+terminal-link@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
+ integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==
+ dependencies:
+ ansi-escapes "^4.2.1"
+ supports-hyperlinks "^2.0.0"
+
terser-webpack-plugin@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c"
@@ -10711,25 +10603,25 @@ terser-webpack-plugin@^1.4.3:
webpack-sources "^1.4.0"
worker-farm "^1.7.0"
-terser-webpack-plugin@^2.3.5:
- version "2.3.5"
- resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz#5ad971acce5c517440ba873ea4f09687de2f4a81"
- integrity sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w==
+terser-webpack-plugin@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-3.0.1.tgz#31928c9330a582fb5ec6f90805337289b85cb8fe"
+ integrity sha512-eFDtq8qPUEa9hXcUzTwKXTnugIVtlqc1Z/ZVhG8LmRT3lgRY13+pQTnFLY2N7ATB6TKCHuW/IGjoAnZz9wOIqw==
dependencies:
- cacache "^13.0.1"
- find-cache-dir "^3.2.0"
- jest-worker "^25.1.0"
- p-limit "^2.2.2"
- schema-utils "^2.6.4"
- serialize-javascript "^2.1.2"
+ cacache "^15.0.3"
+ find-cache-dir "^3.3.1"
+ jest-worker "^26.0.0"
+ p-limit "^2.3.0"
+ schema-utils "^2.6.6"
+ serialize-javascript "^3.0.0"
source-map "^0.6.1"
- terser "^4.4.3"
+ terser "^4.6.13"
webpack-sources "^1.4.3"
-terser@^4.1.2, terser@^4.4.3:
- version "4.4.3"
- resolved "https://registry.yarnpkg.com/terser/-/terser-4.4.3.tgz#401abc52b88869cf904412503b1eb7da093ae2f0"
- integrity sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==
+terser@^4.1.2, terser@^4.6.13:
+ version "4.6.13"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.13.tgz#e879a7364a5e0db52ba4891ecde007422c56a916"
+ integrity sha512-wMvqukYgVpQlymbnNbabVZbtM6PN63AzqexpwJL8tbh/mRT9LE5o+ruVduAGL7D6Fpjl+Q+06U5I9Ul82odAhw==
dependencies:
commander "^2.20.0"
source-map "~0.6.1"
@@ -10765,16 +10657,6 @@ tesseract.js@^2.0.0-alpha.16:
tesseract.js-core "^2.0.0-beta.12"
tesseract.js-utils "^1.0.0-beta.8"
-test-exclude@^5.0.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.1.0.tgz#6ba6b25179d2d38724824661323b73e03c0c1de1"
- integrity sha512-gwf0S2fFsANC55fSeSqpb8BYk6w3FDvwZxfNjeF6FRgvFa43r+7wRiA/Q0IxoRU37wB/LE8IQ4221BsNucTaCA==
- dependencies:
- arrify "^1.0.1"
- minimatch "^3.0.4"
- read-pkg-up "^4.0.0"
- require-main-filename "^1.0.1"
-
test-exclude@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
@@ -10789,10 +10671,10 @@ text-table@^0.2.0, text-table@~0.2.0:
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
-throat@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a"
- integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=
+throat@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"
+ integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==
throng@^4.0.0:
version "4.0.0"
@@ -10832,9 +10714,9 @@ timsort@^0.3.0:
integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
tiny-invariant@^1.0.2:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.6.tgz#b3f9b38835e36a41c843a3b0907a5a7b3755de73"
- integrity sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA==
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875"
+ integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==
tiny-queue@^0.2.1:
version "0.2.1"
@@ -10905,7 +10787,7 @@ toidentifier@1.0.0:
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
-tough-cookie@>=2.3.3, tough-cookie@^2.3.4:
+tough-cookie@^2.3.3, tough-cookie@~2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
@@ -10913,13 +10795,14 @@ tough-cookie@>=2.3.3, tough-cookie@^2.3.4:
psl "^1.1.28"
punycode "^2.1.1"
-tough-cookie@~2.4.3:
- version "2.4.3"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
- integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
+tough-cookie@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2"
+ integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==
dependencies:
- psl "^1.1.24"
- punycode "^1.4.1"
+ ip-regex "^2.1.0"
+ psl "^1.1.28"
+ punycode "^2.1.1"
tr46@^1.0.1:
version "1.0.1"
@@ -10934,9 +10817,9 @@ tryer@^1.0.1:
integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==
tslib@^1.9.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
- integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
+ version "1.11.2"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.2.tgz#9c79d83272c9a7aaf166f73915c9667ecdde3cc9"
+ integrity sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==
tty-browserify@0.0.0:
version "0.0.0"
@@ -10962,6 +10845,16 @@ type-check@~0.3.2:
dependencies:
prelude-ls "~1.1.2"
+type-detect@4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+ integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+
+type-fest@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
+ integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
+
type-fest@^0.8.1:
version "0.8.1"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
@@ -10976,9 +10869,9 @@ type-is@~1.6.17, type-is@~1.6.18:
mime-types "~2.1.24"
type@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/type/-/type-1.0.3.tgz#16f5d39f27a2d28d86e48f8981859e9d3296c179"
- integrity sha512-51IMtNfVcee8+9GJvj0spSuFcZHe9vSib6Xtgsny1Km9ugyz2mbS08I3rsUIRYgJohFRFU1160sgRodYz378Hg==
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
+ integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
type@^2.0.0:
version "2.0.0"
@@ -10997,14 +10890,6 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-uglify-js@^3.1.4:
- 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.3"
- source-map "~0.6.1"
-
unicode-canonical-property-names-ecmascript@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
@@ -11018,7 +10903,7 @@ unicode-match-property-ecmascript@^1.0.4:
unicode-canonical-property-names-ecmascript "^1.0.4"
unicode-property-aliases-ecmascript "^1.0.4"
-unicode-match-property-value-ecmascript@^1.1.0, unicode-match-property-value-ecmascript@^1.2.0:
+unicode-match-property-value-ecmascript@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531"
integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==
@@ -11029,9 +10914,9 @@ unicode-match-property-value-ecmascript@^1.2.0:
integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==
unicode-property-aliases-ecmascript@^1.0.4:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57"
- integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
+ integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
union-value@^1.0.0:
version "1.0.1"
@@ -11140,13 +11025,15 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
-util.promisify@^1.0.0, util.promisify@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
- integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
+util.promisify@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee"
+ integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==
dependencies:
- define-properties "^1.1.2"
- object.getownpropertydescriptors "^2.0.3"
+ define-properties "^1.1.3"
+ es-abstract "^1.17.2"
+ has-symbols "^1.0.1"
+ object.getownpropertydescriptors "^2.1.0"
util@0.10.3:
version "0.10.3"
@@ -11179,16 +11066,25 @@ uuid@^3.0.1, uuid@^3.3.2:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
-uuid@^7.0.3:
- version "7.0.3"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b"
- integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==
+uuid@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.0.0.tgz#bc6ccf91b5ff0ac07bbcdbf1c7c4e150db4dbb6c"
+ integrity sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==
v8-compile-cache@2.0.3, v8-compile-cache@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe"
integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==
+v8-to-istanbul@^4.1.3:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz#22fe35709a64955f49a08a7c7c959f6520ad6f20"
+ integrity sha512-sAjOC+Kki6aJVbUOXJbcR0MnbfjvBzwKZazEJymA2IX49uoOdEdk+4fBq5cXgYgiyKtAyrrJNtBZdOeDIF+Fng==
+ dependencies:
+ "@types/istanbul-lib-coverage" "^2.0.1"
+ convert-source-map "^1.6.0"
+ source-map "^0.7.3"
+
validate-npm-package-license@^3.0.1:
version "3.0.4"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
@@ -11213,9 +11109,9 @@ vary@~1.1.2:
integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
vendors@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801"
- integrity sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
+ integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==
verror@1.10.0:
version "1.10.0"
@@ -11232,11 +11128,20 @@ vm-browserify@^1.0.1:
integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==
w3c-hr-time@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045"
- integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
+ integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==
dependencies:
- browser-process-hrtime "^0.1.2"
+ browser-process-hrtime "^1.0.0"
+
+w3c-xmlserializer@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794"
+ integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==
+ dependencies:
+ domexception "^1.0.1"
+ webidl-conversions "^4.0.2"
+ xml-name-validator "^3.0.0"
walker@^1.0.7, walker@~1.0.5:
version "1.0.7"
@@ -11259,7 +11164,7 @@ warning@^4.0.0, warning@^4.0.1:
dependencies:
loose-envify "^1.0.0"
-watchpack@^1.6.0:
+watchpack@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2"
integrity sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==
@@ -11268,10 +11173,10 @@ watchpack@^1.6.0:
graceful-fs "^4.1.2"
neo-async "^2.5.0"
-wavesurfer.js@^3.3.1:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/wavesurfer.js/-/wavesurfer.js-3.3.1.tgz#af6e4fb260c7d4fe1b14e7eb51df2dea802ad5c6"
- integrity sha512-5w+Daa4EIoFcErXX4hZSkNdfdnCSTiaoTJMF5r7O7O6Kiv+oCrIlLwA73Ms9ULs+IZqOM9XhC33sfINgYdC4rw==
+wavesurfer.js@^3.3.3:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/wavesurfer.js/-/wavesurfer.js-3.3.3.tgz#9b16a62335c6bd13a3d55deb895a336d027ccb51"
+ integrity sha512-meko20S9in+V5xBLSVV/9uYVBSbx5AsJNkAslZ+a5yYIeFGYwcCo4Yd1sUpSGaiNnyflzrJwC7x7TdJFYrdT8w==
wbuf@^1.1.0, wbuf@^1.7.3:
version "1.7.3"
@@ -11298,10 +11203,10 @@ webpack-assets-manifest@^3.1.1:
tapable "^1.0.0"
webpack-sources "^1.0.0"
-webpack-bundle-analyzer@^3.6.1:
- version "3.6.1"
- resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.1.tgz#bdb637c2304424f2fbff9a950c7be42a839ae73b"
- integrity sha512-Nfd8HDwfSx1xBwC+P8QMGvHAOITxNBSvu/J/mCJvOwv+G4VWkU7zir9SSenTtyCi0LnVtmsc7G5SZo1uV+bxRw==
+webpack-bundle-analyzer@^3.7.0:
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.7.0.tgz#84da434e89442899b884d9ad38e466d0db02a56f"
+ integrity sha512-mETdjZ30a3Yf+NTB/wqTgACK7rAYQl5uxKK0WVTNmF0sM3Uv8s3R58YZMW7Rhu0Lk2Rmuhdj5dcH5Q76zCDVdA==
dependencies:
acorn "^7.1.1"
acorn-walk "^7.1.1"
@@ -11407,16 +11312,16 @@ webpack-sources@^1.0.0, webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-
source-list-map "^2.0.0"
source-map "~0.6.1"
-webpack@^4.42.1:
- version "4.42.1"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.1.tgz#ae707baf091f5ca3ef9c38b884287cfe8f1983ef"
- integrity sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg==
+webpack@^4.43.0:
+ version "4.43.0"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6"
+ integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==
dependencies:
"@webassemblyjs/ast" "1.9.0"
"@webassemblyjs/helper-module-context" "1.9.0"
"@webassemblyjs/wasm-edit" "1.9.0"
"@webassemblyjs/wasm-parser" "1.9.0"
- acorn "^6.2.1"
+ acorn "^6.4.1"
ajv "^6.10.2"
ajv-keywords "^3.4.1"
chrome-trace-event "^1.0.2"
@@ -11433,7 +11338,7 @@ webpack@^4.42.1:
schema-utils "^1.0.0"
tapable "^1.1.3"
terser-webpack-plugin "^1.4.3"
- watchpack "^1.6.0"
+ watchpack "^1.6.1"
webpack-sources "^1.4.1"
websocket-driver@>=0.5.1:
@@ -11450,31 +11355,22 @@ websocket-extensions@>=0.1.1:
resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29"
integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==
-whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3:
+whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==
dependencies:
iconv-lite "0.4.24"
-whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0:
+whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
-whatwg-url@^6.4.1:
- version "6.5.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8"
- integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==
- dependencies:
- lodash.sortby "^4.7.0"
- tr46 "^1.0.1"
- webidl-conversions "^4.0.2"
-
whatwg-url@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd"
- integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
+ integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
dependencies:
lodash.sortby "^4.7.0"
tr46 "^1.0.1"
@@ -11485,7 +11381,7 @@ which-module@^2.0.0:
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
-which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1:
+which@^1.2.14, which@^1.2.9, which@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
@@ -11523,11 +11419,6 @@ word-wrap@~1.2.3:
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
-wordwrap@~0.0.2:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
- integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
-
worker-farm@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
@@ -11566,15 +11457,6 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-write-file-atomic@2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529"
- integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==
- dependencies:
- graceful-fs "^4.1.11"
- imurmurhash "^0.1.4"
- signal-exit "^3.0.2"
-
write-file-atomic@^3.0.0:
version "3.0.3"
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
@@ -11599,13 +11481,6 @@ write@^0.2.1:
dependencies:
mkdirp "^0.5.1"
-ws@^5.2.0:
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f"
- integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==
- dependencies:
- async-limiter "~1.0.0"
-
ws@^6.0.0, ws@^6.2.1:
version "6.2.1"
resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
@@ -11613,11 +11488,21 @@ ws@^6.0.0, ws@^6.2.1:
dependencies:
async-limiter "~1.0.0"
+ws@^7.0.0:
+ version "7.3.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd"
+ integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==
+
xml-name-validator@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
+xmlchars@^2.1.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
+ integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
+
xregexp@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50"
@@ -11635,7 +11520,7 @@ xtend@^4.0.0, xtend@~4.0.1:
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
-yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
+yallist@^3.0.2:
version "3.1.1"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
@@ -11646,11 +11531,11 @@ yallist@^4.0.0:
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
yaml@^1.7.2:
- version "1.8.3"
- resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.8.3.tgz#2f420fca58b68ce3a332d0ca64be1d191dd3f87a"
- integrity sha512-X/v7VDnK+sxbQ2Imq4Jt2PRUsRsP7UcpSl3Llg6+NRRqWLIvxkMFYtH1FmvwNGYRKKPa+EPA4qDBlI9WVG1UKw==
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.9.2.tgz#f0cfa865f003ab707663e4f04b3956957ea564ed"
+ integrity sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg==
dependencies:
- "@babel/runtime" "^7.8.7"
+ "@babel/runtime" "^7.9.2"
yargs-parser@^11.1.1:
version "11.1.1"
@@ -11660,7 +11545,7 @@ yargs-parser@^11.1.1:
camelcase "^5.0.0"
decamelize "^1.2.0"
-yargs-parser@^13.1.0, yargs-parser@^13.1.1:
+yargs-parser@^13.1.0:
version "13.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0"
integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==
@@ -11669,9 +11554,9 @@ yargs-parser@^13.1.0, yargs-parser@^13.1.1:
decamelize "^1.2.0"
yargs-parser@^18.1.1:
- version "18.1.2"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.2.tgz#2f482bea2136dbde0861683abea7756d30b504f1"
- integrity sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==
+ version "18.1.3"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
+ integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
dependencies:
camelcase "^5.0.0"
decamelize "^1.2.0"
@@ -11711,22 +11596,6 @@ yargs@13.2.4:
y18n "^4.0.0"
yargs-parser "^13.1.0"
-yargs@^13.3.0:
- version "13.3.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83"
- integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==
- dependencies:
- cliui "^5.0.0"
- find-up "^3.0.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 "^3.0.0"
- which-module "^2.0.0"
- y18n "^4.0.0"
- yargs-parser "^13.1.1"
-
yargs@^15.3.1:
version "15.3.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b"