diff --git a/.eslintrc.js b/.eslintrc.js index db810ed2a1..dbb2987dff 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -29,7 +29,7 @@ module.exports = { version: 'detect', }, }, - ignorePatterns: ['**/*.config.js', '**/config/webpack/*.js', '.eslintrc.js'], + ignorePatterns: ['**/*.config.js', '.eslintrc.js'], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 52a6240da7..4cbf76819e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v2 - name: Set up Ruby - uses: ruby/setup-ruby@b161cb92f0e2f28d992f04f38fff204d84132c47 + uses: ruby/setup-ruby@fabf2515e6b5531555983e2641f2acdf622b0e50 with: ruby-version: .ruby-version @@ -78,7 +78,7 @@ jobs: ### # Run the tests - name: Run JS tests - run: yarn test --runInBand + run: yarn test ##################### ##### RUBY TESTS #### @@ -154,7 +154,7 @@ jobs: ### # Setup Ruby - name: Set up Ruby - uses: ruby/setup-ruby@b161cb92f0e2f28d992f04f38fff204d84132c47 + uses: ruby/setup-ruby@fabf2515e6b5531555983e2641f2acdf622b0e50 with: ruby-version: .ruby-version bundler-cache: true @@ -210,7 +210,8 @@ jobs: OPENSEARCH_HOST: https://127.0.0.1:${{ job.services.opensearch.ports['9200'] }} OPENSEARCH_VERIFY_SSL: false run: | - bundle exec rails test:zeitwerk ${{ matrix.tests }} + bundle exec rails test:zeitwerk + bundle exec rails test:prepare bundle exec rails test ${{ matrix.tests }} ruby-tests-completed: @@ -292,7 +293,7 @@ jobs: ### # Setup Ruby - this needs to match the version in the Gemfile - name: Set up Ruby - uses: ruby/setup-ruby@b161cb92f0e2f28d992f04f38fff204d84132c47 + uses: ruby/setup-ruby@fabf2515e6b5531555983e2641f2acdf622b0e50 with: ruby-version: .ruby-version bundler-cache: true @@ -336,7 +337,7 @@ jobs: AWS_PORT: ${{ job.services.aws.ports['4566'] }} MYSQL_PORT: ${{ job.services.mysql.ports['3306'] }} run: | - bundle exec rails assets:precompile + bundle exec rails test:prepare ### # Run the tests @@ -373,7 +374,7 @@ jobs: ### # Setup Ruby - this needs to match the version in the Gemfile - name: Set up Ruby - uses: ruby/setup-ruby@b161cb92f0e2f28d992f04f38fff204d84132c47 + uses: ruby/setup-ruby@fabf2515e6b5531555983e2641f2acdf622b0e50 with: ruby-version: .ruby-version bundler-cache: true @@ -411,4 +412,4 @@ jobs: env: RAILS_ENV: test EXERCISM_CI: true - run: bundle exec bin/webpack + run: bundle exec rails test:prepare diff --git a/.gitignore b/.gitignore index 1bb25c956f..6f6c6ff568 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,9 @@ yarn-debug.log* # Any code coverage that's generated coverage/ + +.built-assets/* +!.built-assets/.keep + +app/javascript/.config/* +!app/javascript/.config/.keep diff --git a/.rubocop.yml b/.rubocop.yml index c376488438..a5ff38b121 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -8,7 +8,7 @@ AllCops: Exclude: - "app/controllers/tmp/**/*" - "bin/**/*" - - "bin/{bundle,rails,rake,setup,webpack,webpack-dev-server,yarn}" + - "bin/{bundle,monitor-manifest,rails,rake,setup,yarn}" - "db/schema.rb" - "db/migrate/*" - "db/seeds.rb" @@ -21,6 +21,10 @@ Bundler/OrderedGems: Layout/ArgumentAlignment: EnforcedStyle: with_fixed_indentation + # TODO: remove once https://github.com/rubocop/rubocop/issues/10364 is fixed + Exclude: + - "app/helpers/view_components/track/solution_activity.rb" + - "test/helpers/view_components/track/solution_activity_test.rb" Layout/DotPosition: EnforcedStyle: trailing @@ -63,6 +67,10 @@ Metrics/MethodLength: Metrics/AbcSize: IgnoredMethods: ["CLI::PrepareUploadedFiles.call"] +Metrics/ClassLength: + Exclude: + - "test/commands/solution/search_user_solutions_test.rb" + Naming/PredicateName: Enabled: false @@ -106,6 +114,10 @@ Naming/VariableNumber: - "strip_h1" - "v2" +# TODO: remove once https://github.com/rubocop/rubocop/issues/10383 is fixed +Style/HashSyntax: + Enabled: false + Style/LambdaCall: EnforcedStyle: braces diff --git a/.ruby-version b/.ruby-version index f6ab44e9b0..872e120819 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -ruby-2.6.6 +ruby-3.1.0 diff --git a/Gemfile b/Gemfile index f5cd73056d..f8890a0faa 100644 --- a/Gemfile +++ b/Gemfile @@ -1,11 +1,15 @@ source 'https://rubygems.org' -ruby '2.6.6' +ruby '3.1.0' # Service/framework dependencies -gem 'rails', '~> 6.1.3' +gem 'rails', '~> 7.0.1' +gem 'cssbundling-rails' +gem 'jsbundling-rails' +gem 'turbo-rails' +gem 'propshaft' -gem 'mysql2', '>= 0.4.4' +gem 'mysql2', github: 'brianmario/mysql2', ref: '25c42c7' gem 'redis', '~> 4.0' gem 'aws-sdk-s3', '~> 1' gem 'aws-sdk-ecr' @@ -29,7 +33,7 @@ gem 'kaminari' gem 'oj' # Setup dependencies -gem 'exercism-config', '>= 0.80.0' +gem 'exercism-config', '>= 0.81.0' # gem 'exercism-config', path: '../exercism_config' # Model-level dependencies @@ -40,8 +44,6 @@ gem 'sidekiq-failures' gem 'sidekiq-scheduler' # View-level Dependencies -gem 'webpacker', '~> 5.x' -gem 'turbo-rails' gem 'hamlit' gem 'commonmarker' gem 'ansi-to-html' @@ -51,6 +53,7 @@ gem 'devise', '~> 4.7' # Omniauth gem 'omniauth-github' +gem "omniauth-rails_csrf_protection" # Payments gem 'stripe' @@ -58,6 +61,8 @@ gem 'stripe' # Reporting gem 'skylight' +gem 'listen', '>= 3.0.5', '< 3.2' + # Let's be nice to Windows users platforms :mingw, :mswin, :x64_mingw, :jruby do # Windows does not include zoneinfo files, so bundle the tzinfo-data gem @@ -75,7 +80,6 @@ end group :development do gem 'haml_lint', require: false - gem 'listen', '>= 3.0.5', '< 3.2' gem 'solargraph' gem 'rubocop', require: false gem 'rubocop-rails', require: false diff --git a/Gemfile.lock b/Gemfile.lock index fa3fa772d1..0fb4f10e90 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,135 +1,152 @@ +GIT + remote: https://github.com/brianmario/mysql2.git + revision: 25c42c712118b046eb9df7a0f50ffde1a04ee6d1 + ref: 25c42c7 + specs: + mysql2 (0.5.3) + GEM remote: https://rubygems.org/ specs: - actioncable (6.1.4.1) - actionpack (= 6.1.4.1) - activesupport (= 6.1.4.1) + actioncable (7.0.1) + actionpack (= 7.0.1) + activesupport (= 7.0.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.4.1) - actionpack (= 6.1.4.1) - activejob (= 6.1.4.1) - activerecord (= 6.1.4.1) - activestorage (= 6.1.4.1) - activesupport (= 6.1.4.1) + actionmailbox (7.0.1) + actionpack (= 7.0.1) + activejob (= 7.0.1) + activerecord (= 7.0.1) + activestorage (= 7.0.1) + activesupport (= 7.0.1) mail (>= 2.7.1) - actionmailer (6.1.4.1) - actionpack (= 6.1.4.1) - actionview (= 6.1.4.1) - activejob (= 6.1.4.1) - activesupport (= 6.1.4.1) + net-imap + net-pop + net-smtp + actionmailer (7.0.1) + actionpack (= 7.0.1) + actionview (= 7.0.1) + activejob (= 7.0.1) + activesupport (= 7.0.1) mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp rails-dom-testing (~> 2.0) - actionpack (6.1.4.1) - actionview (= 6.1.4.1) - activesupport (= 6.1.4.1) - rack (~> 2.0, >= 2.0.9) + actionpack (7.0.1) + actionview (= 7.0.1) + activesupport (= 7.0.1) + rack (~> 2.0, >= 2.2.0) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.4.1) - actionpack (= 6.1.4.1) - activerecord (= 6.1.4.1) - activestorage (= 6.1.4.1) - activesupport (= 6.1.4.1) + actiontext (7.0.1) + actionpack (= 7.0.1) + activerecord (= 7.0.1) + activestorage (= 7.0.1) + activesupport (= 7.0.1) + globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (6.1.4.1) - activesupport (= 6.1.4.1) + actionview (7.0.1) + activesupport (= 7.0.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.1.4.1) - activesupport (= 6.1.4.1) + activejob (7.0.1) + activesupport (= 7.0.1) globalid (>= 0.3.6) - activemodel (6.1.4.1) - activesupport (= 6.1.4.1) - activerecord (6.1.4.1) - activemodel (= 6.1.4.1) - activesupport (= 6.1.4.1) - activestorage (6.1.4.1) - actionpack (= 6.1.4.1) - activejob (= 6.1.4.1) - activerecord (= 6.1.4.1) - activesupport (= 6.1.4.1) - marcel (~> 1.0.0) + activemodel (7.0.1) + activesupport (= 7.0.1) + activerecord (7.0.1) + activemodel (= 7.0.1) + activesupport (= 7.0.1) + activestorage (7.0.1) + actionpack (= 7.0.1) + activejob (= 7.0.1) + activerecord (= 7.0.1) + activesupport (= 7.0.1) + marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.4.1) + activesupport (7.0.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) - zeitwerk (~> 2.3) - addressable (2.7.0) + addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) ansi-to-html (0.0.3) - anycable (1.0.1) + anycable (1.0.3) anyway_config (>= 1.4.2) grpc (~> 1.17) - anycable-rails (1.0.4) + anycable-rails (1.0.8) actioncable (>= 5) - anycable (>= 1.0.0) + anycable (~> 1.0.0) globalid - anyway_config (2.1.0) + anyway_config (2.2.2) ruby-next-core (>= 0.11.0) ast (2.4.2) - aws-eventstream (1.1.1) - aws-partitions (1.478.0) - aws-sdk-core (3.117.0) + aws-eventstream (1.2.0) + aws-partitions (1.547.0) + aws-sdk-core (3.125.2) aws-eventstream (~> 1, >= 1.0.2) - aws-partitions (~> 1, >= 1.239.0) + aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) jmespath (~> 1.0) - aws-sdk-dynamodb (1.60.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-dynamodb (1.70.0) + aws-sdk-core (~> 3, >= 3.125.0) aws-sigv4 (~> 1.1) - aws-sdk-ecr (1.39.0) - aws-sdk-core (~> 3, >= 3.109.0) + aws-sdk-ecr (1.52.0) + aws-sdk-core (~> 3, >= 3.125.0) aws-sigv4 (~> 1.1) - aws-sdk-kms (1.40.0) - aws-sdk-core (~> 3, >= 3.109.0) + aws-sdk-kms (1.53.0) + aws-sdk-core (~> 3, >= 3.125.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.87.0) - aws-sdk-core (~> 3, >= 3.109.0) + aws-sdk-s3 (1.111.1) + aws-sdk-core (~> 3, >= 3.125.0) aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.4) + aws-sdk-secretsmanager (1.55.0) + aws-sdk-core (~> 3, >= 3.125.0) aws-sigv4 (~> 1.1) - aws-sdk-secretsmanager (1.46.0) - aws-sdk-core (~> 3, >= 3.112.0) - aws-sigv4 (~> 1.1) - aws-sigv4 (1.2.4) + aws-sigv4 (1.4.0) aws-eventstream (~> 1, >= 1.0.2) backport (1.2.0) bcrypt (3.1.16) - benchmark (0.1.1) + benchmark (0.2.0) bindex (0.8.1) - bootsnap (1.5.1) + bootsnap (1.9.4) msgpack (~> 1.0) - bugsnag (6.19.0) + bugsnag (6.24.1) concurrent-ruby (~> 1.0) builder (3.2.4) byebug (11.1.3) - capybara (3.34.0) + capybara (3.36.0) addressable + matrix mini_mime (>= 0.1.3) nokogiri (~> 1.8) rack (>= 1.6.0) rack-test (>= 0.6.3) - regexp_parser (~> 1.5) + regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - childprocess (3.0.0) + childprocess (4.1.0) commonmarker (0.23.2) concurrent-ruby (1.1.9) connection_pool (2.2.5) crack (0.4.5) rexml crass (1.0.6) - devise (4.7.3) + cssbundling-rails (1.0.0) + railties (>= 6.0.0) + devise (4.8.1) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) responders warden (~> 1.2.3) - diff-lcs (1.4.4) + diff-lcs (1.5.0) + digest (3.1.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) e2mmap (0.1.0) @@ -142,168 +159,203 @@ GEM faraday (~> 1) multi_json erubi (1.10.0) - et-orbi (1.2.4) + et-orbi (1.2.6) tzinfo - exercism-config (0.80.0) + exercism-config (0.81.0) aws-sdk-dynamodb (~> 1.0) aws-sdk-secretsmanager (~> 1.0) mandate zeitwerk - factory_bot (6.1.0) + factory_bot (6.2.0) activesupport (>= 5.0.0) - factory_bot_rails (6.1.0) - factory_bot (~> 6.1.0) + factory_bot_rails (6.2.0) + factory_bot (~> 6.2.0) railties (>= 5.0.0) - faraday (1.3.0) + faraday (1.9.3) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.3) multipart-post (>= 1.2, < 3) - ruby2_keywords - faraday-net_http (1.0.0) - ffi (1.14.2) - ffi (1.14.2-x64-mingw32) - friendly_id (5.4.1) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + ffi (1.15.5) + ffi (1.15.5-x64-mingw32) + friendly_id (5.4.2) activerecord (>= 4.0.0) - fugit (1.4.5) + fugit (1.5.2) et-orbi (~> 1.1, >= 1.1.8) raabro (~> 1.4) - globalid (0.5.2) + globalid (1.0.0) activesupport (>= 5.0) - google-protobuf (3.14.0) - google-protobuf (3.14.0-x64-mingw32) - googleapis-common-protos-types (1.0.5) - google-protobuf (~> 3.11) - grpc (1.34.0) - google-protobuf (~> 3.13) - googleapis-common-protos-types (~> 1.0) - grpc (1.34.0-x64-mingw32) - google-protobuf (~> 3.13) + google-protobuf (3.19.2) + googleapis-common-protos-types (1.3.0) + google-protobuf (~> 3.14) + grpc (1.42.0) + google-protobuf (~> 3.18) googleapis-common-protos-types (~> 1.0) - haml (5.2.1) + haml (5.2.2) temple (>= 0.8.0) tilt - haml_lint (0.36.0) + haml_lint (0.37.1) haml (>= 4.0, < 5.3) parallel (~> 1.10) rainbow rubocop (>= 0.50.0) sysexits (~> 1.1) - hamlit (2.15.0) + hamlit (2.15.2) temple (>= 0.8.2) thor tilt hashdiff (1.0.1) - hashie (4.1.0) + hashie (5.0.0) http-accept (1.7.0) - http-cookie (1.0.3) + http-cookie (1.0.4) domain_name (~> 0.5) - i18n (1.8.11) + i18n (1.9.1) concurrent-ruby (~> 1.0) image_processing (1.12.1) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) + io-wait (0.2.1) jaro_winkler (1.5.4) - jmespath (1.4.0) - jwt (2.2.2) - kaminari (1.2.1) + jmespath (1.5.0) + jsbundling-rails (1.0.0) + railties (>= 6.0.0) + jwt (2.3.0) + kaminari (1.2.2) activesupport (>= 4.1.0) - kaminari-actionview (= 1.2.1) - kaminari-activerecord (= 1.2.1) - kaminari-core (= 1.2.1) - kaminari-actionview (1.2.1) + kaminari-actionview (= 1.2.2) + kaminari-activerecord (= 1.2.2) + kaminari-core (= 1.2.2) + kaminari-actionview (1.2.2) actionview - kaminari-core (= 1.2.1) - kaminari-activerecord (1.2.1) + kaminari-core (= 1.2.2) + kaminari-activerecord (1.2.2) activerecord - kaminari-core (= 1.2.1) - kaminari-core (1.2.1) + kaminari-core (= 1.2.2) + kaminari-core (1.2.2) kramdown (2.3.1) rexml kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) - listen (3.1.5) + listen (3.0.8) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) - ruby_dep (~> 1.2) - loofah (2.12.0) + loofah (2.13.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) mandate (1.0.0.beta1) - marcel (1.0.1) + marcel (1.0.2) + matrix (0.4.2) method_source (1.0.0) - mime-types (3.3.1) + mime-types (3.4.1) mime-types-data (~> 3.2015) - mime-types-data (3.2020.1104) + mime-types-data (3.2022.0105) mini_magick (4.11.0) - mini_mime (1.1.1) - mini_portile2 (2.6.1) + mini_mime (1.1.2) + mini_portile2 (2.7.1) minitest (5.15.0) minitest-retry (0.2.2) minitest (>= 5.0) - mocha (1.12.0) - msgpack (1.3.3) - msgpack (1.3.3-x64-mingw32) + mocha (1.13.0) + msgpack (1.4.2) multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.1.1) - mysql2 (0.5.3) - mysql2 (0.5.3-x64-mingw32) + net-imap (0.2.3) + digest + net-protocol + strscan + net-pop (0.1.1) + digest + net-protocol + timeout + net-protocol (0.1.2) + io-wait + timeout + net-smtp (0.3.1) + digest + net-protocol + timeout netrc (0.11.0) nio4r (2.5.8) - nokogiri (1.12.3) - mini_portile2 (~> 2.6.1) - racc (~> 1.4) - nokogiri (1.12.3-x64-mingw32) + nokogiri (1.13.0) + mini_portile2 (~> 2.7.0) racc (~> 1.4) - oauth2 (1.4.4) + oauth2 (1.4.7) faraday (>= 0.8, < 2.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) multi_xml (~> 0.5) rack (>= 1.2, < 3) - octokit (4.20.0) + octokit (4.22.0) faraday (>= 0.9) sawyer (~> 0.8.0, >= 0.5.3) - oj (3.13.7) - omniauth (1.9.1) + oj (3.13.11) + omniauth (2.0.4) hashie (>= 3.4.6) rack (>= 1.6.2, < 3) - omniauth-github (1.4.0) - omniauth (~> 1.5) - omniauth-oauth2 (>= 1.4.0, < 2.0) - omniauth-oauth2 (1.7.0) + rack-protection + omniauth-github (2.0.0) + omniauth (~> 2.0) + omniauth-oauth2 (~> 1.7.1) + omniauth-oauth2 (1.7.2) oauth2 (~> 1.4) - omniauth (~> 1.9) + omniauth (>= 1.9, < 3) + omniauth-rails_csrf_protection (1.0.0) + actionpack (>= 4.2) + omniauth (~> 2.0) orm_adapter (0.5.0) parallel (1.21.0) - parser (3.0.3.2) + parser (3.1.0.0) ast (~> 2.4.1) + propshaft (0.4.4) + actionpack (>= 7.0.0.alpha2) + activesupport (>= 7.0.0.alpha2) + rack + railties (>= 7.0.0.alpha2) public_suffix (4.0.6) - puma (4.3.7) + puma (4.3.10) nio4r (~> 2.0) raabro (1.4.0) - racc (1.5.2) + racc (1.6.0) rack (2.2.3) - rack-proxy (0.6.5) + rack-protection (2.1.0) rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.4.1) - actioncable (= 6.1.4.1) - actionmailbox (= 6.1.4.1) - actionmailer (= 6.1.4.1) - actionpack (= 6.1.4.1) - actiontext (= 6.1.4.1) - actionview (= 6.1.4.1) - activejob (= 6.1.4.1) - activemodel (= 6.1.4.1) - activerecord (= 6.1.4.1) - activestorage (= 6.1.4.1) - activesupport (= 6.1.4.1) + rails (7.0.1) + actioncable (= 7.0.1) + actionmailbox (= 7.0.1) + actionmailer (= 7.0.1) + actionpack (= 7.0.1) + actiontext (= 7.0.1) + actionview (= 7.0.1) + activejob (= 7.0.1) + activemodel (= 7.0.1) + activerecord (= 7.0.1) + activestorage (= 7.0.1) + activesupport (= 7.0.1) bundler (>= 1.15.0) - railties (= 6.1.4.1) - sprockets-rails (>= 2.0.0) + railties (= 7.0.1) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) @@ -313,20 +365,21 @@ GEM nokogiri (>= 1.6) rails-html-sanitizer (1.4.2) loofah (~> 2.3) - railties (6.1.4.1) - actionpack (= 6.1.4.1) - activesupport (= 6.1.4.1) + railties (7.0.1) + actionpack (= 7.0.1) + activesupport (= 7.0.1) method_source - rake (>= 0.13) + rake (>= 12.2) thor (~> 1.0) - rainbow (3.0.0) + zeitwerk (~> 2.5) + rainbow (3.1.1) rake (13.0.6) - rb-fsevent (0.10.4) + rb-fsevent (0.11.0) rb-inotify (0.10.1) ffi (~> 1.0) recursive-open-struct (1.1.3) - redis (4.2.5) - regexp_parser (1.8.2) + redis (4.5.1) + regexp_parser (2.2.0) responders (3.0.1) actionpack (>= 5.0) railties (>= 5.0) @@ -341,53 +394,52 @@ GEM http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 4.0) netrc (~> 0.8) - reverse_markdown (2.0.0) + reverse_markdown (2.1.1) nokogiri rexml (3.2.5) - rubocop (1.23.0) + rubocop (1.25.0) parallel (~> 1.10) - parser (>= 3.0.0.0) + parser (>= 3.1.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml - rubocop-ast (>= 1.12.0, < 2.0) + rubocop-ast (>= 1.15.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.15.0) + rubocop-ast (1.15.1) parser (>= 3.0.1.1) - rubocop-minitest (0.11.0) + rubocop-minitest (0.17.0) rubocop (>= 0.90, < 2.0) - rubocop-performance (1.10.1) - rubocop (>= 0.90.0, < 2.0) + rubocop-performance (1.13.2) + rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) - rubocop-rails (2.12.4) + rubocop-rails (2.13.2) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) - ruby-next-core (0.11.1) + ruby-next-core (0.14.0) ruby-progressbar (1.11.0) - ruby-vips (2.0.17) - ffi (~> 1.9) - ruby2_keywords (0.0.2) - ruby_dep (1.5.0) - rubyzip (2.3.0) - rufus-scheduler (3.7.0) + ruby-vips (2.1.4) + ffi (~> 1.12) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + rufus-scheduler (3.8.1) fugit (~> 1.1, >= 1.1.6) - rugged (1.1.0) + rugged (1.3.0) sawyer (0.8.2) addressable (>= 2.3.5) faraday (> 0.8, < 2.0) - selenium-webdriver (3.142.7) - childprocess (>= 0.5, < 4.0) + selenium-webdriver (4.1.0) + childprocess (>= 0.5, < 5.0) + rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) - semantic_range (3.0.0) show_me_the_cookies (5.0.1) capybara (>= 2, < 4) - sidekiq (6.2.1) + sidekiq (6.3.1) connection_pool (>= 2.2.2) rack (~> 2.0) redis (>= 4.2.0) - sidekiq-failures (1.0.0) + sidekiq-failures (1.0.1) sidekiq (>= 4.0.0) sidekiq-scheduler (3.1.0) e2mmap @@ -398,7 +450,7 @@ GEM tilt (>= 1.4.0) skylight (5.1.1) activesupport (>= 5.2.0) - solargraph (0.43.0) + solargraph (0.44.2) backport (~> 1.2) benchmark bundler (>= 1.17.2) @@ -413,58 +465,50 @@ GEM thor (~> 1.0) tilt (~> 2.0) yard (~> 0.9, >= 0.9.24) - sprockets (4.0.2) - concurrent-ruby (~> 1.0) - rack (> 1, < 3) - sprockets-rails (3.2.2) - actionpack (>= 4.0) - activesupport (>= 4.0) - sprockets (>= 3.0.0) - stripe (5.24.0) + stripe (5.42.0) + strscan (3.0.1) sysexits (1.2.0) temple (0.8.2) - thor (1.1.0) + thor (1.2.1) thwait (0.2.0) e2mmap tilt (2.0.10) - turbo-rails (0.7.4) - rails (>= 6.0.0) + timeout (0.2.0) + turbo-rails (1.0.0) + actionpack (>= 6.0.0) + railties (>= 6.0.0) tzinfo (2.0.4) concurrent-ruby (~> 1.0) - tzinfo-data (1.2020.6) + tzinfo-data (1.2021.5) tzinfo (>= 1.0.0) unf (0.1.4) unf_ext - unf_ext (0.0.7.7) - unf_ext (0.0.7.7-x64-mingw32) + unf_ext (0.0.8) unicode-display_width (2.1.0) warden (1.2.9) rack (>= 2.0.9) - web-console (4.1.0) + web-console (4.2.0) actionview (>= 6.0.0) activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) - webdrivers (4.5.0) + webdrivers (5.0.0) nokogiri (~> 1.6) rubyzip (>= 1.3.0) - selenium-webdriver (>= 3.0, < 4.0) - webmock (3.11.0) - addressable (>= 2.3.6) + selenium-webdriver (~> 4.0) + webmock (3.14.0) + addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webpacker (5.2.1) - activesupport (>= 5.2) - rack-proxy (>= 0.6.1) - railties (>= 5.2) - semantic_range (>= 2.3.0) + webrick (1.7.0) websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) - yard (0.9.26) - zeitwerk (2.5.1) + yard (0.9.27) + webrick (~> 1.7.0) + zeitwerk (2.5.3) PLATFORMS ruby @@ -481,14 +525,16 @@ DEPENDENCIES byebug capybara (>= 2.15) commonmarker + cssbundling-rails devise (~> 4.7) elasticsearch (= 6.8.3) - exercism-config (>= 0.80.0) + exercism-config (>= 0.81.0) factory_bot_rails friendly_id (~> 5.4.0) haml_lint hamlit image_processing (~> 1.2) + jsbundling-rails kaminari listen (>= 3.0.5, < 3.2) mandate (= 1.0.0.beta1) @@ -496,12 +542,14 @@ DEPENDENCIES minitest minitest-retry mocha - mysql2 (>= 0.4.4) + mysql2! octokit oj omniauth-github + omniauth-rails_csrf_protection + propshaft puma (~> 4.1) - rails (~> 6.1.3) + rails (~> 7.0.1) rails-controller-testing recursive-open-struct redis (~> 4.0) @@ -524,10 +572,9 @@ DEPENDENCIES web-console (>= 3.3.0) webdrivers webmock - webpacker (~> 5.x) RUBY VERSION - ruby 2.6.6p146 + ruby 3.1.0p0 BUNDLED WITH - 2.1.4 + 2.3.4 diff --git a/Procfile.dev b/Procfile.dev index 7d75a63a1f..7c1d4a9116 100644 --- a/Procfile.dev +++ b/Procfile.dev @@ -1,5 +1,7 @@ server: bin/rails server -p 3020 -assets: bin/webpack-dev-server anycable: bundle exec anycable sidekiq: bundle exec sidekiq -ws: anycable-go --host=local.exercism.io --port 3334 +ws: anycable-go --host='local.exercism.io' --rpc_host='local.exercism.io:50051' --port=3334 +css: yarn build:css --watch +js: yarn build --watch +manifest: bin/rails r bin/monitor-manifest diff --git a/Procfile.docker.dev b/Procfile.docker.dev index 4dd78cbac7..867782d84c 100644 --- a/Procfile.docker.dev +++ b/Procfile.docker.dev @@ -1,4 +1,7 @@ server: bundle exec bin/rails server -b '0.0.0.0' -assets: WEBPACKER_DEV_SERVER_HOST=0.0.0.0 bundle exec bin/webpack-dev-server -anycable: RAILS_ENV=development bundle exec anycable --server-command "anycable-go --disconnect_rate=5 --host=0.0.0.0 --port 3334 --redis_url='redis://redis:6379'" +anycable: bundle exec anycable sidekiq: bundle exec sidekiq +ws: anycable-go --host='0.0.0.0' --rpc_host='0.0.0.0:50051' --port=3334 --redis_url='redis://redis:6379' +css: yarn build:css --watch +js: yarn build --watch +manifest: bin/rails r bin/monitor-manifest diff --git a/app/assemblers/assemble_contributions_summary.rb b/app/assemblers/assemble_contributions_summary.rb index 57b00a03c6..4fd7ee8d28 100644 --- a/app/assemblers/assemble_contributions_summary.rb +++ b/app/assemblers/assemble_contributions_summary.rb @@ -2,6 +2,11 @@ class AssembleContributionsSummary include Mandate include ActionView::Helpers::NumberHelper + # TODO: figure out why mandate doesn't work for this class + def self.call(...) + new(...).() + end + def initialize(user, for_self:) @user = user @for_self = for_self diff --git a/app/channels/latest_iteration_status_channel.rb b/app/channels/latest_iteration_status_channel.rb index 39b3609d26..67ecf2e8b9 100644 --- a/app/channels/latest_iteration_status_channel.rb +++ b/app/channels/latest_iteration_status_channel.rb @@ -12,7 +12,7 @@ def self.broadcast!(solution) ActionCable.server.broadcast( "latest_iteration_status:#{solution.uuid}", - status: solution.latest_iteration.status.to_s + { status: solution.latest_iteration.status.to_s } ) end end diff --git a/app/channels/submission_channel.rb b/app/channels/submission_channel.rb index 5fc691ffaa..ecbfc714b3 100644 --- a/app/channels/submission_channel.rb +++ b/app/channels/submission_channel.rb @@ -9,7 +9,7 @@ def unsubscribed def self.broadcast!(submission) ActionCable.server.broadcast CHANNEL_NAME, - submission: SerializeSubmission.(submission) + { submission: SerializeSubmission.(submission) } end CHANNEL_NAME = "submission".freeze diff --git a/app/commands/iteration/create.rb b/app/commands/iteration/create.rb index 9f14523d79..af8535f0b8 100644 --- a/app/commands/iteration/create.rb +++ b/app/commands/iteration/create.rb @@ -5,7 +5,7 @@ class Create initialize_with :solution, :submission def call - time = Time.now.utc.to_s(:db) + time = Time.now.utc.to_formatted_s(:db) id = Iteration.connection.insert(%{ INSERT INTO iterations (uuid, solution_id, submission_id, idx, created_at, updated_at) SELECT "#{SecureRandom.compact_uuid}", #{solution.id}, #{submission.id}, (COUNT(*) + 1), "#{time}", "#{time}" @@ -26,7 +26,7 @@ def call record_activity!(iteration) end rescue ActiveRecord::RecordNotUnique - Iteration.find_by!(solution: solution, submission: submission) + Iteration.find_by!(solution:, submission:) end def init_services @@ -40,8 +40,8 @@ def record_activity!(iteration) :submitted_iteration, user, track: solution.track, - solution: solution, - iteration: iteration + solution:, + iteration: ) # rescue StandardError => e # Rails.logger.error "Failed to create activity" diff --git a/app/commands/solution/generate_help_file.rb b/app/commands/solution/generate_help_file.rb index ddf76e77b1..2bbbcd457c 100644 --- a/app/commands/solution/generate_help_file.rb +++ b/app/commands/solution/generate_help_file.rb @@ -32,7 +32,7 @@ def submitting submitting_solution_intro_text = I18n.t("exercises.documents.submitting_solution_intro").strip submitting_solution_text = I18n.t("exercises.documents.submitting_solution", - { solution_file_paths: solution.exercise.git.solution_filepaths.join(" ") }).strip + solution_file_paths: solution.exercise.git.solution_filepaths.join(" ")).strip <<~TEXT.strip ## #{submitting_solution_intro_text} @@ -45,7 +45,7 @@ def help help_intro_text = I18n.t("exercises.documents.help_intro").strip help_text = I18n.t("exercises.documents.help", - { track_title: solution.track.title, track_slug: solution.track.slug }).strip + track_title: solution.track.title, track_slug: solution.track.slug).strip track_help_text = Markdown::Render.(solution.track.git.help, :text).strip diff --git a/app/commands/solution/generate_readme_file.rb b/app/commands/solution/generate_readme_file.rb index 4413b5c783..9176d83873 100644 --- a/app/commands/solution/generate_readme_file.rb +++ b/app/commands/solution/generate_readme_file.rb @@ -17,8 +17,8 @@ def call def preamble hints_text = I18n.t("exercises.documents.hints_reference").strip if solution.git_exercise.hints.present? - welcome_text = I18n.t("exercises.documents.welcome", - { exercise_title: solution.exercise.title, track_title: solution.track.title }).strip + welcome_text = I18n.t("exercises.documents.welcome", exercise_title: solution.exercise.title, + track_title: solution.track.title).strip help_text = I18n.t("exercises.documents.help_reference").strip <<~TEXT.strip diff --git a/app/commands/user/reputation_period/mark_outdated.rb b/app/commands/user/reputation_period/mark_outdated.rb index 79e5cc6479..d4364f6221 100644 --- a/app/commands/user/reputation_period/mark_outdated.rb +++ b/app/commands/user/reputation_period/mark_outdated.rb @@ -2,14 +2,19 @@ class User::ReputationPeriod class MarkOutdated include Mandate + # TODO: figure out why mandate doesn't work for this class + def self.call(...) + new(...).() + end + def initialize(period:, earned_on:) @period = period @earned_on = earned_on end def call - rows = User::ReputationToken.where(earned_on: earned_on).find_each.flat_map do |token| - args = { user_id: token.user_id, period: period } + rows = User::ReputationToken.where(earned_on:).find_each.flat_map do |token| + args = { user_id: token.user_id, period: } # Mark rows for :any and the category as long as the category isn't publishing categories = [:any] @@ -17,8 +22,8 @@ def call categories.flat_map do |category| [ - { category: category, about: :everything, track_id: 0, **args }, - (token.track_id ? { category: category, about: :track, track_id: token.track_id, **args } : nil) + { category:, about: :everything, track_id: 0, **args }, + (token.track_id ? { category:, about: :track, track_id: token.track_id, **args } : nil) ].compact end end diff --git a/app/controllers/api/mentoring/discussions_controller.rb b/app/controllers/api/mentoring/discussions_controller.rb index a36fc2cf71..4507ca4862 100644 --- a/app/controllers/api/mentoring/discussions_controller.rb +++ b/app/controllers/api/mentoring/discussions_controller.rb @@ -1,6 +1,5 @@ module API class Mentoring::DiscussionsController < BaseController - include Webpacker::Helper include ActionView::Helpers::AssetUrlHelper # TODO: (Optional) Add filters (the criteria aren't the filters?) diff --git a/app/css/application.postcss.css b/app/css/application.postcss.css new file mode 100644 index 0000000000..27e3c4190e --- /dev/null +++ b/app/css/application.postcss.css @@ -0,0 +1,214 @@ +@import "./tailwind.css"; +@import "./defaults"; + +@import "./ui-kit/inputs"; +@import "./ui-kit/shapes"; +@import "./ui-kit/buttons"; +@import "./ui-kit/tracks"; +@import "./ui-kit/animations"; +@import "./ui-kit/effects"; + +@import "./tooltips/generic"; +@import "./tooltips/base"; +@import "./tooltips/mentoring-link"; +@import "./tooltips/concept"; +@import "./tooltips/user"; +@import "./tooltips/exercise"; +@import "./tooltips/student"; +@import "./tooltips/task"; + +@import "./components/textblock"; +@import "./components/financial-amount"; +@import "./components/automated-feedback"; +@import "./components/share-button"; +@import "./components/social-icon"; +@import "./components/blog-post"; +@import "./components/donations-form"; +@import "./components/toast"; +@import "./components/contributions-summary"; +@import "./components/progress"; +@import "./components/site-update"; +@import "./components/site-footer"; +@import "./components/site-header"; +@import "./components/community-rank-tag"; +@import "./components/track-breadcrumbs"; +@import "./components/contributing/header"; +@import "./components/header-with-bg"; +@import "./components/makers-button"; +@import "./components/avatar-selector"; +@import "./components/badge"; +@import "./components/bg-img"; +@import "./components/code-pane"; +@import "./components/concept"; +@import "./components/concept-icon"; +@import "./components/concept-progress-bar"; +@import "./components/copy-text-to-clipboard"; +@import "./components/details"; +@import "./components/combo-button"; +@import "./components/exercise-header"; +@import "./components/flash"; +@import "./components/icon"; +@import "./components/iteration-summary"; +@import "./components/accordion-section"; +@import "./components/underline"; +@import "./components/docs-main-nav"; +@import "./components/docs-side-nav"; +@import "./components/docs-tracks-list"; +@import "./components/iterations-footer"; +@import "./components/solution-iterations"; +@import "./components/loading-overlay"; +@import "./components/loading-suspense"; + +@import "./components/share-panel"; +@import "./components/split-pane"; +@import "./components/heading-with-count"; +@import "./components/notification"; +@import "./components/prominent-link"; +@import "./components/reputation"; +@import "./components/primary-reputation"; +@import "./components/tab"; +@import "./components/tab-2"; +@import "./components/textual-content"; +@import "./components/tracks-list"; +@import "./components/pagination"; +@import "./components/modal"; +@import "./components/radio"; +@import "./components/checkbox"; +@import "./components/select"; +@import "./components/single-select"; +@import "./components/multiple-select"; +@import "./components/track-select"; + +@import "./components/user_activity"; +@import "./components/search-bar"; +@import "./components/community-solution"; +@import "./components/community-solutions-list"; +@import "./components/iteration-processing-status"; +@import "./components/notification-dot"; + +@import "./components/mentor/header"; +@import "./components/mentor/solution-row"; +@import "./components/mentor/discussion"; + +@import "./components/track/header"; +@import "./components/track/concept-nav"; +@import "./components/track/concept-map"; +@import "./components/iteration-pane"; +@import "./components/explainer"; +@import "./components/markdown-editor"; +@import "./components/mentor-discussion-summary"; +@import "./components/mentor-track-selector"; +@import "./components/tag"; +@import "./components/difficulty-tag"; +@import "./components/exercise-status-tag"; +@import "./components/exercise-type-tag"; +@import "./components/divider"; +@import "./components/faces"; +@import "./components/exercise-dot"; +@import "./components/results-zone"; +@import "./components/introducer"; +@import "./components/profile-header"; +@import "./components/track-filter"; +@import "./components/mentor-discussion-widget"; +@import "./components/completed-exercise-progress"; + +@import "./components/widgets/exercise"; +@import "./components/mentor-discussion-post-editor"; +@import "./components/test-run"; +@import "./components/alert"; +@import "./components/diff"; +@import "./components/cli-walkthrough"; +@import "./components/cli-walkthrough-button"; + +@import "./modals/bug-report"; +@import "./modals/donations-form"; +@import "./modals/editor-hints"; +@import "./modals/automated-feedback"; +@import "./modals/generic-confirmation"; +@import "./modals/generic-destructive"; +@import "./modals/donation-confirmation"; +@import "./modals/badge"; +@import "./modals/update-exercise"; +@import "./modals/makers"; +@import "./modals/test-run"; +@import "./modals/activate-track-mode"; +@import "./modals/crop-avatar"; +@import "./modals/profile-first-time"; +@import "./modals/completed-tutorial-exercise"; +@import "./modals/completed-exercise"; +@import "./modals/publish-exercise"; +@import "./modals/mentoring-sessions"; +@import "./modals/confirm-finish-student-mentor-discussion"; +@import "./modals/finish-student-mentor-discussion"; +@import "./modals/welcome-to-v3"; +@import "./modals/become-mentor"; +@import "./modals/change-mentor-tracks"; +@import "./modals/select-exercise-for-mentoring"; +@import "./modals/testimonial"; +@import "./modals/change-published-iteration"; +@import "./modals/unpublish-solution"; +@import "./modals/cli-walkthrough"; + +@import "./dropdowns/generic-menu"; +@import "./dropdowns/share"; +@import "./dropdowns/notifications"; +@import "./dropdowns/reputation"; +@import "./dropdowns/request-mentoring"; +@import "./dropdowns/open-editor-button"; + +@import "./pages/partners/gdn"; +@import "./pages/about"; +@import "./pages/team"; +@import "./pages/individual_supporters"; +@import "./pages/organisation_supporters"; +@import "./pages/organisation_supporter"; +@import "./pages/editor"; +@import "./pages/notifications"; +@import "./pages/blog"; +@import "./pages/blog-post"; +@import "./pages/donate"; +@import "./pages/landing"; +@import "./pages/settings"; +@import "./pages/contributing-dashboard"; +@import "./pages/contributing-contributors"; +@import "./pages/contributing-tasks"; +@import "./pages/auth"; +@import "./pages/dashboard"; +@import "./pages/docs-show"; +@import "./pages/docs-index"; +@import "./pages/docs-tracks"; +@import "./pages/onboarding"; +@import "./pages/profile-intro"; +@import "./pages/profile-new"; +@import "./pages/profile"; +@import "./pages/profile-badges"; +@import "./pages/profile-solutions"; +@import "./pages/profile-contributions"; +@import "./pages/profile-testimonials"; +@import "./pages/track-shared-index"; +@import "./pages/concepts-index"; +@import "./pages/concept-show"; +@import "./pages/exercise-show"; +@import "./pages/exercise-mentoring"; +@import "./pages/exercises-index"; +@import "./pages/iterations-index"; +@import "./pages/community-solutions-index"; +@import "./pages/community-solution-show"; +@import "./pages/track-index"; +@import "./pages/track-show"; +@import "./pages/track-about"; +@import "./pages/mentoring/external-request"; +@import "./pages/mentoring/external"; +@import "./pages/mentoring/inbox"; +@import "./pages/mentoring/queue"; +@import "./pages/mentoring/testimonials"; +@import "./pages/maintaining/dashboard"; +@import "./pages/maintaining/track"; +@import "./pages/journey"; +@import "./pages/journey/overview"; +@import "./pages/journey/solutions"; +@import "./pages/journey/reputation"; +@import "./pages/journey/badges"; + +@import "./highlighters/highlightjs-light"; +@import "./highlighters/highlightjs-dark"; diff --git a/app/css/components/exercise-header.css b/app/css/components/exercise-header.css index 4624ef7bc8..b91c4f843b 100644 --- a/app/css/components/exercise-header.css +++ b/app/css/components/exercise-header.css @@ -41,12 +41,10 @@ & .c-exercise-icon { width: 64px; height: 64px; - @apply mr-12; - + @apply mr-12 md:mr-32; @screen md { width: 118px; height: 118px; - @apply mr-32; } } & .info { @@ -75,9 +73,7 @@ @apply mr-32; } & .c-react-wrapper-track-exercise-makers-button { - @screen lg { - @apply ml-auto; - } + @apply lg:ml-auto; } } & .navbar { diff --git a/app/css/components/header-with-bg.css b/app/css/components/header-with-bg.css index 968c8779bf..2c7a6dab81 100644 --- a/app/css/components/header-with-bg.css +++ b/app/css/components/header-with-bg.css @@ -11,7 +11,7 @@ rgba(250, 250, 255, 0) 77.6%, #fafaff 100% ), - url("../../../app/javascript/images/bg-tracks-header@2x.jpg"), #fafaff; + url("bg-tracks-header@2x.jpg"), #fafaff; background-size: 100%; background-position: -190px; diff --git a/app/css/components/iteration-processing-status.css b/app/css/components/iteration-processing-status.css index 3540391638..cd6597982b 100644 --- a/app/css/components/iteration-processing-status.css +++ b/app/css/components/iteration-processing-status.css @@ -13,10 +13,7 @@ & .--status { @apply font-mono font-bold; @apply ml-12; - @apply hidden; - @screen md { - @apply block; - } + @apply hidden md:block; } &.--processing { @apply text-orange; diff --git a/app/css/components/iteration-summary.css b/app/css/components/iteration-summary.css index 66e190cfaa..3ec4ca5b1b 100644 --- a/app/css/components/iteration-summary.css +++ b/app/css/components/iteration-summary.css @@ -64,10 +64,7 @@ font-size: 12px; line-height: 20px; - @apply hidden; - @screen md { - @apply block; - } + @apply hidden md:block; } & > .--latest + .--published { @apply ml-8; diff --git a/app/css/components/markdown-editor.css b/app/css/components/markdown-editor.css index dae366b9be..7beb2318d6 100644 --- a/app/css/components/markdown-editor.css +++ b/app/css/components/markdown-editor.css @@ -48,10 +48,7 @@ @apply flex flex-col-reverse; & .editor-toolbar { - @apply hidden; - @screen md { - @apply flex; - } + @apply hidden md:flex; border-width: 0; /* Override default */ @apply border-t-1 border-borderColor5 rounded-none; diff --git a/app/css/components/pagination.css b/app/css/components/pagination.css index b2eb1588ce..41f5503535 100644 --- a/app/css/components/pagination.css +++ b/app/css/components/pagination.css @@ -8,10 +8,7 @@ @apply font-medium text-14 text-textColor6 leading-160; @apply border-1 border-transparent; - @apply py-8 px-8; - @screen sm { - @apply px-16; - } + @apply py-8 px-8 sm:px-16; } & a, & button { @@ -53,10 +50,7 @@ & a { @apply mx-6; } - @apply hidden; - @screen md { - @apply flex; - } + @apply hidden md:flex; } & .--pagination-rhs { @apply justify-end; diff --git a/app/css/components/profile-header.css b/app/css/components/profile-header.css index dad8ad9e36..12b90ad349 100644 --- a/app/css/components/profile-header.css +++ b/app/css/components/profile-header.css @@ -83,7 +83,7 @@ header.c-profile-header { } & .badges-and-tags { @apply flex flex-col items-end; - @apply whitespace-no-wrap; + @apply whitespace-nowrap; & .header { @apply flex items-center; diff --git a/app/css/components/search-bar.css b/app/css/components/search-bar.css index 870c84400b..18f00e6702 100644 --- a/app/css/components/search-bar.css +++ b/app/css/components/search-bar.css @@ -38,9 +38,7 @@ width: 18px; filter: var(--buttonBorderColor1-filter); } - @screen md { - @apply px-24; - } + @apply md:px-24; } & .--reset-btn { @apply border-transparent; diff --git a/app/css/components/site-footer.css b/app/css/components/site-footer.css index eb63fc08e5..790ee1050b 100644 --- a/app/css/components/site-footer.css +++ b/app/css/components/site-footer.css @@ -24,7 +24,7 @@ body.namespace-.controller-journey { #271b72 100% ), linear-gradient(0deg, #271b72, #271b72), - url("../../../app/javascript/images/bg-tracks-header@2x.jpg"); + url("bg-tracks-header@2x.jpg"); background-size: 100%; background-position: -190px; diff --git a/app/css/components/site-header.css b/app/css/components/site-header.css index 618cd2d794..1d232c07bc 100644 --- a/app/css/components/site-header.css +++ b/app/css/components/site-header.css @@ -15,9 +15,7 @@ body.devise { #site-header { @apply bg-backgroundColorA border-b-1 border-borderColor7; @apply sticky top-0; - @screen lg { - @apply static; - } + @apply lg:static; /* This is needed to raise the menu above other components */ @apply z-menu; @@ -38,8 +36,8 @@ body.devise { width: 194px; } + @apply sm:mr-56; @screen sm { - @apply mr-56; max-width: unset; & .c-icon { @@ -64,9 +62,7 @@ body.devise { & nav.signed-in, & nav.signed-out { @apply hidden; - @screen lg { - @apply block mr-16; - } + @apply lg:block lg:mr-16; & ul { @apply flex items-center; @@ -91,7 +87,7 @@ body.devise { & a { @apply flex items-center relative; @apply text-16 text-textColor6 font-semibold; - @apply whitespace-no-wrap; + @apply whitespace-nowrap; & .c-icon { @apply hidden; @@ -133,10 +129,7 @@ body.devise { background-position: center center; background-repeat: no-repeat; - @apply hidden; - @screen sm { - @apply block; - } + @apply hidden sm:block; } & .new-testimonial { background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzEiIGhlaWdodD0iMjciIHZpZXdCb3g9IjAgMCAzMSAyNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi43NSAzLjc1MDAyQzguOTM5MzMgMy43NDQ1MiA1LjQyNTY4IDUuODA2OTUgMy41NzI4IDkuMTM2ODNDMS43MTk5MSAxMi40NjY3IDEuODE5NTMgMTYuNTM5NyAzLjgzMyAxOS43NzVMMC43NSAyNi4yNUw3LjIyNSAyMy4xNjdDMTEuMDExMyAyNS41MjExIDE1Ljg3MTQgMjUuMjI3NCAxOS4zNDY2IDIyLjQzNDVDMjIuODIxOSAxOS42NDE2IDI0LjE1NDQgMTQuOTU4NSAyMi42NzAxIDEwLjc1NDRDMjEuMTg1OSA2LjU1MDI4IDE3LjIwODQgMy43NDE5MiAxMi43NSAzLjc1MDAyWiIgc3Ryb2tlPSJ1cmwoI3BhaW50MF9saW5lYXIpIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTUuNzUgMTYuNUMxNS43NSAxOC4xNTY5IDE0LjQwNjkgMTkuNSAxMi43NSAxOS41QzExLjA5MzEgMTkuNSA5Ljc1IDE4LjE1NjkgOS43NSAxNi41SDE1Ljc1WiIgc3Ryb2tlPSJ1cmwoI3BhaW50MV9saW5lYXIpIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik04LjI1IDEyLjM3NUM4LjA0Mjg5IDEyLjM3NSA3Ljg3NSAxMi41NDI5IDcuODc1IDEyLjc1QzcuODc1IDEyLjk1NzEgOC4wNDI4OSAxMy4xMjUgOC4yNSAxMy4xMjVDOC40NTcxMSAxMy4xMjUgOC42MjUgMTIuOTU3MSA4LjYyNSAxMi43NUM4LjYyNSAxMi41NDI5IDguNDU3MTEgMTIuMzc1IDguMjUgMTIuMzc1IiBzdHJva2U9InVybCgjcGFpbnQyX2xpbmVhcikiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTE3LjI1IDEyLjM3NUMxNy4wNDI5IDEyLjM3NSAxNi44NzUgMTIuNTQyOSAxNi44NzUgMTIuNzVDMTYuODc1IDEyLjk1NzEgMTcuMDQyOSAxMy4xMjUgMTcuMjUgMTMuMTI1QzE3LjQ1NzEgMTMuMTI1IDE3LjYyNSAxMi45NTcxIDE3LjYyNSAxMi43NUMxNy42MjUgMTIuNTQyOSAxNy40NTcxIDEyLjM3NSAxNy4yNSAxMi4zNzUiIHN0cm9rZT0idXJsKCNwYWludDNfbGluZWFyKSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8Y2lyY2xlIGN4PSIyNCIgY3k9IjciIHI9IjUuNSIgZmlsbD0iI0VCNTc1NyIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIzIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXIiIHgxPSIxMi4wMDk4IiB5MT0iMy43NSIgeDI9IjEyLjAwOTgiIHkyPSIyNi4yNSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjIwMEZGIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzlFMDBGRiIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MV9saW5lYXIiIHgxPSIxMi43NSIgeTE9IjE2LjUiIHgyPSIxMi43NSIgeTI9IjE5LjUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzIyMDBGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM5RTAwRkYiLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDJfbGluZWFyIiB4MT0iOC4zNzUiIHkxPSIxMi4zNzUiIHgyPSI4LjM3NSIgeTI9IjEzLjM3NSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjIwMEZGIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzlFMDBGRiIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50M19saW5lYXIiIHgxPSIxNy4zNzUiIHkxPSIxMi4zNzUiIHgyPSIxNy4zNzUiIHkyPSIxMy4zNzUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzIyMDBGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM5RTAwRkYiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K"); @@ -148,10 +141,7 @@ body.devise { @apply ml-8 mr-48; } & .c-react-wrapper-dropdowns-reputation { - @apply hidden; - @screen lg { - @apply block mr-48; - } + @apply hidden lg:block lg:mr-48; } & .c-react-wrapper-dropdowns-dropdown { min-width: 74px; @@ -178,9 +168,7 @@ body.devise { @apply px-16 pb-20; & li.site-link { - @screen lg { - @apply hidden; - } + @apply lg:hidden; } & li.opt { & a { @@ -232,10 +220,7 @@ body.devise { & li.opt { & a { @apply px-12 py-4; - - @screen lg { - @apply px-16 py-8; - } + @apply lg:px-16 lg:py-8; } } @@ -253,10 +238,7 @@ body.devise { @apply mb-16; } & li.reputation { - @apply mb-20; - @screen lg { - @apply hidden; - } + @apply mb-20 lg:hidden; & .c-primary-reputation { @apply mr-0; } @@ -273,17 +255,15 @@ body.devise { & .auth-buttons a, & .explore-menu { height: 40px; - @apply text-15; + @apply text-15 lg:text-14; @screen lg { height: 32px; - @apply text-14; } } & .explore-menu { @apply px-16 ml-20; - @screen lg { - @apply hidden; - } + @apply lg:hidden; + & .c-icon { filter: var(--textColor2-filter); } diff --git a/app/css/components/social-icon.css b/app/css/components/social-icon.css index 074ccf69ba..377fd3a188 100644 --- a/app/css/components/social-icon.css +++ b/app/css/components/social-icon.css @@ -24,18 +24,21 @@ @apply ml-8; } + @apply md:flex-col md:p-0 md:rounded-circle; + & .c-icon { + @apply md:mr-0 md:mb-8; + } + & + .social-icon { + @apply md:ml-16; + } + @screen md { height: 96px; width: 96px; - @apply flex-col p-0 rounded-circle; & .c-icon { height: 32px; width: 32px; - @apply mr-0 mb-8; - } - & + .social-icon { - @apply ml-16; } } } diff --git a/app/css/components/tab-2.css b/app/css/components/tab-2.css index ab7b6279a1..e0e266da92 100644 --- a/app/css/components/tab-2.css +++ b/app/css/components/tab-2.css @@ -8,10 +8,7 @@ @apply text-textColor6; @apply border-b-4 border-transparent; - @screen md { - @apply text-18; - @apply mr-24; - } + @apply md:text-18 md:mr-24; & .c-icon { height: 24px; diff --git a/app/css/components/tag.css b/app/css/components/tag.css index c2b05d4cf2..8249fc6f7d 100644 --- a/app/css/components/tag.css +++ b/app/css/components/tag.css @@ -1,34 +1,36 @@ @import "../styles"; -.c-tag { - @apply rounded-100; - @apply text-14 leading-170 font-semibold; - @apply flex items-center px-10; - @apply px-12 py-4; - @apply border-1; - white-space: nowrap; +@layer base { + .c-tag { + @apply rounded-100; + @apply text-14 leading-170 font-semibold; + @apply flex items-center px-10; + @apply px-12 py-4; + @apply border-1; + white-space: nowrap; - & .c-icon { - height: 16px; - width: 16px; - @apply mr-8; - filter: var(--textColor6-filter); - } + & .c-icon { + height: 16px; + width: 16px; + @apply mr-8; + filter: var(--textColor6-filter); + } - &.--small { - @apply text-13 leading-150 px-10; - } + &.--small { + @apply text-13 leading-150 px-10; + } - &.--compact { - @apply leading-130 py-4 px-12; - } + &.--compact { + @apply leading-130 py-4 px-12; + } - &.--practice-mode { - @apply border-backgroundColorH; - @apply text-textColor9 bg-textColor6; + &.--practice-mode { + @apply border-backgroundColorH; + @apply text-textColor9 bg-textColor6; - & .c-icon { - filter: var(--white-filter); + & .c-icon { + filter: var(--white-filter); + } } } } diff --git a/app/css/components/track-breadcrumbs.css b/app/css/components/track-breadcrumbs.css index 523a3d437f..4ae018f971 100644 --- a/app/css/components/track-breadcrumbs.css +++ b/app/css/components/track-breadcrumbs.css @@ -12,7 +12,7 @@ @apply text-lightBlue font-medium; @apply mr-16; @apply flex items-center; - @apply whitespace-no-wrap; + @apply whitespace-nowrap; & .c-icon, & .c-track-icon { @@ -27,10 +27,10 @@ } & .track-title { @apply mr-16; - @apply whitespace-no-wrap; + @apply whitespace-nowrap; } & .exercise-title { - @apply whitespace-no-wrap; + @apply whitespace-nowrap; } & .seperator { @apply mr-16; diff --git a/app/css/components/track/concept-map.css b/app/css/components/track/concept-map.css index 2a9f759935..cbeb14f261 100644 --- a/app/css/components/track/concept-map.css +++ b/app/css/components/track/concept-map.css @@ -99,10 +99,6 @@ opacity: 1; } - &.hidden { - visibility: hidden; - } - & .display { @apply flex items-center justify-center; border-radius: 7px 7px 0 0; diff --git a/app/css/components/track/header.css b/app/css/components/track/header.css index 52cb1cf643..0fbb18decc 100644 --- a/app/css/components/track/header.css +++ b/app/css/components/track/header.css @@ -10,10 +10,7 @@ } & .text-h1 { - @apply text-28; - @screen md { - @apply text-39; - } + @apply text-28 md:text-39; } & .c-track-icon { height: 48px; diff --git a/app/css/components/tracks-list.css b/app/css/components/tracks-list.css index 37050b9bf1..671b133af2 100644 --- a/app/css/components/tracks-list.css +++ b/app/css/components/tracks-list.css @@ -70,21 +70,13 @@ & .--reset-btn { @apply ml-24; } - @screen lg { - @apply flex; - } + @apply lg:flex; } & .--filter-btn { - @apply mr-0; - @screen lg { - @apply mr-40; - } + @apply mr-0 lg:mr-40; } & .c-single-select { - @apply hidden ml-auto; - @screen lg { - @apply flex; - } + @apply hidden ml-auto lg:flex; } } & .joined-tracks { @@ -95,10 +87,7 @@ } & .joined-tracks, & .unjoined-tracks { - @apply grid gap-16; - @screen md { - @apply grid-cols-2; - } + @apply grid gap-16 md:grid-cols-2; } & .--track { @@ -189,9 +178,7 @@ width: 21px; @apply mr-8; filter: var(--textColor6-filter); - @screen md { - @apply mr-12; - } + @apply md:mr-12; } } } @@ -221,7 +208,7 @@ @apply border-borderColor7 border-1 rounded-100; @apply font-medium text-13 text-textColor6 leading-200; @apply px-12; - @apply whitespace-no-wrap; + @apply whitespace-nowrap; } } & .--last-touched { diff --git a/app/css/application.css b/app/css/defaults.css similarity index 94% rename from app/css/application.css rename to app/css/defaults.css index 858d25b69c..5c844f6e12 100644 --- a/app/css/application.css +++ b/app/css/defaults.css @@ -327,3 +327,54 @@ code { pre { @apply font-mono text-14 leading-160; } + +body { + background: green; +} +/*******************/ +/* HTML/Body Setup */ +/*******************/ +html { + height: 100%; +} +body { + min-height: 100%; + @apply flex flex-col; +} + +/**************/ +/* Containers */ +/**************/ +.sm-container, +.md-container, +.lg-container { + width: 100%; + @apply mx-auto; +} + +.sm-container { + max-width: 1056px; + padding: 0 var(--container-padding-x); +} + +.md-container { + max-width: 1248px; + padding: 0 var(--container-padding-x); +} + +.lg-container { + max-width: 1440px; + padding: 0 var(--container-padding-x); +} + +[data-react-data] { + /* width: 100%; */ + /* height: 100%; */ +} + +.c-react-component { + &.--fitted { + width: fit-content; + height: fit-content; + } +} diff --git a/app/css/layout.css b/app/css/layout.css deleted file mode 100644 index 391f3f096e..0000000000 --- a/app/css/layout.css +++ /dev/null @@ -1,47 +0,0 @@ -/*******************/ -/* HTML/Body Setup */ -/*******************/ -html { - height: 100%; -} -body { - min-height: 100%; - @apply flex flex-col; -} - -/**************/ -/* Containers */ -/**************/ -.sm-container, -.md-container, -.lg-container { - width: 100%; - @apply mx-auto; -} - -.sm-container { - max-width: 1056px; - padding: 0 var(--container-padding-x); -} - -.md-container { - max-width: 1248px; - padding: 0 var(--container-padding-x); -} - -.lg-container { - max-width: 1440px; - padding: 0 var(--container-padding-x); -} - -[data-react-data] { - /* width: 100%; */ - /* height: 100%; */ -} - -.c-react-component { - &.--fitted { - width: fit-content; - height: fit-content; - } -} diff --git a/app/css/pages/about.css b/app/css/pages/about.css index da03d6087b..e24fd95827 100644 --- a/app/css/pages/about.css +++ b/app/css/pages/about.css @@ -22,9 +22,7 @@ & .links { & li { @apply mb-20; - @screen md { - @apply mb-0 mr-40; - } + @apply md:mb-0 md:mr-40; } & a { @apply flex items-center; diff --git a/app/css/pages/auth.css b/app/css/pages/auth.css index 2ca09332f8..06cada4524 100644 --- a/app/css/pages/auth.css +++ b/app/css/pages/auth.css @@ -4,10 +4,7 @@ --lhs-width: 550px; background: linear-gradient(360deg, #5141bd 0%, #3e2ea5 100%), linear-gradient(0deg, #2f2768, #2f2768); - @apply flex flex-col flex-grow relative; - @screen md { - @apply flex-row; - } + @apply flex flex-col md:flex-row flex-grow relative; & section.form-section { @apply py-48 px-48; @@ -67,6 +64,10 @@ & .github-btn { @apply w-100 mb-24; + & button { + @apply w-100; + } + & .c-icon { height: 16px; width: 16px; @@ -98,7 +99,7 @@ @apply w-100 mb-16; } - & form { + & form.new_user { @apply w-100 mb-24 mt-8; & .field { @@ -148,10 +149,7 @@ position: sticky; top: 0; - @apply hidden; - @screen lg { - @apply flex; - } + @apply hidden lg:flex; & .content { @apply mt-auto text-center; diff --git a/app/css/pages/blog-post.css b/app/css/pages/blog-post.css index 65efcc34be..21f31ced6c 100644 --- a/app/css/pages/blog-post.css +++ b/app/css/pages/blog-post.css @@ -14,10 +14,10 @@ width: 48px; @apply mb-8; + @apply md:ml-48; @screen md { height: 96px; width: 96px; - @apply ml-48; } } & .info-bar { @@ -70,10 +70,7 @@ & .c-avatar { height: 64px; width: 64px; - @apply mr-12; - @screen md { - @apply mr-24; - } + @apply mr-12 md:mr-24; } } } diff --git a/app/css/pages/blog.css b/app/css/pages/blog.css index 96654b2896..6e6a58bc72 100644 --- a/app/css/pages/blog.css +++ b/app/css/pages/blog.css @@ -29,10 +29,7 @@ } & .info-bar { @apply text-textColor6; - @apply mb-16; - @screen md { - @apply mb-24; - } + @apply mb-16 md:mb-24; & .video img { height: 24px; width: 24px; diff --git a/app/css/pages/community-solution-show.css b/app/css/pages/community-solution-show.css index 15765d291d..3db58c65d4 100644 --- a/app/css/pages/community-solution-show.css +++ b/app/css/pages/community-solution-show.css @@ -11,10 +11,7 @@ height: 48px; width: 48px; @apply mr-32; - @apply hidden; - @screen lg { - @apply block; - } + @apply hidden lg:block; } & .avatar { @@ -25,10 +22,10 @@ & .c-avatar { height: 48px; width: 48px; + @apply sm:block; @screen sm { height: 80px; width: 80px; - @apply block; } } } @@ -47,10 +44,7 @@ } & .c-primary-reputation { @apply ml-16; - @apply hidden; - @screen sm { - @apply flex; - } + @apply hidden sm:flex; } } & .to { @@ -69,10 +63,8 @@ @apply flex items-center; & .c-react-wrapper-common-share-solution-button { - @apply flex-grow; - @screen sm { - @apply flex-grow-0; - } + @apply flex-grow sm:flex-grow-0; + & .c-share-button { @apply w-100; & .inner { diff --git a/app/css/pages/contributing-contributors.css b/app/css/pages/contributing-contributors.css index fad8af506c..8e6d0a2a7d 100644 --- a/app/css/pages/contributing-contributors.css +++ b/app/css/pages/contributing-contributors.css @@ -65,10 +65,8 @@ @apply border-b-1 border-borderColor7; @apply flex flex-col; - @screen md { - @apply px-24 py-8; - @apply flex-row items-center; - } + @apply md:px-24 md:py-8; + @apply md:flex-row md:items-center; & .rank { @apply flex-shrink-0; @@ -98,8 +96,8 @@ transform: scale(0.8); transform-origin: 0 50%; + @apply md:ml-auto; @screen md { - @apply ml-auto; transform: unset; } } diff --git a/app/css/pages/contributing-tasks.css b/app/css/pages/contributing-tasks.css index d667eaa47f..a7e2ab0e23 100644 --- a/app/css/pages/contributing-tasks.css +++ b/app/css/pages/contributing-tasks.css @@ -1,10 +1,7 @@ @import "../styles"; .c-task-tooltip { - @apply hidden; - @screen md { - @apply block; - } + @apply hidden md:block; } .c-task-tooltip, #contributing-tasks .task { @@ -68,9 +65,7 @@ & .c-search-bar { @apply mb-16 hidden; - @screen lg { - @apply flex flex-wrap justify-end; - } + @apply lg:flex lg:flex-wrap lg:justify-end; & .c-track-select { @apply mr-auto mb-16; @@ -111,12 +106,10 @@ & h2 { @apply text-h4 text-textColor6; @apply mr-16; + @apply lg:flex lg:items-center; & strong { @apply mr-12 text-h3; } - @screen lg { - @apply flex items-center; - } } & .reset-btn { @apply mr-32; @@ -124,28 +117,19 @@ & .c-single-select { @apply ml-auto; - @apply hidden; - @screen lg { - @apply flex; - } + @apply hidden lg:flex; } } & .tasks { @apply shadow-lg rounded-8 bg-backgroundColorA; & .task { - @apply py-10 px-16; - @screen sm { - @apply px-24; - } + @apply py-10 px-16 sm:px-24; @apply items-center; @apply border-b-1 border-borderColor7; & .knowledge-tag, & .size-tag { - @apply ml-0; - @screen md { - @apply ml-48; - } + @apply ml-0 md:ml-48; } & .action-icon { @@ -213,10 +197,7 @@ } & > :not(.knowledge-tag):not(.size-tag) { - @apply ml-16; - @screen md { - @apply ml-48; - } + @apply ml-16 md:ml-48; } } & .external-link { @@ -228,9 +209,6 @@ } } & .c-pagination { - @apply px-16 py-16 mt-0; - @screen sm { - @apply px-24; - } + @apply px-16 sm:px-24 py-16 mt-0; } } diff --git a/app/css/pages/donate.css b/app/css/pages/donate.css index 4ee2c7a7dc..fbe5025c45 100644 --- a/app/css/pages/donate.css +++ b/app/css/pages/donate.css @@ -27,8 +27,8 @@ & article { @apply flex flex-col; + @apply lg:grid; @screen lg { - @apply grid; grid-template: "video form" auto "info form" auto / auto auto; @@ -131,8 +131,8 @@ box-shadow: 0px 4px 32px 0px #4f72cd80; max-width: none; + @apply lg:ml-auto; @screen lg { - @apply ml-auto; max-width: 570px; } } diff --git a/app/css/pages/exercise-show.css b/app/css/pages/exercise-show.css index d3737d08f9..2e5cce7871 100644 --- a/app/css/pages/exercise-show.css +++ b/app/css/pages/exercise-show.css @@ -156,7 +156,9 @@ } & .options { @apply flex items-center; - & .c-combo-button, + & .c-combo-button { + @apply mr-24; + } & .btn-primary { @apply mr-24; } @@ -397,9 +399,7 @@ } & .action-box { @apply shadow-lg py-20 px-20 rounded-8; - @screen lg { - @apply py-24 px-32; - } + @apply lg:py-24 lg:px-32; & h3 { @apply flex items-center text-h4 mb-8; diff --git a/app/css/pages/individual_supporters.css b/app/css/pages/individual_supporters.css index eeebd5ae17..1816cd5816 100644 --- a/app/css/pages/individual_supporters.css +++ b/app/css/pages/individual_supporters.css @@ -41,9 +41,7 @@ } & a { @apply rounded-12; - @screen md { - @apply px-80; - } + @apply md:px-80; } } & .donors { diff --git a/app/css/pages/journey/overview.css b/app/css/pages/journey/overview.css index 62c6b2140c..518f761b4f 100644 --- a/app/css/pages/journey/overview.css +++ b/app/css/pages/journey/overview.css @@ -220,7 +220,7 @@ & .journey-h3 { @apply mb-8; } - & p.text-h6 { + & h5 { @apply text-textColor5; @apply mb-6; } @@ -242,7 +242,7 @@ & .journey-h3 { @apply mb-8; } - & p.text-h6 { + & h5 { @apply text-textColor5; @apply mb-6; } diff --git a/app/css/pages/landing.css b/app/css/pages/landing.css index 5e5b94f53e..c45c264c08 100644 --- a/app/css/pages/landing.css +++ b/app/css/pages/landing.css @@ -84,11 +84,10 @@ & .c-icon { height: 40px; width: 40px; - @apply mb-8; + @apply mb-8 lg:mb-12; @screen lg { height: 48px; width: 48px; - @apply mb-12; } } & h3 { @@ -106,12 +105,10 @@ & .c-icon { height: 64px; width: 64px; - @apply mb-12; - + @apply mb-12 md:mb-16; @screen md { height: 80px; width: 80px; - @apply mb-16; } } & h2 { @@ -124,8 +121,8 @@ @apply mt-20 mb-16; transform: scale(0.8); + @apply md:mt-24 md:mb-20; @screen md { - @apply mt-24 mb-20; transform: scale(1); } } @@ -134,9 +131,7 @@ & section.tracks-section { & .section-header { & .c-icon { - @screen md { - @apply mb-20; - } + @apply md:mb-20; } } & .lg-container { @@ -149,14 +144,12 @@ @media screen and (max-width: 1024px) { transform: scale(0.8); } - @media screen and (max-width: 850px) { - @apply hidden; - } + @apply max850:hidden; } &:before { left: 96px; top: 62px; - @media screen and (max-width: 1024px) { + @screen lg { left: 5%; } } @@ -295,9 +288,7 @@ @media screen and (max-width: 1024px) { transform: scale(0.8); } - @media screen and (max-width: 850px) { - @apply hidden; - } + @apply max850:hidden; } &:before { background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTQiIGhlaWdodD0iMTU4IiB2aWV3Qm94PSIwIDAgOTQgMTU4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNTUgNDEuOTA5Mkw2OC45MzMyIDI4LjA1MzZMODIuODY2MyA0MS45MDkyTDY4LjkzMzIgNTUuNzY0N0w1NSA0MS45MDkyWiIgZmlsbD0iIzU5RDJBRSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTYzLjg2NjcgMzkuMzlMNzQuNjMzMyAyOC42ODM0Qzc2LjIwNzMgMjcuMTE4MiA3OC43NTkyIDI3LjExODIgODAuMzMzMiAyOC42ODM0TDkxLjA5OTcgMzkuMzlDOTIuNjczNyA0MC45NTUzIDkyLjY3MzcgNDMuNDkzIDkxLjA5OTcgNDUuMDU4Mkw4MC4zMzMyIDU1Ljc2NDhDNzguNzU5MiA1Ny4zMyA3Ni4yMDczIDU3LjMzIDc0LjYzMzMgNTUuNzY0OEw2My44NjY3IDQ1LjA1ODJDNjIuMjkyOCA0My40OTMgNjIuMjkyOCA0MC45NTUzIDYzLjg2NjcgMzkuMzlaTTY2LjQwMDEgNDEuOTA5MkM2Ni4yMjUyIDQyLjA4MzEgNjYuMjI1MiA0Mi4zNjUxIDY2LjQwMDEgNDIuNTM5TDc3LjE2NjYgNTMuMjQ1NkM3Ny4zNDE1IDUzLjQxOTUgNzcuNjI1IDUzLjQxOTUgNzcuNzk5OSA1My4yNDU2TDg4LjU2NjQgNDIuNTM5Qzg4Ljc0MTMgNDIuMzY1MSA4OC43NDEzIDQyLjA4MzEgODguNTY2NCA0MS45MDkyTDc3Ljc5OTkgMzEuMjAyNkM3Ny42MjUgMzEuMDI4NyA3Ny4zNDE1IDMxLjAyODcgNzcuMTY2NiAzMS4yMDI2TDY2LjQwMDEgNDEuOTA5MloiIGZpbGw9IiMxMzBCNDMiLz4KPHBhdGggZD0iTTUuMjk3MzIgMTM1Ljk2QzUuOTk2ODcgMTM1LjI2NCA3LjEzMTA2IDEzNS4yNjQgNy44MzA2MSAxMzUuOTZMMTcuMzMwNSAxNDUuNDA3QzE4LjAzIDE0Ni4xMDIgMTguMDMgMTQ3LjIzIDE3LjMzMDUgMTQ3LjkyNkMxNi42MzA5IDE0OC42MjIgMTUuNDk2NyAxNDguNjIyIDE0Ljc5NzIgMTQ3LjkyNkw1LjI5NzMyIDEzOC40NzlDNC41OTc3NyAxMzcuNzgzIDQuNTk3NzcgMTM2LjY1NSA1LjI5NzMyIDEzNS45NloiIGZpbGw9IiMxMzBCNDMiLz4KPHBhdGggZD0iTTEuMjY2NjcgMTQzLjk3NkMxLjk2NjIzIDE0My4yOCAzLjEwMDQyIDE0My4yOCAzLjc5OTk4IDE0My45NzZMMTMuMjk5OSAxNTMuNDIzQzEzLjk5OTQgMTU0LjExOSAxMy45OTk0IDE1NS4yNDYgMTMuMjk5OSAxNTUuOTQyQzEyLjYwMDMgMTU2LjYzOCAxMS40NjYxIDE1Ni42MzggMTAuNzY2NiAxNTUuOTQyTDEuMjY2NjcgMTQ2LjQ5NUMwLjU2NzEyMSAxNDUuNzk5IDAuNTY3MTIgMTQ0LjY3MiAxLjI2NjY3IDE0My45NzZaIiBmaWxsPSIjMTMwQjQzIi8+Cjwvc3ZnPgo="); diff --git a/app/css/pages/mentoring/external.css b/app/css/pages/mentoring/external.css index b4f943ff56..9ebaefe9d4 100644 --- a/app/css/pages/mentoring/external.css +++ b/app/css/pages/mentoring/external.css @@ -94,10 +94,7 @@ @apply text-16 leading-160; } - @apply mb-16; - @screen md { - @apply mb-0; - } + @apply mb-16 md:mb-0; } } } diff --git a/app/css/pages/organisation_supporter.css b/app/css/pages/organisation_supporter.css index 58484eb169..f7eafb8c2c 100644 --- a/app/css/pages/organisation_supporter.css +++ b/app/css/pages/organisation_supporter.css @@ -24,8 +24,9 @@ @apply mr-auto; } & .rhs { + @apply md:flex-shrink-0; + @screen md { - @apply flex-shrink-0; width: 380px; } diff --git a/app/css/pages/organisation_supporters.css b/app/css/pages/organisation_supporters.css index 5674c74338..22f20712b9 100644 --- a/app/css/pages/organisation_supporters.css +++ b/app/css/pages/organisation_supporters.css @@ -56,9 +56,7 @@ } & a { @apply rounded-12; - @screen md { - @apply px-80; - } + @apply md:px-80; } } & .areas-of-collaboration { diff --git a/app/css/pages/partners/gdn.css b/app/css/pages/partners/gdn.css index 3d5039dead..03180144e4 100644 --- a/app/css/pages/partners/gdn.css +++ b/app/css/pages/partners/gdn.css @@ -4,9 +4,7 @@ & .icons { & span { @apply text-40 mx-24; - @screen md { - @apply text-64 mx-32; - } + @apply md:text-64 md:mx-32; } & .c-icon { height: 80px; @@ -35,24 +33,16 @@ } & h3 { & .sm { - @apply inline; + @apply inline md:hidden; } & .md { - @apply hidden; - } - @screen md { - & .sm { - @apply hidden; - } - & .md { - @apply inline; - } + @apply hidden md:inline; } } & .video-section { width: 100%; + @apply lg:ml-64; @screen lg { - @apply ml-64; max-width: 640px; } } @@ -102,9 +92,7 @@ position: absolute; box-shadow: 0 -20px 20px 20px var(--backgroundColorB) inset; background: transparent; - @screen lg { - @apply hidden; - } + @apply lg:hidden; } } } @@ -134,10 +122,7 @@ & .text-h3 { @apply text-center; max-width: 300px; - @apply mb-24; - @screen md { - @apply mb-32; - } + @apply mb-24 md:mb-32; } & img:last-child { height: 24px; diff --git a/app/css/pages/profile-badges.css b/app/css/pages/profile-badges.css index d993cdba0a..b946b49be7 100644 --- a/app/css/pages/profile-badges.css +++ b/app/css/pages/profile-badges.css @@ -8,7 +8,7 @@ @apply shadow-base bg-backgroundColorA py-16 mb-40 rounded-8; @apply flex justify-center; - & .block { + & .section { @apply flex items-center mx-32; & .c-icon { diff --git a/app/css/pages/team.css b/app/css/pages/team.css index 6bbf011ffe..a10def79e0 100644 --- a/app/css/pages/team.css +++ b/app/css/pages/team.css @@ -8,9 +8,7 @@ & .lg-container { @apply pt-32; - @screen md { - @apply pt-48; - } + @apply md:pt-48; } & .icon { @@ -28,14 +26,9 @@ } & .stats { @apply text-20 leading-150 font-semibold text-textColor6; - & .stat { - } & .divider { @apply mx-24; - @apply hidden; - @screen md { - @apply block; - } + @apply hidden md:block; } } } @@ -62,20 +55,14 @@ @apply p-16; @apply flex flex-col items-start; - @screen md { - @apply flex-row; - } - @screen sm { - @apply p-24; - } + @apply md:flex-row; + @apply sm:p-24; + & .avatar { height: 64px; width: 64px; @apply mb-12 rounded-100; - - @screen md { - @apply mb-0 mr-16; - } + @apply md:mb-0 md:mr-16; } & h3 { @apply text-18 leading-150 text-textColor2; diff --git a/app/css/pages/track-about.css b/app/css/pages/track-about.css index c7fa79ec27..ac8d3363e6 100644 --- a/app/css/pages/track-about.css +++ b/app/css/pages/track-about.css @@ -132,12 +132,12 @@ @apply flex-shrink-0; @apply bg-backgroundColorA rounded-8 py-24 px-36; @apply shadow-base; + @apply md:w-1-2 md:ml-72; & pre { @apply whitespace-pre-wrap; } @screen md { - @apply w-1-2 ml-72; max-width: 450px; } } @@ -228,7 +228,7 @@ @apply mb-64; & .c-track-icon { - @apply absolute hidden; + @apply absolute hidden lg:block; height: 128px; width: 128px; top: 50%; @@ -238,9 +238,6 @@ filter: drop-shadow( 0px 2px 16px rgba(var(--track-icon-color), 0.3) ); - @screen lg { - @apply block; - } } & .c-icon { @@ -257,10 +254,10 @@ } } + @apply lg:mx-auto; @screen lg { max-width: 1050px; height: 627px; - @apply mx-auto; & .feature { @apply absolute; diff --git a/app/css/styles.css b/app/css/styles.css index d45f80b6bc..171ece1011 100644 --- a/app/css/styles.css +++ b/app/css/styles.css @@ -3,261 +3,217 @@ img { max-width: none; } -.text-h0 { - @apply text-32 font-bold text-textColor1; - line-height: 1.25; +@layer base { + .text-h0 { + @apply text-32 font-bold text-textColor1; + line-height: 1.25; - @screen md { - @apply text-40; + @apply md:text-40 lg:text-48; } + .text-h1 { + @apply text-32 font-bold text-textColor1; + line-height: 1.25; - @screen lg { - @apply text-48; + @apply md:text-34 lg:text-39; } -} -.text-h1 { - @apply text-32 font-bold text-textColor1; - line-height: 1.25; + .text-h2 { + @apply text-28 font-bold text-textColor1 leading-140; - @screen md { - @apply text-34; + @apply md:text-31; } + .text-h3 { + @apply text-20 text-textColor1 font-semibold leading-150; - @screen lg { - @apply text-39; + @apply md:text-24; } -} -.text-h2 { - @apply text-28 font-bold text-textColor1 leading-140; - - @screen md { - @apply text-31; - } -} -.text-h3 { - @apply text-20 text-textColor1 font-semibold leading-150; - - @screen md { - @apply text-24; + .text-h3-mono { + @apply text-h3 font-mono font-bold; } -} -.text-h3-mono { - @apply text-h3 font-mono font-bold; -} -.text-h4 { - @apply font-semibold text-textColor1 text-20 leading-140; -} -.text-h5 { - @apply text-18 leading-150 font-semibold text-textColor1; - - /* Temporary things until we use JIT tailwind */ - &.text-textColor6 { - @apply text-textColor6; + .text-h4 { + @apply font-semibold text-textColor1 text-20 leading-140; } -} -.text-h5-mono { - @apply text-h5 font-mono font-bold; -} -.text-h6 { - @apply text-16 font-semibold text-textColor1 leading-140; -} - -.text--p { - @apply leading-160; - - & a { - @apply text-lightBlue font-medium; + .text-h5 { + @apply text-18 leading-150 font-semibold text-textColor1; } - & strong { - @apply font-medium text-textColor2; + .text-h5-mono { + @apply text-h5 font-mono font-bold; } - - /* Temporary things until we use JIT tailwind */ - &.text-textColor6 { - @apply text-textColor6; + .text-h6 { + @apply text-16 font-semibold text-textColor1 leading-140; } -} -.text-p-small { - @apply text--p; - @apply text-14; -} -.text-p-base { - @apply text--p; - @apply text-16; -} -.text-p-large { - @apply text--p; - @apply text-18; -} -.text-p-xlarge { - @apply text--p; - @apply text-18; + .text--p { + @apply leading-160; - @screen sm { - @apply text-20; + & a { + @apply text-lightBlue font-medium; + } + & strong { + @apply font-medium text-textColor2; + } } -} -.text-p-2xlarge { - @apply text--p; - @apply text-20; - - @screen sm { - @apply text-22; + .text-p-small { + @apply text--p; + @apply text-14; } - - @screen md { - @apply text-24; + .text-p-base { + @apply text--p; + @apply text-16; } -} -.text-p-3xlarge { - @apply text--p; - @apply text-20; - - @screen sm { - @apply text-24; + .text-p-large { + @apply text--p; + @apply text-18; + } + .text-p-xlarge { + @apply text--p; + @apply text-18 sm:text-20; } + .text-p-2xlarge { + @apply text--p; - @screen md { - @apply text-28; + @apply text-20 sm:text-22 md:text-24; } -} -.text-prose { - @apply text-18 leading-paragraph; -} -.text-label-code-caps { - @apply font-mono text-14 leading-regular uppercase text-darkGray font-bold; -} -.text-label-timestamp { - @apply text-14 text-textColor6 leading-150; -} -.btn--simple { - @apply bg-backgroundColorA text-textColor6 border-borderColor5; -} -.btn--secondary { - @apply bg-backgroundColorA text-anotherPurple border-anotherPurple; -} -.btn--discourage { - @apply bg-backgroundColorA text-textColor6 border-borderColor5; -} -.btn { - @apply flex items-center justify-center px-20; - @apply border-2 border-buttonBorderColor1 rounded-5; - @apply text-16 font-semibold; - white-space: nowrap; - height: 48px; + .text-p-3xlarge { + @apply text--p; + @apply text-20 sm:text-24 md:text-28; + } + .text-prose { + @apply text-18 leading-paragraph; + } + .text-label-code-caps { + @apply font-mono text-14 leading-regular uppercase text-darkGray font-bold; + } + .text-label-timestamp { + @apply text-14 text-textColor6 leading-150; + } + .btn--simple { + @apply bg-backgroundColorA text-textColor6 border-borderColor5; + } + .btn--secondary { + @apply bg-backgroundColorA text-anotherPurple border-anotherPurple; + } + .btn--discourage { + @apply bg-backgroundColorA text-textColor6 border-borderColor5; + } + .btn { + @apply flex items-center justify-center px-20; + @apply border-2 border-buttonBorderColor1 rounded-5; + @apply text-16 font-semibold; + white-space: nowrap; + height: 48px; - & > .c-icon { - height: 18px; - width: 18px; - &:first-child { - @apply mr-12; + & > .c-icon { + height: 18px; + width: 18px; + &:first-child { + @apply mr-12; + } + &:last-child { + @apply ml-12; + } } - &:last-child { - @apply ml-12; + + & > .kb-shortcut { + @apply ml-8; } - } - & > .kb-shortcut { - @apply ml-8; + &:disabled { + opacity: 0.5; + } } - - &:disabled { - opacity: 0.5; + .btn-simple { + @apply btn btn--simple; } -} -.btn-simple { - @apply btn btn--simple; -} -.btn-i-large { - @apply btn; - @apply px-32 border-3 text-18; - @apply shadow-buttonS; - height: 54px; + .btn-i-large { + @apply btn; + @apply px-32 border-3 text-18; + @apply shadow-buttonS; + height: 54px; - & > .c-icon { - height: 16px; - width: 16px; + & > .c-icon { + height: 16px; + width: 16px; + } } -} -.btn-large-secondary { - @apply btn-i-large btn--secondary; -} - -.btn-small { - @apply btn border-1 border-buttonBorderColor2; - @apply text-14 rounded-5 px-16; - @apply text-textColor6; - height: 36px; - - & > .c-icon { - height: 14px; - width: 14px; + .btn-large-secondary { + @apply btn-i-large btn--secondary; } -} -.btn-small-secondary { - @apply btn-small btn--secondary; -} -.btn-small-discourage { - @apply btn-small btn--discourage; -} -.btn-keyboard-shortcut { - @apply flex items-center; - @apply py-6 px-12; - & > :first-child { - @apply mr-12; - } - & .--kb { - @apply py-6 px-8; - @apply border-1 border-borderColor5 rounded-5; + .btn-small { + @apply btn border-1 border-buttonBorderColor2; + @apply text-14 rounded-5 px-16; @apply text-textColor6; - box-shadow: 0px 1px 0px 1px #cbc9d9bb; + height: 36px; - & .c-icon { - height: 12px; - width: 12px; + & > .c-icon { + height: 14px; + width: 14px; } } - & .--hint { - @apply text-textColor6 font-semibold; + .btn-small-secondary { + @apply btn-small btn--secondary; } -} + .btn-small-discourage { + @apply btn-small btn--discourage; + } + .btn-keyboard-shortcut { + @apply flex items-center; + @apply py-6 px-12; -.btn-link-legacy { - @apply btn-small; - @apply border-0 text-lightBlue p-0; -} + & > :first-child { + @apply mr-12; + } + & .--kb { + @apply py-6 px-8; + @apply border-1 border-borderColor5 rounded-5; + @apply text-textColor6; + box-shadow: 0px 1px 0px 1px #cbc9d9bb; + + & .c-icon { + height: 12px; + width: 12px; + } + } + & .--hint { + @apply text-textColor6 font-semibold; + } + } -a.text-a-subtle, -button.text-a-subtle { - @apply text-textColor2 font-normal leading-140; - @apply border-b-1 border-textColor2; -} + .btn-link-legacy { + @apply btn-small; + @apply border-0 text-lightBlue p-0; + } -.text-label { - @apply block; - @apply text-13 leading-150 text-textColor2 font-mono font-bold uppercase; -} + a.text-a-subtle, + button.text-a-subtle { + @apply text-textColor2 font-normal leading-140; + @apply border-b-1 border-textColor2; + } -.border-gradient { - border-style: solid; - border-color: transparent; - background-image: linear-gradient(white, white), - linear-gradient(#2200ff, #9e00ff); - background-origin: border-box; - background-clip: padding-box, border-box; -} + .text-label { + @apply block; + @apply text-13 leading-150 text-textColor2 font-mono font-bold uppercase; + } -.text-gradient { - color: #6a01ff; - background: -webkit-linear-gradient(#2200ff, #9e00ff); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; -} + .border-gradient { + border-style: solid; + border-color: transparent; + background-image: linear-gradient(white, white), + linear-gradient(#2200ff, #9e00ff); + background-origin: border-box; + background-clip: padding-box, border-box; + } + + .text-gradient { + color: #6a01ff; + background: -webkit-linear-gradient(#2200ff, #9e00ff); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + } -.uses-suspense { - @apply relative; + .uses-suspense { + @apply relative; + } } diff --git a/app/css/tailwind.css b/app/css/tailwind.css new file mode 100644 index 0000000000..b5c61c9567 --- /dev/null +++ b/app/css/tailwind.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/app/css/tooltips/base.css b/app/css/tooltips/base.css index 73ba9ed00d..2e31764a3c 100644 --- a/app/css/tooltips/base.css +++ b/app/css/tooltips/base.css @@ -1,7 +1,9 @@ @import "../styles"; -.c-tooltip-base { - @apply shadow-lg rounded-8 py-20 px-24 bg-backgroundColorA; - @apply relative z-tooltip; - width: max-content; +@layer base { + .c-tooltip-base { + @apply shadow-lg rounded-8 py-20 px-24 bg-backgroundColorA; + @apply relative z-tooltip; + width: max-content; + } } diff --git a/app/css/ui-kit/buttons.css b/app/css/ui-kit/buttons.css index 08a2276ed9..389ba53731 100644 --- a/app/css/ui-kit/buttons.css +++ b/app/css/ui-kit/buttons.css @@ -1,206 +1,208 @@ -.btn-i-base { - @apply font-semibold; - @apply flex items-center justify-center; - @apply whitespace-no-wrap flex-shrink-0; - - transition: background-color 0.1s ease-in; - - & > .c-icon { - &:first-child { - @apply mr-12; +@layer base { + .btn-i-base { + @apply font-semibold; + @apply flex items-center justify-center; + @apply whitespace-nowrap flex-shrink-0; + + transition: background-color 0.1s ease-in; + + & > .c-icon { + &:first-child { + @apply mr-12; + } + &:last-child { + @apply ml-12; + } } - &:last-child { - @apply ml-12; - } - } - & > .kb-shortcut { - @apply font-mono font-bold; - @apply ml-8; - line-height: 1; - } + & > .kb-shortcut { + @apply font-mono font-bold; + @apply ml-8; + line-height: 1; + } - &:disabled { - /* This needs to be important to override - * any previous fade-in animations */ - opacity: 0.5 !important; - cursor: not-allowed; + &:disabled { + /* This needs to be important to override + * any previous fade-in animations */ + opacity: 0.5 !important; + cursor: not-allowed; + } } -} -.btn-i-filled { - &.btn-xs { - box-shadow: 0px 2px 4px rgba(79, 114, 205, 0.2); - &:hover { - box-shadow: 0px 2px 4px rgba(79, 114, 205, 0.4); + .btn-i-filled { + &.btn-xs { + box-shadow: 0px 2px 4px rgba(79, 114, 205, 0.2); + &:hover { + box-shadow: 0px 2px 4px rgba(79, 114, 205, 0.4); + } } - } - &.btn-s { - box-shadow: 0px 3px 5px rgba(79, 114, 205, 0.3); - &:hover { - box-shadow: 0px 3px 5px rgba(79, 114, 205, 0.5); + &.btn-s { + box-shadow: 0px 3px 5px rgba(79, 114, 205, 0.3); + &:hover { + box-shadow: 0px 3px 5px rgba(79, 114, 205, 0.5); + } } - } - &.btn-m { - box-shadow: 0px 4px 6px rgba(79, 114, 205, 0.4); - &:hover { - box-shadow: 0px 4px 6px rgba(79, 114, 205, 0.6); + &.btn-m { + box-shadow: 0px 4px 6px rgba(79, 114, 205, 0.4); + &:hover { + box-shadow: 0px 4px 6px rgba(79, 114, 205, 0.6); + } } - } - &.btn-l { - box-shadow: 0px 4px 7px rgba(79, 114, 205, 0.4); - &:hover { - box-shadow: 0px 4px 7px rgba(79, 114, 205, 0.6); + &.btn-l { + box-shadow: 0px 4px 7px rgba(79, 114, 205, 0.4); + &:hover { + box-shadow: 0px 4px 7px rgba(79, 114, 205, 0.6); + } } } -} -.btn-primary { - @apply btn-i-filled; - @apply bg-purple text-white; - @apply border-1 border-primaryBtnBorder; + .btn-primary { + @apply btn-i-filled; + @apply bg-purple text-white; + @apply border-1 border-primaryBtnBorder; - & .c-icon { - filter: var(--white-filter); - } - &:not(:disabled):not(.--disabled):hover { - @apply bg-purpleDarkened; + & .c-icon { + filter: var(--white-filter); + } + &:not(:disabled):not(.--disabled):hover { + @apply bg-purpleDarkened; + } } -} -.btn-secondary { - @apply btn-i-filled; - @apply text-purple bg-lightPurple; + .btn-secondary { + @apply btn-i-filled; + @apply text-purple bg-lightPurple; - @apply border-1 border-purple; - & > .c-icon { - filter: var(--purple-filter); - } - &:not(:disabled):not(.--disabled):hover { - @apply bg-lightPurpleDarkened; + @apply border-1 border-purple; + & > .c-icon { + filter: var(--purple-filter); + } + &:not(:disabled):not(.--disabled):hover { + @apply bg-lightPurpleDarkened; + } } -} -.btn-enhanced { - @apply btn-i-filled; - @apply bg-backgroundColorA text-textColor2; - @apply border-1 border-btnBorder; - & > .c-icon { - filter: var(--textColor2-filter); - } - &:not(:disabled):not(.--disabled):hover { - background: rgb(96, 79, 205, 0.02); - &.btn-l { - background: rgb(96, 79, 205, 0.05); - box-shadow: 0px 4px 8px rgba(79, 114, 205, 0.6); + .btn-enhanced { + @apply btn-i-filled; + @apply bg-backgroundColorA text-textColor2; + @apply border-1 border-btnBorder; + & > .c-icon { + filter: var(--textColor2-filter); + } + &:not(:disabled):not(.--disabled):hover { + background: rgb(96, 79, 205, 0.02); + &.btn-l { + background: rgb(96, 79, 205, 0.05); + box-shadow: 0px 4px 8px rgba(79, 114, 205, 0.6); + } } } -} -.btn-default { - @apply text-textColor2; - @apply border-1 border-btnBorder; - & > .c-icon { - filter: var(--textColor2-filter); - } - &:not(:disabled):not(.--disabled):hover { - background: rgba(0, 0, 0, 0.05); + .btn-default { + @apply text-textColor2; + @apply border-1 border-btnBorder; + & > .c-icon { + filter: var(--textColor2-filter); + } + &:not(:disabled):not(.--disabled):hover { + background: rgba(0, 0, 0, 0.05); + } } -} -.btn-warning { - @apply btn-i-filled; - @apply bg-warning text-white; - @apply border-1 border-warningBtnBorder; + .btn-warning { + @apply btn-i-filled; + @apply bg-warning text-white; + @apply border-1 border-warningBtnBorder; - & .c-icon { - filter: var(--white-filter); - } - &:not(:disabled):not(.--disabled):hover { - /* TODO: Darker color */ + & .c-icon { + filter: var(--white-filter); + } + &:not(:disabled):not(.--disabled):hover { + /* TODO: Darker color */ + } } -} -.btn-alert { - @apply bg-alert text-white; - @apply border-1 border-alertBtnBorder; + .btn-alert { + @apply bg-alert text-white; + @apply border-1 border-alertBtnBorder; - & .c-icon { - filter: var(--white-filter); - } - &:not(:disabled):not(.--disabled):hover { - /* TODO: Darker color */ + & .c-icon { + filter: var(--white-filter); + } + &:not(:disabled):not(.--disabled):hover { + /* TODO: Darker color */ + } } -} -.btn-link { - @apply btn-i-base; - @apply text-linkColor; - & .c-icon { - filter: var(--linkColor-filter); - height: 18px; - width: 18px; + .btn-link { + @apply btn-i-base; + @apply text-linkColor; + & .c-icon { + filter: var(--linkColor-filter); + height: 18px; + width: 18px; + } } -} -.btn-xs { - @apply btn-i-base; - height: 32px; - @apply px-16 rounded-5; - @apply text-14; + .btn-xs { + @apply btn-i-base; + height: 32px; + @apply px-16 rounded-5; + @apply text-14; - & > .c-icon { - height: 14px; - width: 14px; - } - & > .kb-shortcut { - @apply text-13; - } -} -.btn-s { - @apply btn-i-base; - height: 40px; - @apply px-16 rounded-5; - @apply text-15; - line-height: 16px; - - & > .c-icon { - height: 16px; - width: 16px; + & > .c-icon { + height: 14px; + width: 14px; + } + & > .kb-shortcut { + @apply text-13; + } } + .btn-s { + @apply btn-i-base; + height: 40px; + @apply px-16 rounded-5; + @apply text-15; + line-height: 16px; - & > .kb-shortcut { - @apply text-13; - line-height: 13px; - } -} -.btn-m { - @apply btn-i-base; - height: 48px; - @apply px-20 rounded-5; - @apply text-16; - - & > .c-icon { - height: 18px; - width: 18px; - } + & > .c-icon { + height: 16px; + width: 16px; + } - & > .kb-shortcut { - @apply text-14; + & > .kb-shortcut { + @apply text-13; + line-height: 13px; + } } -} -.btn-l { - @apply btn-i-base; - height: 56px; - @apply px-24 rounded-8; - @apply text-18; - - & > .c-icon { - height: 20px; - width: 20px; + .btn-m { + @apply btn-i-base; + height: 48px; + @apply px-20 rounded-5; + @apply text-16; + + & > .c-icon { + height: 18px; + width: 18px; + } + + & > .kb-shortcut { + @apply text-14; + } } + .btn-l { + @apply btn-i-base; + height: 56px; + @apply px-24 rounded-8; + @apply text-18; - & > .kb-shortcut { - @apply text-15; + & > .c-icon { + height: 20px; + width: 20px; + } + + & > .kb-shortcut { + @apply text-15; + } } } diff --git a/app/css/ui-kit/shapes.css b/app/css/ui-kit/shapes.css index d16f60e1d8..aa78eb7d5a 100644 --- a/app/css/ui-kit/shapes.css +++ b/app/css/ui-kit/shapes.css @@ -12,8 +12,8 @@ max-height: 170px; @apply hidden; + @apply sm:flex; @screen sm { - @apply flex; width: 17%; } @screen md { diff --git a/app/helpers/icons_helper.rb b/app/helpers/icons_helper.rb index 714b76fd77..7a71c33a35 100644 --- a/app/helpers/icons_helper.rb +++ b/app/helpers/icons_helper.rb @@ -8,10 +8,10 @@ def icon(icon, alt, role: nil, category: 'icons', css_class: nil, hex: false) if hex tag.div(class: "c-icon #{css_class} --hex") do - image_pack_tag "#{category}/#{icon}.svg", role: role, alt: alt.to_s + image_tag "#{category}/#{icon}.svg", role: role, alt: alt.to_s end else - image_pack_tag "#{category}/#{icon}.svg", + image_tag "#{category}/#{icon}.svg", role: role, alt: alt.to_s, class: "c-icon #{css_class} #{'--hex' if hex}".strip @@ -22,11 +22,11 @@ def icon(icon, alt, role: nil, category: 'icons', css_class: nil, hex: false) def track_icon(track, css_class: nil) image_tag track.icon_url, alt: track.title, - class: "c-track-icon #{css_class} --#{track.slug}" + class: "c-track-icon #{css_class} --#{track.slug}" end def exercise_icon(exercise, css_class: nil) - error_icon = asset_pack_url("media/images/graphics/missing-exercise.svg") + error_icon = image_path("graphics/missing-exercise.svg") image_tag exercise.icon_url, alt: exercise.title, diff --git a/app/helpers/react_components/common/modal.rb b/app/helpers/react_components/common/modal.rb index de142ea170..291825b42a 100644 --- a/app/helpers/react_components/common/modal.rb +++ b/app/helpers/react_components/common/modal.rb @@ -31,7 +31,7 @@ def render_in(context, *args, &block) end def to_s - super("common-modal", html: html) + super("common-modal", { html: }) end private diff --git a/app/helpers/react_components/mentoring/testimonials_list.rb b/app/helpers/react_components/mentoring/testimonials_list.rb index f7089de177..8d8c5c75af 100644 --- a/app/helpers/react_components/mentoring/testimonials_list.rb +++ b/app/helpers/react_components/mentoring/testimonials_list.rb @@ -1,7 +1,6 @@ module ReactComponents module Mentoring class TestimonialsList < ReactComponent - include Webpacker::Helper include ActionView::Helpers::AssetUrlHelper initialize_with :params diff --git a/app/helpers/react_components/react_component.rb b/app/helpers/react_components/react_component.rb index 6682b90d03..3cdad24c42 100644 --- a/app/helpers/react_components/react_component.rb +++ b/app/helpers/react_components/react_component.rb @@ -9,12 +9,10 @@ def to_s(id, data, fitted: false, wrapper_class_modifier: nil, style: nil) css_classes << '--fitted' if fitted tag.div( "", - { - class: css_classes.join(" "), - style: style, - "data-react-#{id}": true, - "data-react-data": data.to_json - } + class: css_classes.join(" "), + style:, + "data-react-#{id}": true, + "data-react-data": data.to_json ) end end diff --git a/app/javascript/images/GlobalImageStub.js b/app/images/GlobalImageStub.js similarity index 100% rename from app/javascript/images/GlobalImageStub.js rename to app/images/GlobalImageStub.js diff --git a/app/javascript/images/bg-tracks-header@2x.jpg b/app/images/bg-tracks-header@2x.jpg similarity index 100% rename from app/javascript/images/bg-tracks-header@2x.jpg rename to app/images/bg-tracks-header@2x.jpg diff --git a/app/javascript/images/favicon.png b/app/images/favicon.png similarity index 100% rename from app/javascript/images/favicon.png rename to app/images/favicon.png diff --git a/app/javascript/images/graphics/automation.svg b/app/images/graphics/automation.svg similarity index 100% rename from app/javascript/images/graphics/automation.svg rename to app/images/graphics/automation.svg diff --git a/app/javascript/images/graphics/badges.svg b/app/images/graphics/badges.svg similarity index 100% rename from app/javascript/images/graphics/badges.svg rename to app/images/graphics/badges.svg diff --git a/app/javascript/images/graphics/balloons.svg b/app/images/graphics/balloons.svg similarity index 100% rename from app/javascript/images/graphics/balloons.svg rename to app/images/graphics/balloons.svg diff --git a/app/javascript/images/graphics/blog-placeholder-article.svg b/app/images/graphics/blog-placeholder-article.svg similarity index 100% rename from app/javascript/images/graphics/blog-placeholder-article.svg rename to app/images/graphics/blog-placeholder-article.svg diff --git a/app/javascript/images/graphics/bookworm.svg b/app/images/graphics/bookworm.svg similarity index 100% rename from app/javascript/images/graphics/bookworm.svg rename to app/images/graphics/bookworm.svg diff --git a/app/javascript/images/graphics/bugs.svg b/app/images/graphics/bugs.svg similarity index 100% rename from app/javascript/images/graphics/bugs.svg rename to app/images/graphics/bugs.svg diff --git a/app/javascript/images/graphics/building.svg b/app/images/graphics/building.svg similarity index 100% rename from app/javascript/images/graphics/building.svg rename to app/images/graphics/building.svg diff --git a/app/javascript/images/graphics/community-awareness.svg b/app/images/graphics/community-awareness.svg similarity index 100% rename from app/javascript/images/graphics/community-awareness.svg rename to app/images/graphics/community-awareness.svg diff --git a/app/javascript/images/graphics/community-solutions.svg b/app/images/graphics/community-solutions.svg similarity index 100% rename from app/javascript/images/graphics/community-solutions.svg rename to app/images/graphics/community-solutions.svg diff --git a/app/javascript/images/graphics/community.svg b/app/images/graphics/community.svg similarity index 100% rename from app/javascript/images/graphics/community.svg rename to app/images/graphics/community.svg diff --git a/app/javascript/images/graphics/complete.svg b/app/images/graphics/complete.svg similarity index 100% rename from app/javascript/images/graphics/complete.svg rename to app/images/graphics/complete.svg diff --git a/app/javascript/images/graphics/confetti.svg b/app/images/graphics/confetti.svg similarity index 100% rename from app/javascript/images/graphics/confetti.svg rename to app/images/graphics/confetti.svg diff --git a/app/javascript/images/graphics/contributing-header.svg b/app/images/graphics/contributing-header.svg similarity index 100% rename from app/javascript/images/graphics/contributing-header.svg rename to app/images/graphics/contributing-header.svg diff --git a/app/javascript/images/graphics/conversation-1.svg b/app/images/graphics/conversation-1.svg similarity index 100% rename from app/javascript/images/graphics/conversation-1.svg rename to app/images/graphics/conversation-1.svg diff --git a/app/javascript/images/graphics/docs.svg b/app/images/graphics/docs.svg similarity index 100% rename from app/javascript/images/graphics/docs.svg rename to app/images/graphics/docs.svg diff --git a/app/javascript/images/graphics/donate.svg b/app/images/graphics/donate.svg similarity index 100% rename from app/javascript/images/graphics/donate.svg rename to app/images/graphics/donate.svg diff --git a/app/javascript/images/graphics/donation-superhero.svg b/app/images/graphics/donation-superhero.svg similarity index 100% rename from app/javascript/images/graphics/donation-superhero.svg rename to app/images/graphics/donation-superhero.svg diff --git a/app/javascript/images/graphics/editor.svg b/app/images/graphics/editor.svg similarity index 100% rename from app/javascript/images/graphics/editor.svg rename to app/images/graphics/editor.svg diff --git a/app/javascript/images/graphics/error-404.svg b/app/images/graphics/error-404.svg similarity index 100% rename from app/javascript/images/graphics/error-404.svg rename to app/images/graphics/error-404.svg diff --git a/app/javascript/images/graphics/error-500.svg b/app/images/graphics/error-500.svg similarity index 100% rename from app/javascript/images/graphics/error-500.svg rename to app/images/graphics/error-500.svg diff --git a/app/javascript/images/graphics/exercise.svg b/app/images/graphics/exercise.svg similarity index 100% rename from app/javascript/images/graphics/exercise.svg rename to app/images/graphics/exercise.svg diff --git a/app/javascript/images/graphics/exercises.svg b/app/images/graphics/exercises.svg similarity index 100% rename from app/javascript/images/graphics/exercises.svg rename to app/images/graphics/exercises.svg diff --git a/app/javascript/images/graphics/floating-cash.svg b/app/images/graphics/floating-cash.svg similarity index 100% rename from app/javascript/images/graphics/floating-cash.svg rename to app/images/graphics/floating-cash.svg diff --git a/app/javascript/images/graphics/forest.svg b/app/images/graphics/forest.svg similarity index 100% rename from app/javascript/images/graphics/forest.svg rename to app/images/graphics/forest.svg diff --git a/app/javascript/images/graphics/go-gopher.svg b/app/images/graphics/go-gopher.svg similarity index 100% rename from app/javascript/images/graphics/go-gopher.svg rename to app/images/graphics/go-gopher.svg diff --git a/app/javascript/images/graphics/gratitude.svg b/app/images/graphics/gratitude.svg similarity index 100% rename from app/javascript/images/graphics/gratitude.svg rename to app/images/graphics/gratitude.svg diff --git a/app/javascript/images/graphics/hacker-boy.svg b/app/images/graphics/hacker-boy.svg similarity index 100% rename from app/javascript/images/graphics/hacker-boy.svg rename to app/images/graphics/hacker-boy.svg diff --git a/app/javascript/images/graphics/hello-world.svg b/app/images/graphics/hello-world.svg similarity index 100% rename from app/javascript/images/graphics/hello-world.svg rename to app/images/graphics/hello-world.svg diff --git a/app/javascript/images/graphics/help-awareness.svg b/app/images/graphics/help-awareness.svg similarity index 100% rename from app/javascript/images/graphics/help-awareness.svg rename to app/images/graphics/help-awareness.svg diff --git a/app/javascript/images/graphics/hints.svg b/app/images/graphics/hints.svg similarity index 100% rename from app/javascript/images/graphics/hints.svg rename to app/images/graphics/hints.svg diff --git a/app/javascript/images/graphics/improve-cv.svg b/app/images/graphics/improve-cv.svg similarity index 100% rename from app/javascript/images/graphics/improve-cv.svg rename to app/images/graphics/improve-cv.svg diff --git a/app/javascript/images/graphics/improve.svg b/app/images/graphics/improve.svg similarity index 100% rename from app/javascript/images/graphics/improve.svg rename to app/images/graphics/improve.svg diff --git a/app/javascript/images/graphics/journey.svg b/app/images/graphics/journey.svg similarity index 100% rename from app/javascript/images/graphics/journey.svg rename to app/images/graphics/journey.svg diff --git a/app/javascript/images/graphics/landing-page-mentoring.svg b/app/images/graphics/landing-page-mentoring.svg similarity index 100% rename from app/javascript/images/graphics/landing-page-mentoring.svg rename to app/images/graphics/landing-page-mentoring.svg diff --git a/app/javascript/images/graphics/landing-page-top.svg b/app/images/graphics/landing-page-top.svg similarity index 100% rename from app/javascript/images/graphics/landing-page-top.svg rename to app/images/graphics/landing-page-top.svg diff --git a/app/javascript/images/graphics/laptop-man-1.svg b/app/images/graphics/laptop-man-1.svg similarity index 100% rename from app/javascript/images/graphics/laptop-man-1.svg rename to app/images/graphics/laptop-man-1.svg diff --git a/app/javascript/images/graphics/laptop-woman-1.svg b/app/images/graphics/laptop-woman-1.svg similarity index 100% rename from app/javascript/images/graphics/laptop-woman-1.svg rename to app/images/graphics/laptop-woman-1.svg diff --git a/app/javascript/images/graphics/learning-mode.svg b/app/images/graphics/learning-mode.svg similarity index 100% rename from app/javascript/images/graphics/learning-mode.svg rename to app/images/graphics/learning-mode.svg diff --git a/app/javascript/images/graphics/lightbulb.svg b/app/images/graphics/lightbulb.svg similarity index 100% rename from app/javascript/images/graphics/lightbulb.svg rename to app/images/graphics/lightbulb.svg diff --git a/app/javascript/images/graphics/mentoring-coffee.svg b/app/images/graphics/mentoring-coffee.svg similarity index 100% rename from app/javascript/images/graphics/mentoring-coffee.svg rename to app/images/graphics/mentoring-coffee.svg diff --git a/app/javascript/images/graphics/mentoring-prompt.svg b/app/images/graphics/mentoring-prompt.svg similarity index 100% rename from app/javascript/images/graphics/mentoring-prompt.svg rename to app/images/graphics/mentoring-prompt.svg diff --git a/app/javascript/images/graphics/mentoring-screen.svg b/app/images/graphics/mentoring-screen.svg similarity index 100% rename from app/javascript/images/graphics/mentoring-screen.svg rename to app/images/graphics/mentoring-screen.svg diff --git a/app/javascript/images/graphics/mentoring.svg b/app/images/graphics/mentoring.svg similarity index 100% rename from app/javascript/images/graphics/mentoring.svg rename to app/images/graphics/mentoring.svg diff --git a/app/javascript/images/graphics/missing-exercise.svg b/app/images/graphics/missing-exercise.svg similarity index 100% rename from app/javascript/images/graphics/missing-exercise.svg rename to app/images/graphics/missing-exercise.svg diff --git a/app/javascript/images/graphics/new-profile.svg b/app/images/graphics/new-profile.svg similarity index 100% rename from app/javascript/images/graphics/new-profile.svg rename to app/images/graphics/new-profile.svg diff --git a/app/javascript/images/graphics/person-celebrating.svg b/app/images/graphics/person-celebrating.svg similarity index 100% rename from app/javascript/images/graphics/person-celebrating.svg rename to app/images/graphics/person-celebrating.svg diff --git a/app/javascript/images/graphics/pointing-hand.svg b/app/images/graphics/pointing-hand.svg similarity index 100% rename from app/javascript/images/graphics/pointing-hand.svg rename to app/images/graphics/pointing-hand.svg diff --git a/app/javascript/images/graphics/practice-mode.svg b/app/images/graphics/practice-mode.svg similarity index 100% rename from app/javascript/images/graphics/practice-mode.svg rename to app/images/graphics/practice-mode.svg diff --git a/app/javascript/images/graphics/profiles-intro.svg b/app/images/graphics/profiles-intro.svg similarity index 100% rename from app/javascript/images/graphics/profiles-intro.svg rename to app/images/graphics/profiles-intro.svg diff --git a/app/javascript/images/graphics/pull-request-merge.svg b/app/images/graphics/pull-request-merge.svg similarity index 100% rename from app/javascript/images/graphics/pull-request-merge.svg rename to app/images/graphics/pull-request-merge.svg diff --git a/app/javascript/images/graphics/pull-request-open.svg b/app/images/graphics/pull-request-open.svg similarity index 100% rename from app/javascript/images/graphics/pull-request-open.svg rename to app/images/graphics/pull-request-open.svg diff --git a/app/javascript/images/graphics/pull-request-review.svg b/app/images/graphics/pull-request-review.svg similarity index 100% rename from app/javascript/images/graphics/pull-request-review.svg rename to app/images/graphics/pull-request-review.svg diff --git a/app/javascript/images/graphics/purpose.svg b/app/images/graphics/purpose.svg similarity index 100% rename from app/javascript/images/graphics/purpose.svg rename to app/images/graphics/purpose.svg diff --git a/app/javascript/images/graphics/representer.svg b/app/images/graphics/representer.svg similarity index 100% rename from app/javascript/images/graphics/representer.svg rename to app/images/graphics/representer.svg diff --git a/app/javascript/images/graphics/reputation.svg b/app/images/graphics/reputation.svg similarity index 100% rename from app/javascript/images/graphics/reputation.svg rename to app/images/graphics/reputation.svg diff --git a/app/javascript/images/graphics/rocket.svg b/app/images/graphics/rocket.svg similarity index 100% rename from app/javascript/images/graphics/rocket.svg rename to app/images/graphics/rocket.svg diff --git a/app/javascript/images/graphics/scratchpad.svg b/app/images/graphics/scratchpad.svg similarity index 100% rename from app/javascript/images/graphics/scratchpad.svg rename to app/images/graphics/scratchpad.svg diff --git a/app/javascript/images/graphics/solutions.svg b/app/images/graphics/solutions.svg similarity index 100% rename from app/javascript/images/graphics/solutions.svg rename to app/images/graphics/solutions.svg diff --git a/app/javascript/images/graphics/target.svg b/app/images/graphics/target.svg similarity index 100% rename from app/javascript/images/graphics/target.svg rename to app/images/graphics/target.svg diff --git a/app/javascript/images/graphics/tasks.svg b/app/images/graphics/tasks.svg similarity index 100% rename from app/javascript/images/graphics/tasks.svg rename to app/images/graphics/tasks.svg diff --git a/app/javascript/images/graphics/team.svg b/app/images/graphics/team.svg similarity index 100% rename from app/javascript/images/graphics/team.svg rename to app/images/graphics/team.svg diff --git a/app/javascript/images/graphics/tests-failed.svg b/app/images/graphics/tests-failed.svg similarity index 100% rename from app/javascript/images/graphics/tests-failed.svg rename to app/images/graphics/tests-failed.svg diff --git a/app/javascript/images/graphics/ux.svg b/app/images/graphics/ux.svg similarity index 100% rename from app/javascript/images/graphics/ux.svg rename to app/images/graphics/ux.svg diff --git a/app/javascript/images/graphics/wizard-modal.svg b/app/images/graphics/wizard-modal.svg similarity index 100% rename from app/javascript/images/graphics/wizard-modal.svg rename to app/images/graphics/wizard-modal.svg diff --git a/app/javascript/images/graphics/wizard-prompt.svg b/app/images/graphics/wizard-prompt.svg similarity index 100% rename from app/javascript/images/graphics/wizard-prompt.svg rename to app/images/graphics/wizard-prompt.svg diff --git a/app/javascript/images/hero-journey.svg b/app/images/hero-journey.svg similarity index 100% rename from app/javascript/images/hero-journey.svg rename to app/images/hero-journey.svg diff --git a/app/javascript/images/icons/alert-circle.svg b/app/images/icons/alert-circle.svg similarity index 100% rename from app/javascript/images/icons/alert-circle.svg rename to app/images/icons/alert-circle.svg diff --git a/app/javascript/images/icons/all-tracks.svg b/app/images/icons/all-tracks.svg similarity index 100% rename from app/javascript/images/icons/all-tracks.svg rename to app/images/icons/all-tracks.svg diff --git a/app/javascript/images/icons/arrow-left.svg b/app/images/icons/arrow-left.svg similarity index 100% rename from app/javascript/images/icons/arrow-left.svg rename to app/images/icons/arrow-left.svg diff --git a/app/javascript/images/icons/arrow-right.svg b/app/images/icons/arrow-right.svg similarity index 100% rename from app/javascript/images/icons/arrow-right.svg rename to app/images/icons/arrow-right.svg diff --git a/app/javascript/images/icons/at-symbol.svg b/app/images/icons/at-symbol.svg similarity index 100% rename from app/javascript/images/icons/at-symbol.svg rename to app/images/icons/at-symbol.svg diff --git a/app/javascript/images/icons/authoring.svg b/app/images/icons/authoring.svg similarity index 100% rename from app/javascript/images/icons/authoring.svg rename to app/images/icons/authoring.svg diff --git a/app/javascript/images/icons/automated-feedback.svg b/app/images/icons/automated-feedback.svg similarity index 100% rename from app/javascript/images/icons/automated-feedback.svg rename to app/images/icons/automated-feedback.svg diff --git a/app/javascript/images/icons/automation.svg b/app/images/icons/automation.svg similarity index 100% rename from app/javascript/images/icons/automation.svg rename to app/images/icons/automation.svg diff --git a/app/javascript/images/icons/avatar-placeholder.svg b/app/images/icons/avatar-placeholder.svg similarity index 100% rename from app/javascript/images/icons/avatar-placeholder.svg rename to app/images/icons/avatar-placeholder.svg diff --git a/app/javascript/images/icons/badge-indicator-common.svg b/app/images/icons/badge-indicator-common.svg similarity index 100% rename from app/javascript/images/icons/badge-indicator-common.svg rename to app/images/icons/badge-indicator-common.svg diff --git a/app/javascript/images/icons/badge-indicator-legendary.svg b/app/images/icons/badge-indicator-legendary.svg similarity index 100% rename from app/javascript/images/icons/badge-indicator-legendary.svg rename to app/images/icons/badge-indicator-legendary.svg diff --git a/app/javascript/images/icons/badge-indicator-rare.svg b/app/images/icons/badge-indicator-rare.svg similarity index 100% rename from app/javascript/images/icons/badge-indicator-rare.svg rename to app/images/icons/badge-indicator-rare.svg diff --git a/app/javascript/images/icons/badge-indicator-ultimate.svg b/app/images/icons/badge-indicator-ultimate.svg similarity index 100% rename from app/javascript/images/icons/badge-indicator-ultimate.svg rename to app/images/icons/badge-indicator-ultimate.svg diff --git a/app/javascript/images/icons/badges.svg b/app/images/icons/badges.svg similarity index 100% rename from app/javascript/images/icons/badges.svg rename to app/images/icons/badges.svg diff --git a/app/javascript/images/icons/blog.svg b/app/images/icons/blog.svg similarity index 100% rename from app/javascript/images/icons/blog.svg rename to app/images/icons/blog.svg diff --git a/app/javascript/images/icons/bubbly-background.svg b/app/images/icons/bubbly-background.svg similarity index 100% rename from app/javascript/images/icons/bubbly-background.svg rename to app/images/icons/bubbly-background.svg diff --git a/app/javascript/images/icons/bug.svg b/app/images/icons/bug.svg similarity index 100% rename from app/javascript/images/icons/bug.svg rename to app/images/icons/bug.svg diff --git a/app/javascript/images/icons/building-with-gradient.svg b/app/images/icons/building-with-gradient.svg similarity index 100% rename from app/javascript/images/icons/building-with-gradient.svg rename to app/images/icons/building-with-gradient.svg diff --git a/app/javascript/images/icons/building.svg b/app/images/icons/building.svg similarity index 100% rename from app/javascript/images/icons/building.svg rename to app/images/icons/building.svg diff --git a/app/javascript/images/icons/check-circle.svg b/app/images/icons/check-circle.svg similarity index 100% rename from app/javascript/images/icons/check-circle.svg rename to app/images/icons/check-circle.svg diff --git a/app/javascript/images/icons/checkmark.svg b/app/images/icons/checkmark.svg similarity index 100% rename from app/javascript/images/icons/checkmark.svg rename to app/images/icons/checkmark.svg diff --git a/app/javascript/images/icons/chevron-down.svg b/app/images/icons/chevron-down.svg similarity index 100% rename from app/javascript/images/icons/chevron-down.svg rename to app/images/icons/chevron-down.svg diff --git a/app/javascript/images/icons/chevron-right.svg b/app/images/icons/chevron-right.svg similarity index 100% rename from app/javascript/images/icons/chevron-right.svg rename to app/images/icons/chevron-right.svg diff --git a/app/javascript/images/icons/cli.svg b/app/images/icons/cli.svg similarity index 100% rename from app/javascript/images/icons/cli.svg rename to app/images/icons/cli.svg diff --git a/app/javascript/images/icons/clipboard.svg b/app/images/icons/clipboard.svg similarity index 100% rename from app/javascript/images/icons/clipboard.svg rename to app/images/icons/clipboard.svg diff --git a/app/javascript/images/icons/clock.svg b/app/images/icons/clock.svg similarity index 100% rename from app/javascript/images/icons/clock.svg rename to app/images/icons/clock.svg diff --git a/app/javascript/images/icons/close.svg b/app/images/icons/close.svg similarity index 100% rename from app/javascript/images/icons/close.svg rename to app/images/icons/close.svg diff --git a/app/javascript/images/icons/comment.svg b/app/images/icons/comment.svg similarity index 100% rename from app/javascript/images/icons/comment.svg rename to app/images/icons/comment.svg diff --git a/app/javascript/images/icons/community-solutions.svg b/app/images/icons/community-solutions.svg similarity index 100% rename from app/javascript/images/icons/community-solutions.svg rename to app/images/icons/community-solutions.svg diff --git a/app/javascript/images/icons/completed-check-circle.svg b/app/images/icons/completed-check-circle.svg similarity index 100% rename from app/javascript/images/icons/completed-check-circle.svg rename to app/images/icons/completed-check-circle.svg diff --git a/app/javascript/images/icons/concept-exercise.svg b/app/images/icons/concept-exercise.svg similarity index 100% rename from app/javascript/images/icons/concept-exercise.svg rename to app/images/icons/concept-exercise.svg diff --git a/app/javascript/images/icons/concepts.svg b/app/images/icons/concepts.svg similarity index 100% rename from app/javascript/images/icons/concepts.svg rename to app/images/icons/concepts.svg diff --git a/app/javascript/images/icons/contribute.svg b/app/images/icons/contribute.svg similarity index 100% rename from app/javascript/images/icons/contribute.svg rename to app/images/icons/contribute.svg diff --git a/app/javascript/images/icons/contributing-header.svg b/app/images/icons/contributing-header.svg similarity index 100% rename from app/javascript/images/icons/contributing-header.svg rename to app/images/icons/contributing-header.svg diff --git a/app/javascript/images/icons/contributors.svg b/app/images/icons/contributors.svg similarity index 100% rename from app/javascript/images/icons/contributors.svg rename to app/images/icons/contributors.svg diff --git a/app/javascript/images/icons/cross-circle.svg b/app/images/icons/cross-circle.svg similarity index 100% rename from app/javascript/images/icons/cross-circle.svg rename to app/images/icons/cross-circle.svg diff --git a/app/javascript/images/icons/cross.svg b/app/images/icons/cross.svg similarity index 100% rename from app/javascript/images/icons/cross.svg rename to app/images/icons/cross.svg diff --git a/app/javascript/images/icons/dashboard.svg b/app/images/icons/dashboard.svg similarity index 100% rename from app/javascript/images/icons/dashboard.svg rename to app/images/icons/dashboard.svg diff --git a/app/javascript/images/icons/docs.svg b/app/images/icons/docs.svg similarity index 100% rename from app/javascript/images/icons/docs.svg rename to app/images/icons/docs.svg diff --git a/app/javascript/images/icons/donate.svg b/app/images/icons/donate.svg similarity index 100% rename from app/javascript/images/icons/donate.svg rename to app/images/icons/donate.svg diff --git a/app/javascript/images/icons/double-checkmark.svg b/app/images/icons/double-checkmark.svg similarity index 100% rename from app/javascript/images/icons/double-checkmark.svg rename to app/images/icons/double-checkmark.svg diff --git a/app/javascript/images/icons/download.svg b/app/images/icons/download.svg similarity index 100% rename from app/javascript/images/icons/download.svg rename to app/images/icons/download.svg diff --git a/app/javascript/images/icons/edit.svg b/app/images/icons/edit.svg similarity index 100% rename from app/javascript/images/icons/edit.svg rename to app/images/icons/edit.svg diff --git a/app/javascript/images/icons/editor.svg b/app/images/icons/editor.svg similarity index 100% rename from app/javascript/images/icons/editor.svg rename to app/images/icons/editor.svg diff --git a/app/javascript/images/icons/email.svg b/app/images/icons/email.svg similarity index 100% rename from app/javascript/images/icons/email.svg rename to app/images/icons/email.svg diff --git a/app/javascript/images/icons/entry.svg b/app/images/icons/entry.svg similarity index 100% rename from app/javascript/images/icons/entry.svg rename to app/images/icons/entry.svg diff --git a/app/javascript/images/icons/exercises.svg b/app/images/icons/exercises.svg similarity index 100% rename from app/javascript/images/icons/exercises.svg rename to app/images/icons/exercises.svg diff --git a/app/javascript/images/icons/exercism-face-gradient.svg b/app/images/icons/exercism-face-gradient.svg similarity index 100% rename from app/javascript/images/icons/exercism-face-gradient.svg rename to app/images/icons/exercism-face-gradient.svg diff --git a/app/javascript/images/icons/exercism-face.svg b/app/images/icons/exercism-face.svg similarity index 100% rename from app/javascript/images/icons/exercism-face.svg rename to app/images/icons/exercism-face.svg diff --git a/app/javascript/images/icons/exercism-with-logo-black.svg b/app/images/icons/exercism-with-logo-black.svg similarity index 100% rename from app/javascript/images/icons/exercism-with-logo-black.svg rename to app/images/icons/exercism-with-logo-black.svg diff --git a/app/javascript/images/icons/external-link.svg b/app/images/icons/external-link.svg similarity index 100% rename from app/javascript/images/icons/external-link.svg rename to app/images/icons/external-link.svg diff --git a/app/javascript/images/icons/external-site-devto.svg b/app/images/icons/external-site-devto.svg similarity index 100% rename from app/javascript/images/icons/external-site-devto.svg rename to app/images/icons/external-site-devto.svg diff --git a/app/javascript/images/icons/external-site-facebook.svg b/app/images/icons/external-site-facebook.svg similarity index 100% rename from app/javascript/images/icons/external-site-facebook.svg rename to app/images/icons/external-site-facebook.svg diff --git a/app/javascript/images/icons/external-site-github.svg b/app/images/icons/external-site-github.svg similarity index 100% rename from app/javascript/images/icons/external-site-github.svg rename to app/images/icons/external-site-github.svg diff --git a/app/javascript/images/icons/external-site-linkedin.svg b/app/images/icons/external-site-linkedin.svg similarity index 100% rename from app/javascript/images/icons/external-site-linkedin.svg rename to app/images/icons/external-site-linkedin.svg diff --git a/app/javascript/images/icons/external-site-reddit.svg b/app/images/icons/external-site-reddit.svg similarity index 100% rename from app/javascript/images/icons/external-site-reddit.svg rename to app/images/icons/external-site-reddit.svg diff --git a/app/javascript/images/icons/external-site-twitter.svg b/app/images/icons/external-site-twitter.svg similarity index 100% rename from app/javascript/images/icons/external-site-twitter.svg rename to app/images/icons/external-site-twitter.svg diff --git a/app/javascript/images/icons/external-site-youtube.svg b/app/images/icons/external-site-youtube.svg similarity index 100% rename from app/javascript/images/icons/external-site-youtube.svg rename to app/images/icons/external-site-youtube.svg diff --git a/app/javascript/images/icons/failed-check-circle.svg b/app/images/icons/failed-check-circle.svg similarity index 100% rename from app/javascript/images/icons/failed-check-circle.svg rename to app/images/icons/failed-check-circle.svg diff --git a/app/javascript/images/icons/failed-cross-circle.svg b/app/images/icons/failed-cross-circle.svg similarity index 100% rename from app/javascript/images/icons/failed-cross-circle.svg rename to app/images/icons/failed-cross-circle.svg diff --git a/app/javascript/images/icons/features-declarative.svg b/app/images/icons/features-declarative.svg similarity index 100% rename from app/javascript/images/icons/features-declarative.svg rename to app/images/icons/features-declarative.svg diff --git a/app/javascript/images/icons/features-do-not-know.svg b/app/images/icons/features-do-not-know.svg similarity index 100% rename from app/javascript/images/icons/features-do-not-know.svg rename to app/images/icons/features-do-not-know.svg diff --git a/app/javascript/images/icons/features-editor.svg b/app/images/icons/features-editor.svg similarity index 100% rename from app/javascript/images/icons/features-editor.svg rename to app/images/icons/features-editor.svg diff --git a/app/javascript/images/icons/features-feedback.svg b/app/images/icons/features-feedback.svg similarity index 100% rename from app/javascript/images/icons/features-feedback.svg rename to app/images/icons/features-feedback.svg diff --git a/app/javascript/images/icons/features-fluency.svg b/app/images/icons/features-fluency.svg similarity index 100% rename from app/javascript/images/icons/features-fluency.svg rename to app/images/icons/features-fluency.svg diff --git a/app/javascript/images/icons/features-functional.svg b/app/images/icons/features-functional.svg similarity index 100% rename from app/javascript/images/icons/features-functional.svg rename to app/images/icons/features-functional.svg diff --git a/app/javascript/images/icons/features-generic.svg b/app/images/icons/features-generic.svg similarity index 100% rename from app/javascript/images/icons/features-generic.svg rename to app/images/icons/features-generic.svg diff --git a/app/javascript/images/icons/features-lazy.svg b/app/images/icons/features-lazy.svg similarity index 100% rename from app/javascript/images/icons/features-lazy.svg rename to app/images/icons/features-lazy.svg diff --git a/app/javascript/images/icons/features-local.svg b/app/images/icons/features-local.svg similarity index 100% rename from app/javascript/images/icons/features-local.svg rename to app/images/icons/features-local.svg diff --git a/app/javascript/images/icons/features-oop.svg b/app/images/icons/features-oop.svg similarity index 100% rename from app/javascript/images/icons/features-oop.svg rename to app/images/icons/features-oop.svg diff --git a/app/javascript/images/icons/features-strongly-typed.svg b/app/images/icons/features-strongly-typed.svg similarity index 100% rename from app/javascript/images/icons/features-strongly-typed.svg rename to app/images/icons/features-strongly-typed.svg diff --git a/app/javascript/images/icons/gold-star.svg b/app/images/icons/gold-star.svg similarity index 100% rename from app/javascript/images/icons/gold-star.svg rename to app/images/icons/gold-star.svg diff --git a/app/javascript/images/icons/golden-check.svg b/app/images/icons/golden-check.svg similarity index 100% rename from app/javascript/images/icons/golden-check.svg rename to app/images/icons/golden-check.svg diff --git a/app/javascript/images/icons/guidance.svg b/app/images/icons/guidance.svg similarity index 100% rename from app/javascript/images/icons/guidance.svg rename to app/images/icons/guidance.svg diff --git a/app/javascript/images/icons/guides.svg b/app/images/icons/guides.svg similarity index 100% rename from app/javascript/images/icons/guides.svg rename to app/images/icons/guides.svg diff --git a/app/javascript/images/icons/hamburger.svg b/app/images/icons/hamburger.svg similarity index 100% rename from app/javascript/images/icons/hamburger.svg rename to app/images/icons/hamburger.svg diff --git a/app/javascript/images/icons/happy-face.svg b/app/images/icons/happy-face.svg similarity index 100% rename from app/javascript/images/icons/happy-face.svg rename to app/images/icons/happy-face.svg diff --git a/app/javascript/images/icons/hello-world.svg b/app/images/icons/hello-world.svg similarity index 100% rename from app/javascript/images/icons/hello-world.svg rename to app/images/icons/hello-world.svg diff --git a/app/javascript/images/icons/hints.svg b/app/images/icons/hints.svg similarity index 100% rename from app/javascript/images/icons/hints.svg rename to app/images/icons/hints.svg diff --git a/app/javascript/images/icons/home.svg b/app/images/icons/home.svg similarity index 100% rename from app/javascript/images/icons/home.svg rename to app/images/icons/home.svg diff --git a/app/javascript/images/icons/individual-supporters.svg b/app/images/icons/individual-supporters.svg similarity index 100% rename from app/javascript/images/icons/individual-supporters.svg rename to app/images/icons/individual-supporters.svg diff --git a/app/javascript/images/icons/info-circle.svg b/app/images/icons/info-circle.svg similarity index 100% rename from app/javascript/images/icons/info-circle.svg rename to app/images/icons/info-circle.svg diff --git a/app/javascript/images/icons/instructions.svg b/app/images/icons/instructions.svg similarity index 100% rename from app/javascript/images/icons/instructions.svg rename to app/images/icons/instructions.svg diff --git a/app/javascript/images/icons/iteration.svg b/app/images/icons/iteration.svg similarity index 100% rename from app/javascript/images/icons/iteration.svg rename to app/images/icons/iteration.svg diff --git a/app/javascript/images/icons/journey.svg b/app/images/icons/journey.svg similarity index 100% rename from app/javascript/images/icons/journey.svg rename to app/images/icons/journey.svg diff --git a/app/javascript/images/icons/key-features.svg b/app/images/icons/key-features.svg similarity index 100% rename from app/javascript/images/icons/key-features.svg rename to app/images/icons/key-features.svg diff --git a/app/javascript/images/icons/keyboard.svg b/app/images/icons/keyboard.svg similarity index 100% rename from app/javascript/images/icons/keyboard.svg rename to app/images/icons/keyboard.svg diff --git a/app/javascript/images/icons/leadership-team.svg b/app/images/icons/leadership-team.svg similarity index 100% rename from app/javascript/images/icons/leadership-team.svg rename to app/images/icons/leadership-team.svg diff --git a/app/javascript/images/icons/learn-concept.svg b/app/images/icons/learn-concept.svg similarity index 100% rename from app/javascript/images/icons/learn-concept.svg rename to app/images/icons/learn-concept.svg diff --git a/app/javascript/images/icons/link.svg b/app/images/icons/link.svg similarity index 100% rename from app/javascript/images/icons/link.svg rename to app/images/icons/link.svg diff --git a/app/javascript/images/icons/loc.svg b/app/images/icons/loc.svg similarity index 100% rename from app/javascript/images/icons/loc.svg rename to app/images/icons/loc.svg diff --git a/app/javascript/images/icons/location.svg b/app/images/icons/location.svg similarity index 100% rename from app/javascript/images/icons/location.svg rename to app/images/icons/location.svg diff --git a/app/javascript/images/icons/lock-circle.svg b/app/images/icons/lock-circle.svg similarity index 100% rename from app/javascript/images/icons/lock-circle.svg rename to app/images/icons/lock-circle.svg diff --git a/app/javascript/images/icons/lock.svg b/app/images/icons/lock.svg similarity index 100% rename from app/javascript/images/icons/lock.svg rename to app/images/icons/lock.svg diff --git a/app/javascript/images/icons/logo.svg b/app/images/icons/logo.svg similarity index 100% rename from app/javascript/images/icons/logo.svg rename to app/images/icons/logo.svg diff --git a/app/javascript/images/icons/maintaining.svg b/app/images/icons/maintaining.svg similarity index 100% rename from app/javascript/images/icons/maintaining.svg rename to app/images/icons/maintaining.svg diff --git a/app/javascript/images/icons/mastery-ratio.svg b/app/images/icons/mastery-ratio.svg similarity index 100% rename from app/javascript/images/icons/mastery-ratio.svg rename to app/images/icons/mastery-ratio.svg diff --git a/app/javascript/images/icons/mentoring-challenge.svg b/app/images/icons/mentoring-challenge.svg similarity index 100% rename from app/javascript/images/icons/mentoring-challenge.svg rename to app/images/icons/mentoring-challenge.svg diff --git a/app/javascript/images/icons/mentoring-gradient.svg b/app/images/icons/mentoring-gradient.svg similarity index 100% rename from app/javascript/images/icons/mentoring-gradient.svg rename to app/images/icons/mentoring-gradient.svg diff --git a/app/javascript/images/icons/mentoring-linked.svg b/app/images/icons/mentoring-linked.svg similarity index 100% rename from app/javascript/images/icons/mentoring-linked.svg rename to app/images/icons/mentoring-linked.svg diff --git a/app/javascript/images/icons/mentoring-opportunity.svg b/app/images/icons/mentoring-opportunity.svg similarity index 100% rename from app/javascript/images/icons/mentoring-opportunity.svg rename to app/images/icons/mentoring-opportunity.svg diff --git a/app/javascript/images/icons/mentoring-soft-skills.svg b/app/images/icons/mentoring-soft-skills.svg similarity index 100% rename from app/javascript/images/icons/mentoring-soft-skills.svg rename to app/images/icons/mentoring-soft-skills.svg diff --git a/app/javascript/images/icons/mentoring-status-finished.svg b/app/images/icons/mentoring-status-finished.svg similarity index 100% rename from app/javascript/images/icons/mentoring-status-finished.svg rename to app/images/icons/mentoring-status-finished.svg diff --git a/app/javascript/images/icons/mentoring-status-in-progress.svg b/app/images/icons/mentoring-status-in-progress.svg similarity index 100% rename from app/javascript/images/icons/mentoring-status-in-progress.svg rename to app/images/icons/mentoring-status-in-progress.svg diff --git a/app/javascript/images/icons/mentoring-status-requested.svg b/app/images/icons/mentoring-status-requested.svg similarity index 100% rename from app/javascript/images/icons/mentoring-status-requested.svg rename to app/images/icons/mentoring-status-requested.svg diff --git a/app/javascript/images/icons/mentoring-unlinked.svg b/app/images/icons/mentoring-unlinked.svg similarity index 100% rename from app/javascript/images/icons/mentoring-unlinked.svg rename to app/images/icons/mentoring-unlinked.svg diff --git a/app/javascript/images/icons/mentoring.svg b/app/images/icons/mentoring.svg similarity index 100% rename from app/javascript/images/icons/mentoring.svg rename to app/images/icons/mentoring.svg diff --git a/app/javascript/images/icons/minus-circle.svg b/app/images/icons/minus-circle.svg similarity index 100% rename from app/javascript/images/icons/minus-circle.svg rename to app/images/icons/minus-circle.svg diff --git a/app/javascript/images/icons/modal.svg b/app/images/icons/modal.svg similarity index 100% rename from app/javascript/images/icons/modal.svg rename to app/images/icons/modal.svg diff --git a/app/javascript/images/icons/more-horizontal.svg b/app/images/icons/more-horizontal.svg similarity index 100% rename from app/javascript/images/icons/more-horizontal.svg rename to app/images/icons/more-horizontal.svg diff --git a/app/javascript/images/icons/more-vertical.svg b/app/images/icons/more-vertical.svg similarity index 100% rename from app/javascript/images/icons/more-vertical.svg rename to app/images/icons/more-vertical.svg diff --git a/app/javascript/images/icons/neutral-face.svg b/app/images/icons/neutral-face.svg similarity index 100% rename from app/javascript/images/icons/neutral-face.svg rename to app/images/icons/neutral-face.svg diff --git a/app/javascript/images/icons/notifications.svg b/app/images/icons/notifications.svg similarity index 100% rename from app/javascript/images/icons/notifications.svg rename to app/images/icons/notifications.svg diff --git a/app/javascript/images/icons/overview.svg b/app/images/icons/overview.svg similarity index 100% rename from app/javascript/images/icons/overview.svg rename to app/images/icons/overview.svg diff --git a/app/javascript/images/icons/partnership.svg b/app/images/icons/partnership.svg similarity index 100% rename from app/javascript/images/icons/partnership.svg rename to app/images/icons/partnership.svg diff --git a/app/javascript/images/icons/party-popper.svg b/app/images/icons/party-popper.svg similarity index 100% rename from app/javascript/images/icons/party-popper.svg rename to app/images/icons/party-popper.svg diff --git a/app/javascript/images/icons/passed-check-circle.svg b/app/images/icons/passed-check-circle.svg similarity index 100% rename from app/javascript/images/icons/passed-check-circle.svg rename to app/images/icons/passed-check-circle.svg diff --git a/app/javascript/images/icons/plus-circle.svg b/app/images/icons/plus-circle.svg similarity index 100% rename from app/javascript/images/icons/plus-circle.svg rename to app/images/icons/plus-circle.svg diff --git a/app/javascript/images/icons/plus-square.svg b/app/images/icons/plus-square.svg similarity index 100% rename from app/javascript/images/icons/plus-square.svg rename to app/images/icons/plus-square.svg diff --git a/app/javascript/images/icons/plus.svg b/app/images/icons/plus.svg similarity index 100% rename from app/javascript/images/icons/plus.svg rename to app/images/icons/plus.svg diff --git a/app/javascript/images/icons/practice-mode.svg b/app/images/icons/practice-mode.svg similarity index 100% rename from app/javascript/images/icons/practice-mode.svg rename to app/images/icons/practice-mode.svg diff --git a/app/javascript/images/icons/principles.svg b/app/images/icons/principles.svg similarity index 100% rename from app/javascript/images/icons/principles.svg rename to app/images/icons/principles.svg diff --git a/app/javascript/images/icons/pronouns.svg b/app/images/icons/pronouns.svg similarity index 100% rename from app/javascript/images/icons/pronouns.svg rename to app/images/icons/pronouns.svg diff --git a/app/javascript/images/icons/publish.svg b/app/images/icons/publish.svg similarity index 100% rename from app/javascript/images/icons/publish.svg rename to app/images/icons/publish.svg diff --git a/app/javascript/images/icons/pulse.svg b/app/images/icons/pulse.svg similarity index 100% rename from app/javascript/images/icons/pulse.svg rename to app/images/icons/pulse.svg diff --git a/app/javascript/images/icons/purpose.svg b/app/images/icons/purpose.svg similarity index 100% rename from app/javascript/images/icons/purpose.svg rename to app/images/icons/purpose.svg diff --git a/app/javascript/images/icons/queue.svg b/app/images/icons/queue.svg similarity index 100% rename from app/javascript/images/icons/queue.svg rename to app/images/icons/queue.svg diff --git a/app/javascript/images/icons/reputation.svg b/app/images/icons/reputation.svg similarity index 100% rename from app/javascript/images/icons/reputation.svg rename to app/images/icons/reputation.svg diff --git a/app/javascript/images/icons/reset.svg b/app/images/icons/reset.svg similarity index 100% rename from app/javascript/images/icons/reset.svg rename to app/images/icons/reset.svg diff --git a/app/javascript/images/icons/roadmap.svg b/app/images/icons/roadmap.svg similarity index 100% rename from app/javascript/images/icons/roadmap.svg rename to app/images/icons/roadmap.svg diff --git a/app/javascript/images/icons/run-tests-prompt.svg b/app/images/icons/run-tests-prompt.svg similarity index 100% rename from app/javascript/images/icons/run-tests-prompt.svg rename to app/images/icons/run-tests-prompt.svg diff --git a/app/javascript/images/icons/run-tests.svg b/app/images/icons/run-tests.svg similarity index 100% rename from app/javascript/images/icons/run-tests.svg rename to app/images/icons/run-tests.svg diff --git a/app/javascript/images/icons/sad-exercism.svg b/app/images/icons/sad-exercism.svg similarity index 100% rename from app/javascript/images/icons/sad-exercism.svg rename to app/images/icons/sad-exercism.svg diff --git a/app/javascript/images/icons/sad-face.svg b/app/images/icons/sad-face.svg similarity index 100% rename from app/javascript/images/icons/sad-face.svg rename to app/images/icons/sad-face.svg diff --git a/app/javascript/images/icons/sample-exercise-butterflies.svg b/app/images/icons/sample-exercise-butterflies.svg similarity index 100% rename from app/javascript/images/icons/sample-exercise-butterflies.svg rename to app/images/icons/sample-exercise-butterflies.svg diff --git a/app/javascript/images/icons/sample-exercise-rocket.svg b/app/images/icons/sample-exercise-rocket.svg similarity index 100% rename from app/javascript/images/icons/sample-exercise-rocket.svg rename to app/images/icons/sample-exercise-rocket.svg diff --git a/app/javascript/images/icons/sample-track.svg b/app/images/icons/sample-track.svg similarity index 100% rename from app/javascript/images/icons/sample-track.svg rename to app/images/icons/sample-track.svg diff --git a/app/javascript/images/icons/scratchpad.svg b/app/images/icons/scratchpad.svg similarity index 100% rename from app/javascript/images/icons/scratchpad.svg rename to app/images/icons/scratchpad.svg diff --git a/app/javascript/images/icons/search.svg b/app/images/icons/search.svg similarity index 100% rename from app/javascript/images/icons/search.svg rename to app/images/icons/search.svg diff --git a/app/javascript/images/icons/send.svg b/app/images/icons/send.svg similarity index 100% rename from app/javascript/images/icons/send.svg rename to app/images/icons/send.svg diff --git a/app/javascript/images/icons/settings.svg b/app/images/icons/settings.svg similarity index 100% rename from app/javascript/images/icons/settings.svg rename to app/images/icons/settings.svg diff --git a/app/javascript/images/icons/share-with-gradient.svg b/app/images/icons/share-with-gradient.svg similarity index 100% rename from app/javascript/images/icons/share-with-gradient.svg rename to app/images/icons/share-with-gradient.svg diff --git a/app/javascript/images/icons/sharp-squiggle.svg b/app/images/icons/sharp-squiggle.svg similarity index 100% rename from app/javascript/images/icons/sharp-squiggle.svg rename to app/images/icons/sharp-squiggle.svg diff --git a/app/javascript/images/icons/skipped-check-circle.svg b/app/images/icons/skipped-check-circle.svg similarity index 100% rename from app/javascript/images/icons/skipped-check-circle.svg rename to app/images/icons/skipped-check-circle.svg diff --git a/app/javascript/images/icons/spinner.svg b/app/images/icons/spinner.svg similarity index 100% rename from app/javascript/images/icons/spinner.svg rename to app/images/icons/spinner.svg diff --git a/app/javascript/images/icons/staff-team.svg b/app/images/icons/staff-team.svg similarity index 100% rename from app/javascript/images/icons/staff-team.svg rename to app/images/icons/staff-team.svg diff --git a/app/javascript/images/icons/star.svg b/app/images/icons/star.svg similarity index 100% rename from app/javascript/images/icons/star.svg rename to app/images/icons/star.svg diff --git a/app/javascript/images/icons/starred.svg b/app/images/icons/starred.svg similarity index 100% rename from app/javascript/images/icons/starred.svg rename to app/images/icons/starred.svg diff --git a/app/javascript/images/icons/stars.svg b/app/images/icons/stars.svg similarity index 100% rename from app/javascript/images/icons/stars.svg rename to app/images/icons/stars.svg diff --git a/app/javascript/images/icons/steady-learning-pattern.svg b/app/images/icons/steady-learning-pattern.svg similarity index 100% rename from app/javascript/images/icons/steady-learning-pattern.svg rename to app/images/icons/steady-learning-pattern.svg diff --git a/app/javascript/images/icons/students.svg b/app/images/icons/students.svg similarity index 100% rename from app/javascript/images/icons/students.svg rename to app/images/icons/students.svg diff --git a/app/javascript/images/icons/supporter.svg b/app/images/icons/supporter.svg similarity index 100% rename from app/javascript/images/icons/supporter.svg rename to app/images/icons/supporter.svg diff --git a/app/javascript/images/icons/supporters.svg b/app/images/icons/supporters.svg similarity index 100% rename from app/javascript/images/icons/supporters.svg rename to app/images/icons/supporters.svg diff --git a/app/javascript/images/icons/target.svg b/app/images/icons/target.svg similarity index 100% rename from app/javascript/images/icons/target.svg rename to app/images/icons/target.svg diff --git a/app/javascript/images/icons/task-action-create.svg b/app/images/icons/task-action-create.svg similarity index 100% rename from app/javascript/images/icons/task-action-create.svg rename to app/images/icons/task-action-create.svg diff --git a/app/javascript/images/icons/task-action-fix.svg b/app/images/icons/task-action-fix.svg similarity index 100% rename from app/javascript/images/icons/task-action-fix.svg rename to app/images/icons/task-action-fix.svg diff --git a/app/javascript/images/icons/task-action-improve.svg b/app/images/icons/task-action-improve.svg similarity index 100% rename from app/javascript/images/icons/task-action-improve.svg rename to app/images/icons/task-action-improve.svg diff --git a/app/javascript/images/icons/task-action-proofread.svg b/app/images/icons/task-action-proofread.svg similarity index 100% rename from app/javascript/images/icons/task-action-proofread.svg rename to app/images/icons/task-action-proofread.svg diff --git a/app/javascript/images/icons/task-action-sync.svg b/app/images/icons/task-action-sync.svg similarity index 100% rename from app/javascript/images/icons/task-action-sync.svg rename to app/images/icons/task-action-sync.svg diff --git a/app/javascript/images/icons/task-action.svg b/app/images/icons/task-action.svg similarity index 100% rename from app/javascript/images/icons/task-action.svg rename to app/images/icons/task-action.svg diff --git a/app/javascript/images/icons/task-knowledge.svg b/app/images/icons/task-knowledge.svg similarity index 100% rename from app/javascript/images/icons/task-knowledge.svg rename to app/images/icons/task-knowledge.svg diff --git a/app/javascript/images/icons/task-module-concept.svg b/app/images/icons/task-module-concept.svg similarity index 100% rename from app/javascript/images/icons/task-module-concept.svg rename to app/images/icons/task-module-concept.svg diff --git a/app/javascript/images/icons/task-module-generator.svg b/app/images/icons/task-module-generator.svg similarity index 100% rename from app/javascript/images/icons/task-module-generator.svg rename to app/images/icons/task-module-generator.svg diff --git a/app/javascript/images/icons/task-module-representer.svg b/app/images/icons/task-module-representer.svg similarity index 100% rename from app/javascript/images/icons/task-module-representer.svg rename to app/images/icons/task-module-representer.svg diff --git a/app/javascript/images/icons/task-module.svg b/app/images/icons/task-module.svg similarity index 100% rename from app/javascript/images/icons/task-module.svg rename to app/images/icons/task-module.svg diff --git a/app/javascript/images/icons/task-size.svg b/app/images/icons/task-size.svg similarity index 100% rename from app/javascript/images/icons/task-size.svg rename to app/images/icons/task-size.svg diff --git a/app/javascript/images/icons/task-type-ci.svg b/app/images/icons/task-type-ci.svg similarity index 100% rename from app/javascript/images/icons/task-type-ci.svg rename to app/images/icons/task-type-ci.svg diff --git a/app/javascript/images/icons/task-type-coding.svg b/app/images/icons/task-type-coding.svg similarity index 100% rename from app/javascript/images/icons/task-type-coding.svg rename to app/images/icons/task-type-coding.svg diff --git a/app/javascript/images/icons/task-type-content.svg b/app/images/icons/task-type-content.svg similarity index 100% rename from app/javascript/images/icons/task-type-content.svg rename to app/images/icons/task-type-content.svg diff --git a/app/javascript/images/icons/task-type-docker.svg b/app/images/icons/task-type-docker.svg similarity index 100% rename from app/javascript/images/icons/task-type-docker.svg rename to app/images/icons/task-type-docker.svg diff --git a/app/javascript/images/icons/task-type-docs.svg b/app/images/icons/task-type-docs.svg similarity index 100% rename from app/javascript/images/icons/task-type-docs.svg rename to app/images/icons/task-type-docs.svg diff --git a/app/javascript/images/icons/task-type.svg b/app/images/icons/task-type.svg similarity index 100% rename from app/javascript/images/icons/task-type.svg rename to app/images/icons/task-type.svg diff --git a/app/javascript/images/icons/tasks.svg b/app/images/icons/tasks.svg similarity index 100% rename from app/javascript/images/icons/tasks.svg rename to app/images/icons/tasks.svg diff --git a/app/javascript/images/icons/team.svg b/app/images/icons/team.svg similarity index 100% rename from app/javascript/images/icons/team.svg rename to app/images/icons/team.svg diff --git a/app/javascript/images/icons/test-results.svg b/app/images/icons/test-results.svg similarity index 100% rename from app/javascript/images/icons/test-results.svg rename to app/images/icons/test-results.svg diff --git a/app/javascript/images/icons/testimonials.svg b/app/images/icons/testimonials.svg similarity index 100% rename from app/javascript/images/icons/testimonials.svg rename to app/images/icons/testimonials.svg diff --git a/app/javascript/images/icons/tests.svg b/app/images/icons/tests.svg similarity index 100% rename from app/javascript/images/icons/tests.svg rename to app/images/icons/tests.svg diff --git a/app/javascript/images/icons/thumb-up-white-on-green.svg b/app/images/icons/thumb-up-white-on-green.svg similarity index 100% rename from app/javascript/images/icons/thumb-up-white-on-green.svg rename to app/images/icons/thumb-up-white-on-green.svg diff --git a/app/javascript/images/icons/tracks.svg b/app/images/icons/tracks.svg similarity index 100% rename from app/javascript/images/icons/tracks.svg rename to app/images/icons/tracks.svg diff --git a/app/javascript/images/icons/transparent.svg b/app/images/icons/transparent.svg similarity index 100% rename from app/javascript/images/icons/transparent.svg rename to app/images/icons/transparent.svg diff --git a/app/javascript/images/icons/trash.svg b/app/images/icons/trash.svg similarity index 100% rename from app/javascript/images/icons/trash.svg rename to app/images/icons/trash.svg diff --git a/app/javascript/images/icons/unlock.svg b/app/images/icons/unlock.svg similarity index 100% rename from app/javascript/images/icons/unlock.svg rename to app/images/icons/unlock.svg diff --git a/app/javascript/images/icons/unsubmitted-code.svg b/app/images/icons/unsubmitted-code.svg similarity index 100% rename from app/javascript/images/icons/unsubmitted-code.svg rename to app/images/icons/unsubmitted-code.svg diff --git a/app/javascript/images/icons/up-to-date.svg b/app/images/icons/up-to-date.svg similarity index 100% rename from app/javascript/images/icons/up-to-date.svg rename to app/images/icons/up-to-date.svg diff --git a/app/javascript/images/icons/updates.svg b/app/images/icons/updates.svg similarity index 100% rename from app/javascript/images/icons/updates.svg rename to app/images/icons/updates.svg diff --git a/app/javascript/images/icons/velocity.svg b/app/images/icons/velocity.svg similarity index 100% rename from app/javascript/images/icons/velocity.svg rename to app/images/icons/velocity.svg diff --git a/app/javascript/images/icons/video.svg b/app/images/icons/video.svg similarity index 100% rename from app/javascript/images/icons/video.svg rename to app/images/icons/video.svg diff --git a/app/javascript/images/icons/views.svg b/app/images/icons/views.svg similarity index 100% rename from app/javascript/images/icons/views.svg rename to app/images/icons/views.svg diff --git a/app/javascript/images/icons/warning.svg b/app/images/icons/warning.svg similarity index 100% rename from app/javascript/images/icons/warning.svg rename to app/images/icons/warning.svg diff --git a/app/javascript/images/partners/chicago.svg b/app/images/partners/chicago.svg similarity index 100% rename from app/javascript/images/partners/chicago.svg rename to app/images/partners/chicago.svg diff --git a/app/javascript/images/partners/gobridge.svg b/app/images/partners/gobridge.svg similarity index 100% rename from app/javascript/images/partners/gobridge.svg rename to app/images/partners/gobridge.svg diff --git a/app/javascript/images/partners/mozilla.svg b/app/images/partners/mozilla.svg similarity index 100% rename from app/javascript/images/partners/mozilla.svg rename to app/images/partners/mozilla.svg diff --git a/app/javascript/images/partners/packt.svg b/app/images/partners/packt.svg similarity index 100% rename from app/javascript/images/partners/packt.svg rename to app/images/partners/packt.svg diff --git a/app/javascript/images/screenshots/concept-map.png b/app/images/screenshots/concept-map.png similarity index 100% rename from app/javascript/images/screenshots/concept-map.png rename to app/images/screenshots/concept-map.png diff --git a/app/javascript/images/screenshots/exercise-about.png b/app/images/screenshots/exercise-about.png similarity index 100% rename from app/javascript/images/screenshots/exercise-about.png rename to app/images/screenshots/exercise-about.png diff --git a/app/javascript/images/screenshots/go-concepts.jpg b/app/images/screenshots/go-concepts.jpg similarity index 100% rename from app/javascript/images/screenshots/go-concepts.jpg rename to app/images/screenshots/go-concepts.jpg diff --git a/app/javascript/images/screenshots/landing-page-exercise.png b/app/images/screenshots/landing-page-exercise.png similarity index 100% rename from app/javascript/images/screenshots/landing-page-exercise.png rename to app/images/screenshots/landing-page-exercise.png diff --git a/app/javascript/images/screenshots/mentoring.jpg b/app/images/screenshots/mentoring.jpg similarity index 100% rename from app/javascript/images/screenshots/mentoring.jpg rename to app/images/screenshots/mentoring.jpg diff --git a/app/javascript/images/screenshots/mentoring.svg b/app/images/screenshots/mentoring.svg similarity index 100% rename from app/javascript/images/screenshots/mentoring.svg rename to app/images/screenshots/mentoring.svg diff --git a/app/javascript/images/team/charles.jpg b/app/images/team/charles.jpg similarity index 100% rename from app/javascript/images/team/charles.jpg rename to app/images/team/charles.jpg diff --git a/app/javascript/images/team/erik.jpg b/app/images/team/erik.jpg similarity index 100% rename from app/javascript/images/team/erik.jpg rename to app/images/team/erik.jpg diff --git a/app/javascript/images/team/jeremy-walker.jpg b/app/images/team/jeremy-walker.jpg similarity index 100% rename from app/javascript/images/team/jeremy-walker.jpg rename to app/images/team/jeremy-walker.jpg diff --git a/app/javascript/images/team/karlo.jpg b/app/images/team/karlo.jpg similarity index 100% rename from app/javascript/images/team/karlo.jpg rename to app/images/team/karlo.jpg diff --git a/app/javascript/images/team/katrina.jpg b/app/images/team/katrina.jpg similarity index 100% rename from app/javascript/images/team/katrina.jpg rename to app/images/team/katrina.jpg diff --git a/app/javascript/images/team/nicole.jpg b/app/images/team/nicole.jpg similarity index 100% rename from app/javascript/images/team/nicole.jpg rename to app/images/team/nicole.jpg diff --git a/app/javascript/images/team/taiyab.jpg b/app/images/team/taiyab.jpg similarity index 100% rename from app/javascript/images/team/taiyab.jpg rename to app/images/team/taiyab.jpg diff --git a/app/javascript/images/world-map.png b/app/images/world-map.png similarity index 100% rename from app/javascript/images/world-map.png rename to app/images/world-map.png diff --git a/app/javascript/components/IconWithError.tsx b/app/javascript/.config/.keep similarity index 100% rename from app/javascript/components/IconWithError.tsx rename to app/javascript/.config/.keep diff --git a/app/javascript/__mocks__/fileMock.js b/app/javascript/__mocks__/fileMock.js new file mode 100644 index 0000000000..0e56c5b5f7 --- /dev/null +++ b/app/javascript/__mocks__/fileMock.js @@ -0,0 +1 @@ +module.exports = 'test-file-stub' diff --git a/app/javascript/channels/index.ts b/app/javascript/channels/index.ts index 0cfcf74919..550276986d 100644 --- a/app/javascript/channels/index.ts +++ b/app/javascript/channels/index.ts @@ -1,5 +1,5 @@ // Load all the channels within this directory and all subdirectories. // Channel files must be named *_channel.js. -const channels = require.context('.', true, /_channel\.js$/) +const channels = require('./**.*') channels.keys().forEach(channels) diff --git a/app/javascript/components/common/GraphicalIcon.tsx b/app/javascript/components/common/GraphicalIcon.tsx index bbb7811f53..9cda54e27f 100644 --- a/app/javascript/components/common/GraphicalIcon.tsx +++ b/app/javascript/components/common/GraphicalIcon.tsx @@ -1,4 +1,5 @@ import React from 'react' +import { assetUrl } from '../../utils/assets' export function GraphicalIcon({ icon, @@ -15,7 +16,7 @@ export function GraphicalIcon({ (className) => className.length > 0 ) - const iconFile = require(`../../images/${category || 'icons'}/${icon}.svg`) + const iconFile = assetUrl(`${category || 'icons'}/${icon}.svg`) return hex ? (
diff --git a/app/javascript/components/common/Icon.tsx b/app/javascript/components/common/Icon.tsx index dbce18af9c..fb1b0b5a53 100644 --- a/app/javascript/components/common/Icon.tsx +++ b/app/javascript/components/common/Icon.tsx @@ -1,4 +1,5 @@ import * as React from 'react' +import { assetUrl } from '../../utils/assets' export function Icon({ icon, @@ -15,8 +16,7 @@ export function Icon({ if (className !== undefined) { classNames.push(className) } - // eslint-disable-next-line @typescript-eslint/no-var-requires - const iconFile = require(`../../images/${category}/${icon}.svg`) + const iconFile = assetUrl(`${category}/${icon}.svg`) return {alt} } diff --git a/app/javascript/components/common/imageErrorHandler.tsx b/app/javascript/components/common/imageErrorHandler.tsx index f1b9febf17..c733cbca62 100644 --- a/app/javascript/components/common/imageErrorHandler.tsx +++ b/app/javascript/components/common/imageErrorHandler.tsx @@ -1,4 +1,6 @@ -const errorIcon = require(`../../images/graphics/missing-exercise.svg`) +import { assetUrl } from '../../utils/assets' + +const errorIcon = assetUrl('graphics/missing-exercise.svg') export const imageErrorHandler = ( e: React.SyntheticEvent diff --git a/app/javascript/components/journey/overview/learning-section/TrackSummary.tsx b/app/javascript/components/journey/overview/learning-section/TrackSummary.tsx index 4aa0bf8eef..f724dbbf79 100644 --- a/app/javascript/components/journey/overview/learning-section/TrackSummary.tsx +++ b/app/javascript/components/journey/overview/learning-section/TrackSummary.tsx @@ -39,7 +39,7 @@ export const TrackSummary = ({

{timeFormat(track.startedAt, 'DD MMM YYYY')}

-

When you joined the {track.title} Track

+
When you joined the {track.title} Track

You started working through the {track.title} Track{' '} {fromNow(track.startedAt)}. @@ -50,11 +50,11 @@ export const TrackSummary = ({

{track.numCompletedMentoringDiscussions}

-

+

Mentoring{' '} {pluralize('session', track.numCompletedMentoringDiscussions)}{' '} completed -

+

You have{' '} diff --git a/app/javascript/components/modals/exercise-update-modal/DiffViewer.tsx b/app/javascript/components/modals/exercise-update-modal/DiffViewer.tsx index d228325c57..1480fbd9fc 100644 --- a/app/javascript/components/modals/exercise-update-modal/DiffViewer.tsx +++ b/app/javascript/components/modals/exercise-update-modal/DiffViewer.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useRef } from 'react' import { Diff2HtmlUI } from 'diff2html/lib/ui/js/diff2html-ui-base.js' -import * as HighlightJS from 'highlight.js' +import HighlightJS from 'highlight.js' export const DiffViewer = ({ diff }: { diff: string }): JSX.Element => { const contentRef = useRef(null) diff --git a/app/javascript/components/track/ExerciseMakersButton.tsx b/app/javascript/components/track/ExerciseMakersButton.tsx index 4de36b13be..78050d2216 100644 --- a/app/javascript/components/track/ExerciseMakersButton.tsx +++ b/app/javascript/components/track/ExerciseMakersButton.tsx @@ -1,7 +1,6 @@ import React, { useState } from 'react' import pluralize from 'pluralize' import { Avatar } from '../common' -import { User } from '../types' import { ExerciseMakersModal } from '../modals/ExerciseMakersModal' type Links = { @@ -29,8 +28,8 @@ export const ExerciseMakersButton = ({ onClick={() => setOpen(!open)} >

- {avatarUrls.map((avatarUrl) => ( - + {avatarUrls.map((avatarUrl, i) => ( + ))}
diff --git a/app/javascript/config/.manifest.json.d.ts b/app/javascript/config/.manifest.json.d.ts new file mode 100755 index 0000000000..c24aa82719 --- /dev/null +++ b/app/javascript/config/.manifest.json.d.ts @@ -0,0 +1,6 @@ +interface Manifest { + [key: string]: string +} + +declare const manifest: Manifest +export default manifest diff --git a/app/javascript/config/config.json.d.ts b/app/javascript/config/config.json.d.ts new file mode 100755 index 0000000000..26ea8901b7 --- /dev/null +++ b/app/javascript/config/config.json.d.ts @@ -0,0 +1,6 @@ +interface Config { + [key: string]: any +} + +declare const config: Config +export default config diff --git a/app/javascript/esbuild.js b/app/javascript/esbuild.js new file mode 100755 index 0000000000..f127c484f1 --- /dev/null +++ b/app/javascript/esbuild.js @@ -0,0 +1,47 @@ +#!/usr/bin/env node +const fs = require('fs') +const ImportGlobPlugin = require('esbuild-plugin-import-glob') +const browserslistToEsbuild = require('browserslist-to-esbuild') + +function build() { + const env = require('./.config/env.json') + require('esbuild') + .build({ + entryPoints: [ + './app/javascript/packs/application.tsx', + './app/javascript/packs/core.tsx', + './app/javascript/packs/internal.tsx', + ...(process.env.RAILS_ENV === 'test' + ? ['./app/javascript/packs/test.tsx'] + : []), + ], + bundle: true, + sourcemap: true, + format: 'esm', + splitting: true, + minify: process.env.NODE_ENV === 'production', + watch: process.argv.includes('--watch'), + outdir: '.built-assets', + tsconfig: './tsconfig.json', + target: browserslistToEsbuild(), + define: { + // TODO: move bugsnag API key into config + 'process.env.BUGSNAG_API_KEY': '"938ae3d231c5455e5c6597de1b1467af"', + 'process.env.WEBSITE_ASSETS_HOST': `"${env['website_assets_host']}"`, + }, + plugins: [ImportGlobPlugin.default()], + }) + .catch(() => process.exit(1)) +} + +const intervalID = setInterval(() => { + // Wait for the env config file to exists before building + fs.access('app/javascript/.config/env.json', fs.constants.F_OK, (err) => { + if (err) { + return + } + + clearInterval(intervalID) + build() + }) +}, 100) diff --git a/app/javascript/packs/application.tsx b/app/javascript/packs/application.tsx index 747f7002a7..188ba4ec96 100644 --- a/app/javascript/packs/application.tsx +++ b/app/javascript/packs/application.tsx @@ -1,226 +1,6 @@ -import 'tailwindcss/base' -import 'tailwindcss/components' -import 'tailwindcss/utilities' import 'focus-visible' - -import '../../css/application' -import '../../css/layout' - -import '../../css/ui-kit/inputs' -import '../../css/ui-kit/shapes' -import '../../css/ui-kit/buttons' -import '../../css/ui-kit/tracks' -import '../../css/ui-kit/animations' -import '../../css/ui-kit/effects' - -import '../../css/tooltips/generic' -import '../../css/tooltips/base' -import '../../css/tooltips/mentoring-link' -import '../../css/tooltips/concept' -import '../../css/tooltips/user' -import '../../css/tooltips/exercise' -import '../../css/tooltips/student' -import '../../css/tooltips/task' - -import '../../css/components/textblock' -import '../../css/components/settings-photo-form' -import '../../css/components/financial-amount' -import '../../css/components/automated-feedback' -import '../../css/components/share-button' -import '../../css/components/social-icon' -import '../../css/components/blog-post' -import '../../css/components/donations-form' -import '../../css/components/toast' -import '../../css/components/contributions-summary' -import '../../css/components/progress' -import '../../css/components/site-update' -import '../../css/components/site-footer' -import '../../css/components/site-header' -import '../../css/components/community-rank-tag' -import '../../css/components/track-breadcrumbs' -import '../../css/components/contributing/header' -import '../../css/components/header-with-bg' -import '../../css/components/makers-button' -import '../../css/components/avatar-selector' -import '../../css/components/badge' -import '../../css/components/bg-img' -import '../../css/components/code-pane' -import '../../css/components/concept' -import '../../css/components/concept-icon' -import '../../css/components/concept-progress-bar' -import '../../css/components/copy-text-to-clipboard' -import '../../css/components/details' -import '../../css/components/combo-button' -import '../../css/components/exercise-header' -import '../../css/components/flash' -import '../../css/components/icon' -import '../../css/components/iteration-summary' -import '../../css/components/accordion-section' -import '../../css/components/underline' -import '../../css/components/docs-main-nav' -import '../../css/components/docs-side-nav' -import '../../css/components/docs-tracks-list' -import '../../css/components/iterations-footer' -import '../../css/components/solution-iterations' -import '../../css/components/loading-overlay' -import '../../css/components/loading-suspense' - -import '../../css/components/share-panel' -import '../../css/components/split-pane' -import '../../css/components/heading-with-count' -import '../../css/components/notification' -import '../../css/components/prominent-link' -import '../../css/components/reputation' -import '../../css/components/primary-reputation' -import '../../css/components/tab' -import '../../css/components/tab-2' -import '../../css/components/textual-content' -import '../../css/components/tracks-list' -import '../../css/components/pagination' -import '../../css/components/modal' -import '../../css/components/radio' -import '../../css/components/checkbox' -import '../../css/components/select' -import '../../css/components/single-select' -import '../../css/components/multiple-select' -import '../../css/components/track-select' - -import '../../css/components/user_activity' -import '../../css/components/search-bar' -import '../../css/components/community-solution' -import '../../css/components/community-solutions-list' -import '../../css/components/iteration-processing-status' -import '../../css/components/notification-dot' - -import '../../css/components/mentor/header' -import '../../css/components/mentor/solution-row' -import '../../css/components/mentor/discussion' - -import '../../css/components/track/header' -import '../../css/components/track/concept-nav' -import '../../css/components/track/concept-map' -import '../../css/components/iteration-pane' -import '../../css/components/explainer' -import '../../css/components/markdown-editor' -import '../../css/components/mentor-discussion-summary' -import '../../css/components/mentor-track-selector' -import '../../css/components/tag' -import '../../css/components/difficulty-tag' -import '../../css/components/exercise-status-tag' -import '../../css/components/exercise-type-tag' -import '../../css/components/divider' -import '../../css/components/faces' -import '../../css/components/exercise-dot' -import '../../css/components/results-zone' -import '../../css/components/introducer' -import '../../css/components/profile-header' -import '../../css/components/track-filter' -import '../../css/components/mentor-discussion-widget' -import '../../css/components/completed-exercise-progress' - -import '../../css/components/widgets/exercise' -import '../../css/components/mentor-discussion-post-editor' -import '../../css/components/test-run' -import '../../css/components/alert' -import '../../css/components/diff' -import '../../css/components/cli-walkthrough' -import '../../css/components/cli-walkthrough-button' - -import '../../css/modals/bug-report' -import '../../css/modals/donations-form' -import '../../css/modals/editor-hints' -import '../../css/modals/automated-feedback' -import '../../css/modals/generic-confirmation' -import '../../css/modals/generic-destructive' -import '../../css/modals/donation-confirmation' -import '../../css/modals/badge' -import '../../css/modals/update-exercise' -import '../../css/modals/makers' -import '../../css/modals/test-run' -import '../../css/modals/activate-track-mode' -import '../../css/modals/crop-avatar' -import '../../css/modals/profile-first-time' -import '../../css/modals/completed-tutorial-exercise' -import '../../css/modals/completed-exercise' -import '../../css/modals/publish-exercise' -import '../../css/modals/mentoring-sessions' -import '../../css/modals/confirm-finish-student-mentor-discussion' -import '../../css/modals/finish-student-mentor-discussion' -import '../../css/modals/welcome-to-v3' -import '../../css/modals/become-mentor' -import '../../css/modals/change-mentor-tracks' -import '../../css/modals/select-exercise-for-mentoring' -import '../../css/modals/testimonial' -import '../../css/modals/change-published-iteration' -import '../../css/modals/unpublish-solution' -import '../../css/modals/cli-walkthrough' - -import '../../css/dropdowns/generic-menu' -import '../../css/dropdowns/share' -import '../../css/dropdowns/notifications' -import '../../css/dropdowns/reputation' -import '../../css/dropdowns/request-mentoring' -import '../../css/dropdowns/open-editor-button' - -import '../../css/pages/partners/gdn' -import '../../css/pages/hiring' -import '../../css/pages/about' -import '../../css/pages/team' -import '../../css/pages/individual_supporters' -import '../../css/pages/organisation_supporters' -import '../../css/pages/organisation_supporter' -import '../../css/pages/editor' -import '../../css/pages/notifications' -import '../../css/pages/blog' -import '../../css/pages/blog-post' -import '../../css/pages/donate' -import '../../css/pages/landing' -import '../../css/pages/settings' -import '../../css/pages/contributing-dashboard' -import '../../css/pages/contributing-contributors' -import '../../css/pages/contributing-tasks' -import '../../css/pages/auth' -import '../../css/pages/dashboard' -import '../../css/pages/docs-show' -import '../../css/pages/docs-index' -import '../../css/pages/docs-tracks' -import '../../css/pages/onboarding' -import '../../css/pages/profile-intro' -import '../../css/pages/profile-new' -import '../../css/pages/profile' -import '../../css/pages/profile-badges' -import '../../css/pages/profile-solutions' -import '../../css/pages/profile-contributions' -import '../../css/pages/profile-testimonials' -import '../../css/pages/track-shared-index' -import '../../css/pages/concepts-index' -import '../../css/pages/concept-show' -import '../../css/pages/exercise-show' -import '../../css/pages/exercise-mentoring' -import '../../css/pages/exercises-index' -import '../../css/pages/iterations-index' -import '../../css/pages/community-solutions-index' -import '../../css/pages/community-solution-show' -import '../../css/pages/track-index' -import '../../css/pages/track-show' -import '../../css/pages/track-about' -import '../../css/pages/mentoring/external-request' -import '../../css/pages/mentoring/external' -import '../../css/pages/mentoring/inbox' -import '../../css/pages/mentoring/queue' -import '../../css/pages/mentoring/testimonials' -import '../../css/pages/maintaining/dashboard' -import '../../css/pages/maintaining/track' -import '../../css/pages/journey' -import '../../css/pages/journey/overview' -import '../../css/pages/journey/solutions' -import '../../css/pages/journey/reputation' -import '../../css/pages/journey/badges' - import 'tippy.js/animations/shift-away-subtle.css' import 'tippy.js/dist/svg-arrow.css' -import '../../css/highlighters/highlightjs-light' -import '../../css/highlighters/highlightjs-dark' import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only' import React, { lazy, Suspense } from 'react' @@ -597,9 +377,6 @@ document.addEventListener('turbo:load', () => { highlightAll() }) -const images = require.context('../images', true) -const imagePath = (name: any) => images(name) - // object.entries polyfill if (!Object.entries) { Object.entries = function (obj: any) { diff --git a/app/javascript/packs/internal.tsx b/app/javascript/packs/internal.tsx index 5cb4ddd912..7efa779426 100644 --- a/app/javascript/packs/internal.tsx +++ b/app/javascript/packs/internal.tsx @@ -1,7 +1,5 @@ import 'easymde/dist/easymde.min.css' -require('channels') - import React from 'react' import { initReact } from '../utils/react-bootloader.jsx' diff --git a/app/javascript/utils/assets.ts b/app/javascript/utils/assets.ts new file mode 100644 index 0000000000..cabcf367bb --- /dev/null +++ b/app/javascript/utils/assets.ts @@ -0,0 +1,5 @@ +import manifest from '../.config/manifest.json' + +export function assetUrl(baseUrl: string): string { + return `${process.env.WEBSITE_ASSETS_HOST}/${manifest[baseUrl]}` +} diff --git a/app/models/blog_post.rb b/app/models/blog_post.rb index f0845380b8..c265507a38 100644 --- a/app/models/blog_post.rb +++ b/app/models/blog_post.rb @@ -1,6 +1,5 @@ class BlogPost < ApplicationRecord include ActionView::Helpers::AssetUrlHelper - include Webpacker::Helper extend FriendlyId friendly_id :slug, use: [:history] @@ -32,10 +31,11 @@ def to_param end def image_url - attributes['image_url'].presence || asset_pack_url( - "media/images/graphics/blog-placeholder-article.svg", - host: Rails.application.config.action_controller.asset_host - ) + attributes['image_url'].presence || + [ + Rails.application.config.action_controller.asset_host, + compute_asset_path("graphics/blog-placeholder-article.svg") + ].compact.join('/') end # TODO: Guarantee all posts have descriptions instead diff --git a/app/models/concerns/is_paramaterised_sti.rb b/app/models/concerns/is_paramaterised_sti.rb index e1ad363288..796ff54db3 100644 --- a/app/models/concerns/is_paramaterised_sti.rb +++ b/app/models/concerns/is_paramaterised_sti.rb @@ -58,8 +58,7 @@ module IsParamaterisedSTI extend ActiveSupport::Concern include ActionView::Helpers::SanitizeHelper - include ActionView::Helpers::AssetUrlHelper - include Webpacker::Helper + include Propshaft::Helper extend Mandate::Memoize included do @@ -136,7 +135,7 @@ def non_rendered_attributes def text I18n.t( "#{i18n_category}.#{i18n_key}.#{version}", - i18n_params.transform_values { |v| sanitize(v.to_s) } + **i18n_params.transform_values { |v| sanitize(v.to_s) } ).strip end diff --git a/app/models/submission/file.rb b/app/models/submission/file.rb index f06110c74e..2a19c81fec 100644 --- a/app/models/submission/file.rb +++ b/app/models/submission/file.rb @@ -3,7 +3,7 @@ class Submission::File < ApplicationRecord attr_writer :content - URI_REGEX = %r{s3://(?[a-z0-9-]+)/(?.*)}.freeze + URI_REGEX = %r{s3://(?[a-z0-9-]+)/(?.*)} before_create do self.uri = "s3://#{Exercism.config.aws_submissions_bucket}/#{Rails.env}/storage/#{SecureRandom.compact_uuid}" diff --git a/app/models/user.rb b/app/models/user.rb index 121cf649f0..611d899ffb 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -29,25 +29,25 @@ class User < ApplicationRecord has_many :activities, class_name: "User::Activity", dependent: :destroy has_many :notifications, dependent: :destroy has_many :mentor_discussions, foreign_key: :mentor_id, - inverse_of: :mentor, - dependent: :destroy, - class_name: "Mentor::Discussion" + inverse_of: :mentor, + dependent: :destroy, + class_name: "Mentor::Discussion" has_many :mentor_discussion_posts, inverse_of: :author, - dependent: :destroy, - class_name: "Mentor::DiscussionPost" + dependent: :destroy, + class_name: "Mentor::DiscussionPost" has_many :mentor_testimonials, foreign_key: :mentor_id, - inverse_of: :mentor, - dependent: :destroy, - class_name: "Mentor::Testimonial" + inverse_of: :mentor, + dependent: :destroy, + class_name: "Mentor::Testimonial" has_many :provided_testimonials, foreign_key: :student_id, - inverse_of: :student, - dependent: :destroy, - class_name: "Mentor::Testimonial" + inverse_of: :student, + dependent: :destroy, + class_name: "Mentor::Testimonial" has_many :student_relationships, class_name: "Mentor::StudentRelationship", - foreign_key: :mentor_id, inverse_of: :mentor, dependent: :destroy + foreign_key: :mentor_id, inverse_of: :mentor, dependent: :destroy has_many :mentor_relationships, class_name: "Mentor::StudentRelationship", - foreign_key: :student_id, inverse_of: :student, dependent: :destroy + foreign_key: :student_id, inverse_of: :student, dependent: :destroy has_many :reputation_tokens, class_name: "User::ReputationToken", dependent: :destroy has_many :reputation_periods, class_name: "User::ReputationPeriod", dependent: :destroy diff --git a/app/models/user/notification.rb b/app/models/user/notification.rb index a6bb54d2b9..6457f5f70a 100644 --- a/app/models/user/notification.rb +++ b/app/models/user/notification.rb @@ -66,6 +66,13 @@ def non_cacheable_rendering_data } end + def image_url + [ + Rails.application.config.action_controller.asset_host, + compute_asset_path(image_path) + ].compact.join('/') + end + private memoize def type diff --git a/app/models/user/notifications/added_to_contributors_page_notification.rb b/app/models/user/notifications/added_to_contributors_page_notification.rb index 6b4ebe552d..5957207a1a 100644 --- a/app/models/user/notifications/added_to_contributors_page_notification.rb +++ b/app/models/user/notifications/added_to_contributors_page_notification.rb @@ -13,11 +13,8 @@ def image_type :icon end - def image_url - asset_pack_url( - "media/images/icons/contributors.svg", - host: Rails.application.config.action_controller.asset_host - ) + def image_path + "icons/contributors.svg" end def guard_params diff --git a/app/models/user/notifications/nudge_to_request_mentoring_notification.rb b/app/models/user/notifications/nudge_to_request_mentoring_notification.rb index d91945eac2..689d5d53fe 100644 --- a/app/models/user/notifications/nudge_to_request_mentoring_notification.rb +++ b/app/models/user/notifications/nudge_to_request_mentoring_notification.rb @@ -9,11 +9,8 @@ def image_type :icon end - def image_url - asset_pack_url( - "media/images/icons/mentoring-gradient.svg", - host: Rails.application.config.action_controller.asset_host - ) + def image_path + "icons/mentoring-gradient.svg" end def guard_params diff --git a/app/models/user/reputation_token.rb b/app/models/user/reputation_token.rb index e49eafa3c6..d860909ca8 100644 --- a/app/models/user/reputation_token.rb +++ b/app/models/user/reputation_token.rb @@ -87,12 +87,12 @@ def non_cacheable_rendering_data def cacheable_rendering_data data = { - uuid: uuid, - value: value, - text: text, - icon_url: icon_url, - internal_url: internal_url, - external_url: external_url, + uuid:, + value:, + text:, + icon_url:, + internal_url:, + external_url:, created_at: created_at.iso8601 } @@ -109,10 +109,10 @@ def cacheable_rendering_data def icon_url return exercise.icon_url if exercise - asset_pack_url( - "media/images/graphics/#{icon_name}.svg", - host: Rails.application.config.action_controller.asset_host - ) + [ + Rails.application.config.action_controller.asset_host, + compute_asset_path("graphics/#{icon_name}.svg") + ].compact.join('/') end # To be overriden in children classes diff --git a/app/serializers/serialize_contributor.rb b/app/serializers/serialize_contributor.rb index 7c6d86abf3..27d62a44c7 100644 --- a/app/serializers/serialize_contributor.rb +++ b/app/serializers/serialize_contributor.rb @@ -1,6 +1,11 @@ class SerializeContributor include Mandate + # TODO: figure out why mandate doesn't work for this class + def self.call(...) + new(...).() + end + def initialize(user, rank:, contextual_data:) @user = user @rank = rank diff --git a/app/serializers/serialize_contributors.rb b/app/serializers/serialize_contributors.rb index 1478c447c1..cf82d2ee79 100644 --- a/app/serializers/serialize_contributors.rb +++ b/app/serializers/serialize_contributors.rb @@ -1,6 +1,11 @@ class SerializeContributors include Mandate + # TODO: figure out why mandate doesn't work for this class + def self.call(...) + new(...).() + end + def initialize(users, starting_rank:, contextual_data:) @users = users @starting_rank = starting_rank diff --git a/app/serializers/serialize_student.rb b/app/serializers/serialize_student.rb index 59e6d2eebe..aa60251344 100644 --- a/app/serializers/serialize_student.rb +++ b/app/serializers/serialize_student.rb @@ -1,6 +1,11 @@ class SerializeStudent include Mandate + # TODO: figure out why mandate doesn't work for this class + def self.call(...) + new(...).() + end + def initialize(student, mentor, user_track:, relationship:, anonymous_mode:) @student = student @mentor = mentor @@ -23,9 +28,9 @@ def call is_favorited: !!relationship&.favorited?, is_blocked: !!relationship&.blocked_by_mentor?, track_objectives: user_track&.objectives.to_s, - num_total_discussions: num_total_discussions, + num_total_discussions:, num_discussions_with_mentor: relationship&.num_discussions.to_i, - links: links + links: } end diff --git a/app/views/devise/registrations/new.html.haml b/app/views/devise/registrations/new.html.haml index eebedda61e..fe2727eb9c 100644 --- a/app/views/devise/registrations/new.html.haml +++ b/app/views/devise/registrations/new.html.haml @@ -5,8 +5,10 @@ = icon "exercism-with-logo-black", "Exercism's Logo" %p.tagline Code practice and mentorship for everyone - = link_to omniauth_authorize_path(:user, :github), + = button_to omniauth_authorize_path(:user, :github), + form_class: "github-btn", class: "btn-enhanced btn-l github-btn", + method: :post, data: { turbo: false } do = graphical_icon 'external-site-github' Sign Up with GitHub diff --git a/app/views/devise/sessions/new.html.haml b/app/views/devise/sessions/new.html.haml index 711ea70739..1979094e3f 100644 --- a/app/views/devise/sessions/new.html.haml +++ b/app/views/devise/sessions/new.html.haml @@ -6,8 +6,10 @@ %p.tagline Code practice and mentorship for everyone - = link_to omniauth_authorize_path(:user, :github), - class: "btn-enhanced btn-l github-btn", + = button_to omniauth_authorize_path(:user, :github), + form_class: "github-btn", + class: "btn-enhanced btn-l", + method: :post, data: { turbo: false } do = graphical_icon 'external-site-github' Log In with GitHub diff --git a/app/views/journey/_hero.html.haml b/app/views/journey/_hero.html.haml index b5bb8c5d78..2a9d59079e 100644 --- a/app/views/journey/_hero.html.haml +++ b/app/views/journey/_hero.html.haml @@ -1,7 +1,7 @@ %header.hero .lg-container.container .background - = image_pack_tag("hero-journey.svg", role: :presentation) + = image_tag("hero-journey.svg", role: :presentation) .bottom .content diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 466f7baf38..85515e424b 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -6,13 +6,16 @@ -# - unless user_signed_in? %meta{ name: "viewport", content: "width=device-width, initial-scale=1" } - = stylesheet_packs_with_chunks_tag(*css_packs, media: 'all', 'data-turbo-track': 'reload', 'data-turbo-eval': false) - = javascript_packs_with_chunks_tag('core', 'data-turbo-track': 'reload', 'data-turbo-eval': false) - = javascript_packs_with_chunks_tag(*js_packs, 'data-turbo-track': 'reload', 'data-turbo-eval': false) - = javascript_packs_with_chunks_tag(*deferred_js_packs, - 'data-turbo-track': 'reload', - 'data-turbo-eval': false, - defer: true) + = stylesheet_link_tag "application", "data-turbo-track": "reload" + = stylesheet_link_tag "internal", "data-turbo-track": "reload" + = stylesheet_link_tag "website", "data-turbo-track": "reload" + + = javascript_include_tag('core', type: :module, 'data-turbo-track': 'reload', 'data-turbo-eval': false) + - js_packs.each do |pack| + = javascript_include_tag(pack, type: :module, 'data-turbo-track': 'reload', 'data-turbo-eval': false) + + - deferred_js_packs.each do |pack| + = javascript_include_tag(pack, type: :module, 'data-turbo-track': 'reload', 'data-turbo-eval': false, defer: true) // TODO - Remove any unused weights %link{ href: "https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Source+Code+Pro:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,900;1,200;1,300;1,400;1,500;1,600;1,700;1,900&display=swap", rel: "stylesheet" } diff --git a/app/views/pages/index.html.haml b/app/views/pages/index.html.haml index 08e56f2597..4669b517eb 100644 --- a/app/views/pages/index.html.haml +++ b/app/views/pages/index.html.haml @@ -73,9 +73,9 @@ .track-icons.sm:ml-16 - @tracks.sort_by { rand }[0, 3].each do |track| = track_icon(track) - .font-semibold.text-textColor7.ml-16.whitespace-no-wrap +#{sample[:num_tracks]} more + .font-semibold.text-textColor7.ml-16.whitespace-nowrap +#{sample[:num_tracks]} more - = image_pack_tag "screenshots/landing-page-exercise.png", alt: "", role: :presentation, category: :graphics, class: "main-graphic lg:max-w-1-2 lg:ml-80 mt-32 lg:mt-96 shadow-lgZ1" + = image_tag "screenshots/landing-page-exercise.png", alt: "", role: :presentation, category: :graphics, class: "main-graphic lg:max-w-1-2 lg:ml-80 mt-32 lg:mt-96 shadow-lgZ1" .features.grid.grid-cols-1.md:grid-cols-3.gap-x-80.gap-y-32 .feature @@ -107,7 +107,7 @@ %p.text-p-xlarge Discover new and exciting ways to approach an exercise by getting mentored on it. Become more familiar with the conventions, idioms and opinions of a particular programming language. - = image_pack_tag "screenshots/mentoring.jpg", role: :presentation, class: "main-graphic mb-60 shadow-lgZ1" + = image_tag "screenshots/mentoring.jpg", role: :presentation, class: "main-graphic mb-60 shadow-lgZ1" .flex.flex-col.items-center %h3.text-h2 Why mentoring? diff --git a/app/views/pages/organisation_supporters.html.haml b/app/views/pages/organisation_supporters.html.haml index ab2d1b4d4f..183e9ad5f4 100644 --- a/app/views/pages/organisation_supporters.html.haml +++ b/app/views/pages/organisation_supporters.html.haml @@ -23,7 +23,7 @@ .md-container.mb-48 .cta.top-cta.flex.flex-col.lg:flex-row.lg:items-center.border-gradient.py-24.px-24.lg:px-40 - = image_pack_tag "team/jeremy-walker.jpg", alt: "Photo of Jeremy Walker", class: 'mb-12 md:mb-0 md:mr-24 rounded-100' + = image_tag "team/jeremy-walker.jpg", alt: "Photo of Jeremy Walker", class: 'mb-12 md:mb-0 md:mr-24 rounded-100' .text %h2.text-h4.mb-4 Want to discuss how you can help Exercism? %p.text-p-large @@ -107,7 +107,7 @@ = render ViewComponents::ProminentLink.new("See all of our #{@num_individual_supporters} individual supporters", individual_supporters_page_path) .cta.flex.flex-col.lg:flex-row.lg:items-center.border-gradient.py-24.px-24.lg:px-40 - = image_pack_tag "team/jeremy-walker.jpg", alt: "Photo of Jeremy Walker", class: 'mb-12 md:mb-0 md:mr-24 rounded-100' + = image_tag "team/jeremy-walker.jpg", alt: "Photo of Jeremy Walker", class: 'mb-12 md:mb-0 md:mr-24 rounded-100' .text %h2.text-h4.mb-4 Want to discuss how you can help Exercism? %p.text-p-large diff --git a/app/views/pages/team.html.haml b/app/views/pages/team.html.haml index 0904b88883..9abe89d4bd 100644 --- a/app/views/pages/team.html.haml +++ b/app/views/pages/team.html.haml @@ -20,7 +20,7 @@ .flex.flex-col.items-center.mb-28.md:mb-0 %hr.c-divider.mb-32 - = image_pack_tag "world-map.png", alt: "A world map containing avatars of Exercism contributors", class: "map w-100" + = image_tag "world-map.png", alt: "A world map containing avatars of Exercism contributors", class: "map w-100" %article .md-container @@ -38,7 +38,7 @@ .grid.grid-cols-1.md:grid-cols-2.gap-16.md:gap-32 .person - = image_pack_tag "team/katrina.jpg", alt: "An image of Katrina", class: "avatar" + = image_tag "team/katrina.jpg", alt: "An image of Katrina", class: "avatar" .details %h3 = link_to "Katrina Owen", "https://kytrinyx.com" @@ -61,7 +61,7 @@ %span Twitter .person - = image_pack_tag "team/jeremy-walker.jpg", alt: "An image of Jeremy Walker", class: "avatar" + = image_tag "team/jeremy-walker.jpg", alt: "An image of Jeremy Walker", class: "avatar" .details %h3 = link_to "Jeremy Walker", "https://ihid.info" @@ -91,7 +91,7 @@ .grid.grid-cols-1.md:grid-cols-2.gap-16.md:gap-32 .person - = image_pack_tag "team/erik.jpg", alt: "An image of Erik Schierboom", class: "avatar" + = image_tag "team/erik.jpg", alt: "An image of Erik Schierboom", class: "avatar" .details %h3 = link_to "Erik Schierboom", "https://twitter.com/ErikSchierboom" @@ -112,7 +112,7 @@ %span Twitter .person - = image_pack_tag "team/karlo.jpg", alt: "An image of Karlo Soriano", class: "avatar" + = image_tag "team/karlo.jpg", alt: "An image of Karlo Soriano", class: "avatar" .details %h3 = link_to "Karlo Soriano", "https://twitter.com/kntsoriano" @@ -133,7 +133,7 @@ = graphical_icon "external-site-twitter" %span Twitter .person - = image_pack_tag "team/taiyab.jpg", alt: "An image of Taiyab Raja", class: "avatar" + = image_tag "team/taiyab.jpg", alt: "An image of Taiyab Raja", class: "avatar" .details %h3 = link_to "Taiyab Raja", "https://taiyab.co.uk/" @@ -161,12 +161,12 @@ .grid.grid-cols-1.md:grid-cols-2.gap-16.md:gap-32 .person - = image_pack_tag "team/nicole.jpg", alt: "An image of Nicole Chalmers", class: "avatar" + = image_tag "team/nicole.jpg", alt: "An image of Nicole Chalmers", class: "avatar" .details %h3 Nicole Chalmers %p Nicole is the Head of Product at #{link_to 'Kaido', 'https://kaido.org'}. She spent two years as Head of Product for Exercism, guiding us from v1 to v2, and helping set the principles and ideas that still drive Exercism today. .person - = image_pack_tag "team/charles.jpg", alt: "An image of Charles Care", class: "avatar" + = image_tag "team/charles.jpg", alt: "An image of Charles Care", class: "avatar" .details %h3 Charles Care %p Charles was part of the team that built Exercism v2, working specifically on the server-side code and infrastructure. He helped build out the first version of our automated mentoring platform, and Github integration. diff --git a/app/views/partners/gobridge.html.haml b/app/views/partners/gobridge.html.haml index a47986b6cb..9ad41ae7db 100644 --- a/app/views/partners/gobridge.html.haml +++ b/app/views/partners/gobridge.html.haml @@ -64,7 +64,7 @@ = graphical_icon "arrow-right" = link_to track_concepts_path('go'), class: "concepts-map" do - = image_pack_tag "screenshots/go-concepts.jpg" + = image_tag "screenshots/go-concepts.jpg" %section.contributing-section .lg-container.flex.flex-col.items-center diff --git a/app/views/profiles/_header.html.haml b/app/views/profiles/_header.html.haml index b2a45b8d74..e5c38d1f54 100644 --- a/app/views/profiles/_header.html.haml +++ b/app/views/profiles/_header.html.haml @@ -35,7 +35,7 @@ - user.featured_badges.each do |badge| .c-badge .c-badge-medallion{ class: "--#{badge.rarity}" } - = icon(badge.icon, alt: "Badge: #{badge.name}") + = icon(badge.icon, "Badge: #{badge.name}") - if user.roles.present? .tags diff --git a/app/views/profiles/badges.html.haml b/app/views/profiles/badges.html.haml index bfe094d954..1a3bfb5a38 100644 --- a/app/views/profiles/badges.html.haml +++ b/app/views/profiles/badges.html.haml @@ -13,7 +13,7 @@ .summary - %w[common rare ultimate legendary].each do |rarity| - count = @rarities[rarity].to_i - .block{ class: rarity } + .section{ class: rarity } = graphical_icon "badge-indicator-#{rarity}" .count= count .info diff --git a/app/views/tracks/about.html.haml b/app/views/tracks/about.html.haml index 80caf47fae..bf1b885165 100644 --- a/app/views/tracks/about.html.haml +++ b/app/views/tracks/about.html.haml @@ -82,7 +82,7 @@ = render ViewComponents::ProminentLink.new("See all #{@track.title} exercises on Exercism", track_exercises_path(@track)) - = image_pack_tag "screenshots/exercise-about.png", role: :presentation, class: 'hidden lg:block' + = image_tag "screenshots/exercise-about.png", role: :presentation, class: 'hidden lg:block' = render "tracks/about/key_features", track: @track = render "tracks/about/concepts", track: @track diff --git a/app/views/tracks/about/_concepts.html.haml b/app/views/tracks/about/_concepts.html.haml index d894c7f015..1c607374aa 100644 --- a/app/views/tracks/about/_concepts.html.haml +++ b/app/views/tracks/about/_concepts.html.haml @@ -8,6 +8,6 @@ %h2.text-center A taste of the concepts you’ll cover %hr.c-divider - = image_pack_tag "screenshots/concept-map.png", role: :presentation, class: "screenshot" + = image_tag "screenshots/concept-map.png", role: :presentation, class: "screenshot" = render ViewComponents::ProminentLink.new("See all the concepts for #{track.title}", track_concepts_path(track)) diff --git a/bin/monitor-manifest b/bin/monitor-manifest new file mode 100755 index 0000000000..3b8535cc06 --- /dev/null +++ b/bin/monitor-manifest @@ -0,0 +1,34 @@ +#!/usr/bin/env ruby + +require 'listen' + +# Write the manifest to allow dynamically loading the images from JS +# using the correct digest +def write_manifest + File.write( + Rails.root / 'app' / 'javascript' / '.config' / 'manifest.json', + Propshaft::Assembly.new(Rails.application.config.assets).load_path.manifest + .to_json + ) +end + +# Write a subset of the Exercism config settings to a JSON file +# to allow using those settings in JS +def write_env + File.write( + Rails.root / 'app' / 'javascript' / '.config' / 'env.json', + Exercism.config.to_h.slice(:website_assets_host).to_json + ) +end + +def write_files + write_manifest + write_env +end + +# Ensure that the files are written when starting +write_files + +listener = Listen.to(Rails.root / 'app' / 'images') { write_files } +listener.start +sleep diff --git a/bin/webpack b/bin/webpack deleted file mode 100755 index 1031168d01..0000000000 --- a/bin/webpack +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env ruby - -ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development" -ENV["NODE_ENV"] ||= "development" - -require "pathname" -ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", - Pathname.new(__FILE__).realpath) - -require "bundler/setup" - -require "webpacker" -require "webpacker/webpack_runner" - -APP_ROOT = File.expand_path("..", __dir__) -Dir.chdir(APP_ROOT) do - Webpacker::WebpackRunner.run(ARGV) -end diff --git a/bin/webpack-dev-server b/bin/webpack-dev-server deleted file mode 100755 index dd9662737a..0000000000 --- a/bin/webpack-dev-server +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env ruby - -ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development" -ENV["NODE_ENV"] ||= "development" - -require "pathname" -ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", - Pathname.new(__FILE__).realpath) - -require "bundler/setup" - -require "webpacker" -require "webpacker/dev_server_runner" - -APP_ROOT = File.expand_path("..", __dir__) -Dir.chdir(APP_ROOT) do - Webpacker::DevServerRunner.run(ARGV) -end diff --git a/config/anycable.yml b/config/anycable.yml index 3226ab3725..b79ef756db 100644 --- a/config/anycable.yml +++ b/config/anycable.yml @@ -30,12 +30,54 @@ default: &default # Turn on/off access logs ("Started..." and "Finished...") redis_url: "<%= Exercism.config.anycable_redis_url %>" rpc_host: "<%= Exercism.config.anycable_rpc_host %>" -development: &development - <<: *default +development: + # TODO: enable once anycable support Ruby 3.1 + # <<: *default + + access_logs_disabled: false + # Persist "dirty" session between RPC calls (might be required for apps using stimulus_reflex <3.0) + # persistent_session_enabled: true + # This is the host and the port to run AnyCable RPC server on. + # You must configure your WebSocket server to connect to it, e.g.: + # $ anycable-go --rpc-host=":50051" + + # Whether to enable gRPC level logging or not log_grpc: false + debug: false + # Use Redis to broadcast messages to AnyCable server + broadcast_adapter: redis + + # Use the same channel name for WebSocket server, e.g.: + # $ anycable-go --redis-channel="__anycable__" + redis_channel: "__anycable__" + + redis_url: "<%= Exercism.config.anycable_redis_url %>" + rpc_host: "<%= Exercism.config.anycable_rpc_host %>" + production: - <<: *default + # TODO: enable once anycable support Ruby 3.1 + # <<: *default + + access_logs_disabled: false + # Persist "dirty" session between RPC calls (might be required for apps using stimulus_reflex <3.0) + # persistent_session_enabled: true + # This is the host and the port to run AnyCable RPC server on. + # You must configure your WebSocket server to connect to it, e.g.: + # $ anycable-go --rpc-host=":50051" + + # Whether to enable gRPC level logging or not log_grpc: false + debug: false + + # Use Redis to broadcast messages to AnyCable server + broadcast_adapter: redis + + # Use the same channel name for WebSocket server, e.g.: + # $ anycable-go --redis-channel="__anycable__" + redis_channel: "__anycable__" + + redis_url: "<%= Exercism.config.anycable_redis_url %>" + rpc_host: "<%= Exercism.config.anycable_rpc_host %>" diff --git a/config/application.rb b/config/application.rb index c69d9ddec3..1226a35081 100644 --- a/config/application.rb +++ b/config/application.rb @@ -1,26 +1,14 @@ require_relative 'boot' -require "rails" - -# Pick the frameworks you want: -require "active_model/railtie" -require "active_job/railtie" -require "active_record/railtie" -require "active_storage/engine" -require "action_controller/railtie" -require "action_mailer/railtie" -require "action_mailbox/engine" -require "action_text/engine" -require "action_view/railtie" -require "action_cable/engine" -require "rails/test_unit/railtie" - -# Remove Rails things we don't use -# require "sprockets/railtie" +require "rails/all" + +# Require the gems listed in Gemfile, including any gems +# you've limited to :test, :development, or :production. Bundler.require(*Rails.groups) + module Website class Application < Rails::Application - config.load_defaults 6.0 + config.load_defaults 7.0 config.active_job.queue_adapter = :sidekiq diff --git a/config/boot.rb b/config/boot.rb index e81a8698be..b9e460cef3 100644 --- a/config/boot.rb +++ b/config/boot.rb @@ -1,5 +1,4 @@ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) require 'bundler/setup' # Set up gems listed in the Gemfile. - require 'bootsnap/setup' # Speed up boot time by caching expensive operations. diff --git a/config/database.yml b/config/database.yml index 132c1a7cc0..1c4714a96b 100644 --- a/config/database.yml +++ b/config/database.yml @@ -5,7 +5,6 @@ default: &default pool: 50 username: exercism password: exercism - socket: <%= Exercism.config.mysql_socket %> timeout: 5000 host: <%= Exercism.config.mysql_master_endpoint %> diff --git a/config/environments/development.rb b/config/environments/development.rb index ca853a63d5..2b6a37da77 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -1,3 +1,5 @@ +require "active_support/core_ext/integer/time" + Rails.application.configure do # Specify AnyCable WebSocket server URL to use by JS client config.after_initialize do @@ -19,6 +21,9 @@ # Show full error reports. config.consider_all_requests_local = true + # Enable server timing + config.server_timing = true + # Enable/disable caching. By default caching is disabled. # Run rails dev:cache to toggle caching. if Rails.root.join('tmp', 'caching-dev.txt').exist? @@ -46,6 +51,12 @@ # Print deprecation notices to the Rails logger. config.active_support.deprecation = :log + # Raise exceptions for disallowed deprecations. + config.active_support.disallowed_deprecation = :raise + + # Tell Active Support which deprecation messages to disallow. + config.active_support.disallowed_deprecation_warnings = [] + # Raise an error on page load if there are pending migrations. config.active_record.migration_error = :page_load @@ -53,7 +64,10 @@ config.active_record.verbose_query_logs = true # Raises error for missing translations. - # config.action_view.raise_on_missing_translations = true + # config.i18n.raise_on_missing_translations = true + + # Annotate rendered view with file names. + # config.action_view.annotate_rendered_view_with_filenames = true # Use an evented file watcher to asynchronously detect changes in source code, # routes, locales, etc. diff --git a/config/environments/production.rb b/config/environments/production.rb index fafac61678..69979c4f9e 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -1,3 +1,5 @@ +require "active_support/core_ext/integer/time" + Rails.application.configure do # Specify AnyCable WebSocket server URL to use by JS client config.after_initialize do @@ -15,7 +17,6 @@ config.eager_load = true # Full error reports are disabled and caching is turned on. - # TODO: Revert this to remove error reports config.consider_all_requests_local = false config.action_controller.perform_caching = true @@ -44,7 +45,7 @@ # Use the lowest log level to ensure availability of diagnostic information # when problems arise. - config.log_level = :debug + config.log_level = :info config.colorize_logging = false # Prepend all log lines with the following tags. @@ -65,10 +66,10 @@ # Enable locale fallbacks for I18n (makes lookups for any locale fall back to # the I18n.default_locale when a translation cannot be found). - config.i18n.fallbacks = [I18n.default_locale] + config.i18n.fallbacks = true - # Send deprecation notices to registered listeners. - config.active_support.deprecation = :notify + # Don't log any deprecations. + config.active_support.report_deprecations = false # Use default logging formatter so that PID and timestamp are not suppressed. config.log_formatter = ::Logger::Formatter.new @@ -81,9 +82,6 @@ # Do not dump schema after migrations. config.active_record.dump_schema_after_migration = false - # TODO: Remove this before going live - config.active_record.verbose_query_logs = true - # Inserts middleware to perform automatic connection switching. # The `database_selector` hash is used to pass options to the DatabaseSelector # middleware. The `delay` is used to determine how long to wait after a write diff --git a/config/environments/test.rb b/config/environments/test.rb index 6dd5261086..ec29896756 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -1,3 +1,5 @@ +require "active_support/core_ext/integer/time" + # The test environment is used exclusively to run your application's # test suite. You never need to work with it otherwise. Remember that # your test database is "scratch space" for the test suite and is wiped @@ -6,12 +8,12 @@ Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. - config.cache_classes = false + config.cache_classes = true - # Do not eager load code on boot. This avoids loading your whole application - # just for the purpose of running a single test. If you are using a tool that - # preloads Rails for running tests, you may have to set it to true. - config.eager_load = false + # Eager loading loads your whole application. When running a single test locally, + # this probably isn't necessary. It's a good idea to do in a continuous integration + # system, or in some way before deploying your code. + config.eager_load = ENV["EXERCISM_CI"].present? # Configure public file server for tests with Cache-Control for performance. config.public_file_server.enabled = true @@ -43,8 +45,17 @@ # Print deprecation notices to the stderr. config.active_support.deprecation = :stderr + # Raise exceptions for disallowed deprecations. + config.active_support.disallowed_deprecation = :raise + + # Tell Active Support which deprecation messages to disallow. + config.active_support.disallowed_deprecation_warnings = [] + # Raises error for missing translations. - # config.action_view.raise_on_missing_translations = true + # config.i18n.raise_on_missing_translations = true + + # Annotate rendered view with file names. + # config.action_view.annotate_rendered_view_with_filenames = true end Rails.application.routes.default_url_options = { diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb new file mode 100644 index 0000000000..311b93b1c0 --- /dev/null +++ b/config/initializers/assets.rb @@ -0,0 +1,35 @@ +Rails.application.configure do + config.assets.version = "1.0" + config.assets.paths << 'app/images' + config.assets.paths << '.built-assets' +end + +# This code is taken from https://github.com/rails/propshaft/blob/main/lib/propshaft/server.rb#L8 +# and modified to ignore esbuild derrived chunks and related files +require 'propshaft/server' +module Propshaft + class Server + def call(env) + path, digest = extract_path_and_digest(env) + + esbuild_split_asset = (path.include?('-') && path.ends_with?('.js')) + if (asset = @assembly.load_path.find(path)) && (asset.fresh?(digest) || esbuild_split_asset) + compiled_content = @assembly.compilers.compile(asset) + + [ + 200, + { + "Content-Length" => compiled_content.length.to_s, + "Content-Type" => asset.content_type.to_s, + "Accept-Encoding" => "Vary", + "ETag" => asset.digest, + "Cache-Control" => "public, max-age=31536000, immutable" + }, + [compiled_content] + ] + else + [404, { "Content-Type" => "text/plain", "Content-Length" => "9" }, ["Not found"]] + end + end + end +end diff --git a/config/initializers/content_security_policy.rb b/config/initializers/content_security_policy.rb index 35d0f26fcd..3621f97f8e 100644 --- a/config/initializers/content_security_policy.rb +++ b/config/initializers/content_security_policy.rb @@ -4,27 +4,23 @@ # For further information see the following documentation # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy -# Rails.application.config.content_security_policy do |policy| -# policy.default_src :self, :https -# policy.font_src :self, :https, :data -# policy.img_src :self, :https, :data -# policy.object_src :none -# policy.script_src :self, :https -# policy.style_src :self, :https -# # If you are using webpack-dev-server then specify webpack-dev-server host -# policy.connect_src :self, :https, "http://localhost:3035", "ws://localhost:3035" if Rails.env.development? - -# # Specify URI for violation reports -# # policy.report_uri "/csp-violation-report-endpoint" +# Rails.application.configure do +# config.content_security_policy do |policy| +# policy.default_src :self, :https +# policy.font_src :self, :https, :data +# policy.img_src :self, :https, :data +# policy.object_src :none +# policy.script_src :self, :https +# policy.style_src :self, :https +# # Specify URI for violation reports +# # policy.report_uri "/csp-violation-report-endpoint" +# end +# +# # Generate session nonces for permitted importmap and inline scripts +# config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s } +# config.content_security_policy_nonce_directives = %w(script-src) +# +# # Report CSP violations to a specified URI. See: +# # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only +# # config.content_security_policy_report_only = true # end - -# If you are using UJS then enable automatic nonce generation -# Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) } - -# Set the nonce only to specific directives -# Rails.application.config.content_security_policy_nonce_directives = %w(script-src) - -# Report CSP violations to a specified URI -# For further information see the following documentation: -# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only -# Rails.application.config.content_security_policy_report_only = true diff --git a/config/initializers/permissions_policy.rb b/config/initializers/permissions_policy.rb new file mode 100644 index 0000000000..00f64d71b0 --- /dev/null +++ b/config/initializers/permissions_policy.rb @@ -0,0 +1,11 @@ +# Define an application-wide HTTP permissions policy. For further +# information see https://developers.google.com/web/updates/2018/06/feature-policy +# +# Rails.application.config.permissions_policy do |f| +# f.camera :none +# f.gyroscope :none +# f.microphone :none +# f.usb :none +# f.fullscreen :self +# f.payment :self, "https://secure.example.com" +# end diff --git a/config/webpack/development.js b/config/webpack/development.js deleted file mode 100644 index afd0cf9534..0000000000 --- a/config/webpack/development.js +++ /dev/null @@ -1,30 +0,0 @@ -process.env.NODE_ENV = process.env.NODE_ENV || 'development' - -const environment = require('./environment') - -// Enable type checking as part of the Webpack compilation process -const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin') -const path = require('path') - -environment.plugins.append( - 'ForkTsCheckerWebpackPlugin', - new ForkTsCheckerWebpackPlugin({ - typescript: { - configFile: path.resolve(__dirname, '../../tsconfig.json'), - }, - async: false, - }) -) - -if (process.env.RAILS_ENV == 'development') { - const BundleAnalyzerPlugin = require('webpack-bundle-analyzer') - .BundleAnalyzerPlugin - environment.plugins.append( - 'BundleAnalyzerPlugin', - new BundleAnalyzerPlugin({ - defaultSizes: 'gzip', - }) - ) -} - -module.exports = environment.toWebpackConfig() diff --git a/config/webpack/environment.js b/config/webpack/environment.js deleted file mode 100644 index a1e3f2a400..0000000000 --- a/config/webpack/environment.js +++ /dev/null @@ -1,24 +0,0 @@ -const { environment } = require('@rails/webpacker') -const webpack = require('webpack') - -environment.plugins.prepend( - 'Environment', - new webpack.EnvironmentPlugin( - JSON.parse( - JSON.stringify({ - // TODO: @iHiD Should we get this from Exercism::Config? - BUGSNAG_API_KEY: '938ae3d231c5455e5c6597de1b1467af', - }) - ) - ) -) - -environment.loaders.get('babel').use = [ - { loader: 'esbuild-loader', options: { loader: 'tsx', target: 'es2015' } }, -] -environment.loaders.get('nodeModules').use = [ - { loader: 'esbuild-loader', options: { loader: 'jsx', target: 'es2015' } }, -] - -environment.splitChunks() -module.exports = environment diff --git a/config/webpack/production.js b/config/webpack/production.js deleted file mode 100644 index 3d3187f587..0000000000 --- a/config/webpack/production.js +++ /dev/null @@ -1,11 +0,0 @@ -process.env.NODE_ENV = process.env.NODE_ENV || 'production' - -const environment = require('./environment') - -environment.config.merge({ - output: { - publicPath: 'https://exercism-v3-assets.s3.eu-west-2.amazonaws.com/packs/', - }, -}) - -module.exports = environment.toWebpackConfig() diff --git a/config/webpacker.yml b/config/webpacker.yml deleted file mode 100644 index cdc311cc2d..0000000000 --- a/config/webpacker.yml +++ /dev/null @@ -1,91 +0,0 @@ -# Note: You must restart bin/webpack-dev-server for changes to take effect - -default: &default - source_path: app/javascript - source_entry_path: packs - public_root_path: public - public_output_path: packs - cache_path: tmp/cache/webpacker - webpack_compile_output: true - - # Additional paths webpack should lookup modules - # ['app/assets', 'engine/foo/app/assets'] - additional_paths: [] - - # Reload manifest.json on all requests so we reload latest compiled packs - cache_manifest: false - - # Extract and emit a css file - extract_css: false - - static_assets_extensions: - - .jpg - - .jpeg - - .png - - .gif - - .tiff - - .ico - - .svg - - .eot - - .otf - - .ttf - - .woff - - .woff2 - - extensions: - - .tsx - - .ts - - .jsx - - .mjs - - .js - - .css - - .module.css - - .png - - .svg - - .gif - - .jpeg - - .jpg - -development: - <<: *default - compile: true - extract_css: false - - # Reference: https://webpack.js.org/configuration/dev-server/ - dev_server: - https: false - host: local.exercism.io - port: 3035 - public: local.exercism.io:3035 - hmr: true - # Inline should be set to true if using HMR - inline: true - overlay: true - compress: true - disable_host_check: true - use_local_ip: false - quiet: false - pretty: false - headers: - "Access-Control-Allow-Origin": "*" - watch_options: - ignored: "**/node_modules/**" - -test: - <<: *default - compile: true - - # Compile test packs to a separate directory - public_output_path: packs-test - -production: - <<: *default - - # Production depends on precompilation of packs prior to booting for performance. - compile: false - - # Extract and emit a css file - extract_css: true - - # Cache manifest.json for performance - cache_manifest: true diff --git a/db/migrate/20200504163135_create_users.rb b/db/migrate/20200504163135_create_users.rb index 4996c7559c..ca98f59385 100644 --- a/db/migrate/20200504163135_create_users.rb +++ b/db/migrate/20200504163135_create_users.rb @@ -1,4 +1,4 @@ -class CreateUsers < ActiveRecord::Migration[6.0] +class CreateUsers < ActiveRecord::Migration[7.0] def change create_table :users do |t| t.string :handle, null: false, index: {unique: true} diff --git a/db/migrate/20200504163928_create_tracks.rb b/db/migrate/20200504163928_create_tracks.rb index 2d5e8ef103..52fb46e0bd 100644 --- a/db/migrate/20200504163928_create_tracks.rb +++ b/db/migrate/20200504163928_create_tracks.rb @@ -1,4 +1,4 @@ -class CreateTracks < ActiveRecord::Migration[6.0] +class CreateTracks < ActiveRecord::Migration[7.0] def change create_table :tracks do |t| t.string :slug, null: false, index: { unique: true } diff --git a/db/migrate/20200505152413_create_exercises.rb b/db/migrate/20200505152413_create_exercises.rb index 16df82d371..03928a1db0 100644 --- a/db/migrate/20200505152413_create_exercises.rb +++ b/db/migrate/20200505152413_create_exercises.rb @@ -1,7 +1,7 @@ -class CreateExercises < ActiveRecord::Migration[6.0] +class CreateExercises < ActiveRecord::Migration[7.0] def change create_table :exercises do |t| - t.belongs_to :track, foreign_key: true, null: false + t.belongs_to :track, foreign_key: true, null: false, type: :bigint t.string :uuid, null: false, index: true t.string :type, null: false diff --git a/db/migrate/20200506152426_create_solutions.rb b/db/migrate/20200506152426_create_solutions.rb index d1408a1bef..b293e0b99b 100644 --- a/db/migrate/20200506152426_create_solutions.rb +++ b/db/migrate/20200506152426_create_solutions.rb @@ -1,4 +1,4 @@ -class CreateSolutions < ActiveRecord::Migration[6.0] +class CreateSolutions < ActiveRecord::Migration[7.0] def change create_table :solutions do |t| t.string :type, null: false diff --git a/db/migrate/20200506153240_create_user_tracks.rb b/db/migrate/20200506153240_create_user_tracks.rb index f23f60a848..6ba1b87d9c 100644 --- a/db/migrate/20200506153240_create_user_tracks.rb +++ b/db/migrate/20200506153240_create_user_tracks.rb @@ -1,4 +1,4 @@ -class CreateUserTracks < ActiveRecord::Migration[6.0] +class CreateUserTracks < ActiveRecord::Migration[7.0] def change create_table :user_tracks do |t| t.belongs_to :user, foreign_key: true, null: false diff --git a/db/migrate/20200508225114_create_track_concepts.rb b/db/migrate/20200508225114_create_track_concepts.rb index f6e4a50809..8aa810017d 100644 --- a/db/migrate/20200508225114_create_track_concepts.rb +++ b/db/migrate/20200508225114_create_track_concepts.rb @@ -1,4 +1,4 @@ -class CreateTrackConcepts < ActiveRecord::Migration[6.0] +class CreateTrackConcepts < ActiveRecord::Migration[7.0] def change create_table :track_concepts do |t| t.belongs_to :track, foreign_key: true, null: false diff --git a/db/migrate/20200508230714_create_exercise_prerequisites.rb b/db/migrate/20200508230714_create_exercise_prerequisites.rb index d70a023787..8c2e30676b 100644 --- a/db/migrate/20200508230714_create_exercise_prerequisites.rb +++ b/db/migrate/20200508230714_create_exercise_prerequisites.rb @@ -1,4 +1,4 @@ -class CreateExercisePrerequisites < ActiveRecord::Migration[6.0] +class CreateExercisePrerequisites < ActiveRecord::Migration[7.0] def change create_table :exercise_prerequisites do |t| t.belongs_to :exercise, foreign_key: true, null: false diff --git a/db/migrate/20200508230715_create_exercise_taught_concepts.rb b/db/migrate/20200508230715_create_exercise_taught_concepts.rb index 104dc75c62..95a18ab808 100644 --- a/db/migrate/20200508230715_create_exercise_taught_concepts.rb +++ b/db/migrate/20200508230715_create_exercise_taught_concepts.rb @@ -1,4 +1,4 @@ -class CreateExerciseTaughtConcepts < ActiveRecord::Migration[6.1] +class CreateExerciseTaughtConcepts < ActiveRecord::Migration[7.0] def change create_table :exercise_taught_concepts do |t| t.belongs_to :exercise, foreign_key: true, null: false diff --git a/db/migrate/20200510141523_create_submissions.rb b/db/migrate/20200510141523_create_submissions.rb index 430ed57967..0931672576 100644 --- a/db/migrate/20200510141523_create_submissions.rb +++ b/db/migrate/20200510141523_create_submissions.rb @@ -1,4 +1,4 @@ -class CreateSubmissions < ActiveRecord::Migration[6.0] +class CreateSubmissions < ActiveRecord::Migration[7.0] def change create_table :submissions do |t| t.belongs_to :solution, foreign_key: true, null: false diff --git a/db/migrate/20200510163215_create_submission_files.rb b/db/migrate/20200510163215_create_submission_files.rb index ee4c616c50..47fc3d2bd6 100644 --- a/db/migrate/20200510163215_create_submission_files.rb +++ b/db/migrate/20200510163215_create_submission_files.rb @@ -1,4 +1,4 @@ -class CreateSubmissionFiles < ActiveRecord::Migration[6.0] +class CreateSubmissionFiles < ActiveRecord::Migration[7.0] def change create_table :submission_files do |t| t.belongs_to :submission, foreign_key: true, null: false diff --git a/db/migrate/20200513204406_create_submission_test_runs.rb b/db/migrate/20200513204406_create_submission_test_runs.rb index 731cda2b76..0eb16a147b 100644 --- a/db/migrate/20200513204406_create_submission_test_runs.rb +++ b/db/migrate/20200513204406_create_submission_test_runs.rb @@ -1,4 +1,4 @@ -class CreateSubmissionTestRuns < ActiveRecord::Migration[6.0] +class CreateSubmissionTestRuns < ActiveRecord::Migration[7.0] def change create_table :submission_test_runs do |t| t.string :uuid, null: false, index: { unique: true } diff --git a/db/migrate/20200514172924_create_submission_analyses.rb b/db/migrate/20200514172924_create_submission_analyses.rb index 09ea14a100..8efbce9a42 100644 --- a/db/migrate/20200514172924_create_submission_analyses.rb +++ b/db/migrate/20200514172924_create_submission_analyses.rb @@ -1,4 +1,4 @@ -class CreateSubmissionAnalyses < ActiveRecord::Migration[6.0] +class CreateSubmissionAnalyses < ActiveRecord::Migration[7.0] def change create_table :submission_analyses do |t| t.belongs_to :submission, foreign_key: true, null: false diff --git a/db/migrate/20200514172925_create_iterations.rb b/db/migrate/20200514172925_create_iterations.rb index 9a50fdebf4..4433d40608 100644 --- a/db/migrate/20200514172925_create_iterations.rb +++ b/db/migrate/20200514172925_create_iterations.rb @@ -1,4 +1,4 @@ -class CreateIterations < ActiveRecord::Migration[6.1] +class CreateIterations < ActiveRecord::Migration[7.0] def change create_table :iterations do |t| t.belongs_to :solution, foreign_key: true, null: false diff --git a/db/migrate/20200515002117_create_mentor_requests.rb b/db/migrate/20200515002117_create_mentor_requests.rb index 0b8a3016cf..08d95fb388 100644 --- a/db/migrate/20200515002117_create_mentor_requests.rb +++ b/db/migrate/20200515002117_create_mentor_requests.rb @@ -1,4 +1,4 @@ -class CreateMentorRequests < ActiveRecord::Migration[6.0] +class CreateMentorRequests < ActiveRecord::Migration[7.0] def change create_table :mentor_requests do |t| t.string :uuid, null: false diff --git a/db/migrate/20200515002232_create_mentor_discussions.rb b/db/migrate/20200515002232_create_mentor_discussions.rb index 4421dc6dee..1b0a83db7c 100644 --- a/db/migrate/20200515002232_create_mentor_discussions.rb +++ b/db/migrate/20200515002232_create_mentor_discussions.rb @@ -1,4 +1,4 @@ -class CreateMentorDiscussions < ActiveRecord::Migration[6.0] +class CreateMentorDiscussions < ActiveRecord::Migration[7.0] def change create_table :mentor_discussions do |t| t.string :uuid, null: false diff --git a/db/migrate/20200515225546_create_mentor_discussion_posts.rb b/db/migrate/20200515225546_create_mentor_discussion_posts.rb index aa11efeb96..5377f243ee 100644 --- a/db/migrate/20200515225546_create_mentor_discussion_posts.rb +++ b/db/migrate/20200515225546_create_mentor_discussion_posts.rb @@ -1,4 +1,4 @@ -class CreateMentorDiscussionPosts < ActiveRecord::Migration[6.0] +class CreateMentorDiscussionPosts < ActiveRecord::Migration[7.0] def change create_table :mentor_discussion_posts do |t| t.string :uuid, null: false diff --git a/db/migrate/20200517154437_create_exercise_representations.rb b/db/migrate/20200517154437_create_exercise_representations.rb index cec186d2cb..0132379264 100644 --- a/db/migrate/20200517154437_create_exercise_representations.rb +++ b/db/migrate/20200517154437_create_exercise_representations.rb @@ -1,4 +1,4 @@ -class CreateExerciseRepresentations < ActiveRecord::Migration[6.0] +class CreateExerciseRepresentations < ActiveRecord::Migration[7.0] def change create_table :exercise_representations do |t| t.belongs_to :exercise, foreign_key: true, null: false diff --git a/db/migrate/20200517182800_create_submission_representations.rb b/db/migrate/20200517182800_create_submission_representations.rb index 8b6b8ee81e..7f2ed85321 100644 --- a/db/migrate/20200517182800_create_submission_representations.rb +++ b/db/migrate/20200517182800_create_submission_representations.rb @@ -1,4 +1,4 @@ -class CreateSubmissionRepresentations < ActiveRecord::Migration[6.0] +class CreateSubmissionRepresentations < ActiveRecord::Migration[7.0] def change create_table :submission_representations do |t| t.belongs_to :submission, foreign_key: true, null: false diff --git a/db/migrate/20200527151811_create_user_notifications.rb b/db/migrate/20200527151811_create_user_notifications.rb index 649ac00801..d7d979f783 100644 --- a/db/migrate/20200527151811_create_user_notifications.rb +++ b/db/migrate/20200527151811_create_user_notifications.rb @@ -1,4 +1,4 @@ -class CreateUserNotifications < ActiveRecord::Migration[6.0] +class CreateUserNotifications < ActiveRecord::Migration[7.0] def change create_table :user_notifications do |t| t.string :uuid, null: false, index: {unique: true} diff --git a/db/migrate/20200829151831_create_user_auth_tokens.rb b/db/migrate/20200829151831_create_user_auth_tokens.rb index 5804e04330..c0da59f064 100644 --- a/db/migrate/20200829151831_create_user_auth_tokens.rb +++ b/db/migrate/20200829151831_create_user_auth_tokens.rb @@ -1,4 +1,4 @@ -class CreateUserAuthTokens < ActiveRecord::Migration[6.1] +class CreateUserAuthTokens < ActiveRecord::Migration[7.0] def change create_table :user_auth_tokens do |t| t.belongs_to :user, foreign_key: true, null: false diff --git a/db/migrate/20200830161328_create_friendly_id_slugs.rb b/db/migrate/20200830161328_create_friendly_id_slugs.rb index 1c7f3ec2da..fa8595e05d 100644 --- a/db/migrate/20200830161328_create_friendly_id_slugs.rb +++ b/db/migrate/20200830161328_create_friendly_id_slugs.rb @@ -1,4 +1,4 @@ -class CreateFriendlyIdSlugs < ActiveRecord::Migration[6.0] +class CreateFriendlyIdSlugs < ActiveRecord::Migration[7.0] def change create_table :friendly_id_slugs do |t| t.string :slug, :null => false diff --git a/db/migrate/20201109170425_create_user_activities.rb b/db/migrate/20201109170425_create_user_activities.rb index 16ab9c84fd..e7e92086c8 100644 --- a/db/migrate/20201109170425_create_user_activities.rb +++ b/db/migrate/20201109170425_create_user_activities.rb @@ -1,4 +1,4 @@ -class CreateUserActivities < ActiveRecord::Migration[6.1] +class CreateUserActivities < ActiveRecord::Migration[7.0] def change create_table :user_activities do |t| t.string :type, null: false diff --git a/db/migrate/20201207211125_create_user_profiles.rb b/db/migrate/20201207211125_create_user_profiles.rb index 904cac9761..e41d3c3f85 100644 --- a/db/migrate/20201207211125_create_user_profiles.rb +++ b/db/migrate/20201207211125_create_user_profiles.rb @@ -1,4 +1,4 @@ -class CreateUserProfiles < ActiveRecord::Migration[6.1] +class CreateUserProfiles < ActiveRecord::Migration[7.0] def change create_table :user_profiles do |t| t.belongs_to :user, null: false, index: {unique: true}, foreign_key: true diff --git a/db/migrate/20201208144440_create_exercise_authorships.rb b/db/migrate/20201208144440_create_exercise_authorships.rb index ef8a43827d..f63663bf43 100644 --- a/db/migrate/20201208144440_create_exercise_authorships.rb +++ b/db/migrate/20201208144440_create_exercise_authorships.rb @@ -1,4 +1,4 @@ -class CreateExerciseAuthorships < ActiveRecord::Migration[6.1] +class CreateExerciseAuthorships < ActiveRecord::Migration[7.0] def change create_table :exercise_authorships do |t| t.belongs_to :exercise, foreign_key: true, null: false diff --git a/db/migrate/20201209115925_create_exercise_contributorships.rb b/db/migrate/20201209115925_create_exercise_contributorships.rb index b1b11a5454..1384e7c18d 100644 --- a/db/migrate/20201209115925_create_exercise_contributorships.rb +++ b/db/migrate/20201209115925_create_exercise_contributorships.rb @@ -1,4 +1,4 @@ -class CreateExerciseContributorships < ActiveRecord::Migration[6.1] +class CreateExerciseContributorships < ActiveRecord::Migration[7.0] def change create_table :exercise_contributorships do |t| t.belongs_to :exercise, foreign_key: true, null: false diff --git a/db/migrate/20201210173500_create_user_reputation_tokens.rb b/db/migrate/20201210173500_create_user_reputation_tokens.rb index dfcfcf4904..e68e3b81a9 100644 --- a/db/migrate/20201210173500_create_user_reputation_tokens.rb +++ b/db/migrate/20201210173500_create_user_reputation_tokens.rb @@ -1,4 +1,4 @@ -class CreateUserReputationTokens < ActiveRecord::Migration[6.1] +class CreateUserReputationTokens < ActiveRecord::Migration[7.0] def change create_table :user_reputation_tokens do |t| t.string :uuid, null: false diff --git a/db/migrate/20201214073537_create_problem_reports.rb b/db/migrate/20201214073537_create_problem_reports.rb index 84aefc6499..472229b55e 100644 --- a/db/migrate/20201214073537_create_problem_reports.rb +++ b/db/migrate/20201214073537_create_problem_reports.rb @@ -1,4 +1,4 @@ -class CreateProblemReports < ActiveRecord::Migration[6.1] +class CreateProblemReports < ActiveRecord::Migration[7.0] def change create_table :problem_reports do |t| t.belongs_to :user, null: false, foreign_key: true diff --git a/db/migrate/20201223013917_create_scratchpad_pages.rb b/db/migrate/20201223013917_create_scratchpad_pages.rb index 3f8b1b6302..41f15de84b 100644 --- a/db/migrate/20201223013917_create_scratchpad_pages.rb +++ b/db/migrate/20201223013917_create_scratchpad_pages.rb @@ -1,4 +1,4 @@ -class CreateScratchpadPages < ActiveRecord::Migration[6.1] +class CreateScratchpadPages < ActiveRecord::Migration[7.0] def change create_table :scratchpad_pages do |t| t.belongs_to :about, polymorphic: true, null: false diff --git a/db/migrate/20210114143952_create_mentor_student_relationships.rb b/db/migrate/20210114143952_create_mentor_student_relationships.rb index 41d38e20e9..9b2b24ecb8 100644 --- a/db/migrate/20210114143952_create_mentor_student_relationships.rb +++ b/db/migrate/20210114143952_create_mentor_student_relationships.rb @@ -1,4 +1,4 @@ -class CreateMentorStudentRelationships < ActiveRecord::Migration[6.1] +class CreateMentorStudentRelationships < ActiveRecord::Migration[7.0] def change create_table :mentor_student_relationships do |t| t.belongs_to :mentor, null: false, foreign_key: {to_table: :users} diff --git a/db/migrate/20210115162916_create_mentor_testimonials.rb b/db/migrate/20210115162916_create_mentor_testimonials.rb index de76962774..87002d705e 100644 --- a/db/migrate/20210115162916_create_mentor_testimonials.rb +++ b/db/migrate/20210115162916_create_mentor_testimonials.rb @@ -1,4 +1,4 @@ -class CreateMentorTestimonials < ActiveRecord::Migration[6.1] +class CreateMentorTestimonials < ActiveRecord::Migration[7.0] def change create_table :mentor_testimonials do |t| t.belongs_to :mentor, null: false, foreign_key: { to_table: :users } diff --git a/db/migrate/20210120224133_create_badges.rb b/db/migrate/20210120224133_create_badges.rb index becd2d728d..1df3ede569 100644 --- a/db/migrate/20210120224133_create_badges.rb +++ b/db/migrate/20210120224133_create_badges.rb @@ -1,4 +1,4 @@ -class CreateBadges < ActiveRecord::Migration[6.1] +class CreateBadges < ActiveRecord::Migration[7.0] def change create_table :badges, if_not_exists: true do |t| t.string :type, null: false, index: {unique: true} diff --git a/db/migrate/20210120224134_create_user_acquired_badges.rb b/db/migrate/20210120224134_create_user_acquired_badges.rb index 0e6ee42803..7cc38be80d 100644 --- a/db/migrate/20210120224134_create_user_acquired_badges.rb +++ b/db/migrate/20210120224134_create_user_acquired_badges.rb @@ -1,4 +1,4 @@ -class CreateUserAcquiredBadges < ActiveRecord::Migration[6.1] +class CreateUserAcquiredBadges < ActiveRecord::Migration[7.0] def change create_table :user_acquired_badges do |t| diff --git a/db/migrate/20210222135113_create_user_track_mentorships.rb b/db/migrate/20210222135113_create_user_track_mentorships.rb index c9864fd7b9..f68cbd81b1 100644 --- a/db/migrate/20210222135113_create_user_track_mentorships.rb +++ b/db/migrate/20210222135113_create_user_track_mentorships.rb @@ -1,4 +1,4 @@ -class CreateUserTrackMentorships < ActiveRecord::Migration[6.1] +class CreateUserTrackMentorships < ActiveRecord::Migration[7.0] def change create_table :user_track_mentorships do |t| t.belongs_to :user, null: false, foreign_key: true diff --git a/db/migrate/20210303124404_create_github_pull_requests.rb b/db/migrate/20210303124404_create_github_pull_requests.rb index b42cce4337..a83952784d 100644 --- a/db/migrate/20210303124404_create_github_pull_requests.rb +++ b/db/migrate/20210303124404_create_github_pull_requests.rb @@ -1,4 +1,4 @@ -class CreateGithubPullRequests < ActiveRecord::Migration[6.1] +class CreateGithubPullRequests < ActiveRecord::Migration[7.0] def change create_table :github_pull_requests do |t| t.string :node_id, null: false, index: { unique: true } diff --git a/db/migrate/20210317082249_create_github_organization_members.rb b/db/migrate/20210317082249_create_github_organization_members.rb index b15f227db4..d6004e1fb7 100644 --- a/db/migrate/20210317082249_create_github_organization_members.rb +++ b/db/migrate/20210317082249_create_github_organization_members.rb @@ -1,4 +1,4 @@ -class CreateGithubOrganizationMembers < ActiveRecord::Migration[6.1] +class CreateGithubOrganizationMembers < ActiveRecord::Migration[7.0] def change create_table :github_organization_members do |t| t.string :username, null: false, index: { unique: true } diff --git a/db/migrate/20210318131539_create_documents.rb b/db/migrate/20210318131539_create_documents.rb index 916e9654e8..770bcc10e1 100644 --- a/db/migrate/20210318131539_create_documents.rb +++ b/db/migrate/20210318131539_create_documents.rb @@ -1,4 +1,4 @@ -class CreateDocuments < ActiveRecord::Migration[6.1] +class CreateDocuments < ActiveRecord::Migration[7.0] def change create_table :documents do |t| t.string :uuid, null: false, index: {unique: true} diff --git a/db/migrate/20210324111409_create_exercise_practiced_concepts.rb b/db/migrate/20210324111409_create_exercise_practiced_concepts.rb index d40532e7de..819a7edfd4 100644 --- a/db/migrate/20210324111409_create_exercise_practiced_concepts.rb +++ b/db/migrate/20210324111409_create_exercise_practiced_concepts.rb @@ -1,4 +1,4 @@ -class CreateExercisePracticedConcepts < ActiveRecord::Migration[6.1] +class CreateExercisePracticedConcepts < ActiveRecord::Migration[7.0] def change create_table :exercise_practiced_concepts do |t| t.belongs_to :exercise, foreign_key: true, null: false diff --git a/db/migrate/20210427174645_create_mentor_request_locks.rb b/db/migrate/20210427174645_create_mentor_request_locks.rb index 252971cc6c..e4e7f35da9 100644 --- a/db/migrate/20210427174645_create_mentor_request_locks.rb +++ b/db/migrate/20210427174645_create_mentor_request_locks.rb @@ -1,4 +1,4 @@ -class CreateMentorRequestLocks < ActiveRecord::Migration[6.1] +class CreateMentorRequestLocks < ActiveRecord::Migration[7.0] def change create_table :mentor_request_locks do |t| t.belongs_to :request, foreign_key: {to_table: :mentor_requests}, null: false diff --git a/db/migrate/20210506085556_create_active_storage_tables.active_storage.rb b/db/migrate/20210506085556_create_active_storage_tables.active_storage.rb index c4916cb589..094d471ad7 100644 --- a/db/migrate/20210506085556_create_active_storage_tables.active_storage.rb +++ b/db/migrate/20210506085556_create_active_storage_tables.active_storage.rb @@ -1,5 +1,5 @@ # This migration comes from active_storage (originally 20170806125915) -class CreateActiveStorageTables < ActiveRecord::Migration[5.2] +class CreateActiveStorageTables < ActiveRecord::Migration[7.0] def change create_table :active_storage_blobs, if_not_exists: true do |t| t.string :key, null: false diff --git a/db/migrate/20210507230054_create_solution_stars.rb b/db/migrate/20210507230054_create_solution_stars.rb index cdbaa012ef..077662c0de 100644 --- a/db/migrate/20210507230054_create_solution_stars.rb +++ b/db/migrate/20210507230054_create_solution_stars.rb @@ -1,4 +1,4 @@ -class CreateSolutionStars < ActiveRecord::Migration[6.1] +class CreateSolutionStars < ActiveRecord::Migration[7.0] def change create_table :solution_stars, if_not_exists: true do |t| t.belongs_to :solution, foreign_key: true, null: false diff --git a/db/migrate/20210520092005_create_github_issues.rb b/db/migrate/20210520092005_create_github_issues.rb index 9bfbadeb7c..13074947d4 100644 --- a/db/migrate/20210520092005_create_github_issues.rb +++ b/db/migrate/20210520092005_create_github_issues.rb @@ -1,4 +1,4 @@ -class CreateGithubIssues < ActiveRecord::Migration[6.1] +class CreateGithubIssues < ActiveRecord::Migration[7.0] def change create_table :github_issues do |t| t.string :node_id, null: false, index: { unique: true } diff --git a/db/migrate/20210520092006_create_github_issue_labels.rb b/db/migrate/20210520092006_create_github_issue_labels.rb index a7e38c881d..c83ef7ac52 100644 --- a/db/migrate/20210520092006_create_github_issue_labels.rb +++ b/db/migrate/20210520092006_create_github_issue_labels.rb @@ -1,4 +1,4 @@ -class CreateGithubIssueLabels < ActiveRecord::Migration[6.1] +class CreateGithubIssueLabels < ActiveRecord::Migration[7.0] def change create_table :github_issue_labels do |t| t.belongs_to :github_issue, null: false, foreign_key: true diff --git a/db/migrate/20210528231229_create_user_reputation_periods.rb b/db/migrate/20210528231229_create_user_reputation_periods.rb index 54910911a7..bd49e3ab0d 100644 --- a/db/migrate/20210528231229_create_user_reputation_periods.rb +++ b/db/migrate/20210528231229_create_user_reputation_periods.rb @@ -1,4 +1,4 @@ -class CreateUserReputationPeriods < ActiveRecord::Migration[6.1] +class CreateUserReputationPeriods < ActiveRecord::Migration[7.0] def change create_table :user_reputation_periods do |t| t.belongs_to :user, null: false, foreign_key: true diff --git a/db/migrate/20210603065037_create_github_tasks.rb b/db/migrate/20210603065037_create_github_tasks.rb index 041359ef6f..5a0025d462 100644 --- a/db/migrate/20210603065037_create_github_tasks.rb +++ b/db/migrate/20210603065037_create_github_tasks.rb @@ -1,4 +1,4 @@ -class CreateGithubTasks < ActiveRecord::Migration[6.1] +class CreateGithubTasks < ActiveRecord::Migration[7.0] def change create_table :github_tasks do |t| t.string :uuid, null: false, index: { unique: true } diff --git a/db/migrate/20210608204921_create_user_communication_preferences.rb b/db/migrate/20210608204921_create_user_communication_preferences.rb index e596041fe9..67f28d0788 100644 --- a/db/migrate/20210608204921_create_user_communication_preferences.rb +++ b/db/migrate/20210608204921_create_user_communication_preferences.rb @@ -1,4 +1,4 @@ -class CreateUserCommunicationPreferences < ActiveRecord::Migration[6.1] +class CreateUserCommunicationPreferences < ActiveRecord::Migration[7.0] def change create_table :user_communication_preferences do |t| t.belongs_to :user, null: false, foreign_key: true diff --git a/db/migrate/20210614114503_create_site_updates.rb b/db/migrate/20210614114503_create_site_updates.rb index d4697fe36b..6e2df23e24 100644 --- a/db/migrate/20210614114503_create_site_updates.rb +++ b/db/migrate/20210614114503_create_site_updates.rb @@ -1,4 +1,4 @@ -class CreateSiteUpdates < ActiveRecord::Migration[6.1] +class CreateSiteUpdates < ActiveRecord::Migration[7.0] def change create_table :site_updates do |t| t.string :type, null: false diff --git a/db/migrate/20210615114943_create_concept_authorships_and_contributorships.rb b/db/migrate/20210615114943_create_concept_authorships_and_contributorships.rb index 7534098f24..0451139a6c 100644 --- a/db/migrate/20210615114943_create_concept_authorships_and_contributorships.rb +++ b/db/migrate/20210615114943_create_concept_authorships_and_contributorships.rb @@ -1,4 +1,4 @@ -class CreateConceptAuthorshipsAndContributorships < ActiveRecord::Migration[6.1] +class CreateConceptAuthorshipsAndContributorships < ActiveRecord::Migration[7.0] def change create_table :track_concept_authorships do |t| t.belongs_to :track_concept, foreign_key: true, null: false diff --git a/db/migrate/20210616073326_create_contributor_teams.rb b/db/migrate/20210616073326_create_contributor_teams.rb index c8f6420c90..79ceb5eab2 100644 --- a/db/migrate/20210616073326_create_contributor_teams.rb +++ b/db/migrate/20210616073326_create_contributor_teams.rb @@ -1,4 +1,4 @@ -class CreateContributorTeams < ActiveRecord::Migration[6.1] +class CreateContributorTeams < ActiveRecord::Migration[7.0] def change create_table :contributor_teams do |t| t.belongs_to :track, null: true, foreign_key: true diff --git a/db/migrate/20210618165340_create_contributor_team_memberships.rb b/db/migrate/20210618165340_create_contributor_team_memberships.rb index 6cb0b31416..4d7aa74609 100644 --- a/db/migrate/20210618165340_create_contributor_team_memberships.rb +++ b/db/migrate/20210618165340_create_contributor_team_memberships.rb @@ -1,4 +1,4 @@ -class CreateContributorTeamMemberships < ActiveRecord::Migration[6.1] +class CreateContributorTeamMemberships < ActiveRecord::Migration[7.0] def change create_table :contributor_team_memberships do |t| t.belongs_to :contributor_team, null: false, foreign_key: true diff --git a/db/migrate/20210716205849_create_donations_subscriptions.rb b/db/migrate/20210716205849_create_donations_subscriptions.rb index 3e778598f5..cf0999c987 100644 --- a/db/migrate/20210716205849_create_donations_subscriptions.rb +++ b/db/migrate/20210716205849_create_donations_subscriptions.rb @@ -1,4 +1,4 @@ -class CreateDonationsSubscriptions < ActiveRecord::Migration[6.1] +class CreateDonationsSubscriptions < ActiveRecord::Migration[7.0] def change create_table :donations_subscriptions do |t| t.belongs_to :user, foreign_key: true, null: false diff --git a/db/migrate/20210716205900_create_donations_payments.rb b/db/migrate/20210716205900_create_donations_payments.rb index 94d1b9136c..fef9d89917 100644 --- a/db/migrate/20210716205900_create_donations_payments.rb +++ b/db/migrate/20210716205900_create_donations_payments.rb @@ -1,4 +1,4 @@ -class CreateDonationsPayments < ActiveRecord::Migration[6.1] +class CreateDonationsPayments < ActiveRecord::Migration[7.0] def change create_table :donations_payments do |t| t.belongs_to :user, foreign_key: true, null: false diff --git a/db/migrate/20210720075622_create_user_dismissed_introducers.rb b/db/migrate/20210720075622_create_user_dismissed_introducers.rb index ddd5f65e97..730b76d05d 100644 --- a/db/migrate/20210720075622_create_user_dismissed_introducers.rb +++ b/db/migrate/20210720075622_create_user_dismissed_introducers.rb @@ -1,4 +1,4 @@ -class CreateUserDismissedIntroducers < ActiveRecord::Migration[6.1] +class CreateUserDismissedIntroducers < ActiveRecord::Migration[7.0] def change create_table :user_dismissed_introducers do |t| t.belongs_to :user, null: false, foreign_key: true diff --git a/db/migrate/20210730105122_create_blog_posts.rb b/db/migrate/20210730105122_create_blog_posts.rb index 8070562b86..e9ab40c18c 100644 --- a/db/migrate/20210730105122_create_blog_posts.rb +++ b/db/migrate/20210730105122_create_blog_posts.rb @@ -1,4 +1,4 @@ -class CreateBlogPosts < ActiveRecord::Migration[6.1] +class CreateBlogPosts < ActiveRecord::Migration[7.0] def change create_table :blog_posts do |t| t.belongs_to :author, null: false, foreign_key: {to_table: :users} diff --git a/db/migrate/20210805114918_create_solution_comments.rb b/db/migrate/20210805114918_create_solution_comments.rb index 68580adc9d..b92a6bcb5d 100644 --- a/db/migrate/20210805114918_create_solution_comments.rb +++ b/db/migrate/20210805114918_create_solution_comments.rb @@ -1,4 +1,4 @@ -class CreateSolutionComments < ActiveRecord::Migration[6.1] +class CreateSolutionComments < ActiveRecord::Migration[7.0] def change create_table :solution_comments do |t| t.string :uuid, null: false, index: {unique: true} diff --git a/db/migrate/20210828132559_materialize_status_columns.rb b/db/migrate/20210828132559_materialize_status_columns.rb index eaa921a112..1f6cb3ab8d 100644 --- a/db/migrate/20210828132559_materialize_status_columns.rb +++ b/db/migrate/20210828132559_materialize_status_columns.rb @@ -1,4 +1,4 @@ -class MaterializeStatusColumns < ActiveRecord::Migration[6.1] +class MaterializeStatusColumns < ActiveRecord::Migration[7.0] def change add_column :tracks, :course, :boolean, null: false, default: false add_column :tracks, :has_test_runner, :boolean, null: false, default: false diff --git a/db/migrate/20210904164338_add_email_on_general_update_notification.rb b/db/migrate/20210904164338_add_email_on_general_update_notification.rb index f2dac24311..3ae1638bf8 100644 --- a/db/migrate/20210904164338_add_email_on_general_update_notification.rb +++ b/db/migrate/20210904164338_add_email_on_general_update_notification.rb @@ -1,4 +1,4 @@ -class AddEmailOnGeneralUpdateNotification < ActiveRecord::Migration[6.1] +class AddEmailOnGeneralUpdateNotification < ActiveRecord::Migration[7.0] def change add_column :user_communication_preferences, :email_on_general_update_notification, :boolean, default: true, null: false end diff --git a/db/migrate/20210904173405_add_badges_mailer_communication_preference.rb b/db/migrate/20210904173405_add_badges_mailer_communication_preference.rb index 4aa96f95b7..bac6c33ea2 100644 --- a/db/migrate/20210904173405_add_badges_mailer_communication_preference.rb +++ b/db/migrate/20210904173405_add_badges_mailer_communication_preference.rb @@ -1,4 +1,4 @@ -class AddBadgesMailerCommunicationPreference < ActiveRecord::Migration[6.1] +class AddBadgesMailerCommunicationPreference < ActiveRecord::Migration[7.0] def change add_column :user_communication_preferences, :email_on_acquired_badge_notification, :boolean, default: true, null: false end diff --git a/db/migrate/20210908203439_add_email_to_donations.rb b/db/migrate/20210908203439_add_email_to_donations.rb index ebe4c06271..9e5b75999e 100644 --- a/db/migrate/20210908203439_add_email_to_donations.rb +++ b/db/migrate/20210908203439_add_email_to_donations.rb @@ -1,4 +1,4 @@ -class AddEmailToDonations < ActiveRecord::Migration[6.1] +class AddEmailToDonations < ActiveRecord::Migration[7.0] def change add_column :donations_payments, :email_status, :integer, limit: 1, default: 0, null: false add_column :donations_subscriptions, :email_status, :integer, limit: 1, default: 0, null: false diff --git a/db/migrate/20210909203814_increase_submission_test_run_results_size.rb b/db/migrate/20210909203814_increase_submission_test_run_results_size.rb index 72de459f96..d204ddf6c0 100644 --- a/db/migrate/20210909203814_increase_submission_test_run_results_size.rb +++ b/db/migrate/20210909203814_increase_submission_test_run_results_size.rb @@ -1,4 +1,4 @@ -class IncreaseSubmissionTestRunResultsSize < ActiveRecord::Migration[6.1] +class IncreaseSubmissionTestRunResultsSize < ActiveRecord::Migration[7.0] def change change_column :submission_test_runs, :raw_results, :text, size: :medium end diff --git a/db/migrate/20210910080731_add_sorting_index_to_solutions.rb b/db/migrate/20210910080731_add_sorting_index_to_solutions.rb index 7f4a325624..c8cbb548f3 100644 --- a/db/migrate/20210910080731_add_sorting_index_to_solutions.rb +++ b/db/migrate/20210910080731_add_sorting_index_to_solutions.rb @@ -1,4 +1,4 @@ -class AddSortingIndexToSolutions < ActiveRecord::Migration[6.1] +class AddSortingIndexToSolutions < ActiveRecord::Migration[7.0] def up sql = <<-SQL CREATE INDEX solutions_popular_new diff --git a/db/migrate/20210925111900_add_uuid_index_to_discussion_posts.rb b/db/migrate/20210925111900_add_uuid_index_to_discussion_posts.rb index 3f8363b969..78bb9eda4f 100644 --- a/db/migrate/20210925111900_add_uuid_index_to_discussion_posts.rb +++ b/db/migrate/20210925111900_add_uuid_index_to_discussion_posts.rb @@ -1,4 +1,4 @@ -class AddUuidIndexToDiscussionPosts < ActiveRecord::Migration[6.1] +class AddUuidIndexToDiscussionPosts < ActiveRecord::Migration[7.0] def change add_index :mentor_discussion_posts, :uuid, unique: true end diff --git a/db/migrate/20211001151540_add_index_to_uniqueness_key_on_site_updates.rb b/db/migrate/20211001151540_add_index_to_uniqueness_key_on_site_updates.rb index 498711d2fb..183b3e2b05 100644 --- a/db/migrate/20211001151540_add_index_to_uniqueness_key_on_site_updates.rb +++ b/db/migrate/20211001151540_add_index_to_uniqueness_key_on_site_updates.rb @@ -1,4 +1,4 @@ -class AddIndexToUniquenessKeyOnSiteUpdates < ActiveRecord::Migration[6.1] +class AddIndexToUniquenessKeyOnSiteUpdates < ActiveRecord::Migration[7.0] def change add_index :site_updates, :uniqueness_key, unique: true end diff --git a/db/migrate/20211025193805_create_user_mailshots.rb b/db/migrate/20211025193805_create_user_mailshots.rb index 8e483ea1ac..95d4b386c0 100644 --- a/db/migrate/20211025193805_create_user_mailshots.rb +++ b/db/migrate/20211025193805_create_user_mailshots.rb @@ -1,4 +1,4 @@ -class CreateUserMailshots < ActiveRecord::Migration[6.1] +class CreateUserMailshots < ActiveRecord::Migration[7.0] def change create_table :user_mailshots do |t| t.belongs_to :user, null: false diff --git a/db/migrate/20211027121344_add_loc_to_iterations.rb b/db/migrate/20211027121344_add_loc_to_iterations.rb index c5b7b12cb3..8e93093f69 100644 --- a/db/migrate/20211027121344_add_loc_to_iterations.rb +++ b/db/migrate/20211027121344_add_loc_to_iterations.rb @@ -1,4 +1,4 @@ -class AddLocToIterations < ActiveRecord::Migration[6.1] +class AddLocToIterations < ActiveRecord::Migration[7.0] def change add_column :iterations, :num_loc, :integer, null: true end diff --git a/db/migrate/20211028110123_change_solutions_num_loc_to_null.rb b/db/migrate/20211028110123_change_solutions_num_loc_to_null.rb index 951627369c..d1fee5e276 100644 --- a/db/migrate/20211028110123_change_solutions_num_loc_to_null.rb +++ b/db/migrate/20211028110123_change_solutions_num_loc_to_null.rb @@ -1,4 +1,4 @@ -class ChangeSolutionsNumLocToNull < ActiveRecord::Migration[6.1] +class ChangeSolutionsNumLocToNull < ActiveRecord::Migration[7.0] def change change_column_null :solutions, :num_loc, true change_column_default :solutions, :num_loc, nil diff --git a/db/migrate/20211101120614_add_extra_indexes.rb b/db/migrate/20211101120614_add_extra_indexes.rb index ef59b228f4..02f90771ef 100644 --- a/db/migrate/20211101120614_add_extra_indexes.rb +++ b/db/migrate/20211101120614_add_extra_indexes.rb @@ -1,4 +1,4 @@ -class AddExtraIndexes < ActiveRecord::Migration[6.1] +class AddExtraIndexes < ActiveRecord::Migration[7.0] def change add_index :users, :unconfirmed_email, if_not_exists: true diff --git a/db/migrate/20211130113053_add_communication_preference_for_nudges.rb b/db/migrate/20211130113053_add_communication_preference_for_nudges.rb index b702641dfc..d2d7071e2f 100644 --- a/db/migrate/20211130113053_add_communication_preference_for_nudges.rb +++ b/db/migrate/20211130113053_add_communication_preference_for_nudges.rb @@ -1,4 +1,4 @@ -class AddCommunicationPreferenceForNudges < ActiveRecord::Migration[6.1] +class AddCommunicationPreferenceForNudges < ActiveRecord::Migration[7.0] def up execute "ALTER TABLE `user_communication_preferences` ADD `email_on_nudge_notification` tinyint(1) DEFAULT TRUE NOT NULL, ALGORITHM=INPLACE, LOCK=NONE" end diff --git a/db/migrate/20211130133210_add_index_for_nudge_job.rb b/db/migrate/20211130133210_add_index_for_nudge_job.rb index 0f06a7dfb9..1cb4e0ca4e 100644 --- a/db/migrate/20211130133210_add_index_for_nudge_job.rb +++ b/db/migrate/20211130133210_add_index_for_nudge_job.rb @@ -1,4 +1,4 @@ -class AddIndexForNudgeJob < ActiveRecord::Migration[6.1] +class AddIndexForNudgeJob < ActiveRecord::Migration[7.0] def change add_index :user_notifications, [:type, :user_id] end diff --git a/db/migrate/20211130210947_add_git_sha_to_submission_test_runs.rb b/db/migrate/20211130210947_add_git_sha_to_submission_test_runs.rb index 9d8a62cf9f..c3cd92ae9f 100644 --- a/db/migrate/20211130210947_add_git_sha_to_submission_test_runs.rb +++ b/db/migrate/20211130210947_add_git_sha_to_submission_test_runs.rb @@ -1,4 +1,4 @@ -class AddGitShaToSubmissionTestRuns < ActiveRecord::Migration[6.1] +class AddGitShaToSubmissionTestRuns < ActiveRecord::Migration[7.0] def up execute "ALTER TABLE `submissions` ADD `git_important_files_hash` varchar(50) NULL, ALGORITHM=INPLACE, LOCK=NONE" diff --git a/db/migrate/20211201162159_add_published_iteration_head_tests_status_to_solutions.rb b/db/migrate/20211201162159_add_published_iteration_head_tests_status_to_solutions.rb index 441c231bdb..961a6f19de 100644 --- a/db/migrate/20211201162159_add_published_iteration_head_tests_status_to_solutions.rb +++ b/db/migrate/20211201162159_add_published_iteration_head_tests_status_to_solutions.rb @@ -1,4 +1,4 @@ -class AddPublishedIterationHeadTestsStatusToSolutions < ActiveRecord::Migration[6.1] +class AddPublishedIterationHeadTestsStatusToSolutions < ActiveRecord::Migration[7.0] def up execute "ALTER TABLE `solutions` ADD `published_iteration_head_tests_status` integer(2) DEFAULT 0 NOT NULL, ALGORITHM=INPLACE, LOCK=NONE" end diff --git a/db/migrate/20211215182149_add_show_on_supporters_page_to_users.rb b/db/migrate/20211215182149_add_show_on_supporters_page_to_users.rb index 65db6d4d61..47b74dbd86 100644 --- a/db/migrate/20211215182149_add_show_on_supporters_page_to_users.rb +++ b/db/migrate/20211215182149_add_show_on_supporters_page_to_users.rb @@ -1,4 +1,4 @@ -class AddShowOnSupportersPageToUsers < ActiveRecord::Migration[6.1] +class AddShowOnSupportersPageToUsers < ActiveRecord::Migration[7.0] def change add_column :users, :show_on_supporters_page, :boolean, default: true, null: false, if_not_exists: true diff --git a/db/migrate/20211218160301_add_service_name_to_active_storage_blobs.active_storage.rb b/db/migrate/20211218160301_add_service_name_to_active_storage_blobs.active_storage.rb new file mode 100644 index 0000000000..98c20fa717 --- /dev/null +++ b/db/migrate/20211218160301_add_service_name_to_active_storage_blobs.active_storage.rb @@ -0,0 +1,18 @@ +# This migration comes from active_storage (originally 20190112182829) +class AddServiceNameToActiveStorageBlobs < ActiveRecord::Migration[7.0] + def up + unless column_exists?(:active_storage_blobs, :service_name) + add_column :active_storage_blobs, :service_name, :string + + if configured_service = ActiveStorage::Blob.service.name + ActiveStorage::Blob.unscoped.update_all(service_name: configured_service) + end + + change_column :active_storage_blobs, :service_name, :string, null: false + end + end + + def down + remove_column :active_storage_blobs, :service_name + end +end diff --git a/db/migrate/20211218160302_create_active_storage_variant_records.active_storage.rb b/db/migrate/20211218160302_create_active_storage_variant_records.active_storage.rb new file mode 100644 index 0000000000..9230a23aa1 --- /dev/null +++ b/db/migrate/20211218160302_create_active_storage_variant_records.active_storage.rb @@ -0,0 +1,25 @@ +# This migration comes from active_storage (originally 20191206030411) +class CreateActiveStorageVariantRecords < ActiveRecord::Migration[7.0] + def change + # Use Active Record's configured type for primary key + create_table :active_storage_variant_records, id: primary_key_type, if_not_exists: true do |t| + t.belongs_to :blob, null: false, index: false, type: blobs_primary_key_type + t.string :variation_digest, null: false + + t.index %i[ blob_id variation_digest ], name: "index_active_storage_variant_records_uniqueness", unique: true + t.foreign_key :active_storage_blobs, column: :blob_id + end + end + + private + def primary_key_type + config = Rails.configuration.generators + config.options[config.orm][:primary_key_type] || :primary_key + end + + def blobs_primary_key_type + pkey_name = connection.primary_key(:active_storage_blobs) + pkey_column = connection.columns(:active_storage_blobs).find { |c| c.name == pkey_name } + pkey_column.bigint? ? :bigint : pkey_column.type + end +end diff --git a/db/migrate/20211218160303_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb b/db/migrate/20211218160303_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb new file mode 100644 index 0000000000..a50026405c --- /dev/null +++ b/db/migrate/20211218160303_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb @@ -0,0 +1,6 @@ +# This migration comes from active_storage (originally 20211119233751) +class RemoveNotNullOnActiveStorageBlobsChecksum < ActiveRecord::Migration[7.0] + def change + change_column_null(:active_storage_blobs, :checksum, true) + end +end diff --git a/db/schema.rb b/db/schema.rb index 769c568d1c..8a33ac3ad5 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,14 +10,14 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2021_12_15_182149) do +ActiveRecord::Schema.define(version: 2021_12_18_160303) do create_table "active_storage_attachments", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.string "name", null: false t.string "record_type", null: false t.bigint "record_id", null: false t.bigint "blob_id", null: false - t.datetime "created_at", null: false + t.datetime "created_at", precision: 6, null: false t.index ["blob_id"], name: "index_active_storage_attachments_on_blob_id" t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true end @@ -29,8 +29,8 @@ t.text "metadata" t.string "service_name", null: false t.bigint "byte_size", null: false - t.string "checksum", null: false - t.datetime "created_at", null: false + t.string "checksum" + t.datetime "created_at", precision: 6, null: false t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true end @@ -58,7 +58,7 @@ t.string "uuid", null: false t.string "slug", null: false t.string "category", null: false - t.datetime "published_at", null: false + t.datetime "published_at", precision: 6, null: false t.string "title", null: false t.text "description" t.string "marketing_copy", limit: 280 @@ -233,7 +233,7 @@ t.integer "sluggable_id", null: false t.string "sluggable_type", limit: 50 t.string "scope" - t.datetime "created_at" + t.datetime "created_at", precision: 6 t.index ["slug", "sluggable_type", "scope"], name: "index_friendly_id_slugs_on_slug_and_sluggable_type_and_scope", unique: true, length: { slug: 70, scope: 70 } t.index ["slug", "sluggable_type"], name: "index_friendly_id_slugs_on_slug_and_sluggable_type", length: { slug: 140 } t.index ["sluggable_type", "sluggable_id"], name: "index_friendly_id_slugs_on_sluggable_type_and_sluggable_id" @@ -255,7 +255,7 @@ t.integer "status", limit: 1, default: 0, null: false t.string "repo", null: false t.string "opened_by_username" - t.datetime "opened_at", null: false + t.datetime "opened_at", precision: 6, null: false t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.index ["node_id"], name: "index_github_issues_on_node_id", unique: true @@ -298,7 +298,7 @@ t.string "repo", null: false t.string "issue_url", null: false t.string "opened_by_username" - t.datetime "opened_at", null: false + t.datetime "opened_at", precision: 6, null: false t.integer "action", limit: 1, default: 0 t.integer "knowledge", limit: 1, default: 0 t.integer "area", limit: 1, default: 0 @@ -318,7 +318,7 @@ t.string "uuid", null: false t.integer "idx", limit: 1, null: false t.string "snippet", limit: 1500 - t.datetime "deleted_at" + t.datetime "deleted_at", precision: 6 t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.integer "num_loc" @@ -352,10 +352,10 @@ t.integer "rating", limit: 1 t.integer "num_posts", limit: 3, default: 0, null: false t.boolean "anonymous_mode", default: false, null: false - t.datetime "awaiting_student_since" - t.datetime "awaiting_mentor_since" - t.datetime "mentor_reminder_sent_at" - t.datetime "finished_at" + t.datetime "awaiting_student_since", precision: 6 + t.datetime "awaiting_mentor_since", precision: 6 + t.datetime "mentor_reminder_sent_at", precision: 6 + t.datetime "finished_at", precision: 6 t.integer "finished_by", limit: 1 t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false @@ -367,7 +367,7 @@ create_table "mentor_request_locks", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.bigint "request_id", null: false t.bigint "locked_by_id", null: false - t.datetime "locked_until", null: false + t.datetime "locked_until", precision: 6, null: false t.index ["request_id", "locked_by_id"], name: "index_mentor_request_locks_on_request_id_and_locked_by_id" t.index ["request_id"], name: "index_mentor_request_locks_on_request_id" end @@ -416,7 +416,7 @@ t.text "content", null: false t.boolean "revealed", default: false, null: false t.boolean "published", default: true, null: false - t.datetime "deleted_at" + t.datetime "deleted_at", precision: 6 t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.index ["discussion_id"], name: "index_mentor_testimonials_on_discussion_id", unique: true @@ -464,7 +464,7 @@ t.bigint "exercise_id" t.bigint "author_id" t.bigint "pull_request_id" - t.datetime "published_at", null: false + t.datetime "published_at", precision: 6, null: false t.string "title" t.text "description" t.datetime "created_at", precision: 6, null: false @@ -482,7 +482,7 @@ t.bigint "user_id", null: false t.text "content_markdown", null: false t.text "content_html", null: false - t.datetime "deleted_at" + t.datetime "deleted_at", precision: 6 t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.index ["solution_id"], name: "index_solution_comments_on_solution_id" @@ -514,12 +514,12 @@ t.integer "status", limit: 1, default: 0, null: false t.string "iteration_status" t.boolean "allow_comments", default: true, null: false - t.datetime "last_iterated_at" + t.datetime "last_iterated_at", precision: 6 t.integer "num_iterations", limit: 1, default: 0, null: false t.string "snippet", limit: 1500 - t.datetime "downloaded_at" - t.datetime "completed_at" - t.datetime "published_at" + t.datetime "downloaded_at", precision: 6 + t.datetime "completed_at", precision: 6 + t.datetime "published_at", precision: 6 t.integer "mentoring_status", limit: 1, default: 0, null: false t.integer "num_views", limit: 3, default: 0, null: false t.integer "num_stars", limit: 3, default: 0, null: false @@ -674,7 +674,7 @@ t.bigint "exercise_id" t.bigint "solution_id" t.text "params", null: false - t.datetime "occurred_at", null: false + t.datetime "occurred_at", precision: 6, null: false t.string "uniqueness_key", null: false t.integer "version", null: false t.text "rendering_data_cache", null: false @@ -751,7 +751,7 @@ t.integer "email_status", limit: 1, default: 0, null: false t.string "uniqueness_key", null: false t.text "rendering_data_cache", null: false - t.datetime "read_at" + t.datetime "read_at", precision: 6 t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.index ["exercise_id"], name: "index_user_notifications_on_exercise_id" @@ -840,7 +840,7 @@ t.string "summary_key" t.boolean "practice_mode", default: false, null: false t.boolean "anonymous_during_mentoring", default: false, null: false - t.datetime "last_touched_at", null: false + t.datetime "last_touched_at", precision: 6, null: false t.text "objectives" t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false @@ -857,17 +857,17 @@ t.string "email", default: "", null: false t.string "encrypted_password", default: "", null: false t.string "reset_password_token" - t.datetime "reset_password_sent_at" - t.datetime "remember_created_at" + t.datetime "reset_password_sent_at", precision: 6 + t.datetime "remember_created_at", precision: 6 t.string "confirmation_token" - t.datetime "confirmed_at" - t.datetime "confirmation_sent_at" + t.datetime "confirmed_at", precision: 6 + t.datetime "confirmation_sent_at", precision: 6 t.string "unconfirmed_email" - t.datetime "accepted_privacy_policy_at" - t.datetime "accepted_terms_at" - t.datetime "became_mentor_at" - t.datetime "deleted_at" - t.datetime "joined_research_at" + t.datetime "accepted_privacy_policy_at", precision: 6 + t.datetime "accepted_terms_at", precision: 6 + t.datetime "became_mentor_at", precision: 6 + t.datetime "deleted_at", precision: 6 + t.datetime "joined_research_at", precision: 6 t.string "github_username" t.integer "reputation", default: 0, null: false t.json "roles" diff --git a/db/seeds.rb b/db/seeds.rb index 922f2f3865..bd5895d00d 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -108,6 +108,9 @@ end end +Git::SyncBlog.() +Git::SyncMainDocs.() + puts "" puts "To use the CLI locally, run: " puts "exercism configure -a http://local.exercism.io:3020/api/v1 -t #{auth_token.token}" @@ -249,10 +252,10 @@ end -exercises = Exercise.all.sort_by{rand}[0,3] -iHiD.authored_exercises += exercises +authored_exercises = Exercise.all.excluding(iHiD.authored_exercises).sort_by{rand}[0,3] +iHiD.authored_exercises += authored_exercises -exercises.each do |exercise| +authored_exercises.each do |exercise| track = exercise.track User::ReputationToken::Create.( iHiD, @@ -262,9 +265,9 @@ ) end -exercises = Exercise.all.sort_by{rand}[0,10] -iHiD.contributed_exercises += exercises -exercises.each do |exercise| +contributed_exercises = Exercise.all.excluding(iHiD.contributed_exercises).sort_by{rand}[0,10] +iHiD.contributed_exercises += contributed_exercises +contributed_exercises.each do |exercise| track = exercise.track User::ReputationToken::Create.( iHiD, diff --git a/dev.Dockerfile b/dev.Dockerfile index 9151cbb077..43bb358ec8 100644 --- a/dev.Dockerfile +++ b/dev.Dockerfile @@ -1,11 +1,11 @@ ############# ## Stage 1 ## ############# -FROM ruby:2.6.6 as builder +FROM ruby:3.1.0-bullseye as builder RUN set -ex; \ apt-get update; \ - apt-get install -y cmake ruby-dev; + apt-get install -y cmake make ruby-dev # We can do this work early and then copy a binary to the slim build later # overmind @@ -16,12 +16,12 @@ RUN curl -L -o - https://github.com/DarthSim/overmind/releases/download/v2.2.0/o RUN curl -L -o /usr/local/bin/anycable-go https://github.com/anycable/anycable-go/releases/download/v1.0.0/anycable-go-linux-amd64 && \ chmod u+x /usr/local/bin/anycable-go -RUN gem install -N bundler:2.1.4 +RUN gem install -N bundler:2.3.4 ############# ## Stage 2 ## ############# -FROM ruby:2.6.6-slim-buster as slim-website +FROM ruby:3.1.0-slim-bullseye as slim-website RUN set -ex; \ apt-get update; \ @@ -53,7 +53,7 @@ RUN apt-get install -y libmariadb-dev git; WORKDIR /usr/src/app -RUN gem install -N bundler:2.1.4 +RUN gem install -N bundler:2.3.4 ############# ## Stage 3 ## diff --git a/docker/dev/init.sql b/docker/dev/init.sql index 73631bf92c..bb54657b87 100644 --- a/docker/dev/init.sql +++ b/docker/dev/init.sql @@ -1,7 +1,8 @@ +CREATE USER IF NOT EXISTS 'exercism' IDENTIFIED BY 'exercism'; + CREATE DATABASE IF NOT EXISTS `exercism_development`; ALTER DATABASE `exercism_development` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -/* Implicitly create the user with our first DB to avoid errors if they already exist */ -GRANT ALL PRIVILEGES ON `exercism_development`.* TO 'exercism' IDENTIFIED BY 'exercism'; +GRANT ALL PRIVILEGES ON `exercism_development`.* TO 'exercism'; CREATE DATABASE IF NOT EXISTS `exercism_dj_development`; ALTER DATABASE `exercism_dj_development` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; diff --git a/docker/rails.Dockerfile b/docker/rails.Dockerfile index 1a8981d693..8e097a1018 100644 --- a/docker/rails.Dockerfile +++ b/docker/rails.Dockerfile @@ -1,9 +1,9 @@ -FROM ruby:2.6.6 +FROM ruby:3.1.0-bullseye RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ - apt-get install -y cmake nodejs yarn graphicsmagick + apt-get install -y cmake make nodejs yarn graphicsmagick WORKDIR /opt/exercism/website/current @@ -25,7 +25,6 @@ RUN yarn install # These are: # - Anything in the apex (such as babel.config.js); and # - The bin directory that contains the requisit scripts -# - The config directory which controls webpacker settings # - The contents on app/javascript # These are deliberately permissive in case we want to add # future apex files or future config files, so we don't have @@ -49,7 +48,7 @@ COPY app/helpers ./app/helpers # uploaded into s3. The assets left on the machine are not actually # used leave the assets on here. ENV NODE_OPTIONS="--max-old-space-size=6144" -RUN RACK_ENV=production NODE_ENV=production bundle exec bin/webpack +RUN RACK_ENV=production NODE_ENV=production bundle exec rails assets:precompile # Copy everything over now COPY . ./ diff --git a/package.json b/package.json index 6cf74ee053..562ccafe37 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,8 @@ "abortcontroller-polyfill": "^1.7.3", "ace-builds": "^1.4.12", "actioncable": "^5.2.4-3", + "autoprefixer": "^10.4.0", + "babel-plugin-macros": "^3.1.0", "chart.js": "^3.1.0", "codemirror-lang-elixir": "https://github.com/sachinraja/codemirror-lang-elixir", "copy-to-clipboard": "^3.3.1", @@ -40,6 +42,7 @@ "dayjs": "^1.8.35", "diff2html": "^3.4.5", "easymde": "^2.15.0", + "esbuild": "^0.14.5", "esbuild-jest": "^0.5.0", "focus-visible": "^5.2.0", "fontfaceobserver": "^2.1.0", @@ -53,6 +56,11 @@ "mousetrap": "^1.6.5", "nim-codemirror-mode": "^0.3.0", "pluralize": "^8.0.0", + "postcss": "^8.4.5", + "postcss-cli": "^9.1.0", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-minify": "^1.1.0", + "postcss-nesting": "^10.0.3", "prop-types": "^15.7.2", "qs": "^6.9.6", "react": "^16.13.1", @@ -69,7 +77,7 @@ "react-simplemde-editor": "^5", "reconnecting-websocket": "3.2.2", "regenerator-runtime": "^0.13.7", - "tailwindcss": "^1.8.10", + "tailwindcss": "^3.0.7", "use-is-mounted": "^1.0.0", "use-memory-value": "^1.2.0", "uuid": "^8.3.1", @@ -84,7 +92,6 @@ "@babel/preset-typescript": "^7.13.0", "@jackfranklin/test-data-bot": "^1.3.0", "@prettier/plugin-ruby": "^0.18.2", - "@rails/webpacker": "5.4.3", "@testing-library/dom": "^7.24.1", "@testing-library/jest-dom": "^5.11.0", "@testing-library/react": "^10.4.3", @@ -100,13 +107,12 @@ "@types/react-image-crop": "^8.1.2", "@types/react-modal": "^3.12.0", "@types/uuid": "^8.3.0", - "@types/webpack-env": "^1.15.3", "@typescript-eslint/eslint-plugin": "^4.4.0", "@typescript-eslint/parser": "^4.4.0", "babel-jest": "^26.5.0", - "babel-loader": "^8.2.2", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "esbuild-loader": "^2.16.0", + "browserslist-to-esbuild": "^1.1.1", + "esbuild-plugin-import-glob": "^0.1.1", "eslint": "^7.10.0", "eslint-config-prettier": "^6.12.0", "eslint-plugin-jest": "^24.1.0", @@ -114,22 +120,21 @@ "eslint-plugin-react-hooks": "^4.1.2", "eslint-plugin-testing-library": "^4.1.2", "flush-promises": "^1.0.2", - "fork-ts-checker-webpack-plugin": "^5.2.0", "husky": "^4.2.5", "isomorphic-fetch": "^3.0.0", "jest": "27", "msw": "^0.21.2", - "postcss-preset-env": "^6.7.0", + "postcss-import": "^14.0.2", "prettier": "^2.0.5", "pretty-quick": "^2.0.1", - "typescript": "^4.0.3", - "webpack-bundle-analyzer": "^4.4.2", - "webpack-dev-server": "^3.11.0" + "typescript": "^4.0.3" }, "scripts": { "test-debug": "node --unhandled-rejections=strict --trace-warnings node_modules/.bin/jest", "test": "jest", - "test-watch": "jest --watchAll" + "test-watch": "jest --watchAll", + "build:css": "postcss ./app/css/application.postcss.css -o .built-assets/website.css", + "build": "./app/javascript/esbuild.js" }, "jest": { "roots": [ @@ -139,12 +144,10 @@ "./test/javascript/setupTests.js" ], "moduleNameMapper": { - "^[./a-zA-Z0-9$_-]+\\.svg$": "/app/javascript/images/GlobalImageStub.js" + "^[./a-zA-Z0-9$_-]+\\.svg$": "/app/javascript/images/GlobalImageStub.js", + "manifest.json$": "/app/javascript/__mocks__/fileMock.js" }, - "testEnvironment": "jsdom", - "transform": { - "\\.[tj]sx?$": "esbuild-jest" - } + "testEnvironment": "jsdom" }, "husky": { "hooks": { diff --git a/postcss.config.js b/postcss.config.js index 73e1667848..a1f40a5c50 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,17 +1,10 @@ module.exports = { plugins: [ - //require('postcss-mixins'), require('postcss-import'), + require('tailwindcss/nesting'), require('tailwindcss'), + require('autoprefixer'), require('postcss-flexbugs-fixes'), - require('postcss-preset-env')({ - autoprefixer: { - flexbox: 'no-2009', - }, - features: { - 'nesting-rules': true, - }, - stage: 3, - }), + process.env.NODE_ENV === 'production' ? require('postcss-minify') : null, ], } diff --git a/tailwind.config.js b/tailwind.config.js index bf95d05718..5c6864ef44 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,17 +1,16 @@ module.exports = { - mode: 'jit', - future: { - removeDeprecatedGapUtilities: true, - purgeLayersByDefault: true, - }, - purge: [ + content: [ './app/views/**/*.haml', './app/helpers/**/*.rb', + './app/css/*.css', './app/css/**/*.css', './app/javascript/**/*', ], theme: { extend: { + screens: { + max850: { max: '850px' }, + }, gridTemplateColumns: { // Simple 16 column grid '2-auto': 'repeat(2, auto)', diff --git a/test/application_system_test_case.rb b/test/application_system_test_case.rb index d72eff5d4c..536bc57b68 100644 --- a/test/application_system_test_case.rb +++ b/test/application_system_test_case.rb @@ -30,7 +30,7 @@ def expecting_errors def teardown # Reset logs regardless of status - errors = page.driver.browser.manage.logs.get(:browser) + errors = page.driver.browser.logs.get(:browser) # Reset everything Capybara.reset_sessions! diff --git a/test/benchmarks/mentor_requests_test.rb b/test/benchmarks/mentor_requests_test.rb index 4e89ca8a81..cd503e058d 100644 --- a/test/benchmarks/mentor_requests_test.rb +++ b/test/benchmarks/mentor_requests_test.rb @@ -26,15 +26,15 @@ class MentorRequestTest < ActiveSupport::TestCase # Build solutions for a mentor mentor_solutions = loads[:exercises].times.map do |i| build(:concept_solution, user: mentor, exercise: exercises[i], - uuid: i, git_slug: "a", git_sha: "b", - created_at: Time.current, updated_at: Time.current).attributes + uuid: i, git_slug: "a", git_sha: "b", + created_at: Time.current, updated_at: Time.current).attributes end Solution.insert_all(mentor_solutions) mentor_solution_ids = mentor.solutions.pluck(:id) mentor_solution_requests = loads[:exercises].times.map do |i| build(:mentor_request, solution_id: mentor_solution_ids[i], uuid: i, - created_at: Time.current, updated_at: Time.current).attributes + created_at: Time.current, updated_at: Time.current).attributes end Mentor::Request.insert_all(mentor_solution_requests) @@ -50,15 +50,15 @@ class MentorRequestTest < ActiveSupport::TestCase start_solution_id = Solution.order(id: :asc).last.id solutions = count.times.map do |i| build(:concept_solution, user_id: user_ids[i], exercise: exercises.sample, - uuid: i, git_slug: "a", git_sha: "b", - created_at: Time.current, updated_at: Time.current).attributes + uuid: i, git_slug: "a", git_sha: "b", + created_at: Time.current, updated_at: Time.current).attributes end Solution.insert_all(solutions) solution_ids = Solution.where("id > ?", start_solution_id).pluck(:id) solution_requests = count.times.map do |i| build(:mentor_request, solution_id: solution_ids[i], uuid: "#{prefix}-#{i}", - created_at: Time.current, updated_at: Time.current).attributes + created_at: Time.current, updated_at: Time.current).attributes end Mentor::Request.insert_all(solution_requests) end diff --git a/test/commands/exercise/mark_solutions_as_out_of_date_in_index_test.rb b/test/commands/exercise/mark_solutions_as_out_of_date_in_index_test.rb index cd324e535c..7469d8cffe 100644 --- a/test/commands/exercise/mark_solutions_as_out_of_date_in_index_test.rb +++ b/test/commands/exercise/mark_solutions_as_out_of_date_in_index_test.rb @@ -9,9 +9,9 @@ class Exercise::MarkSolutionsAsOutOfDateInIndexTest < ActiveSupport::TestCase exercise_2 = create :practice_exercise, id: 8, track: track solution_1 = create :practice_solution, exercise: exercise_1, user: user_1, git_important_files_hash: 'different-hash' solution_2 = create :practice_solution, exercise: exercise_1, user: user_2, -git_important_files_hash: exercise_1.git_important_files_hash + git_important_files_hash: exercise_1.git_important_files_hash solution_3 = create :practice_solution, exercise: exercise_2, user: user_1, -git_important_files_hash: exercise_2.git_important_files_hash + git_important_files_hash: exercise_2.git_important_files_hash solution_4 = create :practice_solution, exercise: exercise_2, user: user_2 wait_for_opensearch_to_be_synced diff --git a/test/commands/exercise/recalculate_important_files_hash_with_solutions_test.rb b/test/commands/exercise/recalculate_important_files_hash_with_solutions_test.rb index b724df3949..0cd3b69ce0 100644 --- a/test/commands/exercise/recalculate_important_files_hash_with_solutions_test.rb +++ b/test/commands/exercise/recalculate_important_files_hash_with_solutions_test.rb @@ -21,11 +21,11 @@ class Exercise::RecalculateImportantFilesHashWithSolutionsTest < ActiveSupport:: # Sanity check for different exercise, same track, same SHA different_exercise_same_track_same_sha = create :practice_exercise, slug: exercise.slug, track: exercise.track, - git_important_files_hash: exercise.git_important_files_hash + git_important_files_hash: exercise.git_important_files_hash # Sanity check for same exercise, different track, same SHA same_exercise_different_track_same_sha = create :practice_exercise, slug: exercise.slug, track: other_track, - git_important_files_hash: exercise.git_important_files_hash + git_important_files_hash: exercise.git_important_files_hash Git::GenerateHashForImportantExerciseFiles.stubs(:call).returns("new-hash") diff --git a/test/commands/git/sync_blog_test.rb b/test/commands/git/sync_blog_test.rb index de17296bf0..7b445a9e6d 100644 --- a/test/commands/git/sync_blog_test.rb +++ b/test/commands/git/sync_blog_test.rb @@ -22,10 +22,10 @@ class Git::SyncBlogTest < ActiveSupport::TestCase test "updates existing posts" do create :user, handle: "iHiD" create :blog_post, uuid: "d925ec36-92dd-4bf6-be1d-969d192a4034", - slug: "rlly", - title: "Very wrong", - marketing_copy: "Wrong", - description: "Naughty" + slug: "rlly", + title: "Very wrong", + marketing_copy: "Wrong", + description: "Naughty" Git::SyncBlog.() diff --git a/test/commands/git/sync_concept_exercise_test.rb b/test/commands/git/sync_concept_exercise_test.rb index 8c9c70b949..d937f5534e 100644 --- a/test/commands/git/sync_concept_exercise_test.rb +++ b/test/commands/git/sync_concept_exercise_test.rb @@ -318,7 +318,7 @@ class Git::SyncConceptExerciseTest < ActiveSupport::TestCase exercise.prerequisites << (create :concept, slug: 'basics', uuid: 'fe345fe6-229b-4b4b-a489-4ed3b77a1d7e') existing_contributorship = create :exercise_contributorship, exercise: exercise, contributor: existing_contributor create :user_exercise_contribution_reputation_token, user: existing_contributor, - params: { contributorship: existing_contributorship } + params: { contributorship: existing_contributorship } perform_enqueued_jobs do Git::SyncConceptExercise.(exercise) diff --git a/test/commands/git/sync_concept_test.rb b/test/commands/git/sync_concept_test.rb index 3af59f61ea..c05c282de4 100644 --- a/test/commands/git/sync_concept_test.rb +++ b/test/commands/git/sync_concept_test.rb @@ -156,7 +156,7 @@ class Git::SyncConceptTest < ActiveSupport::TestCase existing_contributorship = create :concept_contributorship, concept: concept, contributor: existing_contributor create :user_concept_contribution_reputation_token, user: existing_contributor, - params: { contributorship: existing_contributorship } + params: { contributorship: existing_contributorship } perform_enqueued_jobs do Git::SyncConcept.(concept) diff --git a/test/commands/git/sync_main_docs_test.rb b/test/commands/git/sync_main_docs_test.rb index 00945009bc..5f4a42eeea 100644 --- a/test/commands/git/sync_main_docs_test.rb +++ b/test/commands/git/sync_main_docs_test.rb @@ -21,10 +21,10 @@ class Git::SyncMainDocsTest < ActiveSupport::TestCase TestHelpers.use_docs_test_repo! create :document, uuid: "7c7139b9-a228-4691-a4e4-a0c39a6dd615", - slug: "rlly", - git_path: "incorrect/old.md", - title: "Very wrong", - blurb: "Wrong" + slug: "rlly", + git_path: "incorrect/old.md", + title: "Very wrong", + blurb: "Wrong" Git::SyncMainDocs.() diff --git a/test/commands/git/sync_practice_exercise_test.rb b/test/commands/git/sync_practice_exercise_test.rb index a7078b71ae..9bb67f8fd9 100644 --- a/test/commands/git/sync_practice_exercise_test.rb +++ b/test/commands/git/sync_practice_exercise_test.rb @@ -291,7 +291,7 @@ class Git::SyncPracticeExerciseTest < ActiveSupport::TestCase existing_contributorship = create :exercise_contributorship, exercise: exercise, contributor: existing_contributor create :user_exercise_contribution_reputation_token, user: existing_contributor, - params: { contributorship: existing_contributorship } + params: { contributorship: existing_contributorship } perform_enqueued_jobs do Git::SyncPracticeExercise.(exercise) diff --git a/test/commands/git/sync_track_docs_test.rb b/test/commands/git/sync_track_docs_test.rb index f05b01593c..cee1fc0042 100644 --- a/test/commands/git/sync_track_docs_test.rb +++ b/test/commands/git/sync_track_docs_test.rb @@ -18,11 +18,11 @@ class Git::SyncTrackDocsTest < ActiveSupport::TestCase test "updates existing docs" do track = create :track, synced_to_git_sha: "d337d99a9cbee14ebd8390d5d1cf86351d604a3a" create :document, uuid: "7dce5fef-d759-4292-a2b4-ba3ed65f93d7", - track: track, - slug: "rlly", - git_path: "incorrect/old.md", - title: "Very wrong", - blurb: "Wrong" + track: track, + slug: "rlly", + git_path: "incorrect/old.md", + title: "Very wrong", + blurb: "Wrong" Git::SyncTrackDocs.(track) diff --git a/test/commands/git/sync_track_test.rb b/test/commands/git/sync_track_test.rb index f1f6c79321..0e2ab77d67 100644 --- a/test/commands/git/sync_track_test.rb +++ b/test/commands/git/sync_track_test.rb @@ -74,10 +74,10 @@ class Git::SyncTrackTest < ActiveSupport::TestCase test "track is updated when there are changes" do track = create :track, slug: "ruby", - title: "Ruby", - active: true, - blurb: "Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.", # rubocop:disable Layout/LineLength - synced_to_git_sha: "aad630acfbbdef16d90105a205b957c138fa1b93" + title: "Ruby", + active: true, + blurb: "Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.", # rubocop:disable Layout/LineLength + synced_to_git_sha: "aad630acfbbdef16d90105a205b957c138fa1b93" Git::SyncTrack.(track) @@ -86,11 +86,11 @@ class Git::SyncTrackTest < ActiveSupport::TestCase test "track is updated when tags change" do track = create :track, slug: "fsharp", - title: "F#", - active: true, - blurb: "F# is a strongly-typed, functional language that is part of Microsoft's .NET language stack. Although F# is great for data science problems, it can elegantly handle almost every problem you throw at it.", # rubocop:disable Layout/LineLength - tags: ["execution_mode/interpreted", "platform/windows", "platform/linux", "paradigm/declarative", "paradigm/object_oriented"], # rubocop:disable Layout/LineLength - synced_to_git_sha: "0ec511318983b7d27d6a27410509071ee7683e52" + title: "F#", + active: true, + blurb: "F# is a strongly-typed, functional language that is part of Microsoft's .NET language stack. Although F# is great for data science problems, it can elegantly handle almost every problem you throw at it.", # rubocop:disable Layout/LineLength + tags: ["execution_mode/interpreted", "platform/windows", "platform/linux", "paradigm/declarative", "paradigm/object_oriented"], # rubocop:disable Layout/LineLength + synced_to_git_sha: "0ec511318983b7d27d6a27410509071ee7683e52" Git::SyncTrack.(track) diff --git a/test/commands/github/issue/create_or_update_test.rb b/test/commands/github/issue/create_or_update_test.rb index f4655b4267..2a24b544b3 100644 --- a/test/commands/github/issue/create_or_update_test.rb +++ b/test/commands/github/issue/create_or_update_test.rb @@ -64,7 +64,7 @@ class Github::Issue::CreateOrUpdateTest < ActiveSupport::TestCase assert_equal :open, issue.status assert_empty issue.labels assert_equal Time.parse("2020-10-17T02:39:37Z").utc, issue.opened_at - assert issue.opened_by_username.nil? + assert_nil issue.opened_by_username end test "update issue if data has changed" do diff --git a/test/commands/github/issue/sync_repo_test.rb b/test/commands/github/issue/sync_repo_test.rb index 01d0060cab..633a101c13 100644 --- a/test/commands/github/issue/sync_repo_test.rb +++ b/test/commands/github/issue/sync_repo_test.rb @@ -182,7 +182,7 @@ class Github::Issue::SyncRepoTest < ActiveSupport::TestCase assert_equal 'exercism/ruby', issue.repo assert_equal %w[bug good-first-issue], issue.labels.pluck(:name).sort assert_equal Time.parse('2020-10-17T02:39:37Z').utc, issue.opened_at - assert issue.opened_by_username.nil? + assert_nil issue.opened_by_username end test "fetch all issues even if rate limit is reached" do diff --git a/test/commands/github/pull_request/sync_repo_test.rb b/test/commands/github/pull_request/sync_repo_test.rb index 9bf3958c85..0e48ca2272 100644 --- a/test/commands/github/pull_request/sync_repo_test.rb +++ b/test/commands/github/pull_request/sync_repo_test.rb @@ -297,7 +297,7 @@ class Github::PullRequest::SyncRepoTest < ActiveSupport::TestCase Github::PullRequest::SyncRepo.('exercism/ruby') pr = ::Github::PullRequest.find_by(node_id: 'MDExOlB1bGxSZXF1ZXN0NTY4NDMxMTE4') - assert pr.author_username.nil? + assert_nil pr.author_username end test "imports pull request that wasn't merged" do @@ -356,7 +356,7 @@ class Github::PullRequest::SyncRepoTest < ActiveSupport::TestCase Github::PullRequest::SyncRepo.('exercism/ruby') pr = ::Github::PullRequest.find_by(node_id: 'MDExOlB1bGxSZXF1ZXN0NTY4NDMxMTE4') - assert pr.merged_by_username.nil? + assert_nil pr.merged_by_username end test "imports pull request review without reviewer" do @@ -415,7 +415,7 @@ class Github::PullRequest::SyncRepoTest < ActiveSupport::TestCase Github::PullRequest::SyncRepo.('exercism/ruby') review = ::Github::PullRequestReview.find_by(node_id: 'MDE3OlB1bGxSZXF1ZXN0UmV2aWV3NTg5NDY1MzEx') - assert review.reviewer_username.nil? + assert_nil review.reviewer_username end test "fetch all pull requests even if rate limit is reached" do diff --git a/test/commands/github/task/sync_task_test.rb b/test/commands/github/task/sync_task_test.rb index e659ccb39b..dd54efd901 100644 --- a/test/commands/github/task/sync_task_test.rb +++ b/test/commands/github/task/sync_task_test.rb @@ -45,8 +45,8 @@ class Github::Task::SyncRepoTest < ActiveSupport::TestCase create :github_issue_label, issue: issue, name: 'x:type/coding' task = create :github_task, issue_url: issue.github_url, repo: issue.repo, title: issue.title, - opened_at: issue.opened_at, opened_by_username: issue.opened_by_username, - action: :proofread, knowledge: :none, area: :representer, size: :large, type: :docs + opened_at: issue.opened_at, opened_by_username: issue.opened_by_username, + action: :proofread, knowledge: :none, area: :representer, size: :large, type: :docs issue.update!( title: 'Improve CI speed', diff --git a/test/commands/markdown/parse_test.rb b/test/commands/markdown/parse_test.rb index fc2dac7f2f..e3c6e7103a 100644 --- a/test/commands/markdown/parse_test.rb +++ b/test/commands/markdown/parse_test.rb @@ -377,7 +377,7 @@ class Markdown::ParseTest < ActiveSupport::TestCase expected = %(

one

\n

two

\n

three

\n

four

\n
five
\n
six
\n) # rubocop:disable Layout/LineLength assert_equal expected, Markdown::Parse.("# one\n\n## two\n\n### three\n\n#### four\n\n##### five\n\n###### six", heading_ids: true, -lower_heading_levels_by: 0, strip_h1: false) + lower_heading_levels_by: 0, strip_h1: false) end test "heading id for same titles uses sequential numbering" do diff --git a/test/commands/mentor/testimonial/retrieve_test.rb b/test/commands/mentor/testimonial/retrieve_test.rb index 96b23925e9..7dc930a58a 100644 --- a/test/commands/mentor/testimonial/retrieve_test.rb +++ b/test/commands/mentor/testimonial/retrieve_test.rb @@ -41,7 +41,7 @@ class Mentor::Testimonial::RetrieveTest < ActiveSupport::TestCase ruby_bob_req = create :mentor_testimonial, solution: create(:concept_solution, exercise: ruby_bob), mentor: mentor js_bob_req = create :mentor_testimonial, solution: create(:concept_solution, exercise: js_bob), mentor: mentor ruby_strings_req = create :mentor_testimonial, solution: create(:concept_solution, exercise: ruby_strings), - mentor: mentor + mentor: mentor js_strings_req = create :mentor_testimonial, solution: create(:concept_solution, exercise: js_strings), mentor: mentor assert_equal [ diff --git a/test/commands/solution/search_community_solutions_test.rb b/test/commands/solution/search_community_solutions_test.rb index 5b02db5d0f..ebf6d4a933 100644 --- a/test/commands/solution/search_community_solutions_test.rb +++ b/test/commands/solution/search_community_solutions_test.rb @@ -27,9 +27,9 @@ class Solution::SearchCommunitySolutionsTest < ActiveSupport::TestCase user_1 = create :user, handle: 'amy' user_2 = create :user, handle: 'chris' solution_1 = create :concept_solution, exercise: exercise, user: user_1, num_stars: 11, published_at: Time.current, -status: :published + status: :published solution_2 = create :concept_solution, exercise: exercise, user: user_2, num_stars: 22, published_at: Time.current, -status: :published + status: :published # Sanity check: ensure that the results are not returned using the fallback Solution::SearchCommunitySolutions::Fallback.expects(:call).never @@ -124,13 +124,13 @@ class Solution::SearchCommunitySolutionsTest < ActiveSupport::TestCase track = create :track exercise = create :concept_exercise, track: track solution_1 = create :concept_solution, exercise: exercise, num_stars: 11, published_at: Time.current, status: :published, - published_iteration_head_tests_status: :passed + published_iteration_head_tests_status: :passed submission_1 = create :submission, solution: solution_1, tests_status: :passed solution_2 = create :concept_solution, exercise: exercise, num_stars: 22, published_at: Time.current, status: :published, - published_iteration_head_tests_status: :passed + published_iteration_head_tests_status: :passed submission_2 = create :submission, solution: solution_2, tests_status: :passed solution_3 = create :concept_solution, exercise: exercise, num_stars: 33, published_at: Time.current, status: :published, - published_iteration_head_tests_status: :errored + published_iteration_head_tests_status: :errored submission_3 = create :submission, solution: solution_3, tests_status: :failed solution_1.update!(published_iteration: create(:iteration, solution: solution_1, submission: submission_1)) solution_2.update!(published_iteration: create(:iteration, solution: solution_2, submission: submission_2)) @@ -240,9 +240,9 @@ class Solution::SearchCommunitySolutionsTest < ActiveSupport::TestCase track = create :track exercise = create :concept_exercise, track: track least_starred = create :concept_solution, exercise: exercise, num_stars: 2, published_at: Time.current - 1.week, -status: :published + status: :published most_starred = create :concept_solution, exercise: exercise, num_stars: 11, published_at: Time.current - 2.weeks, -status: :published + status: :published # Sanity check: ensure that the results are not returned using the fallback Solution::SearchCommunitySolutions::Fallback.expects(:call).never @@ -256,9 +256,9 @@ class Solution::SearchCommunitySolutionsTest < ActiveSupport::TestCase track = create :track exercise = create :concept_exercise, track: track least_starred = create :concept_solution, exercise: exercise, num_stars: 2, published_at: Time.current - 1.week, -status: :published + status: :published most_starred = create :concept_solution, exercise: exercise, num_stars: 11, published_at: Time.current - 2.weeks, -status: :published + status: :published # Sanity check: ensure that the results are not returned using the fallback Solution::SearchCommunitySolutions::Fallback.expects(:call).never @@ -322,9 +322,9 @@ class Solution::SearchCommunitySolutionsTest < ActiveSupport::TestCase user_1 = create :user, handle: 'amy' user_2 = create :user, handle: 'chris' solution_1 = create :concept_solution, exercise: exercise, user: user_1, num_stars: 11, published_at: Time.current, -status: :published + status: :published solution_2 = create :concept_solution, exercise: exercise, user: user_2, num_stars: 22, published_at: Time.current, -status: :published + status: :published # Unpublished create :concept_solution, exercise: exercise @@ -373,13 +373,13 @@ class Solution::SearchCommunitySolutionsTest < ActiveSupport::TestCase track = create :track exercise = create :concept_exercise, track: track solution_1 = create :concept_solution, exercise: exercise, num_stars: 11, published_at: Time.current, status: :published, -published_iteration_head_tests_status: :passed + published_iteration_head_tests_status: :passed submission_1 = create :submission, solution: solution_1, tests_status: :passed solution_2 = create :concept_solution, exercise: exercise, num_stars: 22, published_at: Time.current, status: :published, -published_iteration_head_tests_status: :passed + published_iteration_head_tests_status: :passed submission_2 = create :submission, solution: solution_2, tests_status: :passed solution_3 = create :concept_solution, exercise: exercise, num_stars: 33, published_at: Time.current, status: :published, -published_iteration_head_tests_status: :errored + published_iteration_head_tests_status: :errored submission_3 = create :submission, solution: solution_3, tests_status: :failed solution_1.update!(published_iteration: create(:iteration, solution: solution_1, submission: submission_1)) solution_2.update!(published_iteration: create(:iteration, solution: solution_2, submission: submission_2)) @@ -405,11 +405,11 @@ class Solution::SearchCommunitySolutionsTest < ActiveSupport::TestCase track = create :track exercise = create :concept_exercise, track: track solution_1 = create :concept_solution, exercise: exercise, git_important_files_hash: exercise.git_important_files_hash, -num_stars: 11, published_at: Time.current, status: :published + num_stars: 11, published_at: Time.current, status: :published solution_2 = create :concept_solution, exercise: exercise, git_important_files_hash: exercise.git_important_files_hash, -num_stars: 22, published_at: Time.current, status: :published + num_stars: 22, published_at: Time.current, status: :published solution_3 = create :concept_solution, exercise: exercise, git_important_files_hash: 'different_hash', num_stars: 33, -published_at: Time.current, status: :published + published_at: Time.current, status: :published # Unpublished create :concept_solution, exercise: exercise @@ -450,9 +450,9 @@ class Solution::SearchCommunitySolutionsTest < ActiveSupport::TestCase track = create :track exercise = create :concept_exercise, track: track least_starred = create :concept_solution, exercise: exercise, num_stars: 11, published_at: Time.current - 1.week, - status: :published + status: :published most_starred = create :concept_solution, exercise: exercise, num_stars: 22, published_at: Time.current - 2.weeks, - status: :published + status: :published assert_equal [most_starred, least_starred], Solution::SearchCommunitySolutions::Fallback.(exercise, 1, 15, :most_starred, "", nil, nil, nil) @@ -462,9 +462,9 @@ class Solution::SearchCommunitySolutionsTest < ActiveSupport::TestCase track = create :track exercise = create :concept_exercise, track: track least_starred = create :concept_solution, exercise: exercise, num_stars: 11, published_at: Time.current - 1.week, - status: :published + status: :published most_starred = create :concept_solution, exercise: exercise, num_stars: 22, published_at: Time.current - 2.weeks, - status: :published + status: :published assert_equal [most_starred, least_starred], Solution::SearchCommunitySolutions::Fallback.(exercise, 1, 15, nil, "", nil, nil, nil) diff --git a/test/commands/solution/search_user_solutions_test.rb b/test/commands/solution/search_user_solutions_test.rb index 4cc66d3ab8..6f560b776a 100644 --- a/test/commands/solution/search_user_solutions_test.rb +++ b/test/commands/solution/search_user_solutions_test.rb @@ -35,7 +35,7 @@ class Solution::SearchUserSolutionsTest < ActiveSupport::TestCase wait_for_opensearch_to_be_synced assert_equal [ruby_bob_solution, ruby_food_solution, js_bob_solution], Solution::SearchUserSolutions.(user) - assert_equal [ruby_bob_solution, ruby_food_solution, js_bob_solution], Solution::SearchUserSolutions.(user, criteria: " ") # rubocop:disable Layout:LineLength + assert_equal [ruby_bob_solution, ruby_food_solution, js_bob_solution], Solution::SearchUserSolutions.(user, criteria: " ") assert_equal [ruby_bob_solution, ruby_food_solution], Solution::SearchUserSolutions.(user, criteria: "ru") assert_equal [ruby_bob_solution, js_bob_solution], Solution::SearchUserSolutions.(user, criteria: "bo") assert_equal [ruby_bob_solution], Solution::SearchUserSolutions.(user, criteria: "ru bo") @@ -148,17 +148,17 @@ class Solution::SearchUserSolutionsTest < ActiveSupport::TestCase user = create :user solution_1 = create :concept_solution, user: user, published_iteration_head_tests_status: :passed, published_at: Time.current, -num_stars: 11 + num_stars: 11 solution_2 = create :concept_solution, user: user, published_iteration_head_tests_status: :passed, published_at: Time.current, -num_stars: 22 + num_stars: 22 solution_3 = create :concept_solution, user: user, published_iteration_head_tests_status: :errored, published_at: Time.current, -num_stars: 33 + num_stars: 33 solution_1.update!(published_iteration: create(:iteration, solution: solution_1, - submission: create(:submission, solution: solution_1))) + submission: create(:submission, solution: solution_1))) solution_2.update!(published_iteration: create(:iteration, solution: solution_2, - submission: create(:submission, solution: solution_2))) + submission: create(:submission, solution: solution_2))) solution_3.update!(published_iteration: create(:iteration, solution: solution_3, - submission: create(:submission, solution: solution_3))) + submission: create(:submission, solution: solution_3))) # Sanity check: ensure that the results are not returned using the fallback Solution::SearchUserSolutions::Fallback.expects(:call).never @@ -185,10 +185,11 @@ class Solution::SearchUserSolutionsTest < ActiveSupport::TestCase exercise_2 = create :concept_exercise exercise_3 = create :concept_exercise solution_1 = create :concept_solution, user: user, exercise: exercise_1, -git_important_files_hash: exercise_1.git_important_files_hash, num_stars: 11 + git_important_files_hash: exercise_1.git_important_files_hash, num_stars: 11 solution_2 = create :concept_solution, user: user, exercise: exercise_2, -git_important_files_hash: exercise_2.git_important_files_hash, num_stars: 22 - solution_3 = create :concept_solution, user: user, exercise: exercise_3, git_important_files_hash: 'different_hash', num_stars: 33 + git_important_files_hash: exercise_2.git_important_files_hash, num_stars: 22 + solution_3 = create :concept_solution, user: user, exercise: exercise_3, + git_important_files_hash: 'different_hash', num_stars: 33 # Sanity check: ensure that the results are not returned using the fallback Solution::SearchUserSolutions::Fallback.expects(:call).never @@ -281,7 +282,7 @@ class Solution::SearchUserSolutionsTest < ActiveSupport::TestCase Elasticsearch::Client.expects(:new).raises Solution::SearchUserSolutions.(user, page: 2, per: 15, track_slug: "csharp", status: "published", mentoring_status: "none", -criteria: "foobar", order: "oldest_first", sync_status: "up_to_date", tests_status: "passed", head_tests_status: "failed") + criteria: "foobar", order: "oldest_first", sync_status: "up_to_date", tests_status: "passed", head_tests_status: "failed") end test "fallback is called when elasticsearch times out" do @@ -306,7 +307,7 @@ class Solution::SearchUserSolutionsTest < ActiveSupport::TestCase :up_to_date, "passed", "failed") Solution::SearchUserSolutions.(user, page: 2, per: 15, track_slug: "csharp", status: "published", mentoring_status: "none", -criteria: "foobar", order: "oldest_first", sync_status: 'up_to_date', tests_status: "passed", head_tests_status: "failed") + criteria: "foobar", order: "oldest_first", sync_status: 'up_to_date', tests_status: "passed", head_tests_status: "failed") end test "fallback: no options returns everything" do @@ -438,17 +439,17 @@ class Solution::SearchUserSolutionsTest < ActiveSupport::TestCase test "fallback: filter: head_tests_status" do user = create :user solution_1 = create :concept_solution, user: user, published_iteration_head_tests_status: :passed, published_at: Time.current, -num_stars: 11 + num_stars: 11 solution_2 = create :concept_solution, user: user, published_iteration_head_tests_status: :passed, published_at: Time.current, -num_stars: 22 + num_stars: 22 solution_3 = create :concept_solution, user: user, published_iteration_head_tests_status: :errored, published_at: Time.current, -num_stars: 33 + num_stars: 33 solution_1.update!(published_iteration: create(:iteration, solution: solution_1, -submission: create(:submission, solution: solution_1))) + submission: create(:submission, solution: solution_1))) solution_2.update!(published_iteration: create(:iteration, solution: solution_2, -submission: create(:submission, solution: solution_2))) + submission: create(:submission, solution: solution_2))) solution_3.update!(published_iteration: create(:iteration, solution: solution_3, -submission: create(:submission, solution: solution_3))) + submission: create(:submission, solution: solution_3))) # A different user create :concept_solution @@ -469,17 +470,17 @@ class Solution::SearchUserSolutionsTest < ActiveSupport::TestCase exercise_2 = create :concept_exercise exercise_3 = create :concept_exercise solution_1 = create :concept_solution, user: user, exercise: exercise_1, -git_important_files_hash: exercise_1.git_important_files_hash, published_at: Time.current, num_stars: 11 + git_important_files_hash: exercise_1.git_important_files_hash, published_at: Time.current, num_stars: 11 solution_2 = create :concept_solution, user: user, exercise: exercise_2, -git_important_files_hash: exercise_2.git_important_files_hash, published_at: Time.current, num_stars: 22 + git_important_files_hash: exercise_2.git_important_files_hash, published_at: Time.current, num_stars: 22 solution_3 = create :concept_solution, user: user, exercise: exercise_3, git_important_files_hash: 'different_hash', -published_at: Time.current, num_stars: 33 + published_at: Time.current, num_stars: 33 solution_1.update!(published_iteration: create(:iteration, solution: solution_1, -submission: create(:submission, solution: solution_1))) + submission: create(:submission, solution: solution_1))) solution_2.update!(published_iteration: create(:iteration, solution: solution_2, -submission: create(:submission, solution: solution_2))) + submission: create(:submission, solution: solution_2))) solution_3.update!(published_iteration: create(:iteration, solution: solution_3, -submission: create(:submission, solution: solution_3))) + submission: create(:submission, solution: solution_3))) # A different user create :concept_solution diff --git a/test/commands/submission/test_run/process_test.rb b/test/commands/submission/test_run/process_test.rb index 2b39ddba95..36b33d4b3d 100644 --- a/test/commands/submission/test_run/process_test.rb +++ b/test/commands/submission/test_run/process_test.rb @@ -95,7 +95,7 @@ class Submission::TestRun::ProcessTest < ActiveSupport::TestCase submission = create :submission results = { 'status' => 'pass', 'message' => "", 'tests' => [] } job = create_test_runner_job!(submission, execution_status: 200, results: results, - git_sha: 'ae1a56deb0941ac53da22084af8eb6107d4b5c3a') + git_sha: 'ae1a56deb0941ac53da22084af8eb6107d4b5c3a') assert submission.reload.tests_not_queued? # Sanity @@ -139,7 +139,7 @@ class Submission::TestRun::ProcessTest < ActiveSupport::TestCase results = { 'status' => 'pass', 'message' => "", 'tests' => [] } job = create_test_runner_job!(create(:submission), execution_status: 200, results: results, - git_sha: "ae1a56deb0941ac53da22084af8eb6107d4b5c3a") + git_sha: "ae1a56deb0941ac53da22084af8eb6107d4b5c3a") IterationChannel.expects(:broadcast!).never SubmissionChannel.expects(:broadcast!).never @@ -157,7 +157,7 @@ class Submission::TestRun::ProcessTest < ActiveSupport::TestCase create :iteration, solution: solution, submission: submission results = { 'status' => 'pass', 'message' => "", 'tests' => [] } job = create_test_runner_job!(submission, execution_status: 200, results: results, - git_sha: "ae1a56deb0941ac53da22084af8eb6107d4b5c3a") + git_sha: "ae1a56deb0941ac53da22084af8eb6107d4b5c3a") Submission::TestRun::Process.(job) diff --git a/test/commands/track/create_test.rb b/test/commands/track/create_test.rb index 6256e5273c..999162508f 100644 --- a/test/commands/track/create_test.rb +++ b/test/commands/track/create_test.rb @@ -3,7 +3,7 @@ class Track::CreateTest < ActiveSupport::TestCase test "creates track" do Track::Create.('fsharp', title: 'F#', blurb: 'F# is a functional language', repo_url: 'https://github.com/exercism/fsharp', synced_to_git_sha: 'HEAD', # rubocop:disable Layout/LineLength - tags: ['Compiles to:Binary', 'Runtime:Browser']) + tags: ['Compiles to:Binary', 'Runtime:Browser']) assert_equal 1, Track.count track = Track.last @@ -18,7 +18,7 @@ class Track::CreateTest < ActiveSupport::TestCase test "creates contributor team if track does not exist" do track = Track::Create.('fsharp', title: 'F#', blurb: 'F# is a functional language', repo_url: 'https://github.com/exercism/fsharp', synced_to_git_sha: 'HEAD', # rubocop:disable Layout/LineLength - tags: ['Compiles to:Binary', 'Runtime:Browser']) + tags: ['Compiles to:Binary', 'Runtime:Browser']) assert_equal 1, ContributorTeam.count team = ContributorTeam.last @@ -33,7 +33,7 @@ class Track::CreateTest < ActiveSupport::TestCase updated_at_before_create = team.updated_at Track::Create.('fsharp', title: 'F#', blurb: 'F# is a functional language', repo_url: 'https://github.com/exercism/fsharp', synced_to_git_sha: 'HEAD', # rubocop:disable Layout/LineLength - tags: ['Compiles to:Binary', 'Runtime:Browser']) + tags: ['Compiles to:Binary', 'Runtime:Browser']) assert_equal updated_at_before_create, team.reload.updated_at end @@ -41,7 +41,7 @@ class Track::CreateTest < ActiveSupport::TestCase test "idempotent" do assert_idempotent_command do Track::Create.('fsharp', title: 'F#', blurb: 'F# is a functional language', repo_url: 'https://github.com/exercism/fsharp', synced_to_git_sha: 'HEAD', # rubocop:disable Layout/LineLength - tags: ['Compiles to:Binary', 'Runtime:Browser']) + tags: ['Compiles to:Binary', 'Runtime:Browser']) end end end diff --git a/test/commands/track/update_median_wait_time_tests.rb b/test/commands/track/update_median_wait_time_tests.rb index de8c052547..59d7085fd4 100644 --- a/test/commands/track/update_median_wait_time_tests.rb +++ b/test/commands/track/update_median_wait_time_tests.rb @@ -187,29 +187,29 @@ class Track::UpdateMedianWaitTimesTest < ActiveSupport::TestCase Track::UpdateMedianWaitTimes.() request_1 = create :mentor_request, solution: solution_1, exercise: solution_1.exercise, track: solution_1.track, -created_at: Time.current - 18.minutes + created_at: Time.current - 18.minutes request_2 = create :mentor_request, solution: solution_2, exercise: solution_2.exercise, track: solution_2.track, -created_at: Time.current - 50.minutes + created_at: Time.current - 50.minutes request_3 = create :mentor_request, solution: solution_3, exercise: solution_3.exercise, track: solution_3.track, -created_at: Time.current - 90.minutes + created_at: Time.current - 90.minutes request_4 = create :mentor_request, solution: solution_3, exercise: solution_3.exercise, track: solution_3.track, -created_at: Time.current - 5.minutes + created_at: Time.current - 5.minutes request_5 = create :mentor_request, solution: solution_4, exercise: solution_4.exercise, track: solution_4.track, -created_at: Time.current - 19.minutes + created_at: Time.current - 19.minutes request_6 = create :mentor_request, solution: solution_5, exercise: solution_5.exercise, track: solution_5.track, -created_at: Time.current - 31.minutes + created_at: Time.current - 31.minutes create :mentor_discussion, request: request_1, solution: request_1.solution, track: request_1.track, -created_at: Time.current - 11.minutes + created_at: Time.current - 11.minutes create :mentor_discussion, request: request_2, solution: request_2.solution, track: request_2.track, -created_at: Time.current - 22.minutes + created_at: Time.current - 22.minutes create :mentor_discussion, request: request_3, solution: request_3.solution, track: request_3.track, -created_at: Time.current - 33.minutes + created_at: Time.current - 33.minutes create :mentor_discussion, request: request_4, solution: request_4.solution, track: request_4.track, -created_at: Time.current - 2.minutes + created_at: Time.current - 2.minutes create :mentor_discussion, request: request_5, solution: request_5.solution, track: request_5.track, -created_at: Time.current - 16.minutes + created_at: Time.current - 16.minutes create :mentor_discussion, request: request_6, solution: request_6.solution, track: request_6.track, -created_at: Time.current - 29.minutes + created_at: Time.current - 29.minutes Track::UpdateMedianWaitTimes.() diff --git a/test/commands/user/notification/mark_relevant_as_read_test.rb b/test/commands/user/notification/mark_relevant_as_read_test.rb index 8c85de4958..344d66c79e 100644 --- a/test/commands/user/notification/mark_relevant_as_read_test.rb +++ b/test/commands/user/notification/mark_relevant_as_read_test.rb @@ -7,16 +7,16 @@ class User::Notifications::MarkRelevantAsReadTest < ActiveSupport::TestCase discussion_post_1 = create(:mentor_discussion_post, discussion: discussion) discussion_post_2 = create(:mentor_discussion_post, discussion: discussion) relevant_1 = create :mentor_started_discussion_notification, status: :pending, user: user, - params: { discussion: discussion } + params: { discussion: discussion } relevant_2 = create :mentor_replied_to_discussion_notification, status: :pending, user: user, - params: { discussion_post: discussion_post_1 } + params: { discussion_post: discussion_post_1 } relevant_3 = create :mentor_replied_to_discussion_notification, status: :pending, user: user, - params: { discussion_post: discussion_post_2 } + params: { discussion_post: discussion_post_2 } irrelevant_1 = create :mentor_started_discussion_notification, status: :pending, params: { discussion: discussion } irrelevant_2 = create :mentor_started_discussion_notification, status: :pending, user: user irrelevant_3 = create :mentor_replied_to_discussion_notification, status: :pending, user: user irrelevant_4 = create :mentor_replied_to_discussion_notification, status: :pending, - params: { discussion_post: discussion_post_2 } + params: { discussion_post: discussion_post_2 } User::Notification::MarkRelevantAsRead.(user, relevant_1.path) @@ -28,7 +28,7 @@ class User::Notifications::MarkRelevantAsReadTest < ActiveSupport::TestCase user = create :user discussion = create(:mentor_discussion) notification = create :mentor_started_discussion_notification, status: :pending, user: user, - params: { discussion: discussion } + params: { discussion: discussion } NotificationsChannel.expects(:broadcast_changed!).with(user) @@ -39,7 +39,7 @@ class User::Notifications::MarkRelevantAsReadTest < ActiveSupport::TestCase user = create :user discussion = create(:mentor_discussion) notification = create :mentor_started_discussion_notification, status: :read, user: user, - params: { discussion: discussion } + params: { discussion: discussion } NotificationsChannel.expects(:broadcast_changed!).never diff --git a/test/commands/user/reputation_period/search_test.rb b/test/commands/user/reputation_period/search_test.rb index 313d651075..3f3f4369be 100644 --- a/test/commands/user/reputation_period/search_test.rb +++ b/test/commands/user/reputation_period/search_test.rb @@ -60,14 +60,14 @@ class User::ReputationPeriod::SearchTest < ActiveSupport::TestCase create :user_reputation_period, user: small_contributor, period: :forever, reputation: 300 create :user_reputation_period, user: irrelevant_contributor, period: :forever, reputation: 50, about: :track, - track_id: create(:track).id + track_id: create(:track).id create :user_reputation_period, user: big_contributor, period: :forever, reputation: 50, about: :track, - track_id: track.id + track_id: track.id create :user_reputation_period, user: small_contributor, period: :forever, reputation: 30, about: :track, - track_id: track.id + track_id: track.id create :user_reputation_period, user: medium_contributor, period: :forever, reputation: 40, about: :track, - track_id: track.id + track_id: track.id assert_search [big_contributor, medium_contributor, small_contributor], User::ReputationPeriod::Search.(track_id: track.id) diff --git a/test/commands/user_track/reset_test.rb b/test/commands/user_track/reset_test.rb index eee476d5b7..560eac4e6a 100644 --- a/test/commands/user_track/reset_test.rb +++ b/test/commands/user_track/reset_test.rb @@ -17,11 +17,11 @@ class UserTrack::ResetTest < ActiveSupport::TestCase assert_equal "#{user.id}:#{practice_exercise.id}", solution_2.unique_key user_track = create :user_track, user: user, track: track, - objectives: "something", - anonymous_during_mentoring: true, - created_at: Time.current - 1.week, - updated_at: Time.current - 1.week, - last_touched_at: Time.current - 1.week + objectives: "something", + anonymous_during_mentoring: true, + created_at: Time.current - 1.week, + updated_at: Time.current - 1.week, + last_touched_at: Time.current - 1.week user_track.expects(:reset_summary!) diff --git a/test/commands/user_track/retrieve_recently_active_solutions_test.rb b/test/commands/user_track/retrieve_recently_active_solutions_test.rb index 560cca8917..900cf2e1ab 100644 --- a/test/commands/user_track/retrieve_recently_active_solutions_test.rb +++ b/test/commands/user_track/retrieve_recently_active_solutions_test.rb @@ -25,7 +25,7 @@ class UserTrack::RetrieveRecentlyActiveSolutionsTest < ActiveSupport::TestCase solution = create :concept_solution create :started_exercise_user_activity, user: user, track: track, solution: solution create :started_exercise_user_activity, user: user, track: create(:track, :random_slug), - solution: create(:concept_solution) + solution: create(:concept_solution) create :started_exercise_user_activity, track: track, solution: create(:concept_solution) activities = UserTrack::RetrieveRecentlyActiveSolutions.(user_track) diff --git a/test/controllers/api/community_solutions_controller_test.rb b/test/controllers/api/community_solutions_controller_test.rb index c63dc24278..3597db8276 100644 --- a/test/controllers/api/community_solutions_controller_test.rb +++ b/test/controllers/api/community_solutions_controller_test.rb @@ -63,10 +63,10 @@ class CommunitySolutionsControllerTest < API::BaseTestCase track = create :track exercise = create :concept_exercise, :random_slug, track: track solution_1 = create :concept_solution, exercise: exercise, published_at: Time.current, num_stars: 11, -published_iteration_head_tests_status: :queued + published_iteration_head_tests_status: :queued create :iteration, solution: solution_1 solution_2 = create :concept_solution, exercise: exercise, published_at: Time.current, num_stars: 22, -published_iteration_head_tests_status: :passed + published_iteration_head_tests_status: :passed create :iteration, solution: solution_2 create :concept_solution, published_at: Time.current, num_stars: 33 diff --git a/test/controllers/api/donations/subscriptions_controller_test.rb b/test/controllers/api/donations/subscriptions_controller_test.rb index 7f6d5938d6..765684ed52 100644 --- a/test/controllers/api/donations/subscriptions_controller_test.rb +++ b/test/controllers/api/donations/subscriptions_controller_test.rb @@ -34,7 +34,7 @@ class Donations::SubscriptionsControllerTest < API::BaseTestCase setup_user(user) patch update_amount_api_donations_subscription_path(subscription.id, amount_in_cents: amount_in_cents), headers: @headers, - as: :json + as: :json assert_response 200 expected = { subscription: { links: { index: donations_settings_url } } } assert_equal(expected.to_json, response.body) diff --git a/test/controllers/api/mentoring/discussions_controller_test.rb b/test/controllers/api/mentoring/discussions_controller_test.rb index 11422b3c88..3de16f19f3 100644 --- a/test/controllers/api/mentoring/discussions_controller_test.rb +++ b/test/controllers/api/mentoring/discussions_controller_test.rb @@ -1,7 +1,6 @@ require_relative '../base_test_case' class API::Mentoring::DiscussionsControllerTest < API::BaseTestCase - include Webpacker::Helper include ActionView::Helpers::AssetUrlHelper guard_incorrect_token! :api_mentoring_discussions_path diff --git a/test/controllers/api/mentoring/tracks_controller_test.rb b/test/controllers/api/mentoring/tracks_controller_test.rb index e963f79972..5ca32e81d6 100644 --- a/test/controllers/api/mentoring/tracks_controller_test.rb +++ b/test/controllers/api/mentoring/tracks_controller_test.rb @@ -31,7 +31,7 @@ class API::Mentoring::TracksControllerTest < API::BaseTestCase setup_user(user) get api_mentoring_tracks_path, headers: @headers, as: :json, - params: { criteria: "ruby" } + params: { criteria: "ruby" } assert_response 200 expected = { @@ -68,7 +68,7 @@ class API::Mentoring::TracksControllerTest < API::BaseTestCase setup_user(user) get mentored_api_mentoring_tracks_path, headers: @headers, as: :json, - params: { criteria: "ruby" } + params: { criteria: "ruby" } assert_response 200 expected = { diff --git a/test/controllers/legacy_controller_test.rb b/test/controllers/legacy_controller_test.rb index 225e2b19de..de3c7c4f41 100644 --- a/test/controllers/legacy_controller_test.rb +++ b/test/controllers/legacy_controller_test.rb @@ -23,9 +23,8 @@ class LegacyControllerTest < ActionDispatch::IntegrationTest end test "solution with user's solution" do - user = create :user - solution = create :concept_solution, user: user - sign_in!(user) + solution = create :concept_solution + sign_in!(solution.user) get "/my/solutions/#{solution.uuid}" assert_redirected_to "https://test.exercism.org/tracks/#{solution.track.slug}/exercises/#{solution.exercise.slug}" @@ -67,22 +66,19 @@ class LegacyControllerTest < ActionDispatch::IntegrationTest end test "mentor solution with discussion" do - user = create :user solution = create :concept_solution - discussion = create :mentor_discussion, solution: solution, mentor: user + discussion = create :mentor_discussion, solution:, mentor: solution.user - sign_in!(user) + sign_in!(solution.user) get "/mentor/solutions/#{solution.uuid}" - assert_redirected_to "http://www.example.com/mentoring/discussions/#{discussion.uuid}" + assert_redirected_to "http://test.exercism.org/mentoring/discussions/#{discussion.uuid}" end test "mentor solution 404s for different mentor" do - user = create :user - solution = create :concept_solution - create :mentor_discussion, solution: solution + discussion = create :mentor_discussion - sign_in!(user) - get "/mentor/solutions/#{solution.uuid}" + sign_in!(discussion.solution.user) + get "/mentor/solutions/#{discussion.solution.uuid}" assert_response 404 end diff --git a/test/controllers/pages_controller_test.rb b/test/controllers/pages_controller_test.rb index b5cf3efeba..df7e37f75d 100644 --- a/test/controllers/pages_controller_test.rb +++ b/test/controllers/pages_controller_test.rb @@ -9,7 +9,7 @@ class PagesControllerTest < ActionDispatch::IntegrationTest test "index redirects if logged n" do sign_in! get "/" - assert_redirected_to "http://www.example.com/dashboard" + assert_redirected_to "http://test.exercism.org/dashboard" end test "health_check works" do diff --git a/test/helpers/react_components/contributing/tasks_list_test.rb b/test/helpers/react_components/contributing/tasks_list_test.rb index 0d7e79ee76..55fe9974be 100644 --- a/test/helpers/react_components/contributing/tasks_list_test.rb +++ b/test/helpers/react_components/contributing/tasks_list_test.rb @@ -6,13 +6,13 @@ class TasksListTest < ReactComponentTestCase track = create :track, slug: 'ruby' task_1 = create :github_task, issue_url: 'https://github.com/exercism/ruby/issues/888', title: 'Improve test speed', - opened_at: Time.parse("2021-03-05T23:23:00Z").utc, opened_by_username: 'iHiD', - action: :fix, knowledge: :elementary, area: :analyzer, size: :tiny, type: :ci, - repo: 'exercism/ruby', track: track + opened_at: Time.parse("2021-03-05T23:23:00Z").utc, opened_by_username: 'iHiD', + action: :fix, knowledge: :elementary, area: :analyzer, size: :tiny, type: :ci, + repo: 'exercism/ruby', track: track task_2 = create :github_task, issue_url: 'https://github.com/exercism/ruby/issues/312', title: 'Sync anagram', - opened_at: Time.parse("2020-10-17T02:39:37Z").utc, opened_by_username: 'ErikSchierboom', - action: :fix, knowledge: :none, area: :analyzer, size: :small, type: :ci, - repo: 'exercism/ruby', track: track + opened_at: Time.parse("2020-10-17T02:39:37Z").utc, opened_by_username: 'ErikSchierboom', + action: :fix, knowledge: :none, area: :analyzer, size: :small, type: :ci, + repo: 'exercism/ruby', track: track params = { actions: ["fix"], diff --git a/test/helpers/turbo_assertions_helper.rb b/test/helpers/turbo_assertions_helper.rb index fddaf8a52b..61d4e3e7b1 100644 --- a/test/helpers/turbo_assertions_helper.rb +++ b/test/helpers/turbo_assertions_helper.rb @@ -1,5 +1,5 @@ module TurboAssertionsHelper - TURBO_VISIT = /Turbo\.visit\("([^"]+)", {"action":"([^"]+)"}\)/.freeze + TURBO_VISIT = /Turbo\.visit\("([^"]+)", {"action":"([^"]+)"}\)/ def assert_redirected_to(options = {}, message = nil) if turbo_request? diff --git a/test/helpers/view_components/track/exercise_status_tag_test.rb b/test/helpers/view_components/track/exercise_status_tag_test.rb index 769707e000..2b56062bec 100644 --- a/test/helpers/view_components/track/exercise_status_tag_test.rb +++ b/test/helpers/view_components/track/exercise_status_tag_test.rb @@ -1,8 +1,6 @@ require "test_helper" class ViewComponents::Track::ExerciseStatusTagTest < ActionView::TestCase - include Webpacker::Helper - test "available" do assert_tag(:available, "Available", "available") end diff --git a/test/helpers/view_components/track/solution_activity_test.rb b/test/helpers/view_components/track/solution_activity_test.rb index 6522fd9bd6..9646e14bef 100644 --- a/test/helpers/view_components/track/solution_activity_test.rb +++ b/test/helpers/view_components/track/solution_activity_test.rb @@ -2,7 +2,6 @@ class ViewComponents::Track::SolutionActivityTest < ActionView::TestCase include IconsHelper - include Webpacker::Helper test "started" do track = create :track, slug: 'ruby' diff --git a/test/javascript/tsconfig.json b/test/javascript/tsconfig.json index 5c4edaa858..0ffbc064b0 100644 --- a/test/javascript/tsconfig.json +++ b/test/javascript/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "types": ["webpack-env", "../../app/javascript/declarations", "jest"] + "types": ["../../app/javascript/declarations", "jest"] }, "includes": ["**/*.spec.ts", "**/*.spec.tsx"] } diff --git a/test/misc/image_analysis_test.rb b/test/misc/image_analysis_test.rb index fb90f131a7..8bfe824db8 100644 --- a/test/misc/image_analysis_test.rb +++ b/test/misc/image_analysis_test.rb @@ -10,7 +10,7 @@ class ImageAnalysisTest < ActiveSupport::TestCase user.avatar.analyze blob = ActiveStorage::Blob.last - refute_nil blob.metadata["width"] - refute_nil blob.metadata["height"] + assert blob.metadata["analyzed"] + assert blob.metadata["identified"] end end diff --git a/test/models/exercise/representation_test.rb b/test/models/exercise/representation_test.rb index b5aeb0a62a..5cb8106aa0 100644 --- a/test/models/exercise/representation_test.rb +++ b/test/models/exercise/representation_test.rb @@ -13,7 +13,7 @@ class Exercise::RepresentationTest < ActiveSupport::TestCase refute create(:exercise_representation, feedback_markdown: nil, feedback_author: user).has_feedback? refute create(:exercise_representation, feedback_markdown: "foo", feedback_author: user).has_feedback? assert create(:exercise_representation, feedback_markdown: "foo", feedback_author: user, - feedback_type: :non_actionable).has_feedback? + feedback_type: :non_actionable).has_feedback? end test "has_essential_feedback?" do diff --git a/test/models/exercise_test.rb b/test/models/exercise_test.rb index a635a1df0e..f3aef56fff 100644 --- a/test/models/exercise_test.rb +++ b/test/models/exercise_test.rb @@ -81,7 +81,7 @@ class ExerciseTest < ActiveSupport::TestCase test "git_important_files_sha is re-generated when git_sha changes" do exercise = create :practice_exercise, slug: 'allergies', git_sha: '6f169b92d8500d9ec5f6e69d6927bf732ab5274a', - git_important_files_hash: nil + git_important_files_hash: nil assert_equal 'b428b458004f45ba78c4b9f0c386f9987a17452e', exercise.git_important_files_hash exercise.update!(git_sha: '9aba0406b02303efe9542e48ab6f4eee0b00e6f1') diff --git a/test/models/solution_test.rb b/test/models/solution_test.rb index 092d9afd5e..11bc69ad57 100644 --- a/test/models/solution_test.rb +++ b/test/models/solution_test.rb @@ -14,7 +14,7 @@ class SolutionTest < ActiveSupport::TestCase solution = build solution_type, uuid: nil assert_nil solution.uuid solution.save! - refute solution.uuid.nil? + refute_nil solution.uuid end test "#{solution_type}: doesn't override uuid" do diff --git a/test/models/submission_test.rb b/test/models/submission_test.rb index 69a91043ea..8c0c64dedd 100644 --- a/test/models/submission_test.rb +++ b/test/models/submission_test.rb @@ -47,11 +47,11 @@ class SubmissionTest < ActiveSupport::TestCase # Create two head runs to check we get the latest create :submission_test_run, submission: submission, git_sha: SecureRandom.uuid, git_important_files_hash: exercise_hash head_run_2 = create :submission_test_run, submission: submission, git_sha: SecureRandom.uuid, - git_important_files_hash: exercise_hash + git_important_files_hash: exercise_hash # Create two submission runs to check we get the latest create :submission_test_run, submission: submission, git_sha: submission_sha, git_important_files_hash: SecureRandom.uuid submission_run_2 = create :submission_test_run, submission: submission, git_sha: submission_sha, - git_important_files_hash: SecureRandom.uuid + git_important_files_hash: SecureRandom.uuid create :submission_test_run, submission: submission, git_sha: SecureRandom.uuid, git_important_files_hash: SecureRandom.uuid # Sanity @@ -192,7 +192,7 @@ class SubmissionTest < ActiveSupport::TestCase submission = create :submission, representation_status: :generated create :submission_representation, ast_digest: ast_digest, submission: submission create :exercise_representation, ast_digest: ast_digest, exercise: submission.exercise, - feedback_markdown: markdown, feedback_author: author, feedback_type: :essential + feedback_markdown: markdown, feedback_author: author, feedback_type: :essential expected = { html: "

foobar

\n", @@ -219,7 +219,7 @@ class SubmissionTest < ActiveSupport::TestCase comments: ["ruby.two-fer.incorrect_default_param"] } create :exercise_representation, ast_digest: ast_digest, exercise: submission.exercise, - feedback_markdown: markdown, feedback_author: author + feedback_markdown: markdown, feedback_author: author expected = { summary: "Some summary", diff --git a/test/models/user/notifications/acquired_badge_notification_test.rb b/test/models/user/notifications/acquired_badge_notification_test.rb index 1e7825553c..db8a2fde6d 100644 --- a/test/models/user/notifications/acquired_badge_notification_test.rb +++ b/test/models/user/notifications/acquired_badge_notification_test.rb @@ -2,7 +2,6 @@ class User::Notifications::AcquiredBadgeNotificationTest < ActiveSupport::TestCase include ActionView::Helpers::AssetUrlHelper - include Webpacker::Helper test "keys are valid" do user = create :user diff --git a/test/models/user/notifications/added_to_contributors_page_notification_test.rb b/test/models/user/notifications/added_to_contributors_page_notification_test.rb index bea530cd89..8f77f8f8eb 100644 --- a/test/models/user/notifications/added_to_contributors_page_notification_test.rb +++ b/test/models/user/notifications/added_to_contributors_page_notification_test.rb @@ -2,19 +2,15 @@ class User::Notifications::AddedToContributorsPageNotificationTest < ActiveSupport::TestCase include ActionView::Helpers::AssetUrlHelper - include Webpacker::Helper test "keys are valid" do user = create :user - notification = User::Notifications::AddedToContributorsPageNotification.create!(user: user) + notification = User::Notifications::AddedToContributorsPageNotification.create!(user:) assert_equal "#{user.id}|added_to_contributors_page|", notification.uniqueness_key assert_equal "You now appear on our Contributors page. Thank you for contributing to Exercism!", notification.text assert_equal :icon, notification.image_type - assert_equal asset_pack_url( - "media/images/icons/contributors.svg", - host: Rails.application.config.action_controller.asset_host - ), notification.image_url + assert notification.image_url.starts_with?('/assets/icons/contributors-') assert_equal Exercism::Routes.contributing_contributors_url, notification.url assert_equal "/contributing/contributors", notification.path end diff --git a/test/models/user/notifications/joined_exercism_notification_test.rb b/test/models/user/notifications/joined_exercism_notification_test.rb index 23d0d67b68..fbf87a373b 100644 --- a/test/models/user/notifications/joined_exercism_notification_test.rb +++ b/test/models/user/notifications/joined_exercism_notification_test.rb @@ -2,7 +2,6 @@ class User::Notifications::JoinedExercismNotificationTest < ActiveSupport::TestCase include ActionView::Helpers::AssetUrlHelper - include Webpacker::Helper test "keys are valid" do user = create :user diff --git a/test/models/user/notifications/nudge_to_request_mentoring_notification_test.rb b/test/models/user/notifications/nudge_to_request_mentoring_notification_test.rb index 6b3856684f..e5fbaca5a0 100644 --- a/test/models/user/notifications/nudge_to_request_mentoring_notification_test.rb +++ b/test/models/user/notifications/nudge_to_request_mentoring_notification_test.rb @@ -2,24 +2,18 @@ class User::Notifications::NudgeToRequestMentoringNotificationTest < ActiveSupport::TestCase include ActionView::Helpers::AssetUrlHelper - include Webpacker::Helper test "keys are valid" do user = create :user track = create :track - notification = User::Notifications::NudgeToRequestMentoringNotification.create!(user: user, track: track) + notification = User::Notifications::NudgeToRequestMentoringNotification.create!(user:, track:) url = Exercism::Routes.track_url(track, notification_uuid: notification.uuid, anchor: "mentoring") - icon = asset_pack_url( - "media/images/icons/mentoring-gradient.svg", - host: Rails.application.config.action_controller.asset_host - ) - assert_equal "#{user.id}|nudge_to_request_mentoring|", notification.uniqueness_key assert_equal "It's time to get mentored! Learning with our mentors is an amazing way to level up your knowledge, and it's 100% free. Choose one of your solutions to begin.", notification.text # rubocop:disable Layout/LineLength assert_equal :icon, notification.image_type - assert_equal icon, notification.image_url + assert notification.image_url.starts_with?('/assets/icons/mentoring-gradient-') assert_equal url, notification.url end end diff --git a/test/models/user/reputation_tokens/published_solution_token_test.rb b/test/models/user/reputation_tokens/published_solution_token_test.rb index 719d07b9ef..6ee09604bd 100644 --- a/test/models/user/reputation_tokens/published_solution_token_test.rb +++ b/test/models/user/reputation_tokens/published_solution_token_test.rb @@ -30,19 +30,19 @@ class User::ReputationTokens::PublishedSolutionTokenTest < ActiveSupport::TestCa test "correct levels" do token = User::ReputationToken::Create.(create(:user), :published_solution, solution: create(:practice_solution, :published), -level: :medium) + level: :medium) assert_equal 2, token.value token = User::ReputationToken::Create.(create(:user), :published_solution, solution: create(:practice_solution, :published), -level: :easy) + level: :easy) assert_equal 1, token.value token = User::ReputationToken::Create.(create(:user), :published_solution, solution: create(:practice_solution, :published), -level: :hard) + level: :hard) assert_equal 3, token.value token = User::ReputationToken::Create.(create(:user), :published_solution, solution: create(:concept_solution, :published), -level: :concept) + level: :concept) assert_equal 1, token.value end end diff --git a/test/models/user_track_test.rb b/test/models/user_track_test.rb index bbca41886a..6bbbb38477 100644 --- a/test/models/user_track_test.rb +++ b/test/models/user_track_test.rb @@ -406,11 +406,11 @@ class UserTrackTest < ActiveSupport::TestCase create :mentor_started_discussion_notification, user: user, status: :unread create :mentor_started_discussion_notification, user: user, status: :read create :mentor_started_discussion_notification, user: user, status: :pending, - params: { discussion: create(:mentor_discussion, solution: solution) } + params: { discussion: create(:mentor_discussion, solution: solution) } create :mentor_started_discussion_notification, user: user, status: :read, - params: { discussion: create(:mentor_discussion, solution: solution) } + params: { discussion: create(:mentor_discussion, solution: solution) } create :mentor_started_discussion_notification, status: :unread, - params: { discussion: create(:mentor_discussion, solution: solution) } + params: { discussion: create(:mentor_discussion, solution: solution) } refute UserTrack.find(ut_id).has_notifications? create :mentor_started_discussion_notification, status: :unread, user: user, params: { discussion: discussion } diff --git a/test/serializers/serialize_solution_test.rb b/test/serializers/serialize_solution_test.rb index fe9cfa4548..fbab2cc955 100644 --- a/test/serializers/serialize_solution_test.rb +++ b/test/serializers/serialize_solution_test.rb @@ -3,7 +3,7 @@ class SerializeSolutionTest < ActiveSupport::TestCase test "basic to_hash" do solution = create :practice_solution, status: :published, published_iteration_head_tests_status: :passed, - published_at: Time.current - 1.week, completed_at: Time.current + published_at: Time.current - 1.week, completed_at: Time.current submission = create :submission, solution: solution iteration = create :iteration, submission: submission diff --git a/test/serializers/serialize_submission_test.rb b/test/serializers/serialize_submission_test.rb index 4350ca8898..ec2c082399 100644 --- a/test/serializers/serialize_submission_test.rb +++ b/test/serializers/serialize_submission_test.rb @@ -5,9 +5,9 @@ class SerializeSubmissionTest < ActiveSupport::TestCase user = create :user solution = create :concept_solution, user: user submission = create :submission, solution: solution, - tests_status: :failed, - representation_status: :generated, - analysis_status: :completed + tests_status: :failed, + representation_status: :generated, + analysis_status: :completed expected = { uuid: submission.uuid, diff --git a/test/serializers/serialize_task_test.rb b/test/serializers/serialize_task_test.rb index ff7f5508da..0595cbbab9 100644 --- a/test/serializers/serialize_task_test.rb +++ b/test/serializers/serialize_task_test.rb @@ -5,8 +5,8 @@ class SerializeTaskTest < ActiveSupport::TestCase freeze_time do create :track, slug: 'ruby', title: 'Ruby' task = create :github_task, issue_url: 'https://github.com/exercism/ruby/issues/312', - title: 'Sync anagram', opened_at: 2.days.ago, opened_by_username: 'ErikSchierboom', - action: :fix, knowledge: :none, area: :representer, size: :massive, type: :docs + title: 'Sync anagram', opened_at: 2.days.ago, opened_by_username: 'ErikSchierboom', + action: :fix, knowledge: :none, area: :representer, size: :massive, type: :docs expected = { uuid: task.uuid, @@ -37,8 +37,8 @@ class SerializeTaskTest < ActiveSupport::TestCase test "serialize non-track task" do freeze_time do task = create :github_task, track: nil, issue_url: 'https://github.com/exercism/configlet/issues/888', - title: 'Improve test speed', opened_at: 10.days.ago, opened_by_username: 'iHiD', - action: :fix, knowledge: nil, area: :representer, size: nil, type: :docs + title: 'Improve test speed', opened_at: 10.days.ago, opened_by_username: 'iHiD', + action: :fix, knowledge: nil, area: :representer, size: nil, type: :docs expected = { uuid: task.uuid, diff --git a/test/serializers/serialize_tasks_test.rb b/test/serializers/serialize_tasks_test.rb index d9b64f4068..1994387ee9 100644 --- a/test/serializers/serialize_tasks_test.rb +++ b/test/serializers/serialize_tasks_test.rb @@ -4,11 +4,11 @@ class SerializeTasksTest < ActiveSupport::TestCase test "serializes tasks" do freeze_time do task_1 = create :github_task, issue_url: 'https://github.com/exercism/fsharp/issues/99', - title: 'Fix generator', opened_at: 3.weeks.ago, opened_by_username: 'ErikSchierboom', - action: :fix, knowledge: nil, area: :representer, size: nil, type: :docs + title: 'Fix generator', opened_at: 3.weeks.ago, opened_by_username: 'ErikSchierboom', + action: :fix, knowledge: nil, area: :representer, size: nil, type: :docs task_2 = create :github_task, issue_url: 'https://github.com/exercism/ruby/issues/312', - title: 'Sync anagram', opened_at: 2.days.ago, opened_by_username: 'iHiD', - action: :improve, knowledge: :none, area: :analyzer, size: :massive, type: :ci + title: 'Sync anagram', opened_at: 2.days.ago, opened_by_username: 'iHiD', + action: :improve, knowledge: :none, area: :analyzer, size: :massive, type: :ci tasks = [task_1, task_2] expected = [ diff --git a/test/support/uri_encode_helpers.rb b/test/support/uri_encode_helpers.rb index b934dae9b4..126425c89b 100644 --- a/test/support/uri_encode_helpers.rb +++ b/test/support/uri_encode_helpers.rb @@ -1,7 +1,7 @@ module UriEncodeHelpers def uri_encode(uri) # rubocop:disable Lint/UriEscapeUnescape - URI.encode(uri) + Addressable::URI.encode(uri) # rubocop:enable Lint/UriEscapeUnescape end end diff --git a/test/system/components/journey/solutions_test.rb b/test/system/components/journey/solutions_test.rb index 1793109752..b629b0e72d 100644 --- a/test/system/components/journey/solutions_test.rb +++ b/test/system/components/journey/solutions_test.rb @@ -11,7 +11,7 @@ class SolutionsTest < ApplicationSystemTestCase track = create :track, title: "Ruby" exercise = create :concept_exercise, title: "Lasagna", icon_name: 'lasagna', track: track, slug: :lasagna solution = create :concept_solution, :completed, exercise: exercise, completed_at: Time.current, user: user, - num_views: 1270, num_comments: 10, num_stars: 12, num_loc: 18 + num_views: 1270, num_comments: 10, num_stars: 12, num_loc: 18 create :submission, solution: solution travel_to(Time.current - 2.days) do 3.times { create :iteration, solution: solution } diff --git a/test/system/components/mentoring/discussion_test.rb b/test/system/components/mentoring/discussion_test.rb index 431d05ac2a..b01c82c5ef 100644 --- a/test/system/components/mentoring/discussion_test.rb +++ b/test/system/components/mentoring/discussion_test.rb @@ -167,7 +167,7 @@ class DiscussionTest < ApplicationSystemTestCase student = create :user, handle: "student" solution = create :concept_solution, user: student request = create :mentor_request, solution: solution, comment_markdown: "Hello, Mentor", - updated_at: 2.days.ago + updated_at: 2.days.ago discussion = create :mentor_discussion, solution: solution, mentor: mentor, request: request submission = create :submission, solution: solution create :iteration, idx: 2, solution: solution, created_at: 1.week.ago, submission: submission diff --git a/test/system/components/mentoring/queue_test.rb b/test/system/components/mentoring/queue_test.rb index b7a01260ee..bc5b897a3c 100644 --- a/test/system/components/mentoring/queue_test.rb +++ b/test/system/components/mentoring/queue_test.rb @@ -39,7 +39,7 @@ class QueueTest < ApplicationSystemTestCase request = create_mentor_request exercise: series, student: student, created_at: 1.year.ago relationship = create :mentor_student_relationship, student: student, mentor: mentor create :mentor_discussion, solution: create(:practice_solution, user: student), - request: create(:mentor_request, status: :fulfilled) + request: create(:mentor_request, status: :fulfilled) use_capybara_host do sign_in!(mentor) diff --git a/test/system/components/student/mentoring_session_test.rb b/test/system/components/student/mentoring_session_test.rb index c82b4afab4..0281760095 100644 --- a/test/system/components/student/mentoring_session_test.rb +++ b/test/system/components/student/mentoring_session_test.rb @@ -17,7 +17,7 @@ class MentoringSessionTest < ApplicationSystemTestCase exercise = create :concept_exercise, track: track solution = create :concept_solution, user: student, exercise: exercise request = create :mentor_request, solution: solution, comment_markdown: "Hello, Mentor", - updated_at: 2.days.ago + updated_at: 2.days.ago discussion = create :mentor_discussion, solution: solution, mentor: mentor, request: request submission = create :submission, solution: solution iteration = create :iteration, diff --git a/test/system/components/student/solution_summary/mentoring_button_test.rb b/test/system/components/student/solution_summary/mentoring_button_test.rb index 7320b779ed..a637656099 100644 --- a/test/system/components/student/solution_summary/mentoring_button_test.rb +++ b/test/system/components/student/solution_summary/mentoring_button_test.rb @@ -15,9 +15,9 @@ class MentoringButtonTest < ApplicationSystemTestCase discussion = create :mentor_discussion, request: request, solution: solution, mentor: mentor request.fulfilled! submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed create :iteration, idx: 1, solution: solution, submission: submission create :user_track, user: user, track: solution.track @@ -37,9 +37,9 @@ class MentoringButtonTest < ApplicationSystemTestCase user = create :user solution = create :practice_solution, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed create :iteration, idx: 1, solution: solution, submission: submission create :user_track, user: user, track: solution.track @@ -70,9 +70,9 @@ class MentoringButtonTest < ApplicationSystemTestCase finished_at: Time.current request.fulfilled! submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed create :iteration, idx: 1, solution: solution, submission: submission solution.update_mentoring_status! create :user_track, user: user, track: solution.track @@ -92,9 +92,9 @@ class MentoringButtonTest < ApplicationSystemTestCase user = create :user solution = create :practice_solution, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed create :iteration, idx: 1, solution: solution, submission: submission create :user_track, user: user, track: solution.track diff --git a/test/system/components/student/solution_summary/tutorial_test.rb b/test/system/components/student/solution_summary/tutorial_test.rb index 84ebdc09fd..e7d7b93e0a 100644 --- a/test/system/components/student/solution_summary/tutorial_test.rb +++ b/test/system/components/student/solution_summary/tutorial_test.rb @@ -11,9 +11,9 @@ class TutorialTest < ApplicationSystemTestCase hello_world = create :practice_exercise, slug: "hello-world" solution = create :concept_solution, user: user, exercise: hello_world submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed iteration = create :iteration, idx: 1, solution: solution, submission: submission assert iteration.status.no_automated_feedback? # Sanity @@ -33,9 +33,9 @@ class TutorialTest < ApplicationSystemTestCase hello_world = create :practice_exercise, slug: "hello-world" solution = create :concept_solution, user: user, exercise: hello_world submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed iteration = create :iteration, idx: 1, solution: solution, submission: submission assert iteration.status.no_automated_feedback? # Sanity @@ -56,9 +56,9 @@ class TutorialTest < ApplicationSystemTestCase hello_world = create :practice_exercise, slug: "hello-world", track: ruby solution = create :concept_solution, user: user, exercise: hello_world submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed create :iteration, idx: 1, solution: solution, submission: submission use_capybara_host do diff --git a/test/system/components/student/solution_summary_section_test.rb b/test/system/components/student/solution_summary_section_test.rb index 3b7ee1b08b..58d9528ad7 100644 --- a/test/system/components/student/solution_summary_section_test.rb +++ b/test/system/components/student/solution_summary_section_test.rb @@ -138,9 +138,9 @@ class SolutionSummarySectionTest < ApplicationSystemTestCase user = create :user solution = create :practice_solution, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed iteration = create :iteration, idx: 1, solution: solution, submission: submission assert iteration.status.no_automated_feedback? # Sanity @@ -166,9 +166,9 @@ class SolutionSummarySectionTest < ApplicationSystemTestCase user_track = create :user_track solution = create :concept_solution, user: user_track.user, track: user_track.track submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed iteration = create :iteration, idx: 1, solution: solution, submission: submission assert iteration.status.no_automated_feedback? # Sanity @@ -195,9 +195,9 @@ class SolutionSummarySectionTest < ApplicationSystemTestCase user = create :user solution = create :practice_solution, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed iteration = create :iteration, idx: 1, solution: solution, submission: submission create :submission_analysis, submission: submission, data: { comments: [ @@ -231,9 +231,9 @@ class SolutionSummarySectionTest < ApplicationSystemTestCase user_track = create :user_track solution = create :concept_solution, user: user_track.user, track: user_track.track submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed iteration = create :iteration, idx: 1, solution: solution, submission: submission create :submission_analysis, submission: submission, data: { comments: [ @@ -267,9 +267,9 @@ class SolutionSummarySectionTest < ApplicationSystemTestCase user = create :user solution = create :practice_solution, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed iteration = create :iteration, idx: 1, solution: solution, submission: submission create :submission_analysis, submission: submission, data: { comments: [ @@ -302,9 +302,9 @@ class SolutionSummarySectionTest < ApplicationSystemTestCase user_track = create :user_track solution = create :concept_solution, user: user_track.user, track: user_track.track submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed iteration = create :iteration, idx: 1, solution: solution, submission: submission create :submission_analysis, submission: submission, data: { comments: [ @@ -339,9 +339,9 @@ class SolutionSummarySectionTest < ApplicationSystemTestCase user_track = create :user_track solution = create :concept_solution, user: user_track.user, track: user_track.track submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed iteration = create :iteration, idx: 1, solution: solution, submission: submission create :submission_analysis, submission: submission, data: { comments: [ @@ -377,9 +377,9 @@ class SolutionSummarySectionTest < ApplicationSystemTestCase user = create :user solution = create :practice_solution, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed iteration = create :iteration, idx: 1, solution: solution, submission: submission assert iteration.status.no_automated_feedback? # Sanity create :mentor_request, solution: solution @@ -400,9 +400,9 @@ class SolutionSummarySectionTest < ApplicationSystemTestCase solution = create :practice_solution, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed iteration = create :iteration, idx: 1, solution: solution, submission: submission assert iteration.status.no_automated_feedback? # Sanity diff --git a/test/system/flows/accept_mentor_request_test.rb b/test/system/flows/accept_mentor_request_test.rb index 1cb9ecbd79..82b9c7d9e1 100644 --- a/test/system/flows/accept_mentor_request_test.rb +++ b/test/system/flows/accept_mentor_request_test.rb @@ -26,7 +26,7 @@ class AcceptMentorRequestTest < ApplicationSystemTestCase student = create :user, handle: "student" solution = create :concept_solution, user: student request = create :mentor_request, solution: solution, comment_markdown: "How to do this?", - updated_at: 2.days.ago + updated_at: 2.days.ago create :iteration, idx: 1, solution: solution, created_at: Date.new(2016, 12, 25) use_capybara_host do @@ -59,7 +59,7 @@ class AcceptMentorRequestTest < ApplicationSystemTestCase student = create :user, handle: "student" solution = create :concept_solution, user: student request = create :mentor_request, solution: solution, comment_markdown: "How to do this?", - updated_at: 2.days.ago + updated_at: 2.days.ago submission = create :submission, solution: solution create :iteration, idx: 1, solution: solution, created_at: Date.new(2016, 12, 25), submission: submission diff --git a/test/system/flows/complete_exercise_test.rb b/test/system/flows/complete_exercise_test.rb index aab93bc37e..960c2953a0 100644 --- a/test/system/flows/complete_exercise_test.rb +++ b/test/system/flows/complete_exercise_test.rb @@ -84,9 +84,9 @@ class CompleteExerciseTest < ApplicationSystemTestCase create :user_track, user: user, track: track solution = create :concept_solution, user: user, exercise: boutique submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed create :iteration, idx: 1, solution: solution, submission: submission sign_in!(user) diff --git a/test/system/flows/student/finish_mentor_discussion/happy_test.rb b/test/system/flows/student/finish_mentor_discussion/happy_test.rb index 865543c5cb..60a192d0cb 100644 --- a/test/system/flows/student/finish_mentor_discussion/happy_test.rb +++ b/test/system/flows/student/finish_mentor_discussion/happy_test.rb @@ -16,9 +16,9 @@ class HappyTest < ApplicationSystemTestCase exercise = create :concept_exercise, track: track solution = create :concept_solution, exercise: exercise, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed create :iteration, idx: 1, solution: solution, submission: submission discussion = create :mentor_discussion, solution: solution @@ -43,9 +43,9 @@ class HappyTest < ApplicationSystemTestCase exercise = create :concept_exercise, track: track solution = create :concept_solution, exercise: exercise, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed create :iteration, idx: 1, solution: solution, submission: submission discussion = create :mentor_discussion, solution: solution diff --git a/test/system/flows/student/finish_mentor_discussion/satisfied_test.rb b/test/system/flows/student/finish_mentor_discussion/satisfied_test.rb index 61a233b497..72361a4afd 100644 --- a/test/system/flows/student/finish_mentor_discussion/satisfied_test.rb +++ b/test/system/flows/student/finish_mentor_discussion/satisfied_test.rb @@ -16,9 +16,9 @@ class SatisfiedTest < ApplicationSystemTestCase exercise = create :concept_exercise, track: track solution = create :concept_solution, exercise: exercise, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed create :iteration, idx: 1, solution: solution, submission: submission discussion = create :mentor_discussion, solution: solution @@ -42,9 +42,9 @@ class SatisfiedTest < ApplicationSystemTestCase exercise = create :practice_exercise, track: track solution = create :practice_solution, exercise: exercise, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed create :iteration, idx: 1, solution: solution, submission: submission request = create :mentor_request, solution: solution discussion = create :mentor_discussion, solution: solution, request: request diff --git a/test/system/flows/student/finish_mentor_discussion/unhappy_test.rb b/test/system/flows/student/finish_mentor_discussion/unhappy_test.rb index 3309ba62f3..ab0b3b6521 100644 --- a/test/system/flows/student/finish_mentor_discussion/unhappy_test.rb +++ b/test/system/flows/student/finish_mentor_discussion/unhappy_test.rb @@ -14,9 +14,9 @@ class UnhappyTest < ApplicationSystemTestCase exercise = create :practice_exercise, track: track solution = create :practice_solution, exercise: exercise, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed create :iteration, idx: 1, solution: solution, submission: submission request = create :mentor_request, solution: solution discussion = create :mentor_discussion, solution: solution, request: request diff --git a/test/system/flows/student/mentor_finished_discussion_test.rb b/test/system/flows/student/mentor_finished_discussion_test.rb index 1d2d63fd97..de7287e3d3 100644 --- a/test/system/flows/student/mentor_finished_discussion_test.rb +++ b/test/system/flows/student/mentor_finished_discussion_test.rb @@ -34,9 +34,9 @@ class MentorFinishedDiscussionTest < ApplicationSystemTestCase exercise = create :concept_exercise, track: track solution = create :concept_solution, exercise: exercise, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed create :iteration, idx: 1, solution: solution, submission: submission discussion = create :mentor_discussion, solution: solution, status: :mentor_finished diff --git a/test/system/flows/student/student_views_solution_iterations_test.rb b/test/system/flows/student/student_views_solution_iterations_test.rb index b670543906..9d99ee87db 100644 --- a/test/system/flows/student/student_views_solution_iterations_test.rb +++ b/test/system/flows/student/student_views_solution_iterations_test.rb @@ -164,9 +164,9 @@ class StudentViewsSolutionIterationsTest < ApplicationSystemTestCase exercise = create :concept_exercise, track: track solution = create :concept_solution, exercise: exercise, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed create :iteration, solution: solution, submission: submission create :submission_file, submission: submission @@ -204,9 +204,9 @@ class StudentViewsSolutionIterationsTest < ApplicationSystemTestCase exercise = create :concept_exercise, track: track solution = create :concept_solution, exercise: exercise, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed create :exercise_representation, exercise: exercise, source_submission: submission, @@ -236,9 +236,9 @@ class StudentViewsSolutionIterationsTest < ApplicationSystemTestCase exercise = create :concept_exercise, track: track solution = create :concept_solution, exercise: exercise, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed create :iteration, solution: solution, submission: submission create :submission_file, submission: submission create :submission_analysis, submission: submission, data: { @@ -263,9 +263,9 @@ class StudentViewsSolutionIterationsTest < ApplicationSystemTestCase exercise = create :concept_exercise, track: track solution = create :concept_solution, exercise: exercise, user: user submission = create :submission, solution: solution, - tests_status: :passed, - representation_status: :generated, - analysis_status: :completed + tests_status: :passed, + representation_status: :generated, + analysis_status: :completed create :iteration, solution: solution, submission: submission create :submission_test_run, submission: submission, @@ -292,9 +292,9 @@ class StudentViewsSolutionIterationsTest < ApplicationSystemTestCase exercise = create :concept_exercise, track: track solution = create :concept_solution, exercise: exercise, user: user submission = create :submission, solution: solution, - tests_status: :not_queued, - representation_status: :generated, - analysis_status: :completed + tests_status: :not_queued, + representation_status: :generated, + analysis_status: :completed create :iteration, solution: solution, submission: submission use_capybara_host do @@ -313,9 +313,9 @@ class StudentViewsSolutionIterationsTest < ApplicationSystemTestCase exercise = create :concept_exercise, track: track, has_test_runner: false solution = create :concept_solution, exercise: exercise, user: user submission = create :submission, solution: solution, - tests_status: :not_queued, - representation_status: :generated, - analysis_status: :completed + tests_status: :not_queued, + representation_status: :generated, + analysis_status: :completed create :iteration, solution: solution, submission: submission use_capybara_host do diff --git a/test/system/flows/user_views_community_solutions_test.rb b/test/system/flows/user_views_community_solutions_test.rb index cf2abc332e..f7ca32352f 100644 --- a/test/system/flows/user_views_community_solutions_test.rb +++ b/test/system/flows/user_views_community_solutions_test.rb @@ -11,7 +11,7 @@ class UserViewsCommunitySolutionsTest < ApplicationSystemTestCase ruby = create :track, title: "Ruby" exercise = create :concept_exercise, track: ruby, title: "Strings" solution = create :concept_solution, exercise: exercise, published_at: 2.days.ago, user: author, - published_iteration_head_tests_status: :passed + published_iteration_head_tests_status: :passed submission = create :submission, solution: solution create :iteration, solution: solution, submission: submission @@ -33,11 +33,11 @@ class UserViewsCommunitySolutionsTest < ApplicationSystemTestCase ruby = create :track, title: "Ruby" exercise = create :concept_exercise, track: ruby, title: "Strings" solution = create :concept_solution, exercise: exercise, published_at: 2.days.ago, user: author, - published_iteration_head_tests_status: :passed + published_iteration_head_tests_status: :passed submission = create :submission, solution: solution create :iteration, solution: solution, submission: submission other_solution = create :concept_solution, exercise: exercise, published_at: 2.days.ago, user: other_author, - published_iteration_head_tests_status: :passed + published_iteration_head_tests_status: :passed other_submission = create :submission, solution: other_solution create :iteration, solution: other_solution, submission: other_submission @@ -64,18 +64,18 @@ class UserViewsCommunitySolutionsTest < ApplicationSystemTestCase ruby = create :track, title: "Ruby" exercise = create :concept_exercise, track: ruby, title: "Strings" solution = create :concept_solution, exercise: exercise, published_at: 2.days.ago, user: author, num_stars: 11, - git_important_files_hash: exercise.git_important_files_hash, - published_iteration_head_tests_status: :queued + git_important_files_hash: exercise.git_important_files_hash, + published_iteration_head_tests_status: :queued submission = create :submission, solution: solution, tests_status: :passed create :iteration, solution: solution, submission: submission other_solution = create :concept_solution, exercise: exercise, published_at: 2.days.ago, user: other_author, num_stars: 22, - git_important_files_hash: exercise.git_important_files_hash, - published_iteration_head_tests_status: :failed + git_important_files_hash: exercise.git_important_files_hash, + published_iteration_head_tests_status: :failed other_submission = create :submission, solution: other_solution, tests_status: :failed create :iteration, solution: other_solution, submission: other_submission another_solution = create :concept_solution, exercise: exercise, published_at: 4.days.ago, user: another_author, num_stars: 33, - git_important_files_hash: 'another-hash', - published_iteration_head_tests_status: :passed + git_important_files_hash: 'another-hash', + published_iteration_head_tests_status: :passed another_submission = create :submission, solution: another_solution, tests_status: :failed create :iteration, solution: another_solution, submission: another_submission @@ -132,11 +132,11 @@ class UserViewsCommunitySolutionsTest < ApplicationSystemTestCase ruby = create :track, title: "Ruby" exercise = create :concept_exercise, track: ruby, title: "Strings" solution = create :concept_solution, exercise: exercise, published_at: 2.days.ago, user: author, num_stars: 11, - published_iteration_head_tests_status: :passed + published_iteration_head_tests_status: :passed submission = create :submission, solution: solution create :iteration, solution: solution, submission: submission other_solution = create :concept_solution, exercise: exercise, published_at: 2.days.ago, user: other_author, num_stars: 22, - published_iteration_head_tests_status: :passed + published_iteration_head_tests_status: :passed other_submission = create :submission, solution: other_solution create :iteration, solution: other_solution, submission: other_submission diff --git a/test/test_helper.rb b/test/test_helper.rb index d7b9f01270..b494df8de0 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -8,6 +8,24 @@ require 'minitest/retry' require_relative './helpers/turbo_assertions_helper' +# We need to write the manifest.json and env.json files as the +# javascript:build rake task that is called below depends on it +File.write( + Rails.root / 'app' / 'javascript' / '.config' / 'manifest.json', + Propshaft::Assembly.new(Rails.application.config.assets).load_path.manifest. + to_json +) +File.write( + Rails.root / 'app' / 'javascript' / '.config' / 'env.json', + Exercism.config.to_h.slice(:website_assets_host).to_json +) + +# We need to build our JS and CSS before running tests +# In CI, this happens through the test:prepare rake task +# but locally when running single tests, we might need this intead +`bundle exec rake css:build` unless File.exist?(Rails.root / '.built-assets' / 'website.css') +`bundle exec rake javascript:build` unless File.exist?(Rails.root / '.built-assets' / 'test.js') + # Handle flakey tests in CI Minitest::Retry.use!(retry_count: 3) if ENV["EXERCISM_CI"] @@ -40,7 +58,6 @@ def reload(*args) end module TestHelpers - extend Webpacker::Helper extend ActionView::Helpers::AssetUrlHelper def self.git_repo_url(slug) @@ -49,26 +66,22 @@ def self.git_repo_url(slug) def self.use_website_copy_test_repo! repo_url = TestHelpers.git_repo_url("website-copy") - Git::WebsiteCopy.new(repo_url: repo_url).tap do |repo| + Git::WebsiteCopy.new(repo_url:).tap do |repo| Git::WebsiteCopy.expects(:new).at_least_once.returns(repo) end end def self.use_blog_test_repo! repo_url = TestHelpers.git_repo_url("blog") - repo = Git::Blog.new(repo_url: repo_url) + repo = Git::Blog.new(repo_url:) Git::Blog.expects(:new).at_least_once.returns(repo) end def self.use_docs_test_repo! repo_url = TestHelpers.git_repo_url("docs") - repo = Git::Repository.new(repo_url: repo_url) + repo = Git::Repository.new(repo_url:) Git::Repository.expects(:new).at_least_once.returns(repo) end - - def self.image_pack_url(icon_name, category: 'icons') - asset_pack_url("media/images/#{category}/#{icon_name}.svg") - end end class ActiveSupport::TimeWithZone @@ -175,8 +188,8 @@ def create_test_runner_job!(submission, execution_status: nil, results: nil, git create_tooling_job!( submission, :test_runner, - execution_status: execution_status, - execution_output: execution_output, + execution_status:, + execution_output:, source: { 'exercise_git_sha' => git_sha || submission.git_sha } @@ -191,8 +204,8 @@ def create_representer_job!(submission, execution_status: nil, ast: nil, mapping create_tooling_job!( submission, :representer, - execution_status: execution_status, - execution_output: execution_output + execution_status:, + execution_output: ) end @@ -203,8 +216,8 @@ def create_analyzer_job!(submission, execution_status: nil, data: nil) create_tooling_job!( submission, :analyzer, - execution_status: execution_status, - execution_output: execution_output + execution_status:, + execution_output: ) end @@ -220,17 +233,17 @@ def create_tooling_job!(submission, type, params = {}) def upload_to_s3(bucket, key, body) # rubocop:disable Naming/VariableNumber Exercism.s3_client.put_object( - bucket: bucket, - key: key, - body: body, + bucket:, + key:, + body:, acl: 'private' ) end def download_s3_file(bucket, key) Exercism.s3_client.get_object( - bucket: bucket, - key: key + bucket:, + key: ).body.read end @@ -240,13 +253,13 @@ def download_s3_file(bucket, key) def reset_opensearch! opensearch = Exercism.opensearch_client [Document::OPENSEARCH_INDEX, Solution::OPENSEARCH_INDEX].each do |index| - opensearch.indices.delete(index: index) if opensearch.indices.exists(index: index) - opensearch.indices.create(index: index) + opensearch.indices.delete(index:) if opensearch.indices.exists(index:) + opensearch.indices.create(index:) end end def get_opensearch_doc(index, id) - Exercism.opensearch_client.get(index: index, id: id) + Exercism.opensearch_client.get(index:, id:) end def wait_for_opensearch_to_be_synced @@ -255,7 +268,7 @@ def wait_for_opensearch_to_be_synced # Force an index refresh to ensure there are no concurrent actions in the background [Document::OPENSEARCH_INDEX, Solution::OPENSEARCH_INDEX].each do |index| - Exercism.opensearch_client.indices.refresh(index: index) + Exercism.opensearch_client.indices.refresh(index:) end end end @@ -276,6 +289,10 @@ class ActionDispatch::IntegrationTest include Devise::Test::IntegrationHelpers include TurboAssertionsHelper + def setup + host! URI(Rails.application.routes.default_url_options[:host]).host + end + def sign_in!(user = nil) @current_user = user || create(:user) @current_user.auth_tokens.create! unless @current_user.auth_tokens.exists? diff --git a/tsconfig.json b/tsconfig.json index ba5150acf4..b56318d108 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,7 +13,8 @@ "strict": true, "noEmit": true, "allowSyntheticDefaultImports": true, - "types": ["webpack-env", "app/javascript/declarations"] + "resolveJsonModule": true, + "types": ["app/javascript/declarations"] }, "exclude": [ "**/*.spec.ts", diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 330749c961..0000000000 --- a/webpack.config.js +++ /dev/null @@ -1,10 +0,0 @@ -const config: webpack.Configuration = { - module: { - rules: [ - { - test: /\.(png|jpg|jpeg|gif|svg)$/i, - type: 'asset/resource', - }, - ], - }, -} diff --git a/yarn.lock b/yarn.lock index 71560ab85d..256bca3803 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz" integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== @@ -30,13 +30,6 @@ dependencies: "@babel/highlight" "^7.14.5" -"@babel/code-frame@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" - integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== - dependencies: - "@babel/highlight" "^7.16.0" - "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.14.0": version "7.14.0" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919" @@ -52,11 +45,6 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== -"@babel/compat-data@^7.16.0", "@babel/compat-data@^7.16.4": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" - integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== - "@babel/core@^7.1.0", "@babel/core@^7.7.5": version "7.11.1" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.1.tgz" @@ -121,27 +109,6 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/core@^7.15.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.0.tgz#c4ff44046f5fe310525cc9eb4ef5147f0c5374d4" - integrity sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.0" - "@babel/helper-compilation-targets" "^7.16.0" - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helpers" "^7.16.0" - "@babel/parser" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" - "@babel/types" "^7.16.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - "@babel/core@^7.7.2": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.8.tgz#20cdf7c84b5d86d83fac8710a8bc605a7ba3f010" @@ -199,15 +166,6 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz#d40f3d1d5075e62d3500bccb67f3daa8a95265b2" - integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew== - dependencies: - "@babel/types" "^7.16.0" - jsesc "^2.5.1" - source-map "^0.5.0" - "@babel/helper-annotate-as-pure@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz" @@ -222,13 +180,6 @@ dependencies: "@babel/types" "^7.12.13" -"@babel/helper-annotate-as-pure@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz#9a1f0ebcda53d9a2d00108c4ceace6a5d5f1f08d" - integrity sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" @@ -237,14 +188,6 @@ "@babel/helper-explode-assignable-expression" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz#f1a686b92da794020c26582eb852e9accd0d7882" - integrity sha512-9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.16.0" - "@babel/types" "^7.16.0" - "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16": version "7.13.16" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" @@ -275,16 +218,6 @@ browserslist "^4.16.6" semver "^6.3.0" -"@babel/helper-compilation-targets@^7.16.0", "@babel/helper-compilation-targets@^7.16.3": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" - integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== - dependencies: - "@babel/compat-data" "^7.16.0" - "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.17.5" - semver "^6.3.0" - "@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.14.0", "@babel/helper-create-class-features-plugin@^7.14.3": version "7.14.3" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.3.tgz#832111bcf4f57ca57a4c5b1a000fc125abc6554a" @@ -297,18 +230,6 @@ "@babel/helper-replace-supers" "^7.14.3" "@babel/helper-split-export-declaration" "^7.12.13" -"@babel/helper-create-class-features-plugin@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz#090d4d166b342a03a9fec37ef4fd5aeb9c7c6a4b" - integrity sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-member-expression-to-functions" "^7.16.0" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/helper-replace-supers" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/helper-create-regexp-features-plugin@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz" @@ -326,14 +247,6 @@ "@babel/helper-annotate-as-pure" "^7.12.13" regexpu-core "^4.7.1" -"@babel/helper-create-regexp-features-plugin@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz#06b2348ce37fccc4f5e18dcd8d75053f2a7c44ff" - integrity sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - regexpu-core "^4.7.1" - "@babel/helper-define-polyfill-provider@^0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz#a640051772045fedaaecc6f0c6c69f02bdd34bf1" @@ -348,20 +261,6 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-define-polyfill-provider@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz#c5b10cf4b324ff840140bb07e05b8564af2ae971" - integrity sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg== - dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - "@babel/helper-explode-assignable-expression@^7.12.13": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" @@ -369,13 +268,6 @@ dependencies: "@babel/types" "^7.13.0" -"@babel/helper-explode-assignable-expression@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz#753017337a15f46f9c09f674cff10cee9b9d7778" - integrity sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-function-name@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz" @@ -412,15 +304,6 @@ "@babel/template" "^7.15.4" "@babel/types" "^7.15.4" -"@babel/helper-function-name@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" - integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== - dependencies: - "@babel/helper-get-function-arity" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/types" "^7.16.0" - "@babel/helper-get-function-arity@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz" @@ -449,13 +332,6 @@ dependencies: "@babel/types" "^7.15.4" -"@babel/helper-get-function-arity@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" - integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-hoist-variables@^7.13.0": version "7.13.16" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz#1b1651249e94b51f8f0d33439843e33e39775b30" @@ -478,13 +354,6 @@ dependencies: "@babel/types" "^7.15.4" -"@babel/helper-hoist-variables@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" - integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-member-expression-to-functions@^7.10.4": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz" @@ -513,13 +382,6 @@ dependencies: "@babel/types" "^7.15.4" -"@babel/helper-member-expression-to-functions@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz#29287040efd197c77636ef75188e81da8bccd5a4" - integrity sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-module-imports@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz" @@ -548,13 +410,6 @@ dependencies: "@babel/types" "^7.15.4" -"@babel/helper-module-imports@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" - integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-module-transforms@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz" @@ -610,20 +465,6 @@ "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.6" -"@babel/helper-module-transforms@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz#1c82a8dd4cb34577502ebd2909699b194c3e9bb5" - integrity sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA== - dependencies: - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-replace-supers" "^7.16.0" - "@babel/helper-simple-access" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/helper-validator-identifier" "^7.15.7" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" - "@babel/types" "^7.16.0" - "@babel/helper-optimise-call-expression@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz" @@ -652,13 +493,6 @@ dependencies: "@babel/types" "^7.15.4" -"@babel/helper-optimise-call-expression@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz#cecdb145d70c54096b1564f8e9f10cd7d193b338" - integrity sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz" @@ -690,15 +524,6 @@ "@babel/helper-wrap-function" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helper-remap-async-to-generator@^7.16.0", "@babel/helper-remap-async-to-generator@^7.16.4": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz#5d7902f61349ff6b963e07f06a389ce139fbfe6e" - integrity sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-wrap-function" "^7.16.0" - "@babel/types" "^7.16.0" - "@babel/helper-replace-supers@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz" @@ -739,16 +564,6 @@ "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.4" -"@babel/helper-replace-supers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz#73055e8d3cf9bcba8ddb55cad93fedc860f68f17" - integrity sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.16.0" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/traverse" "^7.16.0" - "@babel/types" "^7.16.0" - "@babel/helper-simple-access@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz" @@ -778,13 +593,6 @@ dependencies: "@babel/types" "^7.15.4" -"@babel/helper-simple-access@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" - integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-skip-transparent-expression-wrappers@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" @@ -792,13 +600,6 @@ dependencies: "@babel/types" "^7.12.1" -"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" - integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-split-export-declaration@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz" @@ -827,13 +628,6 @@ dependencies: "@babel/types" "^7.15.4" -"@babel/helper-split-export-declaration@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" - integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz" @@ -874,16 +668,6 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helper-wrap-function@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz#b3cf318afce774dfe75b86767cd6d68f3482e57c" - integrity sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g== - dependencies: - "@babel/helper-function-name" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" - "@babel/types" "^7.16.0" - "@babel/helpers@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz" @@ -920,15 +704,6 @@ "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.4" -"@babel/helpers@^7.16.0": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.3.tgz#27fc64f40b996e7074dc73128c3e5c3e7f55c43c" - integrity sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w== - dependencies: - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.3" - "@babel/types" "^7.16.0" - "@babel/highlight@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz" @@ -956,15 +731,6 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/highlight@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" - integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - "@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.0", "@babel/parser@^7.11.1": version "7.11.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.3.tgz" @@ -985,18 +751,6 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.8.tgz#7bacdcbe71bdc3ff936d510c15dcea7cf0b99016" integrity sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA== -"@babel/parser@^7.16.0", "@babel/parser@^7.16.3": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" - integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.2": - version "7.16.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz#2977fca9b212db153c195674e57cfab807733183" - integrity sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": version "7.13.12" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a" @@ -1006,15 +760,6 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" "@babel/plugin-proposal-optional-chaining" "^7.13.12" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz#358972eaab006f5eb0826183b0c93cbcaf13e1e2" - integrity sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.0" - "@babel/plugin-proposal-async-generator-functions@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz#3a2085abbf5d5f962d480dbc81347385ed62eb1e" @@ -1024,15 +769,6 @@ "@babel/helper-remap-async-to-generator" "^7.13.0" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-async-generator-functions@^7.16.4": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz#e606eb6015fec6fa5978c940f315eae4e300b081" - integrity sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.16.4" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-proposal-class-properties@^7.13.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" @@ -1041,14 +777,6 @@ "@babel/helper-create-class-features-plugin" "^7.13.0" "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz#c029618267ddebc7280fa286e0f8ca2a278a2d1a" - integrity sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-proposal-class-static-block@^7.13.11": version "7.14.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz#5a527e2cae4a4753119c3a3e7f64ecae8ccf1360" @@ -1058,15 +786,6 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-class-static-block" "^7.12.13" -"@babel/plugin-proposal-class-static-block@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz#5296942c564d8144c83eea347d0aa8a0b89170e7" - integrity sha512-mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-proposal-dynamic-import@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz#01ebabd7c381cff231fa43e302939a9de5be9d9f" @@ -1075,14 +794,6 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-dynamic-import@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz#783eca61d50526202f9b296095453977e88659f1" - integrity sha512-QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-proposal-export-namespace-from@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz#62542f94aa9ce8f6dba79eec698af22112253791" @@ -1091,14 +802,6 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz#9c01dee40b9d6b847b656aaf4a3976a71740f222" - integrity sha512-CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-proposal-json-strings@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz#830b4e2426a782e8b2878fbfe2cba85b70cbf98c" @@ -1107,14 +810,6 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz#cae35a95ed1d2a7fa29c4dc41540b84a72e9ab25" - integrity sha512-kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-proposal-logical-assignment-operators@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz#222348c080a1678e0e74ea63fe76f275882d1fd7" @@ -1123,14 +818,6 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-logical-assignment-operators@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz#a711b8ceb3ffddd3ef88d3a49e86dbd3cc7db3fd" - integrity sha512-pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz#425b11dc62fc26939a2ab42cbba680bdf5734546" @@ -1139,14 +826,6 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz#44e1cce08fe2427482cf446a91bb451528ed0596" - integrity sha512-3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-proposal-numeric-separator@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz#82b4cc06571143faf50626104b335dd71baa4f9e" @@ -1155,14 +834,6 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-numeric-separator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz#5d418e4fbbf8b9b7d03125d3a52730433a373734" - integrity sha512-FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-proposal-object-rest-spread@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.2.tgz#e17d418f81cc103fedd4ce037e181c8056225abc" @@ -1174,17 +845,6 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.14.2" -"@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz#5fb32f6d924d6e6712810362a60e12a2609872e6" - integrity sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg== - dependencies: - "@babel/compat-data" "^7.16.0" - "@babel/helper-compilation-targets" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.16.0" - "@babel/plugin-proposal-optional-catch-binding@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz#150d4e58e525b16a9a1431bd5326c4eed870d717" @@ -1193,14 +853,6 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-catch-binding@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz#5910085811ab4c28b00d6ebffa4ab0274d1e5f16" - integrity sha512-kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz#df8171a8b9c43ebf4c1dabe6311b432d83e1b34e" @@ -1210,15 +862,6 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz#56dbc3970825683608e9efb55ea82c2a2d6c8dc0" - integrity sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-proposal-private-methods@^7.13.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" @@ -1227,14 +870,6 @@ "@babel/helper-create-class-features-plugin" "^7.13.0" "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-proposal-private-methods@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz#b4dafb9c717e4301c5776b30d080d6383c89aff6" - integrity sha512-IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-proposal-private-property-in-object@^7.14.0": version "7.14.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz#b1a1f2030586b9d3489cc26179d2eb5883277636" @@ -1245,16 +880,6 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-private-property-in-object" "^7.14.0" -"@babel/plugin-proposal-private-property-in-object@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz#69e935b2c5c79d2488112d886f0c4e2790fee76f" - integrity sha512-3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-create-class-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-proposal-unicode-property-regex@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" @@ -1263,14 +888,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-proposal-unicode-property-regex@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz#890482dfc5ea378e42e19a71e709728cabf18612" - integrity sha512-ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz" @@ -1314,13 +931,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" @@ -1405,13 +1015,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-top-level-await@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" @@ -1419,7 +1022,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-top-level-await@^7.8.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== @@ -1447,13 +1050,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-arrow-functions@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz#951706f8b449c834ed07bd474c0924c944b95a8e" - integrity sha512-vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-async-to-generator@^7.13.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" @@ -1463,15 +1059,6 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-remap-async-to-generator" "^7.13.0" -"@babel/plugin-transform-async-to-generator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz#df12637f9630ddfa0ef9d7a11bc414d629d38604" - integrity sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw== - dependencies: - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.16.0" - "@babel/plugin-transform-block-scoped-functions@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" @@ -1479,13 +1066,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-block-scoped-functions@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz#c618763233ad02847805abcac4c345ce9de7145d" - integrity sha512-V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-block-scoping@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.2.tgz#761cb12ab5a88d640ad4af4aa81f820e6b5fdf5c" @@ -1493,13 +1073,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-block-scoping@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz#bcf433fb482fe8c3d3b4e8a66b1c4a8e77d37c16" - integrity sha512-27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-classes@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.2.tgz#3f1196c5709f064c252ad056207d87b7aeb2d03d" @@ -1513,19 +1086,6 @@ "@babel/helper-split-export-declaration" "^7.12.13" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz#54cf5ff0b2242c6573d753cd4bfc7077a8b282f5" - integrity sha512-HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-replace-supers" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - globals "^11.1.0" - "@babel/plugin-transform-computed-properties@^7.13.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" @@ -1533,13 +1093,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-computed-properties@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz#e0c385507d21e1b0b076d66bed6d5231b85110b7" - integrity sha512-63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-destructuring@^7.13.17": version "7.13.17" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz#678d96576638c19d5b36b332504d3fd6e06dea27" @@ -1547,13 +1100,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz#ad3d7e74584ad5ea4eadb1e6642146c590dee33c" - integrity sha512-Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-dotall-regex@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" @@ -1562,14 +1108,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-dotall-regex@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz#50bab00c1084b6162d0a58a818031cf57798e06f" - integrity sha512-FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz" @@ -1585,13 +1123,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-duplicate-keys@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz#8bc2e21813e3e89e5e5bf3b60aa5fc458575a176" - integrity sha512-LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-exponentiation-operator@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" @@ -1600,14 +1131,6 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-exponentiation-operator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz#a180cd2881e3533cef9d3901e48dad0fbeff4be4" - integrity sha512-OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-for-of@^7.13.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" @@ -1615,13 +1138,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-for-of@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz#f7abaced155260e2461359bbc7c7248aca5e6bd2" - integrity sha512-5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-function-name@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" @@ -1630,14 +1146,6 @@ "@babel/helper-function-name" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-function-name@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz#02e3699c284c6262236599f751065c5d5f1f400e" - integrity sha512-lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg== - dependencies: - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-literals@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" @@ -1645,13 +1153,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-literals@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz#79711e670ffceb31bd298229d50f3621f7980cac" - integrity sha512-gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-member-expression-literals@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" @@ -1659,13 +1160,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-member-expression-literals@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz#5251b4cce01eaf8314403d21aedb269d79f5e64b" - integrity sha512-WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-modules-amd@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz#6622806fe1a7c07a1388444222ef9535f2ca17b0" @@ -1675,15 +1169,6 @@ "@babel/helper-plugin-utils" "^7.13.0" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-amd@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz#09abd41e18dcf4fd479c598c1cef7bd39eb1337e" - integrity sha512-rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw== - dependencies: - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-dynamic-import-node "^2.3.3" - "@babel/plugin-transform-modules-commonjs@^7.12.13": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz#8201101240eabb5a76c08ef61b2954f767b6b4c1" @@ -1704,16 +1189,6 @@ "@babel/helper-simple-access" "^7.13.12" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz#add58e638c8ddc4875bd9a9ecb5c594613f6c922" - integrity sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ== - dependencies: - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-simple-access" "^7.16.0" - babel-plugin-dynamic-import-node "^2.3.3" - "@babel/plugin-transform-modules-systemjs@^7.13.8": version "7.13.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" @@ -1725,17 +1200,6 @@ "@babel/helper-validator-identifier" "^7.12.11" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz#a92cf240afeb605f4ca16670453024425e421ea4" - integrity sha512-yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg== - dependencies: - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-identifier" "^7.15.7" - babel-plugin-dynamic-import-node "^2.3.3" - "@babel/plugin-transform-modules-umd@^7.14.0": version "7.14.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz#2f8179d1bbc9263665ce4a65f305526b2ea8ac34" @@ -1744,14 +1208,6 @@ "@babel/helper-module-transforms" "^7.14.0" "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-modules-umd@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz#195f26c2ad6d6a391b70880effce18ce625e06a7" - integrity sha512-nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg== - dependencies: - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" @@ -1759,13 +1215,6 @@ dependencies: "@babel/helper-create-regexp-features-plugin" "^7.12.13" -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz#d3db61cc5d5b97986559967cd5ea83e5c32096ca" - integrity sha512-LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/plugin-transform-new-target@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" @@ -1773,13 +1222,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-new-target@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz#af823ab576f752215a49937779a41ca65825ab35" - integrity sha512-fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-object-super@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" @@ -1788,14 +1230,6 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/helper-replace-supers" "^7.12.13" -"@babel/plugin-transform-object-super@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz#fb20d5806dc6491a06296ac14ea8e8d6fedda72b" - integrity sha512-fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-replace-supers" "^7.16.0" - "@babel/plugin-transform-parameters@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz#e4290f72e0e9e831000d066427c4667098decc31" @@ -1803,13 +1237,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-parameters@^7.16.0", "@babel/plugin-transform-parameters@^7.16.3": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz#fa9e4c874ee5223f891ee6fa8d737f4766d31d15" - integrity sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-property-literals@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" @@ -1817,13 +1244,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-property-literals@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz#a95c552189a96a00059f6776dc4e00e3690c78d1" - integrity sha512-XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-react-display-name@^7.12.13": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.14.2.tgz#2e854544d42ab3bb9c21f84e153d62e800fbd593" @@ -1864,13 +1284,6 @@ dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-regenerator@^7.14.5", "@babel/plugin-transform-regenerator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz#eaee422c84b0232d03aea7db99c97deeaf6125a4" - integrity sha512-JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg== - dependencies: - regenerator-transform "^0.14.2" - "@babel/plugin-transform-reserved-words@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" @@ -1878,13 +1291,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-reserved-words@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz#fff4b9dcb19e12619394bda172d14f2d04c0379c" - integrity sha512-Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-runtime@^7.14.3": version "7.14.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.3.tgz#1fd885a2d0de1d3c223795a4e9be72c2db4515cf" @@ -1897,18 +1303,6 @@ babel-plugin-polyfill-regenerator "^0.2.0" semver "^6.3.0" -"@babel/plugin-transform-runtime@^7.15.0": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.4.tgz#f9ba3c7034d429c581e1bd41b4952f3db3c2c7e8" - integrity sha512-pru6+yHANMTukMtEZGC4fs7XPwg35v8sj5CIEmE+gEkFljFiVJxEWxx/7ZDkTK+iZRYo1bFXBtfIN95+K3cJ5A== - dependencies: - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.4.0" - babel-plugin-polyfill-regenerator "^0.3.0" - semver "^6.3.0" - "@babel/plugin-transform-shorthand-properties@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" @@ -1916,13 +1310,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-shorthand-properties@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz#090372e3141f7cc324ed70b3daf5379df2fa384d" - integrity sha512-iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-spread@^7.13.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" @@ -1931,14 +1318,6 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" -"@babel/plugin-transform-spread@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz#d21ca099bbd53ab307a8621e019a7bd0f40cdcfb" - integrity sha512-Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-transform-sticky-regex@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" @@ -1946,13 +1325,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-sticky-regex@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz#c35ea31a02d86be485f6aa510184b677a91738fd" - integrity sha512-/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-template-literals@^7.13.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" @@ -1960,13 +1332,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-template-literals@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz#a8eced3a8e7b8e2d40ec4ec4548a45912630d302" - integrity sha512-Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-typeof-symbol@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" @@ -1974,13 +1339,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-typeof-symbol@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz#8b19a244c6f8c9d668dca6a6f754ad6ead1128f2" - integrity sha512-++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-typescript@^7.13.0": version "7.14.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.3.tgz#44f67f725a60cccee33d9d6fee5e4f338258f34f" @@ -1997,13 +1355,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-unicode-escapes@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz#1a354064b4c45663a32334f46fa0cf6100b5b1f3" - integrity sha512-VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-transform-unicode-regex@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" @@ -2012,14 +1363,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-unicode-regex@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz#293b80950177c8c85aede87cef280259fb995402" - integrity sha512-jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/preset-env@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.2.tgz#e80612965da73579c84ad2f963c2359c71524ed5" @@ -2099,101 +1442,10 @@ core-js-compat "^3.9.0" semver "^6.3.0" -"@babel/preset-env@^7.15.0": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.4.tgz#4f6ec33b2a3fe72d6bfdcdf3859500232563a2e3" - integrity sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA== - dependencies: - "@babel/compat-data" "^7.16.4" - "@babel/helper-compilation-targets" "^7.16.3" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.2" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.0" - "@babel/plugin-proposal-async-generator-functions" "^7.16.4" - "@babel/plugin-proposal-class-properties" "^7.16.0" - "@babel/plugin-proposal-class-static-block" "^7.16.0" - "@babel/plugin-proposal-dynamic-import" "^7.16.0" - "@babel/plugin-proposal-export-namespace-from" "^7.16.0" - "@babel/plugin-proposal-json-strings" "^7.16.0" - "@babel/plugin-proposal-logical-assignment-operators" "^7.16.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.0" - "@babel/plugin-proposal-numeric-separator" "^7.16.0" - "@babel/plugin-proposal-object-rest-spread" "^7.16.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.0" - "@babel/plugin-proposal-private-methods" "^7.16.0" - "@babel/plugin-proposal-private-property-in-object" "^7.16.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.16.0" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@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/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.16.0" - "@babel/plugin-transform-async-to-generator" "^7.16.0" - "@babel/plugin-transform-block-scoped-functions" "^7.16.0" - "@babel/plugin-transform-block-scoping" "^7.16.0" - "@babel/plugin-transform-classes" "^7.16.0" - "@babel/plugin-transform-computed-properties" "^7.16.0" - "@babel/plugin-transform-destructuring" "^7.16.0" - "@babel/plugin-transform-dotall-regex" "^7.16.0" - "@babel/plugin-transform-duplicate-keys" "^7.16.0" - "@babel/plugin-transform-exponentiation-operator" "^7.16.0" - "@babel/plugin-transform-for-of" "^7.16.0" - "@babel/plugin-transform-function-name" "^7.16.0" - "@babel/plugin-transform-literals" "^7.16.0" - "@babel/plugin-transform-member-expression-literals" "^7.16.0" - "@babel/plugin-transform-modules-amd" "^7.16.0" - "@babel/plugin-transform-modules-commonjs" "^7.16.0" - "@babel/plugin-transform-modules-systemjs" "^7.16.0" - "@babel/plugin-transform-modules-umd" "^7.16.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.0" - "@babel/plugin-transform-new-target" "^7.16.0" - "@babel/plugin-transform-object-super" "^7.16.0" - "@babel/plugin-transform-parameters" "^7.16.3" - "@babel/plugin-transform-property-literals" "^7.16.0" - "@babel/plugin-transform-regenerator" "^7.16.0" - "@babel/plugin-transform-reserved-words" "^7.16.0" - "@babel/plugin-transform-shorthand-properties" "^7.16.0" - "@babel/plugin-transform-spread" "^7.16.0" - "@babel/plugin-transform-sticky-regex" "^7.16.0" - "@babel/plugin-transform-template-literals" "^7.16.0" - "@babel/plugin-transform-typeof-symbol" "^7.16.0" - "@babel/plugin-transform-unicode-escapes" "^7.16.0" - "@babel/plugin-transform-unicode-regex" "^7.16.0" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.16.0" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.4.0" - babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.19.1" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" - integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== +"@babel/preset-modules@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" @@ -2230,7 +1482,7 @@ core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": version "7.11.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz" integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== @@ -2251,13 +1503,6 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.15.3": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5" - integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== - dependencies: - regenerator-runtime "^0.13.4" - "@babel/template@^7.10.4", "@babel/template@^7.3.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz" @@ -2294,15 +1539,6 @@ "@babel/parser" "^7.15.4" "@babel/types" "^7.15.4" -"@babel/template@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" - integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/parser" "^7.16.0" - "@babel/types" "^7.16.0" - "@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz" @@ -2362,21 +1598,6 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.16.0", "@babel/traverse@^7.16.3": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.3.tgz#f63e8a938cc1b780f66d9ed3c54f532ca2d14787" - integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.0" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/parser" "^7.16.3" - "@babel/types" "^7.16.0" - debug "^4.1.0" - globals "^11.1.0" - "@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz" @@ -2410,14 +1631,6 @@ "@babel/helper-validator-identifier" "^7.14.9" to-fast-properties "^2.0.0" -"@babel/types@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" - integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - to-fast-properties "^2.0.0" - "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" @@ -2777,11 +1990,6 @@ style-mod "^4.0.0" w3c-keyname "^2.2.4" -"@csstools/convert-colors@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz" - integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== - "@eslint/eslintrc@^0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.1.3.tgz" @@ -2821,14 +2029,6 @@ npm "^6.3.0" underscore "^1.8.3" -"@fullhuman/postcss-purgecss@^2.1.2": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@fullhuman/postcss-purgecss/-/postcss-purgecss-2.3.0.tgz" - integrity sha512-qnKm5dIOyPGJ70kPZ5jiz0I9foVOic0j+cOzNDoo8KoCf6HjicIZ99UfO2OmE7vCYSKAAepEwJtNzpiiZAh9xw== - dependencies: - postcss "7.0.32" - purgecss "^2.3.0" - "@hotwired/turbo-rails@^7.0.0-rc.1": version "7.0.0-rc.1" resolved "https://registry.yarnpkg.com/@hotwired/turbo-rails/-/turbo-rails-7.0.0-rc.1.tgz#68cc07b2a1e7d9b29240c525c657722b3f0c3842" @@ -3198,23 +2398,11 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" -"@npmcli/move-file@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz" - integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== - dependencies: - mkdirp "^1.0.4" - "@open-draft/until@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@open-draft/until/-/until-1.0.3.tgz" integrity sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q== -"@polka/url@^1.0.0-next.15": - version "1.0.0-next.15" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.15.tgz#6a9d143f7f4f49db2d782f9e1c8839a29b43ae23" - integrity sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA== - "@popperjs/core@^2.5.2": version "2.5.2" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.5.2.tgz" @@ -3249,50 +2437,6 @@ resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.0.3.tgz" integrity sha512-CM9OEvoN9eXkaX7PXEnbsQLULJ97b9rVmwliZbz/iBOERLJ68Rk3ClJe+fQEMKU4CBZfky2lIRnfslOdUs9SLQ== -"@rails/webpacker@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-5.4.3.tgz#cfe2d8faffe7db5001bad50a1534408b4f2efb2f" - integrity sha512-tEM8tpUtfx6FxKwcuQ9+v6pzgqM5LeAdhT6IJ4Te3BPKFO1xrGrXugqeRuZ+gE8ASDZRTOK6yuQkapOpuX5JdA== - dependencies: - "@babel/core" "^7.15.0" - "@babel/plugin-proposal-class-properties" "^7.14.5" - "@babel/plugin-proposal-object-rest-spread" "^7.14.7" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.14.7" - "@babel/plugin-transform-regenerator" "^7.14.5" - "@babel/plugin-transform-runtime" "^7.15.0" - "@babel/preset-env" "^7.15.0" - "@babel/runtime" "^7.15.3" - babel-loader "^8.2.2" - babel-plugin-dynamic-import-node "^2.3.3" - babel-plugin-macros "^2.8.0" - case-sensitive-paths-webpack-plugin "^2.4.0" - compression-webpack-plugin "^4.0.1" - core-js "^3.16.2" - css-loader "^3.6.0" - file-loader "^6.2.0" - flatted "^3.2.2" - glob "^7.1.7" - js-yaml "^3.14.1" - mini-css-extract-plugin "^0.9.0" - optimize-css-assets-webpack-plugin "^5.0.8" - path-complete-extname "^1.0.0" - pnp-webpack-plugin "^1.7.0" - postcss-flexbugs-fixes "^4.2.1" - postcss-import "^12.0.1" - postcss-loader "^3.0.0" - postcss-preset-env "^6.7.0" - postcss-safe-parser "^4.0.2" - regenerator-runtime "^0.13.9" - sass "^1.38.0" - sass-loader "10.1.1" - style-loader "^1.3.0" - terser-webpack-plugin "^4.2.3" - webpack "^4.46.0" - webpack-assets-manifest "^3.1.1" - webpack-cli "^3.3.12" - webpack-sources "^1.4.3" - "@sinonjs/commons@^1.7.0": version "1.8.1" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz" @@ -3479,14 +2623,6 @@ resolved "https://registry.yarnpkg.com/@types/fontfaceobserver/-/fontfaceobserver-0.0.6.tgz" integrity sha512-QJ1znjr9CDax2L17rgBnDOfNHsC1XtVAMswu+lRWvWb+kANhHA0slUNSSBsG8FVNvM4I4yXlN9doJRot3A2hkQ== -"@types/glob@^7.1.1": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz" - integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - "@types/graceful-fs@^4.1.2": version "4.1.3" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz" @@ -3541,21 +2677,11 @@ dependencies: "@types/sizzle" "*" -"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5": +"@types/json-schema@^7.0.3": version "7.0.6" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz" integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== -"@types/json-schema@^7.0.4": - version "7.0.5" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz" - integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== - -"@types/json-schema@^7.0.8": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== - "@types/lodash@^4.14.165": version "4.14.165" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.165.tgz" @@ -3566,7 +2692,7 @@ resolved "https://registry.yarnpkg.com/@types/marked/-/marked-2.0.3.tgz#c8ea93684e530cc3b667d3e7226556dd0844ad1f" integrity sha512-lbhSN1rht/tQ+dSWxawCzGgTfxe9DB31iLgiT1ZVT5lshpam/nyOA1m3tKHRoNPctB2ukSL22JZI5Fr+WI/zYg== -"@types/minimatch@*", "@types/minimatch@^3.0.3": +"@types/minimatch@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== @@ -3608,11 +2734,6 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz" integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== -"@types/q@^1.5.1": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz" - integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== - "@types/qs@^6.9.5": version "6.9.5" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.5.tgz#434711bdd49eb5ee69d90c1d67c354a9a8ecb18b" @@ -3684,11 +2805,6 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.0.tgz" integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== -"@types/webpack-env@^1.15.3": - version "1.15.3" - resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.15.3.tgz" - integrity sha512-5oiXqR7kwDGZ6+gmzIO2lTC+QsriNuQXZDWNYRV3l2XRN/zmPgnC21DLSx2D05zvD8vnXW6qUg7JnXZ4I6qLVQ== - "@types/yargs-parser@*": version "15.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz" @@ -3824,151 +2940,6 @@ "@typescript-eslint/types" "4.4.0" eslint-visitor-keys "^2.0.0" -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - "@xstate/react@^1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@xstate/react/-/react-1.3.1.tgz#5794e1c7d2bc70759b5dc2c9ccc9ddaa6e68e98a" @@ -3977,16 +2948,6 @@ use-isomorphic-layout-effect "^1.0.0" use-subscription "^1.3.0" -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - JSONStream@^1.3.4, JSONStream@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -4015,14 +2976,6 @@ abortcontroller-polyfill@^1.7.3: resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz#1b5b487bd6436b5b764fd52a612509702c3144b5" integrity sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q== -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" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - ace-builds@^1.4.12: version "1.4.12" resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.4.12.tgz#888efa386e36f4345f40b5233fcc4fe4c588fae7" @@ -4055,16 +3008,6 @@ acorn-walk@^7.0.0, acorn-walk@^7.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn-walk@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.1.tgz#3ddab7f84e4a7e2313f6c414c5b7dac85f4e3ebc" - integrity sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w== - -acorn@^6.4.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== - acorn@^7.0.0, acorn@^7.1.1: version "7.4.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz" @@ -4075,7 +3018,7 @@ acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4, acorn@^8.2.4: +acorn@^8.2.4: version "8.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== @@ -4113,34 +3056,6 @@ agentkeepalive@^3.4.1: dependencies: humanize-ms "^1.2.1" -aggregate-error@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz" - integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3: - version "6.12.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz" - integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - ajv@^6.10.0, ajv@^6.12.4: version "6.12.5" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz" @@ -4151,21 +3066,16 @@ ajv@^6.10.0, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^6.12.5: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== +ajv@^6.10.2, ajv@^6.12.3: + version "6.12.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz" + integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - ansi-align@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" @@ -4173,11 +3083,6 @@ ansi-align@^2.0.0: dependencies: string-width "^2.0.0" -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz" @@ -4190,11 +3095,6 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.11.0" -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz" @@ -4215,6 +3115,11 @@ ansi-regex@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz" @@ -4292,6 +3197,11 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" +arg@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb" + integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA== + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz" @@ -4327,16 +3237,6 @@ array-differ@^3.0.0: resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - array-includes@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz" @@ -4346,22 +3246,15 @@ array-includes@^3.1.1: es-abstract "^1.17.0" is-string "^1.0.5" -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= +array-union@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-3.0.1.tgz#da52630d327f8b88cfbfb57728e2af5cd9b6b975" + integrity sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw== array-unique@^0.3.2: version "0.3.2" @@ -4387,15 +3280,6 @@ asap@^2.0.0, asap@~2.0.6: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz" @@ -4408,14 +3292,6 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz" @@ -4426,49 +3302,26 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^9.4.5, autoprefixer@^9.6.1: - version "9.8.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz" - integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== +autoprefixer@^10.4.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.0.tgz#c3577eb32a1079a440ec253e404eaf1eb21388c8" + integrity sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA== dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - colorette "^1.2.1" + browserslist "^4.17.5" + caniuse-lite "^1.0.30001272" + fraction.js "^4.1.1" normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.32" + picocolors "^1.0.0" postcss-value-parser "^4.1.0" aws-sign2@~0.7.0: @@ -4523,16 +3376,6 @@ babel-jest@^27.0.6: graceful-fs "^4.2.4" slash "^3.0.0" -babel-loader@^8.2.2: - version "8.2.2" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" - integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^1.4.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" - 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" @@ -4581,14 +3424,14 @@ babel-plugin-jest-hoist@^27.0.6: "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-plugin-macros@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz" - integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== dependencies: - "@babel/runtime" "^7.7.2" - cosmiconfig "^6.0.0" - resolve "^1.12.0" + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" babel-plugin-polyfill-corejs2@^0.2.0: version "0.2.0" @@ -4599,15 +3442,6 @@ babel-plugin-polyfill-corejs2@^0.2.0: "@babel/helper-define-polyfill-provider" "^0.2.0" semver "^6.1.1" -babel-plugin-polyfill-corejs2@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz#407082d0d355ba565af24126fb6cb8e9115251fd" - integrity sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA== - dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.0" - semver "^6.1.1" - babel-plugin-polyfill-corejs3@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz#f4b4bb7b19329827df36ff56f6e6d367026cb7a2" @@ -4616,14 +3450,6 @@ babel-plugin-polyfill-corejs3@^0.2.0: "@babel/helper-define-polyfill-provider" "^0.2.0" core-js-compat "^3.9.1" -babel-plugin-polyfill-corejs3@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz#0b571f4cf3d67f911512f5c04842a7b8e8263087" - integrity sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.0" - core-js-compat "^3.18.0" - babel-plugin-polyfill-regenerator@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz#853f5f5716f4691d98c84f8069c7636ea8da7ab8" @@ -4631,13 +3457,6 @@ babel-plugin-polyfill-regenerator@^0.2.0: dependencies: "@babel/helper-define-polyfill-provider" "^0.2.0" -babel-plugin-polyfill-regenerator@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz#9ebbcd7186e1a33e21c5e20cae4e7983949533be" - integrity sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.0" - babel-plugin-transform-react-remove-prop-types@^0.4.24: version "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" @@ -4707,11 +3526,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz" @@ -4725,11 +3539,6 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" @@ -4737,11 +3546,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - bin-links@^1.1.2, bin-links@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.8.tgz#bd39aadab5dc4bdac222a07df5baf1af745b2228" @@ -4754,71 +3558,16 @@ bin-links@^1.1.2, bin-links@^1.1.8: npm-normalize-package-bin "^1.0.0" write-file-atomic "^2.3.0" -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - binary-extensions@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz" integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - -bn.js@^5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== - -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - boxen@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" @@ -4840,7 +3589,7 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: +braces@^2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== @@ -4863,86 +3612,17 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - 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" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.6.4: - version "4.14.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.0.tgz" - integrity sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ== +browserslist-to-esbuild@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/browserslist-to-esbuild/-/browserslist-to-esbuild-1.1.1.tgz#acb743cb7877ddec8c51d41cc9a2a7fe8e7ddbb5" + integrity sha512-FGnR2nWUvgQhHXN6KFGybfAEdAnHetmv7oiS3EE6qFmERILZ/3fxY9X2KGgvb9+TzBG5sW/sxwknUZJiWJTL5Q== dependencies: - caniuse-lite "^1.0.30001111" - electron-to-chromium "^1.3.523" - escalade "^3.0.2" - node-releases "^1.1.60" + browserslist "^4.17.3" browserslist@^4.14.5, browserslist@^4.16.6: version "4.16.6" @@ -4955,7 +3635,18 @@ browserslist@^4.14.5, browserslist@^4.16.6: escalade "^3.1.1" node-releases "^1.1.71" -browserslist@^4.17.5, browserslist@^4.18.1: +browserslist@^4.17.3: + version "4.19.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" + integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== + dependencies: + caniuse-lite "^1.0.30001286" + electron-to-chromium "^1.4.17" + escalade "^3.1.1" + node-releases "^2.0.1" + picocolors "^1.0.0" + +browserslist@^4.17.5: version "4.18.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f" integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== @@ -4978,30 +3669,6 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -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" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - builtins@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" @@ -5017,16 +3684,6 @@ byte-size@^5.0.1: resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.0, bytes@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: version "12.0.4" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz" @@ -5048,29 +3705,6 @@ cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: unique-filename "^1.1.1" y18n "^4.0.0" -cacache@^15.0.5: - version "15.0.5" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz" - integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== - dependencies: - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - 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" @@ -5099,25 +3733,6 @@ call-limit@^1.1.1: resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.1.tgz#ef15f2670db3f1992557e2d965abc459e6e358d4" integrity sha512-5twvci5b9eRBw2wCfPtN0GmlR2/gadZqyFpPhOK6CvMFoFgA+USnZ6Jpu1lhG9h85pQ3Ouil3PfXWRD4EUaRiQ== -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz" @@ -5143,26 +3758,26 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001111, caniuse-lite@^1.0.30001219: +caniuse-lite@^1.0.30001219: version "1.0.30001242" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001242.tgz" integrity sha512-KvNuZ/duufelMB3w2xtf9gEWCSxJwUgoxOx5b6ScLXC4kPc9xsczUVCPrQU26j5kOsHM4pSUL54tAZt5THQKug== +caniuse-lite@^1.0.30001272: + version "1.0.30001289" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001289.tgz#d62a20175c4d9e740feda12a78b7c8df7866329e" + integrity sha512-hV6x4IfrYViN8cJbGFVbjD7KCrhS/O7wfDgvevYRanJ/IN+hhxpTcXXqaxy3CzPNFe5rlqdimdEB/k7H0YzxHg== + caniuse-lite@^1.0.30001280: version "1.0.30001283" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz#8573685bdae4d733ef18f78d44ba0ca5fe9e896b" integrity sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg== +caniuse-lite@^1.0.30001286: + version "1.0.30001299" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz#d753bf6444ed401eb503cbbe17aa3e1451b5a68c" + integrity sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw== + capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz" @@ -5175,17 +3790,12 @@ capture-stack-trace@^1.0.0: resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== -case-sensitive-paths-webpack-plugin@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" - integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== - caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@^2.0, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -5202,7 +3812,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -"chalk@^3.0.0 || ^4.0.0", chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.0.0, chalk@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz" integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== @@ -5210,6 +3820,14 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz" @@ -5220,7 +3838,7 @@ chart.js@^3.1.0: resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-3.1.0.tgz#b99cfe712fa0059134a4ad3a3515135fbb20bcea" integrity sha512-bKJi2VbC4fqZXlLbK7LKVvmG9crjoG9anfp96utZLyIGPuCx+YN+5/HDXy98QGt3lf74T8gKUPISUZL222tDJQ== -"chokidar@>=3.0.0 <4.0.0": +chokidar@^3.3.0, chokidar@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== @@ -5235,26 +3853,7 @@ chart.js@^3.1.0: optionalDependencies: fsevents "~2.3.2" -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.4.1, chokidar@^3.4.2: +chokidar@^3.4.2: version "3.4.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz" integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== @@ -5274,18 +3873,6 @@ chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.4: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" - ci-info@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" @@ -5308,14 +3895,6 @@ cidr-regex@^2.0.10: dependencies: ip-regex "^2.1.0" -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - cjs-module-lexer@^1.0.0: version "1.2.2" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" @@ -5331,11 +3910,6 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - cli-boxes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" @@ -5386,6 +3960,15 @@ cliui@^7.0.0: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" @@ -5409,15 +3992,6 @@ co@^4.6.0: resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz" integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz" @@ -5454,7 +4028,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.9.0, color-convert@^1.9.1: +color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -5473,32 +4047,11 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0, color-name@~1.1.4: +color-name@^1.1.4, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.5.2: - version "1.5.3" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz" - integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0, color@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz" - integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.2" - -colorette@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz" - integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== - colorette@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" @@ -5524,26 +4077,6 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - -commander@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - compare-versions@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz" @@ -5554,37 +4087,6 @@ component-emitter@^1.2.1: resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression-webpack-plugin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-4.0.1.tgz#33eda97f1170dd38c5556771de10f34245aa0274" - integrity sha512-0mg6PgwTsUe5LEcUrOu3ob32vraDx2VdbMGAT1PARcOV+UJWDYZFdkSo6RbHoGQ061mmmkC7XpRKOlvwm/gzJQ== - dependencies: - cacache "^15.0.5" - find-cache-dir "^3.3.1" - schema-utils "^2.7.0" - serialize-javascript "^4.0.0" - webpack-sources "^1.4.3" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz" @@ -5620,38 +4122,11 @@ configstore@^3.0.0: write-file-atomic "^2.0.0" xdg-basedir "^3.0.0" -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - convert-source-map@^1.4.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" @@ -5659,16 +4134,6 @@ convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: dependencies: safe-buffer "~5.1.1" -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - cookie@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz" @@ -5698,14 +4163,6 @@ copy-to-clipboard@^3.3.1: dependencies: toggle-selection "^1.0.6" -core-js-compat@^3.18.0, core-js-compat@^3.19.1: - version "3.19.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.2.tgz#18066a3404a302433cb0aa8be82dd3d75c76e5c4" - integrity sha512-ObBY1W5vx/LFFMaL1P5Udo4Npib6fu+cMokeziWkA8Tns4FcDemKF5j9JvaI5JhdkW8EQJQGJN1EcrzmEwuAqQ== - dependencies: - browserslist "^4.18.1" - semver "7.0.0" - core-js-compat@^3.9.0, core-js-compat@^3.9.1: version "3.12.1" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.12.1.tgz#2c302c4708505fa7072b0adb5156d26f7801a18b" @@ -5724,11 +4181,6 @@ core-js@^3.11.0: resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.12.0.tgz#62bac86f7d7f087d40dba3e90a211c2c3c8559ea" integrity sha512-SaMnchL//WwU2Ot1hhkPflE8gzo7uq1FGvUJ8GKmi3TOU7rGTHIU+eir1WGf6qOtTyxdfdcp10yPdGZ59sQ3hw== -core-js@^3.16.2: - version "3.19.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.19.2.tgz#ae216d7f4f7e924d9a2e3ff1e4b1940220f9157b" - integrity sha512-ciYCResnLIATSsXuXnIOH4CbdfgV+H1Ltg16hJFN7/v6OxqnFr/IFGeLacaZ+fHLAm0TBbXwNK9/DNBzBUrO/g== - core-js@^3.6.5: version "3.6.5" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz" @@ -5739,16 +4191,6 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - cosmiconfig@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz" @@ -5760,13 +4202,16 @@ cosmiconfig@^6.0.0: path-type "^4.0.0" yaml "^1.7.2" -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== +cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" create-error-class@^3.0.0: version "3.0.2" @@ -5775,29 +4220,6 @@ create-error-class@^3.0.0: dependencies: capture-stack-trace "^1.0.0" -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - crelt@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.5.tgz#57c0d52af8c859e354bace1883eb2e1eb182bb94" @@ -5812,7 +4234,7 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.0, cross-spawn@^6.0.5: +cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -5832,123 +4254,11 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - crypto-random-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= -css-blank-pseudo@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz" - integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== - dependencies: - postcss "^7.0.5" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-has-pseudo@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz" - integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^5.0.0-rc.4" - -css-loader@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" - integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== - dependencies: - camelcase "^5.3.1" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^2.7.0" - semver "^6.3.0" - -css-prefers-color-scheme@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz" - integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== - dependencies: - postcss "^7.0.5" - -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" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -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" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -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" - integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== - dependencies: - mdn-data "2.0.6" - source-map "^0.6.1" - -css-unit-converter@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz" - integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA== - -css-what@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.3.0.tgz" - integrity sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg== - css.escape@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz" @@ -5963,96 +4273,11 @@ css@^3.0.0: source-map "^0.6.1" source-map-resolve "^0.6.0" -cssdb@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz" - integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== - -cssesc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== - cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz" - integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.2" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10: - version "4.1.10" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz" - integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.7" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz" - integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ== - dependencies: - css-tree "1.0.0-alpha.39" - cssom@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz" @@ -6106,13 +4331,6 @@ dayjs@^1.8.35: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.35.tgz" integrity sha512-isAbIEenO4ilm6f8cpqvgjZCsuerDAz2Kb7ri201AiNn58aqXuaLJEnCtfIMdCvERZHNGRY5lDMTr/jdAnKSWQ== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - debug@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" @@ -6127,6 +4345,13 @@ debug@4: dependencies: ms "2.1.2" +debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + debug@^3.1.0: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -6134,13 +4359,6 @@ debug@^3.1.0: dependencies: ms "^2.1.1" -debug@^3.1.1, debug@^3.2.5: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - debug@^4.0.1: version "4.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz" @@ -6180,18 +4398,6 @@ dedent@^0.7.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -6207,14 +4413,6 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz" 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" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - defaults@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" @@ -6256,19 +4454,6 @@ defined@^1.0.0: resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz" integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz" @@ -6279,28 +4464,10 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= +dependency-graph@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" + integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== detect-indent@~5.0.0: version "5.0.0" @@ -6317,11 +4484,6 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - detective@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz" @@ -6339,6 +4501,11 @@ dezalgo@^1.0.0, dezalgo@~1.0.3: asap "^2.0.0" wrappy "1" +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + diff-match-patch@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz#abb584d5f10cd1196dfc55aa03701592ae3f7b37" @@ -6369,15 +4536,6 @@ diff@5.0.0: resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz" @@ -6385,25 +4543,10 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz" - integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= - dependencies: - buffer-indexof "^1.0.0" +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== doctrine@^2.1.0: version "2.1.0" @@ -6429,34 +4572,11 @@ dom-accessibility-api@^0.5.1: resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.2.tgz" integrity sha512-k7hRNKAiPJXD2aBqfahSo4/01cTsKWXf+LqJgglnkN2Nz8TsxXKQBXHhKe0Ye9fEfHEZY49uSA5Sr3AqP/sWKA== -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - dom-walk@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz" integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== - domexception@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz" @@ -6464,14 +4584,6 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - dot-prop@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" @@ -6479,13 +4591,6 @@ dot-prop@^4.2.1: dependencies: is-obj "^1.0.0" -dot-prop@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz" - integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== - dependencies: - is-obj "^2.0.0" - dotenv@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" @@ -6496,11 +4601,6 @@ duplexer3@^0.1.4: resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= -duplexer@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz" @@ -6535,16 +4635,6 @@ editor@~1.0.0: resolved "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz#60c7f87bd62bcc6a894fa8ccd6afb7823a24f742" integrity sha1-YMf4e9YrzGqJT6jM1q+3gjok90I= -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.3.523: - version "1.3.527" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.527.tgz" - integrity sha512-ZlB9ySKOnS4g2Ja/TWDz4Q79NZhKV+Vsgntg85zLN08t+QsN1hK/zeDrcqwysSfbfGRVtvai6QYMczeNNUUgUA== - electron-to-chromium@^1.3.723: version "1.3.733" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.733.tgz#991844c0b0cf79f559e78232721da3acda1b7e0a" @@ -6555,18 +4645,10 @@ electron-to-chromium@^1.3.896: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.8.tgz#e1b7752ac1a75e39b5dd90cc7e29ea08b351c484" integrity sha512-Cu5+dbg55+1E3ohlsa8HT0s4b8D0gBewXEGG8s5wBl8ynWv60VuvYW25GpsOeTVXpulhyU/U8JYZH+yxASSJBQ== -elliptic@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" +electron-to-chromium@^1.4.17: + version "1.4.44" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.44.tgz#8a41923afdd6ef5ddabe001626036ba5d1d64ae6" + integrity sha512-tHGWiUUmY7GABK8+DNcr474cnZDTzD8x1736SlDosVH8+/vRJeqfaIBAEHFtMjddz/0T4rKKYsxEc8BwQRdBpw== emittery@^0.8.1: version "0.8.1" @@ -6583,16 +4665,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - encoding@^0.1.11: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" @@ -6607,24 +4679,6 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz" - integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -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" - tapable "^1.0.0" - enquirer@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz" @@ -6632,11 +4686,6 @@ enquirer@^2.3.5: dependencies: ansi-colors "^4.1.1" -entities@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz" - integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== - env-paths@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" @@ -6647,7 +4696,7 @@ err-code@^1.0.0: resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= -errno@^0.1.3, errno@~0.1.7: +errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz" integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== @@ -6685,7 +4734,7 @@ es-abstract@^1.17.0: string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" -es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: +es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: version "1.17.6" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz" integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== @@ -6763,30 +4812,30 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" -esbuild-android-arm64@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.5.tgz#a299a18fd8a016ae19fd948fc659b3f65d1b992f" - integrity sha512-xaNH58b9XRAWT5q0rwA2GNTgJynb51JhdotlNKdLmSCyKXPVlF87yqNLNdmlX/zndzRDrZdtpCWSALdn/J63Ug== +esbuild-android-arm64@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.5.tgz#a7bc2263e099b67d1d6bc10ad504f396b439a42a" + integrity sha512-Sl6ysm7OAZZz+X3Mv3tOPhjMuSxNmztgoXH4ZZ3Yhbje5emEY6qiTnv3vBSljDlUl/yGaIjqC44qlj8s8G71xA== -esbuild-darwin-64@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.5.tgz#01359f2c6921bd2704d0a895f5603ab33f2eeb1b" - integrity sha512-ClGQeUObXIxEpZviGzjTinDikXy9XodojP9jLKwqLCBpZ9wdV3MW7JOmw60fgXgnbNRvkZCqM6uEi+ur8p80Ow== +esbuild-darwin-64@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.5.tgz#589f4b8663feb044f2425e70618f6a9debebaf14" + integrity sha512-VHZl23sM9BOZXcLxk1vTYls8TCAY+/3llw9vHKIWAHDHzBBOlVv26ORK8gnStNMqTjCSGSMoq4T5jOZf2WrJPQ== -esbuild-darwin-arm64@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.5.tgz#1dbe362ebc9afcdab4f9af9bb320dacd73e2aedc" - integrity sha512-qro6M/qzs1dBPh14Ca+5moIkLo2KE3ll3dOpiN7aAususkM1HmqQptCEchi0XwX+6nfqWI96YvVqPJ3DfUUK5A== +esbuild-darwin-arm64@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.5.tgz#c4def102fddd52ccaf23cf00c3274296de6b12db" + integrity sha512-ugPOLgEQPoPLSqAFBajaczt+lcbUZR+V2fby3572h5jf/kFV6UL8LAZ1Ze58hcbKwfvbh4C09kp0PhqPgXKwOg== -esbuild-freebsd-64@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.5.tgz#fecee59fa491a3f544c731b0c0319bd5a9da7d50" - integrity sha512-vklf7L7fghREEvS1sjAFcxcw/Qqt+Z+L0ySN+pEeb7rA8nPLfRBSFdXAru8UNuHsMWns6CrcZ5eDOKTerZZ5ng== +esbuild-freebsd-64@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.5.tgz#e5152bbf256942fe498dfe4a5f92b8bb148a64b5" + integrity sha512-uP0yOixSHF505o/Kzq9e4bvZblCZp9GGx+a7enLOVSuvIvLmtj2yhZLRPGfbVNkPJXktTKNRAnNGkXHl53M6sw== -esbuild-freebsd-arm64@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.5.tgz#4e98c0e33ed19a63ffd4db87314986b9d93850b5" - integrity sha512-kJoouhbZt4QvjiPak7/Lz57Azok0CgFnNtixiOsqEQXTabIaKmMmnq4qgjD6EBFeU/hvSXDrPe6U8dWhBZOrWQ== +esbuild-freebsd-arm64@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.5.tgz#7c1ad25ae9ed101df76dc64d83fcfd2ddba5aed0" + integrity sha512-M99NPu8hlirFo6Fgx0WfX6XxUFdGclUNv3MyyfDtTdNYbccMESwLSACGpE7HvJKWscdjaqajeMu2an9adGNfCw== esbuild-jest@^0.5.0: version "0.5.0" @@ -6797,111 +4846,106 @@ esbuild-jest@^0.5.0: "@babel/plugin-transform-modules-commonjs" "^7.12.13" babel-jest "^26.6.3" -esbuild-linux-32@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.5.tgz#00083740af7f1416951c634a461e3d01ed812cd0" - integrity sha512-/QufG6tTGKAf42pIYkOVZzKBPxF01xH1kCPyOFJZukZBV/Tk3TeOZfhJIAf7pxl4jhfa+c4Jcdp7CvIAjXrmJg== - -esbuild-linux-64@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.5.tgz#49bd1648fd2070594fe3aad31925108ee2916216" - integrity sha512-NmNFMXEthuFJTFaD4cLhAHCxg+y3uXzo7nqH/WNNSZ8PPY11jbeOvMbdArYlbo2Wy1N/mTHXMcK1synSJj+4Iw== - -esbuild-linux-arm64@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.5.tgz#78ef0f20d2b175403552075cc6d6af80f55a22d8" - integrity sha512-dOS5EZsZj8Lw0TgEj3zy1/slTBbfBw4v7uHEqZXP34dUaRq2oltNaUYIj735CtgB7I5/MXrXEUYkXLqcVfzJQQ== - -esbuild-linux-arm@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.5.tgz#27c4e92a6597376a8c3fe8c79177d72ba77f8500" - integrity sha512-69nQmbKLBRaAxf88diyaOyarrI7yIdBkZ8bmVzQ7XVWneY+nYIcGtugTSOs5znNGfPqGOElAjh1lX+0sGYHNpA== - -esbuild-linux-mips64le@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.5.tgz#4061cbef41f96e4a176bebf7e7b2d6d397e05e86" - integrity sha512-dmKA8ZI/nHwpxIQW/L5crk7Ac4wJJ2Kquvdo1CdXPW1UljMyKUDuHc4K7D1Iws5igqJmNO6U5vdRUKrdnIov6Q== - -esbuild-linux-ppc64le@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.5.tgz#290a5caca6751b8c80c5d075cafe857102263118" - integrity sha512-HkVGKkPL3XOhJqNOJ752Q1li5zeidrJHv+XWX6qCnCipNsVuGqaAGfxeWbL/+A/giolMlP7wvAuiKgoe+a5UAw== - -esbuild-loader@^2.16.0: - version "2.16.0" - resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-2.16.0.tgz#a44a57a77ed2810d6b278579271f77d739aa7bc9" - integrity sha512-LCJEwkf+nMJbNmVYNgg/0PaIZDdr5OcHw1qbWAZLkrmBRX+KwHY/yAS6ia98UBtwzk/WhsftUBNB6tfPHgFIxw== - dependencies: - esbuild "^0.13.4" - joycon "^3.0.1" - json5 "^2.2.0" - loader-utils "^2.0.0" - tapable "^2.2.0" - type-fest "^1.4.0" - webpack-sources "^2.2.0" - -esbuild-openbsd-64@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.5.tgz#223eb2730a6fede7930a2b44b0b1d5b067a3cef5" - integrity sha512-BuOZzmdsdreSs0qDgbuiEhSbUDDW2Wyp4VtpNGBmaLwPMHftdprOJXLkeFud3HlnRB2n9qdiTVKg1B8YqMogSw== - -esbuild-sunos-64@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.5.tgz#6f121ac285c298f09467748607cc0496ebbfd23e" - integrity sha512-YJNB6Og1QYAPikvYDbqvk5xCqr6WL2i5cRWPGGgWOEItQPnq6gFsWogS3DiYM8TQKe50KRiD3Lwu7eNYsdPO4w== - -esbuild-windows-32@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.5.tgz#0da6d240152f76f3dd764c0bb0391d894acd403f" - integrity sha512-CigOlBSKsZ61IS+FyhD3luqCpl7LN9ntDaBZXumls/0IZ/8BJ5txqw4a6pv4LtnfIgt0ixGHSH7kAUmApw/HAw== - -esbuild-windows-64@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.5.tgz#330266a2c95b26c2f949e9de9b0c366924fec53f" - integrity sha512-pg2BZXLpcPcrIcmToGapLRExzj6sm0VmQlqlmnMOtIJh0YQV9c0CRbhfIT0gYvJqCz5JEGiRvYpArRlxWADN3Q== - -esbuild-windows-arm64@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.5.tgz#e0501e82b88f4165cce7cd017db83428f459f775" - integrity sha512-KKRDmUOIE4oCvJp0I4p4QyazK2X79spF29vsZr2U8qHhmxbTLSQWvYmb2WlF5Clb1URRsX0L013rhwHx1SEu0w== - -esbuild@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.5.tgz#f9add2c2c899a9023dd7f7b64c452320f008aa79" - integrity sha512-Q9/f1njsZaO+Qqe3dqAdtu4zGHNZIbcEtdg44/NooyPhqCerns4FeC1UPYeB4pKD08iDuWcmyINFJTqpdN+pqg== - optionalDependencies: - esbuild-android-arm64 "0.13.5" - esbuild-darwin-64 "0.13.5" - esbuild-darwin-arm64 "0.13.5" - esbuild-freebsd-64 "0.13.5" - esbuild-freebsd-arm64 "0.13.5" - esbuild-linux-32 "0.13.5" - esbuild-linux-64 "0.13.5" - esbuild-linux-arm "0.13.5" - esbuild-linux-arm64 "0.13.5" - esbuild-linux-mips64le "0.13.5" - esbuild-linux-ppc64le "0.13.5" - esbuild-openbsd-64 "0.13.5" - esbuild-sunos-64 "0.13.5" - esbuild-windows-32 "0.13.5" - esbuild-windows-64 "0.13.5" - esbuild-windows-arm64 "0.13.5" +esbuild-linux-32@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.5.tgz#047a2d6d9dd5f85e6e6875b048c41ab2515e12ce" + integrity sha512-hfqln4yb/jf/vPvI/A6aCvpIzqF3PdDmrKiikTohEUuRtvEZz234krtNwEAw5ssCue4NX8BJqrMpCTAHOl3LQw== -escalade@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz" - integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== +esbuild-linux-64@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.5.tgz#03793b5a0ae450c725616fc724b3a406cd2da2fa" + integrity sha512-T+OuYPlhytjj5DsvjUXizNjbV+/IrZiaDc9SNUfqiUOXHu0URFqchjhPVbBiBnWykCMJFB6pqNap2Oxth4iuYw== -escalade@^3.1.1: - version "3.1.1" +esbuild-linux-arm64@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.5.tgz#9217283b5ccaf2ec9a31f9b4eaeb5787607252a3" + integrity sha512-ANOzoaH4kfbhEZT0EGY9g1tsZhDA+I0FRwBsj7D8pCU900pXF/l8YAOy5jWFQIb3vjG5+orFc5SqSzAKCisvTQ== + +esbuild-linux-arm@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.5.tgz#e048a681e7f42b12cac1db4a34a84ef17e219333" + integrity sha512-5b10jKJ3lU4BUchOw9TgRResu8UZJf8qVjAzV5muHedonCfBzClGTT4KCNuOcLTJomH3wz6gNVJt1AxMglXnJg== + +esbuild-linux-mips64le@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.5.tgz#c1817c00023d8a1c8fe507e60c63cf8a602bce29" + integrity sha512-sSmGfOUNNB2Nd3tzp1RHSxiJmM5/RUIEP5aAtH+PpOP7FPp15Jcfwq7UNBJ82KLN3SJcwhUeEfcCaUFBzbTKxg== + +esbuild-linux-ppc64le@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.5.tgz#5fa1178c7d7ebd13056c7ccd0604653b0ccc2264" + integrity sha512-usfQrVVIQcpuc/U2NWc7/Ry+m622v+PjJ5eErNPdjWBPlcvD6kXaBTv94uQkVzZOHX3uYqprRrOjseed9ApSYA== + +esbuild-netbsd-64@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.5.tgz#757572c7664ae6122c8e4dd89a2b6d337c3c27b2" + integrity sha512-Q5KpvPZcPnNEaTjrvuWqvEnlhI2jyi1wWwYunlEUAhx60spQOTy10sdYOA+s1M+LPb6kwvasrZZDmYyQlcVZeA== + +esbuild-openbsd-64@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.5.tgz#046827c211daa2b6a2241a9f910321e116d2cc24" + integrity sha512-RZzRUu1RYKextJgXkHhAsuhLDvm73YP/wogpUG9MaAGvKTxnKAKRuaw2zJfnbz8iBqBQB2no2PmpVBNbqUTQrw== + +esbuild-plugin-import-glob@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/esbuild-plugin-import-glob/-/esbuild-plugin-import-glob-0.1.1.tgz#6ab5ad992aa67ba9b1aa80c0759d5617960cd5c3" + integrity sha512-yAFH+9AoIcsQkODSx0KUPRv1FeJUN6Tef8vkPQMcuVkc2vXYneYKsHhOiFS/yIsg5bQ70HHtAlXVA1uTjgoJXg== + dependencies: + fast-glob "^3.2.5" + +esbuild-sunos-64@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.5.tgz#3e2b0e79188069a366faec3d5b1b3065b792a733" + integrity sha512-J2ffKsBBWscQlye+/giEgKsQCppwHHFqqt/sh+ojVF+DZy1ve6RpPGwXGcGF6IaZTAI9+Vk4eHleiQxb+PC9Yw== + +esbuild-windows-32@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.5.tgz#520f3737719177d76955b8f1c34eca8e8d005eba" + integrity sha512-OTZvuAc1JBnwmeT+hR1+Vmgz6LOD7DggpnwtKMAExruSLxUMl02Z3pyalJ7zKh3gJ/KBRM1JQZLSk4/mFWijeQ== + +esbuild-windows-64@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.5.tgz#0100d8aa3c5d57e676aeb37975e948880f751650" + integrity sha512-ZM9rlBDsPEeMVJ1wcpNMXUad9VzYOFeOBUXBi+16HZTvFPy2DkcC2ZWcrByP3IESToD5lvHdjSX/w8rxphjqig== + +esbuild-windows-arm64@0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.5.tgz#c1d575f2c6d27159de9b5d273bcde02445f17a1d" + integrity sha512-iK41mKG2LG0AKHE+9g/jDYU5ZQpJObt1uIPSGTiiiJKI5qbHdEck6Gaqq2tmBI933F2zB9yqZIX7IAdxwN/q4A== + +esbuild@^0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.5.tgz#45ef0287a94cc7a3d367621e4a7ba470a847669f" + integrity sha512-ofwgH4ITPXhkMo2AM39oXpSe5KIyWjxicdqYVy+tLa1lMgxzPCKwaepcrSRtYbgTUMXwquxB1C3xQYpUNaPAFA== + optionalDependencies: + esbuild-android-arm64 "0.14.5" + esbuild-darwin-64 "0.14.5" + esbuild-darwin-arm64 "0.14.5" + esbuild-freebsd-64 "0.14.5" + esbuild-freebsd-arm64 "0.14.5" + esbuild-linux-32 "0.14.5" + esbuild-linux-64 "0.14.5" + esbuild-linux-arm "0.14.5" + esbuild-linux-arm64 "0.14.5" + esbuild-linux-mips64le "0.14.5" + esbuild-linux-ppc64le "0.14.5" + esbuild-netbsd-64 "0.14.5" + esbuild-openbsd-64 "0.14.5" + esbuild-sunos-64 "0.14.5" + esbuild-windows-32 "0.14.5" + esbuild-windows-64 "0.14.5" + esbuild-windows-arm64 "0.14.5" + +escalade@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz" + integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== + +escalade@^3.1.1: + version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" @@ -6967,14 +5011,6 @@ eslint-plugin-testing-library@^4.1.2: dependencies: "@typescript-eslint/experimental-utils" "^4.21.0" -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - eslint-scope@^5.0.0, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz" @@ -7064,13 +5100,6 @@ esquery@^1.2.0: dependencies: estraverse "^5.1.0" -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== - dependencies: - estraverse "^4.1.0" - esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz" @@ -7078,7 +5107,7 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.0, estraverse@^4.1.1: +estraverse@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -7093,36 +5122,6 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eventemitter3@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - -events@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== - -eventsource@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz" - integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== - dependencies: - original "^1.0.0" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - exec-sh@^0.3.2: version "0.3.4" resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz" @@ -7207,13 +5206,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - expect@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.6.tgz#a4d74fbe27222c718fff68ef49d78e26a8fd4c05" @@ -7226,42 +5218,6 @@ expect@^27.0.6: jest-message-util "^27.0.6" jest-regex-util "^27.0.6" -express@^4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz" @@ -7328,6 +5284,17 @@ fast-glob@^3.1.1: micromatch "^4.0.2" picomatch "^2.2.1" +fast-glob@^3.2.5, fast-glob@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" + integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" @@ -7345,20 +5312,6 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.1: - version "0.11.3" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz" - integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== - dependencies: - websocket-driver ">=0.5.1" - fb-watchman@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz" @@ -7378,19 +5331,6 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" -file-loader@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" - integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz" @@ -7413,37 +5353,6 @@ filter-obj@^1.1.0: resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs= -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-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" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - find-npm-prefix@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz#8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf" @@ -7478,16 +5387,6 @@ find-versions@^3.2.0: dependencies: semver-regex "^2.0.0" -findup-sync@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz" @@ -7502,16 +5401,6 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flatted@^3.2.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" - integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== - -flatten@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz" - integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== - flush-promises@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flush-promises/-/flush-promises-1.0.2.tgz#4948fd58f15281fed79cbafc86293d5bb09b2ced" @@ -7530,11 +5419,6 @@ focus-visible@^5.2.0: resolved "https://registry.yarnpkg.com/focus-visible/-/focus-visible-5.2.0.tgz" integrity sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ== -follow-redirects@^1.0.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz" - integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== - fontfaceobserver@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fontfaceobserver/-/fontfaceobserver-2.1.0.tgz" @@ -7550,23 +5434,6 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= -fork-ts-checker-webpack-plugin@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-5.2.0.tgz" - integrity sha512-NEKcI0+osT5bBFZ1SFGzJMQETjQWZrSvMO1g0nAR/w0t328Z41eN8BJEIZyFCl2HsuiJpa9AN474Nh2qLVwGLQ== - dependencies: - "@babel/code-frame" "^7.8.3" - "@types/json-schema" "^7.0.5" - chalk "^4.1.0" - cosmiconfig "^6.0.0" - deepmerge "^4.2.2" - fs-extra "^9.0.0" - memfs "^3.1.2" - minimatch "^3.0.4" - schema-utils "2.7.0" - semver "^7.3.2" - tapable "^1.0.0" - form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -7585,10 +5452,10 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= +fraction.js@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.2.tgz#13e420a92422b6cf244dff8690ed89401029fbe8" + integrity sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA== fragment-cache@^0.2.1: version "0.2.1" @@ -7597,11 +5464,6 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - from2@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-1.3.0.tgz#88413baaa5f9a597cfde9221d86986cd3c061dfd" @@ -7618,24 +5480,14 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-extra@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz" - integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== +fs-extra@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== dependencies: - at-least-node "^1.0.0" graceful-fs "^4.2.0" jsonfile "^6.0.1" - universalify "^1.0.0" + universalify "^2.0.0" fs-minipass@^1.2.5: version "1.2.7" @@ -7644,18 +5496,6 @@ fs-minipass@^1.2.5: dependencies: minipass "^2.6.0" -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-monkey@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.1.tgz" - integrity sha512-fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA== - fs-vacuum@^1.2.10, fs-vacuum@~1.2.10: version "1.2.10" resolved "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz#b7629bec07a4031a2548fdf99f5ecf1cc8b31e36" @@ -7680,14 +5520,6 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - fsevents@^2.1.2, fsevents@~2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz" @@ -7783,6 +5615,11 @@ get-stdin@^6.0.0: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz" integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== +get-stdin@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" + integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== + get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -7819,14 +5656,6 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz" @@ -7834,14 +5663,21 @@ glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: dependencies: is-glob "^4.0.1" -glob-parent@~5.1.2: +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" -glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -7853,18 +5689,6 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, gl once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.7: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - global-dirs@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" @@ -7872,42 +5696,6 @@ global-dirs@^0.1.0: dependencies: ini "^1.3.4" -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - global@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz" @@ -7940,16 +5728,17 @@ globby@^11.0.1: merge2 "^1.3.0" slash "^3.0.0" -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= +globby@^12.0.0: + version "12.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-12.0.2.tgz#53788b2adf235602ed4cabfea5c70a1139e1ab11" + integrity sha512-lAsmb/5Lww4r7MM9nCCliDZVIKbZTavrsunAsHLr9oHthrZP1qi7/gAnHOsUs9bLvEt2vKVJhHmxuL7QbDuPdQ== dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" + array-union "^3.0.1" + dir-glob "^3.0.1" + fast-glob "^3.2.7" + ignore "^5.1.8" + merge2 "^1.4.1" + slash "^4.0.0" got@^6.7.1: version "6.7.1" @@ -7983,18 +5772,6 @@ graphql@^15.3.0: resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.3.0.tgz" integrity sha512-GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w== -gzip-size@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" - integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== - dependencies: - duplexer "^0.1.2" - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz" - 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" @@ -8069,40 +5846,18 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.0, has@^1.0.3: +has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - headers-utils@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/headers-utils/-/headers-utils-1.2.0.tgz" integrity sha512-4/BMXcWrJErw7JpM87gF8MNEXcIMLzepYZjNRv/P9ctgupl2Ywa3u1PgHtNhSRq84bHH9Ndlkdy7bSi+bZ9I9A== -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - highlight.js@10.7.2: version "10.7.2" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.2.tgz#89319b861edc66c48854ed1e6da21ea89f847360" @@ -8118,15 +5873,6 @@ highlightjs-sap-abap@^0.1.0: resolved "https://registry.yarnpkg.com/highlightjs-sap-abap/-/highlightjs-sap-abap-0.1.0.tgz#26a3c049a4388569c1ca8540e8d0ab511eb2c3b7" integrity sha512-mGXYyQa/gSWQMJo7EaZYQKQGHI4rCBgfVKZAxkrzKV7p4H2KVBmiR9aJ7E0Ej8OuCoRkGSE+OAlAaWhME4aBZg== -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - hogan.js@3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/hogan.js/-/hogan.js-3.0.2.tgz#4cd9e1abd4294146e7679e41d7898732b02c7bfd" @@ -8135,13 +5881,6 @@ hogan.js@3.0.2: mkdirp "0.3.0" nopt "1.0.10" -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - hosted-git-info@^2.1.4: version "2.8.8" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz" @@ -8152,31 +5891,6 @@ hosted-git-info@^2.7.1, hosted-git-info@^2.8.9: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-comment-regex@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz" - integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== - html-encoding-sniffer@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz" @@ -8184,68 +5898,16 @@ html-encoding-sniffer@^2.0.1: dependencies: whatwg-encoding "^1.0.5" -html-entities@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz" - 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" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -html-tags@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz" - integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== - http-cache-semantics@^3.8.1: version "3.8.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-parser-js@>=0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.2.tgz" - integrity sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ== - http-proxy-agent@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" @@ -8263,25 +5925,6 @@ http-proxy-agent@^4.0.1: agent-base "6" debug "4" -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy@^1.17.0: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz" @@ -8291,11 +5934,6 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - https-proxy-agent@^2.2.3: version "2.2.4" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" @@ -8359,18 +5997,6 @@ iconv-lite@^0.6.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz" @@ -8398,30 +6024,22 @@ ignore@^5.1.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== +ignore@^5.1.8: + version "5.1.9" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.9.tgz#9ec1a5cbe8e1446ec60d4420060d43aa6e7382fb" + integrity sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ== + immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz" integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= -immutable@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" - integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= +import-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" + integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" + import-from "^3.0.0" import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.2.1" @@ -8431,26 +6049,18 @@ import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= +import-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" + integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== dependencies: - resolve-from "^3.0.0" + resolve-from "^5.0.0" import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - 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" @@ -8469,11 +6079,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz" @@ -8487,21 +6092,11 @@ inflight@^1.0.4, inflight@~1.0.6: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - ini@^1.3.4, ini@^1.3.5, ini@^1.3.8, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz" @@ -8521,14 +6116,6 @@ init-package-json@^1.10.3: validate-npm-package-license "^3.0.1" validate-npm-package-name "^3.0.0" -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - internal-slot@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz" @@ -8538,11 +6125,6 @@ internal-slot@^1.0.2: has "^1.0.3" side-channel "^1.0.2" -interpret@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" @@ -8553,26 +6135,11 @@ ip-regex@^2.1.0: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= -ip@1.1.5, ip@^1.1.0, ip@^1.1.5: +ip@1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" @@ -8587,33 +6154,16 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== - is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - is-bigint@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz" @@ -8676,18 +6226,6 @@ is-cidr@^3.0.0: dependencies: cidr-regex "^2.0.10" -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - is-core-module@^2.2.0: version "2.5.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491" @@ -8695,6 +6233,13 @@ is-core-module@^2.2.0: dependencies: has "^1.0.3" +is-core-module@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" @@ -8732,11 +6277,6 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz" @@ -8749,7 +6289,7 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" -is-extglob@^2.1.0, is-extglob@^2.1.1: +is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= @@ -8776,13 +6316,6 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz" @@ -8790,7 +6323,14 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-installed-globally@^0.1.0: +is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= @@ -8835,23 +6375,6 @@ is-obj@^1.0.0: 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" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - is-path-inside@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" @@ -8859,18 +6382,6 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz" @@ -8888,7 +6399,7 @@ is-redirect@^1.0.0: resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= -is-regex@^1.0.4, is-regex@^1.1.0, is-regex@^1.1.1: +is-regex@^1.1.0, is-regex@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz" integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== @@ -8903,11 +6414,6 @@ is-regex@^1.1.3: call-bind "^1.0.2" has-symbols "^1.0.2" -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - is-retry-allowed@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" @@ -8933,13 +6439,6 @@ is-string@^1.0.6: resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== -is-svg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz" - integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== - dependencies: - html-comment-regex "^1.1.0" - is-symbol@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz" @@ -8959,22 +6458,17 @@ is-typedarray@^1.0.0, is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: +isarray@1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= @@ -9594,11 +7088,6 @@ jest@27: import-local "^3.0.2" jest-cli "^27.0.6" -joycon@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.0.1.tgz#9074c9b08ccf37a6726ff74a18485f85efcaddaf" - integrity sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA== - jquery@^3.2.1: version "3.6.0" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" @@ -9617,14 +7106,6 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz" @@ -9703,18 +7184,6 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json3@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - json5@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz" @@ -9722,20 +7191,6 @@ json5@^2.1.2: dependencies: minimist "^1.2.5" -json5@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - jsonfile@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz" @@ -9768,11 +7223,6 @@ jsx-ast-utils@^2.4.1: array-includes "^3.1.1" object.assign "^4.1.0" -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz" @@ -9802,11 +7252,6 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -klona@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" - integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== - lang-julia@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/lang-julia/-/lang-julia-0.1.0.tgz#7a7fa9262bd6d9146b4208cd5a8e1e448cb4ca73" @@ -9819,14 +7264,6 @@ lang-julia@^0.1.0: "@lezer/common" "^0.15.0" lezer-julia "^0.1.0" -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz" - integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== - dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" - latest-version@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" @@ -10016,6 +7453,11 @@ lie@3.1.1: dependencies: immediate "~3.0.5" +lilconfig@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" + integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== + lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz" @@ -10031,29 +7473,6 @@ load-json-file@^2.0.0: pify "^2.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" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - localforage@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.9.0.tgz" @@ -10113,11 +7532,6 @@ lodash._createset@~4.0.0: resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= - lodash._root@~3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" @@ -10133,57 +7547,42 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= -lodash.get@^4.0, lodash.get@^4.4.2: +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= + +lodash.forown@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.forown/-/lodash.forown-4.4.0.tgz#85115cf04f73ef966eced52511d3893cc46683af" + integrity sha1-hRFc8E9z75ZuztUlEdOJPMRmg68= + +lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz" integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= -lodash.has@^4.0: - version "4.5.2" - resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz" - integrity sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI= +lodash.groupby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz#0b08a1dcf68397c397855c3239783832df7403d1" + integrity sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E= lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash.template@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - -lodash.toarray@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz" - integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= - lodash.union@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= -lodash.uniq@^4.5.0, lodash.uniq@~4.5.0: +lodash.uniq@~4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= @@ -10193,7 +7592,7 @@ lodash.without@~4.4.0: resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.5: +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19: version "4.17.19" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz" integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== @@ -10208,11 +7607,6 @@ lodash@^4.7.0: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -loglevel@^1.6.8: - version "1.6.8" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz" - integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== - loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -10240,13 +7634,6 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - lz-string@^1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" @@ -10259,15 +7646,7 @@ make-dir@^1.0.0: 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" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: +make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -10328,35 +7707,11 @@ match-sorter@^4.1.0: "@babel/runtime" "^7.10.5" remove-accents "0.4.2" -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz" - 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" - integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== - meant@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.3.tgz#67769af9de1d158773e928ae82c456114903554c" integrity sha512-88ZRGcNxAq4EH38cQ4D85PM57pikCwS8Z99EWHODxN7KBY+UuPiqzRTtZzS8KTXO/ywSWbdjjJST2Hly/EQxLw== -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - mem@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" @@ -10364,50 +7719,17 @@ mem@^1.1.0: dependencies: mimic-fn "^1.0.0" -memfs@^3.1.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.2.0.tgz" - integrity sha512-f/xxz2TpdKv6uDn6GtHee8ivFyxwxmPuXatBb1FBwxYNuVpbM3k/Y1Z+vC0mH/dIXXrukYfe3qe5J32Dfjg93A== - dependencies: - fs-monkey "1.0.1" - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0: +merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: +micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -10442,41 +7764,18 @@ micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.44.0, "mime-db@>= 1.43.0 < 2": +mime-db@1.44.0: version "1.44.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz" integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: +mime-types@^2.1.12, mime-types@~2.1.19: version "2.1.27" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz" integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== dependencies: mime-db "1.44.0" -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.3.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" - integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== - -mime@^2.4.4: - version "2.4.6" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz" - integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== - mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" @@ -10499,26 +7798,6 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -mini-css-extract-plugin@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz" - integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== - dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz" @@ -10531,27 +7810,6 @@ minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - minipass@^2.3.5, 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" @@ -10560,13 +7818,6 @@ minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: safe-buffer "^5.1.2" yallist "^3.0.0" -minipass@^3.0.0, minipass@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz" - integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== - 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" @@ -10574,14 +7825,6 @@ minizlib@^1.2.1: dependencies: minipass "^2.9.0" -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz" @@ -10611,18 +7854,13 @@ mkdirp@0.3.0: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" integrity sha1-G79asbqCevI1dRQ0kEJkVfSB/h4= -mkdirp@^0.5, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.0, mkdirp@~0.5.1: +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.0: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - mousetrap@^1.6.5: version "1.6.5" resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.5.tgz#8a766d8c272b08393d5f56074e0b5ec183485bf9" @@ -10650,11 +7888,6 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - ms@2.1.2, ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz" @@ -10683,19 +7916,6 @@ msw@^0.21.2: statuses "^2.0.0" yargs "^16.0.3" -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - multimatch@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz" @@ -10712,10 +7932,10 @@ mute-stream@~0.0.4: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nan@^2.12.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== +nanoid@^3.1.30: + version "3.1.30" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" + integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== nanomatch@^1.2.9: version "1.2.13" @@ -10739,16 +7959,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz" @@ -10759,13 +7969,6 @@ nim-codemirror-mode@^0.3.0: resolved "https://registry.yarnpkg.com/nim-codemirror-mode/-/nim-codemirror-mode-0.3.0.tgz#6aa8bc27ee86bc5e9dd0afe06700290df7966992" integrity sha512-I023hB2XIX58MrO6WsQGZrXbWb5MURJT0jeSqdhQgtO95YzzRAtNQiudugkFiWu+E3xHBLosw4BxIoMs7wyD7g== -node-emoji@^1.8.1: - version "1.10.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz" - integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== - dependencies: - lodash.toarray "^4.4.0" - node-fetch-npm@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" @@ -10780,11 +7983,6 @@ node-fetch@^2.6.1: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-forge@0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz" - integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== - node-gyp@^5.0.2, node-gyp@^5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e" @@ -10807,35 +8005,6 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - node-match-path@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/node-match-path/-/node-match-path-0.4.4.tgz" @@ -10846,11 +8015,6 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-releases@^1.1.60: - version "1.1.60" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.60.tgz" - integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== - node-releases@^1.1.71: version "1.1.72" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" @@ -10917,26 +8081,6 @@ normalize-url@*: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-5.3.0.tgz" integrity sha512-9/nOVLYYe/dO/eJeQUNaGUF4m4Z5E7cb9oNTKabH+bNf19mqj60txTcveQxL0GlcWLXCxkOu2/LwL8oW0idIDA== -normalize-url@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -normalize.css@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz" - integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg== - npm-audit-report@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.3.tgz#8226deeb253b55176ed147592a3995442f2179ed" @@ -11195,18 +8339,6 @@ npmlog@^4.1.2, npmlog@~4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz" @@ -11222,7 +8354,7 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -11236,10 +8368,10 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-hash@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.0.3.tgz" - integrity sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg== +object-hash@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" + integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== object-inspect@^1.10.3: version "1.10.3" @@ -11251,14 +8383,6 @@ object-inspect@^1.7.0, object-inspect@^1.8.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz" integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== -object-is@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz" - 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" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz" @@ -11329,14 +8453,6 @@ object.getownpropertydescriptors@^2.0.3: define-properties "^1.1.3" es-abstract "^1.18.0-next.2" -object.getownpropertydescriptors@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz" - integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz" @@ -11344,7 +8460,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0, object.values@^1.1.1: +object.values@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz" integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== @@ -11354,23 +8470,6 @@ object.values@^1.1.0, object.values@^1.1.1: function-bind "^1.1.1" has "^1.0.3" -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - once@^1.3.0, once@^1.3.1, once@^1.4.0, once@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz" @@ -11395,21 +8494,6 @@ opener@^1.5.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - -optimize-css-assets-webpack-plugin@^5.0.8: - version "5.0.8" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz#cbccdcf5a6ef61d4f8cc78cf083a67446e5f402a" - integrity sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q== - dependencies: - cssnano "^4.1.10" - last-call-webpack-plugin "^3.0.0" - optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz" @@ -11434,18 +8518,6 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz" @@ -11502,13 +8574,6 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz" - integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== - 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" @@ -11530,25 +8595,6 @@ p-locate@^4.1.0: 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" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== - dependencies: - retry "^0.12.0" - p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" @@ -11605,11 +8651,6 @@ pacote@^9.1.0, pacote@^9.5.12, pacote@^9.5.3: unique-filename "^1.1.1" which "^1.3.1" -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - parallel-transform@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz" @@ -11626,18 +8667,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz" @@ -11645,14 +8674,6 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - parse-json@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.1.tgz" @@ -11663,41 +8684,16 @@ parse-json@^5.0.0: json-parse-better-errors "^1.0.1" lines-and-columns "^1.1.6" -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - parse5@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-complete-extname@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/path-complete-extname/-/path-complete-extname-1.0.0.tgz" - integrity sha512-CVjiWcMRdGU8ubs08YQVzhutOR5DEfO97ipRIlOGMK5Bek5nQySknBpuxVAVJ36hseTNs+vdIcv57ZrWxH7zvg== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz" @@ -11733,10 +8729,10 @@ path-parse@^1.0.6: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-type@^2.0.0: version "2.0.0" @@ -11750,17 +8746,6 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz" @@ -11791,23 +8776,6 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - pirates@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz" @@ -11815,14 +8783,7 @@ pirates@^4.0.1: dependencies: node-modules-regexp "^1.0.0" -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0, pkg-dir@^4.2.0: +pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -11841,714 +8802,128 @@ pluralize@^8.0.0: resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== -pnp-webpack-plugin@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9" - integrity sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg== - dependencies: - ts-pnp "^1.1.6" - -portfinder@^1.0.26: - version "1.0.28" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" - posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -postcss-attribute-case-insensitive@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz" - integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^6.0.2" - -postcss-calc@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.3.tgz" - integrity sha512-IB/EAEmZhIMEIhG7Ov4x+l47UaXOS1n2f4FBUk/aKllQhtSCxWhTzn0nJgkqN7fo/jcWySvWTSB6Syk9L+31bA== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-color-functional-notation@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz" - integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-gray@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz" - integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-color-hex-alpha@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz" - integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== - dependencies: - postcss "^7.0.14" - postcss-values-parser "^2.0.1" - -postcss-color-mod-function@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz" - integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-rebeccapurple@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz" - integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-custom-media@^7.0.8: - version "7.0.8" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz" - integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== - dependencies: - postcss "^7.0.14" - -postcss-custom-properties@^8.0.11: - version "8.0.11" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz" - integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== - dependencies: - postcss "^7.0.17" - postcss-values-parser "^2.0.1" - -postcss-custom-selectors@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz" - integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-dir-pseudo-class@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz" - integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== +postcss-cli@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/postcss-cli/-/postcss-cli-9.1.0.tgz#1a86404cbe848e370127b4bdf5cd2be83bc45ebe" + integrity sha512-zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw== dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-double-position-gradients@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz" - integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== - dependencies: - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-env-function@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz" - integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-flexbugs-fixes@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz" - integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== - dependencies: - postcss "^7.0.26" - -postcss-focus-visible@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz" - integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== - dependencies: - postcss "^7.0.2" - -postcss-focus-within@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz" - integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== - dependencies: - postcss "^7.0.2" - -postcss-font-variant@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz" - integrity sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg== - dependencies: - postcss "^7.0.2" - -postcss-functions@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz" - integrity sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4= - dependencies: - glob "^7.1.2" - object-assign "^4.1.1" - postcss "^6.0.9" - postcss-value-parser "^3.3.0" - -postcss-gap-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz" - integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== - dependencies: - postcss "^7.0.2" + chokidar "^3.3.0" + dependency-graph "^0.11.0" + fs-extra "^10.0.0" + get-stdin "^9.0.0" + globby "^12.0.0" + picocolors "^1.0.0" + postcss-load-config "^3.0.0" + postcss-reporter "^7.0.0" + pretty-hrtime "^1.0.3" + read-cache "^1.0.0" + slash "^4.0.0" + yargs "^17.0.0" -postcss-image-set-function@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz" - integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" +postcss-flexbugs-fixes@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz#2028e145313074fc9abe276cb7ca14e5401eb49d" + integrity sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ== -postcss-import@^12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz" - integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== +postcss-import@^14.0.2: + version "14.0.2" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.0.2.tgz#60eff77e6be92e7b67fe469ec797d9424cae1aa1" + integrity sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g== dependencies: - postcss "^7.0.1" - postcss-value-parser "^3.2.3" + postcss-value-parser "^4.0.0" read-cache "^1.0.0" resolve "^1.1.7" -postcss-initial@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.2.tgz" - integrity sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA== - dependencies: - lodash.template "^4.5.0" - postcss "^7.0.2" - -postcss-js@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-2.0.3.tgz" - integrity sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w== - dependencies: - camelcase-css "^2.0.1" - postcss "^7.0.18" - -postcss-lab-function@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz" - integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-load-config@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz" - integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-logical@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz" - integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== - dependencies: - postcss "^7.0.2" - -postcss-media-minmax@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz" - integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== - dependencies: - postcss "^7.0.2" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-local-by-default@^3.0.2: +postcss-js@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz" - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== - dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== - dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" - -postcss-nested@^4.1.1: - version "4.2.3" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-4.2.3.tgz" - integrity sha512-rOv0W1HquRCamWy2kFl3QazJMMe1ku6rCFoAAH+9AcxdbpDeBr6k968MLWuLjvjMcGEip01ak09hKOEgpK9hvw== - dependencies: - postcss "^7.0.32" - postcss-selector-parser "^6.0.2" - -postcss-nesting@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz" - integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== - dependencies: - postcss "^7.0.2" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-overflow-shorthand@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz" - integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== - dependencies: - postcss "^7.0.2" - -postcss-page-break@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz" - integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== - dependencies: - postcss "^7.0.2" - -postcss-place@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz" - integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-preset-env@^6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz" - integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== - dependencies: - autoprefixer "^9.6.1" - browserslist "^4.6.4" - caniuse-lite "^1.0.30000981" - css-blank-pseudo "^0.1.4" - css-has-pseudo "^0.10.0" - css-prefers-color-scheme "^3.1.1" - cssdb "^4.4.0" - postcss "^7.0.17" - postcss-attribute-case-insensitive "^4.0.1" - postcss-color-functional-notation "^2.0.1" - postcss-color-gray "^5.0.0" - postcss-color-hex-alpha "^5.0.3" - postcss-color-mod-function "^3.0.3" - postcss-color-rebeccapurple "^4.0.1" - postcss-custom-media "^7.0.8" - postcss-custom-properties "^8.0.11" - postcss-custom-selectors "^5.1.2" - postcss-dir-pseudo-class "^5.0.0" - postcss-double-position-gradients "^1.0.0" - postcss-env-function "^2.0.2" - postcss-focus-visible "^4.0.0" - postcss-focus-within "^3.0.0" - postcss-font-variant "^4.0.0" - postcss-gap-properties "^2.0.0" - postcss-image-set-function "^3.0.1" - postcss-initial "^3.0.0" - postcss-lab-function "^2.0.1" - postcss-logical "^3.0.0" - postcss-media-minmax "^4.0.0" - postcss-nesting "^7.0.0" - postcss-overflow-shorthand "^2.0.0" - postcss-page-break "^2.0.0" - postcss-place "^4.0.1" - postcss-pseudo-class-any-link "^6.0.0" - postcss-replace-overflow-wrap "^3.0.0" - postcss-selector-matches "^4.0.0" - postcss-selector-not "^4.0.0" - -postcss-pseudo-class-any-link@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz" - integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-3.0.3.tgz#2f0bd370a2e8599d45439f6970403b5873abda33" + integrity sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw== dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" + camelcase-css "^2.0.1" + postcss "^8.1.6" -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== +postcss-load-config@^3.0.0, postcss-load-config@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.0.tgz#d39c47091c4aec37f50272373a6a648ef5e97829" + integrity sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g== dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + import-cwd "^3.0.0" + lilconfig "^2.0.3" + yaml "^1.10.2" -postcss-replace-overflow-wrap@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz" - integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== +postcss-minify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify/-/postcss-minify-1.1.0.tgz#3b1bf92c27c7503ccd8d9c7db9e4272b97c099f2" + integrity sha512-9D64ueIW0DL2FdLajQTlXrnTN8Ox9NjuXqigKMmB819RhdClNPYx5Zp3i5x0ghjjy3vGrLBBYEYvJjY/1eMNbw== dependencies: - postcss "^7.0.2" + postcss-selector-parser "^6.0" + postcss-value-parser "^4.1" -postcss-safe-parser@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz" - integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== +postcss-nested@5.0.6: + version "5.0.6" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc" + integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA== dependencies: - postcss "^7.0.26" + postcss-selector-parser "^6.0.6" -postcss-selector-matches@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz" - integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== +postcss-nesting@^10.0.3: + version "10.0.3" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.0.3.tgz#f19288ad07ef5ee47eb86991580b5d7b16a7f5ca" + integrity sha512-Dshtj57d5ytK1AeVNpQHp8gINgdjsRJaRjH1QmJHGcfOQIP4TNtlrrrh5o3i3bBTwge2+nh1D9xbI2wrckz5Xw== dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" + postcss-selector-parser "^6.0.7" -postcss-selector-not@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz" - integrity sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ== +postcss-reporter@^7.0.0: + version "7.0.4" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-7.0.4.tgz#640de7ef30fa89374bc0d5029c307ad2ecda25c3" + integrity sha512-jY/fnpGSin7kwJeunXbY35STp5O3VIxSFdjee5JkoPQ+FfGH5JW3N+Xe9oAPcL9UkjWjkK+JC72o8XH4XXKdhw== dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^5.0.0-rc.3, 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" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== - dependencies: - cssesc "^2.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" + lodash.difference "^4.5.0" + lodash.forown "^4.4.0" + lodash.get "^4.4.2" + lodash.groupby "^4.6.0" + lodash.sortby "^4.7.0" + picocolors "^1.0.0" -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz" - integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== +postcss-selector-parser@^6.0: + version "6.0.8" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz#f023ed7a9ea736cd7ef70342996e8e78645a7914" + integrity sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ== dependencies: cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" + util-deprecate "^1.0.2" -postcss-svgo@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz" - integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== +postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.7: + version "6.0.7" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.7.tgz#48404830a635113a71fd79397de8209ed05a66fc" + integrity sha512-U+b/Deoi4I/UmE6KOVPpnhS7I7AYdKbhGcat+qTQ27gycvaACvNEw11ba6RrkwVmDVRW7sigWgLj4/KbbJjeDA== dependencies: - is-svg "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" + cssesc "^3.0.0" + util-deprecate "^1.0.2" -postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== +postcss-value-parser@^4.0.0, postcss-value-parser@^4.1, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: +postcss-value-parser@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== -postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz" - integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss@7.0.32, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz" - integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== +postcss@^8.1.6, postcss@^8.4.5: + version "8.4.5" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95" + integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^6.0.9: - version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -postcss@^7.0.11, postcss@^7.0.18: - version "7.0.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz" - integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" + nanoid "^3.1.30" + picocolors "^1.0.0" + source-map-js "^1.0.1" prelude-ls@^1.2.1: version "1.2.1" @@ -12560,7 +8935,7 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prepend-http@^1.0.0, prepend-http@^1.0.1: +prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= @@ -12688,14 +9063,6 @@ protoduck@^5.0.1: dependencies: genfun "^5.0.0" -proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.1" - prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz" @@ -12711,18 +9078,6 @@ psl@^1.1.28, psl@^1.1.33: resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz" @@ -12748,46 +9103,16 @@ pumpify@^1.3.3: inherits "^2.0.3" pump "^2.0.0" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -purgecss@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/purgecss/-/purgecss-2.3.0.tgz" - integrity sha512-BE5CROfVGsx2XIhxGuZAT7rTH9lLeQx/6M0P7DTXQH4IUc3BBzs9JUzt4yzGf3JrH9enkeq6YJBe9CTtkm1WmQ== - dependencies: - commander "^5.0.0" - glob "^7.0.0" - postcss "7.0.32" - postcss-selector-parser "^6.0.2" - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - qrcode-terminal@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - qs@^6.9.6: version "6.9.6" resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz" @@ -12798,14 +9123,6 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz" - integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - query-string@^6.8.2: version "6.14.1" resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" @@ -12816,20 +9133,10 @@ query-string@^6.8.2: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -querystringify@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz" - integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== qw@~1.0.1: version "1.0.1" @@ -12843,36 +9150,6 @@ raf@^3.4.1: dependencies: performance-now "^2.1.0" -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - rc@^1.0.1, rc@^1.1.6: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -13072,7 +9349,7 @@ read@1, read@~1.0.1, read@~1.0.7: dependencies: mute-stream "~0.0.4" -"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: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, 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" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -13085,7 +9362,7 @@ read@1, read@~1.0.1, read@~1.0.7: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.6.0: +readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -13114,15 +9391,6 @@ readdir-scoped-modules@^1.0.0, readdir-scoped-modules@^1.1.0: graceful-fs "^4.1.2" once "^1.3.0" -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - readdirp@~3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz" @@ -13150,14 +9418,6 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -reduce-css-calc@^2.1.6: - version "2.1.7" - resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.7.tgz" - integrity sha512-fDnlZ+AybAS3C7Q9xDq5y8A2z+lT63zLbynew/lur/IR24OQF5x98tfNwf79mzEdfywZ0a2wpM860FhFfMxZlA== - dependencies: - css-unit-converter "^1.1.1" - postcss-value-parser "^3.3.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" @@ -13175,11 +9435,6 @@ regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz" integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== -regenerator-runtime@^0.13.9: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - regenerator-transform@^0.14.2: version "0.14.5" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz" @@ -13195,7 +9450,7 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: +regexp.prototype.flags@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz" integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== @@ -13320,18 +9575,6 @@ require-main-filename@^2.0.0: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - 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" @@ -13339,19 +9582,6 @@ resolve-cwd@^3.0.0: 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" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz" @@ -13367,13 +9597,22 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.3.2: +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.3.2: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: path-parse "^1.0.6" +resolve@^1.19.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f" + integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA== + dependencies: + is-core-module "^2.8.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" @@ -13402,16 +9641,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - rimraf@2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz" @@ -13426,21 +9655,13 @@ rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: dependencies: glob "^7.1.3" -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz" @@ -13458,16 +9679,16 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz" - 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.2.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.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz" @@ -13492,32 +9713,8 @@ sane@^4.0.3: execa "^1.0.0" fb-watchman "^2.0.0" micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - -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" - neo-async "^2.6.2" - schema-utils "^3.0.0" - semver "^7.3.2" - -sass@^1.38.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.44.0.tgz#619aa0a2275c097f9af5e6b8fe8a95e3056430fb" - integrity sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw== - dependencies: - chokidar ">=3.0.0 <4.0.0" - immutable "^4.0.0" - -sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + minimist "^1.1.1" + walker "~1.0.5" saxes@^5.0.1: version "5.0.1" @@ -13534,45 +9731,6 @@ scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@2.7.0, schema-utils@^2.6.5, schema-utils@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz" - integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== - dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - -selfsigned@^1.10.7: - version "1.10.7" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz" - integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== - dependencies: - node-forge "0.9.0" - semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz" @@ -13610,69 +9768,6 @@ semver@^7.2.1, semver@^7.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-javascript@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz" - integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== - dependencies: - randombytes "^2.1.0" - -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - dependencies: - randombytes "^2.1.0" - -serialize-javascript@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz" - integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== - dependencies: - randombytes "^2.1.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz" @@ -13688,29 +9783,6 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - sha@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/sha/-/sha-3.0.0.tgz#b2f2f90af690c16a3a839a6a6c680ea51fedd1ae" @@ -13755,22 +9827,6 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -sirv@^1.0.7: - version "1.0.12" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.12.tgz#d816c882b35489b3c63290e2f455ae3eccd5f652" - integrity sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg== - dependencies: - "@polka/url" "^1.0.0-next.15" - mime "^2.3.1" - totalist "^1.0.0" - sisteransi@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz" @@ -13781,6 +9837,11 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz" @@ -13830,27 +9891,6 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sockjs-client@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz" - integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== - dependencies: - debug "^3.2.5" - eventsource "^1.0.7" - faye-websocket "~0.11.1" - inherits "^2.0.3" - json3 "^3.3.2" - url-parse "^1.4.3" - -sockjs@0.3.20: - version "0.3.20" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz" - integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== - dependencies: - faye-websocket "^0.10.0" - uuid "^3.4.0" - websocket-driver "0.6.5" - socks-proxy-agent@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" @@ -13867,13 +9907,6 @@ socks@~2.3.2: ip "1.1.5" smart-buffer "^4.1.0" -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= - dependencies: - is-plain-obj "^1.0.0" - sorted-object@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz#7d631f4bd3a798a24af1dffcfbfe83337a5df5fc" @@ -13887,10 +9920,10 @@ sorted-union-stream@~2.1.3: from2 "^1.3.0" stream-iterate "^1.1.0" -source-list-map@^2.0.0, source-list-map@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== +source-map-js@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" + integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== source-map-resolve@^0.5.0: version "0.5.3" @@ -13911,7 +9944,7 @@ source-map-resolve@^0.6.0: atob "^2.1.2" decode-uri-component "^0.2.0" -source-map-support@^0.5.6, source-map-support@~0.5.12: +source-map-support@^0.5.6: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -13919,14 +9952,6 @@ source-map-support@^0.5.6, source-map-support@~0.5.12: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz" @@ -13942,7 +9967,7 @@ 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" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3, source-map@~0.7.2: +source-map@^0.7.3: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== @@ -13978,29 +10003,6 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz" integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - split-on-first@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" @@ -14047,18 +10049,6 @@ ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -ssri@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz" - 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" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - stack-generator@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.5.tgz#fb00e5b4ee97de603e0773ea78ce944d81596c36" @@ -14086,24 +10076,11 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - statuses@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.0.tgz" integrity sha512-w9jNUUQdpuVoYqXxnyOakhckBbOxRaoYqJscyIBYCS5ixyCnO7nQn7zBZvP9zf5QOPZcz2DLUpE3KsNPbJBOFA== -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - stream-each@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz" @@ -14112,17 +10089,6 @@ stream-each@^1.1.0: end-of-stream "^1.1.0" stream-shift "^1.0.0" -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - stream-iterate@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz#2bd7c77296c1702a46488b8ad41f79865eecd4e1" @@ -14136,11 +10102,6 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" @@ -14189,6 +10150,15 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" +string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string.prototype.matchall@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz" @@ -14233,7 +10203,7 @@ string.prototype.trimstart@^1.0.4: call-bind "^1.0.2" define-properties "^1.1.3" -string_decoder@^1.0.0, string_decoder@^1.1.1: +string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -14285,6 +10255,13 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -14322,42 +10299,18 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -style-loader@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e" - integrity sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q== - dependencies: - loader-utils "^2.0.0" - schema-utils "^2.7.0" - style-mod@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/style-mod/-/style-mod-4.0.0.tgz#97e7c2d68b592975f2ca7a63d0dd6fcacfe35a01" integrity sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw== -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -supports-color@^5.3.0, supports-color@^5.4.0: +supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - supports-color@^7.0.0, supports-color@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz" @@ -14380,24 +10333,10 @@ supports-hyperlinks@^2.0.0: 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" - 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.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== symbol-tree@^3.2.4: version "3.2.4" @@ -14414,43 +10353,32 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" -tailwindcss@^1.8.10: - version "1.8.10" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-1.8.10.tgz" - integrity sha512-7QkERG/cWCzsuMqHMwjOaLMVixOGLNBiXsrkssxlE1aWfkxVbGqiuMokR2162xRyaH2mBIHKxmlf1qb3DvIPqw== - dependencies: - "@fullhuman/postcss-purgecss" "^2.1.2" - autoprefixer "^9.4.5" - browserslist "^4.12.0" - bytes "^3.0.0" - chalk "^3.0.0 || ^4.0.0" - color "^3.1.2" +tailwindcss@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.0.7.tgz#15936881f042a7eb8d6f2b6a454bac9f51181bbd" + integrity sha512-rZdKNHtC64jcQncLoWOuCzj4lQDTAgLtgK3WmQS88tTdpHh9OwLqULTQxI3tw9AMJsqSpCKlmcjW/8CSnni6zQ== + dependencies: + arg "^5.0.1" + chalk "^4.1.2" + chokidar "^3.5.2" + color-name "^1.1.4" + cosmiconfig "^7.0.1" detective "^5.2.0" - fs-extra "^8.0.0" - html-tags "^3.1.0" - lodash "^4.17.20" - node-emoji "^1.8.1" - normalize.css "^8.0.1" - object-hash "^2.0.3" - postcss "^7.0.11" - postcss-functions "^3.0.0" - postcss-js "^2.0.0" - postcss-nested "^4.1.1" - postcss-selector-parser "^6.0.0" - postcss-value-parser "^4.1.0" - pretty-hrtime "^1.0.3" - reduce-css-calc "^2.1.6" - resolve "^1.14.2" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.2.7" + glob-parent "^6.0.2" + is-glob "^4.0.3" + normalize-path "^3.0.0" + object-hash "^2.2.0" + postcss-js "^3.0.3" + postcss-load-config "^3.1.0" + postcss-nested "5.0.6" + postcss-selector-parser "^6.0.7" + postcss-value-parser "^4.2.0" + quick-lru "^5.1.1" + resolve "^1.20.0" + tmp "^0.2.1" tar@^4.4.10, tar@^4.4.12, tar@^4.4.13: version "4.4.13" @@ -14465,18 +10393,6 @@ tar@^4.4.10, tar@^4.4.12, tar@^4.4.13: safe-buffer "^5.1.2" yallist "^3.0.3" -tar@^6.0.2: - version "6.0.5" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz" - integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - term-size@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" @@ -14492,54 +10408,6 @@ terminal-link@^2.0.0: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser-webpack-plugin@^1.4.3: - version "1.4.4" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz" - integrity sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^3.1.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser-webpack-plugin@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" - integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== - dependencies: - cacache "^15.0.5" - find-cache-dir "^3.3.1" - jest-worker "^26.5.0" - p-limit "^3.0.2" - schema-utils "^3.0.0" - serialize-javascript "^5.0.1" - source-map "^0.6.1" - terser "^5.3.4" - webpack-sources "^1.4.3" - -terser@^4.1.2: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^5.3.4: - version "5.10.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" - integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== - dependencies: - commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.20" - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz" @@ -14572,28 +10440,11 @@ through2@^2.0.0: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - timed-out@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= -timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== - dependencies: - setimmediate "^1.0.4" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - tiny-relative-date@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" @@ -14606,16 +10457,18 @@ tippy.js@^6.3.1: dependencies: "@popperjs/core" "^2.8.3" +tmp@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz" integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz" @@ -14658,16 +10511,6 @@ toggle-selection@^1.0.6: resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -totalist@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" - integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== - tough-cookie@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" @@ -14699,21 +10542,11 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" -ts-pnp@^1.1.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz" - integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== - tslib@^1.8.1: version "1.14.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.0.tgz" integrity sha512-+Zw5lu0D9tvBMjGP8LpvMb0u2WW2QV3y+D8mO6J+cNzCYIN4sVy43Bf9vl92nqFahutN0I8zHa7cc4vihIshnw== -tslib@^1.9.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== - tsutils@^3.17.1: version "3.17.1" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz" @@ -14721,11 +10554,6 @@ tsutils@^3.17.1: dependencies: tslib "^1.8.1" -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz" @@ -14767,19 +10595,6 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-fest@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" - integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" @@ -14860,16 +10675,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz" @@ -14891,7 +10696,7 @@ unique-string@^1.0.0: dependencies: crypto-random-string "^1.0.0" -universalify@^0.1.0, universalify@^0.1.2: +universalify@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== @@ -14901,16 +10706,16 @@ universalify@^1.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz" integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== -unpipe@1.0.0, unpipe@~1.0.0: +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz" @@ -14924,11 +10729,6 @@ unzip-response@^2.0.1: resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - update-notifier@^2.2.0, update-notifier@^2.3.0, update-notifier@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" @@ -14964,22 +10764,6 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" -url-parse@^1.4.3: - version "1.4.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - use-is-mounted@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/use-is-mounted/-/use-is-mounted-1.0.0.tgz" @@ -15007,7 +10791,7 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -util-deprecate@^1.0.1, util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= @@ -15024,36 +10808,7 @@ util-promisify@^2.1.0: dependencies: object.getownpropertydescriptors "^2.0.3" -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - 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" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.3.2, uuid@^3.3.3, uuid@^3.4.0: +uuid@^3.3.2, uuid@^3.3.3: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -15063,7 +10818,7 @@ uuid@^8.3.1: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz" integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg== -v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1: +v8-compile-cache@^2.0.3: version "2.1.1" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz" integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== @@ -15092,16 +10847,6 @@ validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0: dependencies: builtins "^1.0.3" -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz" @@ -15111,11 +10856,6 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" @@ -15149,31 +10889,6 @@ warning@^4.0.2, warning@^4.0.3: dependencies: loose-envify "^1.0.0" -watchpack-chokidar2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz" - integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz" - integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.0" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - wcwidth@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -15191,175 +10906,6 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-assets-manifest@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-3.1.1.tgz" - integrity sha512-JV9V2QKc5wEWQptdIjvXDUL1ucbPLH2f27toAY3SNdGZp+xSaStAgpoMcvMZmqtFrBc9a5pTS1058vxyMPOzRQ== - dependencies: - chalk "^2.0" - lodash.get "^4.0" - lodash.has "^4.0" - mkdirp "^0.5" - schema-utils "^1.0.0" - tapable "^1.0.0" - webpack-sources "^1.0.0" - -webpack-bundle-analyzer@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz#39898cf6200178240910d629705f0f3493f7d666" - integrity sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ== - dependencies: - acorn "^8.0.4" - acorn-walk "^8.0.0" - chalk "^4.1.0" - commander "^6.2.0" - gzip-size "^6.0.0" - lodash "^4.17.20" - opener "^1.5.2" - sirv "^1.0.7" - ws "^7.3.1" - -webpack-cli@^3.3.12: - version "3.3.12" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz" - integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag== - dependencies: - chalk "^2.4.2" - cross-spawn "^6.0.5" - enhanced-resolve "^4.1.1" - findup-sync "^3.0.0" - global-modules "^2.0.0" - import-local "^2.0.0" - interpret "^1.4.0" - loader-utils "^1.4.0" - supports-color "^6.1.0" - v8-compile-cache "^2.1.1" - yargs "^13.3.2" - -webpack-dev-middleware@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz" - integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz" - integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.7" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "0.3.20" - sockjs-client "1.4.0" - spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-sources@^1.0.0, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-sources@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" - integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== - dependencies: - source-list-map "^2.0.1" - source-map "^0.6.1" - -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" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" - -websocket-driver@0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz" - integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= - dependencies: - websocket-extensions ">=0.1.1" - -websocket-driver@>=0.5.1: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" @@ -15416,7 +10962,7 @@ which-pm-runs@^1.0.0: resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz" integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= -which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: +which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -15513,18 +11059,6 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - -ws@^7.3.1: - version "7.5.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.2.tgz#09cc8fea3bec1bc5ed44ef51b42f945be36900f6" - integrity sha512-lkF7AWRicoB9mAgjeKbGqVUekLnSNO4VjKVnuPHpQeOxZOErX6BPXwJk70nFslRCEEA8EVW7ZjKwXaP9N+1sKQ== - ws@^7.4.5: version "7.5.3" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" @@ -15550,7 +11084,7 @@ xstate@^4.16.2: resolved "https://registry.yarnpkg.com/xstate/-/xstate-4.16.2.tgz#d6b973b1253b8c85f50f68601837287d59d4bf34" integrity sha512-EY39NNZnwM4tRYNmQAi1c2qHuZ1lJmuDpEo1jxiRcfS+1jPtKRAjGRLNx3fYKcK0ohW6mL41Wze3mdCF0SqavA== -xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: +xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -15570,6 +11104,11 @@ y18n@^5.0.1: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.1.tgz" integrity sha512-/jJ831jEs4vGDbYPQp4yGKDYPSCCEQ45uZWJHE1AoYBzqdZi8+LDWas0z4HrmJXmKdpFsTiowSHXdxyFhpmdMg== +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz" @@ -15580,24 +11119,16 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@^1.10.0, yaml@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yaml@^1.7.2: version "1.10.0" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz" integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^15.0.1: version "15.0.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" @@ -15611,6 +11142,11 @@ yargs-parser@^20.0.0: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.0.0.tgz" integrity sha512-8eblPHTL7ZWRkyjIZJjnGf+TijiKJSwA24svzLRVvtgoi/RZiKa9fFQTrlx0OKLnyHSdt/enrdadji6WFfESVA== +yargs-parser@^21.0.0: + version "21.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.0.tgz#a485d3966be4317426dd56bdb6a30131b281dc55" + integrity sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA== + yargs-parser@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" @@ -15618,22 +11154,6 @@ yargs-parser@^7.0.0: dependencies: camelcase "^4.1.0" -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - 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.2" - yargs@^14.2.3: version "14.2.3" resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" @@ -15664,6 +11184,19 @@ yargs@^16.0.3: y18n "^5.0.1" yargs-parser "^20.0.0" +yargs@^17.0.0: + version "17.3.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.3.0.tgz#295c4ffd0eef148ef3e48f7a2e0f58d0e4f26b1c" + integrity sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.0.0" + yargs@^8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"