~cytrogen/masto-fe

5ccd011cc3bafc00a557dabbb47da004f3d4a381 — ThibG 6 years ago 1b074d2 + 3ad8c9e
Merge pull request #1161 from ThibG/glitch-soc/cherry-pick-upstream

Cherry pick changes from upstream
M Gemfile => Gemfile +3 -3
@@ 15,7 15,7 @@ gem 'makara', '~> 0.4'
gem 'pghero', '~> 2.2'
gem 'dotenv-rails', '~> 2.7'

gem 'aws-sdk-s3', '~> 1.43', require: false
gem 'aws-sdk-s3', '~> 1.45', require: false
gem 'fog-core', '<= 2.1.0'
gem 'fog-openstack', '~> 0.3', require: false
gem 'paperclip', '~> 6.0'


@@ 117,7 117,7 @@ group :test do
  gem 'microformats', '~> 4.1'
  gem 'rails-controller-testing', '~> 1.0'
  gem 'rspec-sidekiq', '~> 3.0'
  gem 'simplecov', '~> 0.16', require: false
  gem 'simplecov', '~> 0.17', require: false
  gem 'webmock', '~> 3.6'
  gem 'parallel_tests', '~> 2.29'
end


@@ 132,7 132,7 @@ group :development do
  gem 'letter_opener_web', '~> 1.3'
  gem 'memory_profiler'
  gem 'rubocop', '~> 0.72', require: false
  gem 'rubocop-rails', '~> 2.0', require: false
  gem 'rubocop-rails', '~> 2.2', require: false
  gem 'brakeman', '~> 4.5', require: false
  gem 'bundler-audit', '~> 0.6', require: false


M Gemfile.lock => Gemfile.lock +17 -17
@@ 76,17 76,17 @@ GEM
    av (0.9.0)
      cocaine (~> 0.5.3)
    aws-eventstream (1.0.3)
    aws-partitions (1.177.0)
    aws-sdk-core (3.56.0)
    aws-partitions (1.184.0)
    aws-sdk-core (3.59.0)
      aws-eventstream (~> 1.0, >= 1.0.2)
      aws-partitions (~> 1.0)
      aws-sigv4 (~> 1.1)
      jmespath (~> 1.0)
    aws-sdk-kms (1.22.0)
      aws-sdk-core (~> 3, >= 3.56.0)
    aws-sdk-kms (1.23.0)
      aws-sdk-core (~> 3, >= 3.58.0)
      aws-sigv4 (~> 1.1)
    aws-sdk-s3 (1.43.0)
      aws-sdk-core (~> 3, >= 3.56.0)
    aws-sdk-s3 (1.45.0)
      aws-sdk-core (~> 3, >= 3.58.0)
      aws-sdk-kms (~> 1)
      aws-sigv4 (~> 1.1)
    aws-sigv4 (1.1.0)


@@ 183,7 183,7 @@ GEM
      devise (>= 4.0.0)
      rpam2 (~> 4.0)
    diff-lcs (1.3)
    docile (1.3.0)
    docile (1.3.2)
    domain_name (0.5.20180417)
      unf (>= 0.0.5, < 1.0.0)
    doorkeeper (5.1.0)


@@ 208,7 208,7 @@ GEM
      tzinfo
    excon (0.62.0)
    fabrication (2.20.2)
    faker (1.9.3)
    faker (1.9.6)
      i18n (>= 0.7)
    faraday (0.15.0)
      multipart-post (>= 1.2, < 3)


@@ 231,7 231,7 @@ GEM
    fugit (1.1.6)
      et-orbi (~> 1.1, >= 1.1.6)
      raabro (~> 1.1)
    fuubar (2.4.0)
    fuubar (2.4.1)
      rspec-core (~> 3.0)
      ruby-progressbar (~> 1.4)
    get_process_mem (0.2.3)


@@ 291,7 291,7 @@ GEM
    iso-639 (0.2.8)
    jaro_winkler (1.5.3)
    jmespath (1.4.0)
    json (2.1.0)
    json (2.2.0)
    json-ld (3.0.2)
      multi_json (~> 1.12)
      rdf (>= 2.2.8, < 4.0)


