Merge pull request #1487 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
This commit is contained in:
		
						commit
						d1255ab8a5
					
				
							
								
								
									
										2
									
								
								Gemfile
								
								
								
								
							
							
						
						
									
										2
									
								
								Gemfile
								
								
								
								
							| 
						 | 
				
			
			@ -66,7 +66,7 @@ gem 'mime-types', '~> 3.3.1', require: 'mime/types/columnar'
 | 
			
		|||
gem 'nilsimsa', git: 'https://github.com/witgo/nilsimsa', ref: 'fd184883048b922b176939f851338d0a4971a532'
 | 
			
		||||
gem 'nokogiri', '~> 1.11'
 | 
			
		||||
gem 'nsa', '~> 0.2'
 | 
			
		||||
gem 'oj', '~> 3.10'
 | 
			
		||||
gem 'oj', '~> 3.11'
 | 
			
		||||
gem 'ox', '~> 2.14'
 | 
			
		||||
gem 'parslet'
 | 
			
		||||
gem 'parallel', '~> 1.20'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										16
									
								
								Gemfile.lock
								
								
								
								
							
							
						
						
									
										16
									
								
								Gemfile.lock
								
								
								
								
							| 
						 | 
				
			
			@ -155,7 +155,7 @@ GEM
 | 
			
		|||
      climate_control (>= 0.0.3, < 1.0)
 | 
			
		||||
    coderay (1.1.3)
 | 
			
		||||
    color_diff (0.1)
 | 
			
		||||
    concurrent-ruby (1.1.7)
 | 
			
		||||
    concurrent-ruby (1.1.8)
 | 
			
		||||
    connection_pool (2.2.3)
 | 
			
		||||
    cose (1.0.0)
 | 
			
		||||
      cbor (~> 0.5.9)
 | 
			
		||||
| 
						 | 
				
			
			@ -350,7 +350,7 @@ GEM
 | 
			
		|||
    mimemagic (0.3.5)
 | 
			
		||||
    mini_mime (1.0.2)
 | 
			
		||||
    mini_portile2 (2.5.0)
 | 
			
		||||
    minitest (5.14.2)
 | 
			
		||||
    minitest (5.14.3)
 | 
			
		||||
    msgpack (1.3.3)
 | 
			
		||||
    multi_json (1.15.0)
 | 
			
		||||
    multipart-post (2.1.1)
 | 
			
		||||
| 
						 | 
				
			
			@ -369,7 +369,7 @@ GEM
 | 
			
		|||
      concurrent-ruby (~> 1.0, >= 1.0.2)
 | 
			
		||||
      sidekiq (>= 3.5)
 | 
			
		||||
      statsd-ruby (~> 1.4, >= 1.4.0)
 | 
			
		||||
    oj (3.10.18)
 | 
			
		||||
    oj (3.11.0)
 | 
			
		||||
    omniauth (1.9.1)
 | 
			
		||||
      hashie (>= 3.4.6)
 | 
			
		||||
      rack (>= 1.6.2, < 3)
 | 
			
		||||
| 
						 | 
				
			
			@ -386,7 +386,7 @@ GEM
 | 
			
		|||
    openssl (2.2.0)
 | 
			
		||||
    openssl-signature_algorithm (0.4.0)
 | 
			
		||||
    orm_adapter (0.5.0)
 | 
			
		||||
    ox (2.14.0)
 | 
			
		||||
    ox (2.14.1)
 | 
			
		||||
    paperclip (6.0.0)
 | 
			
		||||
      activemodel (>= 4.2.0)
 | 
			
		||||
      activesupport (>= 4.2.0)
 | 
			
		||||
| 
						 | 
				
			
			@ -561,7 +561,7 @@ GEM
 | 
			
		|||
      fugit (~> 1.1, >= 1.1.6)
 | 
			
		||||
    safety_net_attestation (0.4.0)
 | 
			
		||||
      jwt (~> 2.0)
 | 
			
		||||
    sanitize (5.2.2)
 | 
			
		||||
    sanitize (5.2.3)
 | 
			
		||||
      crass (~> 1.0.2)
 | 
			
		||||
      nokogiri (>= 1.8.0)
 | 
			
		||||
      nokogumbo (~> 2.0)
 | 
			
		||||
| 
						 | 
				
			
			@ -613,7 +613,7 @@ GEM
 | 
			
		|||
    stoplight (2.2.1)
 | 
			
		||||
    streamio-ffmpeg (3.0.2)
 | 
			
		||||
      multi_json (~> 1.8)
 | 
			
		||||
    strong_migrations (0.7.4)
 | 
			
		||||
    strong_migrations (0.7.6)
 | 
			
		||||
      activerecord (>= 5)
 | 
			
		||||
    temple (0.8.2)
 | 
			
		||||
    terminal-table (2.0.0)
 | 
			
		||||
| 
						 | 
				
			
			@ -661,7 +661,7 @@ GEM
 | 
			
		|||
      safety_net_attestation (~> 0.4.0)
 | 
			
		||||
      securecompare (~> 1.0)
 | 
			
		||||
      tpm-key_attestation (~> 0.9.0)
 | 
			
		||||
    webmock (3.11.0)
 | 
			
		||||
    webmock (3.11.1)
 | 
			
		||||
      addressable (>= 2.3.6)
 | 
			
		||||
      crack (>= 0.3.2)
 | 
			
		||||
      hashdiff (>= 0.4.0, < 2.0.0)
 | 
			
		||||
| 
						 | 
				
			
			@ -750,7 +750,7 @@ DEPENDENCIES
 | 
			
		|||
  nilsimsa!
 | 
			
		||||
  nokogiri (~> 1.11)
 | 
			
		||||
  nsa (~> 0.2)
 | 
			
		||||
  oj (~> 3.10)
 | 
			
		||||
  oj (~> 3.11)
 | 
			
		||||
  omniauth (~> 1.9)
 | 
			
		||||
  omniauth-cas (~> 2.0)
 | 
			
		||||
  omniauth-rails_csrf_protection (~> 0.1)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,7 +8,7 @@ class StatusesController < ApplicationController
 | 
			
		|||
 | 
			
		||||
  layout 'public'
 | 
			
		||||
 | 
			
		||||
  before_action :require_signature!, only: :show, if: -> { request.format == :json && authorized_fetch_mode? }
 | 
			
		||||
  before_action :require_signature!, only: [:show, :activity], if: -> { request.format == :json && authorized_fetch_mode? }
 | 
			
		||||
  before_action :set_status
 | 
			
		||||
  before_action :set_instance_presenter
 | 
			
		||||
  before_action :set_link_headers
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -327,7 +327,7 @@ export default class StatusContent extends React.PureComponent {
 | 
			
		|||
          <p
 | 
			
		||||
            style={{ marginBottom: hidden && status.get('mentions').isEmpty() ? '0px' : null }}
 | 
			
		||||
          >
 | 
			
		||||
            <span dangerouslySetInnerHTML={spoilerContent} />
 | 
			
		||||
            <span dangerouslySetInnerHTML={spoilerContent} className='translate' />
 | 
			
		||||
            {' '}
 | 
			
		||||
            <button tabIndex='0' className='status__content__spoiler-link' onClick={this.handleSpoilerClick}>
 | 
			
		||||
              {toggleText}
 | 
			
		||||
| 
						 | 
				
			
			@ -342,7 +342,7 @@ export default class StatusContent extends React.PureComponent {
 | 
			
		|||
              key={`contents-${tagLinks}`}
 | 
			
		||||
              tabIndex={!hidden ? 0 : null}
 | 
			
		||||
              dangerouslySetInnerHTML={content}
 | 
			
		||||
              className='status__content__text'
 | 
			
		||||
              className='status__content__text translate'
 | 
			
		||||
            />
 | 
			
		||||
            {media}
 | 
			
		||||
          </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -362,7 +362,7 @@ export default class StatusContent extends React.PureComponent {
 | 
			
		|||
            ref={this.setContentsRef}
 | 
			
		||||
            key={`contents-${tagLinks}-${rewriteMentions}`}
 | 
			
		||||
            dangerouslySetInnerHTML={content}
 | 
			
		||||
            className='status__content__text'
 | 
			
		||||
            className='status__content__text translate'
 | 
			
		||||
            tabIndex='0'
 | 
			
		||||
          />
 | 
			
		||||
          {media}
 | 
			
		||||
| 
						 | 
				
			
			@ -375,7 +375,7 @@ export default class StatusContent extends React.PureComponent {
 | 
			
		|||
          tabIndex='0'
 | 
			
		||||
          ref={this.setRef}
 | 
			
		||||
        >
 | 
			
		||||
          <div ref={this.setContentsRef} key={`contents-${tagLinks}`} className='status__content__text' dangerouslySetInnerHTML={content} tabIndex='0' />
 | 
			
		||||
          <div ref={this.setContentsRef} key={`contents-${tagLinks}`} className='status__content__text translate' dangerouslySetInnerHTML={content} tabIndex='0' />
 | 
			
		||||
          {media}
 | 
			
		||||
        </div>
 | 
			
		||||
      );
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -320,13 +320,13 @@ class Header extends ImmutablePureComponent {
 | 
			
		|||
                  <div className='account__header__fields'>
 | 
			
		||||
                    {identity_proofs.map((proof, i) => (
 | 
			
		||||
                      <dl key={i}>
 | 
			
		||||
                        <dt dangerouslySetInnerHTML={{ __html: proof.get('provider') }} />
 | 
			
		||||
                        <dt dangerouslySetInnerHTML={{ __html: proof.get('provider') }} className='translate' />
 | 
			
		||||
 | 
			
		||||
                        <dd className='verified'>
 | 
			
		||||
                          <a href={proof.get('proof_url')} target='_blank' rel='noopener noreferrer'><span title={intl.formatMessage(messages.linkVerifiedOn, { date: intl.formatDate(proof.get('updated_at'), dateFormatOptions) })}>
 | 
			
		||||
                            <Icon id='check' className='verified__mark' />
 | 
			
		||||
                          </span></a>
 | 
			
		||||
                          <a href={proof.get('profile_url')} target='_blank' rel='noopener noreferrer'><span dangerouslySetInnerHTML={{ __html: ' '+proof.get('provider_username') }} /></a>
 | 
			
		||||
                          <a href={proof.get('profile_url')} target='_blank' rel='noopener noreferrer'><span dangerouslySetInnerHTML={{ __html: ' '+proof.get('provider_username') }} className='translate' /></a>
 | 
			
		||||
                        </dd>
 | 
			
		||||
                      </dl>
 | 
			
		||||
                    ))}
 | 
			
		||||
| 
						 | 
				
			
			@ -335,14 +335,14 @@ class Header extends ImmutablePureComponent {
 | 
			
		|||
                        <dt dangerouslySetInnerHTML={{ __html: pair.get('name_emojified') }} title={pair.get('name')} />
 | 
			
		||||
   
 | 
			
		||||
                        <dd className={pair.get('verified_at') && 'verified'} title={pair.get('value_plain')}>
 | 
			
		||||
                          {pair.get('verified_at') && <span title={intl.formatMessage(messages.linkVerifiedOn, { date: intl.formatDate(pair.get('verified_at'), dateFormatOptions) })}><Icon id='check' className='verified__mark' /></span>} <span dangerouslySetInnerHTML={{ __html: pair.get('value_emojified') }} />
 | 
			
		||||
                          {pair.get('verified_at') && <span title={intl.formatMessage(messages.linkVerifiedOn, { date: intl.formatDate(pair.get('verified_at'), dateFormatOptions) })}><Icon id='check' className='verified__mark' /></span>} <span dangerouslySetInnerHTML={{ __html: pair.get('value_emojified') }} className='translate' />
 | 
			
		||||
                        </dd>
 | 
			
		||||
                      </dl>
 | 
			
		||||
                    ))}
 | 
			
		||||
                  </div>
 | 
			
		||||
                )}
 | 
			
		||||
 | 
			
		||||
                {account.get('note').length > 0 && account.get('note') !== '<p></p>' && <div className='account__header__content' dangerouslySetInnerHTML={content} />}
 | 
			
		||||
                {account.get('note').length > 0 && account.get('note') !== '<p></p>' && <div className='account__header__content translate' dangerouslySetInnerHTML={content} />}
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
          )}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -145,7 +145,7 @@ class Content extends ImmutablePureComponent {
 | 
			
		|||
 | 
			
		||||
    return (
 | 
			
		||||
      <div
 | 
			
		||||
        className='announcements__item__content'
 | 
			
		||||
        className='announcements__item__content translate'
 | 
			
		||||
        ref={this.setRef}
 | 
			
		||||
        dangerouslySetInnerHTML={{ __html: announcement.get('contentHtml') }}
 | 
			
		||||
      />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -221,14 +221,14 @@ export default class StatusContent extends React.PureComponent {
 | 
			
		|||
      return (
 | 
			
		||||
        <div className={classNames} ref={this.setRef} tabIndex='0' onMouseDown={this.handleMouseDown} onMouseUp={this.handleMouseUp}>
 | 
			
		||||
          <p style={{ marginBottom: hidden && status.get('mentions').isEmpty() ? '0px' : null }}>
 | 
			
		||||
            <span dangerouslySetInnerHTML={spoilerContent} />
 | 
			
		||||
            <span dangerouslySetInnerHTML={spoilerContent} className='translate' />
 | 
			
		||||
            {' '}
 | 
			
		||||
            <button tabIndex='0' className={`status__content__spoiler-link ${hidden ? 'status__content__spoiler-link--show-more' : 'status__content__spoiler-link--show-less'}`} onClick={this.handleSpoilerClick}>{toggleText}</button>
 | 
			
		||||
          </p>
 | 
			
		||||
 | 
			
		||||
          {mentionsPlaceholder}
 | 
			
		||||
 | 
			
		||||
          <div tabIndex={!hidden ? 0 : null} className={`status__content__text ${!hidden ? 'status__content__text--visible' : ''}`} dangerouslySetInnerHTML={content} />
 | 
			
		||||
          <div tabIndex={!hidden ? 0 : null} className={`status__content__text ${!hidden ? 'status__content__text--visible' : ''} translate`} dangerouslySetInnerHTML={content} />
 | 
			
		||||
 | 
			
		||||
          {!hidden && !!status.get('poll') && <PollContainer pollId={status.get('poll')} />}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -238,7 +238,7 @@ export default class StatusContent extends React.PureComponent {
 | 
			
		|||
    } else if (this.props.onClick) {
 | 
			
		||||
      const output = [
 | 
			
		||||
        <div className={classNames} ref={this.setRef} tabIndex='0' onMouseDown={this.handleMouseDown} onMouseUp={this.handleMouseUp} key='status-content'>
 | 
			
		||||
          <div className='status__content__text status__content__text--visible' dangerouslySetInnerHTML={content} />
 | 
			
		||||
          <div className='status__content__text status__content__text--visible translate' dangerouslySetInnerHTML={content} />
 | 
			
		||||
 | 
			
		||||
          {!!status.get('poll') && <PollContainer pollId={status.get('poll')} />}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -254,7 +254,7 @@ export default class StatusContent extends React.PureComponent {
 | 
			
		|||
    } else {
 | 
			
		||||
      return (
 | 
			
		||||
        <div className={classNames} ref={this.setRef} tabIndex='0'>
 | 
			
		||||
          <div className='status__content__text status__content__text--visible' dangerouslySetInnerHTML={content} />
 | 
			
		||||
          <div className='status__content__text status__content__text--visible translate' dangerouslySetInnerHTML={content} />
 | 
			
		||||
 | 
			
		||||
          {!!status.get('poll') && <PollContainer pollId={status.get('poll')} />}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -328,9 +328,9 @@ class Header extends ImmutablePureComponent {
 | 
			
		|||
                  ))}
 | 
			
		||||
                  {fields.map((pair, i) => (
 | 
			
		||||
                    <dl key={i}>
 | 
			
		||||
                      <dt dangerouslySetInnerHTML={{ __html: pair.get('name_emojified') }} title={pair.get('name')} />
 | 
			
		||||
                      <dt dangerouslySetInnerHTML={{ __html: pair.get('name_emojified') }} title={pair.get('name')} className='translate' />
 | 
			
		||||
 | 
			
		||||
                      <dd className={pair.get('verified_at') && 'verified'} title={pair.get('value_plain')}>
 | 
			
		||||
                      <dd className={pair.get('verified_at') && 'verified'} title={pair.get('value_plain')} className='translate'>
 | 
			
		||||
                        {pair.get('verified_at') && <span title={intl.formatMessage(messages.linkVerifiedOn, { date: intl.formatDate(pair.get('verified_at'), dateFormatOptions) })}><Icon id='check' className='verified__mark' /></span>} <span dangerouslySetInnerHTML={{ __html: pair.get('value_emojified') }} />
 | 
			
		||||
                      </dd>
 | 
			
		||||
                    </dl>
 | 
			
		||||
| 
						 | 
				
			
			@ -340,7 +340,7 @@ class Header extends ImmutablePureComponent {
 | 
			
		|||
 | 
			
		||||
              {account.get('id') !== me && !suspended && <AccountNoteContainer account={account} />}
 | 
			
		||||
 | 
			
		||||
              {account.get('note').length > 0 && account.get('note') !== '<p></p>' && <div className='account__header__content' dangerouslySetInnerHTML={content} />}
 | 
			
		||||
              {account.get('note').length > 0 && account.get('note') !== '<p></p>' && <div className='account__header__content' dangerouslySetInnerHTML={content} className='translate' />}
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            {!suspended && (
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -145,7 +145,7 @@ class Content extends ImmutablePureComponent {
 | 
			
		|||
 | 
			
		||||
    return (
 | 
			
		||||
      <div
 | 
			
		||||
        className='announcements__item__content'
 | 
			
		||||
        className='announcements__item__content translate'
 | 
			
		||||
        ref={this.setRef}
 | 
			
		||||
        dangerouslySetInnerHTML={{ __html: announcement.get('contentHtml') }}
 | 
			
		||||
      />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -152,7 +152,7 @@ class User < ApplicationRecord
 | 
			
		|||
 | 
			
		||||
  def confirm
 | 
			
		||||
    new_user      = !confirmed?
 | 
			
		||||
    self.approved = true if open_registrations?
 | 
			
		||||
    self.approved = true if open_registrations? && !sign_up_from_ip_requires_approval?
 | 
			
		||||
 | 
			
		||||
    super
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@
 | 
			
		|||
  %meta{name: 'applicationServerKey', content: Rails.configuration.x.vapid_public_key}
 | 
			
		||||
  = render_initial_state
 | 
			
		||||
 | 
			
		||||
.app-holder#mastodon{ data: { props: Oj.dump(default_props) } }
 | 
			
		||||
.notranslate.app-holder#mastodon{ data: { props: Oj.dump(default_props) } }
 | 
			
		||||
  %noscript
 | 
			
		||||
    = image_pack_tag 'logo.svg', alt: 'Mastodon'
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,4 +13,4 @@
 | 
			
		|||
    %p= t('about.browse_local_posts')
 | 
			
		||||
 | 
			
		||||
#mastodon-timeline{ data: { props: Oj.dump(default_props.merge(local: !Setting.show_known_fediverse_at_about_page)) }}
 | 
			
		||||
#modal-container
 | 
			
		||||
.notranslate#modal-container
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,4 +12,4 @@
 | 
			
		|||
  %p= t('about.about_hashtag_html', hashtag: @tag.name)
 | 
			
		||||
 | 
			
		||||
#mastodon-timeline{ data: { props: Oj.dump(default_props.merge(hashtag: @tag.name, local: @local)) }}
 | 
			
		||||
#modal-container
 | 
			
		||||
.notranslate#modal-container
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										18
									
								
								package.json
								
								
								
								
							
							
						
						
									
										18
									
								
								package.json
								
								
								
								
							| 
						 | 
				
			
			@ -114,7 +114,7 @@
 | 
			
		|||
    "lodash": "^4.17.19",
 | 
			
		||||
    "mark-loader": "^0.1.6",
 | 
			
		||||
    "marky": "^1.2.1",
 | 
			
		||||
    "mini-css-extract-plugin": "^1.3.3",
 | 
			
		||||
    "mini-css-extract-plugin": "^1.3.4",
 | 
			
		||||
    "mkdirp": "^1.0.4",
 | 
			
		||||
    "npmlog": "^4.1.2",
 | 
			
		||||
    "object-assign": "^4.1.1",
 | 
			
		||||
| 
						 | 
				
			
			@ -142,7 +142,7 @@
 | 
			
		|||
    "react-redux-loading-bar": "^4.0.8",
 | 
			
		||||
    "react-router-dom": "^4.1.1",
 | 
			
		||||
    "react-router-scroll-4": "^1.0.0-beta.1",
 | 
			
		||||
    "react-select": "^3.1.1",
 | 
			
		||||
    "react-select": "^3.2.0",
 | 
			
		||||
    "react-sparklines": "^1.7.0",
 | 
			
		||||
    "react-swipeable-views": "^0.13.9",
 | 
			
		||||
    "react-textarea-autosize": "^8.3.0",
 | 
			
		||||
| 
						 | 
				
			
			@ -156,8 +156,8 @@
 | 
			
		|||
    "requestidlecallback": "^0.3.0",
 | 
			
		||||
    "reselect": "^4.0.0",
 | 
			
		||||
    "rimraf": "^3.0.2",
 | 
			
		||||
    "sass": "^1.32.2",
 | 
			
		||||
    "sass-loader": "^10.1.0",
 | 
			
		||||
    "sass": "^1.32.5",
 | 
			
		||||
    "sass-loader": "^10.1.1",
 | 
			
		||||
    "stacktrace-js": "^2.0.2",
 | 
			
		||||
    "stringz": "^2.1.0",
 | 
			
		||||
    "substring-trie": "^1.0.2",
 | 
			
		||||
| 
						 | 
				
			
			@ -166,19 +166,19 @@
 | 
			
		|||
    "throng": "^4.0.0",
 | 
			
		||||
    "tiny-queue": "^0.2.1",
 | 
			
		||||
    "uuid": "^8.3.1",
 | 
			
		||||
    "webpack": "^4.45.0",
 | 
			
		||||
    "webpack-assets-manifest": "^4.0.0",
 | 
			
		||||
    "webpack": "^4.46.0",
 | 
			
		||||
    "webpack-assets-manifest": "^4.0.1",
 | 
			
		||||
    "webpack-bundle-analyzer": "^4.3.0",
 | 
			
		||||
    "webpack-cli": "^3.3.12",
 | 
			
		||||
    "webpack-merge": "^5.7.3",
 | 
			
		||||
    "wicg-inert": "^3.1.0"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@testing-library/jest-dom": "^5.11.8",
 | 
			
		||||
    "@testing-library/jest-dom": "^5.11.9",
 | 
			
		||||
    "@testing-library/react": "^11.2.3",
 | 
			
		||||
    "babel-eslint": "^10.1.0",
 | 
			
		||||
    "babel-jest": "^26.6.3",
 | 
			
		||||
    "eslint": "^7.17.0",
 | 
			
		||||
    "eslint": "^7.18.0",
 | 
			
		||||
    "eslint-plugin-import": "~2.22.1",
 | 
			
		||||
    "eslint-plugin-jsx-a11y": "~6.4.1",
 | 
			
		||||
    "eslint-plugin-promise": "~4.2.1",
 | 
			
		||||
| 
						 | 
				
			
			@ -188,7 +188,7 @@
 | 
			
		|||
    "react-intl-translations-manager": "^5.0.3",
 | 
			
		||||
    "react-test-renderer": "^16.14.0",
 | 
			
		||||
    "sass-lint": "^1.13.1",
 | 
			
		||||
    "webpack-dev-server": "^3.11.1",
 | 
			
		||||
    "webpack-dev-server": "^3.11.2",
 | 
			
		||||
    "yargs": "^16.2.0"
 | 
			
		||||
  },
 | 
			
		||||
  "resolutions": {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										106
									
								
								yarn.lock
								
								
								
								
							
							
						
						
									
										106
									
								
								yarn.lock
								
								
								
								
							| 
						 | 
				
			
			@ -1105,10 +1105,10 @@
 | 
			
		|||
  resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.4.tgz#622a72bebd1e3f48d921563b4b60a762295a81fc"
 | 
			
		||||
  integrity sha512-6PYY5DVdAY1ifaQW6XYTnOMihmBVT27elqSjEoodchsGjzYlEsTQMcEhSud99kVawatyTZRTiVkJ/c6lwbQ7nA==
 | 
			
		||||
 | 
			
		||||
"@eslint/eslintrc@^0.2.2":
 | 
			
		||||
  version "0.2.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76"
 | 
			
		||||
  integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==
 | 
			
		||||
"@eslint/eslintrc@^0.3.0":
 | 
			
		||||
  version "0.3.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318"
 | 
			
		||||
  integrity sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    ajv "^6.12.4"
 | 
			
		||||
    debug "^4.1.1"
 | 
			
		||||
| 
						 | 
				
			
			@ -1117,7 +1117,7 @@
 | 
			
		|||
    ignore "^4.0.6"
 | 
			
		||||
    import-fresh "^3.2.1"
 | 
			
		||||
    js-yaml "^3.13.1"
 | 
			
		||||
    lodash "^4.17.19"
 | 
			
		||||
    lodash "^4.17.20"
 | 
			
		||||
    minimatch "^3.0.4"
 | 
			
		||||
    strip-json-comments "^3.1.1"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1385,10 +1385,10 @@
 | 
			
		|||
    lz-string "^1.4.4"
 | 
			
		||||
    pretty-format "^26.6.2"
 | 
			
		||||
 | 
			
		||||
"@testing-library/jest-dom@^5.11.8":
 | 
			
		||||
  version "5.11.8"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.11.8.tgz#433a84d6f9a089485101b9e112ef03e5c30bcbfc"
 | 
			
		||||
  integrity sha512-ScyKrWQM5xNcr79PkSewnA79CLaoxVskE+f7knTOhDD9ftZSA1Jw8mj+pneqhEu3x37ncNfW84NUr7lqK+mXjA==
 | 
			
		||||
"@testing-library/jest-dom@^5.11.9":
 | 
			
		||||
  version "5.11.9"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.11.9.tgz#e6b3cd687021f89f261bd53cbe367041fbd3e975"
 | 
			
		||||
  integrity sha512-Mn2gnA9d1wStlAIT2NU8J15LNob0YFBVjs2aEQ3j8rsfRQo+lAs7/ui1i2TGaJjapLmuNPLTsrm+nPjmZDwpcQ==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@babel/runtime" "^7.9.2"
 | 
			
		||||
    "@types/testing-library__jest-dom" "^5.9.1"
 | 
			
		||||
| 
						 | 
				
			
			@ -3973,10 +3973,10 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0:
 | 
			
		|||
  dependencies:
 | 
			
		||||
    once "^1.4.0"
 | 
			
		||||
 | 
			
		||||
enhanced-resolve@^4.1.1, enhanced-resolve@^4.3.0:
 | 
			
		||||
  version "4.3.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126"
 | 
			
		||||
  integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==
 | 
			
		||||
enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0:
 | 
			
		||||
  version "4.5.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec"
 | 
			
		||||
  integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    graceful-fs "^4.1.2"
 | 
			
		||||
    memory-fs "^0.5.0"
 | 
			
		||||
| 
						 | 
				
			
			@ -4314,13 +4314,13 @@ eslint@^2.7.0:
 | 
			
		|||
    text-table "~0.2.0"
 | 
			
		||||
    user-home "^2.0.0"
 | 
			
		||||
 | 
			
		||||
eslint@^7.17.0:
 | 
			
		||||
  version "7.17.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.17.0.tgz#4ccda5bf12572ad3bf760e6f195886f50569adb0"
 | 
			
		||||
  integrity sha512-zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ==
 | 
			
		||||
eslint@^7.18.0:
 | 
			
		||||
  version "7.18.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.18.0.tgz#7fdcd2f3715a41fe6295a16234bd69aed2c75e67"
 | 
			
		||||
  integrity sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@babel/code-frame" "^7.0.0"
 | 
			
		||||
    "@eslint/eslintrc" "^0.2.2"
 | 
			
		||||
    "@eslint/eslintrc" "^0.3.0"
 | 
			
		||||
    ajv "^6.10.0"
 | 
			
		||||
    chalk "^4.0.0"
 | 
			
		||||
    cross-spawn "^7.0.2"
 | 
			
		||||
| 
						 | 
				
			
			@ -4344,7 +4344,7 @@ eslint@^7.17.0:
 | 
			
		|||
    js-yaml "^3.13.1"
 | 
			
		||||
    json-stable-stringify-without-jsonify "^1.0.1"
 | 
			
		||||
    levn "^0.4.1"
 | 
			
		||||
    lodash "^4.17.19"
 | 
			
		||||
    lodash "^4.17.20"
 | 
			
		||||
    minimatch "^3.0.4"
 | 
			
		||||
    natural-compare "^1.4.0"
 | 
			
		||||
    optionator "^0.9.1"
 | 
			
		||||
| 
						 | 
				
			
			@ -7115,10 +7115,10 @@ min-indent@^1.0.0:
 | 
			
		|||
  resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
 | 
			
		||||
  integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
 | 
			
		||||
 | 
			
		||||
mini-css-extract-plugin@^1.3.3:
 | 
			
		||||
  version "1.3.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.3.tgz#7802e62b34199aa7d1a62e654395859a836486a0"
 | 
			
		||||
  integrity sha512-7lvliDSMiuZc81kI+5/qxvn47SCM7BehXex3f2c6l/pR3Goj58IQxZh9nuPQ3AkGQgoETyXuIqLDaO5Oa0TyBw==
 | 
			
		||||
mini-css-extract-plugin@^1.3.4:
 | 
			
		||||
  version "1.3.4"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.4.tgz#706e69632cdcdb8b15bf8e638442a0dba304a9c8"
 | 
			
		||||
  integrity sha512-dNjqyeogUd8ucUgw5sxm1ahvSfSUgef7smbmATRSbDm4EmNx5kQA6VdUEhEeCKSjX6CTYjb5vxgMUvRjqP3uHg==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    loader-utils "^2.0.0"
 | 
			
		||||
    schema-utils "^3.0.0"
 | 
			
		||||
| 
						 | 
				
			
			@ -8755,10 +8755,10 @@ react-infinite-scroller@^1.0.12:
 | 
			
		|||
  dependencies:
 | 
			
		||||
    prop-types "^15.5.8"
 | 
			
		||||
 | 
			
		||||
react-input-autosize@^2.2.2:
 | 
			
		||||
  version "2.2.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-2.2.2.tgz#fcaa7020568ec206bc04be36f4eb68e647c4d8c2"
 | 
			
		||||
  integrity sha512-jQJgYCA3S0j+cuOwzuCd1OjmBmnZLdqQdiLKRYrsMMzbjUrVDS5RvJUDwJqA7sKuksDuzFtm6hZGKFu7Mjk5aw==
 | 
			
		||||
react-input-autosize@^3.0.0:
 | 
			
		||||
  version "3.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-3.0.0.tgz#6b5898c790d4478d69420b55441fcc31d5c50a85"
 | 
			
		||||
  integrity sha512-nL9uS7jEs/zu8sqwFE5MAPx6pPkNAriACQ2rGLlqmKr2sPGtN7TXTyDdQt4lbNXVx7Uzadb40x8qotIuru6Rhg==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    prop-types "^15.5.8"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -8887,10 +8887,10 @@ react-router@^4.3.1:
 | 
			
		|||
    prop-types "^15.6.1"
 | 
			
		||||
    warning "^4.0.1"
 | 
			
		||||
 | 
			
		||||
react-select@^3.1.1:
 | 
			
		||||
  version "3.1.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.1.1.tgz#156a5b4a6c22b1e3d62a919cb1fd827adb4060bc"
 | 
			
		||||
  integrity sha512-HjC6jT2BhUxbIbxMZWqVcDibrEpdUJCfGicN0MMV+BQyKtCaPTgFekKWiOizSCy4jdsLMGjLqcFGJMhVGWB0Dg==
 | 
			
		||||
react-select@^3.2.0:
 | 
			
		||||
  version "3.2.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.2.0.tgz#de9284700196f5f9b5277c5d850a9ce85f5c72fe"
 | 
			
		||||
  integrity sha512-B/q3TnCZXEKItO0fFN/I0tWOX3WJvi/X2wtdffmwSQVRwg5BpValScTO1vdic9AxlUgmeSzib2hAZAwIUQUZGQ==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@babel/runtime" "^7.4.4"
 | 
			
		||||
    "@emotion/cache" "^10.0.9"
 | 
			
		||||
| 
						 | 
				
			
			@ -8898,7 +8898,7 @@ react-select@^3.1.1:
 | 
			
		|||
    "@emotion/css" "^10.0.9"
 | 
			
		||||
    memoize-one "^5.0.0"
 | 
			
		||||
    prop-types "^15.6.0"
 | 
			
		||||
    react-input-autosize "^2.2.2"
 | 
			
		||||
    react-input-autosize "^3.0.0"
 | 
			
		||||
    react-transition-group "^4.3.0"
 | 
			
		||||
 | 
			
		||||
react-sparklines@^1.7.0:
 | 
			
		||||
| 
						 | 
				
			
			@ -9517,10 +9517,10 @@ sass-lint@^1.13.1:
 | 
			
		|||
    path-is-absolute "^1.0.0"
 | 
			
		||||
    util "^0.10.3"
 | 
			
		||||
 | 
			
		||||
sass-loader@^10.1.0:
 | 
			
		||||
  version "10.1.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.0.tgz#1727fcc0c32ab3eb197cda61d78adf4e9174a4b3"
 | 
			
		||||
  integrity sha512-ZCKAlczLBbFd3aGAhowpYEy69Te3Z68cg8bnHHl6WnSCvnKpbM6pQrz957HWMa8LKVuhnD9uMplmMAHwGQtHeg==
 | 
			
		||||
sass-loader@^10.1.1:
 | 
			
		||||
  version "10.1.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d"
 | 
			
		||||
  integrity sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    klona "^2.0.4"
 | 
			
		||||
    loader-utils "^2.0.0"
 | 
			
		||||
| 
						 | 
				
			
			@ -9528,10 +9528,10 @@ sass-loader@^10.1.0:
 | 
			
		|||
    schema-utils "^3.0.0"
 | 
			
		||||
    semver "^7.3.2"
 | 
			
		||||
 | 
			
		||||
sass@^1.32.2:
 | 
			
		||||
  version "1.32.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.2.tgz#66dc0250bc86c15d19ddee7135e93d0cf3d3257b"
 | 
			
		||||
  integrity sha512-u1pUuzqwz3SAgvHSWp1k0mRhX82b2DdlVnP6UIetQPZtYbuJUDaPQhZE12jyjB7vYeOScfz9WPsZJB6Rpk7heA==
 | 
			
		||||
sass@^1.32.5:
 | 
			
		||||
  version "1.32.5"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.5.tgz#2882d22ad5748c05fa9bff6c3b0ffbc4f4b9e1dc"
 | 
			
		||||
  integrity sha512-kU1yJ5zUAmPxr7f3q0YXTAd1oZjSR1g3tYyv+xu0HZSl5JiNOaE987eiz7wCUvbm4I9fGWGU2TgApTtcP4GMNQ==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    chokidar ">=2.0.0 <4.0.0"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -11063,10 +11063,10 @@ webidl-conversions@^6.1.0:
 | 
			
		|||
  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514"
 | 
			
		||||
  integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==
 | 
			
		||||
 | 
			
		||||
webpack-assets-manifest@^4.0.0:
 | 
			
		||||
  version "4.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-4.0.0.tgz#6c906f6a77945aa326822e158f22d172ccc59f0f"
 | 
			
		||||
  integrity sha512-zbozd1Cr6gS5XMWWHfISusocOO2bO05ktpJXWdoYtv12/FSXsNqyVjNwLE9ehBXDsEOwRtqd3kPDdTZKFjjD/w==
 | 
			
		||||
webpack-assets-manifest@^4.0.1:
 | 
			
		||||
  version "4.0.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-4.0.1.tgz#918989c51a7800be6683aaa27b9f36bcc7a9afdc"
 | 
			
		||||
  integrity sha512-NS7Bx2C3JsEj6a0MB/PPmPOD/BzDYjB3PaKcI7/r2fKXq0PuZ4YtcbZ5Og+q4gkmetGX9v21vejeAlbru/Fvhw==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    chalk "^4.0"
 | 
			
		||||
    deepmerge "^4.2.2"
 | 
			
		||||
| 
						 | 
				
			
			@ -11122,10 +11122,10 @@ webpack-dev-middleware@^3.7.2:
 | 
			
		|||
    range-parser "^1.2.1"
 | 
			
		||||
    webpack-log "^2.0.0"
 | 
			
		||||
 | 
			
		||||
webpack-dev-server@^3.11.1:
 | 
			
		||||
  version "3.11.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.1.tgz#c74028bf5ba8885aaf230e48a20e8936ab8511f0"
 | 
			
		||||
  integrity sha512-u4R3mRzZkbxQVa+MBWi2uVpB5W59H3ekZAJsQlKUTdl7Elcah2EhygTPLmeFXybQkf9i2+L0kn7ik9SnXa6ihQ==
 | 
			
		||||
webpack-dev-server@^3.11.2:
 | 
			
		||||
  version "3.11.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708"
 | 
			
		||||
  integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    ansi-html "0.0.7"
 | 
			
		||||
    bonjour "^3.5.0"
 | 
			
		||||
| 
						 | 
				
			
			@ -11185,10 +11185,10 @@ webpack-sources@^1.0, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-so
 | 
			
		|||
    source-list-map "^2.0.0"
 | 
			
		||||
    source-map "~0.6.1"
 | 
			
		||||
 | 
			
		||||
webpack@^4.45.0:
 | 
			
		||||
  version "4.45.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.45.0.tgz#bcdc1ddb43959adb47f8974e60d944027267c1be"
 | 
			
		||||
  integrity sha512-JhDaVi4CbRcwLLAoqC7eugMSMJnZbIfE2AyjaZ19pnOIh/R2O/lXOiXA2tQFN0iXEcxgpPJsPJHW2wOWqiTLcw==
 | 
			
		||||
webpack@^4.46.0:
 | 
			
		||||
  version "4.46.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542"
 | 
			
		||||
  integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@webassemblyjs/ast" "1.9.0"
 | 
			
		||||
    "@webassemblyjs/helper-module-context" "1.9.0"
 | 
			
		||||
| 
						 | 
				
			
			@ -11198,7 +11198,7 @@ webpack@^4.45.0:
 | 
			
		|||
    ajv "^6.10.2"
 | 
			
		||||
    ajv-keywords "^3.4.1"
 | 
			
		||||
    chrome-trace-event "^1.0.2"
 | 
			
		||||
    enhanced-resolve "^4.3.0"
 | 
			
		||||
    enhanced-resolve "^4.5.0"
 | 
			
		||||
    eslint-scope "^4.0.3"
 | 
			
		||||
    json-parse-better-errors "^1.0.2"
 | 
			
		||||
    loader-runner "^2.4.0"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue