diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index 3913a6b0f8..0000000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,128 +0,0 @@
-version: 2.1
-
-orbs:
- ruby: circleci/ruby@2.0.0
- node: circleci/node@5.0.3
-
-executors:
- default:
- parameters:
- ruby-version:
- type: string
- docker:
- - image: cimg/ruby:<< parameters.ruby-version >>
- environment:
- BUNDLE_JOBS: 3
- BUNDLE_RETRY: 3
- CONTINUOUS_INTEGRATION: true
- DB_HOST: localhost
- DB_USER: root
- DISABLE_SIMPLECOV: true
- RAILS_ENV: test
- - image: cimg/postgres:14.5
- environment:
- POSTGRES_USER: root
- POSTGRES_HOST_AUTH_METHOD: trust
- - image: cimg/redis:7.0
-
-commands:
- install-system-dependencies:
- steps:
- - run:
- name: Install system dependencies
- command: |
- sudo apt-get update
- sudo apt-get install -y libicu-dev libidn11-dev
- install-ruby-dependencies:
- parameters:
- ruby-version:
- type: string
- steps:
- - run:
- command: |
- bundle config clean 'true'
- bundle config frozen 'true'
- bundle config without 'development production'
- name: Set bundler settings
- - ruby/install-deps:
- bundler-version: '2.3.26'
- key: ruby<< parameters.ruby-version >>-gems-v2
- wait-db:
- steps:
- - run:
- command: dockerize -wait tcp://localhost:5432 -wait tcp://localhost:6379 -timeout 1m
- name: Wait for PostgreSQL and Redis
-
-jobs:
- build:
- docker:
- - image: cimg/ruby:3.2-node
- environment:
- RAILS_ENV: test
- steps:
- - checkout
- - install-system-dependencies
- - install-ruby-dependencies:
- ruby-version: '3.2'
- - node/install-packages:
- cache-version: v1
- pkg-manager: yarn
- - run:
- command: |
- export NODE_OPTIONS=--openssl-legacy-provider
- ./bin/rails assets:precompile
- name: Precompile assets
- - persist_to_workspace:
- paths:
- - public/assets
- - public/packs-test
- root: .
-
- test:
- parameters:
- ruby-version:
- type: string
- executor:
- name: default
- ruby-version: << parameters.ruby-version >>
- environment:
- ALLOW_NOPAM: true
- PAM_ENABLED: true
- PAM_DEFAULT_SERVICE: pam_test
- PAM_CONTROLLED_SERVICE: pam_test_controlled
- parallelism: 4
- steps:
- - checkout
- - install-system-dependencies
- - run:
- command: sudo apt-get install -y ffmpeg imagemagick libmagickcore-dev libmagickwand-dev libjpeg-dev libpng-dev libtiff-dev libwebp-dev libpam-dev
- name: Install additional system dependencies
- - run:
- command: bundle config with 'pam_authentication'
- name: Enable PAM authentication
- - install-ruby-dependencies:
- ruby-version: << parameters.ruby-version >>
- - attach_workspace:
- at: .
- - wait-db
- - run:
- command: ./bin/rails db:create db:schema:load db:seed
- name: Load database schema
- - ruby/rspec-test
-
-workflows:
- version: 2
- build-and-test:
- jobs:
- - build
- - test:
- matrix:
- parameters:
- ruby-version:
- - '2.7'
- - '3.0'
- - '3.1'
- - '3.2'
- name: test-ruby<< matrix.ruby-version >>
- requires:
- - build
diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml
index 19f9c0b5b3..1b1756eca6 100644
--- a/.devcontainer/docker-compose.yml
+++ b/.devcontainer/docker-compose.yml
@@ -41,7 +41,7 @@ services:
- internal_network
redis:
- image: redis:6-alpine
+ image: redis:7-alpine
restart: unless-stopped
volumes:
- redis-data:/data
diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml
index c254418ea7..97a363d1e6 100644
--- a/.github/workflows/build-image.yml
+++ b/.github/workflows/build-image.yml
@@ -25,12 +25,15 @@ jobs:
- uses: hadolint/hadolint-action@v3.1.0
- uses: docker/setup-qemu-action@v2
- uses: docker/setup-buildx-action@v2
- - uses: docker/login-action@v2
+
+ - name: Log in to the Github Container registry
+ uses: docker/login-action@v2
with:
registry: ghcr.io
- username: ${{ github.repository_owner }}
+ username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
if: github.event_name != 'pull_request'
+
- uses: docker/metadata-action@v4
id: meta
with:
@@ -39,6 +42,7 @@ jobs:
type=raw,value=latest,enable={{is_default_branch}}
type=edge,branch=main
type=sha,prefix=,format=long
+
- uses: docker/build-push-action@v4
with:
context: .
@@ -47,5 +51,6 @@ jobs:
builder: ${{ steps.buildx.outputs.name }}
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
+ labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
diff --git a/.github/workflows/haml-lint-problem-matcher.json b/.github/workflows/haml-lint-problem-matcher.json
new file mode 100644
index 0000000000..3523ea2951
--- /dev/null
+++ b/.github/workflows/haml-lint-problem-matcher.json
@@ -0,0 +1,17 @@
+{
+ "problemMatcher": [
+ {
+ "owner": "haml-lint",
+ "severity": "warning",
+ "pattern": [
+ {
+ "regexp": "^(.*):(\\d+)\\s\\[W]\\s(.*):\\s(.*)$",
+ "file": 1,
+ "line": 2,
+ "code": 3,
+ "message": 4
+ }
+ ]
+ }
+ ]
+}
diff --git a/.github/workflows/lint-haml.yml b/.github/workflows/lint-haml.yml
new file mode 100644
index 0000000000..a2b22a6590
--- /dev/null
+++ b/.github/workflows/lint-haml.yml
@@ -0,0 +1,44 @@
+name: Haml Linting
+on:
+ push:
+ branches-ignore:
+ - 'dependabot/**'
+ paths:
+ - '.github/workflows/haml-lint-problem-matcher.json'
+ - '.github/workflows/lint-haml.yml'
+ - '.haml-lint*.yml'
+ - '.rubocop*.yml'
+ - '.ruby-version'
+ - '**/*.haml'
+ - 'Gemfile*'
+
+ pull_request:
+ paths:
+ - '.github/workflows/haml-lint-problem-matcher.json'
+ - '.github/workflows/lint-haml.yml'
+ - '.haml-lint*.yml'
+ - '.rubocop*.yml'
+ - '.ruby-version'
+ - '**/*.haml'
+ - 'Gemfile*'
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Clone repository
+ uses: actions/checkout@v3
+
+ - name: Install native Ruby dependencies
+ run: sudo apt-get install -y libicu-dev libidn11-dev
+
+ - name: Set up Ruby
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: .ruby-version
+ bundler-cache: true
+
+ - name: Run haml-lint
+ run: |
+ echo "::add-matcher::.github/workflows/haml-lint-problem-matcher.json"
+ bundle exec haml-lint
diff --git a/.github/workflows/rebase-needed.yml b/.github/workflows/rebase-needed.yml
index 99b224ec60..6a8035210c 100644
--- a/.github/workflows/rebase-needed.yml
+++ b/.github/workflows/rebase-needed.yml
@@ -2,7 +2,13 @@ name: PR Needs Rebase
on:
push:
+ branches-ignore:
+ - 'dependabot/**'
+ - 'l10n_main'
pull_request_target:
+ branches-ignore:
+ - 'dependabot/**'
+ - 'l10n_main'
types: [synchronize]
permissions:
diff --git a/.github/workflows/test-migrations-one-step.yml b/.github/workflows/test-migrations-one-step.yml
index 8f070697ca..a3594e5535 100644
--- a/.github/workflows/test-migrations-one-step.yml
+++ b/.github/workflows/test-migrations-one-step.yml
@@ -25,7 +25,7 @@ jobs:
services:
postgres:
- image: postgres:14.5
+ image: postgres:14-alpine
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
@@ -38,7 +38,7 @@ jobs:
- 5432:5432
redis:
- image: redis:7.0
+ image: redis:7-alpine
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
diff --git a/.github/workflows/test-migrations-two-step.yml b/.github/workflows/test-migrations-two-step.yml
index 2fdce80254..f357bc9f68 100644
--- a/.github/workflows/test-migrations-two-step.yml
+++ b/.github/workflows/test-migrations-two-step.yml
@@ -25,7 +25,7 @@ jobs:
services:
postgres:
- image: postgres:14.5
+ image: postgres:14-alpine
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
@@ -37,7 +37,7 @@ jobs:
ports:
- 5432:5432
redis:
- image: redis:7.0
+ image: redis:7-alpine
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml
new file mode 100644
index 0000000000..bfdabd4ea6
--- /dev/null
+++ b/.github/workflows/test-ruby.yml
@@ -0,0 +1,141 @@
+name: Ruby Testing
+
+on:
+ push:
+ branches-ignore:
+ - 'dependabot/**'
+ pull_request:
+
+env:
+ BUNDLE_CLEAN: true
+ BUNDLE_FROZEN: true
+ BUNDLE_WITHOUT: 'development production'
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ env:
+ RAILS_ENV: test
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v3
+ with:
+ cache: yarn
+ node-version-file: '.nvmrc'
+
+ - name: Install native Ruby dependencies
+ run: sudo apt-get install -y libicu-dev libidn11-dev
+
+ - name: Set up bundler cache
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: .ruby-version
+ bundler-cache: true
+
+ - run: yarn install --frozen-lockfile
+ - name: Precompile assets
+ # Previously had set this, but it's not supported
+ # export NODE_OPTIONS=--openssl-legacy-provider
+ run: |-
+ ./bin/rails assets:precompile
+
+ - uses: actions/upload-artifact@v3
+ with:
+ path: |-
+ ./public/assets
+ ./public/packs-test
+ name: ${{ github.sha }}
+ retention-days: 0
+
+ test:
+ runs-on: ubuntu-latest
+
+ needs:
+ - build
+
+ services:
+ postgres:
+ image: postgres:14-alpine
+ env:
+ POSTGRES_PASSWORD: postgres
+ POSTGRES_USER: postgres
+ options: >-
+ --health-cmd pg_isready
+ --health-interval 10s
+ --health-timeout 5s
+ --health-retries 5
+ ports:
+ - 5432:5432
+
+ redis:
+ image: redis:7-alpine
+ options: >-
+ --health-cmd "redis-cli ping"
+ --health-interval 10s
+ --health-timeout 5s
+ --health-retries 5
+ ports:
+ - 6379:6379
+
+ env:
+ DB_HOST: localhost
+ DB_USER: postgres
+ DB_PASS: postgres
+ DISABLE_SIMPLECOV: true
+ RAILS_ENV: test
+ ALLOW_NOPAM: true
+ PAM_ENABLED: true
+ PAM_DEFAULT_SERVICE: pam_test
+ PAM_CONTROLLED_SERVICE: pam_test_controlled
+ BUNDLE_WITH: 'pam_authentication'
+ CI_JOBS: ${{ matrix.ci_job }}/4
+
+ strategy:
+ fail-fast: false
+ matrix:
+ ruby-version:
+ - '2.7'
+ - '3.0'
+ - '3.1'
+ - '.ruby-version'
+ ci_job:
+ - 1
+ - 2
+ - 3
+ - 4
+ steps:
+ - uses: actions/checkout@v3
+
+ - uses: actions/download-artifact@v3
+ with:
+ path: './public'
+ name: ${{ github.sha }}
+
+ - name: Install native Ruby dependencies
+ run: sudo apt-get install -y libicu-dev libidn11-dev
+
+ - name: Install additional system dependencies
+ run: sudo apt-get install -y ffmpeg imagemagick libpam-dev
+
+ - name: Set up bundler cache
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: ${{ matrix.ruby-version}}
+ bundler-cache: true
+
+ - name: Update system gems
+ if: matrix.ruby-version == '2.7'
+ run: gem update --system
+
+ - name: Load database schema
+ run: './bin/rails db:create db:schema:load db:seed'
+
+ - run: bundle exec rake rspec_chunked
diff --git a/.haml-lint.yml b/.haml-lint.yml
index 7853d81d7c..12ca463422 100644
--- a/.haml-lint.yml
+++ b/.haml-lint.yml
@@ -1,108 +1,9 @@
-# Whether to ignore frontmatter at the beginning of HAML documents for
-# frameworks such as Jekyll/Middleman
-skip_frontmatter: false
+inherits_from: .haml-lint_todo.yml
exclude:
- 'vendor/**/*'
- - 'spec/**/*'
- - 'lib/templates/**/*'
- - 'app/views/kaminari/**/*'
+ - lib/templates/haml/scaffold/_form.html.haml
linters:
AltText:
- enabled: false
-
- ClassAttributeWithStaticValue:
- enabled: true
-
- ClassesBeforeIds:
- enabled: true
-
- ConsecutiveComments:
- enabled: true
-
- ConsecutiveSilentScripts:
- enabled: true
- max_consecutive: 2
-
- EmptyObjectReference:
- enabled: true
-
- EmptyScript:
- enabled: true
-
- FinalNewline:
- enabled: true
- present: true
-
- HtmlAttributes:
- enabled: true
-
- ImplicitDiv:
- enabled: true
-
- LeadingCommentSpace:
- enabled: true
-
- LineLength:
- enabled: false
- max: 80
-
- MultilinePipe:
- enabled: true
-
- MultilineScript:
- enabled: true
-
- ObjectReferenceAttributes:
- enabled: true
-
- RuboCop:
- enabled: true
- # These cops are incredibly noisy when it comes to HAML templates, so we
- # ignore them.
- ignored_cops:
- - Lint/BlockAlignment
- - Lint/EndAlignment
- - Lint/Void
- - Metrics/BlockLength
- - Metrics/LineLength
- - Style/AlignParameters
- - Style/BlockNesting
- - Style/ElseAlignment
- - Style/EndOfLine
- - Style/FileName
- - Style/FinalNewline
- - Style/FrozenStringLiteralComment
- - Style/IfUnlessModifier
- - Style/IndentationWidth
- - Style/Next
- - Style/TrailingBlankLines
- - Style/TrailingWhitespace
- - Style/WhileUntilModifier
-
- RubyComments:
- enabled: true
-
- SpaceBeforeScript:
- enabled: true
-
- SpaceInsideHashAttributes:
- enabled: true
- style: space
-
- Indentation:
- enabled: true
- character: space # or tab
-
- TagName:
- enabled: true
-
- TrailingWhitespace:
- enabled: true
-
- UnnecessaryInterpolation:
- enabled: true
-
- UnnecessaryStringOutput:
enabled: true
diff --git a/.haml-lint_todo.yml b/.haml-lint_todo.yml
new file mode 100644
index 0000000000..203010b043
--- /dev/null
+++ b/.haml-lint_todo.yml
@@ -0,0 +1,128 @@
+# This configuration was generated by
+# `haml-lint --auto-gen-config`
+# on 2023-02-11 02:16:03 -0500 using Haml-Lint version 0.45.0.
+# The point is for the user to remove these configuration records
+# one by one as the lints are removed from the code base.
+# Note that changes in the inspected code, or installation of new
+# versions of Haml-Lint, may require this file to be generated again.
+
+linters:
+ # Offense count: 76
+ RuboCop:
+ exclude:
+ - 'app/views/accounts/_og.html.haml'
+ - 'app/views/admin/account_actions/new.html.haml'
+ - 'app/views/admin/account_warnings/_account_warning.html.haml'
+ - 'app/views/admin/accounts/index.html.haml'
+ - 'app/views/admin/accounts/show.html.haml'
+ - 'app/views/admin/action_logs/index.html.haml'
+ - 'app/views/admin/announcements/edit.html.haml'
+ - 'app/views/admin/announcements/new.html.haml'
+ - 'app/views/admin/change_emails/show.html.haml'
+ - 'app/views/admin/custom_emojis/index.html.haml'
+ - 'app/views/admin/dashboard/index.html.haml'
+ - 'app/views/admin/disputes/appeals/_appeal.html.haml'
+ - 'app/views/admin/domain_blocks/edit.html.haml'
+ - 'app/views/admin/domain_blocks/new.html.haml'
+ - 'app/views/admin/ip_blocks/new.html.haml'
+ - 'app/views/admin/reports/actions/preview.html.haml'
+ - 'app/views/admin/reports/index.html.haml'
+ - 'app/views/admin/reports/show.html.haml'
+ - 'app/views/admin/roles/_form.html.haml'
+ - 'app/views/admin/settings/about/show.html.haml'
+ - 'app/views/admin/settings/appearance/show.html.haml'
+ - 'app/views/admin/settings/registrations/show.html.haml'
+ - 'app/views/admin/statuses/show.html.haml'
+ - 'app/views/application/_card.html.haml'
+ - 'app/views/application/_sidebar.html.haml'
+ - 'app/views/auth/registrations/_sessions.html.haml'
+ - 'app/views/auth/registrations/new.html.haml'
+ - 'app/views/auth/sessions/new.html.haml'
+ - 'app/views/disputes/strikes/show.html.haml'
+ - 'app/views/filters/_filter_fields.html.haml'
+ - 'app/views/invites/_form.html.haml'
+ - 'app/views/layouts/application.html.haml'
+ - 'app/views/layouts/error.html.haml'
+ - 'app/views/layouts/mailer.html.haml'
+ - 'app/views/notification_mailer/_status.html.haml'
+ - 'app/views/notification_mailer/favourite.html.haml'
+ - 'app/views/notification_mailer/follow_request.html.haml'
+ - 'app/views/oauth/authorizations/new.html.haml'
+ - 'app/views/oauth/authorized_applications/index.html.haml'
+ - 'app/views/settings/applications/_fields.html.haml'
+ - 'app/views/settings/imports/show.html.haml'
+ - 'app/views/settings/login_activities/_login_activity.html.haml'
+ - 'app/views/settings/preferences/appearance/show.html.haml'
+ - 'app/views/settings/preferences/other/show.html.haml'
+ - 'app/views/settings/preferences/other/show.html.haml'
+ - 'app/views/statuses_cleanup/show.html.haml'
+ - 'app/views/statuses/_detailed_status.html.haml'
+ - 'app/views/statuses/_og_image.html.haml'
+ - 'app/views/statuses/_poll.html.haml'
+ - 'app/views/statuses/_status.html.haml'
+ - 'app/views/statuses/show.html.haml'
+ - 'app/views/user_mailer/suspicious_sign_in.html.haml'
+ - 'app/views/user_mailer/warning.html.haml'
+ - 'app/views/user_mailer/webauthn_credential_added.html.haml'
+ - 'app/views/user_mailer/webauthn_credential_deleted.html.haml'
+
+ # Offense count: 918
+ LineLength:
+ enabled: false
+
+ # Offense count: 22
+ UnnecessaryStringOutput:
+ exclude:
+ - 'app/views/accounts/show.html.haml'
+ - 'app/views/admin/custom_emojis/_custom_emoji.html.haml'
+ - 'app/views/admin/relays/_relay.html.haml'
+ - 'app/views/admin/rules/_rule.html.haml'
+ - 'app/views/admin/statuses/index.html.haml'
+ - 'app/views/auth/registrations/_sessions.html.haml'
+ - 'app/views/disputes/strikes/show.html.haml'
+ - 'app/views/notification_mailer/_status.html.haml'
+ - 'app/views/settings/two_factor_authentication_methods/index.html.haml'
+ - 'app/views/statuses/_detailed_status.html.haml'
+ - 'app/views/statuses/_poll.html.haml'
+ - 'app/views/statuses/_simple_status.html.haml'
+ - 'app/views/user_mailer/suspicious_sign_in.html.haml'
+ - 'app/views/user_mailer/webauthn_credential_added.html.haml'
+ - 'app/views/user_mailer/webauthn_credential_deleted.html.haml'
+ - 'app/views/user_mailer/welcome.html.haml'
+
+ # Offense count: 3
+ ViewLength:
+ exclude:
+ - 'app/views/admin/accounts/show.html.haml'
+ - 'app/views/admin/reports/show.html.haml'
+ - 'app/views/disputes/strikes/show.html.haml'
+
+ # Offense count: 43
+ InstanceVariables:
+ exclude:
+ - 'app/views/admin/reports/_actions.html.haml'
+ - 'app/views/admin/roles/_form.html.haml'
+ - 'app/views/admin/webhooks/_form.html.haml'
+ - 'app/views/application/_sidebar.html.haml'
+ - 'app/views/auth/registrations/_sessions.html.haml'
+ - 'app/views/auth/registrations/_status.html.haml'
+ - 'app/views/auth/sessions/two_factor/_otp_authentication_form.html.haml'
+ - 'app/views/authorize_interactions/_post_follow_actions.html.haml'
+ - 'app/views/invites/_form.html.haml'
+ - 'app/views/relationships/_account.html.haml'
+ - 'app/views/shared/_og.html.haml'
+ - 'app/views/statuses/_status.html.haml'
+
+ # Offense count: 6
+ ConsecutiveSilentScripts:
+ exclude:
+ - 'app/views/admin/settings/shared/_links.html.haml'
+ - 'app/views/settings/login_activities/_login_activity.html.haml'
+ - 'app/views/statuses/_poll.html.haml'
+
+ # Offense count: 3
+ IdNames:
+ exclude:
+ - 'app/views/authorize_interactions/error.html.haml'
+ - 'app/views/oauth/authorizations/error.html.haml'
+ - 'app/views/shared/_error_messages.html.haml'
diff --git a/.rubocop.yml b/.rubocop.yml
index b4387a4611..99206e5977 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -96,9 +96,26 @@ Rails/Exit:
- 'lib/mastodon/cli_helper.rb'
- 'lib/cli.rb'
+# Reason: Some single letter camel case files shouldn't be split
+# https://docs.rubocop.org/rubocop-rspec/cops_rspec.html#rspecfilepath
RSpec/FilePath:
CustomTransform:
+ ActivityPub: activitypub # Ignore the snake_case due to the amount of files to rename
DeepL: deepl
+ FetchOEmbedService: fetch_oembed_service
+ JsonLdHelper: jsonld_helper
+ OEmbedController: oembed_controller
+ OStatus: ostatus
+ NodeInfoController: nodeinfo_controller # NodeInfo isn't snake_cased for any of the instances
+ Exclude:
+ - 'spec/config/initializers/rack_attack_spec.rb' # namespaces usually have separate folder
+ - 'spec/lib/sanitize_config_spec.rb' # namespaces usually have separate folder
+ - 'spec/controllers/concerns/account_controller_concern_spec.rb' # Concerns describe ApplicationController and don't fit naming
+ - 'spec/controllers/concerns/export_controller_concern_spec.rb'
+ - 'spec/controllers/concerns/localized_spec.rb'
+ - 'spec/controllers/concerns/rate_limit_headers_spec.rb'
+ - 'spec/controllers/concerns/signature_verification_spec.rb'
+ - 'spec/controllers/concerns/user_tracking_concern_spec.rb'
RSpec/NotToNot:
EnforcedStyle: to_not
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index b53f655bd0..8a96e59f90 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -301,13 +301,6 @@ Performance/DeletePrefix:
- 'app/services/resolve_account_service.rb'
- 'app/services/tag_search_service.rb'
-# Offense count: 1
-# This cop supports unsafe autocorrection (--autocorrect-all).
-# Configuration parameters: SafeMultiline.
-Performance/DeleteSuffix:
- Exclude:
- - 'lib/tasks/repo.rake'
-
# Offense count: 19
# This cop supports unsafe autocorrection (--autocorrect-all).
Performance/MapCompact:
@@ -655,73 +648,6 @@ RSpec/ExpectInHook:
- 'spec/controllers/settings/applications_controller_spec.rb'
- 'spec/lib/status_filter_spec.rb'
-# Offense count: 61
-# Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly.
-# Include: **/*_spec*rb*, **/spec/**/*
-RSpec/FilePath:
- Exclude:
- - 'spec/config/initializers/rack_attack_spec.rb'
- - 'spec/controllers/activitypub/collections_controller_spec.rb'
- - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb'
- - 'spec/controllers/activitypub/inboxes_controller_spec.rb'
- - 'spec/controllers/activitypub/outboxes_controller_spec.rb'
- - 'spec/controllers/activitypub/replies_controller_spec.rb'
- - 'spec/controllers/admin/change_email_controller_spec.rb'
- - 'spec/controllers/admin/users/roles_controller.rb'
- - 'spec/controllers/api/oembed_controller_spec.rb'
- - 'spec/controllers/concerns/account_controller_concern_spec.rb'
- - 'spec/controllers/concerns/export_controller_concern_spec.rb'
- - 'spec/controllers/concerns/localized_spec.rb'
- - 'spec/controllers/concerns/rate_limit_headers_spec.rb'
- - 'spec/controllers/concerns/signature_verification_spec.rb'
- - 'spec/controllers/concerns/user_tracking_concern_spec.rb'
- - 'spec/controllers/well_known/nodeinfo_controller_spec.rb'
- - 'spec/helpers/admin/action_log_helper_spec.rb'
- - 'spec/helpers/jsonld_helper_spec.rb'
- - 'spec/lib/activitypub/activity/accept_spec.rb'
- - 'spec/lib/activitypub/activity/add_spec.rb'
- - 'spec/lib/activitypub/activity/announce_spec.rb'
- - 'spec/lib/activitypub/activity/block_spec.rb'
- - 'spec/lib/activitypub/activity/create_spec.rb'
- - 'spec/lib/activitypub/activity/delete_spec.rb'
- - 'spec/lib/activitypub/activity/flag_spec.rb'
- - 'spec/lib/activitypub/activity/follow_spec.rb'
- - 'spec/lib/activitypub/activity/like_spec.rb'
- - 'spec/lib/activitypub/activity/move_spec.rb'
- - 'spec/lib/activitypub/activity/reject_spec.rb'
- - 'spec/lib/activitypub/activity/remove_spec.rb'
- - 'spec/lib/activitypub/activity/undo_spec.rb'
- - 'spec/lib/activitypub/activity/update_spec.rb'
- - 'spec/lib/activitypub/adapter_spec.rb'
- - 'spec/lib/activitypub/dereferencer_spec.rb'
- - 'spec/lib/activitypub/linked_data_signature_spec.rb'
- - 'spec/lib/activitypub/tag_manager_spec.rb'
- - 'spec/lib/ostatus/tag_manager_spec.rb'
- - 'spec/lib/sanitize_config_spec.rb'
- - 'spec/serializers/activitypub/note_serializer_spec.rb'
- - 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
- - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb'
- - 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb'
- - 'spec/services/activitypub/fetch_remote_account_service_spec.rb'
- - 'spec/services/activitypub/fetch_remote_actor_service_spec.rb'
- - 'spec/services/activitypub/fetch_remote_key_service_spec.rb'
- - 'spec/services/activitypub/fetch_remote_status_service_spec.rb'
- - 'spec/services/activitypub/fetch_replies_service_spec.rb'
- - 'spec/services/activitypub/process_account_service_spec.rb'
- - 'spec/services/activitypub/process_collection_service_spec.rb'
- - 'spec/services/activitypub/process_status_update_service_spec.rb'
- - 'spec/services/activitypub/synchronize_followers_service_spec.rb'
- - 'spec/services/fetch_oembed_service_spec.rb'
- - 'spec/services/remove_from_follwers_service_spec.rb'
- - 'spec/workers/activitypub/delivery_worker_spec.rb'
- - 'spec/workers/activitypub/distribute_poll_update_worker_spec.rb'
- - 'spec/workers/activitypub/distribution_worker_spec.rb'
- - 'spec/workers/activitypub/fetch_replies_worker_spec.rb'
- - 'spec/workers/activitypub/move_distribution_worker_spec.rb'
- - 'spec/workers/activitypub/processing_worker_spec.rb'
- - 'spec/workers/activitypub/status_update_distribution_worker_spec.rb'
- - 'spec/workers/activitypub/update_distribution_worker_spec.rb'
-
# Offense count: 16
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f09f400061..c7c0a39b8e 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -80,8 +80,6 @@ It is not always possible to phrase every change in such a manner, but it is des
- Code style rules (rubocop, eslint)
- Normalization of locale files (i18n-tasks)
-**Note**: You may need to log in and authorise the GitHub account your fork of this repository belongs to with CircleCI to enable some of the automated checks to run.
-
## Documentation
The [Mastodon documentation](https://docs.joinmastodon.org) is a statically generated site. You can [submit merge requests to mastodon/documentation](https://github.com/mastodon/documentation).
diff --git a/Gemfile b/Gemfile
index ec7e62579b..d00f981d1f 100644
--- a/Gemfile
+++ b/Gemfile
@@ -4,7 +4,6 @@ source 'https://rubygems.org'
ruby '>= 2.7.0', '< 3.3.0'
gem 'pkg-config', '~> 1.5'
-gem 'rexml', '~> 3.2'
gem 'puma', '~> 6.1'
gem 'rails', '~> 6.1.7'
@@ -40,7 +39,7 @@ end
gem 'net-ldap', '~> 0.17'
gem 'omniauth-cas', '~> 2.0'
gem 'omniauth-saml', '~> 1.10'
-gem 'omniauth_openid_connect', '~> 0.6.0'
+gem 'omniauth_openid_connect', '~> 0.6.1'
gem 'omniauth', '~> 1.9'
gem 'omniauth-rails_csrf_protection', '~> 0.1'
@@ -105,6 +104,7 @@ group :development, :test do
gem 'fuubar', '~> 2.5'
gem 'i18n-tasks', '~> 1.0', require: false
gem 'rspec-rails', '~> 6.0'
+ gem 'rspec_chunked', '~> 0.6'
gem 'rubocop-performance', require: false
gem 'rubocop-rails', require: false
gem 'rubocop-rspec', require: false
@@ -117,6 +117,7 @@ end
group :test do
gem 'capybara', '~> 3.38'
+ gem 'climate_control'
gem 'faker', '~> 3.1'
gem 'json-schema', '~> 3.0'
gem 'rack-test', '~> 2.0'
@@ -138,6 +139,7 @@ group :development do
gem 'memory_profiler'
gem 'brakeman', '~> 5.4', require: false
gem 'bundler-audit', '~> 0.9', require: false
+ gem 'haml_lint', require: false
gem 'capistrano', '~> 3.17'
gem 'capistrano-rails', '~> 1.6'
diff --git a/Gemfile.lock b/Gemfile.lock
index ce3b39fd77..31e3e5f249 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -30,40 +30,40 @@ GIT
GEM
remote: https://rubygems.org/
specs:
- actioncable (6.1.7.2)
- actionpack (= 6.1.7.2)
- activesupport (= 6.1.7.2)
+ actioncable (6.1.7.3)
+ actionpack (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
- actionmailbox (6.1.7.2)
- actionpack (= 6.1.7.2)
- activejob (= 6.1.7.2)
- activerecord (= 6.1.7.2)
- activestorage (= 6.1.7.2)
- activesupport (= 6.1.7.2)
+ actionmailbox (6.1.7.3)
+ actionpack (= 6.1.7.3)
+ activejob (= 6.1.7.3)
+ activerecord (= 6.1.7.3)
+ activestorage (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
mail (>= 2.7.1)
- actionmailer (6.1.7.2)
- actionpack (= 6.1.7.2)
- actionview (= 6.1.7.2)
- activejob (= 6.1.7.2)
- activesupport (= 6.1.7.2)
+ actionmailer (6.1.7.3)
+ actionpack (= 6.1.7.3)
+ actionview (= 6.1.7.3)
+ activejob (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
- actionpack (6.1.7.2)
- actionview (= 6.1.7.2)
- activesupport (= 6.1.7.2)
+ actionpack (6.1.7.3)
+ actionview (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
rack (~> 2.0, >= 2.0.9)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
- actiontext (6.1.7.2)
- actionpack (= 6.1.7.2)
- activerecord (= 6.1.7.2)
- activestorage (= 6.1.7.2)
- activesupport (= 6.1.7.2)
+ actiontext (6.1.7.3)
+ actionpack (= 6.1.7.3)
+ activerecord (= 6.1.7.3)
+ activestorage (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
nokogiri (>= 1.8.5)
- actionview (6.1.7.2)
- activesupport (= 6.1.7.2)
+ actionview (6.1.7.3)
+ activesupport (= 6.1.7.3)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
@@ -74,22 +74,22 @@ GEM
case_transform (>= 0.2)
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
active_record_query_trace (1.8)
- activejob (6.1.7.2)
- activesupport (= 6.1.7.2)
+ activejob (6.1.7.3)
+ activesupport (= 6.1.7.3)
globalid (>= 0.3.6)
- activemodel (6.1.7.2)
- activesupport (= 6.1.7.2)
- activerecord (6.1.7.2)
- activemodel (= 6.1.7.2)
- activesupport (= 6.1.7.2)
- activestorage (6.1.7.2)
- actionpack (= 6.1.7.2)
- activejob (= 6.1.7.2)
- activerecord (= 6.1.7.2)
- activesupport (= 6.1.7.2)
+ activemodel (6.1.7.3)
+ activesupport (= 6.1.7.3)
+ activerecord (6.1.7.3)
+ activemodel (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
+ activestorage (6.1.7.3)
+ actionpack (= 6.1.7.3)
+ activejob (= 6.1.7.3)
+ activerecord (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
marcel (~> 1.0)
mini_mime (>= 1.1.0)
- activesupport (6.1.7.2)
+ activesupport (6.1.7.3)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
@@ -225,7 +225,7 @@ GEM
docile (1.4.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
- doorkeeper (5.6.4)
+ doorkeeper (5.6.5)
railties (>= 5)
dotenv (2.8.1)
dotenv-rails (2.8.1)
@@ -308,6 +308,12 @@ GEM
activesupport (>= 5.1)
haml (>= 4.0.6)
railties (>= 5.1)
+ haml_lint (0.45.0)
+ haml (>= 4.0, < 6.2)
+ parallel (~> 1.10)
+ rainbow
+ rubocop (>= 0.50.0)
+ sysexits (~> 1.1)
hashdiff (1.0.1)
hashie (5.0.0)
hcaptcha (7.1.0)
@@ -399,7 +405,7 @@ GEM
loofah (2.19.1)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
- mail (2.8.0.1)
+ mail (2.8.1)
mini_mime (>= 0.1.1)
net-imap
net-pop
@@ -417,7 +423,7 @@ GEM
mime-types-data (3.2022.0105)
mini_mime (1.1.2)
mini_portile2 (2.8.1)
- minitest (5.17.0)
+ minitest (5.18.0)
msgpack (1.6.0)
multi_json (1.15.0)
multipart-post (2.3.0)
@@ -459,7 +465,7 @@ GEM
omniauth-saml (1.10.3)
omniauth (~> 1.3, >= 1.3.2)
ruby-saml (~> 1.9)
- omniauth_openid_connect (0.6.0)
+ omniauth_openid_connect (0.6.1)
omniauth (>= 1.9, < 3)
openid_connect (~> 1.1)
openid_connect (1.4.2)
@@ -479,13 +485,13 @@ GEM
orm_adapter (0.5.0)
ox (2.14.14)
parallel (1.22.1)
- parser (3.2.1.0)
+ parser (3.2.1.1)
ast (~> 2.4.1)
parslet (2.0.0)
pastel (0.8.0)
tty-color (~> 0.5)
- pg (1.4.5)
- pghero (3.1.0)
+ pg (1.4.6)
+ pghero (3.3.0)
activerecord (>= 6)
pkg-config (1.5.1)
posix-spawn (0.3.15)
@@ -499,13 +505,13 @@ GEM
premailer (~> 1.7, >= 1.7.9)
private_address_check (0.5.0)
public_suffix (5.0.1)
- puma (6.1.0)
+ puma (6.1.1)
nio4r (~> 2.0)
pundit (2.3.0)
activesupport (>= 3.0.0)
raabro (1.4.0)
racc (1.6.2)
- rack (2.2.6.2)
+ rack (2.2.6.4)
rack-attack (6.6.1)
rack (>= 1.0, < 3)
rack-cors (1.1.1)
@@ -520,20 +526,20 @@ GEM
rack
rack-test (2.0.2)
rack (>= 1.3)
- rails (6.1.7.2)
- actioncable (= 6.1.7.2)
- actionmailbox (= 6.1.7.2)
- actionmailer (= 6.1.7.2)
- actionpack (= 6.1.7.2)
- actiontext (= 6.1.7.2)
- actionview (= 6.1.7.2)
- activejob (= 6.1.7.2)
- activemodel (= 6.1.7.2)
- activerecord (= 6.1.7.2)
- activestorage (= 6.1.7.2)
- activesupport (= 6.1.7.2)
+ rails (6.1.7.3)
+ actioncable (= 6.1.7.3)
+ actionmailbox (= 6.1.7.3)
+ actionmailer (= 6.1.7.3)
+ actionpack (= 6.1.7.3)
+ actiontext (= 6.1.7.3)
+ actionview (= 6.1.7.3)
+ activejob (= 6.1.7.3)
+ activemodel (= 6.1.7.3)
+ activerecord (= 6.1.7.3)
+ activestorage (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
bundler (>= 1.15.0)
- railties (= 6.1.7.2)
+ railties (= 6.1.7.3)
sprockets-rails (>= 2.0.0)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
@@ -547,9 +553,9 @@ GEM
rails-i18n (6.0.0)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 7)
- railties (6.1.7.2)
- actionpack (= 6.1.7.2)
- activesupport (= 6.1.7.2)
+ railties (6.1.7.3)
+ actionpack (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
method_source
rake (>= 12.2)
thor (~> 1.0)
@@ -598,20 +604,21 @@ GEM
rspec-core (~> 3.0, >= 3.0.0)
sidekiq (>= 2.4.0)
rspec-support (3.12.0)
+ rspec_chunked (0.6)
rspec_junit_formatter (0.6.0)
rspec-core (>= 2, < 4, != 2.12.0)
- rubocop (1.45.1)
+ rubocop (1.48.1)
json (~> 2.3)
parallel (~> 1.10)
parser (>= 3.2.0.0)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml (>= 3.2.5, < 4.0)
- rubocop-ast (>= 1.24.1, < 2.0)
+ rubocop-ast (>= 1.26.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
- rubocop-ast (1.24.1)
- parser (>= 3.1.1.0)
+ rubocop-ast (1.27.0)
+ parser (>= 3.2.1.0)
rubocop-capybara (2.17.0)
rubocop (~> 1.41)
rubocop-performance (1.16.0)
@@ -646,9 +653,9 @@ GEM
redis (>= 4.5.0, < 5)
sidekiq-bulk (0.2.0)
sidekiq
- sidekiq-scheduler (5.0.1)
+ sidekiq-scheduler (5.0.2)
rufus-scheduler (~> 3.2)
- sidekiq (>= 4, < 8)
+ sidekiq (>= 6, < 8)
tilt (>= 1.4.0)
sidekiq-unique-jobs (7.1.29)
brpoplpush-redis_script (> 0.1.1, <= 2.0.0)
@@ -688,14 +695,15 @@ GEM
activesupport (>= 3)
attr_required (>= 0.0.5)
httpclient (>= 2.4)
+ sysexits (1.2.0)
temple (0.10.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
terrapin (0.6.0)
climate_control (>= 0.0.3, < 1.0)
thor (1.2.1)
- tilt (2.0.11)
- timeout (0.3.1)
+ tilt (2.1.0)
+ timeout (0.3.2)
tpm-key_attestation (0.12.0)
bindata (~> 2.4)
openssl (> 2.0)
@@ -785,6 +793,7 @@ DEPENDENCIES
capybara (~> 3.38)
charlock_holmes (~> 0.7.7)
chewy (~> 7.2)
+ climate_control
cocoon (~> 1.2)
color_diff (~> 0.1)
concurrent-ruby
@@ -804,6 +813,7 @@ DEPENDENCIES
fog-openstack (~> 0.3)
fuubar (~> 2.5)
haml-rails (~> 2.0)
+ haml_lint
hcaptcha (~> 7.1)
hiredis (~> 0.6)
htmlentities (~> 4.3)
@@ -834,7 +844,7 @@ DEPENDENCIES
omniauth-cas (~> 2.0)
omniauth-rails_csrf_protection (~> 0.1)
omniauth-saml (~> 1.10)
- omniauth_openid_connect (~> 0.6.0)
+ omniauth_openid_connect (~> 0.6.1)
ox (~> 2.14)
parslet
pg (~> 1.4)
@@ -858,10 +868,10 @@ DEPENDENCIES
redcarpet (~> 3.6)
redis (~> 4.5)
redis-namespace (~> 1.10)
- rexml (~> 3.2)
rqrcode (~> 2.1)
rspec-rails (~> 6.0)
rspec-sidekiq (~> 3.1)
+ rspec_chunked (~> 0.6)
rspec_junit_formatter (~> 0.6)
rubocop
rubocop-performance
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index ee3c5204d8..290ad41faf 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -63,7 +63,11 @@ class ApplicationController < ActionController::Base
end
def after_sign_out_path_for(_resource_or_scope)
- new_user_session_path
+ if ENV['OMNIAUTH_ONLY'] == 'true' && ENV['OIDC_ENABLED'] == 'true'
+ '/auth/auth/openid_connect/logout'
+ else
+ new_user_session_path
+ end
end
protected
diff --git a/app/controllers/auth/omniauth_callbacks_controller.rb b/app/controllers/auth/omniauth_callbacks_controller.rb
index 3d7962de56..9e0fb942aa 100644
--- a/app/controllers/auth/omniauth_callbacks_controller.rb
+++ b/app/controllers/auth/omniauth_callbacks_controller.rb
@@ -33,7 +33,7 @@ class Auth::OmniauthCallbacksController < Devise::OmniauthCallbacksController
def after_sign_in_path_for(resource)
if resource.email_present?
- root_path
+ stored_location_for(resource) || root_path
else
auth_setup_path(missing_email: '1')
end
diff --git a/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb b/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb
index 952c14e0bb..5a9029a426 100644
--- a/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb
+++ b/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb
@@ -52,7 +52,7 @@ module Settings
end
else
flash[:error] = I18n.t('webauthn_credentials.create.error')
- status = :internal_server_error
+ status = :unprocessable_entity
end
else
flash[:error] = t('webauthn_credentials.create.error')
diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js
index 645919ebe8..9873725e49 100644
--- a/app/javascript/flavours/glitch/containers/status_container.js
+++ b/app/javascript/flavours/glitch/containers/status_container.js
@@ -52,6 +52,8 @@ const messages = defineMessages({
redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.' },
replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },
replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' },
+ editConfirm: { id: 'confirmations.edit.confirm', defaultMessage: 'Edit' },
+ editMessage: { id: 'confirmations.edit.message', defaultMessage: 'Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?' },
unfilterConfirm: { id: 'confirmations.unfilter.confirm', defaultMessage: 'Show' },
author: { id: 'confirmations.unfilter.author', defaultMessage: 'Author' },
matchingFilters: { id: 'confirmations.unfilter.filters', defaultMessage: 'Matching {count, plural, one {filter} other {filters}}' },
@@ -183,7 +185,18 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({
},
onEdit (status, history) {
- dispatch(editStatus(status.get('id'), history));
+ dispatch((_, getState) => {
+ let state = getState();
+ if (state.getIn(['compose', 'text']).trim().length !== 0) {
+ dispatch(openModal('CONFIRM', {
+ message: intl.formatMessage(messages.editMessage),
+ confirm: intl.formatMessage(messages.editConfirm),
+ onConfirm: () => dispatch(editStatus(status.get('id'), history)),
+ }));
+ } else {
+ dispatch(editStatus(status.get('id'), history));
+ }
+ });
},
onTranslate (status) {
diff --git a/app/javascript/flavours/glitch/styles/components/misc.scss b/app/javascript/flavours/glitch/styles/components/misc.scss
index 2cd9b75037..86b8b99c1b 100644
--- a/app/javascript/flavours/glitch/styles/components/misc.scss
+++ b/app/javascript/flavours/glitch/styles/components/misc.scss
@@ -1628,6 +1628,7 @@ button.icon-button.active i.fa-retweet {
display: flex;
align-items: center;
justify-content: center;
+ text-align: center;
color: $secondary-text-color;
font-size: 18px;
font-weight: 500;
diff --git a/app/javascript/mastodon/containers/status_container.jsx b/app/javascript/mastodon/containers/status_container.jsx
index 294105f259..580f409e94 100644
--- a/app/javascript/mastodon/containers/status_container.jsx
+++ b/app/javascript/mastodon/containers/status_container.jsx
@@ -56,6 +56,8 @@ const messages = defineMessages({
redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.' },
replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },
replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' },
+ editConfirm: { id: 'confirmations.edit.confirm', defaultMessage: 'Edit' },
+ editMessage: { id: 'confirmations.edit.message', defaultMessage: 'Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?' },
blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Hide entire domain' },
});
@@ -149,7 +151,18 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({
},
onEdit (status, history) {
- dispatch(editStatus(status.get('id'), history));
+ dispatch((_, getState) => {
+ let state = getState();
+ if (state.getIn(['compose', 'text']).trim().length !== 0) {
+ dispatch(openModal('CONFIRM', {
+ message: intl.formatMessage(messages.editMessage),
+ confirm: intl.formatMessage(messages.editConfirm),
+ onConfirm: () => dispatch(editStatus(status.get('id'), history)),
+ }));
+ } else {
+ dispatch(editStatus(status.get('id'), history));
+ }
+ });
},
onTranslate (status) {
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index 534428d527..3a515d4d7d 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -166,6 +166,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Block entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "confirmations.edit.confirm": "Edit",
+ "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?",
"confirmations.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Mute",
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 13647b6fcd..33740475d2 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -4509,6 +4509,7 @@ a.status-card.compact:hover {
display: flex;
align-items: center;
justify-content: center;
+ text-align: center;
color: $secondary-text-color;
font-size: 18px;
font-weight: 500;
diff --git a/app/lib/activitypub/forwarder.rb b/app/lib/activitypub/forwarder.rb
index b01d63e586..3a94f9669a 100644
--- a/app/lib/activitypub/forwarder.rb
+++ b/app/lib/activitypub/forwarder.rb
@@ -12,7 +12,7 @@ class ActivityPub::Forwarder
end
def forward!
- ActivityPub::LowPriorityDeliveryWorker.push_bulk(inboxes) do |inbox_url|
+ ActivityPub::LowPriorityDeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url|
[payload, signature_account_id, inbox_url]
end
end
diff --git a/app/lib/admin/system_check/elasticsearch_check.rb b/app/lib/admin/system_check/elasticsearch_check.rb
index 5b4c12399b..0b55be3501 100644
--- a/app/lib/admin/system_check/elasticsearch_check.rb
+++ b/app/lib/admin/system_check/elasticsearch_check.rb
@@ -31,7 +31,7 @@ class Admin::SystemCheck::ElasticsearchCheck < Admin::SystemCheck::BaseCheck
def running_version
@running_version ||= begin
Chewy.client.info['version']['number']
- rescue Faraday::ConnectionFailed
+ rescue Faraday::ConnectionFailed, Elasticsearch::Transport::Transport::Error
nil
end
end
diff --git a/app/lib/plain_text_formatter.rb b/app/lib/plain_text_formatter.rb
index 08aa296964..6fa2bc5d2c 100644
--- a/app/lib/plain_text_formatter.rb
+++ b/app/lib/plain_text_formatter.rb
@@ -18,7 +18,7 @@ class PlainTextFormatter
if local?
text
else
- strip_tags(insert_newlines).chomp
+ html_entities.decode(strip_tags(insert_newlines)).chomp
end
end
@@ -27,4 +27,8 @@ class PlainTextFormatter
def insert_newlines
text.gsub(NEWLINE_TAGS_RE) { |match| "#{match}\n" }
end
+
+ def html_entities
+ HTMLEntities.new
+ end
end
diff --git a/app/lib/toc_generator.rb b/app/lib/toc_generator.rb
deleted file mode 100644
index 0c8f766ca4..0000000000
--- a/app/lib/toc_generator.rb
+++ /dev/null
@@ -1,69 +0,0 @@
-# frozen_string_literal: true
-
-class TOCGenerator
- TARGET_ELEMENTS = %w(h1 h2 h3 h4 h5 h6).freeze
- LISTED_ELEMENTS = %w(h2 h3).freeze
-
- class Section
- attr_accessor :depth, :title, :children, :anchor
-
- def initialize(depth, title, anchor)
- @depth = depth
- @title = title
- @children = []
- @anchor = anchor
- end
-
- delegate :<<, to: :children
- end
-
- def initialize(source_html)
- @source_html = source_html
- @processed = false
- @target_html = ''
- @headers = []
- @slugs = Hash.new { |h, k| h[k] = 0 }
- end
-
- def html
- parse_and_transform unless @processed
- @target_html
- end
-
- def toc
- parse_and_transform unless @processed
- @headers
- end
-
- private
-
- def parse_and_transform
- return if @source_html.blank?
-
- parsed_html = Nokogiri::HTML.fragment(@source_html)
-
- parsed_html.traverse do |node|
- next unless TARGET_ELEMENTS.include?(node.name)
-
- anchor = node['id'] || node.text.parameterize.presence || 'sec'
- @slugs[anchor] += 1
- anchor = "#{anchor}-#{@slugs[anchor]}" if @slugs[anchor] > 1
-
- node['id'] = anchor
-
- next unless LISTED_ELEMENTS.include?(node.name)
-
- depth = node.name[1..-1]
- latest_section = @headers.last
-
- if latest_section.nil? || latest_section.depth >= depth
- @headers << Section.new(depth, node.text, anchor)
- else
- latest_section << Section.new(depth, node.text, anchor)
- end
- end
-
- @target_html = parsed_html.to_s
- @processed = true
- end
-end
diff --git a/app/models/user.rb b/app/models/user.rb
index a90f43eda5..744d66c8f4 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -516,11 +516,14 @@ class User < ApplicationRecord
def prepare_new_user!
BootstrapTimelineWorker.perform_async(account_id)
ActivityTracker.increment('activity:accounts:local')
+ ActivityTracker.record('activity:logins', id)
UserMailer.welcome(self).deliver_later
TriggerWebhookWorker.perform_async('account.approved', 'Account', account_id)
end
def prepare_returning_user!
+ return unless confirmed?
+
ActivityTracker.record('activity:logins', id)
regenerate_feed! if needs_feed_update?
end
diff --git a/app/services/delete_account_service.rb b/app/services/delete_account_service.rb
index a2d535d262..190a72e5c5 100644
--- a/app/services/delete_account_service.rb
+++ b/app/services/delete_account_service.rb
@@ -257,11 +257,11 @@ class DeleteAccountService < BaseService
end
def delete_actor!
- ActivityPub::DeliveryWorker.push_bulk(delivery_inboxes) do |inbox_url|
+ ActivityPub::DeliveryWorker.push_bulk(delivery_inboxes, limit: 1_000) do |inbox_url|
[delete_actor_json, @account.id, inbox_url]
end
- ActivityPub::LowPriorityDeliveryWorker.push_bulk(low_priority_delivery_inboxes) do |inbox_url|
+ ActivityPub::LowPriorityDeliveryWorker.push_bulk(low_priority_delivery_inboxes, limit: 1_000) do |inbox_url|
[delete_actor_json, @account.id, inbox_url]
end
end
diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb
index 58bf1dcb77..4f98ccea70 100644
--- a/app/services/remove_status_service.rb
+++ b/app/services/remove_status_service.rb
@@ -90,7 +90,7 @@ class RemoveStatusService < BaseService
status_reach_finder = StatusReachFinder.new(@status, unsafe: true)
- ActivityPub::DeliveryWorker.push_bulk(status_reach_finder.inboxes) do |inbox_url|
+ ActivityPub::DeliveryWorker.push_bulk(status_reach_finder.inboxes, limit: 1_000) do |inbox_url|
[signed_activity_json, @account.id, inbox_url]
end
end
diff --git a/app/services/suspend_account_service.rb b/app/services/suspend_account_service.rb
index 211544fea6..cfb3eb5831 100644
--- a/app/services/suspend_account_service.rb
+++ b/app/services/suspend_account_service.rb
@@ -31,13 +31,13 @@ class SuspendAccountService < BaseService
# counterpart to this operation, i.e. you can't then force a remote
# account to re-follow you, so this part is not reversible.
- follows = Follow.where(account: @account).to_a
+ Follow.where(account: @account).find_in_batches do |follows|
+ ActivityPub::DeliveryWorker.push_bulk(follows) do |follow|
+ [Oj.dump(serialize_payload(follow, ActivityPub::RejectFollowSerializer)), follow.target_account_id, @account.inbox_url]
+ end
- ActivityPub::DeliveryWorker.push_bulk(follows) do |follow|
- [Oj.dump(serialize_payload(follow, ActivityPub::RejectFollowSerializer)), follow.target_account_id, @account.inbox_url]
+ follows.each(&:destroy)
end
-
- follows.each(&:destroy)
end
def distribute_update_actor!
@@ -45,7 +45,7 @@ class SuspendAccountService < BaseService
account_reach_finder = AccountReachFinder.new(@account)
- ActivityPub::DeliveryWorker.push_bulk(account_reach_finder.inboxes) do |inbox_url|
+ ActivityPub::DeliveryWorker.push_bulk(account_reach_finder.inboxes, limit: 1_000) do |inbox_url|
[signed_activity_json, @account.id, inbox_url]
end
end
diff --git a/app/services/unsuspend_account_service.rb b/app/services/unsuspend_account_service.rb
index 70667308ec..d851a0f708 100644
--- a/app/services/unsuspend_account_service.rb
+++ b/app/services/unsuspend_account_service.rb
@@ -41,7 +41,7 @@ class UnsuspendAccountService < BaseService
account_reach_finder = AccountReachFinder.new(@account)
- ActivityPub::DeliveryWorker.push_bulk(account_reach_finder.inboxes) do |inbox_url|
+ ActivityPub::DeliveryWorker.push_bulk(account_reach_finder.inboxes, limit: 1_000) do |inbox_url|
[signed_activity_json, @account.id, inbox_url]
end
end
diff --git a/app/services/update_account_service.rb b/app/services/update_account_service.rb
index 71976ab005..4604d71b2b 100644
--- a/app/services/update_account_service.rb
+++ b/app/services/update_account_service.rb
@@ -22,7 +22,7 @@ class UpdateAccountService < BaseService
def authorize_all_follow_requests(account)
follow_requests = FollowRequest.where(target_account: account)
follow_requests = follow_requests.preload(:account).select { |req| !req.account.silenced? }
- AuthorizeFollowWorker.push_bulk(follow_requests) do |req|
+ AuthorizeFollowWorker.push_bulk(follow_requests, limit: 1_000) do |req|
[req.account_id, req.target_account_id]
end
end
diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml
index c8a9d33a70..f5ae88379d 100644
--- a/app/views/admin/accounts/show.html.haml
+++ b/app/views/admin/accounts/show.html.haml
@@ -206,7 +206,7 @@
- if @deletion_request.present?
= link_to t('admin.accounts.delete'), admin_account_path(@account.id), method: :delete, class: 'button button--destructive', data: { confirm: t('admin.accounts.are_you_sure') } if can?(:destroy, @account)
- else
- %div.action-buttons
+ .action-buttons
%div
- if @account.local? && @account.user_approved?
= link_to t('admin.accounts.warn'), new_admin_account_action_path(@account.id, type: 'none'), class: 'button' if can?(:warn, @account)
@@ -276,9 +276,9 @@
%hr.spacer/
- if @account.user&.invite_request&.text&.present?
- %div.speech-bubble
- %div.speech-bubble__bubble
+ .speech-bubble
+ .speech-bubble__bubble
= @account.user&.invite_request&.text
- %div.speech-bubble__owner
+ .speech-bubble__owner
= admin_account_link_to @account
= t('admin.accounts.invite_request_text')
diff --git a/app/views/admin/action_logs/index.html.haml b/app/views/admin/action_logs/index.html.haml
index 7869570e6e..cc6aa39bd0 100644
--- a/app/views/admin/action_logs/index.html.haml
+++ b/app/views/admin/action_logs/index.html.haml
@@ -16,7 +16,7 @@
= select_tag :action_type, options_for_select(Admin::ActionLogFilter::ACTION_TYPE_MAP.keys.map { |key| [I18n.t("admin.action_logs.action_types.#{key}"), key]}, params[:action_type]), prompt: I18n.t('admin.accounts.moderation.all')
- if @action_logs.empty?
- %div.muted-hint.center-text
+ .muted-hint.center-text
= t 'admin.action_logs.empty'
- else
.report-notes
diff --git a/app/views/admin/announcements/index.html.haml b/app/views/admin/announcements/index.html.haml
index 40f02b914e..ce520f59d3 100644
--- a/app/views/admin/announcements/index.html.haml
+++ b/app/views/admin/announcements/index.html.haml
@@ -12,7 +12,7 @@
%li= filter_link_to safe_join([t('admin.announcements.live'), "(#{number_with_delimiter(Announcement.published.count)})"], ' '), published: '1', unpublished: nil
- if @announcements.empty?
- %div.muted-hint.center-text
+ .muted-hint.center-text
= t 'admin.announcements.empty'
- else
.announcements-list
diff --git a/app/views/admin/disputes/appeals/index.html.haml b/app/views/admin/disputes/appeals/index.html.haml
index 42e9c4b1d7..7f04dd40fb 100644
--- a/app/views/admin/disputes/appeals/index.html.haml
+++ b/app/views/admin/disputes/appeals/index.html.haml
@@ -10,7 +10,7 @@
%li= filter_link_to t('admin.trends.rejected'), status: 'rejected'
- if @appeals.empty?
- %div.muted-hint.center-text
+ .muted-hint.center-text
= t 'admin.disputes.appeals.empty'
- else
.announcements-list
diff --git a/app/views/admin/instances/index.html.haml b/app/views/admin/instances/index.html.haml
index abb2d8c0e5..3e70a51eec 100644
--- a/app/views/admin/instances/index.html.haml
+++ b/app/views/admin/instances/index.html.haml
@@ -44,7 +44,7 @@
%hr.spacer/
- if @instances.empty?
- %div.muted-hint.center-text
+ .muted-hint.center-text
= t 'admin.instances.empty'
- else
= render partial: 'instance', collection: @instances
diff --git a/app/views/admin/reports/actions/preview.html.haml b/app/views/admin/reports/actions/preview.html.haml
index 58745319c8..70edb48d80 100644
--- a/app/views/admin/reports/actions/preview.html.haml
+++ b/app/views/admin/reports/actions/preview.html.haml
@@ -54,15 +54,15 @@
.strike-card__statuses-list__item
- if (status = status_map[status_id.to_i])
.one-liner
- = link_to short_account_status_url(@report.target_account, status_id), class: 'emojify' do
- = one_line_preview(status)
+ .emojify= one_line_preview(status)
- - status.ordered_media_attachments.each do |media_attachment|
- %abbr{ title: media_attachment.description }
- = fa_icon 'link'
- = media_attachment.file_file_name
+ - status.ordered_media_attachments.each do |media_attachment|
+ %abbr{ title: media_attachment.description }
+ = fa_icon 'link'
+ = media_attachment.file_file_name
.strike-card__statuses-list__item__meta
- %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
+ = link_to ActivityPub::TagManager.instance.url_for(status), target: '_blank' do
+ %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
- unless status.application.nil?
·
= status.application.name
diff --git a/app/views/admin/rules/index.html.haml b/app/views/admin/rules/index.html.haml
index 4fb993ad07..aa6a4c1b6a 100644
--- a/app/views/admin/rules/index.html.haml
+++ b/app/views/admin/rules/index.html.haml
@@ -18,7 +18,7 @@
%hr.spacer/
- if @rules.empty?
- %div.muted-hint.center-text
+ .muted-hint.center-text
= t 'admin.rules.empty'
- else
.announcements-list
diff --git a/app/views/admin/warning_presets/index.html.haml b/app/views/admin/warning_presets/index.html.haml
index dbc23fa308..b26a13d966 100644
--- a/app/views/admin/warning_presets/index.html.haml
+++ b/app/views/admin/warning_presets/index.html.haml
@@ -17,7 +17,7 @@
%hr.spacer/
- if @warning_presets.empty?
- %div.muted-hint.center-text
+ .muted-hint.center-text
= t 'admin.warning_presets.empty'
- else
.announcements-list
diff --git a/app/views/admin/webhooks/index.html.haml b/app/views/admin/webhooks/index.html.haml
index e4499e078b..603d0edd25 100644
--- a/app/views/admin/webhooks/index.html.haml
+++ b/app/views/admin/webhooks/index.html.haml
@@ -9,7 +9,7 @@
%hr.spacer/
- if @webhooks.empty?
- %div.muted-hint.center-text
+ .muted-hint.center-text
= t 'admin.webhooks.empty'
- else
.applications-list
diff --git a/app/views/application/_sidebar.html.haml b/app/views/application/_sidebar.html.haml
deleted file mode 100644
index 6d18668b08..0000000000
--- a/app/views/application/_sidebar.html.haml
+++ /dev/null
@@ -1,16 +0,0 @@
-.hero-widget
- .hero-widget__img
- = image_tag @instance_presenter.thumbnail&.file&.url(:'@1x') || asset_pack_path('media/images/preview.png'), alt: @instance_presenter.title
-
- .hero-widget__text
- %p= @instance_presenter.description.html_safe.presence || t('about.about_mastodon_html')
-
-- if Setting.trends && !(user_signed_in? && !current_user.setting_trends)
- - trends = Trends.tags.query.allowed.limit(3)
-
- - unless trends.empty?
- .endorsements-widget.trends-widget
- %h4.emojify= t('footer.trending_now')
-
- - trends.each do |tag|
- = react_component :hashtag, hashtag: ActiveModelSerializers::SerializableResource.new(tag, serializer: REST::TagSerializer, scope: current_user, scope_name: :current_user).as_json
diff --git a/app/views/disputes/strikes/show.html.haml b/app/views/disputes/strikes/show.html.haml
index 7797348dd7..ce52e470d9 100644
--- a/app/views/disputes/strikes/show.html.haml
+++ b/app/views/disputes/strikes/show.html.haml
@@ -50,15 +50,15 @@
.strike-card__statuses-list__item
- if (status = status_map[status_id.to_i])
.one-liner
- = link_to short_account_status_url(@strike.target_account, status_id), class: 'emojify' do
- = one_line_preview(status)
+ .emojify= one_line_preview(status)
- - status.ordered_media_attachments.each do |media_attachment|
- %abbr{ title: media_attachment.description }
- = fa_icon 'link'
- = media_attachment.file_file_name
+ - status.ordered_media_attachments.each do |media_attachment|
+ %abbr{ title: media_attachment.description }
+ = fa_icon 'link'
+ = media_attachment.file_file_name
.strike-card__statuses-list__item__meta
- %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
+ = link_to ActivityPub::TagManager.instance.url_for(status), target: '_blank' do
+ %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
- unless status.application.nil?
·
= status.application.name
diff --git a/app/views/filters/_filter_fields.html.haml b/app/views/filters/_filter_fields.html.haml
index c58978f5a3..a554b55ff6 100644
--- a/app/views/filters/_filter_fields.html.haml
+++ b/app/views/filters/_filter_fields.html.haml
@@ -35,6 +35,6 @@
= render 'keyword_fields', f: keyword
%tfoot
%tr
- %td{ colspan: 3}
+ %td{ colspan: 3 }
= link_to_add_association f, :keywords, class: 'table-action-link', partial: 'keyword_fields', 'data-association-insertion-node': '.keywords-table tbody', 'data-association-insertion-method': 'append' do
= safe_join([fa_icon('plus'), t('filters.edit.add_keyword')])
diff --git a/app/views/filters/index.html.haml b/app/views/filters/index.html.haml
index 0227526a47..9c84f796ff 100644
--- a/app/views/filters/index.html.haml
+++ b/app/views/filters/index.html.haml
@@ -5,7 +5,7 @@
= link_to t('filters.new.title'), new_filter_path, class: 'button'
- if @filters.empty?
- %div.muted-hint.center-text= t 'filters.index.empty'
+ .muted-hint.center-text= t 'filters.index.empty'
- else
.applications-list
= render partial: 'filter', collection: @filters
diff --git a/app/views/kaminari/_next_page.html.haml b/app/views/kaminari/_next_page.html.haml
index 30a3643d64..c44aea1f11 100644
--- a/app/views/kaminari/_next_page.html.haml
+++ b/app/views/kaminari/_next_page.html.haml
@@ -1,9 +1,11 @@
--# Link to the "Next" page
--# available local variables
--# url: url to the next page
--# current_page: a page object for the currently displayed page
--# total_pages: total number of pages
--# per_page: number of items to fetch per page
--# remote: data-remote
+-#
+ Link to the "Next" page
+ available local variables
+ url: url to the next page
+ current_page: a page object for the currently displayed page
+ total_pages: total number of pages
+ per_page: number of items to fetch per page
+ remote: data-remote
+
%span.next
= link_to_unless current_page.last?, safe_join([t('pagination.next'), fa_icon('chevron-right')], ' '), url, rel: 'next', remote: remote
diff --git a/app/views/kaminari/_paginator.html.haml b/app/views/kaminari/_paginator.html.haml
index b1da236d5d..4778f6279a 100644
--- a/app/views/kaminari/_paginator.html.haml
+++ b/app/views/kaminari/_paginator.html.haml
@@ -1,10 +1,11 @@
--# The container tag
--# available local variables
--# current_page: a page object for the currently displayed page
--# total_pages: total number of pages
--# per_page: number of items to fetch per page
--# remote: data-remote
--# paginator: the paginator that renders the pagination tags inside
+-#
+ The container tag
+ available local variables
+ current_page: a page object for the currently displayed page
+ total_pages: total number of pages
+ per_page: number of items to fetch per page
+ remote: data-remote
+ paginator: the paginator that renders the pagination tags inside
= paginator.render do
%nav.pagination
= prev_page_tag unless current_page.first?
diff --git a/app/views/kaminari/_prev_page.html.haml b/app/views/kaminari/_prev_page.html.haml
index 1089e35668..284d6223b8 100644
--- a/app/views/kaminari/_prev_page.html.haml
+++ b/app/views/kaminari/_prev_page.html.haml
@@ -1,9 +1,10 @@
--# Link to the "Previous" page
--# available local variables
--# url: url to the previous page
--# current_page: a page object for the currently displayed page
--# total_pages: total number of pages
--# per_page: number of items to fetch per page
--# remote: data-remote
+-#
+ Link to the "Previous" page
+ available local variables
+ url: url to the previous page
+ current_page: a page object for the currently displayed page
+ total_pages: total number of pages
+ per_page: number of items to fetch per page
+ remote: data-remote
%span.prev
= link_to_unless current_page.first?, safe_join([fa_icon('chevron-left'), t('pagination.prev')], ' '), url, rel: 'prev', remote: remote
diff --git a/app/views/layouts/modal.html.haml b/app/views/layouts/modal.html.haml
index cf608766b5..5d08d78489 100644
--- a/app/views/layouts/modal.html.haml
+++ b/app/views/layouts/modal.html.haml
@@ -12,6 +12,6 @@
.modal-layout__mastodon
%div
- %img{alt: '', draggable: 'false', src: mascot_url }
+ %img{ alt: '', draggable: 'false', src: mascot_url }
= render template: 'layouts/application'
diff --git a/app/views/notification_mailer/_status.html.haml b/app/views/notification_mailer/_status.html.haml
index e7cd5ba3eb..03f49c73da 100644
--- a/app/views/notification_mailer/_status.html.haml
+++ b/app/views/notification_mailer/_status.html.haml
@@ -26,11 +26,11 @@
= "@#{status.account.pretty_acct}"
- if status.spoiler_text?
- %div.auto-dir
+ .auto-dir
%p
= status.spoiler_text
- %div.auto-dir
+ .auto-dir
= status_content_format(status)
- if status.ordered_media_attachments.size > 0
diff --git a/app/views/oauth/authorizations/show.html.haml b/app/views/oauth/authorizations/show.html.haml
index c3c9960d8a..a5122a87fc 100644
--- a/app/views/oauth/authorizations/show.html.haml
+++ b/app/views/oauth/authorizations/show.html.haml
@@ -3,5 +3,5 @@
%p= t('doorkeeper.authorizations.show.title')
.input-copy
.input-copy__wrapper
- %input{ type: 'text', class: 'oauth-code', spellcheck: 'false', readonly: true, value: params[:code] }
+ %input.oauth-code{ type: 'text', spellcheck: 'false', readonly: true, value: params[:code] }
%button{ type: :button }= t('generic.copy')
diff --git a/app/views/settings/applications/index.html.haml b/app/views/settings/applications/index.html.haml
index a1f904a3a8..5c31d56bca 100644
--- a/app/views/settings/applications/index.html.haml
+++ b/app/views/settings/applications/index.html.haml
@@ -5,7 +5,7 @@
= link_to t('doorkeeper.applications.index.new'), new_settings_application_path, class: 'button'
- if @applications.empty?
- %div.muted-hint.center-text=t 'doorkeeper.applications.index.empty'
+ .muted-hint.center-text= t 'doorkeeper.applications.index.empty'
- else
.table-wrapper
%table.table
diff --git a/app/views/settings/applications/show.html.haml b/app/views/settings/applications/show.html.haml
index 390682d6f9..466a8ba340 100644
--- a/app/views/settings/applications/show.html.haml
+++ b/app/views/settings/applications/show.html.haml
@@ -6,7 +6,7 @@
.table-wrapper
%table.table
%tbody
- %tr
+ %tr
%th= t('doorkeeper.applications.show.application_id')
%td
%code= @application.uid
@@ -15,7 +15,7 @@
%td
%code= @application.secret
%tr
- %th{ rowspan: 2}= t('applications.your_token')
+ %th{ rowspan: 2 }= t('applications.your_token')
%td
%code= current_user.token_for_app(@application).token
%tr
diff --git a/app/views/settings/login_activities/index.html.haml b/app/views/settings/login_activities/index.html.haml
index ce524fbef7..6fb1bc34c0 100644
--- a/app/views/settings/login_activities/index.html.haml
+++ b/app/views/settings/login_activities/index.html.haml
@@ -6,7 +6,7 @@
%hr.spacer/
- if @login_activities.empty?
- %div.muted-hint.center-text
+ .muted-hint.center-text
= t 'login_activities.empty'
- else
.announcements-list
diff --git a/app/views/shared/_og.html.haml b/app/views/shared/_og.html.haml
index 2941b566e0..a5d99ae33a 100644
--- a/app/views/shared/_og.html.haml
+++ b/app/views/shared/_og.html.haml
@@ -1,5 +1,5 @@
- thumbnail = @instance_presenter.thumbnail
-- description ||= strip_tags(@instance_presenter.description.presence || t('about.about_mastodon_html'))
+- description ||= @instance_presenter.description.presence || strip_tags(t('about.about_mastodon_html'))
%meta{ name: 'description', content: description }/
diff --git a/app/views/statuses/_poll.html.haml b/app/views/statuses/_poll.html.haml
index d0f2640957..248c6058cb 100644
--- a/app/views/statuses/_poll.html.haml
+++ b/app/views/statuses/_poll.html.haml
@@ -21,7 +21,7 @@
%span.poll__chart
- else
%label.poll__option><
- %span.poll__input{ class: poll.multiple? ? 'checkbox' : nil}><
+ %span.poll__input{ class: poll.multiple? ? 'checkbox' : nil }><
%span.poll__option__text
= prerender_custom_emojis(h(option.title), status.emojis)
.poll__footer
diff --git a/app/workers/activitypub/distribute_poll_update_worker.rb b/app/workers/activitypub/distribute_poll_update_worker.rb
index 601075ea6e..ebdb78bb32 100644
--- a/app/workers/activitypub/distribute_poll_update_worker.rb
+++ b/app/workers/activitypub/distribute_poll_update_worker.rb
@@ -12,7 +12,7 @@ class ActivityPub::DistributePollUpdateWorker
return if @status.preloadable_poll.nil? || @status.local_only?
- ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url|
+ ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url|
[payload, @account.id, inbox_url]
end
diff --git a/app/workers/activitypub/move_distribution_worker.rb b/app/workers/activitypub/move_distribution_worker.rb
index 65c5c0d1c3..1680fcc76e 100644
--- a/app/workers/activitypub/move_distribution_worker.rb
+++ b/app/workers/activitypub/move_distribution_worker.rb
@@ -10,7 +10,7 @@ class ActivityPub::MoveDistributionWorker
@migration = AccountMigration.find(migration_id)
@account = @migration.account
- ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url|
+ ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url|
[signed_payload, @account.id, inbox_url]
end
diff --git a/app/workers/activitypub/raw_distribution_worker.rb b/app/workers/activitypub/raw_distribution_worker.rb
index 8ecc17db9a..c77821e0f1 100644
--- a/app/workers/activitypub/raw_distribution_worker.rb
+++ b/app/workers/activitypub/raw_distribution_worker.rb
@@ -25,7 +25,7 @@ class ActivityPub::RawDistributionWorker
def distribute!
return if inboxes.empty?
- ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url|
+ ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url|
[payload, source_account_id, inbox_url, options]
end
end
diff --git a/bin/tootctl b/bin/tootctl
index a9ebb22c6d..9c7ae8b871 100755
--- a/bin/tootctl
+++ b/bin/tootctl
@@ -5,7 +5,9 @@ require_relative '../config/boot'
require_relative '../lib/cli'
begin
- Mastodon::CLI.start(ARGV)
+ Chewy.strategy(:mastodon) do
+ Mastodon::CLI.start(ARGV)
+ end
rescue Interrupt
exit(130)
end
diff --git a/config/initializers/chewy.rb b/config/initializers/chewy.rb
index 752fc3c6df..2a91efefc8 100644
--- a/config/initializers/chewy.rb
+++ b/config/initializers/chewy.rb
@@ -19,7 +19,6 @@ Chewy.settings = {
# cycle, which takes care of checking if Elasticsearch is enabled
# or not. However, mind that for the Rails console, the :urgent
# strategy is set automatically with no way to override it.
-Chewy.root_strategy = :mastodon
Chewy.request_strategy = :mastodon
Chewy.use_after_commit_callbacks = false
diff --git a/config/locales/an.yml b/config/locales/an.yml
index 3a6ddda1b7..2e1a7e36ff 100644
--- a/config/locales/an.yml
+++ b/config/locales/an.yml
@@ -1159,8 +1159,6 @@ an:
index:
hint: Este filtro s'aplica a la selección de publicacions individuals independientment d'atros criterios. Puede anyadir mas publicacions a este filtro dende la interficie web.
title: Publicacions filtradas
- footer:
- trending_now: Tendencia agora
generic:
all: Totz
all_items_on_page_selected_html:
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index 32130cc7da..d72a11130b 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -1214,8 +1214,6 @@ ar:
index:
hint: ينطبق الفلتر هذا على اختيار المنشورات الفردية بغض النظر عن المعايير الأخرى. يمكنك إضافة المزيد من المنشورات إلى هذا الفلتر من واجهة الويب.
title: الرسائل المصفّاة
- footer:
- trending_now: المتداولة الآن
generic:
all: الكل
changes_saved_msg: تم حفظ التعديلات بنجاح!
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index afdb5176c4..b59ebba455 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -601,8 +601,6 @@ ast:
title: Peñeres
new:
title: Amestar una peñera
- footer:
- trending_now: En tendencia
generic:
all: Too
all_items_on_page_selected_html:
diff --git a/config/locales/be.yml b/config/locales/be.yml
index 17fcabe9b0..05c7b7bffe 100644
--- a/config/locales/be.yml
+++ b/config/locales/be.yml
@@ -1238,8 +1238,6 @@ be:
index:
hint: Гэты фільтр прымяняецца для выбару асобных допісаў незалежна ад іншых крытэрыяў. Вы можаце дадаць больш допісаў у гэты фільтр з вэб-інтэрфейсу.
title: Адфільтраваныя допісы
- footer:
- trending_now: Актуальнае
generic:
all: Усе
all_items_on_page_selected_html:
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index 7483c562b0..34f0542759 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -1196,8 +1196,6 @@ bg:
index:
hint: Този филтър се прилага за избор на отделни публикации, независимо от други критерии. Може да добавите още публикации в този филтър от уебинтерфейса.
title: Филтрирани публикации
- footer:
- trending_now: Налагащи се сега
generic:
all: Всичко
all_items_on_page_selected_html:
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index 68c5db23e4..2a459dbde6 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -1196,8 +1196,6 @@ ca:
index:
hint: Aquest filtre aplica als tuts seleccionats independentment d'altres criteris. Pots afegir més tuts a aquest filtre des de la interfície Web.
title: Tuts filtrats
- footer:
- trending_now: En tendència
generic:
all: Tot
all_items_on_page_selected_html:
diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml
index 2cfa5dfee8..0f481c8ce2 100644
--- a/config/locales/ckb.yml
+++ b/config/locales/ckb.yml
@@ -744,8 +744,6 @@ ckb:
title: فلتەرەکان
new:
title: زیادکردنی فلتەری نوێ
- footer:
- trending_now: هەوادارانی ئێستا
generic:
all: هەموو
changes_saved_msg: گۆڕانکاریەکان بە سەرکەوتوویی هەڵگیرا!
diff --git a/config/locales/co.yml b/config/locales/co.yml
index 6cf1f28b33..94f2101c20 100644
--- a/config/locales/co.yml
+++ b/config/locales/co.yml
@@ -704,8 +704,6 @@ co:
title: Filtri
new:
title: Aghjunghje un novu filtru
- footer:
- trending_now: Tindenze d'avà
generic:
all: Tuttu
changes_saved_msg: Cambiamenti salvati!
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index f6796ec6b8..8c44bba8c5 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -1213,8 +1213,6 @@ cs:
index:
hint: Tento filtr se vztahuje na výběr jednotlivých příspěvků bez ohledu na jiná kritéria. Do tohoto filtru můžete přidat více příspěvků z webového rozhraní.
title: Filtrované příspěvky
- footer:
- trending_now: Právě populární
generic:
all: Všechny
all_items_on_page_selected_html:
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index 14ecbe7034..f887329885 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -1280,8 +1280,6 @@ cy:
index:
hint: Mae'r hidlydd hwn yn berthnasol i ddethol postiadau unigol waeth beth fo'r meini prawf eraill. Gallwch ychwanegu mwy o bostiadau at yr hidlydd hwn o'r rhyngwyneb gwe.
title: Postiadau wedi'u hidlo
- footer:
- trending_now: Trendiau
generic:
all: Popeth
all_items_on_page_selected_html:
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 38111748d8..a75364a792 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -1192,8 +1192,6 @@ da:
index:
hint: Dette filter gælder for udvalgte, individuelle indlæg uanset andre kriterier. Flere indlæg kan føjes til filteret via webfladen.
title: Filtrerede indlæg
- footer:
- trending_now: Trender lige nu
generic:
all: Alle
all_items_on_page_selected_html:
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 69284b09f9..3f2666bdbf 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -1196,8 +1196,6 @@ de:
index:
hint: Dieser Filter wird verwendet, um einzelne Beiträge unabhängig von anderen Kriterien auszuwählen. Du kannst mehr Beiträge zu diesem Filter über das Webinterface hinzufügen.
title: Gefilterte Beiträge
- footer:
- trending_now: Jetzt in den Trends
generic:
all: Alle
all_items_on_page_selected_html:
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 7994f71740..3ed8ca4054 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -875,8 +875,6 @@ el:
new:
save: Αποθήκευση νέου φίλτρου
title: Πρόσθεσε νέο φίλτρο
- footer:
- trending_now: Τάσεις
generic:
all: Όλα
changes_saved_msg: Οι αλλαγές αποθηκεύτηκαν!
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 97d0999e4a..87231836ae 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -1196,8 +1196,6 @@ en:
index:
hint: This filter applies to select individual posts regardless of other criteria. You can add more posts to this filter from the web interface.
title: Filtered posts
- footer:
- trending_now: Trending now
generic:
all: All
all_items_on_page_selected_html:
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index 151ca2429f..a8279b6a6f 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -1197,8 +1197,6 @@ eo:
index:
hint: Ĉi tiu filtrilo kongruas kelkaj mesaĝoj sendepende de aliaj kriterioj.
title: Filtritaj mesaĝoj
- footer:
- trending_now: Nunaj furoraĵoj
generic:
all: Ĉio
all_items_on_page_selected_html:
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index 8d934011cd..bef481b35d 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -1196,8 +1196,6 @@ es-AR:
index:
hint: Este filtro se aplica a la selección de mensajes individuales, independientemente de otros criterios. Podés agregar más mensajes a este filtro desde la interface web.
title: Mensajes filtrados
- footer:
- trending_now: Tendencia ahora
generic:
all: Todas
all_items_on_page_selected_html:
diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml
index 1267c49172..978cd0c3ce 100644
--- a/config/locales/es-MX.yml
+++ b/config/locales/es-MX.yml
@@ -1196,8 +1196,6 @@ es-MX:
index:
hint: Este filtro se aplica a la selección de publicaciones individuales independientemente de otros criterios. Puede añadir más publicaciones a este filtro desde la interfaz web.
title: Publicaciones filtradas
- footer:
- trending_now: Tendencia ahora
generic:
all: Todos
all_items_on_page_selected_html:
diff --git a/config/locales/es.yml b/config/locales/es.yml
index f87042792f..29c4e84e73 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -1196,8 +1196,6 @@ es:
index:
hint: Este filtro se aplica a la selección de publicaciones individuales independientemente de otros criterios. Puede añadir más publicaciones a este filtro desde la interfaz web.
title: Publicaciones filtradas
- footer:
- trending_now: Tendencia ahora
generic:
all: Todos
all_items_on_page_selected_html:
diff --git a/config/locales/et.yml b/config/locales/et.yml
index 1b5910154e..55cb810116 100644
--- a/config/locales/et.yml
+++ b/config/locales/et.yml
@@ -1196,8 +1196,6 @@ et:
index:
hint: See filter kehtib üksikute postituste valimisel, sõltumata muudest kriteeriumidest. Sellesse filtrisse saab veebiliidese kaudu rohkem postitusi lisada.
title: Filtreeritud postitused
- footer:
- trending_now: Praegu trendikad
generic:
all: Kõik
all_items_on_page_selected_html:
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index b9a9482bf5..0b2ab33d4d 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -1198,8 +1198,6 @@ eu:
index:
hint: Iragazki honek banako bidalketei eragiten die, beste kriterioak badaude ere. Bidalketa gehiago gehitu ditzakezu iragazkira web interfazetik.
title: Iragazitako bidalketak
- footer:
- trending_now: Joera orain
generic:
all: Denak
all_items_on_page_selected_html:
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index 88366c7b95..a418dc3776 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -890,8 +890,6 @@ fa:
title: پالایهها
new:
title: افزودن پالایهٔ جدید
- footer:
- trending_now: پرطرفدار
generic:
all: همه
changes_saved_msg: تغییرات با موفقیت ذخیره شدند!
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index 8a77fa8a57..30d5f11791 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -1196,8 +1196,6 @@ fi:
index:
hint: Tämä suodatin koskee yksittäisten viestien valintaa muista kriteereistä riippumatta. Voit lisätä lisää viestejä tähän suodattimeen web-käyttöliittymästä.
title: Suodatetut viestit
- footer:
- trending_now: Suosittua nyt
generic:
all: Kaikki
all_items_on_page_selected_html:
diff --git a/config/locales/fo.yml b/config/locales/fo.yml
index db3aca3693..baebaae2f3 100644
--- a/config/locales/fo.yml
+++ b/config/locales/fo.yml
@@ -1196,8 +1196,6 @@ fo:
index:
hint: Hetta filtrið er galdandi fyri útvaldar stakar postar óansæð aðrar treytir. Tú kanst leggja fleiri postar afturat hesum filtrinum frá vevmarkamótinum.
title: Filtreraðir postar
- footer:
- trending_now: Rák beint nú
generic:
all: Alt
all_items_on_page_selected_html:
diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml
index 76788b995d..922cea0dca 100644
--- a/config/locales/fr-QC.yml
+++ b/config/locales/fr-QC.yml
@@ -1196,8 +1196,6 @@ fr-QC:
index:
hint: Ce filtre s'applique à la sélection de messages individuels, indépendamment d'autres critères. Vous pouvez ajouter plus de messages à ce filtre à partir de l'interface Web.
title: Messages filtrés
- footer:
- trending_now: Tendance en ce moment
generic:
all: Tous
all_items_on_page_selected_html:
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index c3ec4bdc7a..c0d48df88f 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -1196,8 +1196,6 @@ fr:
index:
hint: Ce filtre s'applique à la sélection de messages individuels, indépendamment d'autres critères. Vous pouvez ajouter plus de messages à ce filtre à partir de l'interface Web.
title: Messages filtrés
- footer:
- trending_now: Tendance en ce moment
generic:
all: Tous
all_items_on_page_selected_html:
diff --git a/config/locales/fy.yml b/config/locales/fy.yml
index 45e15a4d2f..2c1c8657ff 100644
--- a/config/locales/fy.yml
+++ b/config/locales/fy.yml
@@ -1196,8 +1196,6 @@ fy:
index:
hint: Dit filter is fan tapassing om yndividuele berjochten te selektearjen, ûnôfhinklik fan oare kritearia. Jo kinne yn de webomjouwing mear berjochten oan dit filter tafoegje.
title: Filtere berjochten
- footer:
- trending_now: Trends
generic:
all: Alle
all_items_on_page_selected_html:
diff --git a/config/locales/gd.yml b/config/locales/gd.yml
index f47c99073d..b5347d91b4 100644
--- a/config/locales/gd.yml
+++ b/config/locales/gd.yml
@@ -1225,8 +1225,6 @@ gd:
index:
hint: Bidh a’ chriathrag seo an sàs air postaichean fa leth ge b’ e dè na roghainnean eile. ’S urrainn dhut barrachd phostaichean a chur ris a’ chriathrag seo leis an eadar-aghaidh-lìn.
title: Postaichean criathraichte
- footer:
- trending_now: A’ treandadh an-dràsta
generic:
all: Na h-uile
all_items_on_page_selected_html:
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index cdb128f927..2c3af8f889 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -1196,8 +1196,6 @@ gl:
index:
hint: Este filtro aplícase para seleccionar publicacións individuais independentemente doutros criterios. Podes engadir máis publicacións a este filtro desde a interface web.
title: Publicacións filtradas
- footer:
- trending_now: Tendencia agora
generic:
all: Todo
all_items_on_page_selected_html:
diff --git a/config/locales/he.yml b/config/locales/he.yml
index 064e127a0d..a4af50b533 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -1238,8 +1238,6 @@ he:
index:
hint: סנן זה חל באופן של בחירת הודעות בודדות ללא תלות בקריטריונים אחרים. תוכלו להוסיף עוד הודעות לסנן זה ממנשק הווב.
title: הודעות שסוננו
- footer:
- trending_now: נושאים חמים
generic:
all: הכל
all_items_on_page_selected_html:
diff --git a/config/locales/hr.yml b/config/locales/hr.yml
index 0563712266..e9d414ef59 100644
--- a/config/locales/hr.yml
+++ b/config/locales/hr.yml
@@ -99,8 +99,6 @@ hr:
title: Filteri
new:
title: Dodaj novi filter
- footer:
- trending_now: Popularno
generic:
all: Sve
changes_saved_msg: Izmjene su uspješno sačuvane!
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index 620e8d6799..2887b4a69a 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -1196,8 +1196,6 @@ hu:
index:
hint: Ez a szűrő egyedi bejegyzések kiválasztására vonatkozik a megadott kritériumoktól függetlenül. Újabb bejegyzéseket adhatsz hozzá ehhez a szűrőhöz a webes felületen keresztül.
title: Megszűrt bejegyzések
- footer:
- trending_now: Most felkapott
generic:
all: Mind
all_items_on_page_selected_html:
diff --git a/config/locales/hy.yml b/config/locales/hy.yml
index de995c5b5e..158402ce81 100644
--- a/config/locales/hy.yml
+++ b/config/locales/hy.yml
@@ -575,8 +575,6 @@ hy:
title: Ֆիլտրեր
new:
title: Ավելացնել ֆիլտր
- footer:
- trending_now: Այժմ արդիական
generic:
all: Բոլորը
changes_saved_msg: Փոփոխութիւնները յաջող պահուած են
diff --git a/config/locales/id.yml b/config/locales/id.yml
index 2363cc66ac..0342c7bd90 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -1133,8 +1133,6 @@ id:
index:
hint: Saringan ini diterapkan ke beberapa kiriman individu tanpa memengaruhi oleh kriteria lain. Anda dapat menambahkan lebih banyak kiriman ke saringan ini dari antarmuka web.
title: Kiriman yang disaring
- footer:
- trending_now: Sedang tren
generic:
all: Semua
all_items_on_page_selected_html:
diff --git a/config/locales/io.yml b/config/locales/io.yml
index 9ef6c03128..b557788297 100644
--- a/config/locales/io.yml
+++ b/config/locales/io.yml
@@ -1112,8 +1112,6 @@ io:
index:
hint: Ca filtrilo aplikesas a selektita posti ne segun altra kriterio. Vu povas pozar plu multa posti a ca filtrilo de retintervizajo.
title: Filtrita posti
- footer:
- trending_now: Nuna tendenco
generic:
all: Omna
all_items_on_page_selected_html:
diff --git a/config/locales/is.yml b/config/locales/is.yml
index 5f63482522..2ba3d3108c 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -1196,8 +1196,6 @@ is:
index:
hint: Þessi sía virkar til að velja stakar færslur án tillits til annarra skilyrða. Þú getur bætt fleiri færslum í þessa síu í vefviðmótinu.
title: Síaðar færslur
- footer:
- trending_now: Í umræðunni núna
generic:
all: Allt
all_items_on_page_selected_html:
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 9256ed49d9..ce3fd34b7e 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -1198,8 +1198,6 @@ it:
index:
hint: Questo filtro si applica a singoli post indipendentemente da altri criteri. Puoi aggiungere più post a questo filtro dall'interfaccia Web.
title: Post filtrati
- footer:
- trending_now: Di tendenza ora
generic:
all: Tutto
all_items_on_page_selected_html:
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 374fdaf84a..6743d83883 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -1175,8 +1175,6 @@ ja:
index:
hint: このフィルターは、他の条件に関係なく個々の投稿を選択する場合に適用されます。Webインターフェースからこのフィルターにさらに投稿を追加できます。
title: フィルターされた投稿
- footer:
- trending_now: トレンドタグ
generic:
all: すべて
all_items_on_page_selected_html:
diff --git a/config/locales/kab.yml b/config/locales/kab.yml
index ead31b695f..085a8958a9 100644
--- a/config/locales/kab.yml
+++ b/config/locales/kab.yml
@@ -543,8 +543,6 @@ kab:
back_to_filter: Tuɣalin ɣer umsizdeg
batch:
remove: Kkes seg umsizdeg
- footer:
- trending_now: Ayen mucaɛen tura
generic:
all: Akk
changes_saved_msg: Ttwaskelsen ibelliden-ik·im akken ilaq!
diff --git a/config/locales/kk.yml b/config/locales/kk.yml
index 959f7b0f01..c7bdae1772 100644
--- a/config/locales/kk.yml
+++ b/config/locales/kk.yml
@@ -470,8 +470,6 @@ kk:
title: Фильтрлер
new:
title: Жаңа фильтр қосу
- footer:
- trending_now: Бүгінгі трендтер
generic:
all: Барлығы
changes_saved_msg: Өзгерістер сәтті сақталды!
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index fb778f803f..057e57068f 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -1177,8 +1177,6 @@ ko:
index:
hint: 이 필터는 다른 기준에 관계 없이 선택된 개별적인 게시물들에 적용됩니다. 웹 인터페이스에서 더 많은 게시물들을 이 필터에 추가할 수 있습니다.
title: 필터링된 게시물
- footer:
- trending_now: 지금 유행 중
generic:
all: 모두
all_items_on_page_selected_html:
diff --git a/config/locales/ku.yml b/config/locales/ku.yml
index 899cd936a0..fa291b5c7f 100644
--- a/config/locales/ku.yml
+++ b/config/locales/ku.yml
@@ -1156,8 +1156,6 @@ ku:
index:
hint: Ev parzûn bêyî pîvanên din ji bo hilbijartina şandiyên kesane tê sepandin. Tu dikarî ji navrûya tevnê bêtir şandiyan tevlî vê parzûnê bikî.
title: Şandiyên parzûnkirî
- footer:
- trending_now: Niha rojevê de
generic:
all: Hemû
all_items_on_page_selected_html:
diff --git a/config/locales/lv.yml b/config/locales/lv.yml
index 8bcb23c602..1c5eb356d4 100644
--- a/config/locales/lv.yml
+++ b/config/locales/lv.yml
@@ -1217,8 +1217,6 @@ lv:
index:
hint: Šis filtrs attiecas uz atsevišķu ziņu atlasi neatkarīgi no citiem kritērijiem. Šim filtram tu vari pievienot vairāk ziņu, izmantojot tīmekļa saskarni.
title: Filtrētās ziņas
- footer:
- trending_now: Šobrīd populārākie
generic:
all: Visi
all_items_on_page_selected_html:
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index e9a63e9d83..7732a64421 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -1196,8 +1196,6 @@ nl:
index:
hint: Dit filter is van toepassing om individuele berichten te selecteren, ongeacht andere criteria. Je kunt in de webomgeving meer berichten aan dit filter toevoegen.
title: Gefilterde berichten
- footer:
- trending_now: Trends
generic:
all: Alles
all_items_on_page_selected_html:
diff --git a/config/locales/nn.yml b/config/locales/nn.yml
index 49f30bab09..7b860b54b2 100644
--- a/config/locales/nn.yml
+++ b/config/locales/nn.yml
@@ -1156,8 +1156,6 @@ nn:
index:
hint: Dette filteret gjelder for å velge individuelle innlegg uavhengig av andre kriterier. Du kan legge til flere innlegg til dette filteret fra webgrensesnittet.
title: Filtrerte innlegg
- footer:
- trending_now: Populært no
generic:
all: Alle
all_items_on_page_selected_html:
diff --git a/config/locales/no.yml b/config/locales/no.yml
index 3036ce050f..ebad60b73c 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -1131,8 +1131,6 @@
index:
hint: Dette filteret gjelder for å velge individuelle innlegg uavhengig av andre kriterier. Du kan legge til flere innlegg til dette filteret fra webgrensesnittet.
title: Filtrerte innlegg
- footer:
- trending_now: Trender nå
generic:
all: Alle
all_items_on_page_selected_html:
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index 1d5ed61fe7..e1406ec614 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -627,8 +627,6 @@ oc:
title: Filtres
new:
title: Ajustar un nòu filtre
- footer:
- trending_now: Tendéncia del moment
generic:
all: Tot
changes_saved_msg: Cambiaments ben realizats !
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 90a6aaf9ee..d086161910 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -1238,8 +1238,6 @@ pl:
index:
hint: Ten filtr ma zastosowanie do wybierania poszczególnych wpisów niezależnie od pozostałych kryteriów. Możesz dodać więcej wpisów do tego filtra z interfejsu internetowego.
title: Filtrowane posty
- footer:
- trending_now: Obecnie na czasie
generic:
all: Wszystkie
all_items_on_page_selected_html:
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index d855721077..5192a83d22 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -1179,8 +1179,6 @@ pt-BR:
index:
hint: Este filtro se aplica a publicações individuais, independentemente de outros critérios. Você pode adicionar mais postagens a este filtro a partir da interface web.
title: Publicações filtradas
- footer:
- trending_now: Em alta no momento
generic:
all: Tudo
all_items_on_page_selected_html:
diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml
index d3649ba40d..2718a7fb46 100644
--- a/config/locales/pt-PT.yml
+++ b/config/locales/pt-PT.yml
@@ -1196,8 +1196,6 @@ pt-PT:
index:
hint: Este filtro aplica-se a publicações individuais selecionadas independentemente de outros critérios. Pode adicionar mais publicações a este filtro através da interface web.
title: Publicações filtradas
- footer:
- trending_now: Em alta neste momento
generic:
all: Tudo
all_items_on_page_selected_html:
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index 9b8749b818..bfb3f5779c 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -1226,8 +1226,6 @@ ru:
index:
hint: Этот фильтр применяется для выбора отдельных постов, независимо от других критериев. Вы можете добавить больше записей в этот фильтр из веб-интерфейса.
title: Отфильтрованные посты
- footer:
- trending_now: Актуально сейчас
generic:
all: Любой
all_items_on_page_selected_html:
diff --git a/config/locales/sc.yml b/config/locales/sc.yml
index 3a84f81702..113786f77a 100644
--- a/config/locales/sc.yml
+++ b/config/locales/sc.yml
@@ -658,8 +658,6 @@ sc:
title: Filtros
new:
title: Agiunghe unu filtru nou
- footer:
- trending_now: Est tendèntzia immoe
generic:
all: Totus
changes_saved_msg: Modìficas sarvadas.
diff --git a/config/locales/sco.yml b/config/locales/sco.yml
index 6cd4be0601..719a8918fc 100644
--- a/config/locales/sco.yml
+++ b/config/locales/sco.yml
@@ -1146,8 +1146,6 @@ sco:
index:
hint: This filter applies tae select individual posts regairdless o ither criteria. Ye kin add mair posts tae this filter fae the wab interface.
title: Filtert posts
- footer:
- trending_now: Trendin the noo
generic:
all: Aw
all_items_on_page_selected_html:
diff --git a/config/locales/si.yml b/config/locales/si.yml
index 9a639b720d..87eaee5b6b 100644
--- a/config/locales/si.yml
+++ b/config/locales/si.yml
@@ -959,8 +959,6 @@ si:
new:
save: නව පෙරහන සුරකින්න
title: නව පෙරහනක් එකතු කරන්න
- footer:
- trending_now: දැන් ප්රවණතාවය
generic:
all: සියල්ල
changes_saved_msg: වෙනස්කම් සාර්ථකව සුරකින ලදී!
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index da653857fb..f1b021127b 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -814,8 +814,6 @@ sk:
title: Triedenia
new:
title: Pridaj nové triedenie
- footer:
- trending_now: Teraz populárne
generic:
all: Všetko
changes_saved_msg: Zmeny boli úspešne uložené!
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index 7cabc0cd86..303f9ea559 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -1238,8 +1238,6 @@ sl:
index:
hint: Ta filter se nanaša na posamezne objave ne glede na druge pogoje. Filtru lahko dodate več objav prek spletnega vmesnika.
title: Filtrirane objave
- footer:
- trending_now: Zdaj v trendu
generic:
all: Vse
all_items_on_page_selected_html:
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
index 467aa8967e..ea94dfb6a3 100644
--- a/config/locales/sq.yml
+++ b/config/locales/sq.yml
@@ -1190,8 +1190,6 @@ sq:
index:
hint: Ky filtër aplikohet për të përzgjedhur postime individuale, pavarësisht kriteresh të tjera. Që nga ndërfaqja web mund të shtoni më tepër postime te ky filtër.
title: Postime të filtruar
- footer:
- trending_now: Prirjet e tashme
generic:
all: Krejt
all_items_on_page_selected_html:
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 9352f0c19a..aea9cea4e6 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -1196,8 +1196,6 @@ sv:
index:
hint: Detta filter gäller för att välja enskilda inlägg oavsett andra kriterier. Du kan lägga till fler inlägg till detta filter från webbgränssnittet.
title: Filtrerade inlägg
- footer:
- trending_now: Trendar nu
generic:
all: Alla
all_items_on_page_selected_html:
diff --git a/config/locales/th.yml b/config/locales/th.yml
index 9c4a7bfc58..815936a2d1 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -1175,8 +1175,6 @@ th:
index:
hint: ตัวกรองนี้นำไปใช้เพื่อเลือกโพสต์แต่ละรายการโดยไม่คำนึงถึงเกณฑ์อื่น ๆ คุณสามารถเพิ่มโพสต์เพิ่มเติมไปยังตัวกรองนี้ได้จากส่วนติดต่อเว็บ
title: โพสต์ที่กรองอยู่
- footer:
- trending_now: กำลังนิยม
generic:
all: ทั้งหมด
all_items_on_page_selected_html:
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index 90a4208f0a..6cbd3f5103 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -1196,8 +1196,6 @@ tr:
index:
hint: Bu filtre diğer ölçütlerden bağımsız olarak tekil gönderileri seçmek için uygulanıyor. Web arayüzünü kullanarak bu filtreye daha fazla gönderi ekleyebilirsiniz.
title: Filtrelenmiş gönderiler
- footer:
- trending_now: Şu an gündemde
generic:
all: Tümü
all_items_on_page_selected_html:
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index 347f7414dc..44d54363f3 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -1238,8 +1238,6 @@ uk:
index:
hint: Цей фільтр застосовується для вибору окремих дописів, незалежно від інших критеріїв. Ви можете додавати більше дописів до цього фільтра з вебінтерфейсу.
title: Відфільтровані дописи
- footer:
- trending_now: Актуальні
generic:
all: Усі
all_items_on_page_selected_html:
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index 538b9304b0..88592b7044 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -1175,8 +1175,6 @@ vi:
index:
hint: Bộ lọc này áp dụng để chọn các tút riêng lẻ bất kể các tiêu chí khác. Bạn có thể thêm các tút khác vào bộ lọc này từ giao diện web.
title: Những tút đã lọc
- footer:
- trending_now: Thịnh hành
generic:
all: Tất cả
all_items_on_page_selected_html:
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index e8ca1910a7..ed1780ce8d 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -1175,8 +1175,6 @@ zh-CN:
index:
hint: 无论其他条件如何,此过滤器适用于选用个别嘟文。你可以从网页界面中向此过滤器加入更多嘟文。
title: 过滤的嘟文
- footer:
- trending_now: 现在流行
generic:
all: 全部
all_items_on_page_selected_html:
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index 6538e34590..405f321d46 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -1175,8 +1175,6 @@ zh-HK:
index:
hint: 不管其他條件如何,此篩選器會套用於所選的個別帖文。你可以在網頁介面上加入更多帖文到此篩選器。
title: 篩選帖文
- footer:
- trending_now: 今期流行
generic:
all: 全部
all_items_on_page_selected_html:
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index a25818bca6..3174287175 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -1177,8 +1177,6 @@ zh-TW:
index:
hint: 此過濾器會套用至所選之各別嘟文,不管它們有無符合其他條件。您可以從網頁介面中將更多嘟文加入至此過濾器。
title: 已過濾之嘟文
- footer:
- trending_now: 現正熱門
generic:
all: 全部
all_items_on_page_selected_html:
diff --git a/config/puma.rb b/config/puma.rb
index e592954458..c4e2b0b85c 100644
--- a/config/puma.rb
+++ b/config/puma.rb
@@ -22,3 +22,5 @@ on_worker_boot do
end
plugin :tmp_restart
+
+set_remote_address(proxy_protocol: :v1) if ENV['PROXY_PROTO_V1'] == 'true'
diff --git a/config/routes.rb b/config/routes.rb
index 37d8dcd2e7..8d3183263f 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -477,7 +477,9 @@ Rails.application.routes.draw do
resources :list, only: :show
end
- resources :streaming, only: [:index]
+ get '/streaming', to: 'streaming#index'
+ get '/streaming/(*any)', to: 'streaming#index'
+
resources :custom_emojis, only: [:index]
resources :suggestions, only: [:index, :destroy]
resources :scheduled_statuses, only: [:index, :show, :update, :destroy]
diff --git a/config/webpacker.yml b/config/webpacker.yml
index e4bcfe8d4f..179d4082c2 100644
--- a/config/webpacker.yml
+++ b/config/webpacker.yml
@@ -76,7 +76,7 @@ development:
test:
<<: *default
- # CircleCI precompiles packs prior to running the tests.
+ # CI precompiles packs prior to running the tests.
# Also avoids race conditions in parallel_tests.
compile: false
diff --git a/lib/cli.rb b/lib/cli.rb
index 157465c4b5..ac235cf039 100644
--- a/lib/cli.rb
+++ b/lib/cli.rb
@@ -131,7 +131,7 @@ module Mastodon
json = Oj.dump(ActivityPub::LinkedDataSignature.new(payload).sign!(account))
unless options[:dry_run]
- ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url|
+ ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url|
[json, account.id, inbox_url]
end
diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb
index 98855cbd06..a6532541e0 100644
--- a/lib/mastodon/accounts_cli.rb
+++ b/lib/mastodon/accounts_cli.rb
@@ -372,16 +372,16 @@ module Mastodon
option :concurrency, type: :numeric, default: 5, aliases: [:c]
option :verbose, type: :boolean, aliases: [:v]
option :dry_run, type: :boolean
- desc 'refresh [USERNAME]', 'Fetch remote user data and files'
+ desc 'refresh [USERNAMES]', 'Fetch remote user data and files'
long_desc <<-LONG_DESC
Fetch remote user data and files for one or multiple accounts.
With the --all option, all remote accounts will be processed.
Through the --domain option, this can be narrowed down to a
- specific domain only. Otherwise, a single remote account must
- be specified with USERNAME.
+ specific domain only. Otherwise, remote accounts must be
+ specified with space-separated USERNAMES.
LONG_DESC
- def refresh(username = nil)
+ def refresh(*usernames)
dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
if options[:domain] || options[:all]
@@ -397,19 +397,25 @@ module Mastodon
end
say("Refreshed #{processed} accounts#{dry_run}", :green, true)
- elsif username.present?
- username, domain = username.split('@')
- account = Account.find_remote(username, domain)
+ elsif !usernames.empty?
+ usernames.each do |user|
+ user, domain = user.split('@')
+ account = Account.find_remote(user, domain)
- if account.nil?
- say('No such account', :red)
- exit(1)
- end
+ if account.nil?
+ say('No such account', :red)
+ exit(1)
+ end
- unless options[:dry_run]
- account.reset_avatar!
- account.reset_header!
- account.save
+ next if options[:dry_run]
+
+ begin
+ account.reset_avatar!
+ account.reset_header!
+ account.save
+ rescue Mastodon::UnexpectedResponseError
+ say("Account failed: #{user}@#{domain}", :red)
+ end
end
say("OK#{dry_run}", :green)
diff --git a/lib/mastodon/sidekiq_middleware.rb b/lib/mastodon/sidekiq_middleware.rb
index c75e8401f5..9832e1a27c 100644
--- a/lib/mastodon/sidekiq_middleware.rb
+++ b/lib/mastodon/sidekiq_middleware.rb
@@ -3,8 +3,8 @@
class Mastodon::SidekiqMiddleware
BACKTRACE_LIMIT = 3
- def call(*)
- yield
+ def call(*, &block)
+ Chewy.strategy(:mastodon, &block)
rescue Mastodon::HostValidationError
# Do not retry
rescue => e
diff --git a/lib/tasks/repo.rake b/lib/tasks/repo.rake
index 5d1b4f7544..888337b4f2 100644
--- a/lib/tasks/repo.rake
+++ b/lib/tasks/repo.rake
@@ -91,8 +91,8 @@ namespace :repo do
missing_json_files = I18n.available_locales.reject { |locale| Rails.root.join('app', 'javascript', 'mastodon', 'locales', "#{locale}.json").exist? }
locales_in_files = Dir[Rails.root.join('config', 'locales', '*.yml')].map do |path|
- file_name = File.basename(path)
- file_name.gsub(/\A(doorkeeper|devise|activerecord|simple_form)\./, '').gsub(/\.yml\z/, '').to_sym
+ file_name = File.basename(path, '.yml')
+ file_name.gsub(/\A(doorkeeper|devise|activerecord|simple_form)\./, '').to_sym
end.uniq.compact
missing_available_locales = locales_in_files - I18n.available_locales
diff --git a/package.json b/package.json
index 9dc316b2aa..016a99d2b7 100644
--- a/package.json
+++ b/package.json
@@ -38,8 +38,8 @@
"array-includes": "^3.1.6",
"atrament": "0.2.4",
"arrow-key-navigation": "^1.2.0",
- "autoprefixer": "^9.8.8",
- "axios": "^1.3.3",
+ "autoprefixer": "^10.4.13",
+ "axios": "^1.3.4",
"babel-loader": "^8.3.0",
"babel-plugin-lodash": "^3.3.4",
"babel-plugin-preval": "^5.1.0",
@@ -52,7 +52,7 @@
"compression-webpack-plugin": "^6.1.1",
"cross-env": "^7.0.3",
"css-loader": "^5.2.7",
- "cssnano": "^4.1.11",
+ "cssnano": "^5.1.15",
"detect-passive-events": "^2.0.3",
"dotenv": "^16.0.3",
"emoji-mart": "npm:emoji-mart-lazyload@latest",
@@ -74,12 +74,12 @@
"intl-relativeformat": "^6.4.3",
"is-nan": "^1.3.2",
"js-yaml": "^4.1.0",
- "jsdom": "^21.1.0",
+ "jsdom": "^21.1.1",
"lodash": "^4.17.21",
"mark-loader": "^0.1.6",
"marky": "^1.2.5",
"mini-css-extract-plugin": "^1.6.2",
- "mkdirp": "^2.1.3",
+ "mkdirp": "^2.1.5",
"npmlog": "^7.0.1",
"object-assign": "^4.1.1",
"object.values": "^1.1.6",
@@ -87,7 +87,7 @@
"pg": "^8.5.0",
"pg-connection-string": "^2.5.0",
"postcss": "^8.4.21",
- "postcss-loader": "^3.0.0",
+ "postcss-loader": "^4.3.0",
"promise.prototype.finally": "^3.1.4",
"prop-types": "^15.8.1",
"punycode": "^2.3.0",
@@ -147,14 +147,14 @@
"@babel/eslint-parser": "^7.19.1",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^12.1.5",
- "babel-jest": "^29.4.3",
- "eslint": "^8.33.0",
+ "babel-jest": "^29.5.0",
+ "eslint": "^8.35.0",
"eslint-plugin-import": "~2.27.5",
"eslint-plugin-jsx-a11y": "~6.7.1",
"eslint-plugin-promise": "~6.1.1",
"eslint-plugin-react": "~7.32.2",
- "jest": "^29.4.3",
- "jest-environment-jsdom": "^29.4.3",
+ "jest": "^29.5.0",
+ "jest-environment-jsdom": "^29.5.0",
"postcss-scss": "^4.0.6",
"prettier": "^2.8.4",
"raf": "^3.4.1",
@@ -163,13 +163,13 @@
"stylelint": "^15.2.0",
"stylelint-config-standard-scss": "^7.0.1",
"webpack-dev-server": "^3.11.3",
- "yargs": "^17.7.0"
+ "yargs": "^17.7.1"
},
"resolutions": {
"kind-of": "^6.0.3"
},
"optionalDependencies": {
"bufferutil": "^4.0.7",
- "utf-8-validate": "^6.0.2"
+ "utf-8-validate": "^6.0.3"
}
}
diff --git a/postcss.config.js b/postcss.config.js
index e7749a219d..5d58d74e34 100644
--- a/postcss.config.js
+++ b/postcss.config.js
@@ -1,6 +1,6 @@
module.exports = ({ env }) => ({
- plugins: {
- autoprefixer: {},
- cssnano: env === 'production' ? {} : false,
- },
+ plugins: [
+ 'autoprefixer',
+ env === 'production' ? 'cssnano' : '',
+ ],
});
diff --git a/spec/chewy/accounts_index_spec.rb b/spec/chewy/accounts_index_spec.rb
new file mode 100644
index 0000000000..f9c5922c76
--- /dev/null
+++ b/spec/chewy/accounts_index_spec.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe AccountsIndex do
+ describe 'Searching the index' do
+ before do
+ mock_elasticsearch_response(described_class, raw_response)
+ end
+
+ it 'returns results from a query' do
+ results = described_class.query(match: { name: 'account' })
+
+ expect(results).to eq []
+ end
+ end
+
+ def raw_response
+ {
+ took: 3,
+ hits: {
+ hits: [
+ {
+ _id: '0',
+ _score: 1.6375021,
+ },
+ ],
+ },
+ }
+ end
+end
diff --git a/spec/chewy/statuses_index_spec.rb b/spec/chewy/statuses_index_spec.rb
new file mode 100644
index 0000000000..768e9415fc
--- /dev/null
+++ b/spec/chewy/statuses_index_spec.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe StatusesIndex do
+ describe 'Searching the index' do
+ before do
+ mock_elasticsearch_response(described_class, raw_response)
+ end
+
+ it 'returns results from a query' do
+ results = described_class.query(match: { name: 'status' })
+
+ expect(results).to eq []
+ end
+ end
+
+ def raw_response
+ {
+ took: 3,
+ hits: {
+ hits: [
+ {
+ _id: '0',
+ _score: 1.6375021,
+ },
+ ],
+ },
+ }
+ end
+end
diff --git a/spec/chewy/tags_index_spec.rb b/spec/chewy/tags_index_spec.rb
new file mode 100644
index 0000000000..054589bdfb
--- /dev/null
+++ b/spec/chewy/tags_index_spec.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe TagsIndex do
+ describe 'Searching the index' do
+ before do
+ mock_elasticsearch_response(described_class, raw_response)
+ end
+
+ it 'returns results from a query' do
+ results = described_class.query(match: { name: 'tag' })
+
+ expect(results).to eq []
+ end
+ end
+
+ def raw_response
+ {
+ took: 3,
+ hits: {
+ hits: [
+ {
+ _id: '0',
+ _score: 1.6375021,
+ },
+ ],
+ },
+ }
+ end
+end
diff --git a/spec/controllers/activitypub/claims_controller_spec.rb b/spec/controllers/activitypub/claims_controller_spec.rb
new file mode 100644
index 0000000000..f00eeb732a
--- /dev/null
+++ b/spec/controllers/activitypub/claims_controller_spec.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe ActivityPub::ClaimsController do
+ let(:account) { Fabricate(:account) }
+
+ describe 'POST #create' do
+ context 'without signature' do
+ before do
+ post :create, params: { account_username: account.username }, body: '{}'
+ end
+
+ it 'returns http not authorized' do
+ expect(response).to have_http_status(401)
+ end
+ end
+ end
+end
diff --git a/spec/controllers/api/v2/instances_controller_spec.rb b/spec/controllers/api/v2/instances_controller_spec.rb
new file mode 100644
index 0000000000..b7206da0a2
--- /dev/null
+++ b/spec/controllers/api/v2/instances_controller_spec.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Api::V2::InstancesController do
+ render_views
+
+ let(:user) { Fabricate(:user) }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id) }
+
+ before do
+ allow(controller).to receive(:doorkeeper_token) { token }
+ end
+
+ describe 'GET #show' do
+ it 'returns http success' do
+ get :show
+
+ expect(response).to have_http_status(200)
+ end
+ end
+end
diff --git a/spec/controllers/api/v2/suggestions_controller_spec.rb b/spec/controllers/api/v2/suggestions_controller_spec.rb
new file mode 100644
index 0000000000..5e6508bfda
--- /dev/null
+++ b/spec/controllers/api/v2/suggestions_controller_spec.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Api::V2::SuggestionsController do
+ render_views
+
+ let(:user) { Fabricate(:user) }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read') }
+
+ before do
+ allow(controller).to receive(:doorkeeper_token) { token }
+ end
+
+ describe 'GET #index' do
+ it 'returns http success' do
+ get :index
+
+ expect(response).to have_http_status(200)
+ end
+ end
+end
diff --git a/spec/controllers/auth/setup_controller_spec.rb b/spec/controllers/auth/setup_controller_spec.rb
new file mode 100644
index 0000000000..75e42aaf96
--- /dev/null
+++ b/spec/controllers/auth/setup_controller_spec.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Auth::SetupController do
+ render_views
+
+ describe 'GET #show' do
+ context 'with a signed out request' do
+ it 'returns http redirect' do
+ get :show
+ expect(response).to be_redirect
+ end
+ end
+
+ context 'with an unconfirmed signed in user' do
+ before { sign_in Fabricate(:user, confirmed_at: nil) }
+
+ it 'returns http success' do
+ get :show
+ expect(response).to have_http_status(200)
+ end
+ end
+ end
+end
diff --git a/spec/controllers/custom_css_controller_spec.rb b/spec/controllers/custom_css_controller_spec.rb
new file mode 100644
index 0000000000..47fe6031fa
--- /dev/null
+++ b/spec/controllers/custom_css_controller_spec.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe CustomCssController do
+ render_views
+
+ describe 'GET #show' do
+ it 'returns http success' do
+ get :show
+ expect(response).to have_http_status(200)
+ end
+ end
+end
diff --git a/spec/controllers/filters/statuses_controller_spec.rb b/spec/controllers/filters/statuses_controller_spec.rb
new file mode 100644
index 0000000000..492361188b
--- /dev/null
+++ b/spec/controllers/filters/statuses_controller_spec.rb
@@ -0,0 +1,41 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Filters::StatusesController do
+ render_views
+
+ describe 'GET #index' do
+ let(:filter) { Fabricate(:custom_filter) }
+
+ context 'with signed out user' do
+ it 'redirects' do
+ get :index, params: { filter_id: filter }
+
+ expect(response).to be_redirect
+ end
+ end
+
+ context 'with a signed in user' do
+ context 'with the filter user signed in' do
+ before { sign_in(filter.account.user) }
+
+ it 'returns http success' do
+ get :index, params: { filter_id: filter }
+
+ expect(response).to have_http_status(200)
+ end
+ end
+
+ context 'with another user signed in' do
+ before { sign_in(Fabricate(:user)) }
+
+ it 'returns http not found' do
+ get :index, params: { filter_id: filter }
+
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+ end
+end
diff --git a/spec/controllers/filters_controller_spec.rb b/spec/controllers/filters_controller_spec.rb
new file mode 100644
index 0000000000..f68f87ba7a
--- /dev/null
+++ b/spec/controllers/filters_controller_spec.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe FiltersController do
+ render_views
+
+ describe 'GET #index' do
+ context 'with signed out user' do
+ it 'redirects' do
+ get :index
+
+ expect(response).to be_redirect
+ end
+ end
+
+ context 'with a signed in user' do
+ before { sign_in(Fabricate(:user)) }
+
+ it 'returns http success' do
+ get :index
+
+ expect(response).to have_http_status(200)
+ end
+ end
+ end
+end
diff --git a/spec/controllers/health_controller_spec.rb b/spec/controllers/health_controller_spec.rb
index 1e41f6ed74..282b664199 100644
--- a/spec/controllers/health_controller_spec.rb
+++ b/spec/controllers/health_controller_spec.rb
@@ -1,13 +1,14 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe HealthController do
render_views
describe 'GET #show' do
- subject(:response) { get :show, params: { format: :json } }
-
- it 'returns the right response' do
- expect(response).to have_http_status 200
+ it 'returns http success' do
+ get :show
+ expect(response).to have_http_status(200)
end
end
end
diff --git a/spec/controllers/privacy_controller_spec.rb b/spec/controllers/privacy_controller_spec.rb
new file mode 100644
index 0000000000..c92c71ea64
--- /dev/null
+++ b/spec/controllers/privacy_controller_spec.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe PrivacyController do
+ render_views
+
+ describe 'GET #show' do
+ it 'returns http success' do
+ get :show
+ expect(response).to have_http_status(200)
+ end
+ end
+end
diff --git a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb
index f060c3a4bd..a95521c94a 100644
--- a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb
+++ b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb
@@ -248,7 +248,7 @@ describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do
post :create, params: { credential: new_webauthn_credential, nickname: 'USB Key' }
- expect(response).to have_http_status(500)
+ expect(response).to have_http_status(422)
expect(flash[:error]).to be_present
end
end
@@ -268,7 +268,7 @@ describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do
post :create, params: { credential: new_webauthn_credential, nickname: nickname }
- expect(response).to have_http_status(500)
+ expect(response).to have_http_status(422)
expect(flash[:error]).to be_present
end
end
diff --git a/spec/fabricators/encrypted_message_fabricator.rb b/spec/fabricators/encrypted_message_fabricator.rb
new file mode 100644
index 0000000000..43b3105146
--- /dev/null
+++ b/spec/fabricators/encrypted_message_fabricator.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+Fabricator(:encrypted_message) do
+ device
+ from_account { Fabricate(:account) }
+ from_device_id { Faker::Number.number(digits: 5) }
+end
diff --git a/spec/helpers/statuses_helper_spec.rb b/spec/helpers/statuses_helper_spec.rb
index c8ca2ed323..105da7e1b1 100644
--- a/spec/helpers/statuses_helper_spec.rb
+++ b/spec/helpers/statuses_helper_spec.rb
@@ -2,7 +2,33 @@
require 'rails_helper'
-RSpec.describe StatusesHelper, type: :helper do
+describe StatusesHelper do
+ describe 'status_text_summary' do
+ context 'with blank text' do
+ let(:status) { Status.new(spoiler_text: '') }
+
+ it 'returns immediately with nil' do
+ result = helper.status_text_summary(status)
+ expect(result).to be_nil
+ end
+ end
+
+ context 'with present text' do
+ let(:status) { Status.new(spoiler_text: 'SPOILERS!!!') }
+
+ it 'returns the content warning' do
+ result = helper.status_text_summary(status)
+ expect(result).to eq(I18n.t('statuses.content_warning', warning: 'SPOILERS!!!'))
+ end
+ end
+ end
+
+ def status_text_summary(status)
+ return if status.spoiler_text.blank?
+
+ I18n.t('statuses.content_warning', warning: status.spoiler_text)
+ end
+
describe 'link_to_newer' do
it 'returns a link to newer content' do
url = 'https://example.com'
diff --git a/spec/lib/importer/base_importer_spec.rb b/spec/lib/importer/base_importer_spec.rb
new file mode 100644
index 0000000000..78e9a869b8
--- /dev/null
+++ b/spec/lib/importer/base_importer_spec.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Importer::BaseImporter do
+ describe 'import!' do
+ let(:pool) { Concurrent::FixedThreadPool.new(5) }
+ let(:importer) { described_class.new(batch_size: 123, executor: pool) }
+
+ it 'raises an error' do
+ expect { importer.import! }.to raise_error(NotImplementedError)
+ end
+ end
+end
diff --git a/spec/lib/mastodon/cli_spec.rb b/spec/lib/mastodon/cli_spec.rb
new file mode 100644
index 0000000000..419f8b864e
--- /dev/null
+++ b/spec/lib/mastodon/cli_spec.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'cli'
+
+describe Mastodon::CLI do
+ describe 'version' do
+ it 'returns the Mastodon version' do
+ expect { described_class.new.invoke(:version) }.to output(
+ a_string_including(Mastodon::Version.to_s)
+ ).to_stdout
+ end
+ end
+end
diff --git a/spec/lib/plain_text_formatter_spec.rb b/spec/lib/plain_text_formatter_spec.rb
index 4a0519aaf6..80b3c331a6 100644
--- a/spec/lib/plain_text_formatter_spec.rb
+++ b/spec/lib/plain_text_formatter_spec.rb
@@ -6,7 +6,7 @@ RSpec.describe PlainTextFormatter do
describe '#to_s' do
subject { described_class.new(status.text, status.local?).to_s }
- context 'given a post with local status' do
+ context 'when status is local' do
let(:status) { Fabricate(:status, text: '
a text by a nerd who uses an HTML tag in text
', uri: nil) }
it 'returns the raw text' do
@@ -14,12 +14,63 @@ RSpec.describe PlainTextFormatter do
end
end
- context 'given a post with remote status' do
+ context 'when status is remote' do
let(:remote_account) { Fabricate(:account, domain: 'remote.test', username: 'bob', url: 'https://remote.test/') }
- let(:status) { Fabricate(:status, account: remote_account, text: 'Hello
') }
- it 'returns tag-stripped text' do
- expect(subject).to eq 'Hello'
+ context 'when text contains inline HTML tags' do
+ let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem ipsum') }
+
+ it 'strips the tags' do
+ expect(subject).to eq 'Lorem ipsum'
+ end
+ end
+
+ context 'when text contains tags' do
+ let(:status) { Fabricate(:status, account: remote_account, text: '
Lorem
ipsum
') }
+
+ it 'inserts a newline' do
+ expect(subject).to eq "Lorem\nipsum"
+ end
+ end
+
+ context 'when text contains a single
tag' do
+ let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem
ipsum') }
+
+ it 'inserts a newline' do
+ expect(subject).to eq "Lorem\nipsum"
+ end
+ end
+
+ context 'when text contains consecutive
tag' do
+ let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem
ipsum') }
+
+ it 'inserts a single newline' do
+ expect(subject).to eq "Lorem\nipsum"
+ end
+ end
+
+ context 'when text contains HTML entity' do
+ let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem & ipsum ❤') }
+
+ it 'unescapes the entity' do
+ expect(subject).to eq 'Lorem & ipsum ❤'
+ end
+ end
+
+ context 'when text contains ipsum') }
+
+ it 'strips the tag and its contents' do
+ expect(subject).to eq 'Lorem ipsum'
+ end
+ end
+
+ context 'when text contains an HTML comment tags' do
+ let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem ipsum') }
+
+ it 'strips the comment' do
+ expect(subject).to eq 'Lorem ipsum'
+ end
end
end
end
diff --git a/spec/lib/search_query_transformer_spec.rb b/spec/lib/search_query_transformer_spec.rb
new file mode 100644
index 0000000000..1095334695
--- /dev/null
+++ b/spec/lib/search_query_transformer_spec.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe SearchQueryTransformer do
+ describe 'initialization' do
+ let(:parser) { SearchQueryParser.new.parse('query') }
+
+ it 'sets attributes' do
+ transformer = described_class.new.apply(parser)
+
+ expect(transformer.should_clauses.first).to be_a(SearchQueryTransformer::TermClause)
+ expect(transformer.must_clauses.first).to be_nil
+ expect(transformer.must_not_clauses.first).to be_nil
+ expect(transformer.filter_clauses.first).to be_nil
+ end
+ end
+end
diff --git a/spec/models/admin/appeal_filter_spec.rb b/spec/models/admin/appeal_filter_spec.rb
new file mode 100644
index 0000000000..e840bc3bc1
--- /dev/null
+++ b/spec/models/admin/appeal_filter_spec.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::AppealFilter do
+ describe '#results' do
+ let(:approved_appeal) { Fabricate(:appeal, approved_at: 10.days.ago) }
+ let(:not_approved_appeal) { Fabricate(:appeal, approved_at: nil) }
+
+ it 'returns filtered appeals' do
+ filter = described_class.new(status: 'approved')
+
+ expect(filter.results).to eq([approved_appeal])
+ end
+ end
+end
diff --git a/spec/models/form/admin_settings_spec.rb b/spec/models/form/admin_settings_spec.rb
new file mode 100644
index 0000000000..0dc2d881ad
--- /dev/null
+++ b/spec/models/form/admin_settings_spec.rb
@@ -0,0 +1,36 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Form::AdminSettings do
+ describe 'validations' do
+ describe 'site_contact_username' do
+ context 'with no accounts' do
+ it 'is not valid' do
+ setting = described_class.new(site_contact_username: 'Test')
+ setting.valid?
+
+ expect(setting).to model_have_error_on_field(:site_contact_username)
+ end
+ end
+
+ context 'with an account' do
+ before { Fabricate(:account, username: 'Glorp') }
+
+ it 'is not valid when account doesnt match' do
+ setting = described_class.new(site_contact_username: 'Test')
+ setting.valid?
+
+ expect(setting).to model_have_error_on_field(:site_contact_username)
+ end
+
+ it 'is valid when account matches' do
+ setting = described_class.new(site_contact_username: 'Glorp')
+ setting.valid?
+
+ expect(setting).to_not model_have_error_on_field(:site_contact_username)
+ end
+ end
+ end
+ end
+end
diff --git a/spec/models/form/status_filter_batch_action_spec.rb b/spec/models/form/status_filter_batch_action_spec.rb
new file mode 100644
index 0000000000..f06a11cc8b
--- /dev/null
+++ b/spec/models/form/status_filter_batch_action_spec.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Form::StatusFilterBatchAction do
+ describe '#save!' do
+ it 'does nothing if status_filter_ids is empty' do
+ batch_action = described_class.new(status_filter_ids: [])
+
+ expect(batch_action.save!).to be_nil
+ end
+ end
+end
diff --git a/spec/presenters/instance_presenter_spec.rb b/spec/presenters/instance_presenter_spec.rb
index 43b1c40438..a598d5858d 100644
--- a/spec/presenters/instance_presenter_spec.rb
+++ b/spec/presenters/instance_presenter_spec.rb
@@ -89,8 +89,28 @@ describe InstancePresenter do
end
describe '#source_url' do
- it 'returns "https://github.com/glitch-soc/mastodon"' do
- expect(instance_presenter.source_url).to eq('https://github.com/glitch-soc/mastodon')
+ context 'with the GITHUB_REPOSITORY env variable set' do
+ around do |example|
+ ClimateControl.modify GITHUB_REPOSITORY: 'other/repo' do
+ example.run
+ end
+ end
+
+ it 'uses the env variable to build a repo URL' do
+ expect(instance_presenter.source_url).to eq('https://github.com/other/repo')
+ end
+ end
+
+ context 'without the GITHUB_REPOSITORY env variable set' do
+ around do |example|
+ ClimateControl.modify GITHUB_REPOSITORY: nil do
+ example.run
+ end
+ end
+
+ it 'defaults to the core glitch-soc repo URL' do
+ expect(instance_presenter.source_url).to eq('https://github.com/glitch-soc/mastodon')
+ end
end
end
diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb
index 70d3a968ca..c204fcdbd2 100644
--- a/spec/rails_helper.rb
+++ b/spec/rails_helper.rb
@@ -10,6 +10,7 @@ require 'rspec/rails'
require 'webmock/rspec'
require 'paperclip/matchers'
require 'capybara/rspec'
+require 'chewy/rspec'
Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
@@ -45,6 +46,7 @@ RSpec.configure do |config|
config.include Devise::Test::ControllerHelpers, type: :view
config.include Paperclip::Shoulda::Matchers
config.include ActiveSupport::Testing::TimeHelpers
+ config.include Chewy::Rspec::Helpers
config.include Redisable
config.before :each, type: :feature do
diff --git a/spec/serializers/activitypub/device_serializer_spec.rb b/spec/serializers/activitypub/device_serializer_spec.rb
new file mode 100644
index 0000000000..2a3be82121
--- /dev/null
+++ b/spec/serializers/activitypub/device_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe ActivityPub::DeviceSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { Fabricate(:device) }
+
+ describe 'type' do
+ it 'returns correct serialized type' do
+ expect(serialization['type']).to eq('Device')
+ end
+ end
+end
diff --git a/spec/serializers/activitypub/one_time_key_serializer_spec.rb b/spec/serializers/activitypub/one_time_key_serializer_spec.rb
new file mode 100644
index 0000000000..6fe1f06185
--- /dev/null
+++ b/spec/serializers/activitypub/one_time_key_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe ActivityPub::OneTimeKeySerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { Fabricate(:one_time_key) }
+
+ describe 'type' do
+ it 'returns correct serialized type' do
+ expect(serialization['type']).to eq('Curve25519Key')
+ end
+ end
+end
diff --git a/spec/serializers/activitypub/undo_like_serializer_spec.rb b/spec/serializers/activitypub/undo_like_serializer_spec.rb
new file mode 100644
index 0000000000..43cf7192e4
--- /dev/null
+++ b/spec/serializers/activitypub/undo_like_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe ActivityPub::UndoLikeSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { Fabricate(:favourite) }
+
+ describe 'type' do
+ it 'returns correct serialized type' do
+ expect(serialization['type']).to eq('Undo')
+ end
+ end
+end
diff --git a/spec/serializers/activitypub/vote_serializer_spec.rb b/spec/serializers/activitypub/vote_serializer_spec.rb
new file mode 100644
index 0000000000..c329542d79
--- /dev/null
+++ b/spec/serializers/activitypub/vote_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe ActivityPub::VoteSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { Fabricate(:poll_vote) }
+
+ describe 'type' do
+ it 'returns correct serialized type' do
+ expect(serialization['type']).to eq('Create')
+ end
+ end
+end
diff --git a/spec/serializers/rest/encrypted_message_serializer_spec.rb b/spec/serializers/rest/encrypted_message_serializer_spec.rb
new file mode 100644
index 0000000000..e0e70a3b84
--- /dev/null
+++ b/spec/serializers/rest/encrypted_message_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe REST::EncryptedMessageSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { Fabricate(:encrypted_message) }
+
+ describe 'account' do
+ it 'returns the associated account' do
+ expect(serialization['account_id']).to eq(record.from_account.id.to_s)
+ end
+ end
+end
diff --git a/spec/serializers/rest/instance_serializer_spec.rb b/spec/serializers/rest/instance_serializer_spec.rb
new file mode 100644
index 0000000000..15a5de18dd
--- /dev/null
+++ b/spec/serializers/rest/instance_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe REST::InstanceSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { InstancePresenter.new }
+
+ describe 'usage' do
+ it 'returns recent usage data' do
+ expect(serialization['usage']).to eq({ 'users' => { 'active_month' => 0 } })
+ end
+ end
+end
diff --git a/spec/serializers/rest/keys/claim_result_serializer_spec.rb b/spec/serializers/rest/keys/claim_result_serializer_spec.rb
new file mode 100644
index 0000000000..cf9416f032
--- /dev/null
+++ b/spec/serializers/rest/keys/claim_result_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe REST::Keys::ClaimResultSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { Keys::ClaimService::Result.new(Account.new(id: 123), 456) }
+
+ describe 'account' do
+ it 'returns the associated account' do
+ expect(serialization['account_id']).to eq('123')
+ end
+ end
+end
diff --git a/spec/serializers/rest/keys/device_serializer_spec.rb b/spec/serializers/rest/keys/device_serializer_spec.rb
new file mode 100644
index 0000000000..c15e197cb8
--- /dev/null
+++ b/spec/serializers/rest/keys/device_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe REST::Keys::DeviceSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { Device.new(name: 'Device name') }
+
+ describe 'name' do
+ it 'returns the name' do
+ expect(serialization['name']).to eq('Device name')
+ end
+ end
+end
diff --git a/spec/serializers/rest/keys/query_result_serializer_spec.rb b/spec/serializers/rest/keys/query_result_serializer_spec.rb
new file mode 100644
index 0000000000..983780ae98
--- /dev/null
+++ b/spec/serializers/rest/keys/query_result_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe REST::Keys::QueryResultSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { Keys::QueryService::Result.new(Account.new(id: 123), []) }
+
+ describe 'account' do
+ it 'returns the associated account id' do
+ expect(serialization['account_id']).to eq('123')
+ end
+ end
+end
diff --git a/spec/serializers/rest/suggestion_serializer_spec.rb b/spec/serializers/rest/suggestion_serializer_spec.rb
new file mode 100644
index 0000000000..b3c086208d
--- /dev/null
+++ b/spec/serializers/rest/suggestion_serializer_spec.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe REST::SuggestionSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) do
+ AccountSuggestions::Suggestion.new(
+ account: account,
+ source: 'SuggestionSource'
+ )
+ end
+ let(:account) { Fabricate(:account) }
+
+ describe 'account' do
+ it 'returns the associated account' do
+ expect(serialization['account']['id']).to eq(account.id.to_s)
+ end
+ end
+end
diff --git a/spec/workers/verify_account_links_worker_spec.rb b/spec/workers/verify_account_links_worker_spec.rb
new file mode 100644
index 0000000000..227591392c
--- /dev/null
+++ b/spec/workers/verify_account_links_worker_spec.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe VerifyAccountLinksWorker do
+ let(:worker) { described_class.new }
+
+ describe 'perform' do
+ it 'runs without error for missing record' do
+ expect { worker.perform(nil) }.to_not raise_error
+ end
+ end
+end
diff --git a/streaming/index.js b/streaming/index.js
index 851dc72ea3..94568ee9ac 100644
--- a/streaming/index.js
+++ b/streaming/index.js
@@ -16,7 +16,6 @@ const WebSocket = require('ws');
const { JSDOM } = require('jsdom');
const env = process.env.NODE_ENV || 'development';
-const alwaysRequireAuth = process.env.LIMITED_FEDERATION_MODE === 'true' || process.env.WHITELIST_MODE === 'true' || process.env.AUTHORIZED_FETCH === 'true';
dotenv.config({
path: env === 'production' ? '.env.production' : '.env',
@@ -347,22 +346,17 @@ const startWorker = async (workerId) => {
* @param {boolean=} required
* @return {Promise.}
*/
- const accountFromRequest = (req, required = true) => new Promise((resolve, reject) => {
+ const accountFromRequest = (req) => new Promise((resolve, reject) => {
const authorization = req.headers.authorization;
const location = url.parse(req.url, true);
const accessToken = location.query.access_token || req.headers['sec-websocket-protocol'];
if (!authorization && !accessToken) {
- if (required) {
- const err = new Error('Missing access token');
- err.status = 401;
+ const err = new Error('Missing access token');
+ err.status = 401;
- reject(err);
- return;
- } else {
- resolve();
- return;
- }
+ reject(err);
+ return;
}
const token = authorization ? authorization.replace(/^Bearer /, '') : accessToken;
@@ -466,7 +460,7 @@ const startWorker = async (workerId) => {
// variables. OAuth scope checks are moved to the point of subscription
// to a specific stream.
- accountFromRequest(info.req, alwaysRequireAuth).then(() => {
+ accountFromRequest(info.req).then(() => {
callback(true, undefined, undefined);
}).catch(err => {
log.error(info.req.requestId, err.toString());
@@ -540,7 +534,7 @@ const startWorker = async (workerId) => {
return;
}
- accountFromRequest(req, alwaysRequireAuth).then(() => checkScopes(req, channelNameFromPath(req))).then(() => {
+ accountFromRequest(req).then(() => checkScopes(req, channelNameFromPath(req))).then(() => {
subscribeHttpToSystemChannel(req, res);
}).then(() => {
next();
diff --git a/yarn.lock b/yarn.lock
index ddb5a7c116..e7c0db00a3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1201,10 +1201,10 @@
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==
-"@eslint/eslintrc@^1.4.1":
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e"
- integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==
+"@eslint/eslintrc@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.0.tgz#943309d8697c52fc82c076e90c1c74fbbe69dbff"
+ integrity sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==
dependencies:
ajv "^6.12.4"
debug "^4.3.2"
@@ -1216,6 +1216,11 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
+"@eslint/js@8.35.0":
+ version "8.35.0"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.35.0.tgz#b7569632b0b788a0ca0e438235154e45d42813a7"
+ integrity sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==
+
"@floating-ui/core@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.0.1.tgz#00e64d74e911602c8533957af0cce5af6b2e93c8"
@@ -1285,109 +1290,109 @@
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd"
integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==
-"@jest/console@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.3.tgz#1f25a99f7f860e4c46423b5b1038262466fadde1"
- integrity sha512-W/o/34+wQuXlgqlPYTansOSiBnuxrTv61dEVkA6HNmpcgHLUjfaUbdqt6oVvOzaawwo9IdW9QOtMgQ1ScSZC4A==
+"@jest/console@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.5.0.tgz#593a6c5c0d3f75689835f1b3b4688c4f8544cb57"
+ integrity sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==
dependencies:
- "@jest/types" "^29.4.3"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
chalk "^4.0.0"
- jest-message-util "^29.4.3"
- jest-util "^29.4.3"
+ jest-message-util "^29.5.0"
+ jest-util "^29.5.0"
slash "^3.0.0"
-"@jest/core@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.3.tgz#829dd65bffdb490de5b0f69e97de8e3b5eadd94b"
- integrity sha512-56QvBq60fS4SPZCuM7T+7scNrkGIe7Mr6PVIXUpu48ouvRaWOFqRPV91eifvFM0ay2HmfswXiGf97NGUN5KofQ==
+"@jest/core@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03"
+ integrity sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==
dependencies:
- "@jest/console" "^29.4.3"
- "@jest/reporters" "^29.4.3"
- "@jest/test-result" "^29.4.3"
- "@jest/transform" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/console" "^29.5.0"
+ "@jest/reporters" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
ci-info "^3.2.0"
exit "^0.1.2"
graceful-fs "^4.2.9"
- jest-changed-files "^29.4.3"
- jest-config "^29.4.3"
- jest-haste-map "^29.4.3"
- jest-message-util "^29.4.3"
+ jest-changed-files "^29.5.0"
+ jest-config "^29.5.0"
+ jest-haste-map "^29.5.0"
+ jest-message-util "^29.5.0"
jest-regex-util "^29.4.3"
- jest-resolve "^29.4.3"
- jest-resolve-dependencies "^29.4.3"
- jest-runner "^29.4.3"
- jest-runtime "^29.4.3"
- jest-snapshot "^29.4.3"
- jest-util "^29.4.3"
- jest-validate "^29.4.3"
- jest-watcher "^29.4.3"
+ jest-resolve "^29.5.0"
+ jest-resolve-dependencies "^29.5.0"
+ jest-runner "^29.5.0"
+ jest-runtime "^29.5.0"
+ jest-snapshot "^29.5.0"
+ jest-util "^29.5.0"
+ jest-validate "^29.5.0"
+ jest-watcher "^29.5.0"
micromatch "^4.0.4"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
slash "^3.0.0"
strip-ansi "^6.0.0"
-"@jest/environment@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.3.tgz#9fe2f3169c3b33815dc4bd3960a064a83eba6548"
- integrity sha512-dq5S6408IxIa+lr54zeqce+QgI+CJT4nmmA+1yzFgtcsGK8c/EyiUb9XQOgz3BMKrRDfKseeOaxj2eO8LlD3lA==
+"@jest/environment@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65"
+ integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==
dependencies:
- "@jest/fake-timers" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/fake-timers" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
- jest-mock "^29.4.3"
+ jest-mock "^29.5.0"
-"@jest/expect-utils@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.3.tgz#95ce4df62952f071bcd618225ac7c47eaa81431e"
- integrity sha512-/6JWbkxHOP8EoS8jeeTd9dTfc9Uawi+43oLKHfp6zzux3U2hqOOVnV3ai4RpDYHOccL6g+5nrxpoc8DmJxtXVQ==
+"@jest/expect-utils@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036"
+ integrity sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==
dependencies:
jest-get-type "^29.4.3"
-"@jest/expect@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.3.tgz#d31a28492e45a6bcd0f204a81f783fe717045c6e"
- integrity sha512-iktRU/YsxEtumI9zsPctYUk7ptpC+AVLLk1Ax3AsA4g1C+8OOnKDkIQBDHtD5hA/+VtgMd5AWI5gNlcAlt2vxQ==
+"@jest/expect@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba"
+ integrity sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==
dependencies:
- expect "^29.4.3"
- jest-snapshot "^29.4.3"
+ expect "^29.5.0"
+ jest-snapshot "^29.5.0"
-"@jest/fake-timers@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.3.tgz#31e982638c60fa657d310d4b9d24e023064027b0"
- integrity sha512-4Hote2MGcCTWSD2gwl0dwbCpBRHhE6olYEuTj8FMowdg3oQWNKr2YuxenPQYZ7+PfqPY1k98wKDU4Z+Hvd4Tiw==
+"@jest/fake-timers@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c"
+ integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==
dependencies:
- "@jest/types" "^29.4.3"
+ "@jest/types" "^29.5.0"
"@sinonjs/fake-timers" "^10.0.2"
"@types/node" "*"
- jest-message-util "^29.4.3"
- jest-mock "^29.4.3"
- jest-util "^29.4.3"
+ jest-message-util "^29.5.0"
+ jest-mock "^29.5.0"
+ jest-util "^29.5.0"
-"@jest/globals@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.3.tgz#63a2c4200d11bc6d46f12bbe25b07f771fce9279"
- integrity sha512-8BQ/5EzfOLG7AaMcDh7yFCbfRLtsc+09E1RQmRBI4D6QQk4m6NSK/MXo+3bJrBN0yU8A2/VIcqhvsOLFmziioA==
+"@jest/globals@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298"
+ integrity sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==
dependencies:
- "@jest/environment" "^29.4.3"
- "@jest/expect" "^29.4.3"
- "@jest/types" "^29.4.3"
- jest-mock "^29.4.3"
+ "@jest/environment" "^29.5.0"
+ "@jest/expect" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ jest-mock "^29.5.0"
-"@jest/reporters@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.3.tgz#0a68a0c0f20554760cc2e5443177a0018969e353"
- integrity sha512-sr2I7BmOjJhyqj9ANC6CTLsL4emMoka7HkQpcoMRlhCbQJjz2zsRzw0BDPiPyEFDXAbxKgGFYuQZiSJ1Y6YoTg==
+"@jest/reporters@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b"
+ integrity sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==
dependencies:
"@bcoe/v8-coverage" "^0.2.3"
- "@jest/console" "^29.4.3"
- "@jest/test-result" "^29.4.3"
- "@jest/transform" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/console" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@jridgewell/trace-mapping" "^0.3.15"
"@types/node" "*"
chalk "^4.0.0"
@@ -1400,9 +1405,9 @@
istanbul-lib-report "^3.0.0"
istanbul-lib-source-maps "^4.0.0"
istanbul-reports "^3.1.3"
- jest-message-util "^29.4.3"
- jest-util "^29.4.3"
- jest-worker "^29.4.3"
+ jest-message-util "^29.5.0"
+ jest-util "^29.5.0"
+ jest-worker "^29.5.0"
slash "^3.0.0"
string-length "^4.0.1"
strip-ansi "^6.0.0"
@@ -1424,42 +1429,42 @@
callsites "^3.0.0"
graceful-fs "^4.2.9"
-"@jest/test-result@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.3.tgz#e13d973d16c8c7cc0c597082d5f3b9e7f796ccb8"
- integrity sha512-Oi4u9NfBolMq9MASPwuWTlC5WvmNRwI4S8YrQg5R5Gi47DYlBe3sh7ILTqi/LGrK1XUE4XY9KZcQJTH1WJCLLA==
+"@jest/test-result@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.5.0.tgz#7c856a6ca84f45cc36926a4e9c6b57f1973f1408"
+ integrity sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==
dependencies:
- "@jest/console" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/console" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/istanbul-lib-coverage" "^2.0.0"
collect-v8-coverage "^1.0.0"
-"@jest/test-sequencer@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.3.tgz#0862e876a22993385a0f3e7ea1cc126f208a2898"
- integrity sha512-yi/t2nES4GB4G0mjLc0RInCq/cNr9dNwJxcGg8sslajua5Kb4kmozAc+qPLzplhBgfw1vLItbjyHzUN92UXicw==
+"@jest/test-sequencer@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz#34d7d82d3081abd523dbddc038a3ddcb9f6d3cc4"
+ integrity sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==
dependencies:
- "@jest/test-result" "^29.4.3"
+ "@jest/test-result" "^29.5.0"
graceful-fs "^4.2.9"
- jest-haste-map "^29.4.3"
+ jest-haste-map "^29.5.0"
slash "^3.0.0"
-"@jest/transform@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.3.tgz#f7d17eac9cb5bb2e1222ea199c7c7e0835e0c037"
- integrity sha512-8u0+fBGWolDshsFgPQJESkDa72da/EVwvL+II0trN2DR66wMwiQ9/CihaGfHdlLGFzbBZwMykFtxuwFdZqlKwg==
+"@jest/transform@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9"
+ integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==
dependencies:
"@babel/core" "^7.11.6"
- "@jest/types" "^29.4.3"
+ "@jest/types" "^29.5.0"
"@jridgewell/trace-mapping" "^0.3.15"
babel-plugin-istanbul "^6.1.1"
chalk "^4.0.0"
convert-source-map "^2.0.0"
fast-json-stable-stringify "^2.1.0"
graceful-fs "^4.2.9"
- jest-haste-map "^29.4.3"
+ jest-haste-map "^29.5.0"
jest-regex-util "^29.4.3"
- jest-util "^29.4.3"
+ jest-util "^29.5.0"
micromatch "^4.0.4"
pirates "^4.0.4"
slash "^3.0.0"
@@ -1486,10 +1491,10 @@
"@types/yargs" "^16.0.0"
chalk "^4.0.0"
-"@jest/types@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.3.tgz#9069145f4ef09adf10cec1b2901b2d390031431f"
- integrity sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA==
+"@jest/types@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593"
+ integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==
dependencies:
"@jest/schemas" "^29.4.3"
"@types/istanbul-lib-coverage" "^2.0.0"
@@ -1757,6 +1762,11 @@
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
+"@trysound/sax@0.2.0":
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
+ integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
+
"@types/aria-query@^4.2.0":
version "4.2.0"
resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.0.tgz#14264692a9d6e2fa4db3df5e56e94b5e25647ac0"
@@ -1923,11 +1933,6 @@
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
-"@types/q@^1.5.1":
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8"
- integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==
-
"@types/react-dom@<18.0.0":
version "17.0.15"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.15.tgz#f2c8efde11521a4b7991e076cb9c70ba3bb0d156"
@@ -2243,7 +2248,7 @@ acorn@^6.4.1:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
-acorn@^8.0.4, acorn@^8.1.0, acorn@^8.5.0, acorn@^8.8.0, acorn@^8.8.1:
+acorn@^8.0.4, acorn@^8.1.0, acorn@^8.5.0, acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8.2:
version "8.8.2"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
@@ -2293,11 +2298,6 @@ ajv@^8.0.1, ajv@^8.6.0:
require-from-string "^2.0.2"
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#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
- integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
-
ansi-colors@^3.0.0:
version "3.2.4"
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
@@ -2580,18 +2580,17 @@ atrament@0.2.4:
resolved "https://registry.yarnpkg.com/atrament/-/atrament-0.2.4.tgz#6f78196edfcd194e568b7c0b9c88201ec371ac66"
integrity sha512-hSA9VwW6COMwvRhSEO4uZweZ91YGOdHqwvslNyrJZG+8mzc4qx/qMsDZBuAeXFeWZO/QKtRjIXguOUy1aNMl3A==
-autoprefixer@^9.8.8:
- version "9.8.8"
- resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a"
- integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==
+autoprefixer@^10.4.13:
+ version "10.4.13"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8"
+ integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==
dependencies:
- browserslist "^4.12.0"
- caniuse-lite "^1.0.30001109"
+ browserslist "^4.21.4"
+ caniuse-lite "^1.0.30001426"
+ fraction.js "^4.2.0"
normalize-range "^0.1.2"
- num2fraction "^1.2.2"
- picocolors "^0.2.1"
- postcss "^7.0.32"
- postcss-value-parser "^4.1.0"
+ picocolors "^1.0.0"
+ postcss-value-parser "^4.2.0"
available-typed-arrays@^1.0.5:
version "1.0.5"
@@ -2603,10 +2602,10 @@ axe-core@^4.6.2:
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece"
integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==
-axios@^1.3.3:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.3.tgz#e7011384ba839b885007c9c9fae1ff23dceb295b"
- integrity sha512-eYq77dYIFS77AQlhzEL937yUBSepBfPIe8FcgEDN35vMNZKMrs81pgnyrQpwfy4NF4b4XWX1Zgx7yX+25w8QJA==
+axios@^1.3.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.4.tgz#f5760cefd9cfb51fd2481acf88c05f67c4523024"
+ integrity sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==
dependencies:
follow-redirects "^1.15.0"
form-data "^4.0.0"
@@ -2619,15 +2618,15 @@ axobject-query@^3.1.1:
dependencies:
deep-equal "^2.0.5"
-babel-jest@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.3.tgz#478b84d430972b277ad67dd631be94abea676792"
- integrity sha512-o45Wyn32svZE+LnMVWv/Z4x0SwtLbh4FyGcYtR20kIWd+rdrDZ9Fzq8Ml3MYLD+mZvEdzCjZsCnYZ2jpJyQ+Nw==
+babel-jest@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5"
+ integrity sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==
dependencies:
- "@jest/transform" "^29.4.3"
+ "@jest/transform" "^29.5.0"
"@types/babel__core" "^7.1.14"
babel-plugin-istanbul "^6.1.1"
- babel-preset-jest "^29.4.3"
+ babel-preset-jest "^29.5.0"
chalk "^4.0.0"
graceful-fs "^4.2.9"
slash "^3.0.0"
@@ -2653,10 +2652,10 @@ babel-plugin-istanbul@^6.1.1:
istanbul-lib-instrument "^5.0.4"
test-exclude "^6.0.0"
-babel-plugin-jest-hoist@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.3.tgz#ad1dfb5d31940957e00410ef7d9b2aa94b216101"
- integrity sha512-mB6q2q3oahKphy5V7CpnNqZOCkxxZ9aokf1eh82Dy3jQmg4xvM1tGrh5y6BQUJh4a3Pj9+eLfwvAZ7VNKg7H8Q==
+babel-plugin-jest-hoist@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a"
+ integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==
dependencies:
"@babel/template" "^7.3.3"
"@babel/types" "^7.3.3"
@@ -2762,12 +2761,12 @@ babel-preset-current-node-syntax@^1.0.0:
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
"@babel/plugin-syntax-top-level-await" "^7.8.3"
-babel-preset-jest@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.3.tgz#bb926b66ae253b69c6e3ef87511b8bb5c53c5b52"
- integrity sha512-gWx6COtSuma6n9bw+8/F+2PCXrIgxV/D1TJFnp6OyBK2cxPWg0K9p/sriNYeifKjpUkMViWQ09DSWtzJQRETsw==
+babel-preset-jest@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2"
+ integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==
dependencies:
- babel-plugin-jest-hoist "^29.4.3"
+ babel-plugin-jest-hoist "^29.5.0"
babel-preset-current-node-syntax "^1.0.0"
balanced-match@^1.0.0:
@@ -2880,7 +2879,7 @@ bonjour@^3.5.0:
multicast-dns "^6.0.1"
multicast-dns-service-types "^1.1.0"
-boolbase@^1.0.0, boolbase@~1.0.0:
+boolbase@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
@@ -2989,7 +2988,7 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
-browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.21.3, browserslist@^4.21.4:
+browserslist@^4.0.0, browserslist@^4.21.3, browserslist@^4.21.4:
version "4.21.4"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
@@ -3137,25 +3136,6 @@ call-bind@^1.0.0, call-bind@^1.0.2:
function-bind "^1.1.1"
get-intrinsic "^1.0.2"
-caller-callsite@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
- 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#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
- 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#06eb84f00eea413da86affefacbffb36093b3c50"
- integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
-
callsites@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
@@ -3190,12 +3170,17 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001400:
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400:
version "1.0.30001414"
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz"
integrity sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==
-chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2:
+caniuse-lite@^1.0.30001426:
+ version "1.0.30001462"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001462.tgz#b2e801e37536d453731286857c8520d3dcee15fe"
+ integrity sha512-PDd20WuOBPiasZ7KbFnmQRyuLE7cFXW2PVd7dmALzbkUXEP46upAuCDm9eY9vho8fgNMGmbAX92QBZHzcnWIqw==
+
+chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -3351,15 +3336,6 @@ co@^4.6.0:
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
-coa@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
- integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
- dependencies:
- "@types/q" "^1.5.1"
- chalk "^2.4.1"
- q "^1.1.2"
-
cocoon-js-vanilla@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/cocoon-js-vanilla/-/cocoon-js-vanilla-1.3.0.tgz#1e53663f5d314e5e9b315b63eaf8ae701df113c0"
@@ -3383,7 +3359,7 @@ color-blend@^4.0.0:
resolved "https://registry.yarnpkg.com/color-blend/-/color-blend-4.0.0.tgz#e9950e9fa5d6e552ff8bb107c39f7e83a0c1a3bb"
integrity sha512-fYODTHhI/NG+B5GnzvuL3kiFrK/UnkUezWFTgEPBTY5V+kpyfAn95Vn9sJeeCX6omrCOdxnqCL3CvH+6sXtIbw==
-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#bb71850690e1f136567de629d2d5471deda4c1e8"
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
@@ -3402,33 +3378,17 @@ color-name@1.1.3:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
-color-name@^1.0.0, color-name@~1.1.4:
+color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-color-string@^1.5.2:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312"
- integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==
- dependencies:
- color-name "^1.0.0"
- simple-swizzle "^0.2.2"
-
color-support@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
-color@^3.0.0:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10"
- integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==
- dependencies:
- color-convert "^1.9.1"
- color-string "^1.5.2"
-
-colord@^2.9.3:
+colord@^2.9.1, colord@^2.9.3:
version "2.9.3"
resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43"
integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==
@@ -3604,16 +3564,6 @@ core-util-is@~1.0.0:
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
-cosmiconfig@^5.0.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
- 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#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
@@ -3726,18 +3676,10 @@ crypto-random-string@^2.0.0:
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
-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#808adc2e79cf84738069b646cb20ec27beb629e0"
- 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#c198940f63a76d7e36c1e71018b001721054cb22"
- integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==
- dependencies:
- postcss "^7.0.1"
- timsort "^0.3.0"
+css-declaration-sorter@^6.3.1:
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz#be5e1d71b7a992433fb1c542c7a1b835e45682ec"
+ integrity sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==
css-functions-list@^3.1.0:
version "3.1.0"
@@ -3760,35 +3702,23 @@ css-loader@^5.2.7:
schema-utils "^3.0.0"
semver "^7.3.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#3b2ff4972cc362ab88561507a95408a1432135d7"
- 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#6a34653356635934a81baca68d0255432105dbef"
- integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==
+css-select@^4.1.3:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b"
+ integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==
dependencies:
boolbase "^1.0.0"
- css-what "^3.2.1"
- domutils "^1.7.0"
- nth-check "^1.0.2"
+ css-what "^6.0.1"
+ domhandler "^4.3.1"
+ domutils "^2.8.0"
+ nth-check "^2.0.1"
-css-tree@1.0.0-alpha.37:
- version "1.0.0-alpha.37"
- resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22"
- integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==
+css-tree@^1.1.2, css-tree@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
+ integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
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#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb"
- integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==
- dependencies:
- mdn-data "2.0.6"
+ mdn-data "2.0.14"
source-map "^0.6.1"
css-tree@^2.3.1:
@@ -3799,10 +3729,10 @@ css-tree@^2.3.1:
mdn-data "2.0.30"
source-map-js "^1.0.1"
-css-what@^3.2.1:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.3.0.tgz#10fec696a9ece2e591ac772d759aacabac38cd39"
- integrity sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==
+css-what@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
+ integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
css.escape@^1.5.1:
version "1.5.1"
@@ -3814,80 +3744,61 @@ cssesc@^3.0.0:
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
-cssnano-preset-default@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff"
- integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==
+cssnano-preset-default@^5.2.14:
+ version "5.2.14"
+ resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz#309def4f7b7e16d71ab2438052093330d9ab45d8"
+ integrity sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==
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.3"
- postcss-unique-selectors "^4.0.1"
+ css-declaration-sorter "^6.3.1"
+ cssnano-utils "^3.1.0"
+ postcss-calc "^8.2.3"
+ postcss-colormin "^5.3.1"
+ postcss-convert-values "^5.1.3"
+ postcss-discard-comments "^5.1.2"
+ postcss-discard-duplicates "^5.1.0"
+ postcss-discard-empty "^5.1.1"
+ postcss-discard-overridden "^5.1.0"
+ postcss-merge-longhand "^5.1.7"
+ postcss-merge-rules "^5.1.4"
+ postcss-minify-font-values "^5.1.0"
+ postcss-minify-gradients "^5.1.1"
+ postcss-minify-params "^5.1.4"
+ postcss-minify-selectors "^5.2.1"
+ postcss-normalize-charset "^5.1.0"
+ postcss-normalize-display-values "^5.1.0"
+ postcss-normalize-positions "^5.1.1"
+ postcss-normalize-repeat-style "^5.1.1"
+ postcss-normalize-string "^5.1.0"
+ postcss-normalize-timing-functions "^5.1.0"
+ postcss-normalize-unicode "^5.1.1"
+ postcss-normalize-url "^5.1.0"
+ postcss-normalize-whitespace "^5.1.1"
+ postcss-ordered-values "^5.1.3"
+ postcss-reduce-initial "^5.1.2"
+ postcss-reduce-transforms "^5.1.0"
+ postcss-svgo "^5.1.0"
+ postcss-unique-selectors "^5.1.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#ed3a08299f21d75741b20f3b81f194ed49cc150f"
- integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=
+cssnano-utils@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861"
+ integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==
-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#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
- 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#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
- integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==
+cssnano@^5.1.15:
+ version "5.1.15"
+ resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf"
+ integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==
dependencies:
- postcss "^7.0.0"
+ cssnano-preset-default "^5.2.14"
+ lilconfig "^2.0.3"
+ yaml "^1.10.2"
-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#574082fb2859d2db433855835d9a8456ea18bbf3"
- integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==
-
-cssnano@^4.1.11:
- version "4.1.11"
- resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99"
- integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==
+csso@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
+ integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
dependencies:
- cosmiconfig "^5.0.0"
- cssnano-preset-default "^4.0.8"
- 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#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903"
- integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==
- dependencies:
- css-tree "1.0.0-alpha.39"
+ css-tree "^1.1.2"
cssom@^0.5.0:
version "0.5.0"
@@ -3906,6 +3817,13 @@ cssstyle@^2.3.0:
dependencies:
cssom "~0.3.6"
+cssstyle@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-3.0.0.tgz#17ca9c87d26eac764bb8cfd00583cff21ce0277a"
+ integrity sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==
+ dependencies:
+ rrweb-cssom "^0.6.0"
+
csstype@^2.6.7:
version "2.6.13"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f"
@@ -3943,6 +3861,15 @@ data-urls@^3.0.2:
whatwg-mimetype "^3.0.0"
whatwg-url "^11.0.0"
+data-urls@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-4.0.0.tgz#333a454eca6f9a5b7b0f1013ff89074c3f522dd4"
+ integrity sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==
+ dependencies:
+ abab "^2.0.6"
+ whatwg-mimetype "^3.0.0"
+ whatwg-url "^12.0.0"
+
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#5d128515df134ff327e90a4c93f4e077a536341f"
@@ -3977,10 +3904,10 @@ decamelize@^1.1.0, decamelize@^1.2.0:
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
-decimal.js@^10.4.2:
- version "10.4.2"
- resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.2.tgz#0341651d1d997d86065a2ce3a441fbd0d8e8b98e"
- integrity sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==
+decimal.js@^10.4.2, decimal.js@^10.4.3:
+ version "10.4.3"
+ resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23"
+ integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==
decode-uri-component@^0.2.0:
version "0.2.2"
@@ -4241,12 +4168,13 @@ dom-helpers@^5.2.0:
"@babel/runtime" "^7.8.7"
csstype "^3.0.2"
-dom-serializer@0:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
- integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
+dom-serializer@^1.0.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30"
+ integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==
dependencies:
domelementtype "^2.0.1"
+ domhandler "^4.2.0"
entities "^2.0.0"
domain-browser@^1.1.1:
@@ -4254,16 +4182,16 @@ domain-browser@^1.1.1:
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
-domelementtype@1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
- 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#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d"
integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==
+domelementtype@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
+ integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
+
domexception@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673"
@@ -4271,20 +4199,21 @@ domexception@^4.0.0:
dependencies:
webidl-conversions "^7.0.0"
-domutils@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
- integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
+domhandler@^4.2.0, domhandler@^4.3.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
+ integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
dependencies:
- dom-serializer "0"
- domelementtype "1"
+ domelementtype "^2.2.0"
-dot-prop@^5.2.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
- integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
+domutils@^2.8.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
+ integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
dependencies:
- is-obj "^2.0.0"
+ dom-serializer "^1.0.1"
+ domelementtype "^2.2.0"
+ domhandler "^4.2.0"
dotenv@^16.0.3:
version "16.0.3"
@@ -4422,7 +4351,7 @@ error-stack-parser@^2.0.6:
dependencies:
stackframe "^1.1.1"
-es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.4:
+es-abstract@^1.18.0-next.1, es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.4:
version "1.20.4"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861"
integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==
@@ -4672,12 +4601,13 @@ eslint-visitor-keys@^3.3.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
-eslint@^8.33.0:
- version "8.33.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.33.0.tgz#02f110f32998cb598c6461f24f4d306e41ca33d7"
- integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==
+eslint@^8.35.0:
+ version "8.35.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.35.0.tgz#fffad7c7e326bae606f0e8f436a6158566d42323"
+ integrity sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==
dependencies:
- "@eslint/eslintrc" "^1.4.1"
+ "@eslint/eslintrc" "^2.0.0"
+ "@eslint/js" "8.35.0"
"@humanwhocodes/config-array" "^0.11.8"
"@humanwhocodes/module-importer" "^1.0.1"
"@nodelib/fs.walk" "^1.2.8"
@@ -4691,7 +4621,7 @@ eslint@^8.33.0:
eslint-utils "^3.0.0"
eslint-visitor-keys "^3.3.0"
espree "^9.4.0"
- esquery "^1.4.0"
+ esquery "^1.4.2"
esutils "^2.0.2"
fast-deep-equal "^3.1.3"
file-entry-cache "^6.0.1"
@@ -4731,10 +4661,10 @@ esprima@^4.0.0, esprima@^4.0.1:
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-esquery@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
- integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
+esquery@^1.4.2:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
+ integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
dependencies:
estraverse "^5.1.0"
@@ -4858,16 +4788,16 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
dependencies:
homedir-polyfill "^1.0.1"
-expect@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.3.tgz#5e47757316df744fe3b8926c3ae8a3ebdafff7fe"
- integrity sha512-uC05+Q7eXECFpgDrHdXA4k2rpMyStAYPItEDLyQDo5Ta7fVkJnNA/4zh/OIVkVVNZ1oOK1PipQoyNjuZ6sz6Dg==
+expect@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7"
+ integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==
dependencies:
- "@jest/expect-utils" "^29.4.3"
+ "@jest/expect-utils" "^29.5.0"
jest-get-type "^29.4.3"
- jest-matcher-utils "^29.4.3"
- jest-message-util "^29.4.3"
- jest-util "^29.4.3"
+ jest-matcher-utils "^29.5.0"
+ jest-message-util "^29.5.0"
+ jest-util "^29.5.0"
express@^4.17.1, express@^4.18.2:
version "4.18.2"
@@ -5179,6 +5109,11 @@ forwarded@0.2.0:
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
+fraction.js@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
+ integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
+
fragment-cache@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
@@ -5528,7 +5463,7 @@ has-property-descriptors@^1.0.0:
dependencies:
get-intrinsic "^1.1.1"
-has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3:
+has-symbols@^1.0.2, has-symbols@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
@@ -5576,7 +5511,7 @@ 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#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
@@ -5600,11 +5535,6 @@ hash.js@^1.0.0, hash.js@^1.0.3:
inherits "^2.0.3"
minimalistic-assert "^1.0.1"
-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#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
- integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
-
history@^4.10.1, history@^4.7.2:
version "4.10.1"
resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3"
@@ -5667,16 +5597,6 @@ hpack.js@^2.1.6:
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#d49330c789ed819e276a4c0d272dffa30b18fe6e"
- 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#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
- integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg=
-
html-encoding-sniffer@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9"
@@ -5830,21 +5750,6 @@ immutable@^4.0.0, immutable@^4.2.4:
resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.4.tgz#83260d50889526b4b531a5e293709a77f7c55a2a"
integrity sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==
-import-cwd@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
- 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#d81355c15612d386c61f9ddd3922d4304822a546"
- integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
- dependencies:
- caller-path "^2.0.0"
- resolve-from "^3.0.0"
-
import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1:
version "3.3.0"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
@@ -5853,13 +5758,6 @@ 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#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
- integrity sha1-M1238qev/VOqpHHUuAId7ja387E=
- dependencies:
- resolve-from "^3.0.0"
-
import-lazy@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153"
@@ -5901,11 +5799,6 @@ indent-string@^4.0.0:
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
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#f30f716c8e2bd346c7b67d3df3915566a7c05607"
- 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#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
@@ -6038,11 +5931,6 @@ ipaddr.js@1.9.1, ipaddr.js@^1.9.0:
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
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#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
- 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#96c6a22b6a23929b11ea0afb1836c36ad4a5d698"
@@ -6089,11 +5977,6 @@ is-arrayish@^0.2.1:
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
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#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
- 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"
@@ -6125,18 +6008,6 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
-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#cfff471aee4dd5c9e158598fbe12967b5cdad345"
- 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.11.0, is-core-module@^2.5.0, is-core-module@^2.9.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
@@ -6188,11 +6059,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#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
- integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
-
is-electron@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.0.tgz#8943084f09e8b731b3a7a0298a7b5d56f6b7eef0"
@@ -6289,11 +6155,6 @@ is-obj@^1.0.1:
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
-is-obj@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
- integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
-
is-path-cwd@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
@@ -6353,11 +6214,6 @@ is-regexp@^1.0.0:
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
-is-resolvable@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
- integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
-
is-set@^2.0.1, is-set@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec"
@@ -6524,82 +6380,83 @@ jake@^10.8.5:
filelist "^1.0.1"
minimatch "^3.0.4"
-jest-changed-files@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.3.tgz#7961fe32536b9b6d5c28dfa0abcfab31abcf50a7"
- integrity sha512-Vn5cLuWuwmi2GNNbokPOEcvrXGSGrqVnPEZV7rC6P7ck07Dyw9RFnvWglnupSh+hGys0ajGtw/bc2ZgweljQoQ==
+jest-changed-files@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e"
+ integrity sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==
dependencies:
execa "^5.0.0"
p-limit "^3.1.0"
-jest-circus@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.3.tgz#fff7be1cf5f06224dd36a857d52a9efeb005ba04"
- integrity sha512-Vw/bVvcexmdJ7MLmgdT3ZjkJ3LKu8IlpefYokxiqoZy6OCQ2VAm6Vk3t/qHiAGUXbdbJKJWnc8gH3ypTbB/OBw==
+jest-circus@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.5.0.tgz#b5926989449e75bff0d59944bae083c9d7fb7317"
+ integrity sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==
dependencies:
- "@jest/environment" "^29.4.3"
- "@jest/expect" "^29.4.3"
- "@jest/test-result" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/environment" "^29.5.0"
+ "@jest/expect" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
chalk "^4.0.0"
co "^4.6.0"
dedent "^0.7.0"
is-generator-fn "^2.0.0"
- jest-each "^29.4.3"
- jest-matcher-utils "^29.4.3"
- jest-message-util "^29.4.3"
- jest-runtime "^29.4.3"
- jest-snapshot "^29.4.3"
- jest-util "^29.4.3"
+ jest-each "^29.5.0"
+ jest-matcher-utils "^29.5.0"
+ jest-message-util "^29.5.0"
+ jest-runtime "^29.5.0"
+ jest-snapshot "^29.5.0"
+ jest-util "^29.5.0"
p-limit "^3.1.0"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
+ pure-rand "^6.0.0"
slash "^3.0.0"
stack-utils "^2.0.3"
-jest-cli@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.3.tgz#fe31fdd0c90c765f392b8b7c97e4845071cd2163"
- integrity sha512-PiiAPuFNfWWolCE6t3ZrDXQc6OsAuM3/tVW0u27UWc1KE+n/HSn5dSE6B2juqN7WP+PP0jAcnKtGmI4u8GMYCg==
+jest-cli@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67"
+ integrity sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==
dependencies:
- "@jest/core" "^29.4.3"
- "@jest/test-result" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/core" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/types" "^29.5.0"
chalk "^4.0.0"
exit "^0.1.2"
graceful-fs "^4.2.9"
import-local "^3.0.2"
- jest-config "^29.4.3"
- jest-util "^29.4.3"
- jest-validate "^29.4.3"
+ jest-config "^29.5.0"
+ jest-util "^29.5.0"
+ jest-validate "^29.5.0"
prompts "^2.0.1"
yargs "^17.3.1"
-jest-config@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.3.tgz#fca9cdfe6298ae6d04beef1624064d455347c978"
- integrity sha512-eCIpqhGnIjdUCXGtLhz4gdDoxKSWXKjzNcc5r+0S1GKOp2fwOipx5mRcwa9GB/ArsxJ1jlj2lmlD9bZAsBxaWQ==
+jest-config@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.5.0.tgz#3cc972faec8c8aaea9ae158c694541b79f3748da"
+ integrity sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==
dependencies:
"@babel/core" "^7.11.6"
- "@jest/test-sequencer" "^29.4.3"
- "@jest/types" "^29.4.3"
- babel-jest "^29.4.3"
+ "@jest/test-sequencer" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ babel-jest "^29.5.0"
chalk "^4.0.0"
ci-info "^3.2.0"
deepmerge "^4.2.2"
glob "^7.1.3"
graceful-fs "^4.2.9"
- jest-circus "^29.4.3"
- jest-environment-node "^29.4.3"
+ jest-circus "^29.5.0"
+ jest-environment-node "^29.5.0"
jest-get-type "^29.4.3"
jest-regex-util "^29.4.3"
- jest-resolve "^29.4.3"
- jest-runner "^29.4.3"
- jest-util "^29.4.3"
- jest-validate "^29.4.3"
+ jest-resolve "^29.5.0"
+ jest-runner "^29.5.0"
+ jest-util "^29.5.0"
+ jest-validate "^29.5.0"
micromatch "^4.0.4"
parse-json "^5.2.0"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
slash "^3.0.0"
strip-json-comments "^3.1.1"
@@ -6613,15 +6470,15 @@ jest-diff@^25.2.1:
jest-get-type "^25.2.6"
pretty-format "^25.5.0"
-jest-diff@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.3.tgz#42f4eb34d0bf8c0fb08b0501069b87e8e84df347"
- integrity sha512-YB+ocenx7FZ3T5O9lMVMeLYV4265socJKtkwgk/6YUz/VsEzYDkiMuMhWzZmxm3wDRQvayJu/PjkjjSkjoHsCA==
+jest-diff@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63"
+ integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==
dependencies:
chalk "^4.0.0"
diff-sequences "^29.4.3"
jest-get-type "^29.4.3"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
jest-docblock@^29.4.3:
version "29.4.3"
@@ -6630,42 +6487,42 @@ jest-docblock@^29.4.3:
dependencies:
detect-newline "^3.0.0"
-jest-each@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.3.tgz#a434c199a2f6151c5e3dc80b2d54586bdaa72819"
- integrity sha512-1ElHNAnKcbJb/b+L+7j0/w7bDvljw4gTv1wL9fYOczeJrbTbkMGQ5iQPFJ3eFQH19VPTx1IyfePdqSpePKss7Q==
+jest-each@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.5.0.tgz#fc6e7014f83eac68e22b7195598de8554c2e5c06"
+ integrity sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==
dependencies:
- "@jest/types" "^29.4.3"
+ "@jest/types" "^29.5.0"
chalk "^4.0.0"
jest-get-type "^29.4.3"
- jest-util "^29.4.3"
- pretty-format "^29.4.3"
+ jest-util "^29.5.0"
+ pretty-format "^29.5.0"
-jest-environment-jsdom@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.4.3.tgz#bd8ed3808e6d3f616403fbaf8354f77019613d90"
- integrity sha512-rFjf8JXrw3OjUzzmSE5l0XjMj0/MSVEUMCSXBGPDkfwb1T03HZI7iJSL0cGctZApPSyJxbjyKDVxkZuyhHkuTw==
+jest-environment-jsdom@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.5.0.tgz#cfe86ebaf1453f3297b5ff3470fbe94739c960cb"
+ integrity sha512-/KG8yEK4aN8ak56yFVdqFDzKNHgF4BAymCx2LbPNPsUshUlfAl0eX402Xm1pt+eoG9SLZEUVifqXtX8SK74KCw==
dependencies:
- "@jest/environment" "^29.4.3"
- "@jest/fake-timers" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/environment" "^29.5.0"
+ "@jest/fake-timers" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/jsdom" "^20.0.0"
"@types/node" "*"
- jest-mock "^29.4.3"
- jest-util "^29.4.3"
+ jest-mock "^29.5.0"
+ jest-util "^29.5.0"
jsdom "^20.0.0"
-jest-environment-node@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.3.tgz#579c4132af478befc1889ddc43c2413a9cdbe014"
- integrity sha512-gAiEnSKF104fsGDXNkwk49jD/0N0Bqu2K9+aMQXA6avzsA9H3Fiv1PW2D+gzbOSR705bWd2wJZRFEFpV0tXISg==
+jest-environment-node@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967"
+ integrity sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==
dependencies:
- "@jest/environment" "^29.4.3"
- "@jest/fake-timers" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/environment" "^29.5.0"
+ "@jest/fake-timers" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
- jest-mock "^29.4.3"
- jest-util "^29.4.3"
+ jest-mock "^29.5.0"
+ jest-util "^29.5.0"
jest-get-type@^25.2.6:
version "25.2.6"
@@ -6677,66 +6534,66 @@ jest-get-type@^29.4.3:
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5"
integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==
-jest-haste-map@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.3.tgz#085a44283269e7ace0645c63a57af0d2af6942e2"
- integrity sha512-eZIgAS8tvm5IZMtKlR8Y+feEOMfo2pSQkmNbufdbMzMSn9nitgGxF1waM/+LbryO3OkMcKS98SUb+j/cQxp/vQ==
+jest-haste-map@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de"
+ integrity sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==
dependencies:
- "@jest/types" "^29.4.3"
+ "@jest/types" "^29.5.0"
"@types/graceful-fs" "^4.1.3"
"@types/node" "*"
anymatch "^3.0.3"
fb-watchman "^2.0.0"
graceful-fs "^4.2.9"
jest-regex-util "^29.4.3"
- jest-util "^29.4.3"
- jest-worker "^29.4.3"
+ jest-util "^29.5.0"
+ jest-worker "^29.5.0"
micromatch "^4.0.4"
walker "^1.0.8"
optionalDependencies:
fsevents "^2.3.2"
-jest-leak-detector@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.3.tgz#2b35191d6b35aa0256e63a9b79b0f949249cf23a"
- integrity sha512-9yw4VC1v2NspMMeV3daQ1yXPNxMgCzwq9BocCwYrRgXe4uaEJPAN0ZK37nFBhcy3cUwEVstFecFLaTHpF7NiGA==
+jest-leak-detector@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz#cf4bdea9615c72bac4a3a7ba7e7930f9c0610c8c"
+ integrity sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==
dependencies:
jest-get-type "^29.4.3"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
-jest-matcher-utils@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.3.tgz#ea68ebc0568aebea4c4213b99f169ff786df96a0"
- integrity sha512-TTciiXEONycZ03h6R6pYiZlSkvYgT0l8aa49z/DLSGYjex4orMUcafuLXYyyEDWB1RKglq00jzwY00Ei7yFNVg==
+jest-matcher-utils@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5"
+ integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==
dependencies:
chalk "^4.0.0"
- jest-diff "^29.4.3"
+ jest-diff "^29.5.0"
jest-get-type "^29.4.3"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
-jest-message-util@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.3.tgz#65b5280c0fdc9419503b49d4f48d4999d481cb5b"
- integrity sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw==
+jest-message-util@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e"
+ integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==
dependencies:
"@babel/code-frame" "^7.12.13"
- "@jest/types" "^29.4.3"
+ "@jest/types" "^29.5.0"
"@types/stack-utils" "^2.0.0"
chalk "^4.0.0"
graceful-fs "^4.2.9"
micromatch "^4.0.4"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
slash "^3.0.0"
stack-utils "^2.0.3"
-jest-mock@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.3.tgz#23d84a20a74cdfff0510fdbeefb841ed57b0fe7e"
- integrity sha512-LjFgMg+xed9BdkPMyIJh+r3KeHt1klXPJYBULXVVAkbTaaKjPX1o1uVCAZADMEp/kOxGTwy/Ot8XbvgItOrHEg==
+jest-mock@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed"
+ integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==
dependencies:
- "@jest/types" "^29.4.3"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
- jest-util "^29.4.3"
+ jest-util "^29.5.0"
jest-pnp-resolver@^1.2.2:
version "1.2.2"
@@ -6748,88 +6605,88 @@ jest-regex-util@^29.4.3:
resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8"
integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==
-jest-resolve-dependencies@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.3.tgz#9ad7f23839a6d88cef91416bda9393a6e9fd1da5"
- integrity sha512-uvKMZAQ3nmXLH7O8WAOhS5l0iWyT3WmnJBdmIHiV5tBbdaDZ1wqtNX04FONGoaFvSOSHBJxnwAVnSn1WHdGVaw==
+jest-resolve-dependencies@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz#f0ea29955996f49788bf70996052aa98e7befee4"
+ integrity sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==
dependencies:
jest-regex-util "^29.4.3"
- jest-snapshot "^29.4.3"
+ jest-snapshot "^29.5.0"
-jest-resolve@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.3.tgz#3c5b5c984fa8a763edf9b3639700e1c7900538e2"
- integrity sha512-GPokE1tzguRyT7dkxBim4wSx6E45S3bOQ7ZdKEG+Qj0Oac9+6AwJPCk0TZh5Vu0xzeX4afpb+eDmgbmZFFwpOw==
+jest-resolve@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.5.0.tgz#b053cc95ad1d5f6327f0ac8aae9f98795475ecdc"
+ integrity sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==
dependencies:
chalk "^4.0.0"
graceful-fs "^4.2.9"
- jest-haste-map "^29.4.3"
+ jest-haste-map "^29.5.0"
jest-pnp-resolver "^1.2.2"
- jest-util "^29.4.3"
- jest-validate "^29.4.3"
+ jest-util "^29.5.0"
+ jest-validate "^29.5.0"
resolve "^1.20.0"
resolve.exports "^2.0.0"
slash "^3.0.0"
-jest-runner@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.3.tgz#68dc82c68645eda12bea42b5beece6527d7c1e5e"
- integrity sha512-GWPTEiGmtHZv1KKeWlTX9SIFuK19uLXlRQU43ceOQ2hIfA5yPEJC7AMkvFKpdCHx6pNEdOD+2+8zbniEi3v3gA==
+jest-runner@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.5.0.tgz#6a57c282eb0ef749778d444c1d758c6a7693b6f8"
+ integrity sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==
dependencies:
- "@jest/console" "^29.4.3"
- "@jest/environment" "^29.4.3"
- "@jest/test-result" "^29.4.3"
- "@jest/transform" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/console" "^29.5.0"
+ "@jest/environment" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
chalk "^4.0.0"
emittery "^0.13.1"
graceful-fs "^4.2.9"
jest-docblock "^29.4.3"
- jest-environment-node "^29.4.3"
- jest-haste-map "^29.4.3"
- jest-leak-detector "^29.4.3"
- jest-message-util "^29.4.3"
- jest-resolve "^29.4.3"
- jest-runtime "^29.4.3"
- jest-util "^29.4.3"
- jest-watcher "^29.4.3"
- jest-worker "^29.4.3"
+ jest-environment-node "^29.5.0"
+ jest-haste-map "^29.5.0"
+ jest-leak-detector "^29.5.0"
+ jest-message-util "^29.5.0"
+ jest-resolve "^29.5.0"
+ jest-runtime "^29.5.0"
+ jest-util "^29.5.0"
+ jest-watcher "^29.5.0"
+ jest-worker "^29.5.0"
p-limit "^3.1.0"
source-map-support "0.5.13"
-jest-runtime@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.3.tgz#f25db9874dcf35a3ab27fdaabca426666cc745bf"
- integrity sha512-F5bHvxSH+LvLV24vVB3L8K467dt3y3dio6V3W89dUz9nzvTpqd/HcT9zfYKL2aZPvD63vQFgLvaUX/UpUhrP6Q==
+jest-runtime@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.5.0.tgz#c83f943ee0c1da7eb91fa181b0811ebd59b03420"
+ integrity sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==
dependencies:
- "@jest/environment" "^29.4.3"
- "@jest/fake-timers" "^29.4.3"
- "@jest/globals" "^29.4.3"
+ "@jest/environment" "^29.5.0"
+ "@jest/fake-timers" "^29.5.0"
+ "@jest/globals" "^29.5.0"
"@jest/source-map" "^29.4.3"
- "@jest/test-result" "^29.4.3"
- "@jest/transform" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/test-result" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
chalk "^4.0.0"
cjs-module-lexer "^1.0.0"
collect-v8-coverage "^1.0.0"
glob "^7.1.3"
graceful-fs "^4.2.9"
- jest-haste-map "^29.4.3"
- jest-message-util "^29.4.3"
- jest-mock "^29.4.3"
+ jest-haste-map "^29.5.0"
+ jest-message-util "^29.5.0"
+ jest-mock "^29.5.0"
jest-regex-util "^29.4.3"
- jest-resolve "^29.4.3"
- jest-snapshot "^29.4.3"
- jest-util "^29.4.3"
+ jest-resolve "^29.5.0"
+ jest-snapshot "^29.5.0"
+ jest-util "^29.5.0"
slash "^3.0.0"
strip-bom "^4.0.0"
-jest-snapshot@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.3.tgz#183d309371450d9c4a3de7567ed2151eb0e91145"
- integrity sha512-NGlsqL0jLPDW91dz304QTM/SNO99lpcSYYAjNiX0Ou+sSGgkanKBcSjCfp/pqmiiO1nQaOyLp6XQddAzRcx3Xw==
+jest-snapshot@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce"
+ integrity sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==
dependencies:
"@babel/core" "^7.11.6"
"@babel/generator" "^7.7.2"
@@ -6837,61 +6694,60 @@ jest-snapshot@^29.4.3:
"@babel/plugin-syntax-typescript" "^7.7.2"
"@babel/traverse" "^7.7.2"
"@babel/types" "^7.3.3"
- "@jest/expect-utils" "^29.4.3"
- "@jest/transform" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/expect-utils" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/babel__traverse" "^7.0.6"
"@types/prettier" "^2.1.5"
babel-preset-current-node-syntax "^1.0.0"
chalk "^4.0.0"
- expect "^29.4.3"
+ expect "^29.5.0"
graceful-fs "^4.2.9"
- jest-diff "^29.4.3"
+ jest-diff "^29.5.0"
jest-get-type "^29.4.3"
- jest-haste-map "^29.4.3"
- jest-matcher-utils "^29.4.3"
- jest-message-util "^29.4.3"
- jest-util "^29.4.3"
+ jest-matcher-utils "^29.5.0"
+ jest-message-util "^29.5.0"
+ jest-util "^29.5.0"
natural-compare "^1.4.0"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
semver "^7.3.5"
-jest-util@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.3.tgz#851a148e23fc2b633c55f6dad2e45d7f4579f496"
- integrity sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q==
+jest-util@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f"
+ integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==
dependencies:
- "@jest/types" "^29.4.3"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
chalk "^4.0.0"
ci-info "^3.2.0"
graceful-fs "^4.2.9"
picomatch "^2.2.3"
-jest-validate@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.3.tgz#a13849dec4f9e95446a7080ad5758f58fa88642f"
- integrity sha512-J3u5v7aPQoXPzaar6GndAVhdQcZr/3osWSgTeKg5v574I9ybX/dTyH0AJFb5XgXIB7faVhf+rS7t4p3lL9qFaw==
+jest-validate@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.5.0.tgz#8e5a8f36178d40e47138dc00866a5f3bd9916ffc"
+ integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==
dependencies:
- "@jest/types" "^29.4.3"
+ "@jest/types" "^29.5.0"
camelcase "^6.2.0"
chalk "^4.0.0"
jest-get-type "^29.4.3"
leven "^3.1.0"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
-jest-watcher@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.3.tgz#e503baa774f0c2f8f3c8db98a22ebf885f19c384"
- integrity sha512-zwlXH3DN3iksoIZNk73etl1HzKyi5FuQdYLnkQKm5BW4n8HpoG59xSwpVdFrnh60iRRaRBGw0gcymIxjJENPcA==
+jest-watcher@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.5.0.tgz#cf7f0f949828ba65ddbbb45c743a382a4d911363"
+ integrity sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==
dependencies:
- "@jest/test-result" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/test-result" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
emittery "^0.13.1"
- jest-util "^29.4.3"
+ jest-util "^29.5.0"
string-length "^4.0.1"
jest-worker@^26.2.1, jest-worker@^26.5.0:
@@ -6903,25 +6759,25 @@ jest-worker@^26.2.1, jest-worker@^26.5.0:
merge-stream "^2.0.0"
supports-color "^7.0.0"
-jest-worker@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.3.tgz#9a4023e1ea1d306034237c7133d7da4240e8934e"
- integrity sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA==
+jest-worker@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d"
+ integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==
dependencies:
"@types/node" "*"
- jest-util "^29.4.3"
+ jest-util "^29.5.0"
merge-stream "^2.0.0"
supports-color "^8.0.0"
-jest@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.3.tgz#1b8be541666c6feb99990fd98adac4737e6e6386"
- integrity sha512-XvK65feuEFGZT8OO0fB/QAQS+LGHvQpaadkH5p47/j3Ocqq3xf2pK9R+G0GzgfuhXVxEv76qCOOcMb5efLk6PA==
+jest@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e"
+ integrity sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==
dependencies:
- "@jest/core" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/core" "^29.5.0"
+ "@jest/types" "^29.5.0"
import-local "^3.0.2"
- jest-cli "^29.4.3"
+ jest-cli "^29.5.0"
js-sdsl@^4.1.4:
version "4.3.0"
@@ -6980,18 +6836,17 @@ jsdom@^20.0.0:
ws "^8.11.0"
xml-name-validator "^4.0.0"
-jsdom@^21.1.0:
- version "21.1.0"
- resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-21.1.0.tgz#d56ba4a84ed478260d83bd53dc181775f2d8e6ef"
- integrity sha512-m0lzlP7qOtthD918nenK3hdItSd2I+V3W9IrBcB36sqDwG+KnUs66IF5GY7laGWUnlM9vTsD0W1QwSEBYWWcJg==
+jsdom@^21.1.1:
+ version "21.1.1"
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-21.1.1.tgz#ab796361e3f6c01bcfaeda1fea3c06197ac9d8ae"
+ integrity sha512-Jjgdmw48RKcdAIQyUD1UdBh2ecH7VqwaXPN3ehoZN6MqgVbMn+lRm1aAT1AsdJRAJpwfa4IpwgzySn61h2qu3w==
dependencies:
abab "^2.0.6"
- acorn "^8.8.1"
+ acorn "^8.8.2"
acorn-globals "^7.0.0"
- cssom "^0.5.0"
- cssstyle "^2.3.0"
- data-urls "^3.0.2"
- decimal.js "^10.4.2"
+ cssstyle "^3.0.0"
+ data-urls "^4.0.0"
+ decimal.js "^10.4.3"
domexception "^4.0.0"
escodegen "^2.0.0"
form-data "^4.0.0"
@@ -7000,7 +6855,8 @@ jsdom@^21.1.0:
https-proxy-agent "^5.0.1"
is-potential-custom-element-name "^1.0.1"
nwsapi "^2.2.2"
- parse5 "^7.1.1"
+ parse5 "^7.1.2"
+ rrweb-cssom "^0.6.0"
saxes "^6.0.0"
symbol-tree "^3.2.4"
tough-cookie "^4.1.2"
@@ -7008,8 +6864,8 @@ jsdom@^21.1.0:
webidl-conversions "^7.0.0"
whatwg-encoding "^2.0.0"
whatwg-mimetype "^3.0.0"
- whatwg-url "^11.0.0"
- ws "^8.11.0"
+ whatwg-url "^12.0.1"
+ ws "^8.13.0"
xml-name-validator "^4.0.0"
jsesc@^2.5.1:
@@ -7022,7 +6878,7 @@ jsesc@~0.5.0:
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
-json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
+json-parse-better-errors@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
@@ -7173,6 +7029,11 @@ levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
+lilconfig@^2.0.3:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
+ integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
+
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#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
@@ -7183,7 +7044,7 @@ loader-runner@^2.4.0:
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
-loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
+loader-utils@^1.2.3, loader-utils@^1.4.0:
version "1.4.2"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3"
integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==
@@ -7401,21 +7262,16 @@ md5.js@^1.3.4:
inherits "^2.0.1"
safe-buffer "^5.1.2"
+mdn-data@2.0.14:
+ version "2.0.14"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
+ integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+
mdn-data@2.0.30:
version "2.0.30"
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc"
integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==
-mdn-data@2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
- integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
-
-mdn-data@2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978"
- integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==
-
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -7654,7 +7510,7 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
-mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1:
+mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
@@ -7666,10 +7522,10 @@ mkdirp@^1.0, mkdirp@^1.0.3, mkdirp@^1.0.4:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
-mkdirp@^2.1.3:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.3.tgz#b083ff37be046fd3d6552468c1f0ff44c1545d1f"
- integrity sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==
+mkdirp@^2.1.5:
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.5.tgz#78d7eaf15e069ba7b6b47d76dd94cfadf7a4062f"
+ integrity sha512-jbjfql+shJtAPrFoKxHOXip4xS+kul9W3OzfzzrqueWK2QMGon2bFH2opl6W9EagBThjEz+iysyi/swOoVfB/w==
mousetrap@^1.5.2:
version "1.6.5"
@@ -7861,10 +7717,10 @@ normalize-range@^0.1.2:
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
-normalize-url@^3.0.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
- integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
+normalize-url@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a"
+ integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
npm-run-path@^2.0.0:
version "2.0.2"
@@ -7890,17 +7746,12 @@ npmlog@^7.0.1:
gauge "^5.0.0"
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#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
- integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
+nth-check@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
+ integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
dependencies:
- boolbase "~1.0.0"
-
-num2fraction@^1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
- integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
+ boolbase "^1.0.0"
nwsapi@^2.2.2:
version "2.2.2"
@@ -7982,14 +7833,6 @@ object.fromentries@^2.0.6:
define-properties "^1.1.4"
es-abstract "^1.20.4"
-object.getownpropertydescriptors@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649"
- integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==
- dependencies:
- define-properties "^1.1.3"
- es-abstract "^1.17.0-next.1"
-
object.hasown@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92"
@@ -8005,7 +7848,7 @@ object.pick@^1.3.0:
dependencies:
isobject "^3.0.1"
-object.values@^1.1.0, object.values@^1.1.6:
+object.values@^1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d"
integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==
@@ -8199,14 +8042,6 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5:
pbkdf2 "^3.0.3"
safe-buffer "^5.1.1"
-parse-json@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
- integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
- dependencies:
- error-ex "^1.3.1"
- json-parse-better-errors "^1.0.1"
-
parse-json@^5.0.0, parse-json@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
@@ -8222,10 +8057,10 @@ parse-passwd@^1.0.0:
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
-parse5@^7.0.0, parse5@^7.1.1:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746"
- integrity sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==
+parse5@^7.0.0, parse5@^7.1.1, parse5@^7.1.2:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32"
+ integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==
dependencies:
entities "^4.4.0"
@@ -8383,11 +8218,6 @@ pgpass@1.x:
dependencies:
split2 "^3.1.1"
-picocolors@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f"
- integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==
-
picocolors@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
@@ -8453,146 +8283,117 @@ posix-character-classes@^0.1.0:
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
-postcss-calc@^7.0.1:
- version "7.0.4"
- resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.4.tgz#5e177ddb417341e6d4a193c5d9fd8ada79094f8b"
- integrity sha512-0I79VRAd1UTkaHzY9w83P39YGO/M3bG7/tNLrHGEunBolfoGM0hSjrGvjoeaj0JE/zIw5GsI2KZ0UwDJqv5hjw==
+postcss-calc@^8.2.3:
+ version "8.2.4"
+ resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5"
+ integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==
dependencies:
- postcss "^7.0.27"
- postcss-selector-parser "^6.0.2"
- postcss-value-parser "^4.0.2"
+ postcss-selector-parser "^6.0.9"
+ postcss-value-parser "^4.2.0"
-postcss-colormin@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381"
- integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==
+postcss-colormin@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz#86c27c26ed6ba00d96c79e08f3ffb418d1d1988f"
+ integrity sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==
dependencies:
- browserslist "^4.0.0"
- color "^3.0.0"
- has "^1.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ browserslist "^4.21.4"
+ caniuse-api "^3.0.0"
+ colord "^2.9.1"
+ postcss-value-parser "^4.2.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#ca3813ed4da0f812f9d43703584e449ebe189a7f"
- integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==
+postcss-convert-values@^5.1.3:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393"
+ integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==
dependencies:
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ browserslist "^4.21.4"
+ postcss-value-parser "^4.2.0"
-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#1fbabd2c246bff6aaad7997b2b0918f4d7af4033"
- integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==
- dependencies:
- postcss "^7.0.0"
+postcss-discard-comments@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696"
+ integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==
-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#3fe133cd3c82282e550fc9b239176a9207b784eb"
- integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==
- dependencies:
- postcss "^7.0.0"
+postcss-discard-duplicates@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848"
+ integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==
-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#c8c951e9f73ed9428019458444a02ad90bb9f765"
- integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==
- dependencies:
- postcss "^7.0.0"
+postcss-discard-empty@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c"
+ integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==
-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#652aef8a96726f029f5e3e00146ee7a4e755ff57"
- integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==
- dependencies:
- postcss "^7.0.0"
+postcss-discard-overridden@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e"
+ integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==
-postcss-load-config@^2.0.0:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a"
- integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==
+postcss-loader@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.3.0.tgz#2c4de9657cd4f07af5ab42bd60a673004da1b8cc"
+ integrity sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==
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#6b97943e47c72d845fa9e03f273773d4e8dd6c2d"
- 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"
+ cosmiconfig "^7.0.0"
+ klona "^2.0.4"
+ loader-utils "^2.0.0"
+ schema-utils "^3.0.0"
+ semver "^7.3.4"
postcss-media-query-parser@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244"
integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=
-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#62f49a13e4a0ee04e7b98f42bb16062ca2549e24"
- integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==
+postcss-merge-longhand@^5.1.7:
+ version "5.1.7"
+ resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16"
+ integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==
dependencies:
- css-color-names "0.0.4"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
- stylehacks "^4.0.0"
+ postcss-value-parser "^4.2.0"
+ stylehacks "^5.1.1"
-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#362bea4ff5a1f98e4075a713c6cb25aefef9a650"
- integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==
+postcss-merge-rules@^5.1.4:
+ version "5.1.4"
+ resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz#2f26fa5cacb75b1402e213789f6766ae5e40313c"
+ integrity sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==
dependencies:
- browserslist "^4.0.0"
+ browserslist "^4.21.4"
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"
+ cssnano-utils "^3.1.0"
+ postcss-selector-parser "^6.0.5"
-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#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
- integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==
+postcss-minify-font-values@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b"
+ integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==
dependencies:
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ postcss-value-parser "^4.2.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#93b29c2ff5099c535eecda56c4aa6e665a663471"
- integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==
+postcss-minify-gradients@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c"
+ integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==
dependencies:
- cssnano-util-get-arguments "^4.0.0"
- is-color-stop "^1.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ colord "^2.9.1"
+ cssnano-utils "^3.1.0"
+ postcss-value-parser "^4.2.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#6b9cef030c11e35261f95f618c90036d680db874"
- integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==
+postcss-minify-params@^5.1.4:
+ version "5.1.4"
+ resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352"
+ integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==
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"
+ browserslist "^4.21.4"
+ cssnano-utils "^3.1.0"
+ postcss-value-parser "^4.2.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#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8"
- integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==
+postcss-minify-selectors@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6"
+ integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==
dependencies:
- alphanum-sort "^1.0.0"
- has "^1.0.0"
- postcss "^7.0.0"
- postcss-selector-parser "^3.0.0"
+ postcss-selector-parser "^6.0.5"
postcss-modules-extract-imports@^3.0.0:
version "3.0.0"
@@ -8622,115 +8423,91 @@ postcss-modules-values@^4.0.0:
dependencies:
icss-utils "^5.0.0"
-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#8b35add3aee83a136b0471e0d59be58a50285dd4"
- integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==
- dependencies:
- postcss "^7.0.0"
+postcss-normalize-charset@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed"
+ integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==
-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#0dbe04a4ce9063d4667ed2be476bb830c825935a"
- integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==
+postcss-normalize-display-values@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8"
+ integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==
dependencies:
- cssnano-util-get-match "^4.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ postcss-value-parser "^4.2.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#05f757f84f260437378368a91f8932d4b102917f"
- integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==
+postcss-normalize-positions@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92"
+ integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==
dependencies:
- cssnano-util-get-arguments "^4.0.0"
- has "^1.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ postcss-value-parser "^4.2.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#c4ebbc289f3991a028d44751cbdd11918b17910c"
- integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==
+postcss-normalize-repeat-style@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2"
+ integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==
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-value-parser "^4.2.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#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c"
- integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==
+postcss-normalize-string@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228"
+ integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==
dependencies:
- has "^1.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ postcss-value-parser "^4.2.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#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9"
- integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==
+postcss-normalize-timing-functions@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb"
+ integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==
dependencies:
- cssnano-util-get-match "^4.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ postcss-value-parser "^4.2.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#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
- integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==
+postcss-normalize-unicode@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030"
+ integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==
dependencies:
- browserslist "^4.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ browserslist "^4.21.4"
+ postcss-value-parser "^4.2.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#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
- integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==
+postcss-normalize-url@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc"
+ integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==
dependencies:
- is-absolute-url "^2.0.0"
- normalize-url "^3.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ normalize-url "^6.0.1"
+ postcss-value-parser "^4.2.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#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82"
- integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==
+postcss-normalize-whitespace@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa"
+ integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==
dependencies:
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ postcss-value-parser "^4.2.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#0cf75c820ec7d5c4d280189559e0b571ebac0eee"
- integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==
+postcss-ordered-values@^5.1.3:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38"
+ integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==
dependencies:
- cssnano-util-get-arguments "^4.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ cssnano-utils "^3.1.0"
+ postcss-value-parser "^4.2.0"
-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#7fd42ebea5e9c814609639e2c2e84ae270ba48df"
- integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==
+postcss-reduce-initial@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz#798cd77b3e033eae7105c18c9d371d989e1382d6"
+ integrity sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==
dependencies:
- browserslist "^4.0.0"
+ browserslist "^4.21.4"
caniuse-api "^3.0.0"
- has "^1.0.0"
- postcss "^7.0.0"
-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#17efa405eacc6e07be3414a5ca2d1074681d4e29"
- integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==
+postcss-reduce-transforms@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9"
+ integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==
dependencies:
- cssnano-util-get-match "^4.0.0"
- has "^1.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ postcss-value-parser "^4.2.0"
postcss-resolve-nested-selector@^0.1.1:
version "0.1.1"
@@ -8747,16 +8524,7 @@ postcss-scss@^4.0.2, postcss-scss@^4.0.6:
resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.6.tgz#5d62a574b950a6ae12f2aa89b60d63d9e4432bfd"
integrity sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==
-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#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270"
- integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==
- dependencies:
- dot-prop "^5.2.0"
- indexes-of "^1.0.1"
- uniq "^1.0.1"
-
-postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.6:
+postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9:
version "6.0.11"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc"
integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==
@@ -8764,43 +8532,26 @@ postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selecto
cssesc "^3.0.0"
util-deprecate "^1.0.2"
-postcss-svgo@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e"
- integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==
+postcss-svgo@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d"
+ integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==
dependencies:
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
- svgo "^1.0.0"
+ postcss-value-parser "^4.2.0"
+ svgo "^2.7.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#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
- integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==
+postcss-unique-selectors@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6"
+ integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==
dependencies:
- alphanum-sort "^1.0.0"
- postcss "^7.0.0"
- uniqs "^2.0.0"
+ postcss-selector-parser "^6.0.5"
-postcss-value-parser@^3.0.0:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
- integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
-
-postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
+postcss-value-parser@^4.1.0, 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@^7.0.0, postcss@^7.0.1, postcss@^7.0.27, postcss@^7.0.32:
- version "7.0.32"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d"
- integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==
- dependencies:
- chalk "^2.4.2"
- source-map "^0.6.1"
- supports-color "^6.1.0"
-
postcss@^8.2.15, postcss@^8.4.21:
version "8.4.21"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4"
@@ -8872,10 +8623,10 @@ pretty-format@^27.0.2:
ansi-styles "^5.0.0"
react-is "^17.0.1"
-pretty-format@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.3.tgz#25500ada21a53c9e8423205cf0337056b201244c"
- integrity sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==
+pretty-format@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a"
+ integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==
dependencies:
"@jest/schemas" "^29.4.3"
ansi-styles "^5.0.0"
@@ -8997,10 +8748,10 @@ punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
-q@^1.1.2:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
- integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
+pure-rand@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.0.tgz#701996ceefa253507923a0e864c17ab421c04a7c"
+ integrity sha512-rLSBxJjP+4DQOgcJAx6RZHT2he2pkhQdSnofG5VWyVl6GRq/K02ISOuOLcsMOrtKDIJb8JN2zm3FFzWNbezdPw==
qs@6.11.0:
version "6.11.0"
@@ -9681,16 +9432,6 @@ reusify@^1.0.4:
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
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#c0e0d6882df0e23be254a475e8edd41915feaeb1"
- 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#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
- integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
-
rimraf@^2.5.4, rimraf@^2.6.3:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
@@ -9735,6 +9476,11 @@ rollup@^2.43.1:
optionalDependencies:
fsevents "~2.3.2"
+rrweb-cssom@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz#ed298055b97cbddcdeb278f904857629dec5e0e1"
+ integrity sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==
+
run-parallel@^1.1.9:
version "1.2.0"
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
@@ -9800,11 +9546,6 @@ sass@^1.58.3:
immutable "^4.0.0"
source-map-js ">=0.6.2 <2.0.0"
-sax@~1.2.4:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
- integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-
saxes@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5"
@@ -10033,13 +9774,6 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-simple-swizzle@^0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
- integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
- dependencies:
- is-arrayish "^0.3.1"
-
sirv@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.10.tgz#3e591f5a9ae2520f50d5830f5fae38d97e7be194"
@@ -10512,14 +10246,13 @@ style-search@^0.1.0:
resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902"
integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=
-stylehacks@^4.0.0:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"
- integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==
+stylehacks@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9"
+ integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==
dependencies:
- browserslist "^4.0.0"
- postcss "^7.0.0"
- postcss-selector-parser "^3.0.0"
+ browserslist "^4.21.4"
+ postcss-selector-parser "^6.0.4"
stylelint-config-recommended-scss@^9.0.0:
version "9.0.0"
@@ -10665,24 +10398,18 @@ svg-tags@^1.0.0:
resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=
-svgo@^1.0.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
- integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==
+svgo@^2.7.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
+ integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
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"
+ "@trysound/sax" "0.2.0"
+ commander "^7.2.0"
+ css-select "^4.1.3"
+ css-tree "^1.1.3"
+ csso "^4.2.0"
+ picocolors "^1.0.0"
stable "^0.1.8"
- unquote "~1.1.1"
- util.promisify "~1.0.0"
symbol-tree@^3.2.4:
version "3.2.4"
@@ -10844,11 +10571,6 @@ timers-browserify@^2.0.4:
dependencies:
setimmediate "^1.0.4"
-timsort@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
- integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
-
tiny-invariant@^1.0.2:
version "1.1.0"
resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875"
@@ -10945,6 +10667,13 @@ tr46@^3.0.0:
dependencies:
punycode "^2.1.1"
+tr46@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-4.1.1.tgz#281a758dcc82aeb4fe38c7dfe4d11a395aac8469"
+ integrity sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==
+ dependencies:
+ punycode "^2.3.0"
+
tr46@~0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
@@ -11115,16 +10844,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#b31c5ae8254844a3a8281541ce2b04b865a734ff"
- integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
-
-uniqs@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
- 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#1d69769369ada0583103a1e6ae87681b56573230"
@@ -11166,11 +10885,6 @@ unpipe@1.0.0, unpipe@~1.0.0:
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
-unquote@~1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
- 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#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
@@ -11242,10 +10956,10 @@ use@^3.1.0:
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
-utf-8-validate@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.2.tgz#2d80529963e4cc55ac5a1ca9dafdaa990d5ea16b"
- integrity sha512-yd7PQEOW+EgecUzSD7XUXTyq/vREGXk7t7fzGfOvwOAr0Z64h5rfGrmkNk8+ddVmf/FrkjPPhVyYBa7fuSPVTg==
+utf-8-validate@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.3.tgz#7d8c936d854e86b24d1d655f138ee27d2636d777"
+ integrity sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA==
dependencies:
node-gyp-build "^4.3.0"
@@ -11254,16 +10968,6 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
-util.promisify@~1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee"
- integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==
- dependencies:
- define-properties "^1.1.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#7afb1afe50805246489e3db7fe0ed379336ac0f9"
@@ -11325,11 +11029,6 @@ vary@~1.1.2:
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
-vendors@^1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
- integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==
-
vm-browserify@^1.0.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
@@ -11588,6 +11287,14 @@ whatwg-url@^11.0.0:
tr46 "^3.0.0"
webidl-conversions "^7.0.0"
+whatwg-url@^12.0.0, whatwg-url@^12.0.1:
+ version "12.0.1"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-12.0.1.tgz#fd7bcc71192e7c3a2a97b9a8d6b094853ed8773c"
+ integrity sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==
+ dependencies:
+ tr46 "^4.1.1"
+ webidl-conversions "^7.0.0"
+
whatwg-url@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
@@ -11906,10 +11613,10 @@ ws@^7.3.1:
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
-ws@^8.11.0, ws@^8.12.1:
- version "8.12.1"
- resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.1.tgz#c51e583d79140b5e42e39be48c934131942d4a8f"
- integrity sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==
+ws@^8.11.0, ws@^8.12.1, ws@^8.13.0:
+ version "8.13.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0"
+ integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==
xml-name-validator@^4.0.0:
version "4.0.0"
@@ -11946,7 +11653,7 @@ yallist@^3.0.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
-yaml@^1.10.0, yaml@^1.7.2:
+yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2:
version "1.10.2"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
@@ -11985,10 +11692,10 @@ yargs@^13.3.2:
y18n "^4.0.0"
yargs-parser "^13.1.2"
-yargs@^17.3.1, yargs@^17.7.0:
- version "17.7.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.0.tgz#b21e9af1e0a619a2a9c67b1133219b2975a07985"
- integrity sha512-dwqOPg5trmrre9+v8SUo2q/hAwyKoVfu8OC1xPHKJGNdxAvPl4sKxL4vBnh3bQz/ZvvGAFeA5H3ou2kcOY8sQQ==
+yargs@^17.3.1, yargs@^17.7.1:
+ version "17.7.1"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967"
+ integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==
dependencies:
cliui "^8.0.1"
escalade "^3.1.1"