@@ 534,9 534,9 @@ GEM
      rainbow (>= 2.2.2, < 4.0)
      ruby-progressbar (~> 1.7)
      unicode-display_width (>= 1.4.0, < 1.7)
    rubocop-rails (2.0.1)
    rubocop-rails (2.2.0)
      rack (>= 1.1)
      rubocop (>= 0.70.0)
      rubocop (>= 0.72.0)
    ruby-progressbar (1.10.1)
    ruby-saml (1.9.0)
      nokogiri (>= 1.5.10)


@@ 568,7 568,7 @@ GEM
    simple_form (4.1.0)
      actionpack (>= 5.0)
      activemodel (>= 5.0)
    simplecov (0.16.1)
    simplecov (0.17.0)
      docile (~> 1.1)
      json (>= 1.8, < 3)
      simplecov-html (~> 0.10.0)


@@ 615,7 615,7 @@ GEM
      unf (~> 0.1.0)
    tzinfo (1.2.5)
      thread_safe (~> 0.1)
    tzinfo-data (1.2019.1)
    tzinfo-data (1.2019.2)
      tzinfo (>= 1.0.0)
    unf (0.1.4)
      unf_ext


@@ 650,7 650,7 @@ DEPENDENCIES
  active_record_query_trace (~> 1.6)
  addressable (~> 2.6)
  annotate (~> 2.7)
  aws-sdk-s3 (~> 1.43)
  aws-sdk-s3 (~> 1.45)
  better_errors (~> 2.5)
  binding_of_caller (~> 0.7)
  blurhash (~> 0.1)


@@ 744,7 744,7 @@ DEPENDENCIES
  rspec-rails (~> 3.8)
  rspec-sidekiq (~> 3.0)
  rubocop (~> 0.72)
  rubocop-rails (~> 2.0)
  rubocop-rails (~> 2.2)
  sanitize (~> 5.0)
  sidekiq (~> 5.2)
  sidekiq-bulk (~> 0.2.0)


@@ 752,7 752,7 @@ DEPENDENCIES
  sidekiq-unique-jobs (~> 6.0)
  simple-navigation (~> 4.0)
  simple_form (~> 4.1)
  simplecov (~> 0.16)
  simplecov (~> 0.17)
  sprockets-rails (~> 3.2)
  stackprof
  stoplight (~> 2.1.3)

M app/models/status.rb => app/models/status.rb +1 -1
@@ 82,7 82,7 @@ class Status < ApplicationRecord
  default_scope { recent }

  scope :recent, -> { reorder(id: :desc) }
  scope :remote, -> { where(local: false).or(where.not(uri: nil)) }
  scope :remote, -> { where(local: false).where.not(uri: nil) }
  scope :local,  -> { where(local: true).or(where(uri: nil)) }

  scope :without_replies, -> { where('statuses.reply = FALSE OR statuses.in_reply_to_account_id = statuses.account_id') }

M app/services/backup_service.rb => app/services/backup_service.rb +2 -0
@@ 164,5 164,7 @@ class BackupService < BaseService
        io.write(buffer)
      end
    end
  rescue Errno::ENOENT
    Rails.logger.warn "Could not backup file #{filename}: file not found"
  end
end

M app/services/block_service.rb => app/services/block_service.rb +1 -1
@@ 8,7 8,7 @@ class BlockService < BaseService

    UnfollowService.new.call(account, target_account) if account.following?(target_account)
    UnfollowService.new.call(target_account, account) if target_account.following?(account)
    RejectFollowService.new.call(account, target_account) if target_account.requested?(account)
    RejectFollowService.new.call(target_account, account) if target_account.requested?(account)

    block = account.block!(target_account)


M app/workers/web/push_notification_worker.rb => app/workers/web/push_notification_worker.rb +1 -1
@@ 3,7 3,7 @@
class Web::PushNotificationWorker
  include Sidekiq::Worker

  sidekiq_options backtrace: true
  sidekiq_options backtrace: true, retry: 5

  def perform(subscription_id, notification_id)
    subscription = ::Web::PushSubscription.find(subscription_id)

