diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index b5e72a0973baf2..c6dcc4d46a37d6 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -1,20 +1,15 @@
# For details, see https://github.com/devcontainers/images/tree/main/src/ruby
-FROM mcr.microsoft.com/devcontainers/ruby:1-3.2-bullseye
+FROM mcr.microsoft.com/devcontainers/ruby:1-3.3-bookworm
-# Install Rails
-# RUN gem install rails webdrivers
+# Install node version from .nvmrc
+WORKDIR /app
+COPY .nvmrc .
+RUN /bin/bash --login -i -c "nvm install"
-ARG NODE_VERSION="20"
-RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"
+# Install additional OS packages
+RUN apt-get update && \
+ export DEBIAN_FRONTEND=noninteractive && \
+ apt-get -y install --no-install-recommends libicu-dev libidn11-dev ffmpeg imagemagick libvips42 libpam-dev
-# [Optional] Uncomment this section to install additional OS packages.
-RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
- && apt-get -y install --no-install-recommends libicu-dev libidn11-dev ffmpeg imagemagick libpam-dev
-
-# [Optional] Uncomment this line to install additional gems.
-RUN gem install foreman
-
-# [Optional] Uncomment this line to install global node packages.
-RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && corepack enable" 2>&1
-
-COPY welcome-message.txt /usr/local/etc/vscode-dev-containers/first-run-notice.txt
+# Move welcome message to where VS Code expects it
+COPY .devcontainer/welcome-message.txt /usr/local/etc/vscode-dev-containers/first-run-notice.txt
diff --git a/.devcontainer/codespaces/devcontainer.json b/.devcontainer/codespaces/devcontainer.json
index ca9156fdaa4bf1..d2358657f6d664 100644
--- a/.devcontainer/codespaces/devcontainer.json
+++ b/.devcontainer/codespaces/devcontainer.json
@@ -1,6 +1,6 @@
{
"name": "Mastodon on GitHub Codespaces",
- "dockerComposeFile": "../docker-compose.yml",
+ "dockerComposeFile": "../compose.yaml",
"service": "app",
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
@@ -23,6 +23,8 @@
}
},
+ "remoteUser": "root",
+
"otherPortsAttributes": {
"onAutoForward": "silent"
},
@@ -37,7 +39,7 @@
},
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
- "postCreateCommand": ".devcontainer/post-create.sh",
+ "postCreateCommand": "bin/setup",
"waitFor": "postCreateCommand",
"customizations": {
diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/compose.yaml
similarity index 95%
rename from .devcontainer/docker-compose.yml
rename to .devcontainer/compose.yaml
index 5d9917b399b9a5..1e2e1ba7de2274 100644
--- a/.devcontainer/docker-compose.yml
+++ b/.devcontainer/compose.yaml
@@ -1,13 +1,11 @@
-version: '3'
-
services:
app:
working_dir: /workspaces/mastodon/
build:
- context: .
- dockerfile: Dockerfile
+ context: ..
+ dockerfile: .devcontainer/Dockerfile
volumes:
- - ../..:/workspaces:cached
+ - ..:/workspaces/mastodon:cached
environment:
RAILS_ENV: development
NODE_ENV: development
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index fa8d6542c18aec..fb88f7801fa35f 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -1,6 +1,6 @@
{
"name": "Mastodon on local machine",
- "dockerComposeFile": "docker-compose.yml",
+ "dockerComposeFile": "compose.yaml",
"service": "app",
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
@@ -23,12 +23,14 @@
}
},
+ "remoteUser": "root",
+
"otherPortsAttributes": {
"onAutoForward": "silent"
},
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
- "postCreateCommand": ".devcontainer/post-create.sh",
+ "postCreateCommand": "bin/setup",
"waitFor": "postCreateCommand",
"customizations": {
diff --git a/.devcontainer/post-create.sh b/.devcontainer/post-create.sh
deleted file mode 100755
index 82a2ccbb6ce3a0..00000000000000
--- a/.devcontainer/post-create.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-
-set -e # Fail the whole script on first error
-
-# Fetch Ruby gem dependencies
-bundle config path 'vendor/bundle'
-bundle config with 'development test'
-bundle install
-
-# Make Gemfile.lock pristine again
-git checkout -- Gemfile.lock
-
-# Fetch Javascript dependencies
-corepack prepare
-yarn install --immutable
-
-# [re]create, migrate, and seed the test database
-RAILS_ENV=test ./bin/rails db:setup
-
-# [re]create, migrate, and seed the development database
-RAILS_ENV=development ./bin/rails db:setup
-
-# Precompile assets for development
-RAILS_ENV=development ./bin/rails assets:precompile
-
-# Precompile assets for test
-RAILS_ENV=test ./bin/rails assets:precompile
diff --git a/.devcontainer/welcome-message.txt b/.devcontainer/welcome-message.txt
index 488cf92857ac6b..dbc19c910cdf67 100644
--- a/.devcontainer/welcome-message.txt
+++ b/.devcontainer/welcome-message.txt
@@ -1,8 +1,7 @@
-👋 Welcome to "Mastodon" in GitHub Codespaces!
+👋 Welcome to your Mastodon Dev Container!
-🛠️ Your environment is fully setup with all the required software.
+🛠️ Your environment is fully setup with all the required software.
-🔍 To explore VS Code to its fullest, search using the Command Palette (Cmd/Ctrl + Shift + P or F1).
-
-📝 Edit away, run your app as usual, and we'll automatically make it available for you to access.
+💥 Run `bin/dev` to start the application processes.
+🥼 Run `RAILS_ENV=test bin/rails assets:precompile && RAILS_ENV=test bin/rspec` to run the test suite.
diff --git a/.github/actions/setup-ruby/action.yml b/.github/actions/setup-ruby/action.yml
index 3a6fba940201a7..3e232f134c9422 100644
--- a/.github/actions/setup-ruby/action.yml
+++ b/.github/actions/setup-ruby/action.yml
@@ -14,7 +14,7 @@ runs:
shell: bash
run: |
sudo apt-get update
- sudo apt-get install -y libicu-dev libidn11-dev ${{ inputs.additional-system-dependencies }}
+ sudo apt-get install -y libicu-dev libidn11-dev libvips42 ${{ inputs.additional-system-dependencies }}
- name: Set up Ruby
uses: ruby/setup-ruby@v1
diff --git a/.github/codecov.yml b/.github/codecov.yml
index 9d6413a10617e2..701ba3af8f72d5 100644
--- a/.github/codecov.yml
+++ b/.github/codecov.yml
@@ -3,9 +3,9 @@ coverage:
status:
project:
default:
- # Github status check is not blocking
+ # GitHub status check is not blocking
informational: true
patch:
default:
- # Github status check is not blocking
+ # GitHub status check is not blocking
informational: true
diff --git a/.github/renovate.json5 b/.github/renovate.json5
index 378d4fc83ca86c..52f7c63e5b82f1 100644
--- a/.github/renovate.json5
+++ b/.github/renovate.json5
@@ -59,7 +59,7 @@
dependencyDashboardApproval: true,
},
{
- // Update Github Actions and Docker images weekly
+ // Update GitHub Actions and Docker images weekly
matchManagers: ['github-actions', 'dockerfile', 'docker-compose'],
extends: ['schedule:weekly'],
},
diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml
index 5892c590660455..db93a2b132a166 100644
--- a/.github/workflows/test-ruby.yml
+++ b/.github/workflows/test-ruby.yml
@@ -134,7 +134,7 @@ jobs:
uses: ./.github/actions/setup-ruby
with:
ruby-version: ${{ matrix.ruby-version}}
- additional-system-dependencies: ffmpeg imagemagick libpam-dev
+ additional-system-dependencies: ffmpeg libpam-dev
- name: Load database schema
run: './bin/rails db:create db:schema:load db:seed'
@@ -149,6 +149,93 @@ jobs:
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
+ test-libvips:
+ name: Libvips tests
+ runs-on: ubuntu-24.04
+
+ 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: ${{ matrix.ruby-version != '.ruby-version' }}
+ RAILS_ENV: test
+ ALLOW_NOPAM: true
+ PAM_ENABLED: true
+ PAM_DEFAULT_SERVICE: pam_test
+ PAM_CONTROLLED_SERVICE: pam_test_controlled
+ OIDC_ENABLED: true
+ OIDC_SCOPE: read
+ SAML_ENABLED: true
+ CAS_ENABLED: true
+ BUNDLE_WITH: 'pam_authentication test'
+ GITHUB_RSPEC: ${{ matrix.ruby-version == '.ruby-version' && github.event.pull_request && 'true' }}
+ MASTODON_USE_LIBVIPS: true
+
+ strategy:
+ fail-fast: false
+ matrix:
+ ruby-version:
+ - '3.1'
+ - '3.2'
+ - '.ruby-version'
+ steps:
+ - uses: actions/checkout@v4
+
+ - uses: actions/download-artifact@v4
+ with:
+ path: './'
+ name: ${{ github.sha }}
+
+ - name: Expand archived asset artifacts
+ run: |
+ tar xvzf artifacts.tar.gz
+
+ - name: Set up Ruby environment
+ uses: ./.github/actions/setup-ruby
+ with:
+ ruby-version: ${{ matrix.ruby-version}}
+ additional-system-dependencies: ffmpeg libpam-dev libyaml-dev
+
+ - name: Load database schema
+ run: './bin/rails db:create db:schema:load db:seed'
+
+ - run: bin/rspec --tag paperclip_processing
+
+ - name: Upload coverage reports to Codecov
+ if: matrix.ruby-version == '.ruby-version'
+ uses: codecov/codecov-action@v4
+ with:
+ files: coverage/lcov/mastodon.lcov
+ env:
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
+
test-e2e:
name: End to End testing
runs-on: ubuntu-latest
@@ -211,7 +298,7 @@ jobs:
uses: ./.github/actions/setup-ruby
with:
ruby-version: ${{ matrix.ruby-version}}
- additional-system-dependencies: ffmpeg imagemagick
+ additional-system-dependencies: ffmpeg
- name: Set up Javascript environment
uses: ./.github/actions/setup-javascript
@@ -331,7 +418,7 @@ jobs:
uses: ./.github/actions/setup-ruby
with:
ruby-version: ${{ matrix.ruby-version}}
- additional-system-dependencies: ffmpeg imagemagick
+ additional-system-dependencies: ffmpeg
- name: Set up Javascript environment
uses: ./.github/actions/setup-javascript
diff --git a/.nanoignore b/.nanoignore
deleted file mode 100644
index 80e93970355ce3..00000000000000
--- a/.nanoignore
+++ /dev/null
@@ -1,19 +0,0 @@
-.DS_Store
-.git/
-.gitignore
-
-.bundle/
-.cache/
-config/deploy/*
-coverage
-docs/
-.env
-log/*.log
-neo4j/
-node_modules/
-public/assets/
-public/system/
-spec/
-tmp/
-.vagrant/
-vendor/bundle/
diff --git a/Dockerfile b/Dockerfile
index c90d5dc9806341..09aa8f2ddbc190 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,8 @@
# syntax=docker/dockerfile:1.7
+# This file is designed for production server deployment, not local development work
+# For a containerized local dev environment, see: https://github.com/mastodon/mastodon/blob/main/README.md#docker
+
# Please see https://docs.docker.com/engine/reference/builder for information about
# the extended buildx capabilities used in this file.
# Make sure multiarch TARGETPLATFORM is available for interpolation
@@ -43,6 +46,8 @@ ENV \
# Apply Mastodon version information
MASTODON_VERSION_PRERELEASE="${MASTODON_VERSION_PRERELEASE}" \
MASTODON_VERSION_METADATA="${MASTODON_VERSION_METADATA}" \
+# Enable libvips
+ MASTODON_USE_LIBVIPS=true \
# Apply Mastodon static files and YJIT options
RAILS_SERVE_STATIC_FILES=${RAILS_SERVE_STATIC_FILES} \
RUBY_YJIT_ENABLE=${RUBY_YJIT_ENABLE} \
@@ -97,7 +102,7 @@ RUN \
curl \
ffmpeg \
file \
- imagemagick \
+ libvips42 \
libjemalloc2 \
patchelf \
procps \
diff --git a/Gemfile b/Gemfile
index d9de331827dc90..136d074d3318d7 100644
--- a/Gemfile
+++ b/Gemfile
@@ -23,6 +23,7 @@ gem 'fog-core', '<= 2.4.0'
gem 'fog-openstack', '~> 1.0', require: false
gem 'kt-paperclip', '~> 7.2'
gem 'md-paperclip-azure', '~> 2.2', require: false
+gem 'ruby-vips', '~> 2.2', require: false
gem 'active_model_serializers', '~> 0.10'
gem 'addressable', '~> 2.8'
@@ -106,7 +107,7 @@ gem 'private_address_check', '~> 0.5'
gem 'opentelemetry-api', '~> 1.2.5'
group :opentelemetry do
- gem 'opentelemetry-exporter-otlp', '~> 0.26.3', require: false
+ gem 'opentelemetry-exporter-otlp', '~> 0.27.0', require: false
gem 'opentelemetry-instrumentation-active_job', '~> 0.7.1', require: false
gem 'opentelemetry-instrumentation-active_model_serializers', '~> 0.20.1', require: false
gem 'opentelemetry-instrumentation-concurrent_ruby', '~> 0.21.2', require: false
diff --git a/Gemfile.lock b/Gemfile.lock
index 8bf6f68adde717..8ff990260b6309 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -10,35 +10,35 @@ GIT
GEM
remote: https://rubygems.org/
specs:
- actioncable (7.1.3.3)
- actionpack (= 7.1.3.3)
- activesupport (= 7.1.3.3)
+ actioncable (7.1.3.4)
+ actionpack (= 7.1.3.4)
+ activesupport (= 7.1.3.4)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
zeitwerk (~> 2.6)
- actionmailbox (7.1.3.3)
- actionpack (= 7.1.3.3)
- activejob (= 7.1.3.3)
- activerecord (= 7.1.3.3)
- activestorage (= 7.1.3.3)
- activesupport (= 7.1.3.3)
+ actionmailbox (7.1.3.4)
+ actionpack (= 7.1.3.4)
+ activejob (= 7.1.3.4)
+ activerecord (= 7.1.3.4)
+ activestorage (= 7.1.3.4)
+ activesupport (= 7.1.3.4)
mail (>= 2.7.1)
net-imap
net-pop
net-smtp
- actionmailer (7.1.3.3)
- actionpack (= 7.1.3.3)
- actionview (= 7.1.3.3)
- activejob (= 7.1.3.3)
- activesupport (= 7.1.3.3)
+ actionmailer (7.1.3.4)
+ actionpack (= 7.1.3.4)
+ actionview (= 7.1.3.4)
+ activejob (= 7.1.3.4)
+ activesupport (= 7.1.3.4)
mail (~> 2.5, >= 2.5.4)
net-imap
net-pop
net-smtp
rails-dom-testing (~> 2.2)
- actionpack (7.1.3.3)
- actionview (= 7.1.3.3)
- activesupport (= 7.1.3.3)
+ actionpack (7.1.3.4)
+ actionview (= 7.1.3.4)
+ activesupport (= 7.1.3.4)
nokogiri (>= 1.8.5)
racc
rack (>= 2.2.4)
@@ -46,15 +46,15 @@ GEM
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
- actiontext (7.1.3.3)
- actionpack (= 7.1.3.3)
- activerecord (= 7.1.3.3)
- activestorage (= 7.1.3.3)
- activesupport (= 7.1.3.3)
+ actiontext (7.1.3.4)
+ actionpack (= 7.1.3.4)
+ activerecord (= 7.1.3.4)
+ activestorage (= 7.1.3.4)
+ activesupport (= 7.1.3.4)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
- actionview (7.1.3.3)
- activesupport (= 7.1.3.3)
+ actionview (7.1.3.4)
+ activesupport (= 7.1.3.4)
builder (~> 3.1)
erubi (~> 1.11)
rails-dom-testing (~> 2.2)
@@ -64,22 +64,22 @@ GEM
activemodel (>= 4.1)
case_transform (>= 0.2)
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
- activejob (7.1.3.3)
- activesupport (= 7.1.3.3)
+ activejob (7.1.3.4)
+ activesupport (= 7.1.3.4)
globalid (>= 0.3.6)
- activemodel (7.1.3.3)
- activesupport (= 7.1.3.3)
- activerecord (7.1.3.3)
- activemodel (= 7.1.3.3)
- activesupport (= 7.1.3.3)
+ activemodel (7.1.3.4)
+ activesupport (= 7.1.3.4)
+ activerecord (7.1.3.4)
+ activemodel (= 7.1.3.4)
+ activesupport (= 7.1.3.4)
timeout (>= 0.4.0)
- activestorage (7.1.3.3)
- actionpack (= 7.1.3.3)
- activejob (= 7.1.3.3)
- activerecord (= 7.1.3.3)
- activesupport (= 7.1.3.3)
+ activestorage (7.1.3.4)
+ actionpack (= 7.1.3.4)
+ activejob (= 7.1.3.4)
+ activerecord (= 7.1.3.4)
+ activesupport (= 7.1.3.4)
marcel (~> 1.0)
- activesupport (7.1.3.3)
+ activesupport (7.1.3.4)
base64
bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2)
@@ -100,17 +100,17 @@ GEM
attr_required (1.0.2)
awrence (1.2.1)
aws-eventstream (1.3.0)
- aws-partitions (1.929.0)
- aws-sdk-core (3.196.1)
+ aws-partitions (1.940.0)
+ aws-sdk-core (3.197.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.8)
jmespath (~> 1, >= 1.6.1)
- aws-sdk-kms (1.81.0)
- aws-sdk-core (~> 3, >= 3.193.0)
+ aws-sdk-kms (1.83.0)
+ aws-sdk-core (~> 3, >= 3.197.0)
aws-sigv4 (~> 1.1)
- aws-sdk-s3 (1.151.0)
- aws-sdk-core (~> 3, >= 3.194.0)
+ aws-sdk-s3 (1.152.0)
+ aws-sdk-core (~> 3, >= 3.197.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.8)
aws-sigv4 (1.8.0)
@@ -424,7 +424,7 @@ GEM
mime-types-data (~> 3.2015)
mime-types-data (3.2024.0507)
mini_mime (1.1.5)
- mini_portile2 (2.8.6)
+ mini_portile2 (2.8.7)
minitest (5.23.1)
msgpack (1.7.2)
multi_json (1.15.0)
@@ -434,7 +434,7 @@ GEM
uri
net-http-persistent (4.0.2)
connection_pool (~> 2.2)
- net-imap (0.4.11)
+ net-imap (0.4.12)
date
net-protocol
net-ldap (0.19.0)
@@ -489,7 +489,7 @@ GEM
opentelemetry-api (1.2.5)
opentelemetry-common (0.20.1)
opentelemetry-api (~> 1.0)
- opentelemetry-exporter-otlp (0.26.3)
+ opentelemetry-exporter-otlp (0.27.0)
google-protobuf (~> 3.14)
googleapis-common-protos-types (~> 1.3)
opentelemetry-api (~> 1.1)
@@ -586,7 +586,7 @@ GEM
pastel (0.8.0)
tty-color (~> 0.5)
pg (1.5.6)
- pghero (3.4.1)
+ pghero (3.5.0)
activerecord (>= 6)
premailer (1.23.0)
addressable
@@ -634,20 +634,20 @@ GEM
rackup (1.0.0)
rack (< 3)
webrick
- rails (7.1.3.3)
- actioncable (= 7.1.3.3)
- actionmailbox (= 7.1.3.3)
- actionmailer (= 7.1.3.3)
- actionpack (= 7.1.3.3)
- actiontext (= 7.1.3.3)
- actionview (= 7.1.3.3)
- activejob (= 7.1.3.3)
- activemodel (= 7.1.3.3)
- activerecord (= 7.1.3.3)
- activestorage (= 7.1.3.3)
- activesupport (= 7.1.3.3)
+ rails (7.1.3.4)
+ actioncable (= 7.1.3.4)
+ actionmailbox (= 7.1.3.4)
+ actionmailer (= 7.1.3.4)
+ actionpack (= 7.1.3.4)
+ actiontext (= 7.1.3.4)
+ actionview (= 7.1.3.4)
+ activejob (= 7.1.3.4)
+ activemodel (= 7.1.3.4)
+ activerecord (= 7.1.3.4)
+ activestorage (= 7.1.3.4)
+ activesupport (= 7.1.3.4)
bundler (>= 1.15.0)
- railties (= 7.1.3.3)
+ railties (= 7.1.3.4)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1)
@@ -662,9 +662,9 @@ GEM
rails-i18n (7.0.9)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 8)
- railties (7.1.3.3)
- actionpack (= 7.1.3.3)
- activesupport (= 7.1.3.3)
+ railties (7.1.3.4)
+ actionpack (= 7.1.3.4)
+ activesupport (= 7.1.3.4)
irb
rackup (>= 1.0.0)
rake (>= 12.2)
@@ -686,7 +686,7 @@ GEM
redlock (1.3.2)
redis (>= 3.0.0, < 6.0)
regexp_parser (2.9.2)
- reline (0.5.7)
+ reline (0.5.8)
io-console (~> 0.5)
request_store (1.6.0)
rack (>= 1.4)
@@ -751,7 +751,7 @@ GEM
rack (>= 1.1)
rubocop (>= 1.33.0, < 2.0)
rubocop-ast (>= 1.31.1, < 2.0)
- rubocop-rspec (2.29.2)
+ rubocop-rspec (2.31.0)
rubocop (~> 1.40)
rubocop-capybara (~> 2.17)
rubocop-factory_bot (~> 2.22)
@@ -763,6 +763,8 @@ GEM
ruby-saml (1.16.0)
nokogiri (>= 1.13.10)
rexml
+ ruby-vips (2.2.1)
+ ffi (~> 1.12)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
rufus-scheduler (3.9.1)
@@ -895,7 +897,7 @@ GEM
xorcist (1.1.3)
xpath (3.2.0)
nokogiri (~> 1.8)
- zeitwerk (2.6.14)
+ zeitwerk (2.6.15)
PLATFORMS
ruby
@@ -976,7 +978,7 @@ DEPENDENCIES
omniauth-saml (~> 2.0)
omniauth_openid_connect (~> 0.6.1)
opentelemetry-api (~> 1.2.5)
- opentelemetry-exporter-otlp (~> 0.26.3)
+ opentelemetry-exporter-otlp (~> 0.27.0)
opentelemetry-instrumentation-active_job (~> 0.7.1)
opentelemetry-instrumentation-active_model_serializers (~> 0.20.1)
opentelemetry-instrumentation-concurrent_ruby (~> 0.21.2)
@@ -1023,6 +1025,7 @@ DEPENDENCIES
rubocop-rspec
ruby-prof
ruby-progressbar (~> 1.13)
+ ruby-vips (~> 2.2)
rubyzip (~> 2.3)
sanitize (~> 6.0)
scenic (~> 1.7)
diff --git a/Vagrantfile b/Vagrantfile
index 8a95e91f360038..89f5536edcdfc6 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -151,6 +151,12 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
end
+ config.vm.provider :libvirt do |libvirt|
+ libvirt.cpus = 3
+ libvirt.memory = 8192
+ end
+
+
# This uses the vagrant-hostsupdater plugin, and lets you
# access the development site at http://mastodon.local.
# If you change it, also change it in .env.vagrant before provisioning
diff --git a/app/controllers/api/v1/accounts/credentials_controller.rb b/app/controllers/api/v1/accounts/credentials_controller.rb
index daa7f87364de2f..a0c6d24df66b25 100644
--- a/app/controllers/api/v1/accounts/credentials_controller.rb
+++ b/app/controllers/api/v1/accounts/credentials_controller.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
class Api::V1::Accounts::CredentialsController < Api::BaseController
- before_action -> { doorkeeper_authorize! :read, :'read:accounts', :'read:me' }, except: [:update]
+ before_action -> { doorkeeper_authorize! :profile, :read, :'read:accounts' }, except: [:update]
before_action -> { doorkeeper_authorize! :write, :'write:accounts' }, only: [:update]
before_action :require_user!
diff --git a/app/controllers/api/v1/timelines/link_controller.rb b/app/controllers/api/v1/timelines/link_controller.rb
new file mode 100644
index 00000000000000..af962c430ffd07
--- /dev/null
+++ b/app/controllers/api/v1/timelines/link_controller.rb
@@ -0,0 +1,52 @@
+# frozen_string_literal: true
+
+class Api::V1::Timelines::LinkController < Api::V1::Timelines::BaseController
+ before_action -> { doorkeeper_authorize! :read, :'read:statuses' }, only: :show, if: :require_auth?
+ before_action :set_preview_card
+ before_action :set_statuses
+
+ PERMITTED_PARAMS = %i(
+ url
+ limit
+ ).freeze
+
+ def show
+ cache_if_unauthenticated!
+ render json: @statuses, each_serializer: REST::StatusSerializer, relationships: StatusRelationshipsPresenter.new(@statuses, current_user&.account_id)
+ end
+
+ private
+
+ def require_auth?
+ !Setting.timeline_preview
+ end
+
+ def set_preview_card
+ @preview_card = PreviewCard.joins(:trend).merge(PreviewCardTrend.allowed).find_by!(url: params[:url])
+ end
+
+ def set_statuses
+ @statuses = @preview_card.nil? ? [] : preload_collection(link_timeline_statuses, Status)
+ end
+
+ def link_timeline_statuses
+ link_feed.get(
+ limit_param(DEFAULT_STATUSES_LIMIT),
+ params[:max_id],
+ params[:since_id],
+ params[:min_id]
+ )
+ end
+
+ def link_feed
+ LinkFeed.new(@preview_card, current_account)
+ end
+
+ def next_path
+ api_v1_timelines_link_url next_path_params
+ end
+
+ def prev_path
+ api_v1_timelines_link_url prev_path_params
+ end
+end
diff --git a/app/controllers/settings/applications_controller.rb b/app/controllers/settings/applications_controller.rb
index 6849979b115233..d6573f9b4949bf 100644
--- a/app/controllers/settings/applications_controller.rb
+++ b/app/controllers/settings/applications_controller.rb
@@ -13,7 +13,7 @@ def show; end
def new
@application = Doorkeeper::Application.new(
redirect_uri: Doorkeeper.configuration.native_redirect_uri,
- scopes: 'read:me'
+ scopes: 'profile'
)
end
diff --git a/app/javascript/mastodon/features/account_timeline/index.jsx b/app/javascript/mastodon/features/account_timeline/index.jsx
index 5ec029593d5344..0478f7a1a16b6f 100644
--- a/app/javascript/mastodon/features/account_timeline/index.jsx
+++ b/app/javascript/mastodon/features/account_timeline/index.jsx
@@ -199,6 +199,7 @@ class AccountTimeline extends ImmutablePureComponent {
emptyMessage={emptyMessage}
bindToDocument={!multiColumn}
timelineId='account'
+ withCounters
/>
);
diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json
index 4bcf4c88b5765c..ce4e89e99a2c02 100644
--- a/app/javascript/mastodon/locales/ia.json
+++ b/app/javascript/mastodon/locales/ia.json
@@ -58,7 +58,7 @@
"account.open_original_page": "Aperir le pagina original",
"account.posts": "Messages",
"account.posts_with_replies": "Messages e responsas",
- "account.report": "Signalar @{name}",
+ "account.report": "Reportar @{name}",
"account.requested": "Attendente le approbation. Clicca pro cancellar le requesta de sequer",
"account.requested_follow": "{name} ha requestate de sequer te",
"account.share": "Compartir profilo de @{name}",
@@ -274,7 +274,7 @@
"error.unexpected_crash.next_steps": "Tenta refrescar le pagina. Si isto non remedia le problema, es possibile que tu pote totevia usar Mastodon per medio de un altere navigator o application native.",
"error.unexpected_crash.next_steps_addons": "Tenta disactivar istes e refrescar le pagina. Si isto non remedia le problema, es possibile que tu pote totevia usar Mastodon per medio de un altere navigator o application native.",
"errors.unexpected_crash.copy_stacktrace": "Copiar le traciamento del pila al area de transferentia",
- "errors.unexpected_crash.report_issue": "Signalar un defecto",
+ "errors.unexpected_crash.report_issue": "Reportar problema",
"explore.search_results": "Resultatos de recerca",
"explore.suggested_follows": "Personas",
"explore.title": "Explorar",
@@ -468,7 +468,7 @@
"navigation_bar.search": "Cercar",
"navigation_bar.security": "Securitate",
"not_signed_in_indicator.not_signed_in": "Es necessari aperir session pro acceder a iste ressource.",
- "notification.admin.report": "{name} ha signalate {target}",
+ "notification.admin.report": "{name} ha reportate {target}",
"notification.admin.sign_up": "{name} se ha inscribite",
"notification.favourite": "{name} ha marcate tu message como favorite",
"notification.follow": "{name} te ha sequite",
@@ -499,7 +499,7 @@
"notification_requests.title": "Notificationes filtrate",
"notifications.clear": "Rader notificationes",
"notifications.clear_confirmation": "Es tu secur que tu vole rader permanentemente tote tu notificationes?",
- "notifications.column_settings.admin.report": "Nove signalationes:",
+ "notifications.column_settings.admin.report": "Nove reportos:",
"notifications.column_settings.admin.sign_up": "Nove inscriptiones:",
"notifications.column_settings.alert": "Notificationes de scriptorio",
"notifications.column_settings.favourite": "Favorites:",
@@ -636,7 +636,7 @@
"report.close": "Facite",
"report.comment.title": "Ha il altere cosas que nos deberea saper?",
"report.forward": "Reinviar a {target}",
- "report.forward_hint": "Le conto es de un altere servitor. Inviar un copia anonymisate del signalation a illo tamben?",
+ "report.forward_hint": "Le conto es de un altere servitor. Inviar un copia anonymisate del reporto a illo tamben?",
"report.mute": "Silentiar",
"report.mute_explanation": "Tu non videra le messages de iste persona. Ille pote totevia sequer te e vider tu messages e non sapera de esser silentiate.",
"report.next": "Sequente",
@@ -656,11 +656,11 @@
"report.statuses.subtitle": "Selige tote le responsas appropriate",
"report.statuses.title": "Existe alcun messages que appoia iste reporto?",
"report.submit": "Submitter",
- "report.target": "Signalamento de {target}",
+ "report.target": "Reportage de {target}",
"report.thanks.take_action": "Ecce tu optiones pro controlar lo que tu vide sur Mastodon:",
"report.thanks.take_action_actionable": "Durante que nos revide isto, tu pote prender mesuras contra @{name}:",
"report.thanks.title": "Non vole vider isto?",
- "report.thanks.title_actionable": "Gratias pro signalar, nos investigara isto.",
+ "report.thanks.title_actionable": "Gratias pro reportar, nos investigara isto.",
"report.unfollow": "Cessar de sequer @{name}",
"report.unfollow_explanation": "Tu seque iste conto. Pro non plus vider su messages in tu fluxo de initio, cessa de sequer lo.",
"report_notification.attached_statuses": "{count, plural, one {{count} message} other {{count} messages}} annexate",
@@ -747,7 +747,7 @@
"status.replied_to": "Respondite a {name}",
"status.reply": "Responder",
"status.replyAll": "Responder al discussion",
- "status.report": "Signalar @{name}",
+ "status.report": "Reportar @{name}",
"status.sensitive_warning": "Contento sensibile",
"status.share": "Compartir",
"status.show_filter_reason": "Monstrar in omne caso",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index 7cd74fa5017e5c..277a87fe3ed118 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -414,7 +414,7 @@
"limited_account_hint.action": "그래도 프로필 보기",
"limited_account_hint.title": "이 프로필은 {domain}의 중재자에 의해 숨겨진 상태입니다.",
"link_preview.author": "{name}",
- "link_preview.more_from_author": "{name} 더 둘러보기",
+ "link_preview.more_from_author": "{name} 프로필 보기",
"lists.account.add": "리스트에 추가",
"lists.account.remove": "리스트에서 제거",
"lists.delete": "리스트 삭제",
diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json
index 48b23340088bdc..a49ec94d726b24 100644
--- a/app/javascript/mastodon/locales/la.json
+++ b/app/javascript/mastodon/locales/la.json
@@ -32,6 +32,7 @@
"compose_form.direct_message_warning_learn_more": "Discere plura",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
+ "compose_form.lock_disclaimer": "Tua ratio non est {clausa}. Quisquis te sequi potest ut visum accipiat nuntios tuos tantum pro sectatoribus.",
"compose_form.lock_disclaimer.lock": "clausum",
"compose_form.placeholder": "What is on your mind?",
"compose_form.publish_form": "Barrire",
@@ -91,6 +92,7 @@
"lightbox.next": "Secundum",
"navigation_bar.domain_blocks": "Hidden domains",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
+ "notification.moderation_warning.action_none": "Tua ratiō monitum moderātiōnis accēpit.",
"notification.reblog": "{name} boosted your status",
"notifications.filter.all": "Omnia",
"notifications.filter.polls": "Eventus electionis",
@@ -107,6 +109,8 @@
"onboarding.steps.setup_profile.title": "Customize your profile",
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
+ "onboarding.tips.accounts_from_other_servers": "Scisne? Quoniam Mastodon dēcentālis est, nōnnulla profīlia quae invenīs in servīs aliīs quam tuōrum erunt hospitāta. Tamen cum eīs sine impedīmentō interāgere potes! Servus eōrum in alterā parte nōminis eōrum est!",
+ "onboarding.tips.migration": "Scisne? Sī sentīs {domain} tibi in futūrō nōn esse optimam servī ēlēctiōnem, ad alium servum Mastodon sine amittendō sectātōribus tuīs migrāre potes. Etiam tuum servum hospitārī potes!",
"poll.closed": "Clausum",
"poll.vote": "Eligere",
"poll.voted": "Elegisti hoc responsum",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index 40541b37571e29..307230036cf4ce 100644
--- a/app/javascript/mastodon/locales/lt.json
+++ b/app/javascript/mastodon/locales/lt.json
@@ -217,7 +217,7 @@
"domain_block_modal.title": "Blokuoti domeną?",
"domain_block_modal.you_will_lose_followers": "Visi tavo sekėjai iš šio serverio bus pašalinti.",
"domain_block_modal.you_wont_see_posts": "Nematysi naudotojų įrašų ar pranešimų šiame serveryje.",
- "domain_pill.activitypub_lets_connect": "Tai leidžia tau sąveikauti su žmonėmis ne tik Mastodon, bet ir įvairiose socialinėse programėlėse.",
+ "domain_pill.activitypub_lets_connect": "Tai leidžia tau prisijungti ir bendrauti su žmonėmis ne tik Mastodon, bet ir įvairiose socialinėse programėlėse.",
"domain_pill.activitypub_like_language": "ActivityPub – tai tarsi kalba, kuria Mastodon kalba su kitais socialiniais tinklais.",
"domain_pill.server": "Serveris",
"domain_pill.their_handle": "Jų socialinis medijos vardas:",
@@ -433,7 +433,15 @@
"loading_indicator.label": "Kraunama…",
"media_gallery.toggle_visible": "{number, plural, one {Slėpti vaizdą} few {Slėpti vaizdus} many {Slėpti vaizdo} other {Slėpti vaizdų}}",
"moved_to_account_banner.text": "Tavo paskyra {disabledAccount} šiuo metu išjungta, nes persikėlei į {movedToAccount}.",
+ "mute_modal.hide_from_notifications": "Slėpti nuo pranešimų",
+ "mute_modal.hide_options": "Slėpti parinktis",
+ "mute_modal.indefinite": "Kol atšauksiu jų nutildymą",
"mute_modal.show_options": "Rodyti parinktis",
+ "mute_modal.they_can_mention_and_follow": "Jie gali tave paminėti ir sekti, bet tu jų nematysi.",
+ "mute_modal.they_wont_know": "Jie nežinos, kad buvo nutildyti.",
+ "mute_modal.title": "Nutildyti naudotoją?",
+ "mute_modal.you_wont_see_mentions": "Nematysi įrašus, kuriuose jie paminimi.",
+ "mute_modal.you_wont_see_posts": "Jie vis tiek gali matyti tavo įrašus, bet tu nematysi jų.",
"navigation_bar.about": "Apie",
"navigation_bar.advanced_interface": "Atidaryti išplėstinę žiniatinklio sąsają",
"navigation_bar.blocks": "Užblokuoti naudotojai",
@@ -478,6 +486,7 @@
"notification.own_poll": "Tavo apklausa baigėsi",
"notification.poll": "Apklausa, kurioje balsavai, pasibaigė",
"notification.reblog": "{name} pakėlė tavo įrašą",
+ "notification.relationships_severance_event": "Prarasti sąryšiai su {name}",
"notification.relationships_severance_event.learn_more": "Sužinoti daugiau",
"notification.relationships_severance_event.user_domain_block": "Tu užblokavai {target}. Pašalinama {followersCount} savo sekėjų ir {followingCount, plural, one {# paskyrą} few {# paskyrai} many {# paskyros} other {# paskyrų}}, kurios seki.",
"notification.status": "{name} ką tik paskelbė",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index c583b58220ead8..9b5be21f9d8bb6 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -391,6 +391,7 @@
"limited_account_hint.action": "Aj tak zobraziť profil",
"limited_account_hint.title": "Tento profil bol skrytý správcami servera {domain}.",
"link_preview.author": "Autor: {name}",
+ "link_preview.more_from_author": "Viac od {name}",
"lists.account.add": "Pridať do zoznamu",
"lists.account.remove": "Odstrániť zo zoznamu",
"lists.delete": "Vymazať zoznam",
@@ -411,6 +412,7 @@
"moved_to_account_banner.text": "Váš účet {disabledAccount} je momentálne deaktivovaný, pretože ste sa presunuli na {movedToAccount}.",
"mute_modal.hide_from_notifications": "Ukryť z upozornení",
"mute_modal.hide_options": "Skryť možnosti",
+ "mute_modal.indefinite": "Pokiaľ ich neodtíšim",
"mute_modal.show_options": "Zobraziť možnosti",
"mute_modal.title": "Stíšiť užívateľa?",
"navigation_bar.about": "O tomto serveri",
diff --git a/app/lib/admin/metrics/dimension/software_versions_dimension.rb b/app/lib/admin/metrics/dimension/software_versions_dimension.rb
index 97cdaf589e8c5e..9dd0d393f90bf1 100644
--- a/app/lib/admin/metrics/dimension/software_versions_dimension.rb
+++ b/app/lib/admin/metrics/dimension/software_versions_dimension.rb
@@ -10,7 +10,7 @@ def key
protected
def perform_query
- [mastodon_version, ruby_version, postgresql_version, redis_version, elasticsearch_version].compact
+ [mastodon_version, ruby_version, postgresql_version, redis_version, elasticsearch_version, libvips_version].compact
end
def mastodon_version
@@ -71,6 +71,17 @@ def elasticsearch_version
nil
end
+ def libvips_version
+ return unless Rails.configuration.x.use_vips
+
+ {
+ key: 'libvips',
+ human_key: 'libvips',
+ value: Vips.version_string,
+ human_value: Vips.version_string,
+ }
+ end
+
def redis_info
@redis_info ||= if redis.is_a?(Redis::Namespace)
redis.redis.info
diff --git a/app/lib/scope_transformer.rb b/app/lib/scope_transformer.rb
index adcb711f8ad2d1..7dda709229d031 100644
--- a/app/lib/scope_transformer.rb
+++ b/app/lib/scope_transformer.rb
@@ -11,6 +11,9 @@ def initialize(scope)
@namespace = scope[:namespace]&.to_s
@access = scope[:access] ? [scope[:access].to_s] : DEFAULT_ACCESS.dup
@term = scope[:term]&.to_s || DEFAULT_TERM
+
+ # # override for profile scope which is read only
+ @access = %w(read) if @term == 'profile'
end
def key
diff --git a/app/lib/video_metadata_extractor.rb b/app/lib/video_metadata_extractor.rb
index df5409375f16ef..2155766251e35d 100644
--- a/app/lib/video_metadata_extractor.rb
+++ b/app/lib/video_metadata_extractor.rb
@@ -41,8 +41,8 @@ def parse_metadata
@colorspace = video_stream[:pix_fmt]
@width = video_stream[:width]
@height = video_stream[:height]
- @frame_rate = video_stream[:avg_frame_rate] == '0/0' ? nil : Rational(video_stream[:avg_frame_rate])
- @r_frame_rate = video_stream[:r_frame_rate] == '0/0' ? nil : Rational(video_stream[:r_frame_rate])
+ @frame_rate = parse_framerate(video_stream[:avg_frame_rate])
+ @r_frame_rate = parse_framerate(video_stream[:r_frame_rate])
# For some video streams the frame_rate reported by `ffprobe` will be 0/0, but for these streams we
# should use `r_frame_rate` instead. Video screencast generated by Gnome Screencast have this issue.
@frame_rate ||= @r_frame_rate
@@ -55,4 +55,10 @@ def parse_metadata
@invalid = true if @metadata.key?(:error)
end
+
+ def parse_framerate(raw)
+ Rational(raw)
+ rescue ZeroDivisionError
+ nil
+ end
end
diff --git a/app/models/concerns/attachmentable.rb b/app/models/concerns/attachmentable.rb
index f457f5822b0b1b..a83e178fc4f2c9 100644
--- a/app/models/concerns/attachmentable.rb
+++ b/app/models/concerns/attachmentable.rb
@@ -69,7 +69,7 @@ def appropriate_extension(attachment)
original_extension = Paperclip::Interpolations.extension(attachment, :original)
proper_extension = extensions_for_mime_type.first.to_s
extension = extensions_for_mime_type.include?(original_extension) ? original_extension : proper_extension
- extension = 'jpeg' if extension == 'jpe'
+ extension = 'jpeg' if ['jpe', 'jfif'].include?(extension)
extension
end
diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb
index a043c3ae1043a5..e1872c25a21565 100644
--- a/app/models/custom_emoji.rb
+++ b/app/models/custom_emoji.rb
@@ -42,7 +42,7 @@ class CustomEmoji < ApplicationRecord
has_one :local_counterpart, -> { where(domain: nil) }, class_name: 'CustomEmoji', primary_key: :shortcode, foreign_key: :shortcode, inverse_of: false, dependent: nil
has_many :emoji_reactions, inverse_of: :custom_emoji, dependent: :destroy
- has_attached_file :image, styles: { static: { format: 'png', convert_options: '-coalesce +profile "!icc,*" +set date:modify +set date:create +set date:timestamp' } }, validate_media_type: false
+ has_attached_file :image, styles: { static: { format: 'png', convert_options: '-coalesce +profile "!icc,*" +set date:modify +set date:create +set date:timestamp', file_geometry_parser: FastGeometryParser } }, validate_media_type: false, processors: [:lazy_thumbnail]
normalizes :domain, with: ->(domain) { domain.downcase }
diff --git a/app/models/link_feed.rb b/app/models/link_feed.rb
new file mode 100644
index 00000000000000..32efb331b62656
--- /dev/null
+++ b/app/models/link_feed.rb
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+class LinkFeed < PublicFeed
+ # @param [PreviewCard] preview_card
+ # @param [Account] account
+ # @param [Hash] options
+ def initialize(preview_card, account, options = {})
+ @preview_card = preview_card
+ super(account, options)
+ end
+
+ # @param [Integer] limit
+ # @param [Integer] max_id
+ # @param [Integer] since_id
+ # @param [Integer] min_id
+ # @return [Array]
+ def get(limit, max_id = nil, since_id = nil, min_id = nil)
+ scope = public_scope
+
+ scope.merge!(discoverable)
+ scope.merge!(attached_to_preview_card)
+
+ scope.to_a_paginated_by_id(limit, max_id: max_id, since_id: since_id, min_id: min_id)
+ end
+
+ private
+
+ def attached_to_preview_card
+ Status.joins(:preview_cards_status).where(preview_cards_status: { preview_card_id: @preview_card.id })
+ end
+
+ def discoverable
+ Account.discoverable
+ end
+end
diff --git a/app/models/mention.rb b/app/models/mention.rb
index 5addfcc583c472..5c6ac0894a2993 100644
--- a/app/models/mention.rb
+++ b/app/models/mention.rb
@@ -5,10 +5,10 @@
# Table name: mentions
#
# id :bigint(8) not null, primary key
-# status_id :bigint(8)
+# status_id :bigint(8) not null
# created_at :datetime not null
# updated_at :datetime not null
-# account_id :bigint(8)
+# account_id :bigint(8) not null
# silent :boolean default(FALSE), not null
#
diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb
index 3bb6b7a7d3d349..d9fbb6c70e03ff 100644
--- a/app/models/preview_card.rb
+++ b/app/models/preview_card.rb
@@ -57,7 +57,11 @@ class PreviewCard < ApplicationRecord
has_one :trend, class_name: 'PreviewCardTrend', inverse_of: :preview_card, dependent: :destroy
belongs_to :author_account, class_name: 'Account', optional: true
- has_attached_file :image, processors: [:thumbnail, :blurhash_transcoder], styles: ->(f) { image_styles(f) }, convert_options: { all: '-quality 90 +profile "!icc,*" +set date:modify +set date:create +set date:timestamp' }, validate_media_type: false
+ has_attached_file :image,
+ processors: [Rails.configuration.x.use_vips ? :lazy_thumbnail : :thumbnail, :blurhash_transcoder],
+ styles: ->(f) { image_styles(f) },
+ convert_options: { all: '-quality 90 +profile "!icc,*" +set date:modify +set date:create +set date:timestamp' },
+ validate_media_type: false
validates :url, presence: true, uniqueness: true, url: true
validates_attachment_content_type :image, content_type: IMAGE_MIME_TYPES
diff --git a/app/models/web/push_subscription.rb b/app/models/web/push_subscription.rb
index a3a2ec3f03eeb7..b482ad3afe25c7 100644
--- a/app/models/web/push_subscription.rb
+++ b/app/models/web/push_subscription.rb
@@ -21,10 +21,12 @@ class Web::PushSubscription < ApplicationRecord
has_one :session_activation, foreign_key: 'web_push_subscription_id', inverse_of: :web_push_subscription, dependent: nil
- validates :endpoint, presence: true
+ validates :endpoint, presence: true, url: true
validates :key_p256dh, presence: true
validates :key_auth, presence: true
+ validates_with WebPushKeyValidator
+
delegate :locale, to: :associated_user
def encrypt(payload)
diff --git a/app/serializers/rest/notification_group_serializer.rb b/app/serializers/rest/notification_group_serializer.rb
index 6c1d2465d25cb8..05b51b07a5f66f 100644
--- a/app/serializers/rest/notification_group_serializer.rb
+++ b/app/serializers/rest/notification_group_serializer.rb
@@ -11,6 +11,7 @@ class REST::NotificationGroupSerializer < ActiveModel::Serializer
belongs_to :target_status, key: :status, if: :status_type?, serializer: REST::StatusSerializer
belongs_to :report, if: :report_type?, serializer: REST::ReportSerializer
belongs_to :account_relationship_severance_event, key: :event, if: :relationship_severance_event?, serializer: REST::AccountRelationshipSeveranceEventSerializer
+ belongs_to :account_warning, key: :moderation_warning, if: :moderation_warning_event?, serializer: REST::AccountWarningSerializer
def status_type?
[:favourite, :reblog, :status, :mention, :poll, :update].include?(object.type)
@@ -24,6 +25,10 @@ def relationship_severance_event?
object.type == :severed_relationships
end
+ def moderation_warning_event?
+ object.type == :moderation_warning
+ end
+
def page_min_id
range = instance_options[:group_metadata][object.group_key]
range.present? ? range[:min_id].to_s : object.notification.id.to_s
diff --git a/app/validators/web_push_key_validator.rb b/app/validators/web_push_key_validator.rb
new file mode 100644
index 00000000000000..a8ad5c9c6bbaea
--- /dev/null
+++ b/app/validators/web_push_key_validator.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class WebPushKeyValidator < ActiveModel::Validator
+ def validate(subscription)
+ begin
+ Webpush::Encryption.encrypt('validation_test', subscription.key_p256dh, subscription.key_auth)
+ rescue ArgumentError, OpenSSL::PKey::EC::Point::Error
+ subscription.errors.add(:base, I18n.t('crypto.errors.invalid_key'))
+ end
+ end
+end
diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml
index 5957d1dbf59813..ec6caa33ada799 100755
--- a/app/views/layouts/application.html.haml
+++ b/app/views/layouts/application.html.haml
@@ -43,6 +43,6 @@
%body{ class: body_classes }
= content_for?(:content) ? yield(:content) : yield
- .logo-resources{ 'tabindex' => '-1', 'inert' => true, 'aria-hidden' => true }
+ .logo-resources{ 'tabindex' => '-1', 'inert' => true, 'aria-hidden' => 'true' }
= inline_svg_tag 'logo-symbol-icon.svg'
= inline_svg_tag 'logo-symbol-wordmark.svg'
diff --git a/app/views/layouts/embedded.html.haml b/app/views/layouts/embedded.html.haml
index da0a73bdc68877..871220edd707e1 100644
--- a/app/views/layouts/embedded.html.haml
+++ b/app/views/layouts/embedded.html.haml
@@ -21,5 +21,5 @@
%body.embed
= yield
- .logo-resources{ 'tabindex' => '-1', 'inert' => true, 'aria-hidden' => true }
+ .logo-resources{ 'tabindex' => '-1', 'inert' => true, 'aria-hidden' => 'true' }
= inline_svg_tag 'logo-symbol-icon.svg'
diff --git a/bin/setup b/bin/setup
index 90700ac4f9a38d..4ccf4594b4e4d7 100755
--- a/bin/setup
+++ b/bin/setup
@@ -5,7 +5,7 @@ require "fileutils"
APP_ROOT = File.expand_path('..', __dir__)
def system!(*args)
- system(*args) || abort("\n== Command #{args} failed ==")
+ system(*args, exception: true)
end
FileUtils.chdir APP_ROOT do
@@ -13,17 +13,13 @@ FileUtils.chdir APP_ROOT do
# This script is idempotent, so that you can run it at any time and get an expectable outcome.
# Add necessary setup steps to this file.
- puts '== Installing dependencies =='
+ puts "\n== Installing Ruby dependencies =="
system! 'gem install bundler --conservative'
system('bundle check') || system!('bundle install')
- # Install JavaScript dependencies
- system! 'bin/yarn'
-
- # puts "\n== Copying sample files =="
- # unless File.exist?('config/database.yml')
- # FileUtils.cp 'config/database.yml.sample', 'config/database.yml'
- # end
+ puts "\n== Installing JS dependencies =="
+ system! 'corepack enable'
+ system! 'bin/yarn install --immutable'
puts "\n== Preparing database =="
system! 'bin/rails db:prepare'
diff --git a/config/application.rb b/config/application.rb
index a8e313069d93b7..069eb3774063cf 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -27,7 +27,7 @@
require_relative '../lib/redis/namespace_extensions'
require_relative '../lib/paperclip/url_generator_extensions'
require_relative '../lib/paperclip/attachment_extensions'
-require_relative '../lib/paperclip/lazy_thumbnail'
+
require_relative '../lib/paperclip/gif_transcoder'
require_relative '../lib/paperclip/media_type_spoof_detector_extensions'
require_relative '../lib/paperclip/transcoder'
@@ -100,6 +100,14 @@ class Application < Rails::Application
config.before_configuration do
require 'mastodon/redis_config'
+
+ config.x.use_vips = ENV['MASTODON_USE_LIBVIPS'] == 'true'
+
+ if config.x.use_vips
+ require_relative '../lib/paperclip/vips_lazy_thumbnail'
+ else
+ require_relative '../lib/paperclip/lazy_thumbnail'
+ end
end
config.to_prepare do
diff --git a/config/environments/development.rb b/config/environments/development.rb
index a3254125c039be..cc601bde3f82d3 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -8,7 +8,7 @@
# In the development environment your application's code is reloaded any time
# it changes. This slows down response time but is perfect for development
# since you don't have to restart the web server when you make code changes.
- config.cache_classes = false
+ config.enable_reloading = true
# Do not eager load code on boot.
config.eager_load = false
diff --git a/config/environments/test.rb b/config/environments/test.rb
index 49b0c1f3031b8d..716bf8d31f194e 100644
--- a/config/environments/test.rb
+++ b/config/environments/test.rb
@@ -61,12 +61,6 @@
config.i18n.default_locale = :en
config.i18n.fallbacks = true
- config.to_prepare do
- # Force Status to always be SHAPE_TOO_COMPLEX
- # Ref: https://github.com/mastodon/mastodon/issues/23644
- 10.times { |i| Status.allocate.instance_variable_set(:"@ivar_#{i}", nil) }
- end
-
# Tell Active Support which deprecation messages to disallow.
config.active_support.disallowed_deprecation_warnings = []
diff --git a/config/initializers/doorkeeper.rb b/config/initializers/doorkeeper.rb
index 97b2c4d2822d4e..596110ac7795b3 100644
--- a/config/initializers/doorkeeper.rb
+++ b/config/initializers/doorkeeper.rb
@@ -74,7 +74,8 @@
# For more information go to
# https://github.com/doorkeeper-gem/doorkeeper/wiki/Using-Scopes
default_scopes :read
- optional_scopes :write,
+ optional_scopes :profile,
+ :write,
:'write:accounts',
:'write:blocks',
:'write:bookmarks',
@@ -89,7 +90,6 @@
:'write:reports',
:'write:statuses',
:read,
- :'read:me',
:'read:accounts',
:'read:blocks',
:'read:bookmarks',
diff --git a/config/initializers/paperclip.rb b/config/initializers/paperclip.rb
index 5b9365a5305be7..070d250bf30aea 100644
--- a/config/initializers/paperclip.rb
+++ b/config/initializers/paperclip.rb
@@ -3,6 +3,8 @@
Paperclip::DataUriAdapter.register
Paperclip::ResponseWithLimitAdapter.register
+PATH = ':prefix_url:class/:attachment/:id_partition/:style/:filename'
+
Paperclip.interpolates :filename do |attachment, style|
if style == :original
attachment.original_filename
@@ -29,7 +31,7 @@
Paperclip::Attachment.default_options.merge!(
use_timestamp: false,
- path: ':prefix_url:class/:attachment/:id_partition/:style/:filename',
+ path: PATH,
storage: :fog
)
@@ -40,6 +42,8 @@
s3_protocol = ENV.fetch('S3_PROTOCOL') { 'https' }
s3_hostname = ENV.fetch('S3_HOSTNAME') { "s3-#{s3_region}.amazonaws.com" }
+ Paperclip::Attachment.default_options[:path] = ENV.fetch('S3_KEY_PREFIX') + "/#{PATH}" if ENV.has_key?('S3_KEY_PREFIX')
+
Paperclip::Attachment.default_options.merge!(
storage: :s3,
s3_protocol: s3_protocol,
@@ -64,7 +68,7 @@
http_open_timeout: ENV.fetch('S3_OPEN_TIMEOUT') { '5' }.to_i,
http_read_timeout: ENV.fetch('S3_READ_TIMEOUT') { '5' }.to_i,
http_idle_timeout: 5,
- retry_limit: 0,
+ retry_limit: ENV.fetch('S3_RETRY_LIMIT') { '0' }.to_i,
}
)
@@ -159,7 +163,7 @@ def copy_to_local_file(style, local_dest_path)
Paperclip::Attachment.default_options.merge!(
storage: :filesystem,
path: File.join(ENV.fetch('PAPERCLIP_ROOT_PATH', File.join(':rails_root', 'public', 'system')), ':prefix_path:class', ':attachment', ':id_partition', ':style', ':filename'),
- url: "#{ENV.fetch('PAPERCLIP_ROOT_URL', '/system')}/:prefix_url:class/:attachment/:id_partition/:style/:filename"
+ url: ENV.fetch('PAPERCLIP_ROOT_URL', '/system') + "/#{PATH}"
)
end
diff --git a/config/initializers/vips.rb b/config/initializers/vips.rb
new file mode 100644
index 00000000000000..25a17b2a171fca
--- /dev/null
+++ b/config/initializers/vips.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+if Rails.configuration.x.use_vips
+ ENV['VIPS_BLOCK_UNTRUSTED'] = 'true'
+
+ require 'vips'
+
+ abort('Incompatible libvips version, please install libvips >= 8.13') unless Vips.at_least_libvips?(8, 13)
+
+ Vips.block('VipsForeign', true)
+
+ %w(
+ VipsForeignLoadNsgif
+ VipsForeignLoadJpeg
+ VipsForeignLoadPng
+ VipsForeignLoadWebp
+ VipsForeignLoadHeif
+ VipsForeignSavePng
+ VipsForeignSaveSpng
+ VipsForeignSaveJpeg
+ VipsForeignSaveWebp
+ ).each do |operation|
+ Vips.block(operation, false)
+ end
+
+ Vips.block_untrusted(true)
+end
diff --git a/config/locales/activerecord.ia.yml b/config/locales/activerecord.ia.yml
index b1dd90bc368b9c..bf1fbc67eff547 100644
--- a/config/locales/activerecord.ia.yml
+++ b/config/locales/activerecord.ia.yml
@@ -19,7 +19,7 @@ ia:
account:
attributes:
username:
- invalid: debe continer solmente litteras, numeros e tractos de sublineamento
+ invalid: debe continer solmente litteras, numeros e lineettas basse
reserved: es reservate
admin/webhook:
attributes:
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index ec32f771e929c8..c91ae64a7ae0de 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -466,7 +466,7 @@ ca:
status: Estat
suppress: Suprimeix les recomanacions de seguiment
suppressed: Suprimit
- title: Seguir les recomanacions
+ title: Recomanacions de comptes a seguir
unsuppress: Restaurar les recomanacions de seguiment
instances:
availability:
diff --git a/config/locales/devise.ia.yml b/config/locales/devise.ia.yml
index e6ae6d4afbbff4..8e073c9efbc0b8 100644
--- a/config/locales/devise.ia.yml
+++ b/config/locales/devise.ia.yml
@@ -3,8 +3,8 @@ ia:
devise:
confirmations:
confirmed: Tu conto de e-mail ha essite confirmate con successo.
- send_instructions: Tu recipera un e-mail con instructiones pro confirmar tu adresse de e-mail in poc minutas. Per favor verifica tu dossier de spam si tu non lo recipe.
- send_paranoid_instructions: Si tu adresse de e-mail existe in nostre base de datos, tu recipera un e-mail con instructiones pro confirmar tu adresse de e-mail in poc minutas. Per favor verifica tu dossier de spam si tu non lo recipe.
+ send_instructions: Tu recipera un e-mail con instructiones pro confirmar tu adresse de e-mail in poc minutas. Per favor consulta tu dossier de spam si tu non lo recipe.
+ send_paranoid_instructions: Si tu adresse de e-mail existe in nostre base de datos, tu recipera un e-mail con instructiones pro confirmar tu adresse de e-mail in poc minutas. Per favor consulta tu dossier de spam si tu non lo recipe.
failure:
already_authenticated: Tu ha jam aperite session.
inactive: Tu conto non es ancora activate.
@@ -27,7 +27,7 @@ ia:
subject: 'Mastodon: Instructiones de confirmation pro %{instance}'
title: Verificar adresse de e-mail
email_changed:
- explanation: 'Le adresse de e-mail pro tu conto essera cambiate a:'
+ explanation: 'Le adresse de e-mail pro tu conto se cambia in:'
extra: Si tu non ha cambiate de adresse de e-mail, es probabile que alcuno ha ganiate le accesso a tu conto. Per favor cambia immediatemente tu contrasigno o contacta le administrator del servitor si tu non pote acceder a tu conto.
subject: 'Mastodon: E-mail cambiate'
title: Nove adresse de e-mail
@@ -37,8 +37,8 @@ ia:
subject: 'Mastodon: Contrasigno cambiate'
title: Contrasigno cambiate
reconfirmation_instructions:
- explanation: Confirma le nove adresse pro cambiar tu email.
- extra: Si non es tu qui ha initiate iste cambiamento, per favor ignora iste e-mail. Le adresse de e-mail pro le conto de Mastodon non cambiara usque tu accede al ligamine hic supra.
+ explanation: Confirma le nove adresse pro cambiar tu adresse de e-mail.
+ extra: Si non es tu qui ha initiate iste cambiamento, per favor ignora iste e-mail. Le adresse de e-mail pro le conto de Mastodon non cambiara usque tu accede al ligamine supra.
subject: 'Mastodon: Confirmar e-mail pro %{instance}'
title: Verificar adresse de e-mail
reset_password_instructions:
@@ -49,19 +49,19 @@ ia:
title: Reinitialisar contrasigno
two_factor_disabled:
explanation: Ora es possibile aperir session con solmente le adresse de e-mail e contrasigno.
- subject: 'Mastodon: Authentication bifactorial disactivate'
- subtitle: Le authentication bifactorial ha essite disactivate pro tu conto.
+ subject: 'Mastodon: Authentication a duo factores disactivate'
+ subtitle: Le authentication a duo factores ha essite disactivate pro tu conto.
title: A2F disactivate
two_factor_enabled:
explanation: Pro le apertura de session essera necessari un token generate per le application TOTP accopulate.
- subject: 'Mastodon: Authentication bifactorial activate'
- subtitle: Le authentication bifactorial ha essite activate pro tu conto.
+ subject: 'Mastodon: Authentication a duo factores activate'
+ subtitle: Le authentication a duo factores ha essite activate pro tu conto.
title: A2F activate
two_factor_recovery_codes_changed:
explanation: Le ancian codices de recuperation ha essite invalidate e nove codices ha essite generate.
- subject: 'Mastodon: Codices de recuperation regenerate'
+ subject: 'Mastodon: Codices de recuperation A2F regenerate'
subtitle: Le ancian codices de recuperation ha essite invalidate e nove codices ha essite generate.
- title: Codices de recuperation cambiate
+ title: Codices de recuperation A2F cambiate
unlock_instructions:
subject: 'Mastodon: Instructiones pro disblocar'
webauthn_credential:
@@ -84,11 +84,11 @@ ia:
subject: 'Mastodon: authentication de clave de securitate activate'
title: Claves de securitate activate
omniauth_callbacks:
- failure: Impossibile authenticar te ab %{kind} perque “%{reason}”.
- success: Authenticate con successo ab conto %{kind}.
+ failure: Non poteva authenticar te desde %{kind} perque “%{reason}”.
+ success: Authenticate correctemente desde le conto %{kind}.
passwords:
- no_token: Tu non pote acceder iste pagina sin venir ab un email de redefinition de contrasigno. Si tu veni ab un email de redefinition de contrasigno, verifica que tu usava le integre URL fornite.
- send_instructions: Si tu adresse de e-mail existe in nostre base de datos, tu recipera un ligamine de recuperation de contrasigno in tu adresse de e-mail in poc minutas. Per favor verifica tu dossier de spam si tu non lo recipe.
+ no_token: Non es possibile acceder a iste pagina sin venir de un e-mail de redefinition de contrasigno. Si tu veni de un e-mail de redefinition de contrasigno, per favor assecura te de haber usate le URL complete fornite.
+ send_instructions: Si tu adresse de e-mail existe in nostre base de datos, tu recipera un ligamine de recuperation de contrasigno a tu adresse de e-mail in poc minutas. Per favor consulta tu dossier de spam si tu non lo recipe.
send_paranoid_instructions: Si tu adresse de e-mail existe in nostre base de datos, tu recipera un ligamine de recuperation de contrasigno in tu adresse de e-mail in poc minutas. Per favor verifica tu dossier de spam si tu non lo recipe.
updated: Tu contrasigno ha essite cambiate. Tu ha ora aperite session.
updated_not_active: Tu contrasigno ha essite cambiate.
@@ -98,17 +98,17 @@ ia:
signed_up_but_inactive: Tu te ha inscribite con successo. Nonobstante, nos non poteva aperir tu session perque tu conto non es ancora activate.
signed_up_but_locked: Tu te ha inscribite con successo. Nonobstante, nos non poteva aperir tu session perque tu conto es serrate.
signed_up_but_pending: Un message con un ligamine de confirmation ha essite inviate a tu adresse de email. Post que tu clicca sur le ligamine, nos revidera tu demanda. Tu essera notificate si illo es approbate.
- signed_up_but_unconfirmed: Un message con un ligamine de confirmation ha essite inviate a tu adresse de e-mail. Per favor seque le ligamine pro activar tu conto. Verifica tu dossier de spam si tu non recipe iste e-mail.
- update_needs_confirmation: Tu ha actualisate tu conto con successo, ma nos debe verificar tu nove adresse de e-mail. Accede a tu e-mail e seque le ligamine de confirmation pro confirmar tu nove adresse de e-mail. Verifica tu dossier de spam si tu non recipe iste e-mail.
+ signed_up_but_unconfirmed: Un message con un ligamine de confirmation ha essite inviate a tu adresse de e-mail. Per favor seque le ligamine pro activar tu conto. Consulta tu dossier de spam si tu non recipe iste e-mail.
+ update_needs_confirmation: Tu ha actualisate tu conto con successo, ma nos debe verificar tu nove adresse de e-mail. Accede a tu e-mail e seque le ligamine de confirmation pro confirmar tu nove adresse de e-mail. Consulta tu dossier de spam si tu non recipe iste e-mail.
updated: Tu conto ha essite actualisate con successo.
sessions:
already_signed_out: Session claudite con successo.
signed_in: Session aperite con successo.
signed_out: Session claudite con successo.
unlocks:
- send_instructions: Tu recipera un e-mail con instructiones explicante como disserrar tu conto in alcun minutas. Verifica tu dossier de spam si tu non recipe iste e-mail.
+ send_instructions: Tu recipera un e-mail con instructiones explicante como disserrar tu conto in alcun minutas. Consulta tu dossier de spam si tu non recipe iste e-mail.
send_paranoid_instructions: Si tu conto existe, tu recipera un email con instructiones explicante como disserrar lo in alcun minutas. Verifica tu dossier de spam si tu non recipe iste e-mail.
- unlocked: Tu conto ha essite disserrate con successo. Aperi session pro continuar.
+ unlocked: Tu conto ha essite disserrate con successo. Per favor aperi session pro continuar.
errors:
messages:
already_confirmed: jam esseva confirmate, tenta aperir session
diff --git a/config/locales/devise.sv.yml b/config/locales/devise.sv.yml
index 27d424f6189463..1e14a7de528314 100644
--- a/config/locales/devise.sv.yml
+++ b/config/locales/devise.sv.yml
@@ -30,14 +30,14 @@ sv:
explanation: 'E-postadressen för ditt konto ändras till:'
extra: Om du inte ändrade din e-post är det troligt att någon har fått tillgång till ditt konto. Vänligen ändra ditt lösenord omedelbart eller kontakta serveradministratören om du är utelåst från ditt konto.
subject: 'Mastodon: e-post ändrad'
- title: Ny e-post adress
+ title: Ny e-postadress
password_change:
explanation: Lösenordet för ditt konto har ändrats.
extra: Om du inte ändrade ditt lösenord är det troligt att någon har fått tillgång till ditt konto. Vänligen ändra ditt lösenord omedelbart eller kontakta serveradministratören om du är utelåst från ditt konto.
subject: 'Mastodon: Lösenordet har ändrats'
title: Lösenordet har ändrats
reconfirmation_instructions:
- explanation: Bekräfta den nya adressen för att ändra din e-post adress.
+ explanation: Bekräfta den nya adressen för att ändra din e-postadress.
extra: Om den här ändringen inte initierades av dig kan du ignorera det här e-postmeddelandet. E-postadressen för Mastodon-kontot ändras inte förrän du klickar på länken ovan.
subject: 'Mastodon: Bekräfta e-post för %{instance}'
title: Verifiera e-postadress
@@ -63,7 +63,7 @@ sv:
subtitle: De tidigare återhämtningskoderna har ogiltigförklarats och nya har skapats.
title: 2FA-återställningskoder ändrades
unlock_instructions:
- subject: 'Mastodon: Lås upp instruktioner'
+ subject: 'Mastodon: Instruktioner för upplåsning'
webauthn_credential:
added:
explanation: Följande säkerhetsnyckel har lagts till i ditt konto
diff --git a/config/locales/doorkeeper.be.yml b/config/locales/doorkeeper.be.yml
index 5f0536c8da0730..748cbeafa122e5 100644
--- a/config/locales/doorkeeper.be.yml
+++ b/config/locales/doorkeeper.be.yml
@@ -174,7 +174,6 @@ be:
read:filters: бачыць свае фільтры
read:follows: бачыць свае падпіскі
read:lists: бачыць свае спісы
- read:me: чытайце толькі базавую інфармацыю аб сваім уліковым запісе
read:mutes: бачыць свае ігнараванні
read:notifications: бачыць свае абвесткі
read:reports: бачыць свае скаргі
diff --git a/config/locales/doorkeeper.bg.yml b/config/locales/doorkeeper.bg.yml
index 7633156d789b8d..dd536618276155 100644
--- a/config/locales/doorkeeper.bg.yml
+++ b/config/locales/doorkeeper.bg.yml
@@ -135,6 +135,7 @@ bg:
media: Прикачена мултимедия
mutes: Заглушения
notifications: Известия
+ profile: Вашият профил в Mastodon
push: Изскачащи известия
reports: Доклади
search: Търсене
@@ -165,6 +166,7 @@ bg:
admin:write:reports: извършване на действия за модериране на докладвания
crypto: употреба на цялостно шифроване
follow: промяна на взаимоотношенията на акаунта
+ profile: само за четене на сведенията ви за профила на акаунта
push: получаване на вашите изскачащи известия
read: четене на всички данни от акаунта ви
read:accounts: преглед на информация за акаунти
@@ -174,7 +176,6 @@ bg:
read:filters: преглед на вашите филтри
read:follows: преглед на вашите последвания
read:lists: преглед на вашите списъци
- read:me: четене само на основните сведения за акаунта ви
read:mutes: преглед на вашите заглушавания
read:notifications: преглед на вашите известия
read:reports: преглед на вашите докладвания
diff --git a/config/locales/doorkeeper.br.yml b/config/locales/doorkeeper.br.yml
index 7b7f4155bd46d9..119d8681f0a00f 100644
--- a/config/locales/doorkeeper.br.yml
+++ b/config/locales/doorkeeper.br.yml
@@ -104,6 +104,7 @@ br:
lists: Listennoù
media: Restroù media stag
mutes: Kuzhet
+ profile: Ho profil Mastodon
search: Klask
statuses: Toudoù
layouts:
diff --git a/config/locales/doorkeeper.ca.yml b/config/locales/doorkeeper.ca.yml
index 80827a87da20bb..0323656dabfadd 100644
--- a/config/locales/doorkeeper.ca.yml
+++ b/config/locales/doorkeeper.ca.yml
@@ -135,6 +135,7 @@ ca:
media: Adjunts multimèdia
mutes: Silenciats
notifications: Notificacions
+ profile: El vostre perfil de Mastodon
push: Notificacions push
reports: Informes
search: Cerca
@@ -165,6 +166,7 @@ ca:
admin:write:reports: fer l'acció de moderació en els informes
crypto: usa xifrat d'extrem a extrem
follow: modifica les relacions del compte
+ profile: només llegir la informació del perfil del vostre compte
push: rebre notificacions push del teu compte
read: llegir les dades del teu compte
read:accounts: mira informació dels comptes
@@ -174,7 +176,6 @@ ca:
read:filters: mira els teus filtres
read:follows: mira els teus seguiments
read:lists: mira les teves llistes
- read:me: llegir només la informació bàsica del vostre compte
read:mutes: mira els teus silenciats
read:notifications: mira les teves notificacions
read:reports: mira els teus informes
diff --git a/config/locales/doorkeeper.cs.yml b/config/locales/doorkeeper.cs.yml
index 9719a9a246ae3e..be2a4d971a5039 100644
--- a/config/locales/doorkeeper.cs.yml
+++ b/config/locales/doorkeeper.cs.yml
@@ -174,7 +174,6 @@ cs:
read:filters: vidět vaše filtry
read:follows: vidět vaše sledování
read:lists: vidět vaše seznamy
- read:me: číst pouze základní informace vašeho účtu
read:mutes: vidět vaše skrytí
read:notifications: vidět vaše oznámení
read:reports: vidět vaše hlášení
diff --git a/config/locales/doorkeeper.cy.yml b/config/locales/doorkeeper.cy.yml
index 88cd2b9d53cb77..e79aa0359f67b8 100644
--- a/config/locales/doorkeeper.cy.yml
+++ b/config/locales/doorkeeper.cy.yml
@@ -174,7 +174,6 @@ cy:
read:filters: gweld eich hidlwyr
read:follows: gweld eich dilynwyr
read:lists: gweld eich rhestrau
- read:me: darllen dim ond manylion elfennol eich cyfrif
read:mutes: gweld eich anwybyddiadau
read:notifications: gweld eich hysbysiadau
read:reports: gweld eich adroddiadau
diff --git a/config/locales/doorkeeper.da.yml b/config/locales/doorkeeper.da.yml
index ed10e14e249d7a..d462f43d3bc051 100644
--- a/config/locales/doorkeeper.da.yml
+++ b/config/locales/doorkeeper.da.yml
@@ -135,6 +135,7 @@ da:
media: Medievedhæftninger
mutes: Tavsgørelser
notifications: Notifikationer
+ profile: Din Mastodon-profil
push: Push-notifikationer
reports: Anmeldelser
search: Søgning
@@ -165,6 +166,7 @@ da:
admin:write:reports: udfør modereringshandlinger på anmeldelser
crypto: benyt ende-til-ende kryptering
follow: ændre kontorelationer
+ profile: læs kun kontoprofiloplysningerne
push: modtag dine push-notifikationer
read: læs alle dine kontodata
read:accounts: se kontooplysninger
@@ -174,7 +176,6 @@ da:
read:filters: se dine filtre
read:follows: se dine følger
read:lists: se dine lister
- read:me: læs kun kontoens basisoplysninger
read:mutes: se dine tavsgørelser
read:notifications: se dine notifikationer
read:reports: se dine anmeldelser
diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml
index 80d612255b9cc3..f303aa23a26a01 100644
--- a/config/locales/doorkeeper.de.yml
+++ b/config/locales/doorkeeper.de.yml
@@ -135,6 +135,7 @@ de:
media: Medienanhänge
mutes: Stummschaltungen
notifications: Benachrichtigungen
+ profile: Dein Mastodon-Profil
push: Push-Benachrichtigungen
reports: Meldungen
search: Suche
@@ -165,6 +166,7 @@ de:
admin:write:reports: Moderationsaktionen auf Meldungen ausführen
crypto: Ende-zu-Ende-Verschlüsselung verwenden
follow: Kontenbeziehungen verändern
+ profile: nur die Profilinformationen deines Kontos lesen
push: deine Push-Benachrichtigungen erhalten
read: all deine Daten lesen
read:accounts: deine Kontoinformationen einsehen
@@ -174,7 +176,6 @@ de:
read:filters: deine Filter einsehen
read:follows: sehen, wem du folgst
read:lists: deine Listen sehen
- read:me: nur deine grundlegenden Kontoinformationen lesen
read:mutes: deine Stummschaltungen einsehen
read:notifications: deine Benachrichtigungen sehen
read:reports: deine Meldungen sehen
diff --git a/config/locales/doorkeeper.en-GB.yml b/config/locales/doorkeeper.en-GB.yml
index 2e537c5301937e..b3ceffb13f7544 100644
--- a/config/locales/doorkeeper.en-GB.yml
+++ b/config/locales/doorkeeper.en-GB.yml
@@ -174,7 +174,6 @@ en-GB:
read:filters: see your filters
read:follows: see your follows
read:lists: see your lists
- read:me: read only your account's basic information
read:mutes: see your mutes
read:notifications: see your notifications
read:reports: see your reports
diff --git a/config/locales/doorkeeper.en.yml b/config/locales/doorkeeper.en.yml
index 98776f2193fba6..b623cc713506fe 100644
--- a/config/locales/doorkeeper.en.yml
+++ b/config/locales/doorkeeper.en.yml
@@ -135,6 +135,7 @@ en:
media: Media attachments
mutes: Mutes
notifications: Notifications
+ profile: Your Mastodon profile
push: Push notifications
reports: Reports
search: Search
@@ -165,6 +166,7 @@ en:
admin:write:reports: perform moderation actions on reports
crypto: use end-to-end encryption
follow: modify account relationships
+ profile: read only your account's profile information
push: receive your push notifications
read: read all your account's data
read:accounts: see accounts information
@@ -174,7 +176,6 @@ en:
read:filters: see your filters
read:follows: see your follows
read:lists: see your lists
- read:me: read only your account's basic information
read:mutes: see your mutes
read:notifications: see your notifications
read:reports: see your reports
diff --git a/config/locales/doorkeeper.es-AR.yml b/config/locales/doorkeeper.es-AR.yml
index 47cfc451aa2668..0b04696b6a14bb 100644
--- a/config/locales/doorkeeper.es-AR.yml
+++ b/config/locales/doorkeeper.es-AR.yml
@@ -135,6 +135,7 @@ es-AR:
media: Adjuntos de medios
mutes: Silenciados
notifications: Notificaciones
+ profile: Tu perfil de Mastodon
push: Notificaciones push
reports: Denuncias
search: Buscar
@@ -165,6 +166,7 @@ es-AR:
admin:write:reports: ejecutar acciones de moderación en denuncias
crypto: usar cifrado de extremo a extremo
follow: modificar relaciones de cuenta
+ profile: leer solo la información del perfil de tu cuenta
push: recibir tus notificaciones push
read: leer todos los datos de tu cuenta
read:accounts: ver información de cuentas
@@ -174,7 +176,6 @@ es-AR:
read:filters: ver tus filtros
read:follows: ver qué cuentas seguís
read:lists: ver tus listas
- read:me: leer solo la información básica de tu cuenta
read:mutes: ver qué cuentas silenciaste
read:notifications: ver tus notificaciones
read:reports: ver tus denuncias
diff --git a/config/locales/doorkeeper.es-MX.yml b/config/locales/doorkeeper.es-MX.yml
index e56e0df3ba9bfa..54386c4c3326de 100644
--- a/config/locales/doorkeeper.es-MX.yml
+++ b/config/locales/doorkeeper.es-MX.yml
@@ -135,6 +135,7 @@ es-MX:
media: Archivos adjuntos
mutes: Silenciados
notifications: Notificaciones
+ profile: Tu perfil de Mastodon
push: Notificaciones push
reports: Reportes
search: Busqueda
@@ -165,6 +166,7 @@ es-MX:
admin:write:reports: realizar acciones de moderación en informes
crypto: usar cifrado de extremo a extremo
follow: seguir, bloquear, desbloquear y dejar de seguir cuentas
+ profile: leer sólo la información del perfil de tu cuenta
push: recibir tus notificaciones push
read: leer los datos de tu cuenta
read:accounts: ver información de cuentas
@@ -174,7 +176,6 @@ es-MX:
read:filters: ver tus filtros
read:follows: ver a quién sigues
read:lists: ver tus listas
- read:me: leer solo la información básica de tu cuenta
read:mutes: ver a quién has silenciado
read:notifications: ver tus notificaciones
read:reports: ver tus informes
diff --git a/config/locales/doorkeeper.es.yml b/config/locales/doorkeeper.es.yml
index 44e165a2156ccb..9be036a1d46ce6 100644
--- a/config/locales/doorkeeper.es.yml
+++ b/config/locales/doorkeeper.es.yml
@@ -135,6 +135,7 @@ es:
media: Adjuntos multimedia
mutes: Silenciados
notifications: Notificaciones
+ profile: Tu perfil de Mastodon
push: Notificaciones push
reports: Informes
search: Buscar
@@ -165,6 +166,7 @@ es:
admin:write:reports: realizar acciones de moderación en informes
crypto: usar cifrado de extremo a extremo
follow: seguir, bloquear, desbloquear y dejar de seguir cuentas
+ profile: leer sólo la información del perfil de tu cuenta
push: recibir tus notificaciones push
read: leer los datos de tu cuenta
read:accounts: ver información de cuentas
@@ -174,7 +176,6 @@ es:
read:filters: ver tus filtros
read:follows: ver a quién sigues
read:lists: ver tus listas
- read:me: leer solo la información básica de tu cuenta
read:mutes: ver a quién has silenciado
read:notifications: ver tus notificaciones
read:reports: ver tus informes
diff --git a/config/locales/doorkeeper.eu.yml b/config/locales/doorkeeper.eu.yml
index 88a63f698bbd80..e7963672fae5d3 100644
--- a/config/locales/doorkeeper.eu.yml
+++ b/config/locales/doorkeeper.eu.yml
@@ -174,7 +174,6 @@ eu:
read:filters: ikusi zure iragazkiak
read:follows: ikusi zuk jarraitutakoak
read:lists: ikusi zure zerrendak
- read:me: irakurri soilik zure kontuaren oinarrizko informazioa
read:mutes: ikusi zuk mutututakoak
read:notifications: ikusi zure jakinarazpenak
read:reports: ikusi zure salaketak
diff --git a/config/locales/doorkeeper.fi.yml b/config/locales/doorkeeper.fi.yml
index ae8963c76fcf09..b028c10a826270 100644
--- a/config/locales/doorkeeper.fi.yml
+++ b/config/locales/doorkeeper.fi.yml
@@ -135,6 +135,7 @@ fi:
media: Medialiitteet
mutes: Mykistykset
notifications: Ilmoitukset
+ profile: Mastodon-profiilisi
push: Puskuilmoitukset
reports: Raportit
search: Hae
@@ -165,6 +166,7 @@ fi:
admin:write:reports: suorita valvontatoimia raporteille
crypto: käytä päästä päähän -salausta
follow: muokkaa tilin suhteita
+ profile: lue vain tilisi profiilitietoja
push: vastaanota puskuilmoituksiasi
read: lue kaikkia tilin tietoja
read:accounts: katso tilien tietoja
@@ -174,7 +176,6 @@ fi:
read:filters: katso suodattimiasi
read:follows: katso seurattujasi
read:lists: katso listojasi
- read:me: lue tilisi perustietoja
read:mutes: katso mykistyksiäsi
read:notifications: katso ilmoituksiasi
read:reports: katso raporttejasi
diff --git a/config/locales/doorkeeper.fo.yml b/config/locales/doorkeeper.fo.yml
index 4f5cc5a645ba12..bd9457b620b83f 100644
--- a/config/locales/doorkeeper.fo.yml
+++ b/config/locales/doorkeeper.fo.yml
@@ -135,6 +135,7 @@ fo:
media: Viðfestir miðlar
mutes: Doyvir
notifications: Fráboðanir
+ profile: Tín Mastodon vangi
push: Skumpifráboðanir
reports: Meldingar
search: Leita
@@ -165,6 +166,7 @@ fo:
admin:write:reports: útinna kjakleiðsluatgerðir á meldingum
crypto: brúka enda-til-enda bronglan
follow: broyta viðurskifti millum kontur
+ profile: les bara vangaupplýsingar av tíni kontu
push: móttaka tínar skumpifráboðanir
read: lesa allar dátur í tíni kontu
read:accounts: vís kontuupplýsingar
@@ -174,7 +176,6 @@ fo:
read:filters: síggja tíni filtur
read:follows: síggja hvørji tú fylgir
read:lists: síggja tínar listar
- read:me: les bara grundleggjandi upplýsingar av tínari kontu
read:mutes: síggja tínar doyvingar
read:notifications: síggja tínar fráboðanir
read:reports: síggja tínar meldingar
diff --git a/config/locales/doorkeeper.fy.yml b/config/locales/doorkeeper.fy.yml
index 51f0055ff6076a..a43defc427ef67 100644
--- a/config/locales/doorkeeper.fy.yml
+++ b/config/locales/doorkeeper.fy.yml
@@ -174,7 +174,6 @@ fy:
read:filters: jo filters besjen
read:follows: de accounts dy’tsto folgest besjen
read:lists: jo listen besjen
- read:me: allinnich de basisgegevens fan jo account lêze
read:mutes: jo negearre brûkers besjen
read:notifications: jo meldingen besjen
read:reports: jo rapportearre berjochten besjen
diff --git a/config/locales/doorkeeper.gl.yml b/config/locales/doorkeeper.gl.yml
index d34c58decc4077..e86babd64c0eb3 100644
--- a/config/locales/doorkeeper.gl.yml
+++ b/config/locales/doorkeeper.gl.yml
@@ -135,6 +135,7 @@ gl:
media: Anexos multimedia
mutes: Acaladas
notifications: Notificacións
+ profile: O teu perfil en Mastodon
push: Notificacións Push
reports: Denuncias
search: Busca
@@ -165,6 +166,7 @@ gl:
admin:write:reports: executar accións de moderación nas denuncias
crypto: usar cifrado de extremo-a-extremo
follow: modificar as relacións da conta
+ profile: ler só a información de perfil da túa conta
push: recibir notificacións push
read: ler todos os datos da tua conta
read:accounts: ver información das contas
@@ -174,7 +176,6 @@ gl:
read:filters: ver os filtros
read:follows: ver a quen segues
read:lists: ver as tuas listaxes
- read:me: ler só a información básica da túa conta
read:mutes: ver a quen tes acalado
read:notifications: ver as notificacións
read:reports: ver as túas denuncias
diff --git a/config/locales/doorkeeper.he.yml b/config/locales/doorkeeper.he.yml
index a6376fa4c1d27a..7a664c486e2b49 100644
--- a/config/locales/doorkeeper.he.yml
+++ b/config/locales/doorkeeper.he.yml
@@ -135,6 +135,7 @@ he:
media: קבצי מדיה מצורפים
mutes: השתקות
notifications: התראות
+ profile: פרופיל המסטודון שלך
push: התראות בדחיפה
reports: דיווחים
search: חיפוש
@@ -165,6 +166,7 @@ he:
admin:write:reports: ביצוע פעולות הנהלה על חשבונות
crypto: שימוש בהצפנה מקצה לקצה
follow: לעקוב, לחסום, להסיר חסימה ולהפסיק לעקוב אחרי חשבונות
+ profile: קריאה של פרטי הפרופיל שלך בלבד
push: קבלת התראות בדחיפה
read: לקרוא את המידע שבחשבונך
read:accounts: צפיה במידע על חשבונות
@@ -174,7 +176,6 @@ he:
read:filters: צפייה במסננים
read:follows: צפייה בנעקבים
read:lists: צפיה ברשימותיך
- read:me: לקריאה בלבד של פרטי חשבונך הבסיסיים
read:mutes: צפיה במושתקיך
read:notifications: צפיה בהתראותיך
read:reports: צפיה בדוחותיך
diff --git a/config/locales/doorkeeper.hu.yml b/config/locales/doorkeeper.hu.yml
index 28ce283ffaf850..b2e51a47c1f215 100644
--- a/config/locales/doorkeeper.hu.yml
+++ b/config/locales/doorkeeper.hu.yml
@@ -135,6 +135,7 @@ hu:
media: Médiamellékletek
mutes: Némítások
notifications: Értesítések
+ profile: Saját Mastodon-profil
push: Push értesítések
reports: Bejelentések
search: Keresés
@@ -165,6 +166,7 @@ hu:
admin:write:reports: moderációs műveletek végzése bejelentéseken
crypto: végpontok közti titkosítás használata
follow: fiókkapcsolatok módosítása
+ profile: csak a saját profil alapvető adatainak olvasása
push: push értesítések fogadása
read: saját fiók adatainak olvasása
read:accounts: fiók adatainak megtekintése
@@ -174,7 +176,6 @@ hu:
read:filters: szűrök megtekintése
read:follows: követések megtekintése
read:lists: listák megtekintése
- read:me: csak a fiókod alapvető adatainak elolvasása
read:mutes: némítások megtekintése
read:notifications: értesítések megtekintése
read:reports: bejelentések megtekintése
diff --git a/config/locales/doorkeeper.ia.yml b/config/locales/doorkeeper.ia.yml
index 9c493e3d7f6e16..5b99abb7b42be0 100644
--- a/config/locales/doorkeeper.ia.yml
+++ b/config/locales/doorkeeper.ia.yml
@@ -61,7 +61,7 @@ ia:
title: Un error ha occurrite
new:
prompt_html: "%{client_name} vole haber le permission de acceder a tu conto. Illo es un application tertie. Si tu non confide in illo, alora tu non deberea autorisar lo."
- review_permissions: Revisionar le permissos
+ review_permissions: Revider permissiones
title: Autorisation necessari
show:
title: Copia iste codice de autorisation e colla lo in le application.
@@ -148,34 +148,33 @@ ia:
title: Autorisation OAuth necessari
scopes:
admin:read: leger tote le datos in le servitor
- admin:read:accounts: leger information sensibile de tote le contos
- admin:read:canonical_email_blocks: leger datos sensibile de tote le blocadas de email canonic
+ admin:read:accounts: leger informationes sensibile de tote le contos
+ admin:read:canonical_email_blocks: leger informationes sensibile de tote le blocadas de e-mail canonic
admin:read:domain_allows: leger informationes sensibile de tote le dominios permittite
admin:read:domain_blocks: leger informationes sensibile de tote le blocadas de dominio
- admin:read:email_domain_blocks: leger informationes sensibile de tote le blocadas de dominio email
- admin:read:ip_blocks: leger informationes sensibile de tote le blocadas de IP
- admin:read:reports: leger information sensibile de tote le reportos e contos signalate
+ admin:read:email_domain_blocks: leger informationes sensibile de tote le blocadas de dominio de e-mail
+ admin:read:ip_blocks: leger informationes sensibile de tote le blocadas de adresses IP
+ admin:read:reports: leger informationes sensibile de tote le reportos e contos reportate
admin:write: modificar tote le datos in le servitor
- admin:write:accounts: exequer action de moderation sur contos
- admin:write:canonical_email_blocks: exequer actiones de moderation sur blocadas de email canonic
+ admin:write:accounts: exequer actiones de moderation sur contos
+ admin:write:canonical_email_blocks: exequer actiones de moderation sur blocadas de e-mail canonic
admin:write:domain_allows: exequer actiones de moderation sur dominios permittite
admin:write:domain_blocks: exequer actiones de moderation sur blocadas de dominio
- admin:write:email_domain_blocks: exequer actiones de moderation sur blocadas de dominio email
- admin:write:ip_blocks: exequer actiones de moderation sur blocadas de IP
- admin:write:reports: exequer action de moderation sur reportos
- crypto: usar cryptation de extremo-a-extremo
- follow: modificar relationes del contos
+ admin:write:email_domain_blocks: exequer actiones de moderation sur blocadas de dominio de e-mail
+ admin:write:ip_blocks: exequer actiones de moderation sur blocadas de adresses IP
+ admin:write:reports: exequer actiones de moderation sur reportos
+ crypto: usar cryptation de puncta a puncta
+ follow: modificar relationes inter contos
push: reciper tu notificationes push
read: leger tote le datos de tu conto
- read:accounts: vider informationes de conto
+ read:accounts: vider informationes de contos
read:blocks: vider tu blocadas
read:bookmarks: vider tu marcapaginas
- read:favourites: vider tu favoritos
+ read:favourites: vider tu favorites
read:filters: vider tu filtros
- read:follows: vider tu sequites
+ read:follows: vider qui tu seque
read:lists: vider tu listas
- read:me: leger solmente le information basic de tu conto
- read:mutes: vider tu silentiates
+ read:mutes: vider qui tu silentia
read:notifications: vider tu notificationes
read:reports: vider tu reportos
read:search: cercar in tu nomine
@@ -189,8 +188,8 @@ ia:
write:filters: crear filtros
write:follows: sequer personas
write:lists: crear listas
- write:media: incargar files de medios
+ write:media: incargar files multimedial
write:mutes: silentiar personas e conversationes
write:notifications: rader tu notificationes
- write:reports: signalar altere personas
+ write:reports: reportar altere personas
write:statuses: publicar messages
diff --git a/config/locales/doorkeeper.ie.yml b/config/locales/doorkeeper.ie.yml
index fc8132c926d8b7..0119f3573f13b3 100644
--- a/config/locales/doorkeeper.ie.yml
+++ b/config/locales/doorkeeper.ie.yml
@@ -174,7 +174,6 @@ ie:
read:filters: vider tui filtres
read:follows: vider tui sequitores
read:lists: vider tui listes
- read:me: leer solmen li basic information de tui conto
read:mutes: vider tui silentias
read:notifications: vider tui notificationes
read:reports: vider tui raportes
diff --git a/config/locales/doorkeeper.is.yml b/config/locales/doorkeeper.is.yml
index 995d507f5bd3d0..84a4d389547f04 100644
--- a/config/locales/doorkeeper.is.yml
+++ b/config/locales/doorkeeper.is.yml
@@ -135,6 +135,7 @@ is:
media: Myndefnisviðhengi
mutes: Þagganir
notifications: Tilkynningar
+ profile: Mastodon notandasniðið þitt
push: Ýti-tilkynningar
reports: Kærur
search: Leita
@@ -165,6 +166,7 @@ is:
admin:write:reports: framkvæma umsjónaraðgerðir á kærur
crypto: nota enda-í-enda dulritun
follow: breyta venslum aðgangs
+ profile: lesa einungis upplýsingar úr notandasniðinu þínu
push: taka á móti ýti-tilkynningum til þín
read: lesa öll gögn á notandaaðgangnum þínum
read:accounts: sjá upplýsingar í notendaaðgöngum
@@ -174,7 +176,6 @@ is:
read:filters: skoða síurnar þínar
read:follows: sjá hverjum þú fylgist með
read:lists: skoða listana þína
- read:me: lesa einungis grunnupplýsingar aðgangsins þíns
read:mutes: skoða hverja þú þaggar
read:notifications: sjá tilkynningarnar þínar
read:reports: skoða skýrslurnar þína
diff --git a/config/locales/doorkeeper.it.yml b/config/locales/doorkeeper.it.yml
index f39f78466540f1..f5df14deac3373 100644
--- a/config/locales/doorkeeper.it.yml
+++ b/config/locales/doorkeeper.it.yml
@@ -135,6 +135,7 @@ it:
media: Allegati multimediali
mutes: Silenziati
notifications: Notifiche
+ profile: Il tuo profilo Mastodon
push: Notifiche push
reports: Segnalazioni
search: Cerca
@@ -165,6 +166,7 @@ it:
admin:write:reports: eseguire azioni di moderazione sulle segnalazioni
crypto: utilizzare la crittografia end-to-end
follow: modifica le relazioni tra profili
+ profile: leggi solo le informazioni sul profilo del tuo account
push: ricevere le tue notifiche push
read: leggere tutti i dati del tuo profilo
read:accounts: visualizzare le informazioni sui profili
@@ -174,7 +176,6 @@ it:
read:filters: visualizzare i tuoi filtri
read:follows: visualizzare i tuoi seguiti
read:lists: visualizzare i tuoi elenchi
- read:me: leggi solo le informazioni di base del tuo account
read:mutes: visualizzare i tuoi silenziamenti
read:notifications: visualizzare le tue notifiche
read:reports: visualizzare le tue segnalazioni
diff --git a/config/locales/doorkeeper.ja.yml b/config/locales/doorkeeper.ja.yml
index af61dbdcb788d3..62f2a3eb0ae415 100644
--- a/config/locales/doorkeeper.ja.yml
+++ b/config/locales/doorkeeper.ja.yml
@@ -174,7 +174,6 @@ ja:
read:filters: フィルターの読み取り
read:follows: フォローの読み取り
read:lists: リストの読み取り
- read:me: 自分のアカウントの基本的な情報の読み取りのみ
read:mutes: ミュートの読み取り
read:notifications: 通知の読み取り
read:reports: 通報の読み取り
diff --git a/config/locales/doorkeeper.ko.yml b/config/locales/doorkeeper.ko.yml
index 12674cc125e20e..3ab0698d51c4ef 100644
--- a/config/locales/doorkeeper.ko.yml
+++ b/config/locales/doorkeeper.ko.yml
@@ -135,6 +135,7 @@ ko:
media: 첨부된 미디어
mutes: 뮤트
notifications: 알림
+ profile: 내 마스토돈 프로필
push: 푸시 알림
reports: 신고
search: 검색
@@ -165,6 +166,7 @@ ko:
admin:write:reports: 신고에 모더레이션 조치 취하기
crypto: 종단간 암호화 사용
follow: 계정 관계 수정
+ profile: 내 계정의 프로필 정보만을 읽습니다
push: 푸시 알림 받기
read: 계정의 모든 데이터 읽기
read:accounts: 계정 정보 보기
@@ -174,7 +176,6 @@ ko:
read:filters: 필터 보기
read:follows: 팔로우 보기
read:lists: 리스트 보기
- read:me: 내 계정의 기본 정보만을 읽습니다
read:mutes: 뮤트 보기
read:notifications: 알림 보기
read:reports: 신고 보기
diff --git a/config/locales/doorkeeper.lt.yml b/config/locales/doorkeeper.lt.yml
index 82695d8ba69fec..5c2e4fd4e0efb3 100644
--- a/config/locales/doorkeeper.lt.yml
+++ b/config/locales/doorkeeper.lt.yml
@@ -174,7 +174,6 @@ lt:
read:filters: matyti tavo filtrus
read:follows: matyti tavo sekimus
read:lists: matyti tavo sąrašus
- read:me: skaityti tik pagrindinę paskyros informaciją
read:mutes: matyti tavo nutildymus
read:notifications: matyti tavo pranešimus
read:reports: matyti tavo ataskaitas
diff --git a/config/locales/doorkeeper.lv.yml b/config/locales/doorkeeper.lv.yml
index 2005ce3c79db84..5aa5daef3f6d16 100644
--- a/config/locales/doorkeeper.lv.yml
+++ b/config/locales/doorkeeper.lv.yml
@@ -174,7 +174,6 @@ lv:
read:filters: apskatīt savus filtrus
read:follows: apskatīt savus sekotājus
read:lists: apskatīt savus sarakstus
- read:me: lasīt tikai Tava konta pamatinformāciju
read:mutes: apskatīt savus apklusinātos
read:notifications: apskatīt savus paziņojumus
read:reports: apskatīt savus pārskatus
diff --git a/config/locales/doorkeeper.nl.yml b/config/locales/doorkeeper.nl.yml
index 9554c0ee6f5d19..4115e0a17eb341 100644
--- a/config/locales/doorkeeper.nl.yml
+++ b/config/locales/doorkeeper.nl.yml
@@ -135,6 +135,7 @@ nl:
media: Mediabijlagen
mutes: Negeren
notifications: Meldingen
+ profile: Jouw Mastodonprofiel
push: Pushmeldingen
reports: Rapportages
search: Zoeken
@@ -165,6 +166,7 @@ nl:
admin:write:reports: moderatieacties op rapportages uitvoeren
crypto: end-to-end-encryptie gebruiken
follow: volgrelaties tussen accounts bewerken
+ profile: alleen de profielgegevens van jouw account lezen
push: jouw pushmeldingen ontvangen
read: alle gegevens van jouw account lezen
read:accounts: informatie accounts bekijken
@@ -174,7 +176,6 @@ nl:
read:filters: jouw filters bekijken
read:follows: de accounts die jij volgt bekijken
read:lists: jouw lijsten bekijken
- read:me: alleen de basisgegevens van jouw account lezen
read:mutes: jouw genegeerde gebruikers bekijken
read:notifications: jouw meldingen bekijken
read:reports: jouw gerapporteerde berichten bekijken
diff --git a/config/locales/doorkeeper.nn.yml b/config/locales/doorkeeper.nn.yml
index ab0380c6fa789d..0e5d1ca455ae4d 100644
--- a/config/locales/doorkeeper.nn.yml
+++ b/config/locales/doorkeeper.nn.yml
@@ -174,7 +174,6 @@ nn:
read:filters: sjå filtera dine
read:follows: sjå fylgjarane dine
read:lists: sjå listene dine
- read:me: les berre kontoen din sin grunnleggjande informasjon
read:mutes: sjå kven du har målbunde
read:notifications: sjå varsla dine
read:reports: sjå rapportane dine
diff --git a/config/locales/doorkeeper.pl.yml b/config/locales/doorkeeper.pl.yml
index eefca2de658fb4..a18a86e97900ae 100644
--- a/config/locales/doorkeeper.pl.yml
+++ b/config/locales/doorkeeper.pl.yml
@@ -135,6 +135,7 @@ pl:
media: Załączniki multimedialne
mutes: Wyciszenia
notifications: Powiadomienia
+ profile: Twój profil
push: Powiadomienia push
reports: Zgłoszenia
search: Szukaj
@@ -165,6 +166,7 @@ pl:
admin:write:reports: wykonaj działania moderacyjne na zgłoszeniach
crypto: użyj szyfrowania end-to-end
follow: możliwość zarządzania relacjami kont
+ profile: odczytaj tylko informacje o profilu
push: otrzymywanie powiadomień push dla Twojego konta
read: możliwość odczytu wszystkich danych konta
read:accounts: dostęp do informacji o koncie
@@ -174,7 +176,6 @@ pl:
read:filters: dostęp do filtrów
read:follows: dostęp do listy obserwowanych
read:lists: dostęp do Twoich list
- read:me: odczytaj tylko podstawowe informacje o koncie
read:mutes: dostęp do listy wyciszonych
read:notifications: możliwość odczytu powiadomień
read:reports: dostęp do Twoich zgłoszeń
diff --git a/config/locales/doorkeeper.pt-BR.yml b/config/locales/doorkeeper.pt-BR.yml
index 150b4339e46e15..d7e9353b59be3e 100644
--- a/config/locales/doorkeeper.pt-BR.yml
+++ b/config/locales/doorkeeper.pt-BR.yml
@@ -174,7 +174,6 @@ pt-BR:
read:filters: ver seus filtros
read:follows: ver quem você segue
read:lists: ver suas listas
- read:me: ler só as informações básicas da sua conta
read:mutes: ver seus silenciados
read:notifications: ver suas notificações
read:reports: ver suas denúncias
diff --git a/config/locales/doorkeeper.pt-PT.yml b/config/locales/doorkeeper.pt-PT.yml
index 0457190cda149c..f03cee6b3a61ea 100644
--- a/config/locales/doorkeeper.pt-PT.yml
+++ b/config/locales/doorkeeper.pt-PT.yml
@@ -135,6 +135,7 @@ pt-PT:
media: Anexos de media
mutes: Silenciados
notifications: Notificações
+ profile: O seu perfil Mastodon
push: Notificações push
reports: Denúncias
search: Pesquisa
@@ -165,6 +166,7 @@ pt-PT:
admin:write:reports: executar ações de moderação em denúncias
crypto: usa encriptação ponta-a-ponta
follow: siga, bloqueie, desbloqueie, e deixa de seguir contas
+ profile: apenas ler as informações do perfil da sua conta
push: receber as suas notificações push
read: tenha acesso aos dados da tua conta
read:accounts: ver as informações da conta
@@ -174,7 +176,6 @@ pt-PT:
read:filters: ver os seus filtros
read:follows: ver quem você segue
read:lists: ver as suas listas
- read:me: ler apenas as informações básicas da sua conta
read:mutes: ver os utilizadores que silenciou
read:notifications: ver as suas notificações
read:reports: ver as suas denúncias
diff --git a/config/locales/doorkeeper.sl.yml b/config/locales/doorkeeper.sl.yml
index 55e00ff96d6a06..a613308b28afbf 100644
--- a/config/locales/doorkeeper.sl.yml
+++ b/config/locales/doorkeeper.sl.yml
@@ -174,7 +174,6 @@ sl:
read:filters: oglejte si svoje filtre
read:follows: oglejte si svoje sledilce
read:lists: oglejte si svoje sezname
- read:me: preberi le osnovne podatke računa
read:mutes: oglejte si svoje utišane
read:notifications: oglejte si svoja obvestila
read:reports: oglejte si svoje prijave
diff --git a/config/locales/doorkeeper.sq.yml b/config/locales/doorkeeper.sq.yml
index 793819c597419e..de3415406715fc 100644
--- a/config/locales/doorkeeper.sq.yml
+++ b/config/locales/doorkeeper.sq.yml
@@ -135,6 +135,7 @@ sq:
media: Bashkëngjitje media
mutes: Heshtime
notifications: Njoftime
+ profile: Profili juaj Mastodon
push: Njoftime Push
reports: Raportime
search: Kërkim
@@ -165,6 +166,7 @@ sq:
admin:write:reports: të kryejë veprime moderimi në raportime
crypto: përdor fshehtëzim skaj-më-skaj
follow: të ndryshojë marrëdhënie llogarish
+ profile: të lexojë vetëm hollësi profili llogarie tuaj
push: të marrë njoftime push për ju
read: të lexojë krejt të dhënat e llogarisë tuaj
read:accounts: të shohë hollësi llogarish
@@ -174,7 +176,6 @@ sq:
read:filters: të shohë filtrat tuaj
read:follows: të shohë ndjekësit tuaj
read:lists: të shohë listat tuaja
- read:me: të shohë vetëm hollësi elementare të llogarisë tuaj
read:mutes: të shohë ç’keni heshtuar
read:notifications: të shohë njoftimet tuaja
read:reports: të shohë raportimet tuaja
diff --git a/config/locales/doorkeeper.sr-Latn.yml b/config/locales/doorkeeper.sr-Latn.yml
index 58ed5e8b68d8f9..6445353c1ae4e1 100644
--- a/config/locales/doorkeeper.sr-Latn.yml
+++ b/config/locales/doorkeeper.sr-Latn.yml
@@ -135,6 +135,7 @@ sr-Latn:
media: Multimedijalni prilozi
mutes: Ignorisani
notifications: Obaveštenja
+ profile: Vaš Mastodon profil
push: Prosleđena obaveštenja
reports: Prijave
search: Pretraga
@@ -165,6 +166,7 @@ sr-Latn:
admin:write:reports: vršenje moderatorskih aktivnosti nad izveštajima
crypto: korišćenje end-to-end enkripcije
follow: menja odnose naloga
+ profile: čita samo informacije o profilu vašeg naloga
push: primanje prosleđenih obaveštenja
read: čita podatke Vašeg naloga
read:accounts: pogledaj informacije o nalozima
@@ -174,7 +176,6 @@ sr-Latn:
read:filters: pogledaj svoje filtere
read:follows: pogledaj koga pratiš
read:lists: pogledaj svoje liste
- read:me: čita samo osnovne informacije o vašem nalogu
read:mutes: pogledaj ignorisanja
read:notifications: pogledaj svoja obaveštenja
read:reports: pogledaj svoje prijave
diff --git a/config/locales/doorkeeper.sr.yml b/config/locales/doorkeeper.sr.yml
index f40a05e90d5dea..feb0fec3e5e6c6 100644
--- a/config/locales/doorkeeper.sr.yml
+++ b/config/locales/doorkeeper.sr.yml
@@ -135,6 +135,7 @@ sr:
media: Мултимедијални прилози
mutes: Игнорисани
notifications: Обавештења
+ profile: Ваш Mastodon профил
push: Прослеђена обавештења
reports: Пријаве
search: Претрага
@@ -165,6 +166,7 @@ sr:
admin:write:reports: вршење модераторских активности над извештајима
crypto: коришћење end-to-end енкрипције
follow: мења односе налога
+ profile: чита само информације о профилу вашег налога
push: примање прослеђених обавештења
read: чита податке Вашег налога
read:accounts: погледај информације о налозима
@@ -174,7 +176,6 @@ sr:
read:filters: погледај своје филтере
read:follows: погледај кога пратиш
read:lists: погледај своје листе
- read:me: чита само основне информације о вашем налогу
read:mutes: погледај игнорисања
read:notifications: погледај своја обавештења
read:reports: погледај своје пријаве
diff --git a/config/locales/doorkeeper.sv.yml b/config/locales/doorkeeper.sv.yml
index d336f08c560a3c..f2c8bd34b8c6c2 100644
--- a/config/locales/doorkeeper.sv.yml
+++ b/config/locales/doorkeeper.sv.yml
@@ -174,7 +174,6 @@ sv:
read:filters: se dina filter
read:follows: se vem du följer
read:lists: se dina listor
- read:me: läs endast den grundläggande informationen för ditt konto
read:mutes: se dina tystningar
read:notifications: se dina notiser
read:reports: se dina rapporter
diff --git a/config/locales/doorkeeper.th.yml b/config/locales/doorkeeper.th.yml
index 8a28566a0d5bca..067e0655884691 100644
--- a/config/locales/doorkeeper.th.yml
+++ b/config/locales/doorkeeper.th.yml
@@ -174,7 +174,6 @@ th:
read:filters: ดูตัวกรองของคุณ
read:follows: ดูการติดตามของคุณ
read:lists: ดูรายการของคุณ
- read:me: อ่านเฉพาะข้อมูลพื้นฐานของบัญชีของคุณเท่านั้น
read:mutes: ดูการซ่อนของคุณ
read:notifications: ดูการแจ้งเตือนของคุณ
read:reports: ดูรายงานของคุณ
diff --git a/config/locales/doorkeeper.tr.yml b/config/locales/doorkeeper.tr.yml
index f5ebbc5fd84383..330449b1b5f5e2 100644
--- a/config/locales/doorkeeper.tr.yml
+++ b/config/locales/doorkeeper.tr.yml
@@ -135,6 +135,7 @@ tr:
media: Medya ekleri
mutes: Sessize alınanlar
notifications: Bildirimler
+ profile: Mastodon profiliniz
push: Anlık bildirimler
reports: Şikayetler
search: Arama
@@ -165,6 +166,7 @@ tr:
admin:write:reports: raporlarda denetleme eylemleri gerçekleştirin
crypto: uçtan uca şifreleme kullan
follow: hesap ilişkilerini değiştirin
+ profile: hesabınızın sadece profil bilgilerini okuma
push: anlık bildirimlerizi alın
read: hesabınızın tüm verilerini okuyun
read:accounts: hesap bilgilerini görün
@@ -174,7 +176,6 @@ tr:
read:filters: süzgeçlerinizi görün
read:follows: takip ettiklerinizi görün
read:lists: listelerinizi görün
- read:me: hesabınızın sadece temel bilgilerini okuma
read:mutes: sessize aldıklarınızı görün
read:notifications: bildirimlerinizi görün
read:reports: raporlarınızı görün
diff --git a/config/locales/doorkeeper.uk.yml b/config/locales/doorkeeper.uk.yml
index ac7fbbe15d7dfc..ca54fcb65a83be 100644
--- a/config/locales/doorkeeper.uk.yml
+++ b/config/locales/doorkeeper.uk.yml
@@ -135,6 +135,7 @@ uk:
media: Мультимедійні вкладення
mutes: Нехтувані
notifications: Сповіщення
+ profile: Ваш профіль Mastodon
push: Push-сповіщення
reports: Скарги
search: Пошук
@@ -171,6 +172,7 @@ uk:
admin:write:reports: модерувати скарги
crypto: використовувати наскрізне шифрування
follow: змінювати стосунки облікового запису
+ profile: читати лише інформацію профілю вашого облікового запису
push: отримувати Ваші Push-повідомлення
read: читати усі дані вашого облікового запису
read:accounts: бачити інформацію про облікові записи
@@ -180,7 +182,6 @@ uk:
read:filters: бачити Ваші фільтри
read:follows: бачити Ваші підписки
read:lists: бачити Ваші списки
- read:me: читайте лише основну інформацію вашого облікового запису
read:mutes: бачити ваші нехтування
read:notifications: бачити Ваші сповіщення
read:reports: бачити Ваші скарги
diff --git a/config/locales/doorkeeper.vi.yml b/config/locales/doorkeeper.vi.yml
index 624db9aff7eb4f..7f1c5430edc1ea 100644
--- a/config/locales/doorkeeper.vi.yml
+++ b/config/locales/doorkeeper.vi.yml
@@ -174,7 +174,6 @@ vi:
read:filters: xem bộ lọc
read:follows: xem những người theo dõi
read:lists: xem danh sách
- read:me: chỉ đọc thông tin cơ bản tài khoản
read:mutes: xem những người đã ẩn
read:notifications: xem thông báo
read:reports: xem báo cáo của bạn
diff --git a/config/locales/doorkeeper.zh-CN.yml b/config/locales/doorkeeper.zh-CN.yml
index 73f1f9725ce6ad..18477bc84581df 100644
--- a/config/locales/doorkeeper.zh-CN.yml
+++ b/config/locales/doorkeeper.zh-CN.yml
@@ -135,6 +135,7 @@ zh-CN:
media: 媒体文件
mutes: 已被隐藏的
notifications: 通知
+ profile: 你的 Mastodon 个人资料
push: 推送通知
reports: 举报
search: 搜索
@@ -165,6 +166,7 @@ zh-CN:
admin:write:reports: 对举报执行管理操作
crypto: 使用端到端加密
follow: 关注或屏蔽用户
+ profile: 仅读取你账户中的个人资料信息
push: 接收你的账户的推送通知
read: 读取你的账户数据
read:accounts: 查看账号信息
@@ -174,7 +176,6 @@ zh-CN:
read:filters: 查看你的过滤器
read:follows: 查看你的关注
read:lists: 查看你的列表
- read:me: 只读取你账户的基本信息
read:mutes: 查看你的隐藏列表
read:notifications: 查看你的通知
read:reports: 查看你的举报
diff --git a/config/locales/doorkeeper.zh-HK.yml b/config/locales/doorkeeper.zh-HK.yml
index 76d13a74a5b7c6..79629b12febf39 100644
--- a/config/locales/doorkeeper.zh-HK.yml
+++ b/config/locales/doorkeeper.zh-HK.yml
@@ -174,7 +174,6 @@ zh-HK:
read:filters: 檢視你的過濾條件
read:follows: 檢視你關注的人
read:lists: 檢視你的清單
- read:me: 僅讀取帳號的基本資訊
read:mutes: 檢視被你靜音的人
read:notifications: 檢視你的通知
read:reports: 檢視你的檢舉
diff --git a/config/locales/doorkeeper.zh-TW.yml b/config/locales/doorkeeper.zh-TW.yml
index 86827a7122435d..d12651a6486e2d 100644
--- a/config/locales/doorkeeper.zh-TW.yml
+++ b/config/locales/doorkeeper.zh-TW.yml
@@ -135,6 +135,7 @@ zh-TW:
media: 多媒體附加檔案
mutes: 靜音
notifications: 通知
+ profile: 您 Mastodon 個人檔案
push: 推播通知
reports: 檢舉報告
search: 搜尋
@@ -165,6 +166,7 @@ zh-TW:
admin:write:reports: 對報告進行管理動作
crypto: 使用端到端加密
follow: 修改帳號關係
+ profile: 僅讀取您的帳號個人檔案資訊
push: 接收帳號的推播通知
read: 讀取您所有的帳號資料
read:accounts: 檢視帳號資訊
@@ -174,7 +176,6 @@ zh-TW:
read:filters: 檢視您的過濾條件
read:follows: 檢視您跟隨之使用者
read:lists: 檢視您的列表
- read:me: 僅讀取您的帳號基本資訊
read:mutes: 檢視您靜音的人
read:notifications: 檢視您的通知
read:reports: 檢視您的檢舉
diff --git a/config/locales/ia.yml b/config/locales/ia.yml
index ab1f674fd8b952..b7f4ecf85d291f 100644
--- a/config/locales/ia.yml
+++ b/config/locales/ia.yml
@@ -59,7 +59,7 @@ ia:
destroyed_msg: Le datos de %{username} es ora in cauda pro lor imminente deletion
disable: Gelar
disable_sign_in_token_auth: Disactivar le authentication per token in e-mail
- disable_two_factor_authentication: Disactivar authentication bifactorial
+ disable_two_factor_authentication: Disactivar A2F
disabled: Gelate
display_name: Nomine a monstrar
domain: Dominio
@@ -105,10 +105,10 @@ ia:
not_subscribed: Non subscribite
pending: Attende revision
perform_full_suspension: Suspender
- previous_strikes: Previe admonitiones
+ previous_strikes: Sanctiones precedente
previous_strikes_description_html:
- one: Iste conto ha un admonition.
- other: Iste conto ha %{count} admonitiones.
+ one: Iste conto ha un sanction.
+ other: Iste conto ha %{count} sanctiones.
promote: Promover
protocol: Protocollo
public: Public
@@ -143,11 +143,11 @@ ia:
shared_inbox_url: URL del cassa de entrata condividite
show:
created_reports: Reportos facite
- targeted_reports: Signalate per alteres
+ targeted_reports: Reportate per alteres
silence: Limitar
silenced: Limitate
statuses: Messages
- strikes: Previe admonitiones
+ strikes: Sanctiones precedente
subscribe: Subscriber
suspend: Suspender
suspended: Suspendite
@@ -178,21 +178,21 @@ ia:
confirm_user: Confirmar le usator
create_account_warning: Crear un advertimento
create_announcement: Crear annuncio
- create_canonical_email_block: Crear blocada de email
- create_custom_emoji: Crear emoticone personalisate
+ create_canonical_email_block: Crear blocada de e-mail
+ create_custom_emoji: Crear emoji personalisate
create_domain_allow: Crear permisso de dominio
create_domain_block: Crear blocada de dominio
- create_email_domain_block: Crear blocada de dominio email
+ create_email_domain_block: Crear blocada de dominio de e-mail
create_ip_block: Crear un regula IP
create_unavailable_domain: Crear dominio indisponibile
create_user_role: Crear un rolo
demote_user: Degradar usator
destroy_announcement: Deler annuncio
- destroy_canonical_email_block: Deler blocada de email
- destroy_custom_emoji: Deler emoticone personalisate
+ destroy_canonical_email_block: Deler blocada de e-mail
+ destroy_custom_emoji: Deler emoji personalisate
destroy_domain_allow: Deler permisso de dominio
destroy_domain_block: Deler blocada de dominio
- destroy_email_domain_block: Crear blocada de dominio email
+ destroy_email_domain_block: Crear blocada de dominio de e-mail
destroy_instance: Purgar dominio
destroy_ip_block: Deler le regula IP
destroy_status: Deler message
@@ -234,62 +234,62 @@ ia:
assigned_to_self_report_html: "%{name} assignava reporto %{target} a se mesme"
change_email_user_html: "%{name} cambiava le adresse de e-mail address del usator %{target}"
change_role_user_html: "%{name} cambiava rolo de %{target}"
- confirm_user_html: "%{name} confirmava le adresse email del usator %{target}"
+ confirm_user_html: "%{name} confirmava le adresse de e-mail del usator %{target}"
create_account_warning_html: "%{name} inviava un advertimento a %{target}"
create_announcement_html: "%{name} creava un nove annuncio %{target}"
- create_canonical_email_block_html: "%{name} blocava email con le hash %{target}"
- create_custom_emoji_html: "%{name} cargava nove emoticone %{target}"
+ create_canonical_email_block_html: "%{name} blocava e-mail con le hash %{target}"
+ create_custom_emoji_html: "%{name} incargava le nove emoji %{target}"
create_domain_allow_html: "%{name} permitteva federation con dominio %{target}"
create_domain_block_html: "%{name} blocava dominio %{target}"
- create_email_domain_block_html: "%{name} blocava dominio email %{target}"
+ create_email_domain_block_html: "%{name} blocava dominio de e-mail %{target}"
create_ip_block_html: "%{name} creava regula pro IP %{target}"
- create_unavailable_domain_html: "%{name} stoppava consignation a dominio %{target}"
+ create_unavailable_domain_html: "%{name} stoppava livration al dominio %{target}"
create_user_role_html: "%{name} creava rolo de %{target}"
demote_user_html: "%{name} degradava usator %{target}"
destroy_announcement_html: "%{name} deleva annuncio %{target}"
- destroy_canonical_email_block_html: "%{name} disblocava email con le hash %{target}"
+ destroy_canonical_email_block_html: "%{name} disblocava e-mail con le hash %{target}"
destroy_custom_emoji_html: "%{name} deleva emoji %{target}"
destroy_domain_allow_html: "%{name} impediva le federation con dominio %{target}"
destroy_domain_block_html: "%{name} disblocava dominio %{target}"
- destroy_email_domain_block_html: "%{name} disblocava le dominio email %{target}"
+ destroy_email_domain_block_html: "%{name} disblocava dominio de e-mail %{target}"
destroy_instance_html: "%{name} purgava le dominio %{target}"
destroy_ip_block_html: "%{name} deleva le regula pro IP %{target}"
- destroy_status_html: "%{name} removeva le message de %{target}"
- destroy_unavailable_domain_html: "%{name} resumeva le consignation al dominio %{target}"
- destroy_user_role_html: "%{name} deleva le rolo de %{target}"
+ destroy_status_html: "%{name} removeva un message de %{target}"
+ destroy_unavailable_domain_html: "%{name} reprendeva le livration al dominio %{target}"
+ destroy_user_role_html: "%{name} deleva le rolo %{target}"
disable_2fa_user_html: "%{name} disactivava le authentication a duo factores pro le usator %{target}"
- disable_custom_emoji_html: "%{name} disactivava le emoticone %{target}"
- disable_sign_in_token_auth_user_html: "%{name} disactivava authentication per testimonio via email pro %{target}"
- disable_user_html: "%{name} disactivava le accesso pro le usator %{target}"
- enable_custom_emoji_html: "%{name} activava le emoticone %{target}"
- enable_sign_in_token_auth_user_html: "%{name} activava le authentication per testimonio via email pro %{target}"
- enable_user_html: "%{name} activava le accesso pro le usator %{target}"
- memorialize_account_html: "%{name} mutava le conto de %{target} in un pagina commemorative"
+ disable_custom_emoji_html: "%{name} disactivava le emoji %{target}"
+ disable_sign_in_token_auth_user_html: "%{name} disactivava le authentication per token de e-mail pro %{target}"
+ disable_user_html: "%{name} disactivava le apertura de session pro le usator %{target}"
+ enable_custom_emoji_html: "%{name} activava le emoji %{target}"
+ enable_sign_in_token_auth_user_html: "%{name} activava le authentication per token de e-mail pro %{target}"
+ enable_user_html: "%{name} activava le apertura de session pro le usator %{target}"
+ memorialize_account_html: "%{name} converteva le conto de %{target} in un pagina commemorative"
promote_user_html: "%{name} promoveva le usator %{target}"
reject_appeal_html: "%{name} refusava le appello del decision de moderation de %{target}"
reject_user_html: "%{name} refusava le inscription de %{target}"
remove_avatar_user_html: "%{name} removeva le avatar de %{target}"
reopen_report_html: "%{name} reaperiva le reporto %{target}"
- resend_user_html: "%{name} reinviava le email de confirmation pro %{target}"
+ resend_user_html: "%{name} reinviava le e-mail de confirmation pro %{target}"
reset_password_user_html: "%{name} reinitialisava le contrasigno del usator %{target}"
resolve_report_html: "%{name} resolveva le reporto %{target}"
- sensitive_account_html: "%{name} marcava como sensibile le medios de %{target}"
+ sensitive_account_html: "%{name} marcava le multimedia de %{target} como sensibile"
silence_account_html: "%{name} limitava le conto de %{target}"
suspend_account_html: "%{name} suspendeva le conto de %{target}"
- unassigned_report_html: "%{name} de-assignava le reporto %{target}"
- unblock_email_account_html: "%{name} disblocava le adresse email de %{target}"
- unsensitive_account_html: "%{name} dismarcava como sensibile le medios de %{target}"
+ unassigned_report_html: "%{name} disassignava le reporto %{target}"
+ unblock_email_account_html: "%{name} disblocava le adresse de e-mail de %{target}"
+ unsensitive_account_html: "%{name} dismarcava le multimedia de %{target} como sensibile"
unsilence_account_html: "%{name} removeva le limite del conto de %{target}"
unsuspend_account_html: "%{name} removeva le suspension del conto de %{target}"
update_announcement_html: "%{name} actualisava le annuncio %{target}"
- update_custom_emoji_html: "%{name} actualisava le emoticone %{target}"
+ update_custom_emoji_html: "%{name} actualisava le emoji %{target}"
update_domain_block_html: "%{name} actualisava le blocada de dominio pro %{target}"
- update_ip_block_html: "%{name} cambiava le regula pro IP %{target}"
- update_report_html: "%{name} actualisava le reporto %{target}"
- update_status_html: "%{name} actualisava le message per %{target}"
- update_user_role_html: "%{name} cambiava le rolo de %{target}"
+ update_ip_block_html: "%{name} cambiava regula pro IP %{target}"
+ update_report_html: "%{name} actualisava reporto %{target}"
+ update_status_html: "%{name} actualisava message de %{target}"
+ update_user_role_html: "%{name} cambiava rolo de %{target}"
deleted_account: conto delite
- empty: Nulle registrationes trovate.
+ empty: Nulle registros trovate.
filter_by_action: Filtrar per action
filter_by_user: Filtrar per usator
title: Registro de inspection
@@ -298,7 +298,7 @@ ia:
edit:
title: Modificar annuncio
empty: Necun annuncios trovate.
- live: Al vivo
+ live: In directo
new:
create: Crear annuncio
title: Nove annuncio
@@ -316,15 +316,15 @@ ia:
by_domain: Dominio
copied_msg: Copia local del emoji create con successo
copy: Copiar
- copy_failed_msg: Impossibile crear un copia local de ille emoticone
+ copy_failed_msg: Non poteva crear un copia local de ille emoji
create_new_category: Crear nove categoria
created_msg: Emoji create con successo!
delete: Deler
- destroyed_msg: Emoticone destruite con successo destroyed!
+ destroyed_msg: Emoji destruite con successo!
disable: Disactivar
disabled: Disactivate
disabled_msg: Emoji disactivate con successo
- emoji: Emoticone
+ emoji: Emoji
enable: Activar
enabled: Activate
enabled_msg: Emoji activate con successo
@@ -333,24 +333,24 @@ ia:
listed: Listate
new:
title: Adder nove emoji personalisate
- no_emoji_selected: Nulle emoticones ha essite cambiate perque nulle ha essite seligite
+ no_emoji_selected: Necun emoji ha essite cambiate perque necun ha essite seligite
not_permitted: Tu non es autorisate a exequer iste action
overwrite: Superscriber
- shortcode: Via breve
+ shortcode: Codice curte
shortcode_hint: Al minus 2 characteres, solo characteres alphanumeric e lineettas basse
title: Emojis personalisate
uncategorized: Sin categoria
unlist: Non listar
unlisted: Non listate
- update_failed_msg: Impossibile actualisar ille emoticone
- updated_msg: Emoticone actualisate con successo!
+ update_failed_msg: Non poteva actualisar le emoji
+ updated_msg: Emoji actualisate con successo!
upload: Incargar
dashboard:
active_users: usatores active
interactions: interactiones
- media_storage: Immagazinage de medios
+ media_storage: Immagazinage multimedial
new_users: nove usatores
- opened_reports: reportos aperte
+ opened_reports: reportos aperite
pending_appeals_html:
one: "%{count} appello pendente"
other: "%{count} appellos pendente"
@@ -377,7 +377,7 @@ ia:
title: Appellos
domain_allows:
add_new: Permitter federation con dominio
- created_msg: Le dominio ha essite permittite con successo pro federation
+ created_msg: Le dominio ha essite correctemente autorisate pro federation
destroyed_msg: Le dominio ha essite prohibite pro federation
export: Exportar
import: Importar
@@ -390,7 +390,7 @@ ia:
permanent_action: Disfacer le suspension non restaurara alcun datos o relation.
preamble_html: Tu es sur le puncto de suspender %{domain} e su subdominios.
remove_all_data: Isto removera de tu servitor tote le contento, multimedia e datos de profilo del contos de iste dominio.
- stop_communication: Tu servitor stoppara le communication con iste servitores.
+ stop_communication: Tu servitor cessara de communicar con iste servitores.
title: Confirmar le blocada del dominio %{domain}
undo_relationships: Isto disfacera omne relation de sequimento inter le contos de iste servitores e illos del tue.
created_msg: Le blocada del dominio es ora in tractamento
@@ -406,7 +406,7 @@ ia:
hint: Le blocada del dominio non impedira le creation de entratas de conto in le base de datos, ma applicara retroactive- e automaticamente le methodos specific de moderation a iste contos.
severity:
desc_html: "Limitar rendera le messages del contos de iste dominio invisibile pro tote persona que non los seque. Suspender removera de tu servitor tote le contento, multimedia e datos de profilo del contos de iste dominio. Usa Necun si tu solmente vole rejectar le files multimedial."
- noop: Nemo
+ noop: Necun
silence: Limitar
suspend: Suspender
title: Nove blocada de dominio
@@ -462,11 +462,11 @@ ia:
no_file: Necun file seligite
follow_recommendations:
description_html: "Le recommendationes de sequimento adjuta le nove usatores a trovar rapidemente contento interessante. Quando un usator non ha un historia sufficiente de interactiones con alteres pro formar recommendationes personalisate de sequimento, iste contos es recommendate. Illos se recalcula cata die a partir de un mixtura de contos con le plus grande numero de ingagiamentos recente e le numero de sequitores local le plus alte pro un lingua date."
- language: Per lingua
+ language: Pro le lingua
status: Stato
suppress: Supprimer recommendation de sequimento
suppressed: Supprimite
- title: Sequer le recommendationes
+ title: Recommendationes de contos a sequer
unsuppress: Restaurar recommendation de sequimento
instances:
availability:
@@ -504,7 +504,7 @@ ia:
instance_follows_measure: lor sequitores hic
instance_languages_dimension: Linguas principal
instance_media_attachments_measure: annexos multimedial immagazinate
- instance_reports_measure: signalationes sur illos
+ instance_reports_measure: reportos sur illes
instance_statuses_measure: messages immagazinate
delivery:
all: Totes
@@ -517,7 +517,7 @@ ia:
delivery_error_days: Dies de errores de livration
delivery_error_hint: Si le livration non es possibile durante %{count} dies, illo essera automaticamente marcate como non livrabile.
destroyed_msg: Le datos de %{domain} es ora in cauda pro deletion imminente.
- empty: Necun dominios trovate.
+ empty: Necun dominio trovate.
known_accounts:
one: "%{count} conto cognoscite"
other: "%{count} contos cognoscite"
@@ -533,7 +533,7 @@ ia:
total_blocked_by_us: Blocate per nos
total_followed_by_them: Sequite per illes
total_followed_by_us: Sequite per nos
- total_reported: Signalationes sur illes
+ total_reported: Reportos sur illes
total_storage: Annexos multimedial
totals_time_period_hint_html: Le totales monstrate hic infra include le datos de tote le tempore.
unknown_instance: Iste dominio non es actualmente cognoscite sur iste servitor.
@@ -579,24 +579,24 @@ ia:
status: Stato
title: Repetitores
report_notes:
- created_msg: Nota de signalation create con successo!
- destroyed_msg: Nota de signalation delite con successo!
+ created_msg: Nota de reporto create con successo!
+ destroyed_msg: Nota de reporto delite con successo!
reports:
account:
notes:
one: "%{count} nota"
other: "%{count} notas"
action_log: Registro de inspection
- action_taken_by: Action prendite per
+ action_taken_by: Mesura prendite per
actions:
- delete_description_html: Le messages signalate essera delite e un admonition essera registrate pro adjutar te a prender mesuras in caso de futur infractiones proveniente del mesme conto.
- mark_as_sensitive_description_html: Le files multimedial in le messages reportate essera marcate como sensibile e un admonition essera registrate pro adjutar te a prender mesuras in caso de futur infractiones proveniente del mesme conto.
+ delete_description_html: Le messages reportate essera delite e un sanction essera registrate pro adjutar te a prender mesuras adequate in caso de futur infractiones committite desde le mesme conto.
+ mark_as_sensitive_description_html: Le files multimedial in le messages reportate essera marcate como sensibile e un sanction essera registrate pro adjutar te a prender mesuras adequate in caso de futur infractiones committite desde le mesme conto.
other_description_html: Vider plus optiones pro controlar le comportamento del conto e personalisar le communication al conto signalate.
- resolve_description_html: Necun action essera prendite contra le conto signalate, necun admonition registrate, e le signalation essera claudite.
- silence_description_html: Iste conto essera visibile solmente a qui ja lo seque o manualmente lo cerca, limitante gravemente su portata. Pote sempre esser revertite. Claude tote le signalationes contra iste conto.
- suspend_description_html: Le conto e tote su contento essera inaccessible e finalmente delite, e interager con illo essera impossibile. Reversibile intra 30 dies. Claude tote le signalationes contra iste conto.
- actions_description_html: Decide qual action prender pro resolver iste signalation. Si tu prende un action punitive contra le conto signalate, le persona recipera un notification in e-mail, excepte si le categoria Spam es seligite.
- actions_description_remote_html: Decide qual action prender pro resolver iste signalation. Isto affectara solmente le maniera in que tu servitor communica con iste conto remote e gere su contento.
+ resolve_description_html: Necun mesura essera prendite contra le conto denunciate, necun sanction registrate, e le reporto essera claudite.
+ silence_description_html: Iste conto essera visibile solmente a qui ja lo seque o manualmente lo cerca, limitante gravemente su portata. Pote sempre esser revertite. Claude tote le reportos contra iste conto.
+ suspend_description_html: Le conto e tote su contento essera inaccessibile e finalmente delite, e interager con illo essera impossibile. Reversibile intra 30 dies. Claude tote le reportos contra iste conto.
+ actions_description_html: Decide qual mesura prender pro resolver iste reporto. Si tu prende un mesura punitive contra le conto reportate, le persona recipera un notification in e-mail, excepte si le categoria Spam es seligite.
+ actions_description_remote_html: Decide qual mesura prender pro resolver iste reporto. Isto affectara solmente le maniera in que tu servitor communica con iste conto remote e gere su contento.
add_to_report: Adder plus al reporto
already_suspended_badges:
local: Ja suspendite sur iste servitor
@@ -604,19 +604,19 @@ ia:
are_you_sure: Es tu secur?
assign_to_self: Assignar a me
assigned: Moderator assignate
- by_target_domain: Dominio del conto signalate
+ by_target_domain: Dominio del conto reportate
cancel: Cancellar
category: Categoria
- category_description_html: Le motivo pro le qual iste conto e/o contento ha essite signalate essera citate in le communication con le conto signalate
+ category_description_html: Le motivo pro le qual iste conto e/o contento ha essite reportate essera citate in le communication con le conto reportate
comment:
none: Necun
comment_description_html: 'Pro fornir plus information, %{name} ha scribite:'
confirm: Confirmar
- confirm_action: Confirmar le action de moderation contra %{acct}
- created_at: Signalate
+ confirm_action: Confirmar le mesura de moderation contra %{acct}
+ created_at: Reportate
delete_and_resolve: Deler le messages
forwarded: Reexpedite
- forwarded_replies_explanation: Iste signalation proveni de un usator remote e concerne contento remote. Illo te ha essite reexpedite perque le contento signalate es in responsa a un usator tue.
+ forwarded_replies_explanation: Iste reporto proveni de un usator remote e concerne contento remote. Illo te ha essite reexpedite perque le contento reportate es in responsa a un usator tue.
forwarded_to: Reexpedite a %{domain}
mark_as_resolved: Marcar como resolvite
mark_as_sensitive: Marcar como sensibile
@@ -627,41 +627,41 @@ ia:
create_and_resolve: Resolver con nota
create_and_unresolve: Reaperir con nota
delete: Deler
- placeholder: Describe le actiones prendite, o insere altere information pertinente...
+ placeholder: Describe le mesuras prendite, o insere altere information pertinente...
title: Notas
- notes_description_html: Vider e lassar notas pro altere moderatores e pro tu proprie futuro
+ notes_description_html: Vider e lassar notas a altere moderatores e a tu ego futur
processed_msg: 'Reporto #%{id} elaborate con successo'
quick_actions_description_html: 'Face un rapide action o rola a basso pro vider le contento reportate:'
remote_user_placeholder: le usator remote ab %{instance}
reopen: Reaperir reporto
report: 'Reporto #%{id}'
- reported_account: Conto signalate
- reported_by: Signalate per
+ reported_account: Conto reportate
+ reported_by: Reportate per
resolved: Resolvite
resolved_msg: Reporto resolvite con successo!
skip_to_actions: Saltar al actiones
status: Stato
- statuses: Contento signalate
- statuses_description_html: Le contento offensive sera citate in communication con le conto reportate
+ statuses: Contento reportate
+ statuses_description_html: Le contento offensive essera citate in communication con le conto reportate
summary:
action_preambles:
- delete_html: 'Tu va remover parte de messages de @%{acct}. Isto ira:'
- mark_as_sensitive_html: 'Tu va marcar parte de messages de @%{acct} como sensibile. Isto ira:'
- silence_html: 'Tu va limitar le conto de @%{acct}. Isto ira:'
- suspend_html: 'Tu va limitar le conto de @%{acct}. Isto ira:'
+ delete_html: 'Tu es sur le puncto de remover alcunes del messages de @%{acct}. Isto va:'
+ mark_as_sensitive_html: 'Tu es sur le puncto de marcar alcunes del messages de @%{acct} como sensibile. Isto va:'
+ silence_html: 'Tu es sur le puncto de limitar le conto de @%{acct}. Isto va:'
+ suspend_html: 'Tu es sur le puncto de suspender le conto de @%{acct}. Isto va:'
actions:
delete_html: Remover le messages offensive
- mark_as_sensitive_html: Marcar le medios de messages offensive como sensibile
+ mark_as_sensitive_html: Marcar le multimedia de messages offensive como sensibile
silence_html: Limitar gravemente le portata de @%{acct} rendente le profilo e contento visibile solmente a qui ja lo seque o lo cerca manualmente
suspend_html: Suspender @%{acct}, rendente le profilo e contento inaccessibile e le interaction con illo impossibile
- close_report: Marcar le signalation №%{id} como resolvite
- close_reports_html: Marcar tote le signalationes contra @%{acct} como resolvite
+ close_report: 'Marcar le reporto #%{id} como resolvite'
+ close_reports_html: Marcar tote le reportos contra @%{acct} como resolvite
delete_data_html: Deler le profilo e contento de @%{acct} in 30 dies excepte si le suspension es disfacite intertanto
preview_preamble_html: "@%{acct} recipera un advertimento con le sequente contento:"
- record_strike_html: Registrar un admonition contra @%{acct} pro adjutar te a imponer sanctiones in caso de futur violationes de iste conto
+ record_strike_html: Registra un sanction contra @%{acct} pro adjutar te a prender mesuras adequate in caso de futur violationes committite desde iste conto
send_email_html: Inviar un e-mail de advertimento a @%{acct}
warning_placeholder: Motivation supplementari facultative pro le action de moderation.
- target_origin: Origine del conto signalate
+ target_origin: Origine del conto reportate
title: Reportos
unassign: Disassignar
unknown_action_msg: 'Action incognite: %{action}'
@@ -707,7 +707,7 @@ ia:
manage_invites: Gerer le invitationes
manage_invites_description: Permitte que usatores examina e deactiva ligamines de invitation
manage_reports: Gerer le reportos
- manage_reports_description: Permitte que usatores revide signalationes e exeque actiones de moderation a base de illos
+ manage_reports_description: Permitte que usatores revide reportos e prende mesuras de moderation a base de illos
manage_roles: Gerer le rolos
manage_roles_description: Permitte que usatores gere e assigna rolos inferior a lor privilegios actual
manage_rules: Gerer le regulas
@@ -716,7 +716,7 @@ ia:
manage_settings_description: Permitte que usatores cambia le parametros del sito
manage_taxonomies: Gerer taxonomias
manage_taxonomies_description: Permitte que usatores revide contento in tendentias e actualisa le parametros de hashtag
- manage_user_access: Gerer le accessos de usator
+ manage_user_access: Gerer le accesso de usatores
manage_user_access_description: Permitte que usatores disactiva le authentication bifactorial de altere usatores, cambia lor adresses de e-mail, e reinitialisa lor contrasigno
manage_users: Gerer usatores
manage_users_description: Permitte que usatores vide le detalios de altere usatores e exeque actiones de moderation contra illes
@@ -741,7 +741,7 @@ ia:
manage_rules: Gerer le regulas del servitor
preamble: Fornir information detaliate sur le functionamento, moderation e financiamento del servitor.
rules_hint: Il ha un area dedicate al regulas que tu usatores debe acceptar.
- title: A proposito de
+ title: A proposito
appearance:
preamble: Personalisar le interfacie web de Mastodon.
title: Apparentia
@@ -756,43 +756,43 @@ ia:
preamble: Controlar como contento generate per le usator es immagazinate in Mastodon.
title: Retention de contento
default_noindex:
- desc_html: Affice tote le usatores qui non ha cambiate iste parametro per se mesme
- title: Refusar de ordinario le indexation del usatores per le motores de recerca
+ desc_html: Affecta tote le usatores qui non ha personalmente cambiate iste parametro
+ title: Excluder le usatores del indexation del motores de recerca per predefinition
discovery:
- follow_recommendations: Sequer le recommendationes
- preamble: Presentar contento interessante es instrumental in introducer nove usatores qui pote non cognoscer alcuno de Mastodon.
+ follow_recommendations: Recommendationes de contos a sequer
+ preamble: Presentar contento interessante es essential pro attraher e retener nove usatores qui pote non cognoscer alcun persona sur Mastodon. Controla como varie optiones de discoperta functiona sur tu servitor.
profile_directory: Directorio de profilos
public_timelines: Chronologias public
publish_discovered_servers: Publicar servitores discoperite
- publish_statistics: Publicar statistica
- title: Discoperi
+ publish_statistics: Publicar statisticas
+ title: Discoperta
trends: Tendentias
domain_blocks:
all: A omnes
disabled: A necuno
users: A usators local in session
registrations:
- moderation_recommandation: Per favor verifica que tu ha un adequate e reactive equipa de moderation ante que tu aperi registrationes a quicunque!
+ moderation_recommandation: Per favor assecura te de haber un equipa de moderation adequate e reactive ante de aperir le inscription a omnes!
preamble: Controla qui pote crear un conto sur tu servitor.
- title: Registrationes
+ title: Inscriptiones
registrations_mode:
modes:
approved: Approbation necessari pro le inscription
none: Nemo pote inscriber se
open: Quicunque pote inscriber se
- warning_hint: Nos consilia usar “Approbation necessari pro le inscription” si tu non crede que tu equipa de moderation pote tractar spam e registrationes maligne in un modo opportun.
+ warning_hint: Nos recommenda usar “Approbation necessari pro le inscription” si tu non es secur que tu equipa de moderation pote tractar spam e inscriptiones malevolente in tempore utile.
security:
authorized_fetch: Require authentication ab servitores federate
authorized_fetch_hint: Requirer authentication de servitores federate permitte un application plus stricte de blocadas a nivello de usator e de servitor. Nonobstante, isto diminue le prestationes del servitor, reduce le portata de tu responsas e pote introducer problemas de compatibilitate con certe servicios federate. In plus, isto non impedira le actores dedicate a recuperar tu messages public e tu contos.
- authorized_fetch_overridden_hint: Tu actualmente non pote cambiar iste parametros perque il es superate per un variabile de ambiente.
+ authorized_fetch_overridden_hint: Tu actualmente non pote cambiar iste parametro perque illo es supplantate per un variabile de ambiente.
federation_authentication: Application del authentication de federation
title: Parametros de servitor
site_uploads:
delete: Deler file incargate
- destroyed_msg: Incarga de sito delite con successo!
+ destroyed_msg: Le file incargate al sito ha essite delite!
software_updates:
- critical_update: Critic! Actualisa tosto
- description: Il es recommendate de mantener actualisate tu installation de Mastodon pro beneficiar del ultime reparationes e functiones. In ultra, il es aliquando critic actualisar Mastodon in maniera opportun pro evitar problemas de securitate. Pro iste rationes, Mastodon controla pro actualisationes cata 30 minutas, e te notificara secundo tu preferentias de notificationes per email.
+ critical_update: Critic – per favor, actualisa rapidemente
+ description: Il es recommendate mantener tu installation de Mastodon actualisate pro beneficiar del ultime reparationes e functiones. In ultra, de tempore a tempore, il es de importantia critic actualisar Mastodon in tempore utile pro evitar problemas de securitate. Pro iste rationes, Mastodon verifica le presentia de actualisationes cata 30 minutas, e te notificara secundo tu preferentias de notification in e-mail.
documentation_link: Pro saper plus
release_notes: Notas de version
title: Actualisationes disponibile
@@ -800,33 +800,33 @@ ia:
types:
major: Version major
minor: Version minor
- patch: 'Version de pecias: remedios de bugs e cambiamentos facile a applicar'
+ patch: 'Version corrective: remedios de bugs e cambiamentos facile a applicar'
version: Version
statuses:
account: Autor
application: Application
- back_to_account: Retro al pagina de conto
+ back_to_account: Retornar al pagina del conto
back_to_report: Retro al pagina de reporto
batch:
- remove_from_report: Remover ab reporto
+ remove_from_report: Remover del reporto
report: Reporto
deleted: Delite
- favourites: Favoritos
- history: Chronologia del versiones
- in_reply_to: Replicante a
+ favourites: Favorites
+ history: Historia de versiones
+ in_reply_to: In responsa a
language: Lingua
media:
- title: Medios
+ title: Multimedia
metadata: Metadatos
- no_status_selected: Nulle messages era cambiate perque necun era seligite
+ no_status_selected: Necun message ha essite cambiate perque necun ha essite seligite
open: Aperir message
original_status: Message original
- reblogs: Promotiones
- status_changed: Messages cambiate
+ reblogs: Republicationes
+ status_changed: Message cambiate
title: Messages del conto
trending: Tendentias
visibility: Visibilitate
- with_media: Con medios
+ with_media: Con multimedia
strikes:
actions:
delete_statuses: "%{name} ha delite le messages de %{target}"
@@ -853,31 +853,31 @@ ia:
message_html: Tu aggregation Elasticsearch ha plus que un nodo, ma Mastodon non es configurate a usar los.
elasticsearch_preset_single_node:
action: Vide documentation
- message_html: Tu aggregation Elasticsearch ha un sol nodo, ES_PRESET
deberea esser predefinite a single_node_cluster
.
+ message_html: Tu aggregation Elasticsearch ha un sol nodo, ES_PRESET
deberea esser mittite a single_node_cluster
.
elasticsearch_reset_chewy:
- message_html: Le indexation de tu systema Elasticsearch es obsolete per un cambio de configuration. Per cfavor exeque tootctl search deploy --reset-chewy
pro actualisar lo.
+ message_html: Le indexation de tu systema Elasticsearch es obsolete a causa de un cambio de parametro. Per favor exeque tootctl search deploy --reset-chewy
pro actualisar lo.
elasticsearch_running_check:
- message_html: Impossibile connecter se a Elasticsearch. Verifica que illo flue, o disactiva le recerca a plen texto
+ message_html: Impossibile connecter se a Elasticsearch. Verifica que illo es active, o disactiva le recerca a plen texto
elasticsearch_version_check:
message_html: 'Version de Elasticsearch incompatibile: %{value}'
- version_comparison: Elasticsearch %{running_version} es currente dum %{required_version} es necesse
+ version_comparison: Elasticsearch %{running_version} es active, ma %{required_version} es requirite
rules_check:
action: Gerer le regulas del servitor
- message_html: Tu non ha definite ulle regulas de servitor.
+ message_html: Tu non ha definite alcun regula de servitor.
sidekiq_process_check:
- message_html: Nulle processo Sidekiq currente pro le %{value} cauda(s). Controla tu configuration de Sidekiq
+ message_html: Necun processo Sidekiq es active pro le cauda(s) %{value}. Per favor verifica tu configuration de Sidekiq
software_version_critical_check:
action: Vider le actualisationes disponibile
- message_html: Un actualisation critic de Mastodon es disponibile, actualisa lo le plus rapide possibile.
+ message_html: Un actualisation critic de Mastodon es disponibile. Per favor actualisa lo le plus tosto possibile.
software_version_patch_check:
action: Vider le actualisationes disponibile
message_html: Un actualisation de remedio de bug pro Mastodon es disponibile.
upload_check_privacy_error:
- action: Verifica hic pro plus de information
- message_html: "Tu servitor de web es mal-configurate. Le confidentialitate de tu usatores es a risco."
+ action: Consulta hic pro plus information
+ message_html: "Tu servitor web es mal configurate. Le confidentialitate de tu usatores es in risco."
upload_check_privacy_error_object_storage:
- action: Verifica hic pro plus de information
- message_html: "Tu immagazinage de objectos es mal-configurate. Le confidentialitate de tu usatores es a risco."
+ action: Consulta hic pro plus information
+ message_html: "Tu immagazinage de objectos es mal configurate. Le confidentialitate de tu usatores es in risco."
tags:
review: Revide le stato
updated_msg: Parametros de hashtag actualisate con successo
@@ -885,67 +885,67 @@ ia:
trends:
allow: Permitter
approved: Approbate
- disallow: Impedir
+ disallow: Refusar
links:
allow: Permitter ligamine
- allow_provider: Permitter editor
- description_html: Istos es ligamines que es actualmente multo compartite per contos de que tu servitor vide messages. Illo pote adjutar tu usatores a discoperir lo que eveni in le mundo. Nulle ligamines es monstrate publicamente usque tu non approba le editor. Tu alsi pote permitter o rejectar ligamines singule.
- disallow: Impedir ligamine
- disallow_provider: Impedir editor
- no_link_selected: Nulle ligamine era cambiate perque nulle era seligite
+ allow_provider: Autorisar le publicator
+ description_html: Istes es ligamines que es actualmente compartite multo per contos del quales tu servitor recipe messages. Illos pote adjutar tu usatores a discoperir lo que eveni in le mundo. Necun ligamine es monstrate publicamente usque tu autorisa le publicator. Tu pote tamben permitter o rejectar ligamines singule.
+ disallow: Prohibir le ligamine
+ disallow_provider: Prohibir le publicator
+ no_link_selected: Necun ligamine ha essite cambiate perque necun ha essite seligite
publishers:
- no_publisher_selected: Nulle editores era cambiate perque nemo era seligite
+ no_publisher_selected: Necun publicator ha essite cambiate perque necun ha essite seligite
shared_by_over_week:
one: Compartite per un persona le septimana passate
other: Compartite per %{count} personas le septimana passate
- title: Ligamines de tendentia
- usage_comparison: Compartite %{today} vices hodie, comparate al %{yesterday} de heri
- not_allowed_to_trend: Non permittite haber tendentia
- only_allowed: Solo permittite
+ title: Ligamines in tendentia
+ usage_comparison: Compartite %{today} vices hodie, in comparation con le %{yesterday} de heri
+ not_allowed_to_trend: Non autorisate a apparer in tendentias
+ only_allowed: Solo permittites
pending_review: Attende revision
preview_card_providers:
- allowed: Ligamines ab iste editor pote haber tendentia
- description_html: Il ha dominios ab que ligamines es sovente compartite sur tu servitor. Ligamines non habera publicamente tendentia salvo que le dominio del ligamine es approbate. Tu approbation (o rejection) se extende al sub-dominios.
- rejected: Ligamines ab iste editor non habera tendentia
- title: Editores
+ allowed: Ligamines de iste publicator pote apparer in tendentias
+ description_html: Istes es le dominios del quales le ligamines es frequentemente compartite sur tu servitor. Le ligamines solmente apparera in le tendentias public si le dominio del ligamine es approbate. Tu approbation (o rejection) se extende al subdominios.
+ rejected: Ligamines de iste publicator non apparera in tendentias
+ title: Publicatores
rejected: Rejectate
statuses:
allow: Permitter message
allow_account: Permitter autor
- description_html: Istos es messages que tu servitor cognosce perque illos es al momento multo compartite e favorite. Isto pote adjutar tu nove e renovate usatores a trovar altere personas a sequer. Nulle messages es monstrate publicamente usque tu approba le autor, e le autor permitte que su conto es suggerite a alteres. Tu alsi pote permitter o rejectar messages singule.
- disallow: Impedir message
- disallow_account: Impedir autor
- no_status_selected: Nulle messages era cambiate perque nulle era seligite
- not_discoverable: Le autor non ha optate pro esser detectabile
+ description_html: Istes es le messages cognoscite sur tu servitor que al momento es multo compartite e marcate como favorite. Illos pote adjutar tu usatores nove e reveniente a trovar plus personas a sequer. Necun message es monstrate publicamente usque tu approba le autor, a condition que le autor permitte que su conto es suggerite a alteres. Tu pote tamben permitter o rejectar messages singule.
+ disallow: Non permitter message
+ disallow_account: Non permitter autor
+ no_status_selected: Necun message in tendentia ha essite cambiate perque necun ha essite seligite
+ not_discoverable: Le autor non ha optate pro esser discoperibile
shared_by:
- one: Compartite e favorite un tempore
- other: Compartite e favorite %{friendly_count} tempores
- title: Messages de tendentia
+ one: Compartite o marcate como favorite un vice
+ other: Compartite o marcate como favorite %{friendly_count} vices
+ title: Messages in tendentia
tags:
- current_score: Punctuage actual %{score}
+ current_score: Score actual %{score}
dashboard:
tag_accounts_measure: usos unic
tag_languages_dimension: Linguas principal
tag_servers_dimension: Servitores principal
tag_servers_measure: servitores differente
tag_uses_measure: usos total
- description_html: Istos es hashtags que actualmente appare in tante messages que tu servitor vide. Illo pote adjutar tu usatores a discoperir re que le personas parla plus al momento. Nulle hashtags es monstrate publicamente usque tu los approba.
+ description_html: Istes es hashtags que actualmente appare in multe messages que tu servitor vide. Illos pote adjutar tu usatores a discoperir le cosas sur le quales le gente parla le plus al momento. Nulle hashtags es monstrate publicamente usque tu los approba.
listable: Pote esser suggerite
- no_tag_selected: Nulle placas era cambiate perque nulle era seligite
- not_listable: Non sera suggerite
+ no_tag_selected: Necun etiquetta ha essite cambiate perque necun ha essite seligite
+ not_listable: Non essera suggerite
not_trendable: Non apparera sub tendentias
not_usable: Non pote esser usate
- peaked_on_and_decaying: Habeva un picco %{date}, ora decade
- title: Hashtags de tendentia
+ peaked_on_and_decaying: Ha attingite su maximo le %{date}, ora in declino
+ title: Hashtags in tendentia
trendable: Pote apparer sub tendentias
- trending_rank: 'De tendentia #%{rank}'
+ trending_rank: 'Tendentia #%{rank}'
usable: Pote esser usate
- usage_comparison: Usate %{today} vices hodie, al contrario del %{yesterday} de heri
+ usage_comparison: Usate %{today} vices hodie, in comparation con le %{yesterday} de heri
used_by_over_week:
- one: Usate per un persona le ultime septimana
- other: Usate per %{count} personas le ultime septimana
+ one: Usate per un persona in le ultime septimana
+ other: Usate per %{count} personas in le ultime septimana
title: Tendentias
- trending: Tendentias
+ trending: In tendentia
warning_presets:
add_new: Adder nove
delete: Deler
@@ -953,46 +953,46 @@ ia:
empty: Tu non ha ancora definite alcun avisos predefinite.
title: Predefinitiones de avisos
webhooks:
- add_new: Adder terminal
+ add_new: Adder puncto final
delete: Deler
- description_html: Un croc web habilita Mastodon a transmitter notificationes in tempore real re eventos seligite pro tu pro activar application, assi tu application pote automaticamente discatenar reactiones.
+ description_html: Un webhook o puncto de ancorage web permitte a Mastodon transmitter notificationes in tempore real sur eventos seligite a tu proprie application, de maniera que tu application pote automaticamente activar reactiones.
disable: Disactivar
disabled: Disactivate
- edit: Rediger terminal
- empty: Tu ancora non ha configurate alcun punctos final de web croc.
+ edit: Rediger puncto final
+ empty: Tu ancora non ha configurate alcun punctos final de webhook.
enable: Activar
enabled: Active
enabled_events:
one: 1 evento activate
other: "%{count} eventos activate"
events: Eventos
- new: Nove croc web
- rotate_secret: Rotar secrete
- secret: Firmante secrete
+ new: Nove webhook
+ rotate_secret: Rotar le secreto
+ secret: Secreto de signatura
status: Stato
- title: Crocs web
- webhook: Crocs web
+ title: Webhooks
+ webhook: Webhook
admin_mailer:
auto_close_registrations:
- body: Per un carentia recente de activate de moderator, le registrationes sur %{instance} ha essite automaticamente mutate a besoniante revision manual, pro impedir %{instance} de esser usate como un platteforma pro potential mal actores. Tu pote mutar lo retro pro sempre aperir le registrationes.
- subject: Le registrationes pro %{instance} ha essite automaticamente mutate a besoniante de approbation
+ body: A causa de un manco de activate recente de moderatores, le parametros de inscription sur %{instance} ha essite automaticamente cambiate pro exiger un verification manual, a fin de impedir le possibile uso de %{instance} per actores malevolente. Tu pote reaperir le inscription a omne momento.
+ subject: Le inscriptiones a %{instance} ha essite automaticamente cambiate pro exiger approbation
new_appeal:
actions:
- delete_statuses: pro deler lor messages
- disable: pro gelar lor conto
- mark_statuses_as_sensitive: pro marcar lor messages como sensibile
- none: pro advertir
- sensitive: a marcar lor conto como sensibile
- silence: pro limitar lor conto
- suspend: pro suspender lor conto
- body: "%{target} appella un decision de moderation per %{action_taken_by} ab le %{date}, que era %{type}. Ille scribeva:"
- next_steps: Tu pote approbar le appello a disfacer le decision de moderation, o ignorar lo.
- subject: "%{username} appella un decision de moderation sur %{instance}"
+ delete_statuses: deler su messages
+ disable: gelar su conto
+ mark_statuses_as_sensitive: marcar su messages como sensibile
+ none: emitter un advertimento
+ sensitive: marcar su conto como sensibile
+ silence: limitar su conto
+ suspend: suspender su conto
+ body: "%{target} appella contra un decision de moderation, prendite per %{action_taken_by} le %{date}, de %{type}. Le appellante ha scribite:"
+ next_steps: Tu pote approbar le appello pro disfacer le decision de moderation, o ignorar lo.
+ subject: "%{username} appella contra un decision de moderation sur %{instance}"
new_critical_software_updates:
- body: Nove versiones critic de Mastodon ha essite publicate, tu poterea voler actualisar al plus tosto possibile!
+ body: Nove versiones critic de Mastodon ha essite publicate, per favor considera actualisar le plus tosto possibile!
subject: Actualisationes critic de Mastodon es disponibile pro %{instance}!
new_pending_account:
- body: Le detalios del nove conto es infra.
+ body: Le detalios del nove conto es infra. Tu pote approbar o refusar iste demanda.
subject: Nove conto preste a revider sur %{instance} (%{username})
new_report:
body: "%{reporter} ha reportate %{target}"
@@ -1002,30 +1002,30 @@ ia:
body: Nove versiones de Mastodon ha essite publicate, tu poterea voler actualisar!
subject: Nove versiones de Mastodon es disponibile pro %{instance}!
new_trends:
- body: 'Le sequente elementos besoniar de un recension ante que illos pote esser monstrate publicamente:'
+ body: 'Le sequente entratas require un revision ante que illos pote esser monstrate publicamente:'
new_trending_links:
- title: Ligamines de tendentia
+ title: Ligamines in tendentia
new_trending_statuses:
- title: Messages de tendentia
+ title: Messages in tendentia
new_trending_tags:
- title: Hashtags de tendentia
- subject: Nove tendentias pro recenser sur %{instance}
+ title: Hashtags in tendentia
+ subject: Nove tendentias a revider sur %{instance}
aliases:
add_new: Crear alias
- created_msg: Create con successo un nove alias. Ora tu pote initiar le motion ab le vetere conto.
- deleted_msg: Removite con successo le alias. Mover de ille conto a isto non sera plus possibile.
+ created_msg: Le nove alias ha essite create. Ora tu pote initiar le migration desde le conto ancian.
+ deleted_msg: Le alias ha essite removite. Non essera plus possibile migrar de ille conto a iste.
empty: Tu non ha aliases.
- hint_html: Si tu desira mover ab un altere conto a isto, ci tu pote crear un alias, que es requirite ante que tu pote continuar con mover sequaces ab le vetere conto a isto. Iste action per se mesme es innocue e reversibile. Le migration de conto es initiate ab le vetere conto.
+ hint_html: Si tu vole migrar de un altere conto a iste, tu pote crear un alias ci, que es necessari pro poter transferer le sequitores del conto ancian a iste. Iste action per se es innocue e reversibile. Le migration del conto es initiate desde le conto ancian.
remove: Disligar alias
appearance:
advanced_web_interface: Interfacie web avantiate
- advanced_web_interface_hint: 'Si tu desira facer uso de tu integre largessa de schermo, le interfacie web avantiate te permitte de configurar plure columnas differente pro vider al mesme tempore tante informationes como tu vole: pagina principal, notificationes, chronogramma federate, ulle numero de listas e hashtags.'
+ advanced_web_interface_hint: 'Si tu vole utilisar tote le largessa de tu schermo, le interfacie web avantiate te permitte configurar multe columnas differente pro vider al mesme tempore tante informationes como tu vole: pagina principal, notificationes, chronologia federate, un numero illimitate de listas e hashtags.'
animations_and_accessibility: Animationes e accessibilitate
confirmation_dialogs: Dialogos de confirmation
discovery: Discoperta
localization:
body: Mastodon es traducite per voluntarios.
- guide_link: https://crowdin.com/project/mastodon
+ guide_link: https://crowdin.com/project/mastodon/ia
guide_link_text: Totes pote contribuer.
sensitive_content: Contento sensibile
application_mailer:
@@ -1033,110 +1033,110 @@ ia:
salutation: "%{name},"
settings: 'Cambiar preferentias de e-mail: %{link}'
unsubscribe: Desubscriber
- view: 'Vider:'
+ view: 'Visita:'
view_profile: Vider profilo
view_status: Vider message
applications:
created: Application create con successo
destroyed: Application delite con successo
- logout: Clauder le session
- regenerate_token: Regenerar testimonio de accesso
- token_regenerated: Testimonio de accesso regenerate con successo
- warning: Sia multo attente con iste datos. Jammais compartir los con quicunque!
- your_token: Tu testimonio de accesso
+ logout: Clauder session
+ regenerate_token: Regenerar token de accesso
+ token_regenerated: Le token de accesso ha essite regenerate
+ warning: Sia multo prudente con iste datos. Non comparti los jammais con alcuno!
+ your_token: Tu token de accesso
auth:
- apply_for_account: Peter un conto
+ apply_for_account: Requestar un conto
captcha_confirmation:
help_html: Si tu ha problemas a solver le CAPTCHA, tu pote contactar nos per %{email} e nos pote assister te.
- hint_html: Justo un altere cosa! Nos debe confirmar que tu es un human (isto es assi proque nos pote mantener foras le spam!). Solve le CAPTCHA infra e clicca "Continuar".
+ hint_html: Solo un altere cosa! Nos debe confirmar que tu es un humano (de sorta que nos pote mantener le spam foras!). Solve le CAPTCHA infra e clicca sur "Continuar".
title: Controlo de securitate
confirmations:
- awaiting_review: Tu adresse email es confirmate! Le personal de %{domain} ora revide tu registration. Tu recipera un email si illes approba tu conto!
- awaiting_review_title: Tu registration es revidite
- clicking_this_link: cliccante iste ligamine
- login_link: acceder
- proceed_to_login_html: Ora tu pote continuar a %{login_link}.
- redirect_to_app_html: Tu deberea haber essite re-dirigite al app %{app_name}. Si isto non eveni, tenta %{clicking_this_link} o manualmente retorna al app.
- registration_complete: Tu registration sur %{domain} es ora complete!
+ awaiting_review: Tu adresse de e-mail es confirmate! Le personal de %{domain} ora revide tu registration. Tu recipera un e-mail si illes approba tu conto!
+ awaiting_review_title: Tu inscription es in curso de revision
+ clicking_this_link: cliccar sur iste ligamine
+ login_link: aperir session
+ proceed_to_login_html: Ora tu pote %{login_link}.
+ redirect_to_app_html: Tu deberea haber essite redirigite al app %{app_name}. Si isto non ha evenite, tenta %{clicking_this_link} o retornar manualmente al app.
+ registration_complete: Tu inscription sur %{domain} es ora concludite!
welcome_title: Benvenite, %{name}!
- wrong_email_hint: Si ille adresse email non es correcte, tu pote cambiar lo in parametros de conto.
+ wrong_email_hint: Si ille adresse de e-mail non es correcte, tu pote cambiar lo in le parametros del conto.
delete_account: Deler le conto
- delete_account_html: Si tu vole a dele tu conto, tu pote continuar ci. Te sera demandate confirmation.
+ delete_account_html: Si tu vole deler tu conto, tu pote facer lo hic. Te essera demandate un confirmation.
description:
prefix_invited_by_user: "@%{name} te invita a junger te a iste servitor de Mastodon!"
prefix_sign_up: Inscribe te sur Mastodon hodie!
- suffix: Con un conto, tu potera sequer personas, messages de actualisation e excambios de messages con usatores de ulle servitor de Mastodon e plus!
+ suffix: Con un conto, tu potera sequer personas, publicar tu pensatas e excambiar messages con usatores de qualcunque servitor de Mastodon e multo plus!
didnt_get_confirmation: Non recipeva tu un ligamine de confirmation?
dont_have_your_security_key: Non ha tu le clave de securitate?
forgot_password: Contrasigno oblidate?
- invalid_reset_password_token: Pete un nove.
- link_to_otp: Insere un codice a duo factores o un codice de recuperation ab tu telephono
+ invalid_reset_password_token: Le token pro reinitialisar le contrasigno non es valide o ha expirate. Per favor requesta un nove.
+ link_to_otp: Insere un codice a duo factores de tu telephono o un codice de recuperation
link_to_webauth: Usa tu apparato clave de securitate
- log_in_with: Accede con
- login: Accede
- logout: Clauder le session
- migrate_account: Move a un conto differente
- migrate_account_html: Si tu vole re-adressar iste conto a un altere, tu pote configurar lo ci.
- or_log_in_with: O accede con
- privacy_policy_agreement_html: Io ha legite e acceptar le politica de confidentialitate
+ log_in_with: Aperir session con
+ login: Aperir session
+ logout: Clauder session
+ migrate_account: Migrar a un altere conto
+ migrate_account_html: Si tu vole rediriger iste conto a un altere, tu pote configurar lo hic.
+ or_log_in_with: O aperi session con
+ privacy_policy_agreement_html: Io ha legite e accepta le politica de confidentialitate
progress:
- confirm: Confirma le email
+ confirm: Confirmar e-mail
details: Tu detalios
review: Nostre revision
rules: Accepta le regulas
providers:
cas: CAS
saml: SAML
- register: Inscribe te
+ register: Inscriber se
registration_closed: "%{instance} non accepta nove membros"
resend_confirmation: Reinviar ligamine de confirmation
- reset_password: Remontar le contrasigno
+ reset_password: Reinitialisar contrasigno
rules:
accept: Acceptar
back: Retro
invited_by: 'Tu pote junger te a %{domain} gratias al invitation que tu ha recipite de:'
- preamble: Illos es predefinite e fortiarte per le moderatores de %{domain}.
- preamble_invited: Ante que tu continua, considera le regulas base definite per le moderatores de %{domain}.
- title: Alcun regulas base.
+ preamble: Istes es definite e applicate per le moderatores de %{domain}.
+ preamble_invited: Ante que tu continua, considera le regulas de base definite per le moderatores de %{domain}.
+ title: Alcun regulas de base.
title_invited: Tu ha essite invitate.
security: Securitate
set_new_password: Definir un nove contrasigno
setup:
- email_below_hint_html: Verifica tu plica de spam, o pete un altero. Tu pote corriger tu adresse email si illo es errate.
- email_settings_hint_html: Clicca le ligamine que nos te inviava pro verificar %{email}.
- link_not_received: Non obteneva tu un ligamine?
- new_confirmation_instructions_sent: Tu recipera un nove email con le ligamine de confirmation in alcun minutas!
- title: Verifica tu cassa de ingresso
+ email_below_hint_html: Consulta tu dossier de spam, o requesta un altere ligamine de confirmation. Tu pote corriger tu adresse de e-mail si illo es errate.
+ email_settings_hint_html: Clicca sur le ligamine que nos te ha inviate pro verificar %{email}. Nos te attendera hic.
+ link_not_received: Necun ligamine recipite?
+ new_confirmation_instructions_sent: Tu recipera un nove e-mail con le ligamine de confirmation in poc minutas!
+ title: Consulta tu cassa de entrata
sign_in:
- preamble_html: Accede con tu %{domain} credentiales. Si tu conto es hospite sur un differente servitor, tu non potera authenticar te ci.
- title: Acceder a %{domain}
+ preamble_html: Aperi session con tu credentiales de %{domain}. Si tu conto es albergate sur un altere servitor, tu non potera aperir session hic.
+ title: Aperir session sur %{domain}
sign_up:
- manual_review: Le inscriptiones sur %{domain} passa per revision manual de nostre moderatores. Pro adjutar nos a processar tu registration, scribe un poco re te mesme e perque tu vole un conto sur %{domain}.
- preamble: Con un conto sur iste servitor de Mastodon, tu potera sequer ulle altere persona in rete, sin reguardo de ubi lor conto es hospite.
- title: Lassa que nos te configura sur %{domain}.
+ manual_review: Le inscriptiones sur %{domain} passa per un revision manual de nostre moderatores. Pro adjutar nos a processar tu inscription, per favor scribe un poco sur te e explica proque tu vole un conto sur %{domain}.
+ preamble: Con un conto sur iste servitor de Mastodon, tu potera sequer qualcunque altere persona sur le rete, independentemente de ubi su conto es albergate.
+ title: Lassa nos installar tu conto sur %{domain}.
status:
account_status: Stato del conto
- confirming: Attendente esser completate email de confirmation.
- functional: Tu conto es plenmente operative.
- pending: Tu application es pendente de revision per nostre personal. Isto pote prender alcun tempore. Tu recipera un email si tu application es approbate.
- redirecting_to: Tu conto es inactive perque illo es actualmente re-adressa a %{acct}.
- self_destruct: Dum %{domain} va clauder, tu solo habera accesso limitate a tu conto.
- view_strikes: Examinar le admonitiones passate contra tu conto
- too_fast: Formulario inviate troppo velocemente, retenta.
+ confirming: Attendente le termination del confirmation del adresse de e-mail.
+ functional: Tu conto es completemente operative.
+ pending: Tu demanda attende le revision per nostre personal. Isto pote prender alcun tempore. Tu recipera un e-mail si tu demanda es approbate.
+ redirecting_to: Tu conto es inactive perque illo actualmente redirige a %{acct}.
+ self_destruct: Perque %{domain} va clauder, tu solo habera accesso limitate a tu conto.
+ view_strikes: Examinar le sanctiones passate contra tu conto
+ too_fast: Formulario inviate troppo rapidemente. Tenta lo de novo.
use_security_key: Usar clave de securitate
challenge:
confirm: Continuar
- hint_html: "Consilio: Nos non te demandara tu contrasigno ancora pro le proxime hora."
+ hint_html: "Consilio: Nos non te demandara tu contrasigno de novo in le proxime hora."
invalid_password: Contrasigno non valide
prompt: Confirma le contrasigno pro continuar
crypto:
errors:
invalid_key: non es un clave Ed25519 o Curve25519 valide
- invalid_signature: non es un valide firma Ed25519
+ invalid_signature: non es un signatura Ed25519 valide
date:
formats:
- default: "%b %d, %Y"
- with_month_name: "%B %d, %Y"
+ default: "%d %b %Y"
+ with_month_name: "%d de %B %Y"
datetime:
distance_in_words:
about_x_hours: "%{count}h"
@@ -1144,44 +1144,44 @@ ia:
about_x_years: "%{count}a"
almost_x_years: "%{count}a"
half_a_minute: Justo ora
- less_than_x_minutes: "%{count} m"
+ less_than_x_minutes: "%{count}m"
less_than_x_seconds: Justo ora
over_x_years: "%{count}a"
x_days: "%{count}d"
- x_minutes: "%{count} m"
+ x_minutes: "%{count}m"
x_months: "%{count}me"
x_seconds: "%{count}s"
deletes:
- challenge_not_passed: Le informationes que tu ha inserite non era correcte
+ challenge_not_passed: Le informationes que tu ha inserite non es correcte
confirm_password: Insere tu contrasigno actual pro verificar tu identitate
- confirm_username: Insere tu actual contrasigno pro verificar tu identitate
+ confirm_username: Insere tu nomine de usator pro confirmar le procedura
proceed: Deler le conto
- success_msg: Tu conto esseva delite con successo
+ success_msg: Tu conto ha essite delite
warning:
- before: 'Insere tu nomine de usator pro confirmar le procedura:'
- caches: Contente que ha essite in cache per altere servitores pote persister
+ before: 'Ante de continuar, per favor lege attentemente iste notas:'
+ caches: Le contento que altere servitores ha immagazinate in cache pote persister
data_removal: Tu messages e altere datos essera removite permanentemente
email_change_html: Tu pote cambiar tu adresse de e-mail sin deler tu conto
- email_contact_html: Si illo ancora non arriva, tu pote inviar email a %{email} pro peter adjuta
- email_reconfirmation_html: Si tu non recipe le email de confirmation, tu pote %{email} pro peter adjuta
+ email_reconfirmation_html: Si tu non recipe le e-mail de confirmation, tu pote politica de confidentialitate.
+ more_details_html: Pro plus detalios, vide le politica de confidentialitate.
username_available: Tu nomine de usator essera disponibile novemente
username_unavailable: Tu nomine de usator remanera indisponibile
disputes:
strikes:
- action_taken: Action prendite
- appeal: Facer appello
- appeal_approved: Iste admonition ha essite annullate in appello e non es plus valide
+ action_taken: Mesura prendite
+ appeal: Appellar
+ appeal_approved: Iste sanction ha essite annullate in appello e non es plus valide
appeal_rejected: Le appello ha essite rejectate
appeal_submitted_at: Appello submittite
appealed_msg: Tu appello ha essite submittite. Si es approbate, tu recipera notification.
appeals:
submit: Submitter appello
approve_appeal: Approbar apello
- associated_report: Signalation associate
+ associated_report: Le reporto associate
created_at: Del data
- description_html: Istes es le actiones prendite contra tu conto e le advertimentos que te ha essite inviate per le personal de %{instance}.
+ description_html: Istes es le mesuras prendite contra tu conto e le advertimentos que te ha essite inviate per le personal de %{instance}.
recipient: Adressate a
reject_appeal: Rejectar appello
status: Message №%{id}
@@ -1202,23 +1202,23 @@ ia:
invalid_domain: non es un nomine de dominio valide
edit_profile:
basic_information: Information basic
- hint_html: "Personalisa lo que le personas vide sur tu profilo public e presso tu messages. Il es plus probabile que altere personas te seque e interage con te quando tu ha un profilo compilate e un photo de profilo."
+ hint_html: "Personalisa lo que le personas vide sur tu profilo public e presso tu messages. Il es plus probabile que altere personas te seque e interage con te quando tu ha un profilo complete e un photo."
other: Alteres
errors:
- '400': Le requesta que tu inviava era non valide o mal formate.
- '403': Tu non ha le permisso pro acceder a iste pagina.
+ '400': Le requesta que tu ha inviate non es valide o es mal formate.
+ '403': Tu non ha le permission de acceder a iste pagina.
'404': Le pagina que tu cerca non es ci.
- '406': Iste pagina non es disponibile in le formato requirite.
+ '406': Iste pagina non es disponibile in le formato demandate.
'410': Le pagina que tu cercava non plus existe ci.
'422':
content: Le verification de securitate ha fallite. Bloca tu le cookies?
title: Falleva le verification de securitate
- '429': Troppe requestas
+ '429': Troppo de requestas
'500':
- content: Nos lo regretta, ma alco errate eveniva sur nostre extremo.
+ content: Nos lo regretta, ma qualcosa non ha functionate de nostre latere.
title: Iste pagina non es correcte
- '503': Le pagina non poteva esser servite per un panna de servitor temporari.
- noscript_html: A usar le application web Mastodon, activa JavaScript. In alternativa, tenta un del apps native de Mastodon pro tu platteforma.
+ '503': Le pagina non poteva esser servite a causa de un panna temporari del servitor.
+ noscript_html: Pro usar le application web Mastodon, es necessari activar JavaScript. Tu pote tamben probar un del apps native de Mastodon pro tu platteforma.
existing_username_validator:
not_found: impossibile trovar un usator local con ille nomine de usator
not_found_multiple: non poteva trovar %{usernames}
@@ -1226,9 +1226,9 @@ ia:
archive_takeout:
date: Data
download: Discargar tu archivo
- hint_html: Tu pote requirer un archivo de tu messages e medios cargate. Le datos exportate sera in le formato ActivityPub, legibile per ulle software conforme.
+ hint_html: Tu pote requestar un archivo de tu messages e files multimedial incargate. Le datos exportate essera in le formato ActivityPub, legibile per qualcunque software conforme. Tu pote requestar un archivo cata 7 dies.
in_progress: Compilante tu archivo...
- request: Pete tu archivo
+ request: Requestar tu archivo
size: Dimension
blocks: Tu ha blocate
bookmarks: Marcapaginas
@@ -1236,16 +1236,16 @@ ia:
domain_blocks: Blocadas de dominio
lists: Listas
mutes: Tu ha silentiate
- storage: Immagazinage de medios
+ storage: Immagazinage multimedial
featured_tags:
add_new: Adder nove
errors:
- limit: Tu ha jam consiliate le maxime numero de hashtags
- hint_html: "Consilia tu plus importante hashtags sur tu profilo. Un grande instrumento pro tener tracia de tu labores creative e projectos de longe-tempore, le hashtags consiliate es monstrate prominentemente sur tu profilo e permitte accesso rapide a tu proprie messages."
+ limit: Tu ha jam mittite in evidentia le maxime numero de hashtags
+ hint_html: "Monstra tu plus importante hashtags sur tu profilo. Un excellente instrumento pro tener tracia de tu labores creative e projectos de longe termino, le hashtags que tu mitte in evidentia appare prominentemente sur tu profilo e permitte le accesso rapide a tu proprie messages."
filters:
contexts:
account: Profilos
- home: Pagina de initio e listas
+ home: Initio e listas
notifications: Notificationes
public: Chronologias public
thread: Conversationes
@@ -1253,11 +1253,11 @@ ia:
add_keyword: Adder parola clave
keywords: Parolas clave
statuses: Messages individual
- statuses_hint_html: Iste filtro se applica a seliger messages singule sin reguardo si illes concorda le parolas clave infra. Revide o remove le messages ab le filtro.
+ statuses_hint_html: Iste filtro se applica a un selection de messages individual, independentemente de si illos corresponde al parolas clave infra. Revide o remove messages del filtro.
title: Modificar filtro
errors:
- deprecated_api_multiple_keywords: Iste parametros non pote esser cambiate ab iste application perque illos se applica a plus que un sol parola clave del filtro. Usa un application plus recente o le interfacie web.
- invalid_context: Nulle o non valide contexto supplite
+ deprecated_api_multiple_keywords: Iste parametros non pote esser cambiate desde iste application perque illos se applica a plus de un parola clave del filtro. Usa un application plus recente o le interfacie web.
+ invalid_context: Contexto mancante o non valide
index:
contexts: Filtros in %{contexts}
delete: Deler
@@ -1271,8 +1271,8 @@ ia:
one: "%{count} message"
other: "%{count} messages"
statuses_long:
- one: "%{count} singule message celate"
- other: "%{count} singule messages celate"
+ one: "%{count} message individual celate"
+ other: "%{count} messages individual celate"
title: Filtros
new:
save: Salveguardar nove filtro
@@ -1280,9 +1280,9 @@ ia:
statuses:
back_to_filter: Retro al filtro
batch:
- remove: Remover ab filtro
+ remove: Remover del filtro
index:
- hint: Iste filtro se applica pro seliger messages singule sin reguardo de altere criterios. Tu pote adder altere messages a iste filtro ab le interfacie web.
+ hint: Iste filtro se applica a un selection de messages individual, independentemente de altere criterios. Tu pote adder plus messages a iste filtro desde le interfacie web.
title: Messages filtrate
generic:
all: Toto
@@ -1290,53 +1290,53 @@ ia:
one: "%{count} elemento sur iste pagina es seligite."
other: Tote le %{count} elementos sur iste pagina es seligite.
all_matching_items_selected_html:
- one: "%{count} elemento concordante que tu cerca es seligite."
- other: Tote le %{count} elementos concordante que tu cerca es seligite.
+ one: "%{count} elemento correspondente al recerca es seligite."
+ other: Tote le %{count} elementos correspondente al recerca es seligite.
cancel: Cancellar
changes_saved_msg: Cambios salveguardate con successo!
confirm: Confirmar
copy: Copiar
delete: Deler
deselect: Deseliger toto
- none: Nemo
+ none: Necun
order_by: Ordinar per
save_changes: Salvar le cambios
select_all_matching_items:
- one: Selige %{count} elemento concordante tu recerca.
- other: Selige %{count} elementos concordante tu recerca.
+ one: Selige %{count} elemento correspondente a tu recerca.
+ other: Selige %{count} elementos correspondente a tu recerca.
today: hodie
validation_errors:
- one: Alco non es multo bon ancora! Controla le error infra
- other: Alco non es multo bon ancora! Controla %{count} errores infra
+ one: Qualcosa ancora non es multo bon! Per favor controla le error infra
+ other: Qualcosa ancora non es multo bon! Per favor controla le %{count} errores infra
imports:
errors:
empty: File CSV vacue
incompatible_type: Incompatibile con le typo de importation seligite
invalid_csv_file: 'File CSV non valide. Error: %{error}'
- over_rows_processing_limit: contine plus que %{count} rangos
- too_large: Le file es troppo longe
+ over_rows_processing_limit: contine plus de %{count} lineas
+ too_large: Le file es troppo grande
failures: Fallimentos
imported: Importate
- mismatched_types_warning: Il appare que tu pote haber seligite le typo errate pro iste importation, controla duo vices.
+ mismatched_types_warning: Il pare que tu pote haber seligite le typo errate pro iste importation. Per favor reverifica lo.
modes:
- merge: Funder
- merge_long: Mantene le registrationes existente e adde illos nove
+ merge: Fusionar
+ merge_long: Conservar le registros existente e adder noves
overwrite: Superscriber
overwrite_long: Reimplaciar registros actual con le noves
overwrite_preambles:
blocking_html: Tu es sur le puncto de reimplaciar tu lista de blocadas per usque a %{total_items} contos proveniente de %{filename}.
- bookmarks_html: Tu va reimplaciar tu lista de blocadas per usque a %{total_items} contos proveniente de %{filename}.
+ bookmarks_html: Tu es sur le puncto de reimplaciar tu marcapaginas per usque a %{total_items} messages desde %{filename}.
domain_blocking_html: Tu es sur le puncto de reimplaciar tu lista de blocadas de dominio per usque a %{total_items} dominios proveniente de %{filename}.
- following_html: Tu va sequer usque %{total_items} contos de %{filename} e cessar de sequer ulle altere.
- lists_html: Tu va reimplaciar tu lista con contentos de %{filename}. Usque %{total_items} contos sera addite a nove listas.
- muting_html: Tu va reimplaciar tu lista de contos silentiate con usque %{total_items} contos ab %{filename}.
+ following_html: Tu es sur le puncto de sequer usque a %{total_items} contos de %{filename} e cessar de sequer tote le alteres.
+ lists_html: Tu es sur le puncto de reimplaciar tu listas per le contento de %{filename}. Usque a %{total_items} contos essera addite a nove listas.
+ muting_html: Tu es sur le puncto de reimplaciar tu lista de contos silentiate con usque a %{total_items} contos desde %{filename}.
preambles:
blocking_html: Tu es sur le puncto de blocar usque a %{total_items} contos a partir de %{filename}.
- bookmarks_html: Tu va adder usque %{total_items} messages de %{filename} a tu marcapaginas.
+ bookmarks_html: Tu es sur le puncto de adder usque a %{total_items} messages desde %{filename} a tu marcapaginas.
domain_blocking_html: Tu es sur le puncto de blocar usque a %{total_items} dominios a partir de %{filename}.
- following_html: Tu va blocar usque a %{total_items} dominios ab %{filename}.
- lists_html: Tu va adder usque %{total_items} contos ab %{filename} a tu lista. Nove listas sera create si il non ha lista a adder.
- muting_html: Tu va silentiar usque %{total_items} contos ab %{filename}.
+ following_html: Tu es sur le puncto de sequer usque a %{total_items} contos desde %{filename}.
+ lists_html: Tu es sur le puncto de adder usque %{total_items} contos desde %{filename} a tu listas. Nove listas essera create si il non ha un lista al qual adder los.
+ muting_html: Tu es sur le puncto de silentiar usque a %{total_items} contos desde %{filename}.
preface: Tu pote importar datos que tu ha exportate de un altere servitor, como un lista de personas que tu seque o bloca.
recent_imports: Importationes recente
states:
@@ -1345,7 +1345,7 @@ ia:
scheduled: Planificate
unconfirmed: Non confirmate
status: Stato
- success: Tu datos era cargate con successo e sera processate in tempore debite
+ success: Tu datos ha essite correctemente incargate e essera tractate in tempore debite
time_started: Initiate le
titles:
blocking: Importation de contos blocate
@@ -1362,9 +1362,9 @@ ia:
blocking: Lista de blocadas
bookmarks: Marcapaginas
domain_blocking: Lista de dominios blocate
- following: Sequente lista
+ following: Lista de contos sequite
lists: Listas
- muting: Lista del silentiates
+ muting: Lista de contos silentiate
upload: Incargar
invites:
delete: Disactivar
@@ -1399,10 +1399,10 @@ ia:
sign_in_token: codice de securitate de e-mail
webauthn: claves de securitate
description_html: Si tu vide activitate que tu non recognosce, considera de cambiar tu contrasigno e activar le authentication a duo factores.
- empty: Nulle chronologia de authentication disponibile
+ empty: Nulle historia de authentication disponibile
failed_sign_in_html: Tentativa de authentication fallite con %{method} ab %{ip} (%{browser})
- successful_sign_in_html: Apertura de session con successo con %{method} ab %{ip} (%{browser})
- title: Chronologia de authentication
+ successful_sign_in_html: Apertura de session succedite con %{method} desde %{ip} (%{browser})
+ title: Historia de authentication
mail_subscriptions:
unsubscribe:
action: Si, desubscriber
@@ -1421,127 +1421,127 @@ ia:
media_attachments:
validations:
images_and_video: Impossibile annexar un video a un message que jam contine imagines
- not_ready: Impossibile annexar un video a un message que jam contine imagines. Retenta post un momento!
- too_many: Impossibile annexar plus que 4 files
+ not_ready: Impossibile annexar files que non ha ancora essite processate. Retenta post un momento!
+ too_many: Impossibile annexar plus de 4 files
migrations:
- acct: Movite a
+ acct: Ha migrate a
cancel: Cancellar redirection
- cancel_explanation: Cancellar le redirection reactivara tu conto actual, ma non reportara sequaces que ha essite movite in ille conto.
+ cancel_explanation: Cancellar le redirection reactivara tu conto actual, ma non te retornara le sequitores que ha essite transferite al altere conto.
cancelled_msg: Redirection cancellate con successo.
errors:
- already_moved: is the same account you have already moved to
+ already_moved: es le mesme conto al qual tu ha ja migrate
missing_also_known_as: non es un alias de iste conto
move_to_self: non pote esser le conto actual
- not_found: non poterea esser trovate
+ not_found: non poteva esser trovate
on_cooldown: Tu es in pausa
- followers_count: Sequaces a tempore de mover
- incoming_migrations: Movente ab un conto differente
- incoming_migrations_html: Pro mover ab un altere conto a isto, primo tu debe crear un alias de conto.
- moved_msg: Tu conto ora es redirigite a %{acct} e tu sequaces es movite super.
- not_redirecting: Tu conto actualmente non es redirigite a ulle altere conto.
- on_cooldown: Tu recentemente ha migrate tu conto. Iste function de novo sera disponibile in %{count} dies.
+ followers_count: Sequitores al momento de migration
+ incoming_migrations: Migrar de un altere conto
+ incoming_migrations_html: Pro migrar de un altere conto a iste, primo tu debe crear un alias de conto.
+ moved_msg: Tu conto es ora redirigite a %{acct} e le transferentia de tu sequitores es in curso.
+ not_redirecting: Tu conto actualmente non es redirigite a un altere conto.
+ on_cooldown: Tu ha recentemente migrate tu conto. Iste function essera disponibile de novo in %{count} dies.
past_migrations: Migrationes passate
- proceed_with_move: Mover sequaces
+ proceed_with_move: Transferer sequitores
redirected_msg: Tu conto es ora redirigite a %{acct}.
redirecting_to: Tu conto es redirigite a %{acct}.
- set_redirect: Predefinir redirection
+ set_redirect: Definir redirection
warning:
- backreference_required: Le nove conto debe primo esser configurate pro referer se a isto
- before: 'Ante de continuar, lege iste notas accuratemente:'
- cooldown: Post le movimento il ha un periodo de pausa durante le qual tu non potera mover te ancora
- disabled_account: Tu conto actual non sera plenmente usabile postea. Comocunque, tu habera accesso a exportation de datos e re-activation.
- followers: Iste action movera tote le sequaces ab le conto actual al nove conto
- only_redirect_html: In alternativa, tu pote solo superponer un redirection sur tu profilo.
- other_data: Nulle altere datos sera movite automaticamente
- redirect: Le profilo de tu conto actual sera actualisate con un aviso de redirection e sera excludite de recercas
+ backreference_required: Le nove conto debe primo esser configurate pro referer se a iste
+ before: 'Ante de continuar, lege attentemente iste notas:'
+ cooldown: Post le migration il ha un periodo de pausa durante le qual tu non potera migrar de novo
+ disabled_account: Tu conto actual non essera plenmente usabile postea. Nonobstante, tu habera accesso al exportation de datos e al reactivation.
+ followers: Iste action transferera tote le sequitores del conto actual al conto nove
+ only_redirect_html: Como alternativa, tu pote poner solmente un redirection sur tu profilo.
+ other_data: Nulle altere datos essera migrate automaticamente
+ redirect: Le profilo de tu conto actual essera actualisate con un aviso de redirection e excludite de recercas
moderation:
title: Moderation
move_handler:
carry_blocks_over_text: Iste usator ha cambiate de conto desde %{acct}, que tu habeva blocate.
- carry_mutes_over_text: Iste usator moveva ab %{acct}, que tu habeva silentiate.
- copy_account_note_text: 'Iste usator moveva ab %{acct}, ci era tu previe notas re ille:'
+ carry_mutes_over_text: Iste usator ha migrate de %{acct}, que tu habeva silentiate.
+ copy_account_note_text: 'Iste usator ha migrate de %{acct}, ecce tu previe notas sur iste persona:'
navigation:
- toggle_menu: Mutar menu
+ toggle_menu: Commutar menu
notification_mailer:
admin:
report:
- subject: "%{name} inviava un reporto"
+ subject: "%{name} ha inviate un reporto"
sign_up:
subject: "%{name} se ha inscribite"
favourite:
- body: 'Tu message era favorite per %{name}:'
- subject: "%{name} favoriva tu message"
- title: Nove preferito
+ body: 'Tu message ha essite marcate como favorite per %{name}:'
+ subject: "%{name} ha marcate tu message como favorite"
+ title: Nove favorite
follow:
body: "%{name} ora te seque!"
subject: "%{name} ora te seque"
title: Nove sequitor
follow_request:
- action: Gere requestas de sequer
+ action: Gerer requestas de sequimento
body: "%{name} ha demandate de sequer te"
- subject: 'Sequace pendente: %{name}'
+ subject: 'Sequitor pendente: %{name}'
title: Nove requesta de sequimento
mention:
action: Responder
- body: 'Tu era mentionate per %{name} in:'
- subject: Tu ha essite mentionate per %{name}
+ body: "%{name} te ha mentionate in:"
+ subject: "%{name} te ha mentionate"
title: Nove mention
poll:
- subject: Un inquesta de %{name} ha finite
+ subject: Un sondage de %{name} ha finite
reblog:
- body: 'Tu message ha essite impulsate per %{name}:'
+ body: "%{name} ha impulsate tu message:"
subject: "%{name} ha impulsate tu message"
title: Nove impulso
status:
- subject: "%{name} justo ha publicate"
+ subject: "%{name} ha publicate un message"
update:
subject: "%{name} ha modificate un message"
notifications:
- administration_emails: Avisos de email per administrator
- email_events: Eventos pro avisos de email
- email_events_hint: 'Selige eventos pro que tu vole reciper avisos:'
+ administration_emails: Notificationes per e-mail pro administratores
+ email_events: Eventos pro notificationes per e-mail
+ email_events_hint: 'Selige eventos pro le quales tu vole reciper notificationes:'
number:
human:
decimal_units:
- format: "%n%u"
+ format: "%n %u"
units:
- billion: B
- million: M
- quadrillion: Q
- thousand: K
- trillion: T
+ billion: mld
+ million: mln
+ quadrillion: bld
+ thousand: mil
+ trillion: bln
otp_authentication:
code_hint: Insere le codice generate per tu app de authentication pro confirmar
- description_html: Si tu activa le authentication a duo factores per un app de authentication, le authentication requirera que tu es in possession de tu telephono, que generara testimonios pro facer te entrar.
+ description_html: Si tu activa le authentication a duo factores usante un app de authentication, le authentication requirera que tu es in possession de tu telephono, que generara tokens que tu debera inserer.
enable: Activar
- instructions_html: "Scande iste codice QR in Google Authenticator o un simile app TOTP sur tu telephono. Desde ora in avante, ille app generara testimonios que tu debera inserer quando tu te authenticara."
- manual_instructions: 'Si tu non pote scander le codice QR e besonia de inserer lo manualmente, ecce le texto-simple secrete:'
+ instructions_html: "Scanna iste codice QR in Google Authenticator o un app TOTP simile sur tu telephono. Desde ora in avante, ille app generara tokens que tu debera inserer quando tu aperi session."
+ manual_instructions: 'Si tu non pote scannar le codice QR e debe inserer lo manualmente, ecce le secreto in texto simple:'
setup: Configurar
- wrong_code: Le codice inserite non era valide! Es tempore de servitor e tempore de apparato correcte?
+ wrong_code: Le codice inserite non es valide! Es le hora del servitor e del apparato correcte?
pagination:
- newer: Plus recente
+ newer: Plus nove
next: Sequente
- older: Plus vetere
+ older: Plus ancian
prev: Previe
truncate: "…"
polls:
errors:
already_voted: Tu jam ha votate in iste sondage
duplicate_options: contine elementos duplicate
- duration_too_long: il es troppo lontan in le futuro
- duration_too_short: il es troppo tosto
+ duration_too_long: es troppo lontan in le futuro
+ duration_too_short: es troppo tosto
expired: Le sondage ha jam finite
invalid_choice: Le option de voto eligite non existe
over_character_limit: non pote esser plus longe que %{max} characteres cata un
- self_vote: Tu non pote vota in tu proprie sondages
- too_few_options: debe haber plus que un elemento
- too_many_options: non pote continer plus que %{max} elementos
+ self_vote: Tu non pote votar in tu proprie sondages
+ too_few_options: debe haber plus de un elemento
+ too_many_options: non pote continer plus de %{max} elementos
preferences:
- other: Altere
- posting_defaults: Publicationes predefinite
+ other: Alteres
+ posting_defaults: Parametros de publication predefinite
public_timelines: Chronologias public
privacy:
- hint_html: "Personalisa como tu vole que tu profilo e tu messages a es trovate. Un varietate de functiones in Mastodon pote adjutar te attinger un plus large auditorio si activate. Prende un momento pro revider iste parametros pro assecurar te que illos se adapta a tu caso de uso."
+ hint_html: "Personalisa como tu vole que tu profilo e tu messages es trovate. Un varietate de functiones in Mastodon pote adjutar te a attinger un plus grande publico quando activate. Prende un momento pro revider iste parametros pro assecurar te que illos se adapta a tu besonios."
privacy: Confidentialitate
privacy_hint_html: Controla quanto tu vole divulgar pro le beneficio de alteres. Le gente discoperi profilos e applicationes interessante percurrente le profilos sequite per altere personas e vidente a partir de qual applicationes illos publica lor messages, ma tu pote preferer de mantener tal information private.
reach: Portata
@@ -1554,47 +1554,47 @@ ia:
reactions:
errors:
limit_reached: Limite de reactiones differente attingite
- unrecognized_emoji: non es un emoticone recognoscite
+ unrecognized_emoji: non es un emoji recognoscite
redirects:
- prompt: Si tu te fide de iste ligamine, clicca lo pro continuar.
+ prompt: Si tu te fide a iste ligamine, clicca sur illo pro continuar.
title: Tu va lassar %{instance}.
relationships:
activity: Activitate del conto
- confirm_follow_selected_followers: Desira tu vermente remover le sequaces seligite?
- confirm_remove_selected_followers: Desira tu vermente remover le sequaces seligite?
- confirm_remove_selected_follows: Desira tu vermente remover le sequaces seligite?
+ confirm_follow_selected_followers: Es tu secur que tu vole sequer le sequitores seligite?
+ confirm_remove_selected_followers: Es tu secur que tu vole remover le sequitores seligite?
+ confirm_remove_selected_follows: Es tu secur que tu vole cessar de sequer le contos seligite?
dormant: Dormiente
- follow_failure: Impossibile sequer alcun del contos seligite.
- follow_selected_followers: Sequer le sequaces seligite
- followers: Sequaces
+ follow_failure: Impossibile sequer alcunes del contos seligite.
+ follow_selected_followers: Sequer le sequitores seligite
+ followers: Sequitores
following: Sequente
invited: Invitate
- last_active: Ultimo active
+ last_active: Ultime activitate
most_recent: Plus recente
- moved: Movite
+ moved: Migrate
mutual: Mutue
primary: Primari
relationship: Relation
- remove_selected_domains: Remover tote le sequaces ab le dominios seligite
- remove_selected_followers: Remover le sequaces seligite
+ remove_selected_domains: Remover tote le sequitores del dominios seligite
+ remove_selected_followers: Remover le sequitores seligite
remove_selected_follows: Non plus sequer le usatores seligite
status: Stato del conto
remote_follow:
- missing_resource: Impossibile trovar le requirite re-adresse URL pro tu conto
+ missing_resource: Impossibile trovar le URL de redirection requirite pro tu conto
reports:
errors:
- invalid_rules: non referentia regulas valide
+ invalid_rules: non face referentia a regulas valide
rss:
content_warning: 'Advertimento de contento:'
descriptions:
account: Messages public de @%{acct}
- tag: 'Messages public plachettate #%{hashtag}'
+ tag: 'Messages public con hashtag #%{hashtag}'
scheduled_statuses:
over_daily_limit: Tu ha excedite le limite de %{limit} messages programmate pro hodie
over_total_limit: Tu ha excedite le limite de %{limit} messages programmate
too_soon: Le data programmate debe esser in le futuro
self_destruct:
- lead_html: Infortunatemente, %{domain} va clauder permanentemente. Si tu habeva un conto illac, tu non potera continuar a usar lo, ma tu pote ancora peter un salveguarda de tu datos.
+ lead_html: Infortunatemente, %{domain} tosto claudera permanentemente. Si tu habeva un conto illac, tu non potera continuar a usar lo, ma tu pote ancora requestar un copia de tu datos.
title: Iste servitor va clauder
sessions:
activity: Ultime activitate
@@ -1617,12 +1617,12 @@ ia:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
- unknown_browser: Navigator Incognite
+ unknown_browser: Navigator incognite
weibo: Weibo
current_session: Session actual
date: Data
description: "%{browser} sur %{platform}"
- explanation: Il ha navigatores del web actualmente connexe a tu conto Mastodon.
+ explanation: Istes es le navigatores web actualmente in session sur tu conto Mastodon.
ip: IP
platforms:
adobe_air: Adobe Air
@@ -1641,29 +1641,29 @@ ia:
revoke: Revocar
revoke_success: Session revocate con successo
title: Sessiones
- view_authentication_history: Vider chronologia de authentication de tu conto
+ view_authentication_history: Vider le historia de authentication de tu conto
settings:
account: Conto
account_settings: Parametros de conto
aliases: Aliases de conto
appearance: Apparentia
authorized_apps: Apps autorisate
- back: Tornar a Mastodon
+ back: Retornar a Mastodon
delete: Deletion de conto
development: Disveloppamento
edit_profile: Modificar profilo
export: Exportation de datos
- featured_tags: Hashtags eminente
+ featured_tags: Hashtags in evidentia
import: Importar
import_and_export: Importar e exportar
migrate: Migration de conto
- notifications: Notificationes de e-mail
+ notifications: Notificationes per e-mail
preferences: Preferentias
profile: Profilo public
relationships: Sequites e sequitores
severed_relationships: Relationes rupte
statuses_cleanup: Deletion de message automatic
- strikes: Admonitiones de moderation
+ strikes: Sanctiones de moderation
two_factor_authentication: Authentication a duo factores
webauthn_authentication: Claves de securitate
severed_relationships:
@@ -1675,7 +1675,7 @@ ia:
lost_followers: Sequitores perdite
lost_follows: Sequites perdite
preamble: Tu pote perder sequites e sequitores quando tu bloca un dominio o quando tu moderatores decide suspender un servitor remote. Quando isto occurre, tu potera discargar listas de relationes rumpite, a inspectar e eventualmente importar in un altere servitor.
- purged: Le information re iste servitor ha essite purgate per le administratores de tu servitor.
+ purged: Le information sur iste servitor ha essite purgate per le administratores de tu servitor.
type: Evento
statuses:
attached:
@@ -1698,7 +1698,7 @@ ia:
edited_at_html: Modificate le %{date}
errors:
in_reply_not_found: Le message a que tu tenta responder non pare exister.
- open_in_web: Aperir in le web
+ open_in_web: Aperir sur le web
over_character_limit: limite de characteres de %{max} excedite
pin_errors:
direct: Messages que es solo visibile a usatores mentionate non pote esser appunctate
@@ -1714,11 +1714,11 @@ ia:
other: "%{count} votos"
vote: Votar
show_more: Monstrar plus
- show_thread: Monstrar argumento
- title: '%{name}: "%{quote}"'
+ show_thread: Monstrar discussion
+ title: "%{name}: “%{quote}”"
visibilities:
direct: Directe
- private: Solo-sequaces
+ private: Solmente sequitores
private_long: Solmente monstrar a sequitores
public: Public
public_long: Omnes pote vider
@@ -1729,22 +1729,22 @@ ia:
enabled_hint: Dele automaticamente tu messages un vice que illos attinge un limine de etate specificate, salvo que illes concorda un del exceptiones infra
exceptions: Exceptiones
explanation: Pois que deler messages es un operation costose, isto es facite lentemente in le tempore quando le servitor non es alteremente occupate. Pro iste ration, tu messages pote esser delite un poco post que illos attinge le limine de etate.
- ignore_favs: Ignorar favoritos
+ ignore_favs: Ignorar favorites
ignore_reblogs: Ignorar impulsos
- interaction_exceptions: Exceptiones basate super interactiones
+ interaction_exceptions: Exceptiones basate sur interactiones
interaction_exceptions_explanation: Nota que il non ha garantia que le messages essera delite si illos va sub le limine de favorites o impulsos post haber lo superate un vice.
keep_direct: Mantener le messages directe
- keep_direct_hint: Non dele alcuno de tu messages directe
- keep_media: Mantener messages con annexos de medios
- keep_media_hint: Non dele alcuno de tu messages que ha annexos de medios
- keep_pinned: Mantener messages appunctate
- keep_pinned_hint: Non dele alcuno de tu messages appunctate
+ keep_direct_hint: Non dele alcun de tu messages directe
+ keep_media: Conservar messages con annexos multimedial
+ keep_media_hint: Non dele alcun de tu messages que ha annexos multimedial
+ keep_pinned: Conservar le messages fixate
+ keep_pinned_hint: Non dele alcun de tu messages fixate
keep_polls: Mantener sondages
- keep_polls_hint: Non dele ulle de tu sondages
- keep_self_bookmark: Mantener messages que tu marcava con marcapaginas
- keep_self_bookmark_hint: Non dele tu proprie messages si tu los ha marcate con marcapaginas
- keep_self_fav: Mantene messages que tu favoriva
- keep_self_fav_hint: Non dele tu proprie messages si tu los ha favorite
+ keep_polls_hint: Non dele alcun de tu sondages
+ keep_self_bookmark: Conservar le messages que tu ha in marcapaginas
+ keep_self_bookmark_hint: Non dele tu proprie messages si tu los ha addite al marcapaginas
+ keep_self_fav: Conservar tu messages favorite
+ keep_self_fav_hint: Non dele tu proprie messages si tu los ha marcate como favorite
min_age:
'1209600': 2 septimanas
'15778476': 6 menses
@@ -1755,17 +1755,17 @@ ia:
'63113904': 2 annos
'7889238': 3 menses
min_age_label: Limine de etate
- min_favs: Mantener messages favorite al minus
- min_favs_hint: Non deler alcuno de tu messages que ha recipite al minus iste numero de favoritos. Lassar blanc pro deler messages sin reguardo de lor numero de favoritos
- min_reblogs: Mantener messages impulsate al minus
+ min_favs: Conservar messages marcate como favorite al minus
+ min_favs_hint: Non dele alcun de tu messages que ha essite marcate como favorite al minus iste numero de vices. Lassa vacue pro deler messages independentemente de lor numero de marcas como favorite
+ min_reblogs: Conservar messages impulsate al minus
min_reblogs_hint: Non dele alcun de tu messages que ha essite impulsate al minus iste numero de vices. Lassar vacue pro deler messages independentemente de lor numero de impulsos
stream_entries:
sensitive_content: Contento sensibile
strikes:
errors:
- too_late: Es troppo tarde pro facer appello contra iste admonition
+ too_late: Es troppo tarde pro appellar contra iste sanction
tags:
- does_not_match_previous_name: non concorda le nomine previe
+ does_not_match_previous_name: non corresponde al nomine precedente
themes:
contrast: Mastodon (Alte contrasto)
default: Mastodon (Obscur)
@@ -1776,22 +1776,22 @@ ia:
default: "%d %b %Y, %H:%M"
month: "%b %Y"
time: "%H:%M"
- with_time_zone: "%b %d, %Y, %H:%M %Z"
+ with_time_zone: "%d %b %Y, %H:%M %Z"
translation:
errors:
quota_exceeded: Le quota de utilisation del servitor pro le servicio de traduction ha essite excedite.
- too_many_requests: Il ha habite troppe requestas al servicio de traduction recentemente.
+ too_many_requests: Il ha habite troppo de requestas al servicio de traduction recentemente.
two_factor_authentication:
add: Adder
- disable: Disactivar 2FA
+ disable: Disactivar A2F
disabled_success: Authentication a duo factores disactivate con successo
edit: Modificar
enabled: Le authentication a duo factores es activate
enabled_success: Authentication a duo factores activate con successo
generate_recovery_codes: Generar codices de recuperation
- lost_recovery_codes: Le codices de recuperation te permitte de reganiar accesso a tu conto si tu perde tu telephono. Si tu ha perdite tu codices de recuperation, tu pote regenerar los ci. Tu vetere codices de recuperation sera invalidate.
+ lost_recovery_codes: Le codices de recuperation te permitte reganiar le accesso a tu conto si tu perde tu telephono. Si tu ha perdite tu codices de recuperation, tu pote regenerar los hic. Tu ancian codices de recuperation essera invalidate.
methods: Methodos a duo factores
- otp: App de authenticator
+ otp: App authenticator
recovery_codes: Salveguardar codices de recuperation
recovery_codes_regenerated: Codices de recuperation regenerate con successo
recovery_instructions_html: Si tu perde le accesso a tu telephono, tu pote usar un del codices de recuperation hic infra pro reganiar le accesso a tu conto. Mantene le codices de recuperation secur. Per exemplo, tu pote imprimer los e guardar los con altere documentos importante.
@@ -1799,33 +1799,33 @@ ia:
user_mailer:
appeal_approved:
action: Parametros de conto
- explanation: Le appello contra le admonition contra tu conto del %{strike_date}, que tu ha submittite le %{appeal_date}, ha essite approbate. Tu conto ha de novo un bon reputation.
- subject: Tu appello ab %{date} ha essite approbate
- subtitle: Tu conto es ancora un vice in regula.
+ explanation: Le appello contra le sanction del %{strike_date} contra tu conto, que tu ha submittite le %{appeal_date}, ha essite approbate. Tu conto es de bon reputation de novo.
+ subject: Tu appello del %{date} ha essite approbate
+ subtitle: Tu conto es de bon reputation de novo.
title: Appello approbate
appeal_rejected:
- explanation: Le appello contra le admonition contra tu conto del %{strike_date}, que tu ha submittite le %{appeal_date}, ha essite rejectate.
- subject: Tu appello ab %{date} ha essite rejectate
+ explanation: Le appello contra le sanction del %{strike_date} contra tu conto, que tu ha submittite le %{appeal_date}, ha essite rejectate.
+ subject: Tu appello del %{date} ha essite rejectate
subtitle: Tu appello ha essite rejectate.
title: Appello rejectate
backup_ready:
explanation: Tu ha requestate un copia de securitate complete de tu conto de Mastodon.
- extra: Isto es preste pro discargar!
+ extra: Illo es ora preste pro discargar!
subject: Tu archivo es preste pro discargar
title: Discargar archivo
failed_2fa:
- details: 'Hic es le detalios del tentativa de initio de session:'
+ details: 'Ecce le detalios del tentativa de apertura de session:'
explanation: Alcuno ha tentate aperir session a tu conto ma ha fornite un secunde factor de authentication non valide.
further_actions_html: Si non se tractava de te, nos recommenda %{action} immediatemente perque illo pote esser compromittite.
- subject: Fallimento del authentication de duo factores
- title: Falleva le authentication de duo factores
+ subject: Fallimento de authentication del secunde factor
+ title: Ha fallite le authentication del secunde factor
suspicious_sign_in:
change_password: cambiar tu contrasigno
- details: 'Hic es le detalios del initio de session:'
- explanation: Nos ha detegite un initio de session a tu conto ab un nove adresse IP.
+ details: 'Ecce le detalios del apertura de session:'
+ explanation: Nos ha detegite un apertura de session sur tu conto desde un nove adresse IP.
further_actions_html: Si non se tractava de te, nos recommenda %{action} immediatemente e activar le authentication bifactorial pro mantener tu conto secur.
subject: Alcuno ha accedite a tu conto desde un nove adresse IP
- title: Un nove initio de session
+ title: Un nove apertura de session
warning:
appeal: Submitter un appello
appeal_description: Si tu crede que se tracta de un error, tu pote presentar un appello al personal de %{instance}.
@@ -1840,9 +1840,9 @@ ia:
silence: Tu pote ancora usar tu conto ma solmente le personas qui ja te seque videra tu messages sur iste servitor, e tu pote esser excludite de varie functiones de discoperta. Nonobstante, altere personas pote ancora sequer te manualmente.
suspend: Tu non pote plus usar tu conto, e tu profilo e altere datos non es plus accessibile. Tu pote ancora aperir session pro requestar un copia de reserva de tu datos usque lor elimination in circa 30 dies. Nos retenera certe datos de base pro impedir que tu evade le suspension.
reason: 'Ration:'
- statuses: 'Message citate:'
+ statuses: 'Messages citate:'
subject:
- delete_statuses: Tu messages sur %{acct} esseva removite
+ delete_statuses: Tu messages sur %{acct} ha essite removite
disable: Tu conto %{acct} ha essite gelate
mark_statuses_as_sensitive: Tu messages sur %{acct} ha essite marcate como sensibile
none: Advertimento pro %{acct}
@@ -1858,7 +1858,7 @@ ia:
silence: Conto limitate
suspend: Conto suspendite
welcome:
- apps_android_action: Obtene lo sur Google Play
+ apps_android_action: Obtener lo sur Google Play
apps_ios_action: Discargar sur le App Store
apps_step: Discarga nostre applicationes official.
apps_title: Applicationes de Mastodon
@@ -1870,7 +1870,7 @@ ia:
explanation: Ecce alcun consilios pro initiar
feature_action: Apprender plus
feature_audience: Mastodon te presenta le possibilitate unic de gerer tu audientia sin intermediarios. Mastodon, installate sur tu proprie infrastructura, te permitte sequer, e esser sequite per, personas sur qualcunque altere servitor Mastodon in linea, e necuno lo controla salvo tu.
- feature_audience_title: Crea tu auditorio in fiducia
+ feature_audience_title: Crea tu audientia in confidentia
feature_control: Tu sape melio lo que tu vole vider sur tu fluxo de initio. Nulle algorithmos o annuncios dissipa tu tempore. Seque quicinque sur qualcunque servitor Mastodon desde un sol conto, recipe lor messages in ordine chronologic, e face te un angulo del internet ubi tu te senti a casa.
feature_control_title: Mantene le controlo de tu proprie chronologia
feature_creativity: Mastodon supporta messages con audio, video e imagines, descriptiones de accessibilitate, sondages, advertimentos de contento, avatares con animation, emojis personalisate, controlo de retalio de miniaturas, e plus, pro adjutar te a exprimer te in linea. Que tu publica tu arte, tu musica o tu podcast, Mastodon existe pro te.
@@ -1879,13 +1879,13 @@ ia:
feature_moderation_title: Moderation como deberea esser
follow_action: Sequer
follow_step: Sequer personas interessante es le ration de esser de Mastodon.
- follow_title: Personalisa tu fluxo de initio
+ follow_title: Personalisa tu fluxo principal
follows_subtitle: Seque contos popular
follows_title: Qui sequer
- follows_view_more: Vider plus de personas a sequer
+ follows_view_more: Vider plus personas a sequer
hashtags_recent_count:
one: "%{people} persona in le passate duo dies"
- other: "%{people} personas in le passate duo diea"
+ other: "%{people} personas in le passate duo dies"
hashtags_subtitle: Explora le tendentias del passate 2 dies
hashtags_title: Hashtags in tendentia
hashtags_view_more: Vider plus de hashtags in tendentia
@@ -1929,4 +1929,4 @@ ia:
not_enabled: Tu ancora non ha activate WebAuthn
not_supported: Iste navigator non supporta claves de securitate
otp_required: Pro usar le claves de securitate activa prime le authentication de duo factores.
- registered_on: Registrate le %{date}
+ registered_on: Inscribite le %{date}
diff --git a/config/locales/lt.yml b/config/locales/lt.yml
index c29218c1fe756f..9e60ddfe529954 100644
--- a/config/locales/lt.yml
+++ b/config/locales/lt.yml
@@ -446,6 +446,7 @@ lt:
instances:
availability:
title: Prieinamumas
+ warning: Paskutinis bandymas prisijungti prie šio serverio buvo nesėkmingas
back_to_all: Visi
back_to_limited: Apribotas
back_to_warning: Įspėjimas
@@ -488,7 +489,7 @@ lt:
inbox_url: Perdavimo URL
pending: Laukiama perdavimo patvirtinimo
save_and_enable: Išsaugoti ir įjungti
- setup: Sukurti perdavimo ryšį
+ setup: Nustatyti perdavimo ryšį
status: Statusas
title: Perdavimai
report_notes:
@@ -600,6 +601,8 @@ lt:
elasticsearch_preset_single_node:
action: Žiūrėti dokumentaciją
message_html: Tavo Elasticsearch klasteris turi tik vieną mazgą, ES_PRESET
turėtų būti nustatyta į single_node_cluster
.
+ elasticsearch_running_check:
+ message_html: Nepavyko prijungti prie Elasticsearch. Patikrink, ar ji veikia, arba išjunk viso teksto paiešką.
title: Administracija
trends:
allow: Leisti
diff --git a/config/locales/simple_form.ia.yml b/config/locales/simple_form.ia.yml
index d3237762ea9e97..2d0af3001ef69f 100644
--- a/config/locales/simple_form.ia.yml
+++ b/config/locales/simple_form.ia.yml
@@ -3,42 +3,42 @@ ia:
simple_form:
hints:
account:
- discoverable: Tu messages public e tu profilo pote esser consiliate o recommendate in varie areas de Mastodon e tu profilo pote esser suggerite a altere usatores.
+ discoverable: Tu messages public e tu profilo pote esser mittite in evidentia o recommendate in varie areas de Mastodon e tu profilo pote esser suggerite a altere usatores.
display_name: Tu prenomine e nomine de familia o tu pseudonymo.
- fields: Tu pagina principal, pronomines, etate, toto lo que tu vole.
- indexable: Tu messages public pote apparer in resultatos del recerca sur Mastodon. Illes qui ha interagite con tu messages totevia pote cercar les.
+ fields: Tu pagina principal, pronomines, etate, tote lo que tu vole.
+ indexable: Tu messages public pote apparer in le resultatos de recerca sur Mastodon. Le personas qui ha interagite con tu messages pote cercar los in omne caso.
note: 'Tu pote @mentionar altere personas o #hashtags.'
- show_collections: Le personas potera navigar per tu sequites e sequaces. Le personas potera navigar per tu sequites e sequaces.
- unlocked: Le personas potera sequer te sin requestar approbation. Dismarca si tu desira revider le requestas de sequer e selige si acceptar o rejectar nove sequaces.
+ show_collections: Le gente potera percurrer le listas de personas que tu seque e qui te seque. Le personas que tu seque videra que tu les seque in omne caso.
+ unlocked: Le personas potera sequer te sin requestar approbation. Dismarca si tu vole revider le requestas de sequimento e seliger si acceptar o rejectar nove sequitores.
account_alias:
- acct: Specifica le nomine_de_usator@dominio del conto ab que tu vole mover
+ acct: Specifica le nomine_de_usator@dominio del conto desde le qual tu vole migrar
account_migration:
- acct: Specifica le nomine_de_usator@dominio del conto a que tu vole mover
+ acct: Specifica le nomine_de_usator@dominio del conto al qual tu vole migrar
account_warning_preset:
- text: Tu pote usar le syntaxe de message, tal como URLs, hashtags e mentiones
+ text: Tu pote usar le syntaxe de messages, como URLs, hashtags e mentiones
title: Optional. Non visibile al destinatario
admin_account_action:
- include_statuses: Le usator videra que messages ha causate le action o aviso de moderation
- send_email_notification: Le usator recipera un explication de cosa eveniva con lor conto
- text_html: Optional. Tu pote usar le syntaxe de message. Tu pote adder avisos preconfigurate pro sparniar tempore
- type_html: Selige lo que tu vole facer con %{acct}
+ include_statuses: Le usator videra qual messages ha causate le action o advertimento de moderation
+ send_email_notification: Le usator recipera un explication de lo que ha evenite con su conto
+ text_html: Optional. Tu pote usar le syntaxe de messages. Tu pote adder advertimentos preconfigurate pro sparniar tempore
+ type_html: Selige lo que facer con %{acct}
types:
- disable: Impedir al usator de usar lor conto, sin deler o celar lor contentos.
- none: Usar lo pro inviar un aviso al usator, sin discatenar ulle altere action.
- sensitive: Fortiar tote le annexos multimedial de iste usator a esser signalate como sensibile.
- silence: Impedir al usator de poter publicar messages con public visibilitate, celar lor messages e notificationes ab gente non sequente illes. Clauder tote le reportos contra iste conto.
- suspend: Impedir ulle interaction de o a iste conto e deler su contentos. Reversibile intra 30 dies. Clauder tote le reportos contra iste conto.
- warning_preset_id: Optional. Tu pote ancora adder personal texto a fin del preconfigurate
+ disable: Impedir al usator de usar su conto, sin deler o celar su contento.
+ none: Usa isto pro inviar un advertimento al usator, sin prender alcun altere mesura.
+ sensitive: Fortiar tote le annexos multimedial de iste usator a esser marcate como sensibile.
+ silence: Impedir al usator de publicar messages con visibilitate public, celante su messages e notificationes a qui non le seque. Claude tote le reportos contra iste conto.
+ suspend: Impedir tote interaction desde o verso iste conto e deler su contento. Reversibile intra 30 dies. Claude tote le reportos contra iste conto.
+ warning_preset_id: Optional. Tu pote ancora adder texto personalisate al fin del preconfigurate
announcement:
- all_day: Si marcate, solo le datas del campo tempore sera monstrate
- ends_at: Le annuncio sera automaticamente obscurate a iste tempore
- scheduled_at: Lassar blanc pro publicar le annuncio immediatemente
- starts_at: Optional. In caso tu annuncio es ligate con un specific campo tempore
- text: Tu pote usar le syntaxe de message. Presta attention al spatio que le annuncio occupara sur le schermo de usator
+ all_day: Si marcate, solmente le datas del intervallo de tempore essera monstrate
+ ends_at: Optional. Le annuncio essera automaticamente retirate del publication a iste tempore
+ scheduled_at: Lassa vacue pro publicar le annuncio immediatemente
+ starts_at: Optional. In caso que tu annuncio es ligate a un intervallo specific de tempore
+ text: Tu pote usar le syntaxe de messages. Presta attention al spatio que le annuncio occupara sur le schermo del usator
appeal:
- text: Tu pote solo appellar te un vice
+ text: Tu pote solo appellar contra un sanction un vice
defaults:
- autofollow: Illes qui se inscribe per le invitation automaticamente devenira tu sequaces
+ autofollow: Le personas qui se inscribe per medio del invitation te sequera automaticamente
avatar: WEBP, PNG, GIF or JPG. Al maximo %{size}. Sera diminuite a %{dimensions}px
bot: Signala a alteres que le conto principalmente exeque actiones automatisate e poterea non esser surveliate
context: Un o plure contextos ubi le filtro deberea applicar se
@@ -64,7 +64,7 @@ ia:
username: Tu pote usar litteras, numeros e tractos de sublineamento
whole_word: Quando le parola o expression clave es solo alphanumeric, illo sera solo applicate si illo concorda con tote le parola
domain_allow:
- domain: Iste dominio potera reportar datos ab iste servitor e le datos in ingresso ab illo sera processate e immagazinate
+ domain: Iste dominio potera extraher datos de iste servitor e le datos entrante de illo essera processate e immagazinate
email_domain_block:
domain: Isto pote esser le nomine de dominio que apparera in le adresse email o le registration MX que illo usa. Illos sera verificate durante le inscription.
with_dns_records: Un tentativa sera facite pro resolver le registrationes de DNS del dominio date e le resultatos sera alsi blocate
@@ -158,7 +158,7 @@ ia:
text: Texto predefinite
title: Titulo
admin_account_action:
- include_statuses: Includer messages reportate in le email
+ include_statuses: Includer le messages reportate in le e-mail
send_email_notification: Notificar le usator per e-mail
text: Advertimento personalisate
type: Action
@@ -269,7 +269,7 @@ ia:
trends: Activar tendentias
trends_as_landing_page: Usar tendentias como pagina de destination
interactions:
- must_be_follower: Blocar notificationes de non-sequaces
+ must_be_follower: Blocar notificationes de personas qui non te seque
must_be_following: Blocar notificationes de gente que tu non sequer
must_be_following_dm: Blocar messages directe de gente que tu non seque
invite:
diff --git a/config/locales/simple_form.lv.yml b/config/locales/simple_form.lv.yml
index 888e08b650170e..017acd0a53ccb0 100644
--- a/config/locales/simple_form.lv.yml
+++ b/config/locales/simple_form.lv.yml
@@ -78,6 +78,7 @@ lv:
form_admin_settings:
activity_api_enabled: Vietēji publicēto ziņu, aktīvo lietotāju un jauno reģistrāciju skaits nedēļas kopās
app_icon: WEBP, PNG, GIF vai JPG. Mobilajās ierīcēs aizstāj noklusējuma lietotnes ikonu ar pielāgotu.
+ backups_retention_period: Lietotājiem ir iespēja izveidot savu ierakstu arhīvu lejupielādēšanai vēlāk. Kad iestatīta pozitīva vērtība, šie arhīvi tiks automātiski izdzēsti no krātuves pēc norādītā dienu skaita.
bootstrap_timeline_accounts: Šie konti tiks piesprausti jauno lietotāju ieteikumu augšdaļā.
closed_registrations_message: Tiek rādīts, kad reģistrēšanās ir slēgta
custom_css: Vari lietot pielāgotus stilus Mastodon tīmekļa versijā.
diff --git a/config/routes/api.rb b/config/routes/api.rb
index 996fccc8ee3559..b4054d096e7fdb 100644
--- a/config/routes/api.rb
+++ b/config/routes/api.rb
@@ -48,6 +48,7 @@
namespace :timelines do
resource :home, only: :show, controller: :home
resource :public, only: :show, controller: :public
+ resource :link, only: :show, controller: :link
resources :tag, only: :show
resources :list, only: :show
resources :antenna, only: :show
diff --git a/crowdin.yml b/crowdin.yml
index d05b0e69f526a1..991c5b82520201 100644
--- a/crowdin.yml
+++ b/crowdin.yml
@@ -1,4 +1,4 @@
-# This is needed for the Github Action
+# This is needed for the GitHub Action
project_id_env: CROWDIN_PROJECT_ID
api_token_env: CROWDIN_PERSONAL_TOKEN
diff --git a/db/migrate/20240607093446_change_mention_status_id_non_nullable.rb b/db/migrate/20240607093446_change_mention_status_id_non_nullable.rb
new file mode 100644
index 00000000000000..b6ee4d318f14a5
--- /dev/null
+++ b/db/migrate/20240607093446_change_mention_status_id_non_nullable.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class ChangeMentionStatusIdNonNullable < ActiveRecord::Migration[7.1]
+ def change
+ add_check_constraint :mentions, 'status_id IS NOT NULL', name: 'mentions_status_id_null', validate: false
+ end
+end
diff --git a/db/migrate/20240607093954_validate_change_mention_status_id_non_nullable.rb b/db/migrate/20240607093954_validate_change_mention_status_id_non_nullable.rb
new file mode 100644
index 00000000000000..bd3d9a33a69181
--- /dev/null
+++ b/db/migrate/20240607093954_validate_change_mention_status_id_non_nullable.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class ValidateChangeMentionStatusIdNonNullable < ActiveRecord::Migration[7.1]
+ def up
+ validate_check_constraint :mentions, name: 'mentions_status_id_null'
+ change_column_null :mentions, :status_id, false
+ remove_check_constraint :mentions, name: 'mentions_status_id_null'
+ end
+
+ def down
+ add_check_constraint :mentions, 'status_id IS NOT NULL', name: 'mentions_status_id_null', validate: false
+ change_column_null :mentions, :status_id, true
+ end
+end
diff --git a/db/migrate/20240607094603_change_mention_account_id_non_nullable.rb b/db/migrate/20240607094603_change_mention_account_id_non_nullable.rb
new file mode 100644
index 00000000000000..72d7bf24477ebf
--- /dev/null
+++ b/db/migrate/20240607094603_change_mention_account_id_non_nullable.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class ChangeMentionAccountIdNonNullable < ActiveRecord::Migration[7.1]
+ def change
+ add_check_constraint :mentions, 'account_id IS NOT NULL', name: 'mentions_account_id_null', validate: false
+ end
+end
diff --git a/db/migrate/20240607094856_validate_change_mention_account_id_non_nullable.rb b/db/migrate/20240607094856_validate_change_mention_account_id_non_nullable.rb
new file mode 100644
index 00000000000000..1125dffb39283b
--- /dev/null
+++ b/db/migrate/20240607094856_validate_change_mention_account_id_non_nullable.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class ValidateChangeMentionAccountIdNonNullable < ActiveRecord::Migration[7.1]
+ def up
+ validate_check_constraint :mentions, name: 'mentions_account_id_null'
+ change_column_null :mentions, :account_id, false
+ remove_check_constraint :mentions, name: 'mentions_account_id_null'
+ end
+
+ def down
+ add_check_constraint :mentions, 'account_id IS NOT NULL', name: 'mentions_account_id_null', validate: false
+ change_column_null :mentions, :account_id, true
+ end
+end
diff --git a/db/post_migrate/20240603195202_change_read_me_scope_to_profile.rb b/db/post_migrate/20240603195202_change_read_me_scope_to_profile.rb
new file mode 100644
index 00000000000000..05e5984c480bbb
--- /dev/null
+++ b/db/post_migrate/20240603195202_change_read_me_scope_to_profile.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class ChangeReadMeScopeToProfile < ActiveRecord::Migration[7.1]
+ def up
+ replace_scopes('read:me', 'profile')
+ end
+
+ def down
+ replace_scopes('profile', 'read:me')
+ end
+
+ private
+
+ def replace_scopes(old_scope, new_scope)
+ Doorkeeper::Application.where("scopes LIKE '%#{old_scope}%'").in_batches do |applications|
+ applications.update_all("scopes = replace(scopes, '#{old_scope}', '#{new_scope}')")
+ end
+
+ Doorkeeper::AccessToken.where("scopes LIKE '%#{old_scope}%'").in_batches do |access_tokens|
+ access_tokens.update_all("scopes = replace(scopes, '#{old_scope}', '#{new_scope}')")
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index f9bb16f552bb7f..f9114ea233da3c 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema[7.1].define(version: 2024_05_22_041528) do
+ActiveRecord::Schema[7.1].define(version: 2024_06_07_094856) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -856,10 +856,10 @@
end
create_table "mentions", force: :cascade do |t|
- t.bigint "status_id"
+ t.bigint "status_id", null: false
t.datetime "created_at", precision: nil, null: false
t.datetime "updated_at", precision: nil, null: false
- t.bigint "account_id"
+ t.bigint "account_id", null: false
t.boolean "silent", default: false, null: false
t.index ["account_id", "status_id"], name: "index_mentions_on_account_id_and_status_id", unique: true
t.index ["status_id"], name: "index_mentions_on_status_id"
diff --git a/docker-compose.yml b/docker-compose.yml
index e7ae95ea7aa71a..7089b0d14f3a05 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,3 +1,6 @@
+# This file is designed for production server deployment, not local development work
+# For a containerized local dev environment, see: https://github.com/mastodon/mastodon/blob/main/README.md#docker
+
services:
db:
restart: always
diff --git a/lib/mastodon/cli/media.rb b/lib/mastodon/cli/media.rb
index 509d11a8198948..123973d1954f98 100644
--- a/lib/mastodon/cli/media.rb
+++ b/lib/mastodon/cli/media.rb
@@ -13,6 +13,7 @@ class Media < Base
option :remove_headers, type: :boolean, default: false
option :include_follows, type: :boolean, default: false
option :concurrency, type: :numeric, default: 5, aliases: [:c]
+ option :verbose, type: :boolean, default: false, aliases: [:v]
option :dry_run, type: :boolean, default: false
desc 'remove', 'Remove remote media files, headers or avatars'
long_desc <<-DESC
diff --git a/lib/paperclip/blurhash_transcoder.rb b/lib/paperclip/blurhash_transcoder.rb
index c22c20c57ad19c..150275bc9e078f 100644
--- a/lib/paperclip/blurhash_transcoder.rb
+++ b/lib/paperclip/blurhash_transcoder.rb
@@ -5,12 +5,28 @@ class BlurhashTranscoder < Paperclip::Processor
def make
return @file unless options[:style] == :small || options[:blurhash]
- pixels = convert(':source -depth 8 RGB:-', source: File.expand_path(@file.path)).unpack('C*')
- geometry = options.fetch(:file_geometry_parser).from_file(@file)
+ width, height, data = blurhash_params
+ # Guard against segfaults if data has unexpected size
+ raise RangeError("Invalid image data size (expected #{width * height * 3}, got #{data.size})") if data.size != width * height * 3 # TODO: should probably be another exception type
- attachment.instance.blurhash = Blurhash.encode(geometry.width, geometry.height, pixels, **(options[:blurhash] || {}))
+ attachment.instance.blurhash = Blurhash.encode(width, height, data, **(options[:blurhash] || {}))
@file
+ rescue Vips::Error => e
+ raise Paperclip::Error, "Error while generating blurhash for #{@basename}: #{e}"
+ end
+
+ private
+
+ def blurhash_params
+ if Rails.configuration.x.use_vips
+ image = Vips::Image.thumbnail(@file.path, 100)
+ [image.width, image.height, image.colourspace(:srgb).extract_band(0, n: 3).to_a.flatten]
+ else
+ pixels = convert(':source -depth 8 RGB:-', source: File.expand_path(@file.path)).unpack('C*')
+ geometry = options.fetch(:file_geometry_parser).from_file(@file)
+ [geometry.width, geometry.height, pixels]
+ end
end
end
end
diff --git a/lib/paperclip/color_extractor.rb b/lib/paperclip/color_extractor.rb
index d2f7e7c6025bc8..0f168d233b2c14 100644
--- a/lib/paperclip/color_extractor.rb
+++ b/lib/paperclip/color_extractor.rb
@@ -7,15 +7,10 @@ class ColorExtractor < Paperclip::Processor
MIN_CONTRAST = 3.0
ACCENT_MIN_CONTRAST = 2.0
FREQUENCY_THRESHOLD = 0.01
+ BINS = 10
def make
- depth = 8
-
- # Determine background palette by getting colors close to the image's edge only
- background_palette = palette_from_histogram(convert(':source -alpha set -gravity Center -region 75%x75% -fill None -colorize 100% -alpha transparent +region -format %c -colors :quantity -depth :depth histogram:info:', source: File.expand_path(@file.path), quantity: 10, depth: depth), 10)
-
- # Determine foreground palette from the whole image
- foreground_palette = palette_from_histogram(convert(':source -format %c -colors :quantity -depth :depth histogram:info:', source: File.expand_path(@file.path), quantity: 10, depth: depth), 10)
+ background_palette, foreground_palette = Rails.configuration.x.use_vips ? palettes_from_libvips : palettes_from_imagemagick
background_color = background_palette.first || foreground_palette.first
foreground_colors = []
@@ -74,10 +69,81 @@ def make
attachment.instance.file.instance_write(:meta, (attachment.instance.file.instance_read(:meta) || {}).merge(meta))
@file
+ rescue Vips::Error => e
+ raise Paperclip::Error, "Error while extracting colors for #{@basename}: #{e}"
end
private
+ def palettes_from_libvips
+ image = downscaled_image
+ block_edge_dim = (image.height * 0.25).floor
+ line_edge_dim = (image.width * 0.25).floor
+
+ edge_image = begin
+ top = image.crop(0, 0, image.width, block_edge_dim)
+ bottom = image.crop(0, image.height - block_edge_dim, image.width, block_edge_dim)
+ left = image.crop(0, block_edge_dim, line_edge_dim, image.height - (block_edge_dim * 2))
+ right = image.crop(image.width - line_edge_dim, block_edge_dim, line_edge_dim, image.height - (block_edge_dim * 2))
+ top.join(bottom, :vertical).join(left, :horizontal).join(right, :horizontal)
+ end
+
+ background_palette = palette_from_image(edge_image)
+ foreground_palette = palette_from_image(image)
+ [background_palette, foreground_palette]
+ end
+
+ def palettes_from_imagemagick
+ depth = 8
+
+ # Determine background palette by getting colors close to the image's edge only
+ background_palette = palette_from_im_histogram(convert(':source -alpha set -gravity Center -region 75%x75% -fill None -colorize 100% -alpha transparent +region -format %c -colors :quantity -depth :depth histogram:info:', source: File.expand_path(@file.path), quantity: 10, depth: depth), 10)
+
+ # Determine foreground palette from the whole image
+ foreground_palette = palette_from_im_histogram(convert(':source -format %c -colors :quantity -depth :depth histogram:info:', source: File.expand_path(@file.path), quantity: 10, depth: depth), 10)
+ [background_palette, foreground_palette]
+ end
+
+ def downscaled_image
+ image = Vips::Image.new_from_file(@file.path, access: :random).thumbnail_image(100)
+
+ image.colourspace(:srgb).extract_band(0, n: 3)
+ end
+
+ def palette_from_image(image)
+ # `hist_find_ndim` will create a BINS×BINS×BINS 3D histogram of the image
+ # represented as an image of size BINS×BINS with `BINS` bands.
+ # The number of occurrences of a color (r, g, b) is thus encoded in band `b` at pixel position `(r, g)`
+ histogram = image.hist_find_ndim(bins: BINS)
+
+ # `histogram.max` returns an array of maxima with their pixel positions, but we don't know in which
+ # band they are
+ _, colors = histogram.max(size: 10, out_array: true, x_array: true, y_array: true)
+
+ colors['out_array'].zip(colors['x_array'], colors['y_array']).map do |v, x, y|
+ rgb_from_xyv(histogram, x, y, v)
+ end.reverse
+ end
+
+ # rubocop:disable Naming/MethodParameterName
+ def rgb_from_xyv(image, x, y, v)
+ pixel = image.getpoint(x, y)
+
+ # Unfortunately, we only have the first 2 dimensions, so try to
+ # guess the third one by looking up the value
+
+ # NOTE: this means that if multiple bins with the same `r` and `g`
+ # components have the same number of occurrences, we will always return
+ # the one with the lowest `b` value. This means that in case of a tie,
+ # we will return the same color twice and skip the ones it tied with.
+ z = pixel.find_index(v)
+
+ r = (x + 0.5) * 256 / BINS
+ g = (y + 0.5) * 256 / BINS
+ b = (z + 0.5) * 256 / BINS
+ ColorDiff::Color::RGB.new(r, g, b)
+ end
+
def w3c_contrast(color1, color2)
luminance1 = (color1.to_xyz.y * 0.01) + 0.05
luminance2 = (color2.to_xyz.y * 0.01) + 0.05
@@ -89,7 +155,6 @@ def w3c_contrast(color1, color2)
end
end
- # rubocop:disable Naming/MethodParameterName
def rgb_to_hsl(r, g, b)
r /= 255.0
g /= 255.0
@@ -170,7 +235,7 @@ def lighten_or_darken(color, by)
ColorDiff::Color::RGB.new(*hsl_to_rgb(hue, saturation, light))
end
- def palette_from_histogram(result, quantity)
+ def palette_from_im_histogram(result, quantity)
frequencies = result.scan(/([0-9]+):/).flatten.map(&:to_f)
hex_values = result.scan(/\#([0-9A-Fa-f]{6,8})/).flatten
total_frequencies = frequencies.sum.to_f
diff --git a/lib/paperclip/vips_lazy_thumbnail.rb b/lib/paperclip/vips_lazy_thumbnail.rb
new file mode 100644
index 00000000000000..4764b04af8ecb6
--- /dev/null
+++ b/lib/paperclip/vips_lazy_thumbnail.rb
@@ -0,0 +1,141 @@
+# frozen_string_literal: true
+
+module Paperclip
+ class LazyThumbnail < Paperclip::Processor
+ GIF_MAX_FPS = 60
+ GIF_MAX_FRAMES = 3000
+ GIF_PALETTE_COLORS = 32
+
+ ALLOWED_FIELDS = %w(
+ icc-profile-data
+ ).freeze
+
+ class PixelGeometryParser
+ def self.parse(current_geometry, pixels)
+ width = Math.sqrt(pixels * (current_geometry.width.to_f / current_geometry.height)).round.to_i
+ height = Math.sqrt(pixels * (current_geometry.height.to_f / current_geometry.width)).round.to_i
+
+ Paperclip::Geometry.new(width, height)
+ end
+ end
+
+ def initialize(file, options = {}, attachment = nil)
+ super
+
+ @crop = options[:geometry].to_s[-1, 1] == '#'
+ @current_geometry = options.fetch(:file_geometry_parser, Geometry).from_file(@file)
+ @target_geometry = options[:pixels] ? PixelGeometryParser.parse(@current_geometry, options[:pixels]) : options.fetch(:string_geometry_parser, Geometry).parse(options[:geometry].to_s)
+ @format = options[:format]
+ @current_format = File.extname(@file.path)
+ @basename = File.basename(@file.path, @current_format)
+
+ correct_current_format!
+ end
+
+ def make
+ return File.open(@file.path) unless needs_convert?
+
+ dst = TempfileFactory.new.generate([@basename, @format ? ".#{@format}" : @current_format].join)
+
+ if preserve_animation?
+ if @target_geometry.nil? || (@current_geometry.width <= @target_geometry.width && @current_geometry.height <= @target_geometry.height)
+ target_width = 'iw'
+ target_height = 'ih'
+ else
+ scale = [@target_geometry.width.to_f / @current_geometry.width, @target_geometry.height.to_f / @current_geometry.height].min
+ target_width = (@current_geometry.width * scale).round
+ target_height = (@current_geometry.height * scale).round
+ end
+
+ # The only situation where we use crop on GIFs is cropping them to a square
+ # aspect ratio, such as for avatars, so this is the only special case we
+ # implement. If cropping ever becomes necessary for other situations, this will
+ # need to be expanded.
+ crop_width = crop_height = [target_width, target_height].min if @target_geometry&.square?
+
+ filter = begin
+ if @crop
+ "scale=#{target_width}:#{target_height}:force_original_aspect_ratio=increase,crop=#{crop_width}:#{crop_height}"
+ else
+ "scale=#{target_width}:#{target_height}:force_original_aspect_ratio=decrease"
+ end
+ end
+
+ command = Terrapin::CommandLine.new(Rails.configuration.x.ffmpeg_binary, '-nostdin -i :source -map_metadata -1 -fpsmax :max_fps -frames:v :max_frames -filter_complex :filter -y :destination', logger: Paperclip.logger)
+ command.run({ source: @file.path, filter: "#{filter},split[a][b];[a]palettegen=max_colors=#{GIF_PALETTE_COLORS}[p];[b][p]paletteuse=dither=bayer", max_fps: GIF_MAX_FPS, max_frames: GIF_MAX_FRAMES, destination: dst.path })
+ else
+ transformed_image.write_to_file(dst.path, **save_options)
+ end
+
+ dst
+ rescue Vips::Error, Terrapin::ExitStatusError => e
+ raise Paperclip::Error, "Error while optimizing #{@basename}: #{e}"
+ rescue Terrapin::CommandNotFoundError
+ raise Paperclip::Errors::CommandNotFoundError, 'Could not run the `ffmpeg` command. Please install ffmpeg.'
+ end
+
+ private
+
+ def correct_current_format!
+ # If the attachment was uploaded through a base64 payload, the tempfile
+ # will not have a file extension. It could also have the wrong file extension,
+ # depending on what the uploaded file was named. We correct for this in the final
+ # file name, which is however not yet physically in place on the temp file, so we
+ # need to use it here. Mind that this only reliably works if this processor is
+ # the first in line and we're working with the original, unmodified file.
+ @current_format = File.extname(attachment.instance_read(:file_name))
+ end
+
+ def transformed_image
+ # libvips has some optimizations for resizing an image on load. If we don't need to
+ # resize the image, we have to load it a different way.
+ if @target_geometry.nil?
+ Vips::Image.new_from_file(preserve_animation? ? "#{@file.path}[n=-1]" : @file.path, access: :sequential).copy.mutate do |mutable|
+ (mutable.get_fields - ALLOWED_FIELDS).each do |field|
+ mutable.remove!(field)
+ end
+ end
+ else
+ Vips::Image.thumbnail(@file.path, @target_geometry.width, height: @target_geometry.height, **thumbnail_options).mutate do |mutable|
+ (mutable.get_fields - ALLOWED_FIELDS).each do |field|
+ mutable.remove!(field)
+ end
+ end
+ end
+ end
+
+ def thumbnail_options
+ @crop ? { crop: :centre } : { size: :down }
+ end
+
+ def save_options
+ case @format
+ when 'jpg'
+ { Q: 90, interlace: true }
+ else
+ {}
+ end
+ end
+
+ def preserve_animation?
+ @format == 'gif' || (@format.blank? && @current_format == '.gif')
+ end
+
+ def needs_convert?
+ needs_different_geometry? || needs_different_format? || needs_metadata_stripping?
+ end
+
+ def needs_different_geometry?
+ (options[:geometry] && @current_geometry.width != @target_geometry.width && @current_geometry.height != @target_geometry.height) ||
+ (options[:pixels] && @current_geometry.width * @current_geometry.height > options[:pixels])
+ end
+
+ def needs_different_format?
+ @format.present? && @current_format != ".#{@format}"
+ end
+
+ def needs_metadata_stripping?
+ @attachment.instance.respond_to?(:local?) && @attachment.instance.local?
+ end
+ end
+end
diff --git a/lib/tasks/tests.rake b/lib/tasks/tests.rake
index e3336c2ef49123..d60d8e192e9f10 100644
--- a/lib/tasks/tests.rake
+++ b/lib/tasks/tests.rake
@@ -130,11 +130,20 @@ namespace :tests do
# This is checking the attribute rather than the method, to avoid the legacy fallback
# and ensure the data has been migrated
unless Account.find_local('qcuser').user[:otp_secret] == 'anotpsecretthatshouldbeencrypted'
- puts "DEBUG: #{Account.find_local('qcuser').user.inspect}"
puts 'OTP secret for user not preserved as expected'
exit(1)
end
+ unless Doorkeeper::Application.find(2)[:scopes] == 'write:accounts profile'
+ puts 'Application OAuth scopes not rewritten as expected'
+ exit(1)
+ end
+
+ unless Doorkeeper::Application.find(2).access_tokens.first[:scopes] == 'write:accounts profile'
+ puts 'OAuth access token scopes not rewritten as expected'
+ exit(1)
+ end
+
puts 'No errors found. Database state is consistent with a successful migration process.'
end
@@ -152,6 +161,23 @@ namespace :tests do
VALUES
(1, 'https://example.com/users/foobar', 'foobar@example.com', now(), now()),
(1, 'https://example.com/users/foobar', 'foobar@example.com', now(), now());
+
+ /* Doorkeeper records
+ While the `read:me` scope was technically not valid in 3.3.0,
+ it is still useful for the purposes of testing the `ChangeReadMeScopeToProfile`
+ migration.
+ */
+
+ INSERT INTO "oauth_applications"
+ (id, name, uid, secret, redirect_uri, scopes, created_at, updated_at)
+ VALUES
+ (2, 'foo', 'foo', 'foo', 'https://example.com/#foo', 'write:accounts read:me', now(), now()),
+ (3, 'bar', 'bar', 'bar', 'https://example.com/#bar', 'read:me', now(), now());
+
+ INSERT INTO "oauth_access_tokens"
+ (token, application_id, scopes, resource_owner_id, created_at)
+ VALUES
+ ('secret', 2, 'write:accounts read:me', 4, now());
SQL
end
diff --git a/spec/fabricators/web_push_subscription_fabricator.rb b/spec/fabricators/web_push_subscription_fabricator.rb
index baffdbf83ea902..6b4028342c0e8b 100644
--- a/spec/fabricators/web_push_subscription_fabricator.rb
+++ b/spec/fabricators/web_push_subscription_fabricator.rb
@@ -2,6 +2,10 @@
Fabricator(:web_push_subscription, from: Web::PushSubscription) do
endpoint Faker::Internet.url
- key_p256dh Faker::Internet.password
- key_auth Faker::Internet.password
+ key_p256dh do
+ curve = OpenSSL::PKey::EC.generate('prime256v1')
+ ecdh_key = curve.public_key.to_bn.to_s(2)
+ Base64.urlsafe_encode64(ecdh_key)
+ end
+ key_auth { Base64.urlsafe_encode64(Random.new.bytes(16)) }
end
diff --git a/spec/fixtures/files/monochrome.png b/spec/fixtures/files/monochrome.png
new file mode 100644
index 00000000000000..fa36101cad3836
Binary files /dev/null and b/spec/fixtures/files/monochrome.png differ
diff --git a/spec/lib/scope_transformer_spec.rb b/spec/lib/scope_transformer_spec.rb
index 8a9c7cf967217f..7bc226e94f7a0e 100644
--- a/spec/lib/scope_transformer_spec.rb
+++ b/spec/lib/scope_transformer_spec.rb
@@ -20,6 +20,12 @@
end
end
+ context 'with scope "profile"' do
+ let(:input) { 'profile' }
+
+ it_behaves_like 'a scope', nil, 'profile', 'read'
+ end
+
context 'with scope "read"' do
let(:input) { 'read' }
diff --git a/spec/models/admin/account_action_spec.rb b/spec/models/admin/account_action_spec.rb
index a9dcf352dcdaea..e55db2f814a19e 100644
--- a/spec/models/admin/account_action_spec.rb
+++ b/spec/models/admin/account_action_spec.rb
@@ -69,20 +69,22 @@
end
end
- it 'sends notification, log the action, and closes other reports', :aggregate_failures do
- other_report = Fabricate(:report, target_account: target_account)
-
- emails = []
- expect do
- emails = capture_emails { subject }
- end.to (change(Admin::ActionLog.where(action: type), :count).by 1)
- .and(change { other_report.reload.action_taken? }.from(false).to(true))
+ it 'sends email to target account user', :sidekiq_inline do
+ emails = capture_emails { subject }
expect(emails).to contain_exactly(
have_attributes(
to: contain_exactly(target_account.user.email)
)
)
+ end
+
+ it 'sends notification, log the action, and closes other reports', :aggregate_failures do
+ other_report = Fabricate(:report, target_account: target_account)
+
+ expect { subject }
+ .to (change(Admin::ActionLog.where(action: type), :count).by 1)
+ .and(change { other_report.reload.action_taken? }.from(false).to(true))
expect(LocalNotificationWorker).to have_enqueued_sidekiq_job(target_account.id, anything, 'AccountWarning', 'moderation_warning')
end
diff --git a/spec/models/custom_emoji_spec.rb b/spec/models/custom_emoji_spec.rb
index d07d085848704d..d4fa823d8cdfe5 100644
--- a/spec/models/custom_emoji_spec.rb
+++ b/spec/models/custom_emoji_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-RSpec.describe CustomEmoji do
+RSpec.describe CustomEmoji, :paperclip_processing do
describe '#search' do
subject { described_class.search(search_term) }
diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb
index 1b9a13c38c2d62..221645ac5ae356 100644
--- a/spec/models/media_attachment_spec.rb
+++ b/spec/models/media_attachment_spec.rb
@@ -139,6 +139,12 @@
it_behaves_like 'static 600x400 image', 'image/png', '.png'
end
+ describe 'monochrome jpg' do
+ let(:media) { Fabricate(:media_attachment, file: attachment_fixture('monochrome.png')) }
+
+ it_behaves_like 'static 600x400 image', 'image/png', '.png'
+ end
+
describe 'webp' do
let(:media) { Fabricate(:media_attachment, file: attachment_fixture('600x400.webp')) }
@@ -203,7 +209,9 @@
expect(media.type).to eq 'audio'
expect(media.file.meta['original']['duration']).to be_within(0.05).of(0.235102)
expect(media.thumbnail.present?).to be true
- expect(media.file.meta['colors']['background']).to eq '#3088d4'
+
+ # NOTE: Our libvips and ImageMagick implementations currently have different results
+ expect(media.file.meta['colors']['background']).to eq(ENV['MASTODON_USE_LIBVIPS'] ? '#268cd9' : '#3088d4')
expect(media.file_file_name).to_not eq 'boop.ogg'
end
end
diff --git a/spec/requests/api/v1/accounts/credentials_spec.rb b/spec/requests/api/v1/accounts/credentials_spec.rb
index 8ae9c78a0e50b3..a3f552cada1e15 100644
--- a/spec/requests/api/v1/accounts/credentials_spec.rb
+++ b/spec/requests/api/v1/accounts/credentials_spec.rb
@@ -29,8 +29,8 @@
})
end
- describe 'allows the read:me scope' do
- let(:scopes) { 'read:me' }
+ describe 'allows the profile scope' do
+ let(:scopes) { 'profile' }
it 'returns the response successfully' do
subject
diff --git a/spec/requests/api/v1/admin/account_actions_spec.rb b/spec/requests/api/v1/admin/account_actions_spec.rb
index 4167911a13a32f..778658508ec100 100644
--- a/spec/requests/api/v1/admin/account_actions_spec.rb
+++ b/spec/requests/api/v1/admin/account_actions_spec.rb
@@ -10,10 +10,16 @@
let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }
shared_examples 'a successful notification delivery' do
- it 'notifies the user about the action taken' do
- expect { subject }
- .to have_enqueued_job(ActionMailer::MailDeliveryJob)
- .with('UserMailer', 'warning', 'deliver_now!', args: [User, AccountWarning])
+ it 'notifies the user about the action taken', :sidekiq_inline do
+ emails = capture_emails { subject }
+
+ expect(emails.size)
+ .to eq(1)
+
+ expect(emails.first)
+ .to have_attributes(
+ to: contain_exactly(target_account.user.email)
+ )
end
end
diff --git a/spec/requests/api/v1/push/subscriptions_spec.rb b/spec/requests/api/v1/push/subscriptions_spec.rb
index 700250ee2ac0b9..54ef5a13ade6b8 100644
--- a/spec/requests/api/v1/push/subscriptions_spec.rb
+++ b/spec/requests/api/v1/push/subscriptions_spec.rb
@@ -4,14 +4,18 @@
describe 'API V1 Push Subscriptions' do
let(:user) { Fabricate(:user) }
+ let(:endpoint) { 'https://fcm.googleapis.com/fcm/send/fiuH06a27qE:APA91bHnSiGcLwdaxdyqVXNDR9w1NlztsHb6lyt5WDKOC_Z_Q8BlFxQoR8tWFSXUIDdkyw0EdvxTu63iqamSaqVSevW5LfoFwojws8XYDXv_NRRLH6vo2CdgiN4jgHv5VLt2A8ah6lUX' }
+ let(:keys) do
+ {
+ p256dh: 'BEm_a0bdPDhf0SOsrnB2-ategf1hHoCnpXgQsFj5JCkcoMrMt2WHoPfEYOYPzOIs9mZE8ZUaD7VA5vouy0kEkr8=',
+ auth: 'eH_C8rq2raXqlcBVDa1gLg==',
+ }
+ end
let(:create_payload) do
{
subscription: {
- endpoint: 'https://fcm.googleapis.com/fcm/send/fiuH06a27qE:APA91bHnSiGcLwdaxdyqVXNDR9w1NlztsHb6lyt5WDKOC_Z_Q8BlFxQoR8tWFSXUIDdkyw0EdvxTu63iqamSaqVSevW5LfoFwojws8XYDXv_NRRLH6vo2CdgiN4jgHv5VLt2A8ah6lUX',
- keys: {
- p256dh: 'BEm_a0bdPDhf0SOsrnB2-ategf1hHoCnpXgQsFj5JCkcoMrMt2WHoPfEYOYPzOIs9mZE8ZUaD7VA5vouy0kEkr8=',
- auth: 'eH_C8rq2raXqlcBVDa1gLg==',
- },
+ endpoint: endpoint,
+ keys: keys,
},
}.with_indifferent_access
end
@@ -36,6 +40,16 @@
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }
+ shared_examples 'validation error' do
+ it 'returns a validation error' do
+ subject
+
+ expect(response).to have_http_status(422)
+ expect(endpoint_push_subscriptions.count).to eq(0)
+ expect(endpoint_push_subscription).to be_nil
+ end
+ end
+
describe 'POST /api/v1/push/subscription' do
subject { post '/api/v1/push/subscription', params: create_payload, headers: headers }
@@ -63,6 +77,34 @@
expect(endpoint_push_subscriptions.count)
.to eq(1)
end
+
+ context 'with invalid endpoint URL' do
+ let(:endpoint) { 'app://example.foo' }
+
+ it_behaves_like 'validation error'
+ end
+
+ context 'with invalid p256dh key' do
+ let(:keys) do
+ {
+ p256dh: 'BEm_invalidf0SOsrnB2-ategf1hHoCnpXgQsFj5JCkcoMrMt2WHoPfEYOYPzOIs9mZE8ZUaD7VA5vouy0kEkr8=',
+ auth: 'eH_C8rq2raXqlcBVDa1gLg==',
+ }
+ end
+
+ it_behaves_like 'validation error'
+ end
+
+ context 'with invalid base64 p256dh key' do
+ let(:keys) do
+ {
+ p256dh: 'not base64',
+ auth: 'eH_C8rq2raXqlcBVDa1gLg==',
+ }
+ end
+
+ it_behaves_like 'validation error'
+ end
end
describe 'PUT /api/v1/push/subscription' do
diff --git a/spec/requests/api/v1/reports_spec.rb b/spec/requests/api/v1/reports_spec.rb
index 94baf8cb989895..9e8954a4c65dd8 100644
--- a/spec/requests/api/v1/reports_spec.rb
+++ b/spec/requests/api/v1/reports_spec.rb
@@ -33,30 +33,28 @@
it_behaves_like 'forbidden for wrong scope', 'read read:reports'
- it 'creates a report', :aggregate_failures do
- perform_enqueued_jobs do
- emails = capture_emails { subject }
-
- expect(response).to have_http_status(200)
- expect(body_as_json).to match(
- a_hash_including(
- status_ids: [status.id.to_s],
- category: category,
- comment: 'reasons'
- )
+ it 'creates a report', :aggregate_failures, :sidekiq_inline do
+ emails = capture_emails { subject }
+
+ expect(response).to have_http_status(200)
+ expect(body_as_json).to match(
+ a_hash_including(
+ status_ids: [status.id.to_s],
+ category: category,
+ comment: 'reasons'
)
+ )
- expect(target_account.targeted_reports).to_not be_empty
- expect(target_account.targeted_reports.first.comment).to eq 'reasons'
+ expect(target_account.targeted_reports).to_not be_empty
+ expect(target_account.targeted_reports.first.comment).to eq 'reasons'
- expect(emails.size)
- .to eq(1)
- expect(emails.first)
- .to have_attributes(
- to: contain_exactly(admin.email),
- subject: eq(I18n.t('admin_mailer.new_report.subject', instance: Rails.configuration.x.local_domain, id: target_account.targeted_reports.first.id))
- )
- end
+ expect(emails.size)
+ .to eq(1)
+ expect(emails.first)
+ .to have_attributes(
+ to: contain_exactly(admin.email),
+ subject: eq(I18n.t('admin_mailer.new_report.subject', instance: Rails.configuration.x.local_domain, id: target_account.targeted_reports.first.id))
+ )
end
context 'when a status does not belong to the reported account' do
diff --git a/spec/requests/api/v1/timelines/link_spec.rb b/spec/requests/api/v1/timelines/link_spec.rb
new file mode 100644
index 00000000000000..a219c9bcddec02
--- /dev/null
+++ b/spec/requests/api/v1/timelines/link_spec.rb
@@ -0,0 +1,131 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe 'Link' do
+ let(:user) { Fabricate(:user) }
+ let(:scopes) { 'read:statuses' }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
+ let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }
+
+ shared_examples 'a successful request to the link timeline' do
+ it 'returns the expected statuses successfully', :aggregate_failures do
+ subject
+
+ expect(response).to have_http_status(200)
+ expect(body_as_json.pluck(:id)).to match_array(expected_statuses.map { |status| status.id.to_s })
+ end
+ end
+
+ describe 'GET /api/v1/timelines/link' do
+ subject do
+ get '/api/v1/timelines/link', headers: headers, params: params
+ end
+
+ let(:url) { 'https://example.com/' }
+ let(:private_status) { Fabricate(:status, visibility: :private) }
+ let(:undiscoverable_status) { Fabricate(:status, account: Fabricate.build(:account, domain: nil, discoverable: false)) }
+ let(:local_status) { Fabricate(:status, account: Fabricate.build(:account, domain: nil, discoverable: true)) }
+ let(:remote_status) { Fabricate(:status, account: Fabricate.build(:account, domain: 'example.com', discoverable: true)) }
+ let(:params) { { url: url } }
+ let(:expected_statuses) { [local_status, remote_status] }
+ let(:preview_card) { Fabricate(:preview_card, url: url) }
+
+ before do
+ if preview_card.present?
+ preview_card.create_trend!(allowed: true)
+
+ [private_status, undiscoverable_status, remote_status, local_status].each do |status|
+ PreviewCardsStatus.create(status: status, preview_card: preview_card, url: url)
+ end
+ end
+ end
+
+ context 'when there is no preview card' do
+ let(:preview_card) { nil }
+
+ it 'returns http not found' do
+ subject
+
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when preview card is not trending' do
+ before do
+ preview_card.trend.destroy!
+ end
+
+ it 'returns http not found' do
+ subject
+
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when preview card is trending but not approved' do
+ before do
+ preview_card.trend.update(allowed: false)
+ end
+
+ it 'returns http not found' do
+ subject
+
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when the instance does not allow public preview' do
+ before do
+ Form::AdminSettings.new(timeline_preview: false).save
+ end
+
+ context 'when the user is not authenticated' do
+ let(:headers) { {} }
+
+ it 'returns http unauthorized' do
+ subject
+
+ expect(response).to have_http_status(401)
+ end
+ end
+
+ context 'when the user is authenticated' do
+ it_behaves_like 'a successful request to the link timeline'
+ end
+ end
+
+ context 'when the instance allows public preview' do
+ context 'with an authorized user' do
+ it_behaves_like 'a successful request to the link timeline'
+ end
+
+ context 'with an anonymous user' do
+ let(:headers) { {} }
+
+ it_behaves_like 'a successful request to the link timeline'
+ end
+
+ context 'with limit param' do
+ let(:params) { { limit: 1, url: url } }
+
+ it 'returns only the requested number of statuses', :aggregate_failures do
+ subject
+
+ expect(response).to have_http_status(200)
+ expect(body_as_json.size).to eq(params[:limit])
+ end
+
+ it 'sets the correct pagination headers', :aggregate_failures do
+ subject
+
+ expect(response)
+ .to include_pagination_headers(
+ prev: api_v1_timelines_link_url(limit: params[:limit], url: url, min_id: local_status.id),
+ next: api_v1_timelines_link_url(limit: params[:limit], url: url, max_id: local_status.id)
+ )
+ end
+ end
+ end
+ end
+end
diff --git a/spec/services/appeal_service_spec.rb b/spec/services/appeal_service_spec.rb
index 10c0f148dc0345..3fad74db9d8951 100644
--- a/spec/services/appeal_service_spec.rb
+++ b/spec/services/appeal_service_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-RSpec.describe AppealService do
+RSpec.describe AppealService, :sidekiq_inline do
describe '#call' do
let!(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/system/filters_spec.rb b/spec/system/filters_spec.rb
index 9d18e904608698..a0cb965a61b100 100644
--- a/spec/system/filters_spec.rb
+++ b/spec/system/filters_spec.rb
@@ -46,7 +46,7 @@
click_on I18n.t('filters.index.delete')
end.to change(CustomFilter, :count).by(-1)
- expect(page).to_not have_content(filter_title)
+ expect(page).to have_no_content(filter_title)
end
end
diff --git a/yarn.lock b/yarn.lock
index da2725fd4757a9..8884120c3d82d8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -42,128 +42,129 @@ __metadata:
languageName: node
linkType: hard
-"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/code-frame@npm:7.24.6"
+"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/code-frame@npm:7.24.7"
dependencies:
- "@babel/highlight": "npm:^7.24.6"
+ "@babel/highlight": "npm:^7.24.7"
picocolors: "npm:^1.0.0"
- checksum: 10c0/c93c6d1763530f415218c31d07359364397f19b70026abdff766164c21ed352a931cf07f3102c5fb9e04792de319e332d68bcb1f7debef601a02197f90f9ba24
+ checksum: 10c0/ab0af539473a9f5aeaac7047e377cb4f4edd255a81d84a76058595f8540784cc3fbe8acf73f1e073981104562490aabfb23008cd66dc677a456a4ed5390fdde6
languageName: node
linkType: hard
-"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/compat-data@npm:7.24.6"
- checksum: 10c0/f50abbd4008eb2a5d12139c578809cebbeaeb8e660fb12d546eb2e7c2108ae1836ab8339184a5f5ce0e95bf81bb91e18edce86b387c59db937b01693ec0bc774
+"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/compat-data@npm:7.24.7"
+ checksum: 10c0/dcd93a5632b04536498fbe2be5af1057f635fd7f7090483d8e797878559037e5130b26862ceb359acbae93ed27e076d395ddb4663db6b28a665756ffd02d324f
languageName: node
linkType: hard
"@babel/core@npm:^7.10.4, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.22.1, @babel/core@npm:^7.24.4":
- version: 7.24.6
- resolution: "@babel/core@npm:7.24.6"
+ version: 7.24.7
+ resolution: "@babel/core@npm:7.24.7"
dependencies:
"@ampproject/remapping": "npm:^2.2.0"
- "@babel/code-frame": "npm:^7.24.6"
- "@babel/generator": "npm:^7.24.6"
- "@babel/helper-compilation-targets": "npm:^7.24.6"
- "@babel/helper-module-transforms": "npm:^7.24.6"
- "@babel/helpers": "npm:^7.24.6"
- "@babel/parser": "npm:^7.24.6"
- "@babel/template": "npm:^7.24.6"
- "@babel/traverse": "npm:^7.24.6"
- "@babel/types": "npm:^7.24.6"
+ "@babel/code-frame": "npm:^7.24.7"
+ "@babel/generator": "npm:^7.24.7"
+ "@babel/helper-compilation-targets": "npm:^7.24.7"
+ "@babel/helper-module-transforms": "npm:^7.24.7"
+ "@babel/helpers": "npm:^7.24.7"
+ "@babel/parser": "npm:^7.24.7"
+ "@babel/template": "npm:^7.24.7"
+ "@babel/traverse": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
convert-source-map: "npm:^2.0.0"
debug: "npm:^4.1.0"
gensync: "npm:^1.0.0-beta.2"
json5: "npm:^2.2.3"
semver: "npm:^6.3.1"
- checksum: 10c0/e0762a8daef7f417494d555929418cfacd6848c7fc3310ec00e6dd8cecac20b7f590e760bfc9365d2af07874a3f5599832f9c9ff7f1a9d126a168f77ba67945a
+ checksum: 10c0/4004ba454d3c20a46ea66264e06c15b82e9f6bdc35f88819907d24620da70dbf896abac1cb4cc4b6bb8642969e45f4d808497c9054a1388a386cf8c12e9b9e0d
languageName: node
linkType: hard
-"@babel/generator@npm:^7.24.6, @babel/generator@npm:^7.7.2":
- version: 7.24.6
- resolution: "@babel/generator@npm:7.24.6"
+"@babel/generator@npm:^7.24.7, @babel/generator@npm:^7.7.2":
+ version: 7.24.7
+ resolution: "@babel/generator@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.24.6"
+ "@babel/types": "npm:^7.24.7"
"@jridgewell/gen-mapping": "npm:^0.3.5"
"@jridgewell/trace-mapping": "npm:^0.3.25"
jsesc: "npm:^2.5.1"
- checksum: 10c0/8d71a17b386536582354afba53cc784396458a88cc9f05f0c6de0ec99475f6f539943b3566b2e733820c4928236952473831765e483c25d68cc007a6e604d782
+ checksum: 10c0/06b1f3350baf527a3309e50ffd7065f7aee04dd06e1e7db794ddfde7fe9d81f28df64edd587173f8f9295496a7ddb74b9a185d4bf4de7bb619e6d4ec45c8fd35
languageName: node
linkType: hard
-"@babel/helper-annotate-as-pure@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-annotate-as-pure@npm:7.24.6"
+"@babel/helper-annotate-as-pure@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-annotate-as-pure@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.24.6"
- checksum: 10c0/3fe446e3bd37e5e32152279c84ace4e83815e5b88b9e09a82a83974a0bb22e941d89db26b23aaab4c9eb0f9713772c2f6163feffc1bcb055c4cdb6b67e5dc82f
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/4679f7df4dffd5b3e26083ae65228116c3da34c3fff2c11ae11b259a61baec440f51e30fd236f7a0435b9d471acd93d0bc5a95df8213cbf02b1e083503d81b9a
languageName: node
linkType: hard
-"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.6"
+"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.24.6"
- checksum: 10c0/d468ba492163bdcf5b6c53248edcf0aaed6194c0f7bdebef4f29ef626e5b03e9fcc7ed737445eb80a961ec6e687c330e1c5242d8a724efb0af002141f3b3e66c
+ "@babel/traverse": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/0ed84abf848c79fb1cd4c1ddac12c771d32c1904d87fc3087f33cfdeb0c2e0db4e7892b74b407d9d8d0c000044f3645a7391a781f788da8410c290bb123a1f13
languageName: node
linkType: hard
-"@babel/helper-builder-react-jsx@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-builder-react-jsx@npm:7.24.6"
+"@babel/helper-builder-react-jsx@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-builder-react-jsx@npm:7.24.7"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.24.6"
- "@babel/types": "npm:^7.24.6"
- checksum: 10c0/93b0500d00f214bc2f7f142ebfa0a634872cadd446bd767f7d58b26ae1b46e1f262b0fe80a9151691463611a3148a69ad28f930295d976bf8ced32c79449a3ce
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/c95c8856c67c57060461f39b669707b2dca3501149bcc54b7c3e49c95069afce52179fc7c2bd809981acfbfdf0860ef1035dd7512cdba46c83bdb1ad6f6dc53f
languageName: node
linkType: hard
-"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-compilation-targets@npm:7.24.6"
+"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-compilation-targets@npm:7.24.7"
dependencies:
- "@babel/compat-data": "npm:^7.24.6"
- "@babel/helper-validator-option": "npm:^7.24.6"
+ "@babel/compat-data": "npm:^7.24.7"
+ "@babel/helper-validator-option": "npm:^7.24.7"
browserslist: "npm:^4.22.2"
lru-cache: "npm:^5.1.1"
semver: "npm:^6.3.1"
- checksum: 10c0/4d41150086959f5f4d72d27bae29204192e943537ecb71df1711d1f5d8791358a44f3a5882ed3c8238ba0c874b0b55213af43767e14771765f13b8d15b262432
+ checksum: 10c0/1d580a9bcacefe65e6bf02ba1dafd7ab278269fef45b5e281d8354d95c53031e019890464e7f9351898c01502dd2e633184eb0bcda49ed2ecd538675ce310f51
languageName: node
linkType: hard
-"@babel/helper-create-class-features-plugin@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-create-class-features-plugin@npm:7.24.6"
+"@babel/helper-create-class-features-plugin@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-create-class-features-plugin@npm:7.24.7"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.24.6"
- "@babel/helper-environment-visitor": "npm:^7.24.6"
- "@babel/helper-function-name": "npm:^7.24.6"
- "@babel/helper-member-expression-to-functions": "npm:^7.24.6"
- "@babel/helper-optimise-call-expression": "npm:^7.24.6"
- "@babel/helper-replace-supers": "npm:^7.24.6"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.6"
- "@babel/helper-split-export-declaration": "npm:^7.24.6"
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-function-name": "npm:^7.24.7"
+ "@babel/helper-member-expression-to-functions": "npm:^7.24.7"
+ "@babel/helper-optimise-call-expression": "npm:^7.24.7"
+ "@babel/helper-replace-supers": "npm:^7.24.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7"
+ "@babel/helper-split-export-declaration": "npm:^7.24.7"
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/e6734671bc6a5f3cca4ec46e4cc70238e5a2fa063e51225c2be572f157119002af419b33ea0f846dbb1307370fe9f3aa92d199449abbea5e88e0262513c8a821
+ checksum: 10c0/6b7b47d70b41c00f39f86790cff67acf2bce0289d52a7c182b28e797f4e0e6d69027e3d06eccf1d54dddc2e5dde1df663bb1932437e5f447aeb8635d8d64a6ab
languageName: node
linkType: hard
-"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-create-regexp-features-plugin@npm:7.24.6"
+"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-create-regexp-features-plugin@npm:7.24.7"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.24.6"
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
regexpu-core: "npm:^5.3.1"
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/c6e1b07c94b3b93a3f534039da88bc67ec3156080f1959aa07d5d534e9a640de3533e7ded0516dfcbccde955e91687044e6a950852b1d3f402ac5d5001be56cf
+ checksum: 10c0/ed611a7eb0c71843f9cdc471eeb38767972229f9225f7aaa90d124d7ee0062cf6908fd53ee9c34f731394c429594f06049a7738a71d342e0191d4047b2fc0ac2
languageName: node
linkType: hard
@@ -182,242 +183,249 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-environment-visitor@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-environment-visitor@npm:7.24.6"
- checksum: 10c0/fdcd18ac505ed71f40c05cc992b648a4495b0aa5310a774492a0f74d8dcf3579691102f516561a651d3de6c3a44fe64bfb3049d11c14c5857634ef1823ea409a
+"@babel/helper-environment-visitor@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-environment-visitor@npm:7.24.7"
+ dependencies:
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/36ece78882b5960e2d26abf13cf15ff5689bf7c325b10a2895a74a499e712de0d305f8d78bb382dd3c05cfba7e47ec98fe28aab5674243e0625cd38438dd0b2d
languageName: node
linkType: hard
-"@babel/helper-function-name@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-function-name@npm:7.24.6"
+"@babel/helper-function-name@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-function-name@npm:7.24.7"
dependencies:
- "@babel/template": "npm:^7.24.6"
- "@babel/types": "npm:^7.24.6"
- checksum: 10c0/5ba2f8db789b3f5a2b2239300a217aa212e303cd7bfad9c8b90563807f49215e8c679e8f8f177b6aaca2038038e29bc702b83839e1f7b4896d79c44a75cac97a
+ "@babel/template": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/e5e41e6cf86bd0f8bf272cbb6e7c5ee0f3e9660414174435a46653efba4f2479ce03ce04abff2aa2ef9359cf057c79c06cb7b134a565ad9c0e8a50dcdc3b43c4
languageName: node
linkType: hard
-"@babel/helper-hoist-variables@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-hoist-variables@npm:7.24.6"
+"@babel/helper-hoist-variables@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-hoist-variables@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.24.6"
- checksum: 10c0/e10ec6b864aaa419ec4934f5fcb5d0cfcc9d0657584a1b6c3c42ada949d44ca6bffcdab433a90ada4396c747e551cca31ba0e565ea005ab3f50964e3817bf6cf
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/19ee37563bbd1219f9d98991ad0e9abef77803ee5945fd85aa7aa62a67c69efca9a801696a1b58dda27f211e878b3327789e6fd2a6f6c725ccefe36774b5ce95
languageName: node
linkType: hard
-"@babel/helper-member-expression-to-functions@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-member-expression-to-functions@npm:7.24.6"
+"@babel/helper-member-expression-to-functions@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-member-expression-to-functions@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.24.6"
- checksum: 10c0/7595f62978f55921b24de6ed5252fcedbffacfb8271f71e092f38724179ba554cb3a24a4764a1a3890b8a53504c2bee9c99eab81f1f365582739f566c8e28eaa
+ "@babel/traverse": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/9638c1d33cf6aba028461ccd3db6061c76ff863ca0d5013dd9a088bf841f2f77c46956493f9da18355c16759449d23b74cc1de4da357ade5c5c34c858f840f0a
languageName: node
linkType: hard
-"@babel/helper-module-imports@npm:^7.0.0-beta.49, @babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-module-imports@npm:7.24.6"
+"@babel/helper-module-imports@npm:^7.0.0-beta.49, @babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-module-imports@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.24.6"
- checksum: 10c0/e0db3fbfcd963d138f0792ff626f940a576fcf212d02b8fe6478dccf3421bd1c2a76f8e69c7450c049985e7b63b30be309a24eeeb6ad7c2137a31b676a095a84
+ "@babel/traverse": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/97c57db6c3eeaea31564286e328a9fb52b0313c5cfcc7eee4bc226aebcf0418ea5b6fe78673c0e4a774512ec6c86e309d0f326e99d2b37bfc16a25a032498af0
languageName: node
linkType: hard
-"@babel/helper-module-transforms@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-module-transforms@npm:7.24.6"
+"@babel/helper-module-transforms@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-module-transforms@npm:7.24.7"
dependencies:
- "@babel/helper-environment-visitor": "npm:^7.24.6"
- "@babel/helper-module-imports": "npm:^7.24.6"
- "@babel/helper-simple-access": "npm:^7.24.6"
- "@babel/helper-split-export-declaration": "npm:^7.24.6"
- "@babel/helper-validator-identifier": "npm:^7.24.6"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-module-imports": "npm:^7.24.7"
+ "@babel/helper-simple-access": "npm:^7.24.7"
+ "@babel/helper-split-export-declaration": "npm:^7.24.7"
+ "@babel/helper-validator-identifier": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/9e2e3d0ddb397b36b9e8c7d94e175a36be8cb888ef370cefef2cdfd53ae1f87d567b268bd90ed9a6c706485a8de3da19cac577657613e9cd17210b91cbdfb00b
+ checksum: 10c0/4f311755fcc3b4cbdb689386309cdb349cf0575a938f0b9ab5d678e1a81bbb265aa34ad93174838245f2ac7ff6d5ddbd0104638a75e4e961958ed514355687b6
languageName: node
linkType: hard
-"@babel/helper-optimise-call-expression@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-optimise-call-expression@npm:7.24.6"
+"@babel/helper-optimise-call-expression@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-optimise-call-expression@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.24.6"
- checksum: 10c0/7fce2c4ce22c4ba3c2178d1ce85f34fc9bbe286af5ec153b4b6ea9bf2212390359c4a1e8a54551c4daa4688022d619668bdb8c8060cb185c0c9ad02c5247efc9
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/ca6a9884705dea5c95a8b3ce132d1e3f2ae951ff74987d400d1d9c215dae9c0f9e29924d8f8e131e116533d182675bc261927be72f6a9a2968eaeeaa51eb1d0f
languageName: node
linkType: hard
-"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.6, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3":
- version: 7.24.6
- resolution: "@babel/helper-plugin-utils@npm:7.24.6"
- checksum: 10c0/636d3ce8cabc0621c1f78187e1d95f1087209921fa452f76aad06224ef5dffb3d934946f5183109920f32a4b94dd75ac91c63bc52813fee639d10cd54d49ba1f
+"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3":
+ version: 7.24.7
+ resolution: "@babel/helper-plugin-utils@npm:7.24.7"
+ checksum: 10c0/c3d38cd9b3520757bb4a279255cc3f956fc0ac1c193964bd0816ebd5c86e30710be8e35252227e0c9d9e0f4f56d9b5f916537f2bc588084b0988b4787a967d31
languageName: node
linkType: hard
-"@babel/helper-remap-async-to-generator@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-remap-async-to-generator@npm:7.24.6"
+"@babel/helper-remap-async-to-generator@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-remap-async-to-generator@npm:7.24.7"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.24.6"
- "@babel/helper-environment-visitor": "npm:^7.24.6"
- "@babel/helper-wrap-function": "npm:^7.24.6"
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-wrap-function": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/b379b844eba352ac9487d31867e7bb2b8a264057f1739d9161b614145ea6e60969a7a82e75e5e83089e50cf1b6559f53aa085a787942bf40706fee15a2faa33c
+ checksum: 10c0/4e7fa2cdcbc488e41c27066c16e562857ef3c5c2bfe70d2f1e32e9ee7546b17c3fc1c20d05bf2a7f1c291bd9e7a0a219f6a9fa387209013294be79a26fcfe64d
languageName: node
linkType: hard
-"@babel/helper-replace-supers@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-replace-supers@npm:7.24.6"
+"@babel/helper-replace-supers@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-replace-supers@npm:7.24.7"
dependencies:
- "@babel/helper-environment-visitor": "npm:^7.24.6"
- "@babel/helper-member-expression-to-functions": "npm:^7.24.6"
- "@babel/helper-optimise-call-expression": "npm:^7.24.6"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-member-expression-to-functions": "npm:^7.24.7"
+ "@babel/helper-optimise-call-expression": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/aaf2dfaf25360da1525ecea5979d5afed201b96f0feeed2e15f90883a97776132a720b25039e67fee10a5c537363aea5cc2a46c0f1d13fdb86d0e920244f2da7
+ checksum: 10c0/0e133bb03371dee78e519c334a09c08e1493103a239d9628db0132dfaac3fc16380479ca3c590d278a9b71b624030a338c18ebbfe6d430ebb2e4653775c4b3e3
languageName: node
linkType: hard
-"@babel/helper-simple-access@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-simple-access@npm:7.24.6"
+"@babel/helper-simple-access@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-simple-access@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.24.6"
- checksum: 10c0/b17e404dd6c9787fc7d558aea5222471a77e29596705f0d10b4c2a58b9d71ff7eae915094204848cc1af99b771553caa69337a768b9abdd82b54a0050ba83eb9
+ "@babel/traverse": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/7230e419d59a85f93153415100a5faff23c133d7442c19e0cd070da1784d13cd29096ee6c5a5761065c44e8164f9f80e3a518c41a0256df39e38f7ad6744fed7
languageName: node
linkType: hard
-"@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.6"
+"@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.24.6"
- checksum: 10c0/6928f698362d6082a67ee2bc73991ef6b0cc6b5f2854177389bc8f3c09296580f0ee20134dd1a29dfcb1906ad9e346fa0f7c6fcd7589ab3ff176d4f09504577f
+ "@babel/traverse": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/e3a9b8ac9c262ac976a1bcb5fe59694db5e6f0b4f9e7bdba5c7693b8b5e28113c23bdaa60fe8d3ec32a337091b67720b2053bcb3d5655f5406536c3d0584242b
languageName: node
linkType: hard
-"@babel/helper-split-export-declaration@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-split-export-declaration@npm:7.24.6"
+"@babel/helper-split-export-declaration@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-split-export-declaration@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.24.6"
- checksum: 10c0/53a5dd8691fdffc89cc7fcf5aed0ad1d8bc39796a5782a3d170dcbf249eb5c15cc8a290e8d09615711d18798ad04a7d0694ab5195d35fa651abbc1b9c885d6a8
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/0254577d7086bf09b01bbde98f731d4fcf4b7c3fa9634fdb87929801307c1f6202a1352e3faa5492450fa8da4420542d44de604daf540704ff349594a78184f6
languageName: node
linkType: hard
-"@babel/helper-string-parser@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-string-parser@npm:7.24.6"
- checksum: 10c0/95115bf676e92c4e99166395649108d97447e6cabef1fabaec8cdbc53a43f27b5df2268ff6534439d405bc1bd06685b163eb3b470455bd49f69159dada414145
+"@babel/helper-string-parser@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-string-parser@npm:7.24.7"
+ checksum: 10c0/47840c7004e735f3dc93939c77b099bb41a64bf3dda0cae62f60e6f74a5ff80b63e9b7cf77b5ec25a324516381fc994e1f62f922533236a8e3a6af57decb5e1e
languageName: node
linkType: hard
-"@babel/helper-validator-identifier@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-validator-identifier@npm:7.24.6"
- checksum: 10c0/d29d2e3fca66c31867a009014169b93f7bc21c8fc1dd7d0b9d85d7a4000670526ff2222d966febb75a6e12f9859a31d1e75b558984e28ecb69651314dd0a6fd1
+"@babel/helper-validator-identifier@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-validator-identifier@npm:7.24.7"
+ checksum: 10c0/87ad608694c9477814093ed5b5c080c2e06d44cb1924ae8320474a74415241223cc2a725eea2640dd783ff1e3390e5f95eede978bc540e870053152e58f1d651
languageName: node
linkType: hard
-"@babel/helper-validator-option@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-validator-option@npm:7.24.6"
- checksum: 10c0/787268dff5cf77f3b704454b96ab7b58aa4f43b2808247e51859a103a1c28a9c252100f830433f4b37a73f4a61ba745bbeef4cdccbab48c1e9adf037f4ca3491
+"@babel/helper-validator-option@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-validator-option@npm:7.24.7"
+ checksum: 10c0/21aea2b7bc5cc8ddfb828741d5c8116a84cbc35b4a3184ec53124f08e09746f1f67a6f9217850188995ca86059a7942e36d8965a6730784901def777b7e8a436
languageName: node
linkType: hard
-"@babel/helper-wrap-function@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helper-wrap-function@npm:7.24.6"
+"@babel/helper-wrap-function@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-wrap-function@npm:7.24.7"
dependencies:
- "@babel/helper-function-name": "npm:^7.24.6"
- "@babel/template": "npm:^7.24.6"
- "@babel/types": "npm:^7.24.6"
- checksum: 10c0/d32844275a544a8e7c71c13e9832d34d80656aafce659dc6c23b02e14d1c1179d8045125ded5096da1a99de83299ffb48211183d0403da2c8584ed55dc0ab646
+ "@babel/helper-function-name": "npm:^7.24.7"
+ "@babel/template": "npm:^7.24.7"
+ "@babel/traverse": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/d5689f031bf0eb38c0d7fad6b7e320ddef4bfbdf08d12d7d76ef41b7ca365a32721e74cb5ed5a9a9ec634bc20f9b7a27314fa6fb08f1576b8f6d8330fcea6f47
languageName: node
linkType: hard
-"@babel/helpers@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/helpers@npm:7.24.6"
+"@babel/helpers@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helpers@npm:7.24.7"
dependencies:
- "@babel/template": "npm:^7.24.6"
- "@babel/types": "npm:^7.24.6"
- checksum: 10c0/e5b5c0919fd6fa56ae11c15a72962d8de0ac19db524849554af28cf08ac32f9ae5aee49a43146eb150f54418cefb8e890fa2b2f33d029434dc7777dbcdfd5bac
+ "@babel/template": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/aa8e230f6668773e17e141dbcab63e935c514b4b0bf1fed04d2eaefda17df68e16b61a56573f7f1d4d1e605ce6cc162b5f7e9fdf159fde1fd9b77c920ae47d27
languageName: node
linkType: hard
-"@babel/highlight@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/highlight@npm:7.24.6"
+"@babel/highlight@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/highlight@npm:7.24.7"
dependencies:
- "@babel/helper-validator-identifier": "npm:^7.24.6"
+ "@babel/helper-validator-identifier": "npm:^7.24.7"
chalk: "npm:^2.4.2"
js-tokens: "npm:^4.0.0"
picocolors: "npm:^1.0.0"
- checksum: 10c0/5bbc31695e5d44e97feb267f7aaf4c52908560d184ffeb2e2e57aae058d40125592931883889413e19def3326895ddb41ff45e090fa90b459d8c294b4ffc238c
+ checksum: 10c0/674334c571d2bb9d1c89bdd87566383f59231e16bcdcf5bb7835babdf03c9ae585ca0887a7b25bdf78f303984af028df52831c7989fecebb5101cc132da9393a
languageName: node
linkType: hard
-"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/parser@npm:7.24.6"
+"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/parser@npm:7.24.7"
bin:
parser: ./bin/babel-parser.js
- checksum: 10c0/cbef70923078a20fe163b03f4a6482be65ed99d409a57f3091a23ce3a575ee75716c30e7ea9f40b692ac5660f34055f4cbeb66a354fad15a6cf1fca35c3496c5
+ checksum: 10c0/8b244756872185a1c6f14b979b3535e682ff08cb5a2a5fd97cc36c017c7ef431ba76439e95e419d43000c5b07720495b00cf29a7f0d9a483643d08802b58819b
languageName: node
linkType: hard
-"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.6"
+"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.7"
dependencies:
- "@babel/helper-environment-visitor": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/0dbf12de5a7e5d092271124f0d9bff1ceb94871d5563041940512671cd40ab2a93d613715ee37076cd8263cf49579afb805faa3189996c11639bb10d3e9837f1
+ checksum: 10c0/394c30e2b708ad385fa1219528e039066a1f1cb40f47986f283878848fd354c745e6397f588b4e5a046ee8d64bfdf4c208e4c3dfbdcfb2fd34315ec67c64e7af
languageName: node
linkType: hard
-"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.6"
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/b0a03d4f587e1fa92312c912864a0af3f68bfc87367b7c93770e94f171767d563d7adfca7ad571d20cd755e89e1373e7414973ce30e694e7b6eb8f57d2b1b889
+ checksum: 10c0/a36307428ecc1a01b00cf90812335eed1575d13f211ab24fe4d0c55c28a2fcbd4135f142efabc3b277b2a8e09ee05df594a1272353f061b63829495b5dcfdb96
languageName: node
linkType: hard
-"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.6"
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.6"
- "@babel/plugin-transform-optional-chaining": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7"
+ "@babel/plugin-transform-optional-chaining": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.13.0
- checksum: 10c0/fdd40fdf7e87f3dbc5396c9a8f92005798865f6f20d2c24c33246ac43aab8df93742b63dfcfcda67c0a5cf1f7b8a987fdbccaceb9ccbb9a67bef10012b522390
+ checksum: 10c0/aeb6e7aa363a47f815cf956ea1053c5dd8b786a17799f065c9688ba4b0051fe7565d258bbe9400bfcbfb3114cb9fda66983e10afe4d750bc70ff75403e15dd36
languageName: node
linkType: hard
-"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.6"
+"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.7"
dependencies:
- "@babel/helper-environment-visitor": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/cc1e8ee138c71e78ec262a5198d2cf75c305f2fb4ea9771ebd4ded47f51bc1bacbf917db3cb28c681e7499a07f9803ab0bbe5ad50b9576cbe03902189e3871ed
+ checksum: 10c0/2b52a73e444f6adc73f927b623e53a4cf64397170dd1071268536df1b3db1e02131418c8dc91351af48837a6298212118f4a72d5407f8005cf9a732370a315b0
languageName: node
linkType: hard
@@ -496,25 +504,25 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-syntax-import-assertions@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.6"
+"@babel/plugin-syntax-import-assertions@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/8e81c7cd3d5812a3dda32f06f84492a1b5640f42c594619ed57bf4017529889f87bfb4e8e95c50ba1527d89501dae71a0c73770502676545c2cd9ce58ce3258d
+ checksum: 10c0/b82c53e095274ee71c248551352d73441cf65b3b3fc0107258ba4e9aef7090772a425442b3ed1c396fa207d0efafde8929c87a17d3c885b3ca2021316e87e246
languageName: node
linkType: hard
-"@babel/plugin-syntax-import-attributes@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.6"
+"@babel/plugin-syntax-import-attributes@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/c4d8554b89c0daa6d3c430582b98c10a3af2de8eab484082e97cb73f2712780ab6dd8d11d783c4b266efef76f4479abf4944ef8f416a4459b05eecaf438f8774
+ checksum: 10c0/eccc54d0f03c96d0eec7a6e2fa124dadbc7298345b62ffc4238f173308c4325b5598f139695ff05a95cf78412ef6903599e4b814496612bf39aad4715a16375b
languageName: node
linkType: hard
@@ -540,14 +548,14 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-syntax-jsx@npm:7, @babel/plugin-syntax-jsx@npm:^7.24.6, @babel/plugin-syntax-jsx@npm:^7.7.2":
- version: 7.24.6
- resolution: "@babel/plugin-syntax-jsx@npm:7.24.6"
+"@babel/plugin-syntax-jsx@npm:7, @babel/plugin-syntax-jsx@npm:^7.24.7, @babel/plugin-syntax-jsx@npm:^7.7.2":
+ version: 7.24.7
+ resolution: "@babel/plugin-syntax-jsx@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/f00d783a9e2d52f0a8797823a3cbdbe2d0dc09c7235fe8c88e6dce3a02f234f52fb5e976a001cc30b0e2b330590b5680f54436e56d67f9ab05d1e4bdeb3992cd
+ checksum: 10c0/f44d927a9ae8d5ef016ff5b450e1671e56629ddc12e56b938e41fd46e141170d9dfc9a53d6cb2b9a20a7dd266a938885e6a3981c60c052a2e1daed602ac80e51
languageName: node
linkType: hard
@@ -639,14 +647,14 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-syntax-typescript@npm:^7.24.6, @babel/plugin-syntax-typescript@npm:^7.7.2":
- version: 7.24.6
- resolution: "@babel/plugin-syntax-typescript@npm:7.24.6"
+"@babel/plugin-syntax-typescript@npm:^7.24.7, @babel/plugin-syntax-typescript@npm:^7.7.2":
+ version: 7.24.7
+ resolution: "@babel/plugin-syntax-typescript@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/b1eeabf8bebfa78cea559c0a0d55e480fe2ebd799472d1f6bd5afbd2759d02b362d29ad30009c81d5b112797beb987e58a3000d2331adaa4bf03862e1ed18cef
+ checksum: 10c0/cdabd2e8010fb0ad15b49c2c270efc97c4bfe109ead36c7bbcf22da7a74bc3e49702fc4f22f12d2d6049e8e22a5769258df1fd05f0420ae45e11bdd5bc07805a
languageName: node
linkType: hard
@@ -662,456 +670,456 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-arrow-functions@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.6"
+"@babel/plugin-transform-arrow-functions@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/46250eb3f535327825db323740a301b76b882b70979f1fb5f89cbb1a820378ab68ee880b912981dd5276dd116deaaee0f4a2a95f1c9cf537a67749fd4209a2d3
+ checksum: 10c0/6ac05a54e5582f34ac6d5dc26499e227227ec1c7fa6fc8de1f3d40c275f140d3907f79bbbd49304da2d7008a5ecafb219d0b71d78ee3290ca22020d878041245
languageName: node
linkType: hard
-"@babel/plugin-transform-async-generator-functions@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.6"
+"@babel/plugin-transform-async-generator-functions@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.7"
dependencies:
- "@babel/helper-environment-visitor": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
- "@babel/helper-remap-async-to-generator": "npm:^7.24.6"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-remap-async-to-generator": "npm:^7.24.7"
"@babel/plugin-syntax-async-generators": "npm:^7.8.4"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/8876431855220ccfbf1ae510a4a7c4e0377b21189d3f73ea6dde5ffd31eee57f03ea2b2d1da59b6a36b6e107e41b38d0c1d1bb015e0d1c2c2fb627962260edb7
+ checksum: 10c0/6b5e33ae66dce0afce9b06d8dace6fa052528e60f7622aa6cfd3e71bd372ca5079d426e78336ca564bc0d5f37acbcda1b21f4fe656fcb642f1a93a697ab39742
languageName: node
linkType: hard
-"@babel/plugin-transform-async-to-generator@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.6"
+"@babel/plugin-transform-async-to-generator@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.7"
dependencies:
- "@babel/helper-module-imports": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
- "@babel/helper-remap-async-to-generator": "npm:^7.24.6"
+ "@babel/helper-module-imports": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-remap-async-to-generator": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/52c137668e7a35356c3b1caf25ab3bf90ff61199885bfd9f0232bfe168a53a5cf0ca4c1e283c27e44ad76cc366b73e4ff7042241469d1944c7042fb78c57bfd8
+ checksum: 10c0/83c82e243898875af8457972a26ab29baf8a2078768ee9f35141eb3edff0f84b165582a2ff73e90a9e08f5922bf813dbf15a85c1213654385198f4591c0dc45d
languageName: node
linkType: hard
-"@babel/plugin-transform-block-scoped-functions@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.6"
+"@babel/plugin-transform-block-scoped-functions@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/0c761b5e3a2959b63edf47d67f6752e01f24777ad1accd82457a2dca059877f8a8297fbc7a062db6b48836309932f2ac645c507070ef6ad4e765b3600822c048
+ checksum: 10c0/113e86de4612ae91773ff5cb6b980f01e1da7e26ae6f6012127415d7ae144e74987bc23feb97f63ba4bc699331490ddea36eac004d76a20d5369e4cc6a7f61cd
languageName: node
linkType: hard
-"@babel/plugin-transform-block-scoping@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-block-scoping@npm:7.24.6"
+"@babel/plugin-transform-block-scoping@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-block-scoping@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/95c25e501c4553515f92d4e86032a8859a8855cea8aafb6df30f956979caa70af1e126e6dfaf9e51328d1306232ff1e081bda7d84a9aaf23f418d9da120c7018
+ checksum: 10c0/dcbc5e385c0ca5fb5736b1c720c90755cffe9f91d8c854f82e61e59217dd3f6c91b3633eeee4b55a89d3f59e5275d0f5b0b1b1363d4fa70c49c468b55aa87700
languageName: node
linkType: hard
-"@babel/plugin-transform-class-properties@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-class-properties@npm:7.24.6"
+"@babel/plugin-transform-class-properties@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-class-properties@npm:7.24.7"
dependencies:
- "@babel/helper-create-class-features-plugin": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-create-class-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/ae01e00dd528112d542a77f0f1cf6b43726553d2011bbdec9e4fac441dfa161d44bf14449dc4121b45cc971686a8c652652032594e83c5d6cab8e9fd794eecb2
+ checksum: 10c0/75018a466c7ede3d2397e158891c224ba7fca72864506ce067ddbc02fc65191d44da4d6379c996d0c7f09019e26b5c3f5f1d3a639cd98366519723886f0689d0
languageName: node
linkType: hard
-"@babel/plugin-transform-class-static-block@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-class-static-block@npm:7.24.6"
+"@babel/plugin-transform-class-static-block@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-class-static-block@npm:7.24.7"
dependencies:
- "@babel/helper-create-class-features-plugin": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-create-class-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-class-static-block": "npm:^7.14.5"
peerDependencies:
"@babel/core": ^7.12.0
- checksum: 10c0/425f237faf62b531d973f23ac3eefe3f29c4f6c988c33c2dd660b6dfb61d4ed1e865a5088574742d87ed02437d26aa6ec6b107468b7df35ca9d3082bad742d8f
+ checksum: 10c0/b0ade39a3d09dce886f79dbd5907c3d99b48167eddb6b9bbde24a0598129654d7017e611c20494cdbea48b07ac14397cd97ea34e3754bbb2abae4e698128eccb
languageName: node
linkType: hard
-"@babel/plugin-transform-classes@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-classes@npm:7.24.6"
+"@babel/plugin-transform-classes@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-classes@npm:7.24.7"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.24.6"
- "@babel/helper-compilation-targets": "npm:^7.24.6"
- "@babel/helper-environment-visitor": "npm:^7.24.6"
- "@babel/helper-function-name": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
- "@babel/helper-replace-supers": "npm:^7.24.6"
- "@babel/helper-split-export-declaration": "npm:^7.24.6"
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
+ "@babel/helper-compilation-targets": "npm:^7.24.7"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-function-name": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-replace-supers": "npm:^7.24.7"
+ "@babel/helper-split-export-declaration": "npm:^7.24.7"
globals: "npm:^11.1.0"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/d29c26feea9ad5a64d790aeab1833b7a50d6af2be24140dad7e06510b754b8fe0ffb292d43d96fedaf7765fcb90c0034ac7c42635f814d9235697431076a1cf0
+ checksum: 10c0/e51dba7ce8b770d1eee929e098d5a3be3efc3e8b941e22dda7d0097dc4e7be5feabd2da7b707ac06fcac5661b31223c541941dec08ce76c1faa55544d87d06ec
languageName: node
linkType: hard
-"@babel/plugin-transform-computed-properties@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-computed-properties@npm:7.24.6"
+"@babel/plugin-transform-computed-properties@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-computed-properties@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
- "@babel/template": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/template": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/c464144c2eda8d526d70c8d8e3bf30820f591424991452f816617347ef3ccc5d04133c6e903b90c1d832d95d9c8550e5693ea40ea14856ede54fb8e1cd36c5de
+ checksum: 10c0/25636dbc1f605c0b8bc60aa58628a916b689473d11551c9864a855142e36742fe62d4a70400ba3b74902338e77fb3d940376c0a0ba154b6b7ec5367175233b49
languageName: node
linkType: hard
-"@babel/plugin-transform-destructuring@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-destructuring@npm:7.24.6"
+"@babel/plugin-transform-destructuring@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-destructuring@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/1fcc064e2b0c45a4340418bd70d2cf2b3644d1215eb975ec14f83e4f7615fdc3948e355db5091f81602f6c3d933f9308caa66232091aad4edd6c16b00240fcc7
+ checksum: 10c0/929f07a807fb62230bfbf881cfcedf187ac5daf2f1b01da94a75c7a0f6f72400268cf4bcfee534479e43260af8193e42c31ee03c8b0278ba77d0036ed6709c27
languageName: node
linkType: hard
-"@babel/plugin-transform-dotall-regex@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.6"
+"@babel/plugin-transform-dotall-regex@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.7"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/4a2c98f1c22a18754c6ada1486563865690008df2536066d8a146fa58eed8515b607e162c7efb0b8fa062d755e77afea145495046cffdb4ea56194d38f489254
+ checksum: 10c0/793f14c9494972d294b7e7b97b747f47874b6d57d7804d3443c701becf5db192c9311be6a1835c07664486df1f5c60d33196c36fb7e11a53015e476b4c145b33
languageName: node
linkType: hard
-"@babel/plugin-transform-duplicate-keys@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.6"
+"@babel/plugin-transform-duplicate-keys@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/44ddba252f0b9f1f0b1ff8d903bbcf8871246670fb2883f65d09d371d403ce9c3e2e582b94b36506c1d042110b464eb3492e53cd1e87c1d479b145bcc01c04fd
+ checksum: 10c0/75ff7ec1117ac500e77bf20a144411d39c0fdd038f108eec061724123ce6d1bb8d5bd27968e466573ee70014f8be0043361cdb0ef388f8a182d1d97ad67e51b9
languageName: node
linkType: hard
-"@babel/plugin-transform-dynamic-import@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.6"
+"@babel/plugin-transform-dynamic-import@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-dynamic-import": "npm:^7.8.3"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/b4411f21112127a02aef15103765e207e4c03e7321d7f4de3522fc181cb377c5abc8484cf0169e6c30f2e51e6c602c09894fa6b15643d24f66273833ef34e4a6
+ checksum: 10c0/eeda48372efd0a5103cb22dadb13563c975bce18ae85daafbb47d57bb9665d187da9d4fe8d07ac0a6e1288afcfcb73e4e5618bf75ff63fddf9736bfbf225203b
languageName: node
linkType: hard
-"@babel/plugin-transform-exponentiation-operator@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.6"
+"@babel/plugin-transform-exponentiation-operator@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.7"
dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/c4f15518a5d1614dfac0dbadfb99b0f36a98c1c1ff1c39794a105c3c87cfce00689e0943fcb13368b43b00b2eebaa01136ea12fb8600a574720853b5a8a11de7
+ checksum: 10c0/ace3e11c94041b88848552ba8feb39ae4d6cad3696d439ff51445bd2882d8b8775d85a26c2c0edb9b5e38c9e6013cc11b0dea89ec8f93c7d9d7ee95e3645078c
languageName: node
linkType: hard
-"@babel/plugin-transform-export-namespace-from@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.6"
+"@babel/plugin-transform-export-namespace-from@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/bff16d1800d7e5b38d3a3c8d404cc14442a37383dff7769dcc599a0723b2507647cafe9ba7d9b52d2e2f02a78bb78d149676d8d8ddf7357b160f4096b89ae9c5
+ checksum: 10c0/4e144d7f1c57bc63b4899dbbbdfed0880f2daa75ea9c7251c7997f106e4b390dc362175ab7830f11358cb21f6b972ca10a43a2e56cd789065f7606b082674c0c
languageName: node
linkType: hard
-"@babel/plugin-transform-for-of@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-for-of@npm:7.24.6"
+"@babel/plugin-transform-for-of@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-for-of@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/c8def2a160783c5c4a1c136c721fc88aca9cd3757a60f1c885a804b5320edb5f143d3f989f698bdd9aae359fdabab0830dba3d35138cea42988a77d2c72c8443
+ checksum: 10c0/77629b1173e55d07416f05ba7353caa09d2c2149da2ca26721ab812209b63689d1be45116b68eadc011c49ced59daf5320835b15245eb7ae93ae0c5e8277cfc0
languageName: node
linkType: hard
-"@babel/plugin-transform-function-name@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-function-name@npm:7.24.6"
+"@babel/plugin-transform-function-name@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-function-name@npm:7.24.7"
dependencies:
- "@babel/helper-compilation-targets": "npm:^7.24.6"
- "@babel/helper-function-name": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-compilation-targets": "npm:^7.24.7"
+ "@babel/helper-function-name": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/efa6527438ad94df0b7a4c92c33110ec40b086a0aceda567176b150ed291f8eb44b2ce697d8e3e1d4841496c10693add1e88f296418e72a171ead5c76b890a47
+ checksum: 10c0/3e9642428d6952851850d89ea9307d55946528d18973784d0e2f04a651b23bd9924dd8a2641c824b483bd4ab1223bab1d2f6a1106a939998f7ced512cb60ac5b
languageName: node
linkType: hard
-"@babel/plugin-transform-json-strings@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-json-strings@npm:7.24.6"
+"@babel/plugin-transform-json-strings@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-json-strings@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-json-strings": "npm:^7.8.3"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/46af52dcc16f494c6c11dc22c944f2533623b9d9dfce5097bc0bdb99535ad4c4cfe5bca0d8ce8c39a94202e69d99ee60f546ce0be0ad782b681c7b5b4c9ddd6f
+ checksum: 10c0/17c72cd5bf3e90e722aabd333559275f3309e3fa0b9cea8c2944ab83ae01502c71a2be05da5101edc02b3fc8df15a8dbb9b861cbfcc8a52bf5e797cf01d3a40a
languageName: node
linkType: hard
-"@babel/plugin-transform-literals@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-literals@npm:7.24.6"
+"@babel/plugin-transform-literals@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-literals@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/961b64df79a673706d74cf473d1f4646f250b4f8813f9d7ef5d897e30acdacd1ca104584de2e88546289fce055d71bd7559cdb8ad4a2d5e7eea17f3c829faa97
+ checksum: 10c0/9f3f6f3831929cd2a977748c07addf9944d5cccb50bd3a24a58beb54f91f00d6cacd3d7831d13ffe1ad6f8aba0aefd7bca5aec65d63b77f39c62ad1f2d484a3e
languageName: node
linkType: hard
-"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.6"
+"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/0ae7f4098c63f442fd038de6034155bcf20214e7e490e92189decb2980932247b97cb069b11ac8bc471b53f71d6859e607969440d63ff400b8932ee3e05b4958
+ checksum: 10c0/dbe882eb9053931f2ab332c50fc7c2a10ef507d6421bd9831adbb4cb7c9f8e1e5fbac4fbd2e007f6a1bf1df1843547559434012f118084dc0bf42cda3b106272
languageName: node
linkType: hard
-"@babel/plugin-transform-member-expression-literals@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.6"
+"@babel/plugin-transform-member-expression-literals@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/ec8908a409bd39d20f0428e35425c9e4c540bad252a0e33e08b84e3bea5088c785531197bdcf049afbdba841325962a93030b7be6da3586cb13d0ca0ebab89c9
+ checksum: 10c0/e789ae359bdf2d20e90bedef18dfdbd965c9ebae1cee398474a0c349590fda7c8b874e1a2ceee62e47e5e6ec1730e76b0f24e502164357571854271fc12cc684
languageName: node
linkType: hard
-"@babel/plugin-transform-modules-amd@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-modules-amd@npm:7.24.6"
+"@babel/plugin-transform-modules-amd@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-modules-amd@npm:7.24.7"
dependencies:
- "@babel/helper-module-transforms": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-module-transforms": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/074d26c79f517b27a07fef00319aff9705df1e6b41a805db855fe719e0f246b9815d6525cf1c5f0890c7f830dd0b9776e9b2493bbc929a3c23c0dee15f10a514
+ checksum: 10c0/6df7de7fce34117ca4b2fa07949b12274c03668cbfe21481c4037b6300796d50ae40f4f170527b61b70a67f26db906747797e30dbd0d9809a441b6e220b5728f
languageName: node
linkType: hard
-"@babel/plugin-transform-modules-commonjs@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.6"
+"@babel/plugin-transform-modules-commonjs@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.7"
dependencies:
- "@babel/helper-module-transforms": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
- "@babel/helper-simple-access": "npm:^7.24.6"
+ "@babel/helper-module-transforms": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-simple-access": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/4fc790136d066105fa773ffc7e249d88c6f0d0126984ede36fedd51ac2b622b46c08565bcdd1ab62ac10195eeedeaba0d26e7e4c676ed50906cbed16540a4e22
+ checksum: 10c0/9442292b3daf6a5076cdc3c4c32bf423bda824ccaeb0dd0dc8b3effaa1fecfcb0130ae6e647fef12a5d5ff25bcc99a0d6bfc6d24a7525345e1bcf46fcdf81752
languageName: node
linkType: hard
-"@babel/plugin-transform-modules-systemjs@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.6"
+"@babel/plugin-transform-modules-systemjs@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.7"
dependencies:
- "@babel/helper-hoist-variables": "npm:^7.24.6"
- "@babel/helper-module-transforms": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
- "@babel/helper-validator-identifier": "npm:^7.24.6"
+ "@babel/helper-hoist-variables": "npm:^7.24.7"
+ "@babel/helper-module-transforms": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-validator-identifier": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/500962e3ac1bb1a9890e94f1967ec9e3aa3d41e22d4a9d1c739918707e4a8936710fd8d0ed4f3a8aad87260f7566b54566bead77977eb21e90124835cb6bcdca
+ checksum: 10c0/e2a795e0a6baafe26f4a74010622212ddd873170742d673f450e0097f8d984f6e6a95eb8ce41b05071ee9790c4be088b33801aaab3f78ee202c567634e52a331
languageName: node
linkType: hard
-"@babel/plugin-transform-modules-umd@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-modules-umd@npm:7.24.6"
+"@babel/plugin-transform-modules-umd@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-modules-umd@npm:7.24.7"
dependencies:
- "@babel/helper-module-transforms": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-module-transforms": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/73c6cecb4f45ca3f665e2c57b6d04d65358518522dfaffb9b6913c026aeb704281d015324d02bf07f2cb026de6bac9308c62e82979364bd39f3687f752652b0d
+ checksum: 10c0/7791d290121db210e4338b94b4a069a1a79e4c7a8d7638d8159a97b281851bbed3048dac87a4ae718ad963005e6c14a5d28e6db2eeb2b04e031cee92fb312f85
languageName: node
linkType: hard
-"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.24.6"
+"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.24.7"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/92547309d81938488753f87b05a679a7557a1cec253756966044367c268b27311e51efad91724aa3e433cf61626e10bf1008e112998350c2013a87824c4cfe0b
+ checksum: 10c0/41a0b0f2d0886318237440aa3b489f6d0305361d8671121777d9ff89f9f6de9d0c02ce93625049061426c8994064ef64deae8b819d1b14c00374a6a2336fb5d9
languageName: node
linkType: hard
-"@babel/plugin-transform-new-target@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-new-target@npm:7.24.6"
+"@babel/plugin-transform-new-target@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-new-target@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/5e9b9edfbe46489f64013d2bbd422f29acdb8057ccc85e7c759f7cf1415fde6a82ac13a13f0f246defaba6e2f7f4d424178ba78fc02237bdbf7df6692fc1dca8
+ checksum: 10c0/2540808a35e1a978e537334c43dab439cf24c93e7beb213a2e71902f6710e60e0184316643790c0a6644e7a8021e52f7ab8165e6b3e2d6651be07bdf517b67df
languageName: node
linkType: hard
-"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.3, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.6"
+"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.3, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/53ab5b16bbcf47e842a48f1f0774d238dae0222c3e1f31653307808048e249ed140cba12dfc280cbc9a577cb3bb5b2f50ca0e3e4ffe5260fcf8c3ca0b83fb21e
+ checksum: 10c0/7243c8ff734ed5ef759dd8768773c4b443c12e792727e759a1aec2c7fa2bfdd24f1ecb42e292a7b3d8bd3d7f7b861cf256a8eb4ba144fc9cc463892c303083d9
languageName: node
linkType: hard
-"@babel/plugin-transform-numeric-separator@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.6"
+"@babel/plugin-transform-numeric-separator@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-numeric-separator": "npm:^7.10.4"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/14863e735fc407e065e1574914864a956b8250a84cfb4704592656763c9455d67034c7745e53066725195d9ed042121f424c4aaee00027791640e2639386b701
+ checksum: 10c0/e18e09ca5a6342645d00ede477731aa6e8714ff357efc9d7cda5934f1703b3b6fb7d3298dce3ce3ba53e9ff1158eab8f1aadc68874cc21a6099d33a1ca457789
languageName: node
linkType: hard
-"@babel/plugin-transform-object-rest-spread@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.6"
+"@babel/plugin-transform-object-rest-spread@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7"
dependencies:
- "@babel/helper-compilation-targets": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-compilation-targets": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3"
- "@babel/plugin-transform-parameters": "npm:^7.24.6"
+ "@babel/plugin-transform-parameters": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/1a192b9756ebfa0bc69ad5e285d7d0284963b4b95738ca7721354297329d5c1ab4eb05ff5b198cbfffa3ec00e97a15a712aa7a5011d9407478796966aab54527
+ checksum: 10c0/9ad64bc003f583030f9da50614b485852f8edac93f8faf5d1cd855201a4852f37c5255ae4daf70dd4375bdd4874e16e39b91f680d4668ec219ba05441ce286eb
languageName: node
linkType: hard
-"@babel/plugin-transform-object-super@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-object-super@npm:7.24.6"
+"@babel/plugin-transform-object-super@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-object-super@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
- "@babel/helper-replace-supers": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-replace-supers": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/2e48b9e0a1f3b04b439ede2d0c83bcc5324a81c8bab73c70f0c466cf48061a4ff469f283e2feb17b4cc2e20372c1362253604477ecd77e622192d5d7906aa062
+ checksum: 10c0/770cebb4b4e1872c216b17069db9a13b87dfee747d359dc56d9fcdd66e7544f92dc6ab1861a4e7e0528196aaff2444e4f17dc84efd8eaf162d542b4ba0943869
languageName: node
linkType: hard
-"@babel/plugin-transform-optional-catch-binding@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.6"
+"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/411db3177b1bffd2f9e5b33a6b62e70158380e67d91ff4725755312e8a0a2f2c3fd340c60005295a672115fb593222ab2d7076266aebced6ef087a5505b6f371
+ checksum: 10c0/1e2f10a018f7d03b3bde6c0b70d063df8d5dd5209861d4467726cf834f5e3d354e2276079dc226aa8e6ece35f5c9b264d64b8229a8bb232829c01e561bcfb07a
languageName: node
linkType: hard
-"@babel/plugin-transform-optional-chaining@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.6"
+"@babel/plugin-transform-optional-chaining@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7"
"@babel/plugin-syntax-optional-chaining": "npm:^7.8.3"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/8ee5a500a2309444d4fb27979857598e9c91d804fe23217c51cc208b1bc6b9cd0650b355b1ebd625f180c5f1dc4cb89b5f313c982f7c89d90281a69b24a88ccb
+ checksum: 10c0/b9e3649b299e103b0d1767bbdba56574d065ff776e5350403b7bfd4e3982743c0cdb373d33bdbf94fa3c322d155e45d0aad946acf0aa741b870aed22dfec8b8e
languageName: node
linkType: hard
-"@babel/plugin-transform-parameters@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-parameters@npm:7.24.6"
+"@babel/plugin-transform-parameters@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-parameters@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/d9648924b9c0d35a243c0742c22838932a024205c61f4cc419857e5195edd893a33e6be4f2c8fbd89e925051c7cbe8968029ec2d3e7f2f098bfa682f4e2b9731
+ checksum: 10c0/53bf190d6926771545d5184f1f5f3f5144d0f04f170799ad46a43f683a01fab8d5fe4d2196cf246774530990c31fe1f2b9f0def39f0a5ddbb2340b924f5edf01
languageName: node
linkType: hard
-"@babel/plugin-transform-private-methods@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-private-methods@npm:7.24.6"
+"@babel/plugin-transform-private-methods@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-private-methods@npm:7.24.7"
dependencies:
- "@babel/helper-create-class-features-plugin": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-create-class-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/55f93959b2e8aeda818db7cdc7dfdcd5076f5bdc8a819566818004a68969fb7297d617f9d108bf76ac232d6056d9f9d20f73ce10380baa43ff1755c5591aa803
+ checksum: 10c0/5b7bf923b738fbe3ad6c33b260e0a7451be288edfe4ef516303fa787a1870cd87533bfbf61abb779c22ed003c2fc484dec2436fe75a48756f686c0241173d364
languageName: node
linkType: hard
-"@babel/plugin-transform-private-property-in-object@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.6"
+"@babel/plugin-transform-private-property-in-object@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.7"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.24.6"
- "@babel/helper-create-class-features-plugin": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
+ "@babel/helper-create-class-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/c9eb9597362b598a91536375a49ba80cdf13461e849680e040898b103f7998c4d33a7832da5afba9fa51e3473f79cf8605f9ace07a887e386b7801797021631b
+ checksum: 10c0/c6fa7defb90b1b0ed46f24ff94ff2e77f44c1f478d1090e81712f33cf992dda5ba347016f030082a2f770138bac6f4a9c2c1565e9f767a125901c77dd9c239ba
languageName: node
linkType: hard
-"@babel/plugin-transform-property-literals@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-property-literals@npm:7.24.6"
+"@babel/plugin-transform-property-literals@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-property-literals@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/d1195d93406b6c400cdbc9ac57a2b8b58c72cc6480cc03656abfc243be0e2a48133cbb96559c2db95b1c78803daeb538277821540fe19e2a9105905e727ef618
+ checksum: 10c0/52564b58f3d111dc02d241d5892a4b01512e98dfdf6ef11b0ed62f8b11b0acacccef0fc229b44114fe8d1a57a8b70780b11bdd18b807d3754a781a07d8f57433
languageName: node
linkType: hard
@@ -1126,243 +1134,243 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-react-display-name@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-react-display-name@npm:7.24.6"
+"@babel/plugin-transform-react-display-name@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-react-display-name@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/e929d054035fa3b7432bd2b3e5cf280ffd8cf60d1ce80c863c5e0b03ad01bf6ae2546575d2da31cca2ab83d9399ac01a351f20e21af5075d9c0d4c893e4a36bd
+ checksum: 10c0/c14a07a9e75723c96f1a0a306b8a8e899ff1c6a0cc3d62bcda79bb1b54e4319127b258651c513a1a47da152cdc22e16525525a30ae5933a2980c7036fd0b4d24
languageName: node
linkType: hard
"@babel/plugin-transform-react-inline-elements@npm:^7.21.0":
- version: 7.24.6
- resolution: "@babel/plugin-transform-react-inline-elements@npm:7.24.6"
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-react-inline-elements@npm:7.24.7"
dependencies:
- "@babel/helper-builder-react-jsx": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-builder-react-jsx": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/b29f32a0c345db24f32569cf7a5626e37dd31c21bb764148757e91f609d41e2d09031ff1ad86e5672d578cf16f513b197ef3ebc8f0650d8314890a34ca68f02c
+ checksum: 10c0/affe44efc641e5dc4de077db74c80e3dee896a5dfea04491cbd8167ac40dcbb6eaa1ad0ba599e4a85071acdaa08732e7f5d9cf3236a2aa635406c232c8f08236
languageName: node
linkType: hard
-"@babel/plugin-transform-react-jsx-development@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-react-jsx-development@npm:7.24.6"
+"@babel/plugin-transform-react-jsx-development@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-react-jsx-development@npm:7.24.7"
dependencies:
- "@babel/plugin-transform-react-jsx": "npm:^7.24.6"
+ "@babel/plugin-transform-react-jsx": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/f899ffa65c7f459a682246a346af0e4132929ffe928cb0d02ae08aac1cf3fb01b2f6e944ef1eaca78f14e94eff935e2bf96aad878030c25ff6de2070a8b72448
+ checksum: 10c0/fce647db50f90a5291681f0f97865d9dc76981262dff71d6d0332e724b85343de5860c26f9e9a79e448d61e1d70916b07ce91e8c7f2b80dceb4b16aee41794d8
languageName: node
linkType: hard
-"@babel/plugin-transform-react-jsx@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-react-jsx@npm:7.24.6"
+"@babel/plugin-transform-react-jsx@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-react-jsx@npm:7.24.7"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.24.6"
- "@babel/helper-module-imports": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
- "@babel/plugin-syntax-jsx": "npm:^7.24.6"
- "@babel/types": "npm:^7.24.6"
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
+ "@babel/helper-module-imports": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/plugin-syntax-jsx": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/6144f56a76529a82077475583a17be8f0b0b461c83673e650f3894e09dbe2bcdfdbfff089eca2e5e239e119f72cd9562749a9af7eb3f2e3266a730da31cd19f2
+ checksum: 10c0/5c46d2c1c06a30e6bde084839df9cc689bf9c9cb0292105d61c225ca731f64247990724caee7dfc7f817dc964c062e8319e7f05394209590c476b65d75373435
languageName: node
linkType: hard
-"@babel/plugin-transform-react-pure-annotations@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.24.6"
+"@babel/plugin-transform-react-pure-annotations@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.24.7"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/7f83c5a3a275dbb9a291dee4642a3a0f2249265346d8d3cc9324fc9ee063c3e35c3853b52752ece603f0ac92b405deb38c4b5307a99a74d3e1c9c32a2cefa465
+ checksum: 10c0/fae517d293d9c93b7b920458c3e4b91cb0400513889af41ba184a5f3acc8bfef27242cc262741bb8f87870df376f1733a0d0f52b966d342e2aaaf5607af8f73d
languageName: node
linkType: hard
-"@babel/plugin-transform-regenerator@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-regenerator@npm:7.24.6"
+"@babel/plugin-transform-regenerator@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-regenerator@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
regenerator-transform: "npm:^0.15.2"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/d17eaa97514d583866182420024b8c22da2c6ca822bdbf16fe7564121564c1844935592dc3315c73d1f78f7c908a4338b1d783618811e694c9bb6d5f9233e58d
+ checksum: 10c0/d2dc2c788fdae9d97217e70d46ba8ca9db0035c398dc3e161552b0c437113719a75c04f201f9c91ddc8d28a1da60d0b0853f616dead98a396abb9c845c44892b
languageName: node
linkType: hard
-"@babel/plugin-transform-reserved-words@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-reserved-words@npm:7.24.6"
+"@babel/plugin-transform-reserved-words@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-reserved-words@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/5d2d4c579bd90c60fc6468a1285b3384e7b650b47d41a937a1590d4aecfc28bd945e82704c6e71cc91aa016b7e78c5594290c1c386edf11ec98e09e36235c5ae
+ checksum: 10c0/2229de2768615e7f5dc0bbc55bc121b5678fd6d2febd46c74a58e42bb894d74cd5955c805880f4e02d0e1cf94f6886270eda7fafc1be9305a1ec3b9fd1d063f5
languageName: node
linkType: hard
"@babel/plugin-transform-runtime@npm:^7.22.4":
- version: 7.24.6
- resolution: "@babel/plugin-transform-runtime@npm:7.24.6"
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-runtime@npm:7.24.7"
dependencies:
- "@babel/helper-module-imports": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-module-imports": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
babel-plugin-polyfill-corejs2: "npm:^0.4.10"
babel-plugin-polyfill-corejs3: "npm:^0.10.1"
babel-plugin-polyfill-regenerator: "npm:^0.6.1"
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/89c43c1236506ecbfc547b12936283ca41e611430c2d2e6d12bf1cbdb0d80760cdae481951f486946733e1c9ae064cb05f4bc779c65b3288d40963b0c4a20c5c
+ checksum: 10c0/a33f5095872bbba00b8ee553dfe6941477e69a017a2e65e9dd86e80dab5c627635093b796eb1eb22aaaf2f874704f63ad1d99b952b83b59ef6b368ae04e5bb41
languageName: node
linkType: hard
-"@babel/plugin-transform-shorthand-properties@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.6"
+"@babel/plugin-transform-shorthand-properties@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/4141b5da1d0d20d66ca0affaef8dfc45ed5e954bfa9003eb8aa779842599de443b37c2b265da27693f304c35ab68a682b44098e9eea0d39f8f94072ab616657f
+ checksum: 10c0/41b155bdbb3be66618358488bf7731b3b2e8fff2de3dbfd541847720a9debfcec14db06a117abedd03c9cd786db20a79e2a86509a4f19513f6e1b610520905cf
languageName: node
linkType: hard
-"@babel/plugin-transform-spread@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-spread@npm:7.24.6"
+"@babel/plugin-transform-spread@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-spread@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/6d12da05311690c4a73d775688ba6931b441e96e512377a166a60184292edeac0b17f5154a49e2f1d262a3f80b96e064bc9c88c63b2a6125f0a2132eff9ed585
+ checksum: 10c0/facba1553035f76b0d2930d4ada89a8cd0f45b79579afd35baefbfaf12e3b86096995f4b0c402cf9ee23b3f2ea0a4460c3b1ec0c192d340962c948bb223d4e66
languageName: node
linkType: hard
-"@babel/plugin-transform-sticky-regex@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.6"
+"@babel/plugin-transform-sticky-regex@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/2a65f57554f51d3b9cd035513a610f47e46b26dba112b3b9fb42d1c1f2ae153fce8f76294b4721d099817814f57895c656f5b7dccd5df683277da6522c817ee9
+ checksum: 10c0/5a74ed2ed0a3ab51c3d15fcaf09d9e2fe915823535c7a4d7b019813177d559b69677090e189ec3d5d08b619483eb5ad371fbcfbbff5ace2a76ba33ee566a1109
languageName: node
linkType: hard
-"@babel/plugin-transform-template-literals@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-template-literals@npm:7.24.6"
+"@babel/plugin-transform-template-literals@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-template-literals@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/fcde48e9c3ecd7f5f37ceb6908f1edd537d3115fc2f27d187d58fd83b2a13637a1bb3d24589d841529ed081405b951bf1c5d194ea81eff6ad2d88204d153010d
+ checksum: 10c0/3630f966257bcace122f04d3157416a09d40768c44c3a800855da81146b009187daa21859d1c3b7d13f4e19e8888e60613964b175b2275d451200fb6d8d6cfe6
languageName: node
linkType: hard
-"@babel/plugin-transform-typeof-symbol@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.6"
+"@babel/plugin-transform-typeof-symbol@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/a24b3a3c7b87c6496ee13d2438effd4645868f054397357ec3cbe92a2f0df4152ac7fd7228cb956576c1b772c0675b065d6ad5f5053c382e97dd022015e9a028
+ checksum: 10c0/5649e7260a138681e68b296ab5931e2b1f132f287d6b4131d49b24f9dc20d62902b7e9d63c4d2decd5683b41df35ef4b9b03f58c7f9f65e4c25a6d8bbf04e9e9
languageName: node
linkType: hard
-"@babel/plugin-transform-typescript@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-typescript@npm:7.24.6"
+"@babel/plugin-transform-typescript@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-typescript@npm:7.24.7"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.24.6"
- "@babel/helper-create-class-features-plugin": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
- "@babel/plugin-syntax-typescript": "npm:^7.24.6"
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
+ "@babel/helper-create-class-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/plugin-syntax-typescript": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/46b054e4d4253187403e392ef30f4dd624d8486a1992703f5ff1b415d4e8d00f474e35fb77bc7a3a16a17330873cadcd5af4a8493c61b16da2dde212b2788ccd
+ checksum: 10c0/e8dacdc153a4c4599014b66eb01b94e3dc933d58d4f0cc3039c1a8f432e77b9df14f34a61964e014b975bf466f3fefd8c4768b3e887d3da1be9dc942799bdfdf
languageName: node
linkType: hard
-"@babel/plugin-transform-unicode-escapes@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.6"
+"@babel/plugin-transform-unicode-escapes@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/0e4038c589b7a63a2469466a25b78aad4ecb7267732e3c953c3055f9a77c7bee859a71983a08b025179f1b094964f2ebbfca1b6c33de4ead90a0b5ef06ddb47e
+ checksum: 10c0/8b18e2e66af33471a6971289492beff5c240e56727331db1d34c4338a6a368a82a7ed6d57ec911001b6d65643aed76531e1e7cac93265fb3fb2717f54d845e69
languageName: node
linkType: hard
-"@babel/plugin-transform-unicode-property-regex@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.6"
+"@babel/plugin-transform-unicode-property-regex@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.7"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/bca99e00de91d0460dfcb25f285f3606248acc905193c05587e2862c54ddb790c5d8cb45e80927290390cffbcba7620f8af3e74c5301ff0c1c59ce7d47c5629f
+ checksum: 10c0/bc57656eb94584d1b74a385d378818ac2b3fca642e3f649fead8da5fb3f9de22f8461185936915dfb33d5a9104e62e7a47828331248b09d28bb2d59e9276de3e
languageName: node
linkType: hard
-"@babel/plugin-transform-unicode-regex@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.6"
+"@babel/plugin-transform-unicode-regex@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.7"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/ab6e253cfc38c7e8a2844d7ad46f85fdcbe33610b7f92f71045cf0b040438a08f1f1717ab4b84c480537f54e5478db8b404a4ccc2ff846b4e3ed33d373e3b47a
+ checksum: 10c0/83f72a345b751566b601dc4d07e9f2c8f1bc0e0c6f7abb56ceb3095b3c9d304de73f85f2f477a09f8cc7edd5e65afd0ff9e376cdbcbea33bc0c28f3705b38fd9
languageName: node
linkType: hard
-"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.6"
+"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.7"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/a52e84f85519fed330e88f7a17611064d2b5f1d0fe2823f8113ed312828e69787888bd023f404e8d35d0bb96461e42e19cdc4f0a44d35959bc86c219a3062237
+ checksum: 10c0/7457c0ee8e80a80cb6fdc1fe54ab115b52815627616ce9151be8ef292fc99d04a910ec24f11382b4f124b89374264396892b086886bd2a9c2317904d87c9b21b
languageName: node
linkType: hard
"@babel/preset-env@npm:^7.11.0, @babel/preset-env@npm:^7.12.1, @babel/preset-env@npm:^7.22.4":
- version: 7.24.6
- resolution: "@babel/preset-env@npm:7.24.6"
- dependencies:
- "@babel/compat-data": "npm:^7.24.6"
- "@babel/helper-compilation-targets": "npm:^7.24.6"
- "@babel/helper-plugin-utils": "npm:^7.24.6"
- "@babel/helper-validator-option": "npm:^7.24.6"
- "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.24.6"
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.24.6"
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.6"
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.24.6"
+ version: 7.24.7
+ resolution: "@babel/preset-env@npm:7.24.7"
+ dependencies:
+ "@babel/compat-data": "npm:^7.24.7"
+ "@babel/helper-compilation-targets": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-validator-option": "npm:^7.24.7"
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.24.7"
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.24.7"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.7"
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.24.7"
"@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2"
"@babel/plugin-syntax-async-generators": "npm:^7.8.4"
"@babel/plugin-syntax-class-properties": "npm:^7.12.13"
"@babel/plugin-syntax-class-static-block": "npm:^7.14.5"
"@babel/plugin-syntax-dynamic-import": "npm:^7.8.3"
"@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3"
- "@babel/plugin-syntax-import-assertions": "npm:^7.24.6"
- "@babel/plugin-syntax-import-attributes": "npm:^7.24.6"
+ "@babel/plugin-syntax-import-assertions": "npm:^7.24.7"
+ "@babel/plugin-syntax-import-attributes": "npm:^7.24.7"
"@babel/plugin-syntax-import-meta": "npm:^7.10.4"
"@babel/plugin-syntax-json-strings": "npm:^7.8.3"
"@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4"
@@ -1374,54 +1382,54 @@ __metadata:
"@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5"
"@babel/plugin-syntax-top-level-await": "npm:^7.14.5"
"@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6"
- "@babel/plugin-transform-arrow-functions": "npm:^7.24.6"
- "@babel/plugin-transform-async-generator-functions": "npm:^7.24.6"
- "@babel/plugin-transform-async-to-generator": "npm:^7.24.6"
- "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.6"
- "@babel/plugin-transform-block-scoping": "npm:^7.24.6"
- "@babel/plugin-transform-class-properties": "npm:^7.24.6"
- "@babel/plugin-transform-class-static-block": "npm:^7.24.6"
- "@babel/plugin-transform-classes": "npm:^7.24.6"
- "@babel/plugin-transform-computed-properties": "npm:^7.24.6"
- "@babel/plugin-transform-destructuring": "npm:^7.24.6"
- "@babel/plugin-transform-dotall-regex": "npm:^7.24.6"
- "@babel/plugin-transform-duplicate-keys": "npm:^7.24.6"
- "@babel/plugin-transform-dynamic-import": "npm:^7.24.6"
- "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.6"
- "@babel/plugin-transform-export-namespace-from": "npm:^7.24.6"
- "@babel/plugin-transform-for-of": "npm:^7.24.6"
- "@babel/plugin-transform-function-name": "npm:^7.24.6"
- "@babel/plugin-transform-json-strings": "npm:^7.24.6"
- "@babel/plugin-transform-literals": "npm:^7.24.6"
- "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.6"
- "@babel/plugin-transform-member-expression-literals": "npm:^7.24.6"
- "@babel/plugin-transform-modules-amd": "npm:^7.24.6"
- "@babel/plugin-transform-modules-commonjs": "npm:^7.24.6"
- "@babel/plugin-transform-modules-systemjs": "npm:^7.24.6"
- "@babel/plugin-transform-modules-umd": "npm:^7.24.6"
- "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.6"
- "@babel/plugin-transform-new-target": "npm:^7.24.6"
- "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.6"
- "@babel/plugin-transform-numeric-separator": "npm:^7.24.6"
- "@babel/plugin-transform-object-rest-spread": "npm:^7.24.6"
- "@babel/plugin-transform-object-super": "npm:^7.24.6"
- "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.6"
- "@babel/plugin-transform-optional-chaining": "npm:^7.24.6"
- "@babel/plugin-transform-parameters": "npm:^7.24.6"
- "@babel/plugin-transform-private-methods": "npm:^7.24.6"
- "@babel/plugin-transform-private-property-in-object": "npm:^7.24.6"
- "@babel/plugin-transform-property-literals": "npm:^7.24.6"
- "@babel/plugin-transform-regenerator": "npm:^7.24.6"
- "@babel/plugin-transform-reserved-words": "npm:^7.24.6"
- "@babel/plugin-transform-shorthand-properties": "npm:^7.24.6"
- "@babel/plugin-transform-spread": "npm:^7.24.6"
- "@babel/plugin-transform-sticky-regex": "npm:^7.24.6"
- "@babel/plugin-transform-template-literals": "npm:^7.24.6"
- "@babel/plugin-transform-typeof-symbol": "npm:^7.24.6"
- "@babel/plugin-transform-unicode-escapes": "npm:^7.24.6"
- "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.6"
- "@babel/plugin-transform-unicode-regex": "npm:^7.24.6"
- "@babel/plugin-transform-unicode-sets-regex": "npm:^7.24.6"
+ "@babel/plugin-transform-arrow-functions": "npm:^7.24.7"
+ "@babel/plugin-transform-async-generator-functions": "npm:^7.24.7"
+ "@babel/plugin-transform-async-to-generator": "npm:^7.24.7"
+ "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.7"
+ "@babel/plugin-transform-block-scoping": "npm:^7.24.7"
+ "@babel/plugin-transform-class-properties": "npm:^7.24.7"
+ "@babel/plugin-transform-class-static-block": "npm:^7.24.7"
+ "@babel/plugin-transform-classes": "npm:^7.24.7"
+ "@babel/plugin-transform-computed-properties": "npm:^7.24.7"
+ "@babel/plugin-transform-destructuring": "npm:^7.24.7"
+ "@babel/plugin-transform-dotall-regex": "npm:^7.24.7"
+ "@babel/plugin-transform-duplicate-keys": "npm:^7.24.7"
+ "@babel/plugin-transform-dynamic-import": "npm:^7.24.7"
+ "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.7"
+ "@babel/plugin-transform-export-namespace-from": "npm:^7.24.7"
+ "@babel/plugin-transform-for-of": "npm:^7.24.7"
+ "@babel/plugin-transform-function-name": "npm:^7.24.7"
+ "@babel/plugin-transform-json-strings": "npm:^7.24.7"
+ "@babel/plugin-transform-literals": "npm:^7.24.7"
+ "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7"
+ "@babel/plugin-transform-member-expression-literals": "npm:^7.24.7"
+ "@babel/plugin-transform-modules-amd": "npm:^7.24.7"
+ "@babel/plugin-transform-modules-commonjs": "npm:^7.24.7"
+ "@babel/plugin-transform-modules-systemjs": "npm:^7.24.7"
+ "@babel/plugin-transform-modules-umd": "npm:^7.24.7"
+ "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7"
+ "@babel/plugin-transform-new-target": "npm:^7.24.7"
+ "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7"
+ "@babel/plugin-transform-numeric-separator": "npm:^7.24.7"
+ "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7"
+ "@babel/plugin-transform-object-super": "npm:^7.24.7"
+ "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7"
+ "@babel/plugin-transform-optional-chaining": "npm:^7.24.7"
+ "@babel/plugin-transform-parameters": "npm:^7.24.7"
+ "@babel/plugin-transform-private-methods": "npm:^7.24.7"
+ "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7"
+ "@babel/plugin-transform-property-literals": "npm:^7.24.7"
+ "@babel/plugin-transform-regenerator": "npm:^7.24.7"
+ "@babel/plugin-transform-reserved-words": "npm:^7.24.7"
+ "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7"
+ "@babel/plugin-transform-spread": "npm:^7.24.7"
+ "@babel/plugin-transform-sticky-regex": "npm:^7.24.7"
+ "@babel/plugin-transform-template-literals": "npm:^7.24.7"
+ "@babel/plugin-transform-typeof-symbol": "npm:^7.24.7"
+ "@babel/plugin-transform-unicode-escapes": "npm:^7.24.7"
+ "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.7"
+ "@babel/plugin-transform-unicode-regex": "npm:^7.24.7"
+ "@babel/plugin-transform-unicode-sets-regex": "npm:^7.24.7"
"@babel/preset-modules": "npm:0.1.6-no-external-plugins"
babel-plugin-polyfill-corejs2: "npm:^0.4.10"
babel-plugin-polyfill-corejs3: "npm:^0.10.4"
@@ -1430,7 +1438,7 @@ __metadata:
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/d837d294197803d550e48d9458a356853a54a0528e7cdc51c2b8a5d8dfe41c6fbc597b4fc67464615a7385198a3db2e839da15cca7b9502fedf27170fc6ef673
+ checksum: 10c0/c6714346f3ccc1271eaa90051c75b8bb57b20ef57408ab68740e2f3552693ae0ee5a4bcce3a00211d40e4947af1f7b8ab422066b953f0095461937fb72d11274
languageName: node
linkType: hard
@@ -1448,33 +1456,33 @@ __metadata:
linkType: hard
"@babel/preset-react@npm:^7.12.5, @babel/preset-react@npm:^7.22.3":
- version: 7.24.6
- resolution: "@babel/preset-react@npm:7.24.6"
+ version: 7.24.7
+ resolution: "@babel/preset-react@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
- "@babel/helper-validator-option": "npm:^7.24.6"
- "@babel/plugin-transform-react-display-name": "npm:^7.24.6"
- "@babel/plugin-transform-react-jsx": "npm:^7.24.6"
- "@babel/plugin-transform-react-jsx-development": "npm:^7.24.6"
- "@babel/plugin-transform-react-pure-annotations": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-validator-option": "npm:^7.24.7"
+ "@babel/plugin-transform-react-display-name": "npm:^7.24.7"
+ "@babel/plugin-transform-react-jsx": "npm:^7.24.7"
+ "@babel/plugin-transform-react-jsx-development": "npm:^7.24.7"
+ "@babel/plugin-transform-react-pure-annotations": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/edc470b86dfcfdedf53feca3f2266bd7f836a300806938a422f4120d39bbdea6a780b9b0a9ac0333e0bb1b8e554699a74cafd135b2a75b02b77ef1b21f7c7f62
+ checksum: 10c0/9658b685b25cedaadd0b65c4e663fbc7f57394b5036ddb4c99b1a75b0711fb83292c1c625d605c05b73413fc7a6dc20e532627f6a39b6dc8d4e00415479b054c
languageName: node
linkType: hard
"@babel/preset-typescript@npm:^7.21.5":
- version: 7.24.6
- resolution: "@babel/preset-typescript@npm:7.24.6"
+ version: 7.24.7
+ resolution: "@babel/preset-typescript@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.6"
- "@babel/helper-validator-option": "npm:^7.24.6"
- "@babel/plugin-syntax-jsx": "npm:^7.24.6"
- "@babel/plugin-transform-modules-commonjs": "npm:^7.24.6"
- "@babel/plugin-transform-typescript": "npm:^7.24.6"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-validator-option": "npm:^7.24.7"
+ "@babel/plugin-syntax-jsx": "npm:^7.24.7"
+ "@babel/plugin-transform-modules-commonjs": "npm:^7.24.7"
+ "@babel/plugin-transform-typescript": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/bfcef91ed80d67301301e17a799814457b57bfd0d85d9897dce6df6ed0b0af155c0f5b2af7a1a122a3f36faaaa1de87ccf9954ce06d2f440898ffdfaf18aab86
+ checksum: 10c0/986bc0978eedb4da33aba8e1e13a3426dd1829515313b7e8f4ba5d8c18aff1663b468939d471814e7acf4045d326ae6cff37239878d169ac3fe53a8fde71f8ee
languageName: node
linkType: hard
@@ -1495,51 +1503,51 @@ __metadata:
linkType: hard
"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.2.0, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.7, @babel/runtime@npm:^7.24.1, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2":
- version: 7.24.6
- resolution: "@babel/runtime@npm:7.24.6"
+ version: 7.24.7
+ resolution: "@babel/runtime@npm:7.24.7"
dependencies:
regenerator-runtime: "npm:^0.14.0"
- checksum: 10c0/224ad205de33ea28979baaec89eea4c4d4e9482000dd87d15b97859365511cdd4d06517712504024f5d33a5fb9412f9b91c96f1d923974adf9359e1575cde049
+ checksum: 10c0/b6fa3ec61a53402f3c1d75f4d808f48b35e0dfae0ec8e2bb5c6fc79fb95935da75766e0ca534d0f1c84871f6ae0d2ebdd950727cfadb745a2cdbef13faef5513
languageName: node
linkType: hard
-"@babel/template@npm:^7.24.6, @babel/template@npm:^7.3.3":
- version: 7.24.6
- resolution: "@babel/template@npm:7.24.6"
+"@babel/template@npm:^7.24.7, @babel/template@npm:^7.3.3":
+ version: 7.24.7
+ resolution: "@babel/template@npm:7.24.7"
dependencies:
- "@babel/code-frame": "npm:^7.24.6"
- "@babel/parser": "npm:^7.24.6"
- "@babel/types": "npm:^7.24.6"
- checksum: 10c0/a4d5805770de908b445f7cdcebfcb6eaa07b1ec9c7b78fd3f375a911b1522c249bddae6b96bc4aac24247cc603e3e6cffcf2fe50b4c929dfeb22de289b517525
+ "@babel/code-frame": "npm:^7.24.7"
+ "@babel/parser": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/95b0b3ee80fcef685b7f4426f5713a855ea2cd5ac4da829b213f8fb5afe48a2a14683c2ea04d446dbc7f711c33c5cd4a965ef34dcbe5bc387c9e966b67877ae3
languageName: node
linkType: hard
-"@babel/traverse@npm:7, @babel/traverse@npm:^7.24.6":
- version: 7.24.6
- resolution: "@babel/traverse@npm:7.24.6"
+"@babel/traverse@npm:7, @babel/traverse@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/traverse@npm:7.24.7"
dependencies:
- "@babel/code-frame": "npm:^7.24.6"
- "@babel/generator": "npm:^7.24.6"
- "@babel/helper-environment-visitor": "npm:^7.24.6"
- "@babel/helper-function-name": "npm:^7.24.6"
- "@babel/helper-hoist-variables": "npm:^7.24.6"
- "@babel/helper-split-export-declaration": "npm:^7.24.6"
- "@babel/parser": "npm:^7.24.6"
- "@babel/types": "npm:^7.24.6"
+ "@babel/code-frame": "npm:^7.24.7"
+ "@babel/generator": "npm:^7.24.7"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-function-name": "npm:^7.24.7"
+ "@babel/helper-hoist-variables": "npm:^7.24.7"
+ "@babel/helper-split-export-declaration": "npm:^7.24.7"
+ "@babel/parser": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
debug: "npm:^4.3.1"
globals: "npm:^11.1.0"
- checksum: 10c0/39027d5fc7a241c6b71bb5872c2bdcec53743cd7ef3c151bbe6fd7cf874d15f4bc09e5d7e19e2f534b0eb2c115f5368553885fa4253aa1bc9441c6e5bf9efdaf
+ checksum: 10c0/a5135e589c3f1972b8877805f50a084a04865ccb1d68e5e1f3b94a8841b3485da4142e33413d8fd76bc0e6444531d3adf1f59f359c11ffac452b743d835068ab
languageName: node
linkType: hard
-"@babel/types@npm:^7.0.0, @babel/types@npm:^7.0.0-beta.49, @babel/types@npm:^7.12.11, @babel/types@npm:^7.12.6, @babel/types@npm:^7.20.7, @babel/types@npm:^7.24.6, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
- version: 7.24.6
- resolution: "@babel/types@npm:7.24.6"
+"@babel/types@npm:^7.0.0, @babel/types@npm:^7.0.0-beta.49, @babel/types@npm:^7.12.11, @babel/types@npm:^7.12.6, @babel/types@npm:^7.20.7, @babel/types@npm:^7.24.7, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
+ version: 7.24.7
+ resolution: "@babel/types@npm:7.24.7"
dependencies:
- "@babel/helper-string-parser": "npm:^7.24.6"
- "@babel/helper-validator-identifier": "npm:^7.24.6"
+ "@babel/helper-string-parser": "npm:^7.24.7"
+ "@babel/helper-validator-identifier": "npm:^7.24.7"
to-fast-properties: "npm:^2.0.0"
- checksum: 10c0/1d94d92d97ef49030ad7f9e14cfccfeb70b1706dabcaa69037e659ec9d2c3178fb005d2088cce40d88dfc1306153d9157fe038a79ea2be92e5e6b99a59ef80cc
+ checksum: 10c0/d9ecbfc3eb2b05fb1e6eeea546836ac30d990f395ef3fe3f75ced777a222c3cfc4489492f72e0ce3d9a5a28860a1ce5f81e66b88cf5088909068b3ff4fab72c1
languageName: node
linkType: hard
@@ -6743,9 +6751,9 @@ __metadata:
languageName: node
linkType: hard
-"cssnano-preset-default@npm:^7.0.1":
- version: 7.0.1
- resolution: "cssnano-preset-default@npm:7.0.1"
+"cssnano-preset-default@npm:^7.0.2":
+ version: 7.0.2
+ resolution: "cssnano-preset-default@npm:7.0.2"
dependencies:
browserslist: "npm:^4.23.0"
css-declaration-sorter: "npm:^7.2.0"
@@ -6757,12 +6765,12 @@ __metadata:
postcss-discard-duplicates: "npm:^7.0.0"
postcss-discard-empty: "npm:^7.0.0"
postcss-discard-overridden: "npm:^7.0.0"
- postcss-merge-longhand: "npm:^7.0.0"
- postcss-merge-rules: "npm:^7.0.0"
+ postcss-merge-longhand: "npm:^7.0.1"
+ postcss-merge-rules: "npm:^7.0.1"
postcss-minify-font-values: "npm:^7.0.0"
postcss-minify-gradients: "npm:^7.0.0"
postcss-minify-params: "npm:^7.0.0"
- postcss-minify-selectors: "npm:^7.0.0"
+ postcss-minify-selectors: "npm:^7.0.1"
postcss-normalize-charset: "npm:^7.0.0"
postcss-normalize-display-values: "npm:^7.0.0"
postcss-normalize-positions: "npm:^7.0.0"
@@ -6775,11 +6783,11 @@ __metadata:
postcss-ordered-values: "npm:^7.0.0"
postcss-reduce-initial: "npm:^7.0.0"
postcss-reduce-transforms: "npm:^7.0.0"
- postcss-svgo: "npm:^7.0.0"
- postcss-unique-selectors: "npm:^7.0.0"
+ postcss-svgo: "npm:^7.0.1"
+ postcss-unique-selectors: "npm:^7.0.1"
peerDependencies:
postcss: ^8.4.31
- checksum: 10c0/bee65239d25de2ba87e85b4091cbc1cac9ba1b57c9f803dff5a71ea8a55a885045805840dd732be284c28cca6343dece37fc76d7096aba37cfa02eff2ee7714c
+ checksum: 10c0/7c66240594c1d7a0cc761e755236228b17251455aa57abc45be0631f7de0fde070c23b0e41ffa200d39cd8351718514217d8c7a8cc4f06b54289dc1d555dfeb2
languageName: node
linkType: hard
@@ -6793,14 +6801,14 @@ __metadata:
linkType: hard
"cssnano@npm:^7.0.0":
- version: 7.0.1
- resolution: "cssnano@npm:7.0.1"
+ version: 7.0.2
+ resolution: "cssnano@npm:7.0.2"
dependencies:
- cssnano-preset-default: "npm:^7.0.1"
+ cssnano-preset-default: "npm:^7.0.2"
lilconfig: "npm:^3.1.1"
peerDependencies:
postcss: ^8.4.31
- checksum: 10c0/8b17d13efe98ec2db2fbde9ca24e91842b9afe2f80becc5e4271ee1170d77cf73eed3cdc2f35ed51bacdeac763ff85db45ae8e9627a8862bf01d457a819a640e
+ checksum: 10c0/ad43d8c2e96fa1022fc5103064e4f08da3fdc5501a946d455edf0b81981b58cd06ad2d3f0c68d666e2b687c10c02ffbb383252aa34da0ddc3bd4d075f4a922c7
languageName: node
linkType: hard
@@ -12969,8 +12977,8 @@ __metadata:
linkType: hard
"pg@npm:^8.5.0":
- version: 8.11.5
- resolution: "pg@npm:8.11.5"
+ version: 8.12.0
+ resolution: "pg@npm:8.12.0"
dependencies:
pg-cloudflare: "npm:^1.1.1"
pg-connection-string: "npm:^2.6.4"
@@ -12986,7 +12994,7 @@ __metadata:
peerDependenciesMeta:
pg-native:
optional: true
- checksum: 10c0/20f29a41a99bad5931faf4d4a01e7be7fb27e5b5338fdfb06d2368e295c3d3d4ef49958ad57d2b17bad108e5c84574db6244ed8221e6b77a767f64ef12564119
+ checksum: 10c0/973e49b5e7327c42fc62806efa8c824159ab7a0b676cefe6eeb51a59b6e226587911ec27697f36c18d69e58a7f4f0b76d0829364087194d13ed431ab7c9c417a
languageName: node
linkType: hard
@@ -13486,29 +13494,29 @@ __metadata:
languageName: node
linkType: hard
-"postcss-merge-longhand@npm:^7.0.0":
- version: 7.0.0
- resolution: "postcss-merge-longhand@npm:7.0.0"
+"postcss-merge-longhand@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "postcss-merge-longhand@npm:7.0.1"
dependencies:
postcss-value-parser: "npm:^4.2.0"
- stylehacks: "npm:^7.0.0"
+ stylehacks: "npm:^7.0.1"
peerDependencies:
postcss: ^8.4.31
- checksum: 10c0/5f814f396a5107dcb5e74c2d4e55ebcd03b9bc2b3619ed7aea63a441854023ce349bc371d30aec1ac33a375139afac02709e7721e055b5e624701ac6576e8a10
+ checksum: 10c0/e3d20502e65c82c9c4ba2e400bd093ee6b9c1b0019618ccd50eb40ef0e496206dd518c7e655a6986d780d5a52576e32e8f310d00484b15f67c77664a148df6eb
languageName: node
linkType: hard
-"postcss-merge-rules@npm:^7.0.0":
- version: 7.0.0
- resolution: "postcss-merge-rules@npm:7.0.0"
+"postcss-merge-rules@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "postcss-merge-rules@npm:7.0.1"
dependencies:
browserslist: "npm:^4.23.0"
caniuse-api: "npm:^3.0.0"
cssnano-utils: "npm:^5.0.0"
- postcss-selector-parser: "npm:^6.0.16"
+ postcss-selector-parser: "npm:^6.1.0"
peerDependencies:
postcss: ^8.4.31
- checksum: 10c0/d9cb3a4e55db57aa7ba0bb1caefb82db93c8493d2b3db66091dae9d5794ca04729e660115765ff254d0eb960e4db037f6c5b92562b396b05216888d12acc08e0
+ checksum: 10c0/d380c162327e7aad59efb55cfddc5ec4e3bf51d18b07b832fdd876505279bac3cb44511ada8e1e1992428dcec4f64c7ec457b6ff9109063c5a61abf4b59b7176
languageName: node
linkType: hard
@@ -13549,14 +13557,14 @@ __metadata:
languageName: node
linkType: hard
-"postcss-minify-selectors@npm:^7.0.0":
- version: 7.0.0
- resolution: "postcss-minify-selectors@npm:7.0.0"
+"postcss-minify-selectors@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "postcss-minify-selectors@npm:7.0.1"
dependencies:
- postcss-selector-parser: "npm:^6.0.16"
+ postcss-selector-parser: "npm:^6.1.0"
peerDependencies:
postcss: ^8.4.31
- checksum: 10c0/6baf0ea71b8dfd01bdb5b516d01aa00244c55cad8d9c674358d735cef2a6aca6586dd480d419cc8d3f470e6d2d7d19354592044f19766993caf9800d3d7e0d36
+ checksum: 10c0/a8ff69657fb1808d8f0f105b13a416426902d6f498a4b7ebb3b96b4b9149e97ee2e2ad6cd98108e2f0b8f781701724e6c51e120e215cee3e40c2d7a2afac755a
languageName: node
linkType: hard
@@ -13926,26 +13934,26 @@ __metadata:
languageName: node
linkType: hard
-"postcss-svgo@npm:^7.0.0":
- version: 7.0.0
- resolution: "postcss-svgo@npm:7.0.0"
+"postcss-svgo@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "postcss-svgo@npm:7.0.1"
dependencies:
postcss-value-parser: "npm:^4.2.0"
- svgo: "npm:^3.2.0"
+ svgo: "npm:^3.3.2"
peerDependencies:
postcss: ^8.4.31
- checksum: 10c0/0e724069b5de83aa2b8f8a4746cb60cb663e0a8bbab0e4ba995649cb0562205af57d1f54b89fb90d8ae04a4b7ac3ac6e3751afffc3cff697cb19f7a36b71b195
+ checksum: 10c0/7c7b177e6f4e2a3e9ada76d53afa02e08d900c8ac15600ba9daa80480269d538405e544bd8091bc5eb7529173a476896fad885a72a247258265424b29a9195ed
languageName: node
linkType: hard
-"postcss-unique-selectors@npm:^7.0.0":
- version: 7.0.0
- resolution: "postcss-unique-selectors@npm:7.0.0"
+"postcss-unique-selectors@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "postcss-unique-selectors@npm:7.0.1"
dependencies:
- postcss-selector-parser: "npm:^6.0.16"
+ postcss-selector-parser: "npm:^6.1.0"
peerDependencies:
postcss: ^8.4.31
- checksum: 10c0/33b532ad0e9271c5a379859e18adfdc72986bb538672cc0fbc06295d824f82dba3f7b57264e18a3214901bc5244ff5408d28b530374d24a088507287c7f520ce
+ checksum: 10c0/6352d71ce2f65265f545831c2ce3686bd71961d08a2247c545d717d93d23b1eb08bb986efc11194d31970eea4cb42207b9aa9a3f4666d75492a6cbf1493cf466
languageName: node
linkType: hard
@@ -16466,15 +16474,15 @@ __metadata:
languageName: node
linkType: hard
-"stylehacks@npm:^7.0.0":
- version: 7.0.0
- resolution: "stylehacks@npm:7.0.0"
+"stylehacks@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "stylehacks@npm:7.0.1"
dependencies:
browserslist: "npm:^4.23.0"
- postcss-selector-parser: "npm:^6.0.16"
+ postcss-selector-parser: "npm:^6.1.0"
peerDependencies:
postcss: ^8.4.31
- checksum: 10c0/c1c0231974ab7922af3a535a9cb78bfe84997767da7defe111cc76d7f10c9e139fe8cb0f9d5bea87b0c0cc0166c82a6ec98a3d6242d7e29ef90adceecfd330ae
+ checksum: 10c0/538d5d9c6d84906efad3706f0873b85b67fa224f17759b122bad3d60f2928c31204fd658dd16ec952bf54858a3aeaef4643e040c04030459285ce1b13c4cae91
languageName: node
linkType: hard
@@ -16699,9 +16707,9 @@ __metadata:
languageName: node
linkType: hard
-"svgo@npm:^3.2.0":
- version: 3.2.0
- resolution: "svgo@npm:3.2.0"
+"svgo@npm:^3.3.2":
+ version: 3.3.2
+ resolution: "svgo@npm:3.3.2"
dependencies:
"@trysound/sax": "npm:0.2.0"
commander: "npm:^7.2.0"
@@ -16712,7 +16720,7 @@ __metadata:
picocolors: "npm:^1.0.0"
bin:
svgo: ./bin/svgo
- checksum: 10c0/28fa9061ccbcf2e3616d48d1feb613aaa05f8f290a329beb0e585914f1864385152934a7d4d683a4609fafbae3d51666633437c359c5c5ef74fb58ad09092a7c
+ checksum: 10c0/a6badbd3d1d6dbb177f872787699ab34320b990d12e20798ecae915f0008796a0f3c69164f1485c9def399e0ce0a5683eb4a8045e51a5e1c364bb13a0d9f79e1
languageName: node
linkType: hard