M package.json => package.json +6 -6
@@ 61,7 61,7 @@
  "private": true,
  "dependencies": {
    "@babel/core": "^7.4.5",
    "@babel/plugin-proposal-class-properties": "^7.4.4",
    "@babel/plugin-proposal-class-properties": "^7.5.0",
    "@babel/plugin-proposal-decorators": "^7.4.4",
    "@babel/plugin-proposal-object-rest-spread": "^7.4.4",
    "@babel/plugin-syntax-dynamic-import": "^7.2.0",


@@ 85,7 85,7 @@
    "babel-runtime": "^6.26.0",
    "blurhash": "^1.0.0",
    "classnames": "^2.2.5",
    "compression-webpack-plugin": "^2.0.0",
    "compression-webpack-plugin": "^3.0.0",
    "cross-env": "^5.1.4",
    "css-loader": "^2.1.1",
    "cssnano": "^4.1.10",


@@ 106,10 106,10 @@
    "intersection-observer": "^0.7.0",
    "intl": "^1.2.5",
    "intl-messageformat": "^2.2.0",
    "intl-relativeformat": "^2.2.0",
    "intl-relativeformat": "^6.4.2",
    "is-nan": "^1.2.1",
    "js-yaml": "^3.13.1",
    "lodash": "^4.7.11",
    "lodash": "^4.17.13",
    "mark-loader": "^0.1.6",
    "marky": "^1.2.1",
    "mini-css-extract-plugin": "^0.7.0",


@@ 136,7 136,7 @@
    "react-motion": "^0.5.2",
    "react-notification": "^6.8.4",
    "react-overlays": "^0.8.3",
    "react-redux": "^6.0.1",
    "react-redux": "^7.1.0",
    "react-redux-loading-bar": "^4.0.8",
    "react-router-dom": "^4.1.1",
    "react-router-scroll-4": "^1.0.0-beta.1",


@@ 177,7 177,7 @@
    "eslint-plugin-import": "~2.17.3",
    "eslint-plugin-jsx-a11y": "~6.2.1",
    "eslint-plugin-promise": "~4.2.1",
    "eslint-plugin-react": "~7.12.1",
    "eslint-plugin-react": "~7.14.2",
    "jest": "^24.8.0",
    "raf": "^3.4.1",
    "react-intl-translations-manager": "^5.0.3",

M yarn.lock => yarn.lock +126 -73
@@ 103,10 103,10 @@
    "@babel/traverse" "^7.4.4"
    "@babel/types" "^7.4.4"

"@babel/helper-create-class-features-plugin@^7.4.4":
  version "7.4.4"
  resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.4.tgz#fc3d690af6554cc9efc607364a82d48f58736dba"
  integrity sha512-UbBHIa2qeAGgyiNR9RszVF7bUHEdgS4JAUNT8SiqrAN6YJVxlOxeLr5pBzb5kan302dejJ9nla4RyKcR1XT6XA==
"@babel/helper-create-class-features-plugin@^7.4.4", "@babel/helper-create-class-features-plugin@^7.5.0":
  version "7.5.0"
  resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.0.tgz#02edb97f512d44ba23b3227f1bf2ed43454edac5"
  integrity sha512-EAoMc3hE5vE5LNhMqDOwB1usHvmRjCDAnH8CD4PVkX9/Yr3W/tcz8xE8QvdZxfsFBDICwZnF2UTHIqslRpvxmA==
  dependencies:
    "@babel/helper-function-name" "^7.1.0"
    "@babel/helper-member-expression-to-functions" "^7.0.0"


@@ 297,12 297,12 @@
    "@babel/helper-remap-async-to-generator" "^7.1.0"
    "@babel/plugin-syntax-async-generators" "^7.2.0"

"@babel/plugin-proposal-class-properties@^7.4.4":
  version "7.4.4"
  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.4.tgz#93a6486eed86d53452ab9bab35e368e9461198ce"
  integrity sha512-WjKTI8g8d5w1Bc9zgwSz2nfrsNQsXcCf9J9cdCvrJV6RF56yztwm4TmJC0MgJ9tvwO9gUA/mcYe89bLdGfiXFg==
"@babel/plugin-proposal-class-properties@^7.5.0":
  version "7.5.0"
  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.0.tgz#5bc6a0537d286fcb4fd4e89975adbca334987007"
  integrity sha512-9L/JfPCT+kShiiTTzcnBJ8cOwdKVmlC1RcCf9F0F9tERVrM4iWtWnXtjWCRqNm2la2BxO1MPArWNsU9zsSJWSQ==
  dependencies:
    "@babel/helper-create-class-features-plugin" "^7.4.4"
    "@babel/helper-create-class-features-plugin" "^7.5.0"
    "@babel/helper-plugin-utils" "^7.0.0"

"@babel/plugin-proposal-decorators@^7.4.4":


@@ 768,7 768,7 @@
  dependencies:
    regenerator-runtime "^0.12.0"

"@babel/runtime@^7.1.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.5":
"@babel/runtime@^7.1.2", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.5":
  version "7.4.5"
  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.5.tgz#582bb531f5f9dc67d2fcb682979894f75e253f12"
  integrity sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==


@@ 1681,13 1681,6 @@ async@^1.5.2:
  resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
  integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=

async@^2.5.0:
  version "2.6.1"
  resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610"
  integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==
  dependencies:
    lodash "^4.17.10"

asynckit@^0.4.0:
  version "0.4.0"
  resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"


@@ 2499,16 2492,11 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
  dependencies:
    delayed-stream "~1.0.0"

commander@^2.11.0, commander@^2.18.0, commander@^2.19.0, commander@^2.8.1:
commander@^2.11.0, commander@^2.18.0, commander@^2.19.0, commander@^2.8.1, commander@~2.20.0:
  version "2.20.0"
  resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
  integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==

commander@~2.17.1:
  version "2.17.1"
  resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
  integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==

commondir@^1.0.1:
  version "1.0.1"
  resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"


@@ 2526,13 2514,13 @@ compressible@~2.0.16:
  dependencies:
    mime-db ">= 1.40.0 < 2"

compression-webpack-plugin@^2.0.0:
  version "2.0.0"
  resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-2.0.0.tgz#46476350c1eb27f783dccc79ac2f709baa2cffbc"
  integrity sha512-bDgd7oTUZC8EkRx8j0sjyCfeiO+e5sFcfgaFcjVhfQf5lLya7oY2BczxcJ7IUuVjz5m6fy8IECFmVFew3xLk8Q==
compression-webpack-plugin@^3.0.0:
  version "3.0.0"
  resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.0.0.tgz#097d2e4d95c3a14cb5c8ed20899009ab5b9bbca0"
  integrity sha512-ls+oKw4eRbvaSv/hj9NmctihhBcR26j76JxV0bLRLcWhrUBdQFgd06z/Kgg7exyQvtWWP484wZxs0gIUX3NO0Q==
  dependencies:
    cacache "^11.2.0"
    find-cache-dir "^2.0.0"
    find-cache-dir "^3.0.0"
    neo-async "^2.5.0"
    schema-utils "^1.0.0"
    serialize-javascript "^1.4.0"


@@ 3702,18 3690,20 @@ eslint-plugin-promise@~4.2.1:
  resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a"
  integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==

eslint-plugin-react@~7.12.1:
  version "7.12.1"
  resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.1.tgz#b9c4639f72469ff317ac31e3bd630d22d0dbf8f4"
  integrity sha512-1YyXVhp6KSB+xRC1BWzmlA4BH9Wp9jMMBE6AJizxuk+bg/KUJpQGRwsU1/q1pV8rM6oEdLCxunXn7Nfh2BOWBg==
eslint-plugin-react@~7.14.2:
  version "7.14.2"
  resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.14.2.tgz#94c193cc77a899ac0ecbb2766fbef88685b7ecc1"
  integrity sha512-jZdnKe3ip7FQOdjxks9XPN0pjUKZYq48OggNMd16Sk+8VXx6JOvXmlElxROCgp7tiUsTsze3jd78s/9AFJP2mA==
  dependencies:
    array-includes "^3.0.3"
    doctrine "^2.1.0"
    has "^1.0.3"
    jsx-ast-utils "^2.0.1"
    jsx-ast-utils "^2.1.0"
    object.entries "^1.1.0"
    object.fromentries "^2.0.0"
    prop-types "^15.6.2"
    resolve "^1.9.0"
    object.values "^1.1.0"
    prop-types "^15.7.2"
    resolve "^1.10.1"

eslint-scope@3.7.1:
  version "3.7.1"


@@ 4198,6 4188,15 @@ find-cache-dir@^2.0.0:
    make-dir "^1.0.0"
    pkg-dir "^3.0.0"

find-cache-dir@^3.0.0:
  version "3.0.0"
  resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.0.0.tgz#cd4b7dd97b7185b7e17dbfe2d6e4115ee3eeb8fc"
  integrity sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw==
  dependencies:
    commondir "^1.0.1"
    make-dir "^3.0.0"
    pkg-dir "^4.1.0"

find-root@^1.1.0:
  version "1.1.0"
  resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"


@@ 4217,6 4216,14 @@ find-up@^3.0.0:
  dependencies:
    locate-path "^3.0.0"

find-up@^4.0.0:
  version "4.1.0"
  resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
  integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
  dependencies:
    locate-path "^5.0.0"
    path-exists "^4.0.0"

findup-sync@3.0.0:
  version "3.0.0"
  resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1"


@@ 4587,11 4594,11 @@ handle-thing@^2.0.0:
  integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==

handlebars@^4.1.0:
  version "4.1.0"
  resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.0.tgz#0d6a6f34ff1f63cecec8423aa4169827bf787c3a"
  integrity sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==
  version "4.1.2"
  resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67"
  integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==
  dependencies:
    async "^2.5.0"
    neo-async "^2.6.0"
    optimist "^0.6.1"
    source-map "^0.6.1"
  optionalDependencies:


@@ 5083,13 5090,18 @@ intl-messageformat@^2.0.0, intl-messageformat@^2.1.0, intl-messageformat@^2.2.0:
  dependencies:
    intl-messageformat-parser "1.4.0"

intl-relativeformat@^2.1.0, intl-relativeformat@^2.2.0:
intl-relativeformat@^2.1.0:
  version "2.2.0"
  resolved "https://registry.yarnpkg.com/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz#6aca95d019ec8d30b6c5653b6629f9983ea5b6c5"
  integrity sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==
  dependencies:
    intl-messageformat "^2.0.0"

intl-relativeformat@^6.4.2:
  version "6.4.2"
  resolved "https://registry.yarnpkg.com/intl-relativeformat/-/intl-relativeformat-6.4.2.tgz#431f9818449f5b48c209610ff1428d0c663c667f"
  integrity sha512-yaOimRUQEn1wOfVGk43H+EVCrxQ5WFEvtYBx4Ffa6QpEHIi6UOuvshx6RltuqIF5UM8xdF4SkzFHXXOnYXlgBA==

intl@^1.2.5:
  version "1.2.5"
  resolved "https://registry.yarnpkg.com/intl/-/intl-1.2.5.tgz#82244a2190c4e419f8371f5aa34daa3420e2abde"


@@ 6033,12 6045,13 @@ jsprim@^1.2.2:
    json-schema "0.2.3"
    verror "1.10.0"

jsx-ast-utils@^2.0.1:
  version "2.0.1"
  resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f"
  integrity sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=
jsx-ast-utils@^2.0.1, jsx-ast-utils@^2.1.0:
  version "2.2.1"
  resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz#4d4973ebf8b9d2837ee91a8208cc66f3a2776cfb"
  integrity sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==
  dependencies:
    array-includes "^3.0.3"
    object.assign "^4.1.0"

keycode@^2.1.7:
  version "2.2.0"


@@ 6174,6 6187,13 @@ locate-path@^3.0.0:
    p-locate "^3.0.0"
    path-exists "^3.0.0"

locate-path@^5.0.0:
  version "5.0.0"
  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
  integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
  dependencies:
    p-locate "^4.1.0"

lodash.capitalize@^4.1.0:
  version "4.2.1"
  resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9"


@@ 6244,10 6264,10 @@ 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.5, lodash@^4.3.0, lodash@^4.7.11, lodash@~4.17.10:
  version "4.17.11"
  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
  integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
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.5, lodash@^4.3.0, lodash@~4.17.10:
  version "4.17.13"
  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.13.tgz#0bdc3a6adc873d2f4e0c4bac285df91b64fc7b93"
  integrity sha512-vm3/XWXfWtRua0FkUyEHBZy8kCPjErNBT9fJx8Zvs+U6zjqPbTUOpkaoum3O5uiA8sm+yNMHXfYkTUHFoMxFNA==

loglevel@^1.6.3:
  version "1.6.3"


@@ 6275,6 6295,13 @@ make-dir@^1.0.0, make-dir@^1.3.0:
  dependencies:
    pify "^3.0.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==
  dependencies:
    semver "^6.0.0"

makeerror@1.0.x:
  version "1.0.11"
  resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c"


@@ 6653,10 6680,10 @@ negotiator@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:
  version "2.6.0"
  resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835"
  integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==
neo-async@^2.5.0, neo-async@^2.6.0:
  version "2.6.1"
  resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
  integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==

next-tick@1, next-tick@^1.0.0:
  version "1.0.0"


@@ 7122,6 7149,13 @@ p-limit@^2.0.0:
  dependencies:
    p-try "^2.0.0"

p-limit@^2.2.0:
  version "2.2.0"
  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2"
  integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==
  dependencies:
    p-try "^2.0.0"

p-locate@^2.0.0:
  version "2.0.0"
  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"


@@ 7136,6 7170,13 @@ p-locate@^3.0.0:
  dependencies:
    p-limit "^2.0.0"

p-locate@^4.1.0:
  version "4.1.0"
  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
  integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
  dependencies:
    p-limit "^2.2.0"

p-map@^2.0.0:
  version "2.1.0"
  resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"


@@ 7277,6 7318,11 @@ path-exists@^3.0.0:
  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
  integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=

path-exists@^4.0.0:
  version "4.0.0"
  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
  integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==

path-is-absolute@^1.0.0:
  version "1.0.1"
  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"


@@ 7442,6 7488,13 @@ pkg-dir@^3.0.0:
  dependencies:
    find-up "^3.0.0"

pkg-dir@^4.1.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==
  dependencies:
    find-up "^4.0.0"

pluralize@^1.2.1:
  version "1.2.1"
  resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"


@@ 8197,7 8250,7 @@ react-intl@^2.9.0:
    intl-relativeformat "^2.1.0"
    invariant "^2.1.1"

react-is@^16.3.2, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.2, react-is@^16.8.4, react-is@^16.8.6:
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:
  version "16.8.6"
  resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16"
  integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==


@@ 8252,17 8305,17 @@ react-redux-loading-bar@^4.0.8:
    prop-types "^15.6.2"
    react-lifecycles-compat "^3.0.2"

react-redux@^6.0.1:
  version "6.0.1"
  resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-6.0.1.tgz#0d423e2c1cb10ada87293d47e7de7c329623ba4d"
  integrity sha512-T52I52Kxhbqy/6TEfBv85rQSDz6+Y28V/pf52vDWs1YRXG19mcFOGfHnY2HsNFHyhP+ST34Aih98fvt6tqwVcQ==
react-redux@^7.1.0:
  version "7.1.0"
  resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.1.0.tgz#72af7cf490a74acdc516ea9c1dd80e25af9ea0b2"
  integrity sha512-hyu/PoFK3vZgdLTg9ozbt7WF3GgX5+Yn3pZm5/96/o4UueXA+zj08aiSC9Mfj2WtD1bvpIb3C5yvskzZySzzaw==
  dependencies:
    "@babel/runtime" "^7.3.1"
    "@babel/runtime" "^7.4.5"
    hoist-non-react-statics "^3.3.0"
    invariant "^2.2.4"
    loose-envify "^1.4.0"
    prop-types "^15.7.2"
    react-is "^16.8.2"
    react-is "^16.8.6"

react-router-dom@^4.1.1:
  version "4.3.1"


@@ 8748,10 8801,10 @@ resolve@1.1.7:
  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
  integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=

resolve@^1.10.0, resolve@^1.11.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0:
  version "1.11.0"
  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232"
  integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==
resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1:
  version "1.11.1"
  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e"
  integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==
  dependencies:
    path-parse "^1.0.6"



@@ 8975,6 9028,11 @@ semver@4.3.2:
  resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7"
  integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=

semver@^6.0.0:
  version "6.1.3"
  resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.3.tgz#ef997a1a024f67dd48a7f155df88bb7b5c6c3fc7"
  integrity sha512-aymF+56WJJMyXQHcd4hlK4N75rwj5RQpfW8ePlQnJsTYOBLlLbcIErR/G1s9SkIvKBqOudR3KAx4wEqP+F1hNQ==

semver@^6.1.0, semver@^6.1.1:
  version "6.1.1"
  resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b"


@@ 8999,12 9057,7 @@ send@0.17.1:
    range-parser "~1.2.1"
    statuses "~1.5.0"

serialize-javascript@^1.4.0:
  version "1.6.1"
  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879"
  integrity sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==

serialize-javascript@^1.7.0:
serialize-javascript@^1.4.0, serialize-javascript@^1.7.0:
  version "1.7.0"
  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65"
  integrity sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==


@@ 9873,11 9926,11 @@ ua-parser-js@^0.7.18:
  integrity sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ==

uglify-js@^3.1.4:
  version "3.4.9"
  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3"
  integrity sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==
  version "3.6.0"
  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5"
  integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==
  dependencies:
    commander "~2.17.1"
    commander "~2.20.0"
    source-map "~0.6.1"

unicode-astral-regex@^1.0.1: