diff --git a/.github/workflows/check-i18n.yml b/.github/workflows/check-i18n.yml
index 5a1c051966..7c1004329c 100644
--- a/.github/workflows/check-i18n.yml
+++ b/.github/workflows/check-i18n.yml
@@ -18,7 +18,7 @@ permissions:
jobs:
check-i18n:
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
diff --git a/Dockerfile b/Dockerfile
index a5e35025ae..bb29ad21fa 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -191,7 +191,7 @@ FROM build AS libvips
# libvips version to compile, change with [--build-arg VIPS_VERSION="8.15.2"]
# renovate: datasource=github-releases depName=libvips packageName=libvips/libvips
-ARG VIPS_VERSION=8.15.3
+ARG VIPS_VERSION=8.15.5
# libvips download URL, change with [--build-arg VIPS_URL="https://github.com/libvips/libvips/releases/download"]
ARG VIPS_URL=https://github.com/libvips/libvips/releases/download
diff --git a/Gemfile b/Gemfile
index bcb19421ab..6f4559b00f 100644
--- a/Gemfile
+++ b/Gemfile
@@ -61,7 +61,7 @@ gem 'irb', '~> 1.8'
gem 'kaminari', '~> 1.2'
gem 'link_header', '~> 0.0'
gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock'
-gem 'mime-types', '~> 3.5.0', require: 'mime/types/columnar'
+gem 'mime-types', '~> 3.6.0', require: 'mime/types/columnar'
gem 'nokogiri', '~> 1.15'
gem 'oj', '~> 3.14'
gem 'ox', '~> 2.14'
@@ -111,8 +111,8 @@ group :opentelemetry do
gem 'opentelemetry-instrumentation-http_client', '~> 0.22.3', require: false
gem 'opentelemetry-instrumentation-net_http', '~> 0.22.4', require: false
gem 'opentelemetry-instrumentation-pg', '~> 0.29.0', require: false
- gem 'opentelemetry-instrumentation-rack', '~> 0.24.1', require: false
- gem 'opentelemetry-instrumentation-rails', '~> 0.31.0', require: false
+ gem 'opentelemetry-instrumentation-rack', '~> 0.25.0', require: false
+ gem 'opentelemetry-instrumentation-rails', '~> 0.32.0', require: false
gem 'opentelemetry-instrumentation-redis', '~> 0.25.3', require: false
gem 'opentelemetry-instrumentation-sidekiq', '~> 0.25.2', require: false
gem 'opentelemetry-sdk', '~> 1.4', require: false
diff --git a/Gemfile.lock b/Gemfile.lock
index d1ee8e0fa8..103bd80b81 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -100,17 +100,17 @@ GEM
attr_required (1.0.2)
awrence (1.2.1)
aws-eventstream (1.3.0)
- aws-partitions (1.983.0)
- aws-sdk-core (3.209.1)
+ aws-partitions (1.992.0)
+ aws-sdk-core (3.210.0)
aws-eventstream (~> 1, >= 1.3.0)
- aws-partitions (~> 1, >= 1.651.0)
+ aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
jmespath (~> 1, >= 1.6.1)
- aws-sdk-kms (1.94.0)
- aws-sdk-core (~> 3, >= 3.207.0)
+ aws-sdk-kms (1.95.0)
+ aws-sdk-core (~> 3, >= 3.210.0)
aws-sigv4 (~> 1.5)
- aws-sdk-s3 (1.167.0)
- aws-sdk-core (~> 3, >= 3.207.0)
+ aws-sdk-s3 (1.169.0)
+ aws-sdk-core (~> 3, >= 3.210.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.10.0)
@@ -137,7 +137,7 @@ GEM
blurhash (0.1.8)
bootsnap (1.18.4)
msgpack (~> 1.2)
- brakeman (6.2.1)
+ brakeman (6.2.2)
racc
browser (5.3.1)
brpoplpush-redis_script (0.1.3)
@@ -233,7 +233,7 @@ GEM
tzinfo
excon (0.111.0)
fabrication (2.31.0)
- faker (3.4.2)
+ faker (3.5.1)
i18n (>= 1.8.11, < 2)
faraday (1.10.3)
faraday-em_http (~> 1.0)
@@ -429,9 +429,10 @@ GEM
azure-storage-blob (~> 2.0.1)
hashie (~> 5.0)
memory_profiler (1.1.0)
- mime-types (3.5.2)
+ mime-types (3.6.0)
+ logger
mime-types-data (~> 3.2015)
- mime-types-data (3.2024.0820)
+ mime-types-data (3.2024.1001)
mini_mime (1.1.5)
mini_portile2 (2.8.7)
minitest (5.25.1)
@@ -503,7 +504,7 @@ GEM
opentelemetry-semantic_conventions
opentelemetry-helpers-sql-obfuscation (0.2.0)
opentelemetry-common (~> 0.21)
- opentelemetry-instrumentation-action_mailer (0.1.0)
+ opentelemetry-instrumentation-action_mailer (0.2.0)
opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-active_support (~> 0.1)
opentelemetry-instrumentation-base (~> 0.22.1)
@@ -515,13 +516,13 @@ GEM
opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-active_support (~> 0.1)
opentelemetry-instrumentation-base (~> 0.22.1)
- opentelemetry-instrumentation-active_job (0.7.7)
+ opentelemetry-instrumentation-active_job (0.7.8)
opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-active_model_serializers (0.20.2)
opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-base (~> 0.22.1)
- opentelemetry-instrumentation-active_record (0.7.3)
+ opentelemetry-instrumentation-active_record (0.8.0)
opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-active_support (0.6.0)
@@ -553,16 +554,16 @@ GEM
opentelemetry-api (~> 1.0)
opentelemetry-helpers-sql-obfuscation
opentelemetry-instrumentation-base (~> 0.22.1)
- opentelemetry-instrumentation-rack (0.24.6)
+ opentelemetry-instrumentation-rack (0.25.0)
opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-base (~> 0.22.1)
- opentelemetry-instrumentation-rails (0.31.2)
+ opentelemetry-instrumentation-rails (0.32.0)
opentelemetry-api (~> 1.0)
- opentelemetry-instrumentation-action_mailer (~> 0.1.0)
+ opentelemetry-instrumentation-action_mailer (~> 0.2.0)
opentelemetry-instrumentation-action_pack (~> 0.9.0)
opentelemetry-instrumentation-action_view (~> 0.7.0)
opentelemetry-instrumentation-active_job (~> 0.7.0)
- opentelemetry-instrumentation-active_record (~> 0.7.0)
+ opentelemetry-instrumentation-active_record (~> 0.8.0)
opentelemetry-instrumentation-active_support (~> 0.6.0)
opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-redis (0.25.7)
@@ -590,7 +591,7 @@ GEM
parslet (2.0.0)
pastel (0.8.0)
tty-color (~> 0.5)
- pg (1.5.8)
+ pg (1.5.9)
pghero (3.6.1)
activerecord (>= 6.1)
premailer (1.27.0)
@@ -761,7 +762,7 @@ GEM
rubocop-rspec_rails (2.30.0)
rubocop (~> 1.61)
rubocop-rspec (~> 3, >= 3.0.1)
- ruby-prof (1.7.0)
+ ruby-prof (1.7.1)
ruby-progressbar (1.13.0)
ruby-saml (1.17.0)
nokogiri (>= 1.13.10)
@@ -970,7 +971,7 @@ DEPENDENCIES
mario-redis-lock (~> 1.2)
md-paperclip-azure (~> 2.2)
memory_profiler
- mime-types (~> 3.5.0)
+ mime-types (~> 3.6.0)
net-http (~> 0.4.0)
net-ldap (~> 0.18)
nokogiri (~> 1.15)
@@ -991,8 +992,8 @@ DEPENDENCIES
opentelemetry-instrumentation-http_client (~> 0.22.3)
opentelemetry-instrumentation-net_http (~> 0.22.4)
opentelemetry-instrumentation-pg (~> 0.29.0)
- opentelemetry-instrumentation-rack (~> 0.24.1)
- opentelemetry-instrumentation-rails (~> 0.31.0)
+ opentelemetry-instrumentation-rack (~> 0.25.0)
+ opentelemetry-instrumentation-rails (~> 0.32.0)
opentelemetry-instrumentation-redis (~> 0.25.3)
opentelemetry-instrumentation-sidekiq (~> 0.25.2)
opentelemetry-sdk (~> 1.4)
@@ -1057,7 +1058,7 @@ DEPENDENCIES
xorcist (~> 1.1)
RUBY VERSION
- ruby 3.3.4p94
+ ruby 3.3.5p100
BUNDLED WITH
- 2.5.18
+ 2.5.22
diff --git a/app/controllers/api/web/push_subscriptions_controller.rb b/app/controllers/api/web/push_subscriptions_controller.rb
index 167d16fc4d..f515961427 100644
--- a/app/controllers/api/web/push_subscriptions_controller.rb
+++ b/app/controllers/api/web/push_subscriptions_controller.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
class Api::Web::PushSubscriptionsController < Api::Web::BaseController
- before_action :require_user!
+ before_action :require_user!, except: :destroy
before_action :set_push_subscription, only: :update
before_action :destroy_previous_subscriptions, only: :create, if: :prior_subscriptions?
after_action :update_session_with_subscription, only: :create
@@ -17,6 +17,13 @@ class Api::Web::PushSubscriptionsController < Api::Web::BaseController
render json: @push_subscription, serializer: REST::WebPushSubscriptionSerializer
end
+ def destroy
+ push_subscription = ::Web::PushSubscription.find_by_token_for(:unsubscribe, params[:id])
+ push_subscription&.destroy
+
+ head 200
+ end
+
private
def active_session
diff --git a/app/controllers/concerns/auth/captcha_concern.rb b/app/controllers/concerns/auth/captcha_concern.rb
index cfd93978ce..c01da21249 100644
--- a/app/controllers/concerns/auth/captcha_concern.rb
+++ b/app/controllers/concerns/auth/captcha_concern.rb
@@ -10,7 +10,7 @@ module Auth::CaptchaConcern
end
def captcha_available?
- ENV['HCAPTCHA_SECRET_KEY'].present? && ENV['HCAPTCHA_SITE_KEY'].present?
+ Rails.configuration.x.captcha.secret_key.present? && Rails.configuration.x.captcha.site_key.present?
end
def captcha_enabled?
diff --git a/app/helpers/admin/settings_helper.rb b/app/helpers/admin/settings_helper.rb
index 6937331e1a..9b950d5a63 100644
--- a/app/helpers/admin/settings_helper.rb
+++ b/app/helpers/admin/settings_helper.rb
@@ -2,7 +2,7 @@
module Admin::SettingsHelper
def captcha_available?
- ENV['HCAPTCHA_SECRET_KEY'].present? && ENV['HCAPTCHA_SITE_KEY'].present?
+ Rails.configuration.x.captcha.secret_key.present? && Rails.configuration.x.captcha.site_key.present?
end
def login_activity_title(activity)
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 7665c0011a..4901bdbdec 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -120,18 +120,6 @@ module ApplicationHelper
inline_svg_tag 'check.svg'
end
- def visibility_icon(status)
- if status.public_visibility?
- material_symbol('globe', title: I18n.t('statuses.visibilities.public'))
- elsif status.unlisted_visibility?
- material_symbol('lock_open', title: I18n.t('statuses.visibilities.unlisted'))
- elsif status.private_visibility? || status.limited_visibility?
- material_symbol('lock', title: I18n.t('statuses.visibilities.private'))
- elsif status.direct_visibility?
- material_symbol('alternate_email', title: I18n.t('statuses.visibilities.direct'))
- end
- end
-
def interrelationships_icon(relationships, account_id)
if relationships.following[account_id] && relationships.followed_by[account_id]
material_symbol('sync_alt', title: I18n.t('relationships.mutual'), class: 'active passive')
diff --git a/app/helpers/languages_helper.rb b/app/helpers/languages_helper.rb
index 394202e39a..0a8ebcde54 100644
--- a/app/helpers/languages_helper.rb
+++ b/app/helpers/languages_helper.rb
@@ -162,7 +162,7 @@ module LanguagesHelper
th: ['Thai', 'ไทย'].freeze,
ti: ['Tigrinya', 'ትግርኛ'].freeze,
tk: ['Turkmen', 'Türkmen'].freeze,
- tl: ['Tagalog', 'Wikang Tagalog'].freeze,
+ tl: ['Tagalog', 'Tagalog'].freeze,
tn: ['Tswana', 'Setswana'].freeze,
to: ['Tonga', 'faka Tonga'].freeze,
tr: ['Turkish', 'Türkçe'].freeze,
diff --git a/app/javascript/entrypoints/public.tsx b/app/javascript/entrypoints/public.tsx
index d33e00d5da..c1e8418014 100644
--- a/app/javascript/entrypoints/public.tsx
+++ b/app/javascript/entrypoints/public.tsx
@@ -327,31 +327,24 @@ Rails.delegate(document, '.input-copy button', 'click', ({ target }) => {
if (!input) return;
- const oldReadOnly = input.readOnly;
-
- input.readOnly = false;
- input.focus();
- input.select();
- input.setSelectionRange(0, input.value.length);
-
- try {
- if (document.execCommand('copy')) {
- input.blur();
-
+ navigator.clipboard
+ .writeText(input.value)
+ .then(() => {
const parent = target.parentElement;
- if (!parent) return;
- parent.classList.add('copied');
+ if (parent) {
+ parent.classList.add('copied');
- setTimeout(() => {
- parent.classList.remove('copied');
- }, 700);
- }
- } catch (err) {
- console.error(err);
- }
+ setTimeout(() => {
+ parent.classList.remove('copied');
+ }, 700);
+ }
- input.readOnly = oldReadOnly;
+ return true;
+ })
+ .catch((error: unknown) => {
+ console.error(error);
+ });
});
const toggleSidebar = () => {
diff --git a/app/javascript/flavours/glitch/components/button.tsx b/app/javascript/flavours/glitch/components/button.tsx
index 3e720f7cee..b349a83f2b 100644
--- a/app/javascript/flavours/glitch/components/button.tsx
+++ b/app/javascript/flavours/glitch/components/button.tsx
@@ -1,4 +1,4 @@
-import type { PropsWithChildren } from 'react';
+import type { PropsWithChildren, JSX } from 'react';
import { useCallback } from 'react';
import classNames from 'classnames';
diff --git a/app/javascript/flavours/glitch/components/content_warning.tsx b/app/javascript/flavours/glitch/components/content_warning.tsx
index 82f9ca83ed..e7e01ee14c 100644
--- a/app/javascript/flavours/glitch/components/content_warning.tsx
+++ b/app/javascript/flavours/glitch/components/content_warning.tsx
@@ -17,9 +17,15 @@ export const ContentWarning: React.FC<{
aria-expanded={expanded}
>
{expanded ? (
-
+
) : (
-
+
)}
{icons}
diff --git a/app/javascript/flavours/glitch/components/filter_warning.tsx b/app/javascript/flavours/glitch/components/filter_warning.tsx
index 4305e43038..5eaaac4ba3 100644
--- a/app/javascript/flavours/glitch/components/filter_warning.tsx
+++ b/app/javascript/flavours/glitch/components/filter_warning.tsx
@@ -10,13 +10,16 @@ export const FilterWarning: React.FC<{
{chunks},
+ }}
/>
diff --git a/app/javascript/flavours/glitch/components/short_number.tsx b/app/javascript/flavours/glitch/components/short_number.tsx
index a0b523aaad..37201a5e1d 100644
--- a/app/javascript/flavours/glitch/components/short_number.tsx
+++ b/app/javascript/flavours/glitch/components/short_number.tsx
@@ -1,4 +1,5 @@
import { memo } from 'react';
+import type { JSX } from 'react';
import { FormattedMessage, FormattedNumber } from 'react-intl';
diff --git a/app/javascript/flavours/glitch/components/status.jsx b/app/javascript/flavours/glitch/components/status.jsx
index 493ef4f68a..db3e8d77ed 100644
--- a/app/javascript/flavours/glitch/components/status.jsx
+++ b/app/javascript/flavours/glitch/components/status.jsx
@@ -648,7 +648,7 @@ class Status extends ImmutablePureComponent {
media={status.get('media_attachments')}
/>,
);
- } else if (['image', 'gifv'].includes(status.getIn(['media_attachments', 0, 'type'])) || status.get('media_attachments').size > 1) {
+ } else if (['image', 'gifv', 'unknown'].includes(status.getIn(['media_attachments', 0, 'type'])) || status.get('media_attachments').size > 1) {
media.push(
{Component => (
diff --git a/app/javascript/flavours/glitch/components/status_banner.tsx b/app/javascript/flavours/glitch/components/status_banner.tsx
index 8ff17a9b2e..d25c05d6db 100644
--- a/app/javascript/flavours/glitch/components/status_banner.tsx
+++ b/app/javascript/flavours/glitch/components/status_banner.tsx
@@ -1,8 +1,8 @@
import { FormattedMessage } from 'react-intl';
export enum BannerVariant {
- Yellow = 'yellow',
- Blue = 'blue',
+ Warning = 'warning',
+ Filter = 'filter',
}
export const StatusBanner: React.FC<{
@@ -11,9 +11,9 @@ export const StatusBanner: React.FC<{
expanded?: boolean;
onClick?: () => void;
}> = ({ children, variant, expanded, onClick }) => (
-
+ ) : variant === BannerVariant.Warning ? (
+
) : (
)}
-
+
);
diff --git a/app/javascript/flavours/glitch/entrypoints/public.tsx b/app/javascript/flavours/glitch/entrypoints/public.tsx
index 41c0e34396..e8b9825ac9 100644
--- a/app/javascript/flavours/glitch/entrypoints/public.tsx
+++ b/app/javascript/flavours/glitch/entrypoints/public.tsx
@@ -327,31 +327,24 @@ Rails.delegate(document, '.input-copy button', 'click', ({ target }) => {
if (!input) return;
- const oldReadOnly = input.readOnly;
-
- input.readOnly = false;
- input.focus();
- input.select();
- input.setSelectionRange(0, input.value.length);
-
- try {
- if (document.execCommand('copy')) {
- input.blur();
-
+ navigator.clipboard
+ .writeText(input.value)
+ .then(() => {
const parent = target.parentElement;
- if (!parent) return;
- parent.classList.add('copied');
+ if (parent) {
+ parent.classList.add('copied');
- setTimeout(() => {
- parent.classList.remove('copied');
- }, 700);
- }
- } catch (err) {
- console.error(err);
- }
+ setTimeout(() => {
+ parent.classList.remove('copied');
+ }, 700);
+ }
- input.readOnly = oldReadOnly;
+ return true;
+ })
+ .catch((error: unknown) => {
+ console.error(error);
+ });
});
const toggleSidebar = () => {
diff --git a/app/javascript/flavours/glitch/features/notifications_v2/components/notification_follow.tsx b/app/javascript/flavours/glitch/features/notifications_v2/components/notification_follow.tsx
index cabb671815..068f56cd18 100644
--- a/app/javascript/flavours/glitch/features/notifications_v2/components/notification_follow.tsx
+++ b/app/javascript/flavours/glitch/features/notifications_v2/components/notification_follow.tsx
@@ -1,3 +1,5 @@
+import type { JSX } from 'react';
+
import { FormattedMessage } from 'react-intl';
import { Link } from 'react-router-dom';
diff --git a/app/javascript/flavours/glitch/features/notifications_v2/components/notification_group_with_status.tsx b/app/javascript/flavours/glitch/features/notifications_v2/components/notification_group_with_status.tsx
index 99045fa53b..5be3791161 100644
--- a/app/javascript/flavours/glitch/features/notifications_v2/components/notification_group_with_status.tsx
+++ b/app/javascript/flavours/glitch/features/notifications_v2/components/notification_group_with_status.tsx
@@ -1,4 +1,5 @@
import { useMemo } from 'react';
+import type { JSX } from 'react';
import classNames from 'classnames';
diff --git a/app/javascript/flavours/glitch/locales/en.json b/app/javascript/flavours/glitch/locales/en.json
index 3b0439e7ed..e60a2d8720 100644
--- a/app/javascript/flavours/glitch/locales/en.json
+++ b/app/javascript/flavours/glitch/locales/en.json
@@ -154,7 +154,5 @@
"status.is_poll": "This toot is a poll",
"status.local_only": "Only visible from your instance",
"status.show_filter_reason": "Show anyway",
- "status.show_less": "Show less",
- "status.show_more": "Show more",
"status.uncollapse": "Uncollapse"
}
diff --git a/app/javascript/flavours/glitch/reducers/accounts.ts b/app/javascript/flavours/glitch/reducers/accounts.ts
index c9d7b5fe12..cbdfbcd832 100644
--- a/app/javascript/flavours/glitch/reducers/accounts.ts
+++ b/app/javascript/flavours/glitch/reducers/accounts.ts
@@ -57,7 +57,10 @@ export const accountsReducer: Reducer = (
return state.setIn([action.payload.id, 'hidden'], false);
else if (importAccounts.match(action))
return normalizeAccounts(state, action.payload.accounts);
- else if (followAccountSuccess.match(action)) {
+ else if (
+ followAccountSuccess.match(action) &&
+ !action.payload.alreadyFollowing
+ ) {
return state
.update(action.payload.relationship.id, (account) =>
account?.update('followers_count', (n) => n + 1),
diff --git a/app/javascript/flavours/glitch/styles/components.scss b/app/javascript/flavours/glitch/styles/components.scss
index b66312a165..07d225e4eb 100644
--- a/app/javascript/flavours/glitch/styles/components.scss
+++ b/app/javascript/flavours/glitch/styles/components.scss
@@ -11648,19 +11648,21 @@ noscript {
}
.content-warning {
+ display: block;
box-sizing: border-box;
background: rgba($ui-highlight-color, 0.05);
color: $secondary-text-color;
- border-top: 1px solid;
- border-bottom: 1px solid;
- border-color: rgba($ui-highlight-color, 0.15);
+ border: 1px solid rgba($ui-highlight-color, 0.15);
+ border-radius: 8px;
padding: 8px (5px + 8px);
position: relative;
font-size: 15px;
line-height: 22px;
+ cursor: pointer;
p {
margin-bottom: 8px;
+ font-weight: 500;
}
.link-button {
@@ -11669,31 +11671,16 @@ noscript {
font-weight: 500;
}
- &::before,
- &::after {
- content: '';
- display: block;
- position: absolute;
- height: 100%;
- background: url('~images/warning-stripes.svg') repeat-y;
- width: 5px;
- top: 0;
- }
+ &--filter {
+ color: $darker-text-color;
- &::before {
- border-start-start-radius: 4px;
- border-end-start-radius: 4px;
- inset-inline-start: 0;
- }
+ p {
+ font-weight: normal;
+ }
- &::after {
- border-start-end-radius: 4px;
- border-end-end-radius: 4px;
- inset-inline-end: 0;
- }
-
- &--filter::before,
- &--filter::after {
- background-image: url('~images/filter-stripes.svg');
+ .filter-name {
+ font-weight: 500;
+ color: $secondary-text-color;
+ }
}
}
diff --git a/app/javascript/flavours/glitch/styles/mastodon-light/variables.scss b/app/javascript/flavours/glitch/styles/mastodon-light/variables.scss
index 76bdc4022e..777c622ace 100644
--- a/app/javascript/flavours/glitch/styles/mastodon-light/variables.scss
+++ b/app/javascript/flavours/glitch/styles/mastodon-light/variables.scss
@@ -76,4 +76,7 @@ body {
--background-color-tint: rgba(255, 255, 255, 80%);
--background-filter: blur(10px);
--on-surface-color: #{transparentize($ui-base-color, 0.65)};
+ --rich-text-container-color: rgba(255, 216, 231, 100%);
+ --rich-text-text-color: rgba(114, 47, 83, 100%);
+ --rich-text-decorations-color: rgba(255, 175, 212, 100%);
}
diff --git a/app/javascript/flavours/glitch/styles/rich_text.scss b/app/javascript/flavours/glitch/styles/rich_text.scss
index 266a09eb8e..30f89a5710 100644
--- a/app/javascript/flavours/glitch/styles/rich_text.scss
+++ b/app/javascript/flavours/glitch/styles/rich_text.scss
@@ -2,9 +2,29 @@
.e-content,
.edit-indicator__content,
.reply-indicator__content {
+ code {
+ background: var(--rich-text-container-color);
+ padding: 4px;
+ border-radius: 4px;
+ color: var(--rich-text-text-color);
+ font-size: 0.85em;
+ }
+
+ pre {
+ background: var(--rich-text-container-color);
+ padding: 8px;
+ border-radius: 4px;
+ color: var(--rich-text-text-color);
+
+ code {
+ padding: 0;
+ background: transparent;
+ }
+ }
+
pre,
blockquote {
- margin-bottom: 20px;
+ margin-bottom: 22px;
white-space: pre-wrap;
unicode-bidi: plaintext;
@@ -14,19 +34,45 @@
}
blockquote {
- padding-inline-start: 10px;
- border-inline-start: 3px solid $darker-text-color;
- color: $darker-text-color;
+ padding-inline-start: 32px;
+ color: var(--rich-text-text-color);
white-space: normal;
+ position: relative;
- p:last-child {
+ &::before {
+ display: block;
+ content: '';
+ width: 24px;
+ height: 20px;
+ mask-image: url('~images/quote.svg');
+ background-color: var(--rich-text-decorations-color);
+ position: absolute;
+ inset-inline-start: 0;
+ top: 0;
+ }
+
+ blockquote {
+ margin-top: 4px;
+ border-inline-start: 3px solid var(--rich-text-decorations-color);
+ padding-inline-start: 16px;
+
+ &::before {
+ display: none;
+ }
+ }
+
+ p:last-of-type {
margin-bottom: 0;
}
}
& > ul,
& > ol {
- margin-bottom: 20px;
+ margin-bottom: 22px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
}
h1,
@@ -76,7 +122,15 @@
ul,
ol {
- margin-inline-start: 2em;
+ padding-inline-start: 24px;
+
+ li {
+ padding-inline-start: 8px;
+
+ &::marker {
+ text-align: end;
+ }
+ }
p {
margin: 0;
@@ -84,7 +138,11 @@
}
ul {
- list-style-type: disc;
+ list-style-type: '•';
+
+ li::marker {
+ text-align: start;
+ }
}
ol {
diff --git a/app/javascript/flavours/glitch/styles/variables.scss b/app/javascript/flavours/glitch/styles/variables.scss
index d19db06855..0b3bb73fe1 100644
--- a/app/javascript/flavours/glitch/styles/variables.scss
+++ b/app/javascript/flavours/glitch/styles/variables.scss
@@ -122,4 +122,7 @@ $dismiss-overlay-width: 4rem;
--error-background-color: #{darken($error-red, 16%)};
--error-active-background-color: #{darken($error-red, 12%)};
--on-error-color: #fff;
+ --rich-text-container-color: rgba(87, 24, 60, 100%);
+ --rich-text-text-color: rgba(255, 175, 212, 100%);
+ --rich-text-decorations-color: rgba(128, 58, 95, 100%);
}
diff --git a/app/javascript/images/logo_full.svg b/app/javascript/images/logo_full.svg
deleted file mode 100644
index 03bcf93e39..0000000000
--- a/app/javascript/images/logo_full.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/app/javascript/images/logo_transparent.svg b/app/javascript/images/logo_transparent.svg
deleted file mode 100644
index a1e7b403e0..0000000000
--- a/app/javascript/images/logo_transparent.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/app/javascript/images/quote.svg b/app/javascript/images/quote.svg
new file mode 100644
index 0000000000..ae6fbbe04a
--- /dev/null
+++ b/app/javascript/images/quote.svg
@@ -0,0 +1,3 @@
+
diff --git a/app/javascript/mastodon/components/button.tsx b/app/javascript/mastodon/components/button.tsx
index 3e720f7cee..b349a83f2b 100644
--- a/app/javascript/mastodon/components/button.tsx
+++ b/app/javascript/mastodon/components/button.tsx
@@ -1,4 +1,4 @@
-import type { PropsWithChildren } from 'react';
+import type { PropsWithChildren, JSX } from 'react';
import { useCallback } from 'react';
import classNames from 'classnames';
diff --git a/app/javascript/mastodon/components/content_warning.tsx b/app/javascript/mastodon/components/content_warning.tsx
index df8afca74d..c1c879b55d 100644
--- a/app/javascript/mastodon/components/content_warning.tsx
+++ b/app/javascript/mastodon/components/content_warning.tsx
@@ -8,7 +8,7 @@ export const ContentWarning: React.FC<{
diff --git a/app/javascript/mastodon/components/filter_warning.tsx b/app/javascript/mastodon/components/filter_warning.tsx
index 4305e43038..5eaaac4ba3 100644
--- a/app/javascript/mastodon/components/filter_warning.tsx
+++ b/app/javascript/mastodon/components/filter_warning.tsx
@@ -10,13 +10,16 @@ export const FilterWarning: React.FC<{
{chunks},
+ }}
/>
diff --git a/app/javascript/mastodon/components/short_number.tsx b/app/javascript/mastodon/components/short_number.tsx
index a0b523aaad..37201a5e1d 100644
--- a/app/javascript/mastodon/components/short_number.tsx
+++ b/app/javascript/mastodon/components/short_number.tsx
@@ -1,4 +1,5 @@
import { memo } from 'react';
+import type { JSX } from 'react';
import { FormattedMessage, FormattedNumber } from 'react-intl';
diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx
index 46926b4aae..4792136368 100644
--- a/app/javascript/mastodon/components/status.jsx
+++ b/app/javascript/mastodon/components/status.jsx
@@ -449,7 +449,7 @@ class Status extends ImmutablePureComponent {
} else if (status.get('media_attachments').size > 0) {
const language = status.getIn(['translation', 'language']) || status.get('language');
- if (['image', 'gifv'].includes(status.getIn(['media_attachments', 0, 'type'])) || status.get('media_attachments').size > 1) {
+ if (['image', 'gifv', 'unknown'].includes(status.getIn(['media_attachments', 0, 'type'])) || status.get('media_attachments').size > 1) {
media = (
{Component => (
diff --git a/app/javascript/mastodon/components/status_banner.tsx b/app/javascript/mastodon/components/status_banner.tsx
index 8ff17a9b2e..d25c05d6db 100644
--- a/app/javascript/mastodon/components/status_banner.tsx
+++ b/app/javascript/mastodon/components/status_banner.tsx
@@ -1,8 +1,8 @@
import { FormattedMessage } from 'react-intl';
export enum BannerVariant {
- Yellow = 'yellow',
- Blue = 'blue',
+ Warning = 'warning',
+ Filter = 'filter',
}
export const StatusBanner: React.FC<{
@@ -11,9 +11,9 @@ export const StatusBanner: React.FC<{
expanded?: boolean;
onClick?: () => void;
}> = ({ children, variant, expanded, onClick }) => (
-
+ ) : variant === BannerVariant.Warning ? (
+
) : (
)}
-
+
);
diff --git a/app/javascript/mastodon/features/notifications_v2/components/notification_follow.tsx b/app/javascript/mastodon/features/notifications_v2/components/notification_follow.tsx
index 2c90777b9f..78ba260fa9 100644
--- a/app/javascript/mastodon/features/notifications_v2/components/notification_follow.tsx
+++ b/app/javascript/mastodon/features/notifications_v2/components/notification_follow.tsx
@@ -1,3 +1,5 @@
+import type { JSX } from 'react';
+
import { FormattedMessage } from 'react-intl';
import { Link } from 'react-router-dom';
diff --git a/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx b/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx
index 91f8ae2d40..861556620f 100644
--- a/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx
+++ b/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx
@@ -1,4 +1,5 @@
import { useMemo } from 'react';
+import type { JSX } from 'react';
import classNames from 'classnames';
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index 46b7d90dba..f2d37e67a6 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -197,6 +197,7 @@
"confirmations.unfollow.title": "Unfollow user?",
"content_warning.hide": "Hide post",
"content_warning.show": "Show anyway",
+ "content_warning.show_more": "Show more",
"conversation.delete": "Delete conversation",
"conversation.mark_as_read": "Mark as read",
"conversation.open": "View conversation",
@@ -305,7 +306,7 @@
"filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
"filter_modal.select_filter.title": "Filter this post",
"filter_modal.title.status": "Filter a post",
- "filter_warning.matches_filter": "Matches filter “{title}”",
+ "filter_warning.matches_filter": "Matches filter “{title}”",
"filtered_notifications_banner.pending_requests": "From {count, plural, =0 {no one} one {one person} other {# people}} you may know",
"filtered_notifications_banner.title": "Filtered notifications",
"firehose.all": "All",
diff --git a/app/javascript/mastodon/reducers/accounts.ts b/app/javascript/mastodon/reducers/accounts.ts
index 5a9cc7220c..2001353b2e 100644
--- a/app/javascript/mastodon/reducers/accounts.ts
+++ b/app/javascript/mastodon/reducers/accounts.ts
@@ -57,7 +57,10 @@ export const accountsReducer: Reducer = (
return state.setIn([action.payload.id, 'hidden'], false);
else if (importAccounts.match(action))
return normalizeAccounts(state, action.payload.accounts);
- else if (followAccountSuccess.match(action)) {
+ else if (
+ followAccountSuccess.match(action) &&
+ !action.payload.alreadyFollowing
+ ) {
return state
.update(action.payload.relationship.id, (account) =>
account?.update('followers_count', (n) => n + 1),
diff --git a/app/javascript/styles/mastodon-light/variables.scss b/app/javascript/styles/mastodon-light/variables.scss
index 76bdc4022e..777c622ace 100644
--- a/app/javascript/styles/mastodon-light/variables.scss
+++ b/app/javascript/styles/mastodon-light/variables.scss
@@ -76,4 +76,7 @@ body {
--background-color-tint: rgba(255, 255, 255, 80%);
--background-filter: blur(10px);
--on-surface-color: #{transparentize($ui-base-color, 0.65)};
+ --rich-text-container-color: rgba(255, 216, 231, 100%);
+ --rich-text-text-color: rgba(114, 47, 83, 100%);
+ --rich-text-decorations-color: rgba(255, 175, 212, 100%);
}
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index cd68725a02..3385d03ce4 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -11109,19 +11109,21 @@ noscript {
}
.content-warning {
+ display: block;
box-sizing: border-box;
background: rgba($ui-highlight-color, 0.05);
color: $secondary-text-color;
- border-top: 1px solid;
- border-bottom: 1px solid;
- border-color: rgba($ui-highlight-color, 0.15);
+ border: 1px solid rgba($ui-highlight-color, 0.15);
+ border-radius: 8px;
padding: 8px (5px + 8px);
position: relative;
font-size: 15px;
line-height: 22px;
+ cursor: pointer;
p {
margin-bottom: 8px;
+ font-weight: 500;
}
.link-button {
@@ -11130,31 +11132,16 @@ noscript {
font-weight: 500;
}
- &::before,
- &::after {
- content: '';
- display: block;
- position: absolute;
- height: 100%;
- background: url('~images/warning-stripes.svg') repeat-y;
- width: 5px;
- top: 0;
- }
+ &--filter {
+ color: $darker-text-color;
- &::before {
- border-start-start-radius: 4px;
- border-end-start-radius: 4px;
- inset-inline-start: 0;
- }
+ p {
+ font-weight: normal;
+ }
- &::after {
- border-start-end-radius: 4px;
- border-end-end-radius: 4px;
- inset-inline-end: 0;
- }
-
- &--filter::before,
- &--filter::after {
- background-image: url('~images/filter-stripes.svg');
+ .filter-name {
+ font-weight: 500;
+ color: $secondary-text-color;
+ }
}
}
diff --git a/app/javascript/styles/mastodon/rich_text.scss b/app/javascript/styles/mastodon/rich_text.scss
index c57db26e03..0c9237caae 100644
--- a/app/javascript/styles/mastodon/rich_text.scss
+++ b/app/javascript/styles/mastodon/rich_text.scss
@@ -2,9 +2,29 @@
.e-content,
.edit-indicator__content,
.reply-indicator__content {
+ code {
+ background: var(--rich-text-container-color);
+ padding: 4px;
+ border-radius: 4px;
+ color: var(--rich-text-text-color);
+ font-size: 0.85em;
+ }
+
+ pre {
+ background: var(--rich-text-container-color);
+ padding: 8px;
+ border-radius: 4px;
+ color: var(--rich-text-text-color);
+
+ code {
+ padding: 0;
+ background: transparent;
+ }
+ }
+
pre,
blockquote {
- margin-bottom: 20px;
+ margin-bottom: 22px;
white-space: pre-wrap;
unicode-bidi: plaintext;
@@ -14,19 +34,45 @@
}
blockquote {
- padding-inline-start: 10px;
- border-inline-start: 3px solid $darker-text-color;
- color: $darker-text-color;
+ padding-inline-start: 32px;
+ color: var(--rich-text-text-color);
white-space: normal;
+ position: relative;
- p:last-child {
+ &::before {
+ display: block;
+ content: '';
+ width: 24px;
+ height: 20px;
+ mask-image: url('~images/quote.svg');
+ background-color: var(--rich-text-decorations-color);
+ position: absolute;
+ inset-inline-start: 0;
+ top: 0;
+ }
+
+ blockquote {
+ margin-top: 4px;
+ border-inline-start: 3px solid var(--rich-text-decorations-color);
+ padding-inline-start: 16px;
+
+ &::before {
+ display: none;
+ }
+ }
+
+ p:last-of-type {
margin-bottom: 0;
}
}
& > ul,
& > ol {
- margin-bottom: 20px;
+ margin-bottom: 22px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
}
b,
@@ -41,7 +87,15 @@
ul,
ol {
- margin-inline-start: 2em;
+ padding-inline-start: 24px;
+
+ li {
+ padding-inline-start: 8px;
+
+ &::marker {
+ text-align: end;
+ }
+ }
p {
margin: 0;
@@ -49,7 +103,11 @@
}
ul {
- list-style-type: disc;
+ list-style-type: '•';
+
+ li::marker {
+ text-align: start;
+ }
}
ol {
diff --git a/app/javascript/styles/mastodon/variables.scss b/app/javascript/styles/mastodon/variables.scss
index baaec5f58f..fe36e16631 100644
--- a/app/javascript/styles/mastodon/variables.scss
+++ b/app/javascript/styles/mastodon/variables.scss
@@ -116,4 +116,7 @@ $font-monospace: 'mastodon-font-monospace' !default;
--error-background-color: #{darken($error-red, 16%)};
--error-active-background-color: #{darken($error-red, 12%)};
--on-error-color: #fff;
+ --rich-text-container-color: rgba(87, 24, 60, 100%);
+ --rich-text-text-color: rgba(255, 175, 212, 100%);
+ --rich-text-decorations-color: rgba(128, 58, 95, 100%);
}
diff --git a/app/lib/translation_service.rb b/app/lib/translation_service.rb
index bfe5de44f8..ee268d7a7c 100644
--- a/app/lib/translation_service.rb
+++ b/app/lib/translation_service.rb
@@ -8,17 +8,27 @@ class TranslationService
class UnexpectedResponseError < Error; end
def self.configured
- if ENV['DEEPL_API_KEY'].present?
- TranslationService::DeepL.new(ENV.fetch('DEEPL_PLAN', 'free'), ENV['DEEPL_API_KEY'])
- elsif ENV['LIBRE_TRANSLATE_ENDPOINT'].present?
- TranslationService::LibreTranslate.new(ENV['LIBRE_TRANSLATE_ENDPOINT'], ENV['LIBRE_TRANSLATE_API_KEY'])
+ if configuration.deepl[:api_key].present?
+ TranslationService::DeepL.new(
+ configuration.deepl[:plan],
+ configuration.deepl[:api_key]
+ )
+ elsif configuration.libre_translate[:endpoint].present?
+ TranslationService::LibreTranslate.new(
+ configuration.libre_translate[:endpoint],
+ configuration.libre_translate[:api_key]
+ )
else
raise NotConfiguredError
end
end
def self.configured?
- ENV['DEEPL_API_KEY'].present? || ENV['LIBRE_TRANSLATE_ENDPOINT'].present?
+ configuration.deepl[:api_key].present? || configuration.libre_translate[:endpoint].present?
+ end
+
+ def self.configuration
+ Rails.configuration.x.translation
end
def languages
diff --git a/app/models/account.rb b/app/models/account.rb
index 735958db77..6f2636b2b6 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -65,6 +65,8 @@ class Account < ApplicationRecord
)
BACKGROUND_REFRESH_INTERVAL = 1.week.freeze
+ REFRESH_DEADLINE = 6.hours
+ STALE_THRESHOLD = 1.day
DEFAULT_FIELDS_SIZE = (ENV['MAX_PROFILE_FIELDS'] || 4).to_i
INSTANCE_ACTOR_ID = -99
@@ -229,13 +231,13 @@ class Account < ApplicationRecord
end
def possibly_stale?
- last_webfingered_at.nil? || last_webfingered_at <= 1.day.ago
+ last_webfingered_at.nil? || last_webfingered_at <= STALE_THRESHOLD.ago
end
def schedule_refresh_if_stale!
return unless last_webfingered_at.present? && last_webfingered_at <= BACKGROUND_REFRESH_INTERVAL.ago
- AccountRefreshWorker.perform_in(rand(6.hours.to_i), id)
+ AccountRefreshWorker.perform_in(rand(REFRESH_DEADLINE), id)
end
def refresh!
diff --git a/app/models/ip_block.rb b/app/models/ip_block.rb
index d6242efbf7..5ed4d2a846 100644
--- a/app/models/ip_block.rb
+++ b/app/models/ip_block.rb
@@ -36,9 +36,14 @@ class IpBlock < ApplicationRecord
class << self
def blocked?(remote_ip)
- blocked_ips_map = Rails.cache.fetch(CACHE_KEY) { FastIpMap.new(IpBlock.where(severity: :no_access).pluck(:ip)) }
blocked_ips_map.include?(remote_ip)
end
+
+ private
+
+ def blocked_ips_map
+ Rails.cache.fetch(CACHE_KEY) { FastIpMap.new(severity_no_access.pluck(:ip)) }
+ end
end
private
diff --git a/app/models/link_feed.rb b/app/models/link_feed.rb
index 32efb331b6..29ea430cc0 100644
--- a/app/models/link_feed.rb
+++ b/app/models/link_feed.rb
@@ -19,6 +19,8 @@ class LinkFeed < PublicFeed
scope.merge!(discoverable)
scope.merge!(attached_to_preview_card)
+ scope.merge!(account_filters_scope) if account?
+ scope.merge!(language_scope) if account&.chosen_languages.present?
scope.to_a_paginated_by_id(limit, max_id: max_id, since_id: since_id, min_id: min_id)
end
diff --git a/app/models/web/push_subscription.rb b/app/models/web/push_subscription.rb
index 9d30881bf3..656040d2ce 100644
--- a/app/models/web/push_subscription.rb
+++ b/app/models/web/push_subscription.rb
@@ -29,6 +29,8 @@ class Web::PushSubscription < ApplicationRecord
delegate :locale, to: :associated_user
+ generates_token_for :unsubscribe, expires_in: Web::PushNotificationWorker::TTL
+
def pushable?(notification)
policy_allows_notification?(notification) && alert_enabled_for_notification_type?(notification)
end
diff --git a/app/workers/web/push_notification_worker.rb b/app/workers/web/push_notification_worker.rb
index e771928ef3..824e7b5940 100644
--- a/app/workers/web/push_notification_worker.rb
+++ b/app/workers/web/push_notification_worker.rb
@@ -2,10 +2,11 @@
class Web::PushNotificationWorker
include Sidekiq::Worker
+ include RoutingHelper
sidekiq_options queue: 'push', retry: 5
- TTL = 48.hours.to_s
+ TTL = 48.hours
URGENCY = 'normal'
def perform(subscription_id, notification_id)
@@ -23,12 +24,13 @@ class Web::PushNotificationWorker
request.add_headers(
'Content-Type' => 'application/octet-stream',
- 'Ttl' => TTL,
+ 'Ttl' => TTL.to_s,
'Urgency' => URGENCY,
'Content-Encoding' => 'aesgcm',
'Encryption' => "salt=#{Webpush.encode64(payload.fetch(:salt)).delete('=')}",
'Crypto-Key' => "dh=#{Webpush.encode64(payload.fetch(:server_public_key)).delete('=')};#{web_push_request.crypto_key_header}",
- 'Authorization' => web_push_request.authorization_header
+ 'Authorization' => web_push_request.authorization_header,
+ 'Unsubscribe-URL' => subscription_url
)
request.perform do |response|
@@ -72,4 +74,8 @@ class Web::PushNotificationWorker
def request_pool
RequestPool.current
end
+
+ def subscription_url
+ api_web_push_subscription_url(id: @subscription.generate_token_for(:unsubscribe))
+ end
end
diff --git a/config/application.rb b/config/application.rb
index 5e2f44453d..f94366d36f 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -109,6 +109,9 @@ module Mastodon
end
end
+ config.x.captcha = config_for(:captcha)
+ config.x.translation = config_for(:translation)
+
config.to_prepare do
Doorkeeper::AuthorizationsController.layout 'modal'
Doorkeeper::AuthorizedApplicationsController.layout 'admin'
diff --git a/config/captcha.yml b/config/captcha.yml
new file mode 100644
index 0000000000..a9f54588c7
--- /dev/null
+++ b/config/captcha.yml
@@ -0,0 +1,3 @@
+shared:
+ secret_key: <%= ENV.fetch('HCAPTCHA_SECRET_KEY', nil) %>
+ site_key: <%= ENV.fetch('HCAPTCHA_SITE_KEY', nil) %>
diff --git a/config/environments/development.rb b/config/environments/development.rb
index 74f0913da2..f5f22a3c1f 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -16,7 +16,7 @@ Rails.application.configure do
# Show full error reports.
config.consider_all_requests_local = true
- # Enable server timing
+ # Enable server timing.
config.server_timing = true
# Enable/disable caching. By default caching is disabled.
@@ -77,9 +77,6 @@ Rails.application.configure do
# Annotate rendered view with file names.
# config.action_view.annotate_rendered_view_with_filenames = true
- # Uncomment if you wish to allow Action Cable access from any origin.
- # config.action_cable.disable_request_forgery_protection = true
-
config.action_mailer.default_options = { from: 'notifications@localhost' }
# If using a Heroku, Vagrant or generic remote development environment,
@@ -90,7 +87,7 @@ Rails.application.configure do
# TODO: Remove once devise-two-factor data migration complete
config.x.otp_secret = ENV.fetch('OTP_SECRET', '1fc2b87989afa6351912abeebe31ffc5c476ead9bf8b3d74cbc4a302c7b69a45b40b1bbef3506ddad73e942e15ed5ca4b402bf9a66423626051104f4b5f05109')
- # Raise error when a before_action's only/except options reference missing actions
+ # Raise error when a before_action's only/except options reference missing actions.
config.action_controller.raise_on_missing_callback_actions = true
end
diff --git a/config/environments/production.rb b/config/environments/production.rb
index 4a27310dc0..65e43098f1 100644
--- a/config/environments/production.rb
+++ b/config/environments/production.rb
@@ -15,17 +15,14 @@ Rails.application.configure do
config.eager_load = true
# Full error reports are disabled and caching is turned on.
- config.consider_all_requests_local = false
+ config.consider_all_requests_local = false
config.action_controller.perform_caching = true
- config.action_controller.asset_host = ENV['CDN_HOST'] if ENV['CDN_HOST'].present?
+ config.action_controller.asset_host = ENV['CDN_HOST'] if ENV['CDN_HOST'].present?
# Ensures that a master key has been made available in ENV["RAILS_MASTER_KEY"], config/master.key, or an environment
# key such as config/credentials/production.key. This key is used to decrypt credentials (and other encrypted files).
# config.require_master_key = true
- # Compress CSS using a preprocessor.
- # config.assets.css_compressor = :sass
-
# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = false
@@ -42,6 +39,7 @@ Rails.application.configure do
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
config.force_ssl = true
+ # Skip http-to-https redirect for the default health check endpoint.
config.ssl_options = {
redirect: {
exclude: ->(request) { request.path.start_with?('/health') || request.headers['Host'].end_with?('.onion') || request.headers['Host'].end_with?('.i2p') },
@@ -60,7 +58,7 @@ Rails.application.configure do
config.cache_store = :redis_cache_store, REDIS_CONFIGURATION.cache
# Use a real queuing backend for Active Job (and separate queues per environment).
- # config.active_job.queue_adapter = :resque
+ # config.active_job.queue_adapter = :resque
# config.active_job.queue_name_prefix = "mastodon_production"
config.action_mailer.perform_caching = false
@@ -70,7 +68,7 @@ Rails.application.configure do
# config.action_mailer.raise_delivery_errors = false
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
- # English when a translation cannot be found).
+ # the I18n.default_locale when a translation cannot be found).
# This setting would typically be `true` to use the `I18n.default_locale`.
# Some locales are missing translation entries and would have errors:
# https://github.com/mastodon/mastodon/pull/24727
diff --git a/config/environments/test.rb b/config/environments/test.rb
index 716bf8d31f..eb29ab1e17 100644
--- a/config/environments/test.rb
+++ b/config/environments/test.rb
@@ -22,11 +22,11 @@ Rails.application.configure do
config.assets_digest = false
# Show full error reports and disable caching.
- config.consider_all_requests_local = true
+ config.consider_all_requests_local = true
config.action_controller.perform_caching = false
config.cache_store = :memory_store
- # Raise exceptions instead of rendering exception templates.
+ # Render exception templates for rescuable exceptions and raise for other exceptions.
config.action_dispatch.show_exceptions = :rescuable
# Disable request forgery protection in test environment.
@@ -70,7 +70,7 @@ Rails.application.configure do
# Annotate rendered view with file names.
# config.action_view.annotate_rendered_view_with_filenames = true
- # Raise error when a before_action's only/except options reference missing actions
+ # Raise error when a before_action's only/except options reference missing actions.
config.action_controller.raise_on_missing_callback_actions = true
end
diff --git a/config/routes/api.rb b/config/routes/api.rb
index e758c8e526..94e418393d 100644
--- a/config/routes/api.rb
+++ b/config/routes/api.rb
@@ -348,7 +348,7 @@ namespace :api, format: false do
namespace :web do
resource :settings, only: [:update]
resources :embeds, only: [:show]
- resources :push_subscriptions, only: [:create] do
+ resources :push_subscriptions, only: [:create, :destroy] do
member do
put :update
end
diff --git a/config/translation.yml b/config/translation.yml
new file mode 100644
index 0000000000..e074c5d0f2
--- /dev/null
+++ b/config/translation.yml
@@ -0,0 +1,7 @@
+shared:
+ deepl:
+ api_key: <%= ENV.fetch('DEEPL_API_KEY', nil) %>
+ plan: <%= ENV.fetch('DEEPL_PLAN', 'free') %>
+ libre_translate:
+ api_key: <%= ENV.fetch('LIBRE_TRANSLATE_API_KEY', nil) %>
+ endpoint: <%= ENV.fetch('LIBRE_TRANSLATE_ENDPOINT', nil) %>
diff --git a/db/migrate/20241014010506_remove_duplicate_indexes.rb b/db/migrate/20241014010506_remove_duplicate_indexes.rb
new file mode 100644
index 0000000000..50e0e6ffcf
--- /dev/null
+++ b/db/migrate/20241014010506_remove_duplicate_indexes.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class RemoveDuplicateIndexes < ActiveRecord::Migration[7.1]
+ def change
+ remove_index :account_aliases, :account_id
+ remove_index :account_relationship_severance_events, :account_id
+ remove_index :custom_filter_statuses, :status_id
+ remove_index :webauthn_credentials, :user_id
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index ea2c4bfe81..19f27af352 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_10_07_071624) do
+ActiveRecord::Schema[7.1].define(version: 2024_10_14_010506) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -21,7 +21,6 @@ ActiveRecord::Schema[7.1].define(version: 2024_10_07_071624) do
t.datetime "created_at", precision: nil, null: false
t.datetime "updated_at", precision: nil, null: false
t.index ["account_id", "uri"], name: "index_account_aliases_on_account_id_and_uri", unique: true
- t.index ["account_id"], name: "index_account_aliases_on_account_id"
end
create_table "account_conversations", force: :cascade do |t|
@@ -99,7 +98,6 @@ ActiveRecord::Schema[7.1].define(version: 2024_10_07_071624) do
t.integer "followers_count", default: 0, null: false
t.integer "following_count", default: 0, null: false
t.index ["account_id", "relationship_severance_event_id"], name: "idx_on_account_id_relationship_severance_event_id_7bd82bf20e", unique: true
- t.index ["account_id"], name: "index_account_relationship_severance_events_on_account_id"
t.index ["relationship_severance_event_id"], name: "idx_on_relationship_severance_event_id_403f53e707"
end
@@ -397,7 +395,6 @@ ActiveRecord::Schema[7.1].define(version: 2024_10_07_071624) do
t.datetime "updated_at", null: false
t.index ["custom_filter_id"], name: "index_custom_filter_statuses_on_custom_filter_id"
t.index ["status_id", "custom_filter_id"], name: "index_custom_filter_statuses_on_status_id_and_custom_filter_id", unique: true
- t.index ["status_id"], name: "index_custom_filter_statuses_on_status_id"
end
create_table "custom_filters", force: :cascade do |t|
@@ -1205,7 +1202,6 @@ ActiveRecord::Schema[7.1].define(version: 2024_10_07_071624) do
t.datetime "updated_at", precision: nil, null: false
t.index ["external_id"], name: "index_webauthn_credentials_on_external_id", unique: true
t.index ["user_id", "nickname"], name: "index_webauthn_credentials_on_user_id_and_nickname", unique: true
- t.index ["user_id"], name: "index_webauthn_credentials_on_user_id"
end
create_table "webhooks", force: :cascade do |t|
diff --git a/package.json b/package.json
index 81d4d8a017..0c2c3cf99b 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "@mastodon/mastodon",
"license": "AGPL-3.0-or-later",
- "packageManager": "yarn@4.5.0",
+ "packageManager": "yarn@4.5.1",
"engines": {
"node": ">=18"
},
@@ -180,13 +180,13 @@
"eslint": "^8.41.0",
"eslint-define-config": "^2.0.0",
"eslint-import-resolver-typescript": "^3.5.5",
- "eslint-plugin-formatjs": "^4.10.1",
+ "eslint-plugin-formatjs": "^5.0.0",
"eslint-plugin-import": "~2.30.0",
"eslint-plugin-jsdoc": "^50.0.0",
"eslint-plugin-jsx-a11y": "~6.10.0",
"eslint-plugin-promise": "~7.1.0",
"eslint-plugin-react": "^7.33.2",
- "eslint-plugin-react-hooks": "^4.6.0",
+ "eslint-plugin-react-hooks": "^5.0.0",
"husky": "^9.0.11",
"jest": "^29.5.0",
"jest-environment-jsdom": "^29.5.0",
diff --git a/spec/fabricators/account_conversation_fabricator.rb b/spec/fabricators/account_conversation_fabricator.rb
new file mode 100644
index 0000000000..6145ed8254
--- /dev/null
+++ b/spec/fabricators/account_conversation_fabricator.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+Fabricator(:account_conversation) do
+ account
+ conversation
+ status_ids { [Fabricate(:status).id] }
+end
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index 90dc0d36de..486e8c19eb 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -230,28 +230,6 @@ RSpec.describe ApplicationHelper do
end
end
- describe 'visibility_icon' do
- it 'returns a globe icon for a public visible status' do
- result = helper.visibility_icon Status.new(visibility: 'public')
- expect(result).to match(/globe/)
- end
-
- it 'returns an unlock icon for a unlisted visible status' do
- result = helper.visibility_icon Status.new(visibility: 'unlisted')
- expect(result).to match(/lock_open/)
- end
-
- it 'returns a lock icon for a private visible status' do
- result = helper.visibility_icon Status.new(visibility: 'private')
- expect(result).to match(/lock/)
- end
-
- it 'returns an at icon for a direct visible status' do
- result = helper.visibility_icon Status.new(visibility: 'direct')
- expect(result).to match(/alternate_email/)
- end
- end
-
describe 'title' do
it 'returns site title on production environment' do
Setting.site_title = 'site title'
diff --git a/spec/helpers/database_helper_spec.rb b/spec/helpers/database_helper_spec.rb
new file mode 100644
index 0000000000..9ea398bf4c
--- /dev/null
+++ b/spec/helpers/database_helper_spec.rb
@@ -0,0 +1,61 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe DatabaseHelper do
+ context 'when a replica is enabled' do
+ around do |example|
+ ClimateControl.modify REPLICA_DB_NAME: 'prod-relay-quantum-tunnel-mirror' do
+ example.run
+ end
+ end
+
+ before { allow(ApplicationRecord).to receive(:connected_to) }
+
+ describe '#with_read_replica' do
+ it 'uses the replica for connections' do
+ helper.with_read_replica { _x = 1 }
+
+ expect(ApplicationRecord)
+ .to have_received(:connected_to).with(role: :reading, prevent_writes: true)
+ end
+ end
+
+ describe '#with_primary' do
+ it 'uses the primary for connections' do
+ helper.with_primary { _x = 1 }
+
+ expect(ApplicationRecord)
+ .to have_received(:connected_to).with(role: :writing)
+ end
+ end
+ end
+
+ context 'when a replica is not enabled' do
+ around do |example|
+ ClimateControl.modify REPLICA_DB_NAME: nil do
+ example.run
+ end
+ end
+
+ before { allow(ApplicationRecord).to receive(:connected_to) }
+
+ describe '#with_read_replica' do
+ it 'does not use the replica for connections' do
+ helper.with_read_replica { _x = 1 }
+
+ expect(ApplicationRecord)
+ .to_not have_received(:connected_to).with(role: :reading, prevent_writes: true)
+ end
+ end
+
+ describe '#with_primary' do
+ it 'does not use the primary for connections' do
+ helper.with_primary { _x = 1 }
+
+ expect(ApplicationRecord)
+ .to_not have_received(:connected_to).with(role: :writing)
+ end
+ end
+ end
+end
diff --git a/spec/lib/feed_manager_spec.rb b/spec/lib/feed_manager_spec.rb
index b6696f4fd0..0abc515f34 100644
--- a/spec/lib/feed_manager_spec.rb
+++ b/spec/lib/feed_manager_spec.rb
@@ -3,6 +3,8 @@
require 'rails_helper'
RSpec.describe FeedManager do
+ subject { described_class.instance }
+
before do |example|
unless example.metadata[:skip_stub]
stub_const 'FeedManager::MAX_ITEMS', 10
@@ -32,26 +34,26 @@ RSpec.describe FeedManager do
it 'returns false for followee\'s status' do
status = Fabricate(:status, text: 'Hello world', account: alice)
bob.follow!(alice)
- expect(described_class.instance.filter?(:home, status, bob)).to be false
+ expect(subject.filter?(:home, status, bob)).to be false
end
it 'returns false for reblog by followee' do
status = Fabricate(:status, text: 'Hello world', account: jeff)
reblog = Fabricate(:status, reblog: status, account: alice)
bob.follow!(alice)
- expect(described_class.instance.filter?(:home, reblog, bob)).to be false
+ expect(subject.filter?(:home, reblog, bob)).to be false
end
it 'returns true for post from account who blocked me' do
status = Fabricate(:status, text: 'Hello, World', account: alice)
alice.block!(bob)
- expect(described_class.instance.filter?(:home, status, bob)).to be true
+ expect(subject.filter?(:home, status, bob)).to be true
end
it 'returns true for post from blocked account' do
status = Fabricate(:status, text: 'Hello, World', account: alice)
bob.block!(alice)
- expect(described_class.instance.filter?(:home, status, bob)).to be true
+ expect(subject.filter?(:home, status, bob)).to be true
end
it 'returns true for reblog by followee of blocked account' do
@@ -59,7 +61,7 @@ RSpec.describe FeedManager do
reblog = Fabricate(:status, reblog: status, account: alice)
bob.follow!(alice)
bob.block!(jeff)
- expect(described_class.instance.filter?(:home, reblog, bob)).to be true
+ expect(subject.filter?(:home, reblog, bob)).to be true
end
it 'returns true for reblog by followee of muted account' do
@@ -67,7 +69,7 @@ RSpec.describe FeedManager do
reblog = Fabricate(:status, reblog: status, account: alice)
bob.follow!(alice)
bob.mute!(jeff)
- expect(described_class.instance.filter?(:home, reblog, bob)).to be true
+ expect(subject.filter?(:home, reblog, bob)).to be true
end
it 'returns true for reblog by followee of someone who is blocking recipient' do
@@ -75,14 +77,14 @@ RSpec.describe FeedManager do
reblog = Fabricate(:status, reblog: status, account: alice)
bob.follow!(alice)
jeff.block!(bob)
- expect(described_class.instance.filter?(:home, reblog, bob)).to be true
+ expect(subject.filter?(:home, reblog, bob)).to be true
end
it 'returns true for reblog from account with reblogs disabled' do
status = Fabricate(:status, text: 'Hello world', account: jeff)
reblog = Fabricate(:status, reblog: status, account: alice)
bob.follow!(alice, reblogs: false)
- expect(described_class.instance.filter?(:home, reblog, bob)).to be true
+ expect(subject.filter?(:home, reblog, bob)).to be true
end
it 'returns false for reply by followee to another followee' do
@@ -90,49 +92,49 @@ RSpec.describe FeedManager do
reply = Fabricate(:status, text: 'Nay', thread: status, account: alice)
bob.follow!(alice)
bob.follow!(jeff)
- expect(described_class.instance.filter?(:home, reply, bob)).to be false
+ expect(subject.filter?(:home, reply, bob)).to be false
end
it 'returns false for reply by followee to recipient' do
status = Fabricate(:status, text: 'Hello world', account: bob)
reply = Fabricate(:status, text: 'Nay', thread: status, account: alice)
bob.follow!(alice)
- expect(described_class.instance.filter?(:home, reply, bob)).to be false
+ expect(subject.filter?(:home, reply, bob)).to be false
end
it 'returns false for reply by followee to self' do
status = Fabricate(:status, text: 'Hello world', account: alice)
reply = Fabricate(:status, text: 'Nay', thread: status, account: alice)
bob.follow!(alice)
- expect(described_class.instance.filter?(:home, reply, bob)).to be false
+ expect(subject.filter?(:home, reply, bob)).to be false
end
it 'returns true for reply by followee to non-followed account' do
status = Fabricate(:status, text: 'Hello world', account: jeff)
reply = Fabricate(:status, text: 'Nay', thread: status, account: alice)
bob.follow!(alice)
- expect(described_class.instance.filter?(:home, reply, bob)).to be true
+ expect(subject.filter?(:home, reply, bob)).to be true
end
it 'returns true for the second reply by followee to a non-federated status' do
reply = Fabricate(:status, text: 'Reply 1', reply: true, account: alice)
second_reply = Fabricate(:status, text: 'Reply 2', thread: reply, account: alice)
bob.follow!(alice)
- expect(described_class.instance.filter?(:home, second_reply, bob)).to be true
+ expect(subject.filter?(:home, second_reply, bob)).to be true
end
it 'returns false for status by followee mentioning another account' do
bob.follow!(alice)
jeff.follow!(alice)
status = PostStatusService.new.call(alice, text: 'Hey @jeff')
- expect(described_class.instance.filter?(:home, status, bob)).to be false
+ expect(subject.filter?(:home, status, bob)).to be false
end
it 'returns true for status by followee mentioning blocked account' do
bob.block!(jeff)
bob.follow!(alice)
status = PostStatusService.new.call(alice, text: 'Hey @jeff')
- expect(described_class.instance.filter?(:home, status, bob)).to be true
+ expect(subject.filter?(:home, status, bob)).to be true
end
it 'returns true for status by followee mentioning muted account' do
@@ -147,19 +149,19 @@ RSpec.describe FeedManager do
alice.follow!(jeff)
status = Fabricate(:status, text: 'Hello world', account: bob)
reblog = Fabricate(:status, reblog: status, account: jeff)
- expect(described_class.instance.filter?(:home, reblog, alice)).to be true
+ expect(subject.filter?(:home, reblog, alice)).to be true
end
it 'returns true for German post when follow is set to English only' do
alice.follow!(bob, languages: %w(en))
status = Fabricate(:status, text: 'Hallo Welt', account: bob, language: 'de')
- expect(described_class.instance.filter?(:home, status, alice)).to be true
+ expect(subject.filter?(:home, status, alice)).to be true
end
it 'returns false for German post when follow is set to German' do
alice.follow!(bob, languages: %w(de))
status = Fabricate(:status, text: 'Hallo Welt', account: bob, language: 'de')
- expect(described_class.instance.filter?(:home, status, alice)).to be false
+ expect(subject.filter?(:home, status, alice)).to be false
end
it 'returns true for post from followee on exclusive list' do
@@ -168,7 +170,7 @@ RSpec.describe FeedManager do
list.accounts << bob
allow(List).to receive(:where).and_return(list)
status = Fabricate(:status, text: 'I post a lot', account: bob)
- expect(described_class.instance.filter?(:home, status, alice)).to be true
+ expect(subject.filter?(:home, status, alice)).to be true
end
it 'returns true for reblog from followee on exclusive list' do
@@ -178,7 +180,7 @@ RSpec.describe FeedManager do
allow(List).to receive(:where).and_return(list)
status = Fabricate(:status, text: 'I post a lot', account: bob)
reblog = Fabricate(:status, reblog: status, account: jeff)
- expect(described_class.instance.filter?(:home, reblog, alice)).to be true
+ expect(subject.filter?(:home, reblog, alice)).to be true
end
it 'returns false for post from followee on non-exclusive list' do
@@ -186,7 +188,7 @@ RSpec.describe FeedManager do
alice.follow!(bob)
list.accounts << bob
status = Fabricate(:status, text: 'I post a lot', account: bob)
- expect(described_class.instance.filter?(:home, status, alice)).to be false
+ expect(subject.filter?(:home, status, alice)).to be false
end
it 'returns false for reblog from followee on non-exclusive list' do
@@ -195,7 +197,7 @@ RSpec.describe FeedManager do
list.accounts << jeff
status = Fabricate(:status, text: 'I post a lot', account: bob)
reblog = Fabricate(:status, reblog: status, account: jeff)
- expect(described_class.instance.filter?(:home, reblog, alice)).to be false
+ expect(subject.filter?(:home, reblog, alice)).to be false
end
end
@@ -203,27 +205,27 @@ RSpec.describe FeedManager do
it 'returns true for status that mentions blocked account' do
bob.block!(jeff)
status = PostStatusService.new.call(alice, text: 'Hey @jeff')
- expect(described_class.instance.filter?(:mentions, status, bob)).to be true
+ expect(subject.filter?(:mentions, status, bob)).to be true
end
it 'returns true for status that replies to a blocked account' do
status = Fabricate(:status, text: 'Hello world', account: jeff)
reply = Fabricate(:status, text: 'Nay', thread: status, account: alice)
bob.block!(jeff)
- expect(described_class.instance.filter?(:mentions, reply, bob)).to be true
+ expect(subject.filter?(:mentions, reply, bob)).to be true
end
it 'returns false for status by limited account who recipient is not following' do
status = Fabricate(:status, text: 'Hello world', account: alice)
alice.silence!
- expect(described_class.instance.filter?(:mentions, status, bob)).to be false
+ expect(subject.filter?(:mentions, status, bob)).to be false
end
it 'returns false for status by followed limited account' do
status = Fabricate(:status, text: 'Hello world', account: alice)
alice.silence!
bob.follow!(alice)
- expect(described_class.instance.filter?(:mentions, status, bob)).to be false
+ expect(subject.filter?(:mentions, status, bob)).to be false
end
end
end
@@ -235,7 +237,7 @@ RSpec.describe FeedManager do
members = Array.new(described_class::MAX_ITEMS) { |count| [count, count] }
redis.zadd("feed:home:#{account.id}", members)
- described_class.instance.push_to_home(account, status)
+ subject.push_to_home(account, status)
expect(redis.zcard("feed:home:#{account.id}")).to eq described_class::MAX_ITEMS
end
@@ -246,7 +248,7 @@ RSpec.describe FeedManager do
reblogged = Fabricate(:status)
reblog = Fabricate(:status, reblog: reblogged)
- expect(described_class.instance.push_to_home(account, reblog)).to be true
+ expect(subject.push_to_home(account, reblog)).to be true
end
it 'does not save a new reblog of a recent status' do
@@ -254,9 +256,9 @@ RSpec.describe FeedManager do
reblogged = Fabricate(:status)
reblog = Fabricate(:status, reblog: reblogged)
- described_class.instance.push_to_home(account, reblogged)
+ subject.push_to_home(account, reblogged)
- expect(described_class.instance.push_to_home(account, reblog)).to be false
+ expect(subject.push_to_home(account, reblog)).to be false
end
it 'saves a new reblog of an old status' do
@@ -264,14 +266,14 @@ RSpec.describe FeedManager do
reblogged = Fabricate(:status)
reblog = Fabricate(:status, reblog: reblogged)
- described_class.instance.push_to_home(account, reblogged)
+ subject.push_to_home(account, reblogged)
# Fill the feed with intervening statuses
described_class::REBLOG_FALLOFF.times do
- described_class.instance.push_to_home(account, Fabricate(:status))
+ subject.push_to_home(account, Fabricate(:status))
end
- expect(described_class.instance.push_to_home(account, reblog)).to be true
+ expect(subject.push_to_home(account, reblog)).to be true
end
it 'does not save a new reblog of a recently-reblogged status' do
@@ -280,10 +282,10 @@ RSpec.describe FeedManager do
reblogs = Array.new(2) { Fabricate(:status, reblog: reblogged) }
# The first reblog will be accepted
- described_class.instance.push_to_home(account, reblogs.first)
+ subject.push_to_home(account, reblogs.first)
# The second reblog should be ignored
- expect(described_class.instance.push_to_home(account, reblogs.last)).to be false
+ expect(subject.push_to_home(account, reblogs.last)).to be false
end
it 'saves a new reblog of a recently-reblogged status when previous reblog has been deleted' do
@@ -292,15 +294,15 @@ RSpec.describe FeedManager do
old_reblog = Fabricate(:status, reblog: reblogged)
# The first reblog should be accepted
- expect(described_class.instance.push_to_home(account, old_reblog)).to be true
+ expect(subject.push_to_home(account, old_reblog)).to be true
# The first reblog should be successfully removed
- expect(described_class.instance.unpush_from_home(account, old_reblog)).to be true
+ expect(subject.unpush_from_home(account, old_reblog)).to be true
reblog = Fabricate(:status, reblog: reblogged)
# The second reblog should be accepted
- expect(described_class.instance.push_to_home(account, reblog)).to be true
+ expect(subject.push_to_home(account, reblog)).to be true
end
it 'does not save a new reblog of a multiply-reblogged-then-unreblogged status' do
@@ -309,14 +311,14 @@ RSpec.describe FeedManager do
reblogs = Array.new(3) { Fabricate(:status, reblog: reblogged) }
# Accept the reblogs
- described_class.instance.push_to_home(account, reblogs[0])
- described_class.instance.push_to_home(account, reblogs[1])
+ subject.push_to_home(account, reblogs[0])
+ subject.push_to_home(account, reblogs[1])
# Unreblog the first one
- described_class.instance.unpush_from_home(account, reblogs[0])
+ subject.unpush_from_home(account, reblogs[0])
# The last reblog should still be ignored
- expect(described_class.instance.push_to_home(account, reblogs.last)).to be false
+ expect(subject.push_to_home(account, reblogs.last)).to be false
end
it 'saves a new reblog of a long-ago-reblogged status' do
@@ -325,15 +327,15 @@ RSpec.describe FeedManager do
reblogs = Array.new(2) { Fabricate(:status, reblog: reblogged) }
# The first reblog will be accepted
- described_class.instance.push_to_home(account, reblogs.first)
+ subject.push_to_home(account, reblogs.first)
# Fill the feed with intervening statuses
described_class::REBLOG_FALLOFF.times do
- described_class.instance.push_to_home(account, Fabricate(:status))
+ subject.push_to_home(account, Fabricate(:status))
end
# The second reblog should also be accepted
- expect(described_class.instance.push_to_home(account, reblogs.last)).to be true
+ expect(subject.push_to_home(account, reblogs.last)).to be true
end
end
@@ -341,9 +343,9 @@ RSpec.describe FeedManager do
account = Fabricate(:account)
reblog = Fabricate(:status)
status = Fabricate(:status, reblog: reblog)
- described_class.instance.push_to_home(account, status)
+ subject.push_to_home(account, status)
- expect(described_class.instance.push_to_home(account, reblog)).to be false
+ expect(subject.push_to_home(account, reblog)).to be false
end
end
@@ -366,9 +368,9 @@ RSpec.describe FeedManager do
it "does not push when the given status's reblog is already inserted" do
reblog = Fabricate(:status)
status = Fabricate(:status, reblog: reblog)
- described_class.instance.push_to_list(list, status)
+ subject.push_to_list(list, status)
- expect(described_class.instance.push_to_list(list, reblog)).to be false
+ expect(subject.push_to_list(list, reblog)).to be false
end
context 'when replies policy is set to no replies' do
@@ -378,19 +380,19 @@ RSpec.describe FeedManager do
it 'pushes statuses that are not replies' do
status = Fabricate(:status, text: 'Hello world', account: bob)
- expect(described_class.instance.push_to_list(list, status)).to be true
+ expect(subject.push_to_list(list, status)).to be true
end
it 'pushes statuses that are replies to list owner' do
status = Fabricate(:status, text: 'Hello world', account: owner)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(described_class.instance.push_to_list(list, reply)).to be true
+ expect(subject.push_to_list(list, reply)).to be true
end
it 'does not push replies to another member of the list' do
status = Fabricate(:status, text: 'Hello world', account: alice)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(described_class.instance.push_to_list(list, reply)).to be false
+ expect(subject.push_to_list(list, reply)).to be false
end
end
@@ -401,25 +403,25 @@ RSpec.describe FeedManager do
it 'pushes statuses that are not replies' do
status = Fabricate(:status, text: 'Hello world', account: bob)
- expect(described_class.instance.push_to_list(list, status)).to be true
+ expect(subject.push_to_list(list, status)).to be true
end
it 'pushes statuses that are replies to list owner' do
status = Fabricate(:status, text: 'Hello world', account: owner)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(described_class.instance.push_to_list(list, reply)).to be true
+ expect(subject.push_to_list(list, reply)).to be true
end
it 'pushes replies to another member of the list' do
status = Fabricate(:status, text: 'Hello world', account: alice)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(described_class.instance.push_to_list(list, reply)).to be true
+ expect(subject.push_to_list(list, reply)).to be true
end
it 'does not push replies to someone not a member of the list' do
status = Fabricate(:status, text: 'Hello world', account: eve)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(described_class.instance.push_to_list(list, reply)).to be false
+ expect(subject.push_to_list(list, reply)).to be false
end
end
@@ -430,25 +432,25 @@ RSpec.describe FeedManager do
it 'pushes statuses that are not replies' do
status = Fabricate(:status, text: 'Hello world', account: bob)
- expect(described_class.instance.push_to_list(list, status)).to be true
+ expect(subject.push_to_list(list, status)).to be true
end
it 'pushes statuses that are replies to list owner' do
status = Fabricate(:status, text: 'Hello world', account: owner)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(described_class.instance.push_to_list(list, reply)).to be true
+ expect(subject.push_to_list(list, reply)).to be true
end
it 'pushes replies to another member of the list' do
status = Fabricate(:status, text: 'Hello world', account: alice)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(described_class.instance.push_to_list(list, reply)).to be true
+ expect(subject.push_to_list(list, reply)).to be true
end
it 'pushes replies to someone not a member of the list' do
status = Fabricate(:status, text: 'Hello world', account: eve)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(described_class.instance.push_to_list(list, reply)).to be true
+ expect(subject.push_to_list(list, reply)).to be true
end
end
end
@@ -458,9 +460,9 @@ RSpec.describe FeedManager do
account = Fabricate(:account, id: 0)
reblog = Fabricate(:status)
status = Fabricate(:status, reblog: reblog)
- described_class.instance.push_to_home(account, status)
+ subject.push_to_home(account, status)
- described_class.instance.merge_into_home(account, reblog.account)
+ subject.merge_into_home(account, reblog.account)
expect(redis.zscore('feed:home:0', reblog.id)).to be_nil
end
@@ -473,14 +475,14 @@ RSpec.describe FeedManager do
reblogged = Fabricate(:status)
status = Fabricate(:status, reblog: reblogged)
- described_class.instance.push_to_home(receiver, reblogged)
- described_class::REBLOG_FALLOFF.times { described_class.instance.push_to_home(receiver, Fabricate(:status)) }
- described_class.instance.push_to_home(receiver, status)
+ subject.push_to_home(receiver, reblogged)
+ described_class::REBLOG_FALLOFF.times { subject.push_to_home(receiver, Fabricate(:status)) }
+ subject.push_to_home(receiver, status)
# The reblogging status should show up under normal conditions.
expect(redis.zrange("feed:home:#{receiver.id}", 0, -1)).to include(status.id.to_s)
- described_class.instance.unpush_from_home(receiver, status)
+ subject.unpush_from_home(receiver, status)
# Restore original status
expect(redis.zrange("feed:home:#{receiver.id}", 0, -1)).to_not include(status.id.to_s)
@@ -491,12 +493,12 @@ RSpec.describe FeedManager do
reblogged = Fabricate(:status)
status = Fabricate(:status, reblog: reblogged)
- described_class.instance.push_to_home(receiver, status)
+ subject.push_to_home(receiver, status)
# The reblogging status should show up under normal conditions.
expect(redis.zrange("feed:home:#{receiver.id}", 0, -1)).to eq [status.id.to_s]
- described_class.instance.unpush_from_home(receiver, status)
+ subject.unpush_from_home(receiver, status)
expect(redis.zrange("feed:home:#{receiver.id}", 0, -1)).to be_empty
end
@@ -506,14 +508,14 @@ RSpec.describe FeedManager do
reblogs = Array.new(3) { Fabricate(:status, reblog: reblogged) }
reblogs.each do |reblog|
- described_class.instance.push_to_home(receiver, reblog)
+ subject.push_to_home(receiver, reblog)
end
# The reblogging status should show up under normal conditions.
expect(redis.zrange("feed:home:#{receiver.id}", 0, -1)).to eq [reblogs.first.id.to_s]
reblogs[0...-1].each do |reblog|
- described_class.instance.unpush_from_home(receiver, reblog)
+ subject.unpush_from_home(receiver, reblog)
end
expect(redis.zrange("feed:home:#{receiver.id}", 0, -1)).to eq [reblogs.last.id.to_s]
@@ -522,10 +524,10 @@ RSpec.describe FeedManager do
it 'sends push updates' do
status = Fabricate(:status)
- described_class.instance.push_to_home(receiver, status)
+ subject.push_to_home(receiver, status)
allow(redis).to receive_messages(publish: nil)
- described_class.instance.unpush_from_home(receiver, status)
+ subject.unpush_from_home(receiver, status)
deletion = Oj.dump(event: :delete, payload: status.id.to_s)
expect(redis).to have_received(:publish).with("timeline:#{receiver.id}", deletion)
@@ -539,9 +541,9 @@ RSpec.describe FeedManager do
it 'leaves a tagged status' do
status = Fabricate(:status)
status.tags << tag
- described_class.instance.push_to_home(receiver, status)
+ subject.push_to_home(receiver, status)
- described_class.instance.unmerge_tag_from_home(tag, receiver)
+ subject.unmerge_tag_from_home(tag, receiver)
expect(redis.zrange("feed:home:#{receiver.id}", 0, -1)).to_not include(status.id.to_s)
end
@@ -552,9 +554,9 @@ RSpec.describe FeedManager do
status = Fabricate(:status, account: followee)
status.tags << tag
- described_class.instance.push_to_home(receiver, status)
+ subject.push_to_home(receiver, status)
- described_class.instance.unmerge_tag_from_home(tag, receiver)
+ subject.unmerge_tag_from_home(tag, receiver)
expect(redis.zrange("feed:home:#{receiver.id}", 0, -1)).to include(status.id.to_s)
end
@@ -562,9 +564,9 @@ RSpec.describe FeedManager do
it 'remains a tagged status written by receiver' do
status = Fabricate(:status, account: receiver)
status.tags << tag
- described_class.instance.push_to_home(receiver, status)
+ subject.push_to_home(receiver, status)
- described_class.instance.unmerge_tag_from_home(tag, receiver)
+ subject.unmerge_tag_from_home(tag, receiver)
expect(redis.zrange("feed:home:#{receiver.id}", 0, -1)).to include(status.id.to_s)
end
@@ -595,7 +597,7 @@ RSpec.describe FeedManager do
end
it 'correctly cleans the home timeline' do
- described_class.instance.clear_from_home(account, target_account)
+ subject.clear_from_home(account, target_account)
expect(redis.zrange("feed:home:#{account.id}", 0, -1)).to eq [status_from_followed_account_first.id.to_s, status_from_followed_account_next.id.to_s]
end
diff --git a/spec/models/account_alias_spec.rb b/spec/models/account_alias_spec.rb
index fc8c6bd250..17c83967a4 100644
--- a/spec/models/account_alias_spec.rb
+++ b/spec/models/account_alias_spec.rb
@@ -8,4 +8,26 @@ RSpec.describe AccountAlias do
it { is_expected.to normalize(:acct).from(' @username@domain ').to('username@domain') }
end
end
+
+ describe 'Validations' do
+ subject { described_class.new(account:) }
+
+ let(:account) { Fabricate :account }
+
+ it { is_expected.to_not allow_values(nil, '').for(:uri).against(:acct).with_message(not_found_message) }
+
+ it { is_expected.to_not allow_values(account_uri).for(:uri).against(:acct).with_message(self_move_message) }
+
+ def account_uri
+ ActivityPub::TagManager.instance.uri_for(subject.account)
+ end
+
+ def not_found_message
+ I18n.t('migrations.errors.not_found')
+ end
+
+ def self_move_message
+ I18n.t('migrations.errors.move_to_self')
+ end
+ end
end
diff --git a/spec/models/account_migration_spec.rb b/spec/models/account_migration_spec.rb
index d658915ce3..b92771e8f5 100644
--- a/spec/models/account_migration_spec.rb
+++ b/spec/models/account_migration_spec.rb
@@ -9,8 +9,8 @@ RSpec.describe AccountMigration do
end
end
- describe 'validations' do
- subject { described_class.new(account: source_account, acct: target_acct) }
+ describe 'Validations' do
+ subject { Fabricate.build :account_migration, account: source_account }
let(:source_account) { Fabricate(:account) }
let(:target_acct) { target_account.acct }
@@ -26,9 +26,7 @@ RSpec.describe AccountMigration do
allow(service_double).to receive(:call).with(target_acct, anything).and_return(target_account)
end
- it 'passes validations' do
- expect(subject).to be_valid
- end
+ it { is_expected.to allow_value(target_account.acct).for(:acct) }
end
context 'with unresolvable account' do
@@ -40,17 +38,13 @@ RSpec.describe AccountMigration do
allow(service_double).to receive(:call).with(target_acct, anything).and_return(nil)
end
- it 'has errors on acct field' do
- expect(subject).to model_have_error_on_field(:acct)
- end
+ it { is_expected.to_not allow_value(target_acct).for(:acct) }
end
context 'with a space in the domain part' do
let(:target_acct) { 'target@remote. org' }
- it 'has errors on acct field' do
- expect(subject).to model_have_error_on_field(:acct)
- end
+ it { is_expected.to_not allow_value(target_acct).for(:acct) }
end
end
end
diff --git a/spec/models/account_moderation_note_spec.rb b/spec/models/account_moderation_note_spec.rb
index 079774c492..f3bcff4cd6 100644
--- a/spec/models/account_moderation_note_spec.rb
+++ b/spec/models/account_moderation_note_spec.rb
@@ -3,29 +3,24 @@
require 'rails_helper'
RSpec.describe AccountModerationNote do
- describe 'chronological scope' do
- it 'returns account moderation notes oldest to newest' do
- account = Fabricate(:account)
- note1 = Fabricate(:account_moderation_note, target_account: account)
- note2 = Fabricate(:account_moderation_note, target_account: account)
+ describe 'Scopes' do
+ describe '.chronological' do
+ it 'returns account moderation notes oldest to newest' do
+ account = Fabricate(:account)
+ note1 = Fabricate(:account_moderation_note, target_account: account)
+ note2 = Fabricate(:account_moderation_note, target_account: account)
- expect(account.targeted_moderation_notes.chronological).to eq [note1, note2]
+ expect(account.targeted_moderation_notes.chronological).to eq [note1, note2]
+ end
end
end
- describe 'validations' do
- it 'is invalid if the content is empty' do
- report = Fabricate.build(:account_moderation_note, content: '')
- expect(report.valid?).to be false
- end
+ describe 'Validations' do
+ subject { Fabricate.build :account_moderation_note }
- it 'is invalid if content is longer than character limit' do
- report = Fabricate.build(:account_moderation_note, content: comment_over_limit)
- expect(report.valid?).to be false
- end
-
- def comment_over_limit
- Faker::Lorem.paragraph_by_chars(number: described_class::CONTENT_SIZE_LIMIT * 2)
+ describe 'content' do
+ it { is_expected.to_not allow_value('').for(:content) }
+ it { is_expected.to validate_length_of(:content).is_at_most(described_class::CONTENT_SIZE_LIMIT) }
end
end
end
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index a8f6ed7493..7a5deed599 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -10,64 +10,6 @@ RSpec.describe Account do
let(:bob) { Fabricate(:account, username: 'bob') }
- describe '#suspended_locally?' do
- context 'when the account is not suspended' do
- it 'returns false' do
- expect(subject.suspended_locally?).to be false
- end
- end
-
- context 'when the account is suspended locally' do
- before do
- subject.update!(suspended_at: 1.day.ago, suspension_origin: :local)
- end
-
- it 'returns true' do
- expect(subject.suspended_locally?).to be true
- end
- end
-
- context 'when the account is suspended remotely' do
- before do
- subject.update!(suspended_at: 1.day.ago, suspension_origin: :remote)
- end
-
- it 'returns false' do
- expect(subject.suspended_locally?).to be false
- end
- end
- end
-
- describe '#suspend!' do
- it 'marks the account as suspended and creates a deletion request' do
- expect { subject.suspend! }
- .to change(subject, :suspended?).from(false).to(true)
- .and change(subject, :suspended_locally?).from(false).to(true)
- .and(change { AccountDeletionRequest.exists?(account: subject) }.from(false).to(true))
- end
-
- context 'when the account is of a local user' do
- subject { local_user_account }
-
- let!(:local_user_account) { Fabricate(:user, email: 'foo+bar@domain.org').account }
-
- it 'creates a canonical domain block' do
- subject.suspend!
- expect(CanonicalEmailBlock.block?(subject.user_email)).to be true
- end
-
- context 'when a canonical domain block already exists for that email' do
- before do
- Fabricate(:canonical_email_block, email: subject.user_email)
- end
-
- it 'does not raise an error' do
- expect { subject.suspend! }.to_not raise_error
- end
- end
- end
- end
-
describe '#follow!' do
it 'creates a follow' do
follow = subject.follow!(bob)
@@ -208,16 +150,16 @@ RSpec.describe Account do
end
end
- context 'when last_webfingered_at is more than 24 hours before' do
- let(:last_webfingered_at) { 25.hours.ago }
+ context 'when last_webfingered_at is before the threshold' do
+ let(:last_webfingered_at) { (described_class::STALE_THRESHOLD + 1.hour).ago }
it 'returns true' do
expect(account.possibly_stale?).to be true
end
end
- context 'when last_webfingered_at is less than 24 hours before' do
- let(:last_webfingered_at) { 23.hours.ago }
+ context 'when last_webfingered_at is after the threshold' do
+ let(:last_webfingered_at) { (described_class::STALE_THRESHOLD - 1.hour).ago }
it 'returns false' do
expect(account.possibly_stale?).to be false
@@ -752,26 +694,42 @@ RSpec.describe Account do
end
end
- describe '#prepare_contents' do
- subject { Fabricate.build :account, domain: domain, note: ' padded note ', display_name: ' padded name ' }
+ describe 'Callbacks' do
+ describe 'Stripping content when required' do
+ context 'with a remote account' do
+ subject { Fabricate.build :account, domain: 'host.example', note: ' note ', display_name: ' display name ' }
- context 'with local account' do
- let(:domain) { nil }
-
- it 'strips values' do
- expect { subject.valid? }
- .to change(subject, :note).to('padded note')
- .and(change(subject, :display_name).to('padded name'))
+ it 'preserves content' do
+ expect { subject.valid? }
+ .to not_change(subject, :note)
+ .and not_change(subject, :display_name)
+ end
end
- end
- context 'with remote account' do
- let(:domain) { 'host.example' }
+ context 'with a local account' do
+ subject { Fabricate.build :account, domain: nil, note:, display_name: }
- it 'preserves values' do
- expect { subject.valid? }
- .to not_change(subject, :note)
- .and(not_change(subject, :display_name))
+ context 'with populated fields' do
+ let(:note) { ' note ' }
+ let(:display_name) { ' display name ' }
+
+ it 'strips content' do
+ expect { subject.valid? }
+ .to change(subject, :note).to('note')
+ .and change(subject, :display_name).to('display name')
+ end
+ end
+
+ context 'with empty fields' do
+ let(:note) { nil }
+ let(:display_name) { nil }
+
+ it 'preserves content' do
+ expect { subject.valid? }
+ .to not_change(subject, :note)
+ .and not_change(subject, :display_name)
+ end
+ end
end
end
end
@@ -826,22 +784,19 @@ RSpec.describe Account do
end
end
- describe 'validations' do
+ describe 'Validations' do
it { is_expected.to validate_presence_of(:username) }
- context 'when is local' do
- it 'is invalid if the username is not unique in case-insensitive comparison among local accounts' do
- _account = Fabricate(:account, username: 'the_doctor')
- non_unique_account = Fabricate.build(:account, username: 'the_Doctor')
- non_unique_account.valid?
- expect(non_unique_account).to model_have_error_on_field(:username)
+ context 'when account is local' do
+ subject { Fabricate.build :account, domain: nil }
+
+ context 'with an existing differently-cased username account' do
+ before { Fabricate :account, username: 'the_doctor' }
+
+ it { is_expected.to_not allow_value('the_Doctor').for(:username) }
end
- it 'is invalid if the username is reserved' do
- account = Fabricate.build(:account, username: 'support')
- account.valid?
- expect(account).to model_have_error_on_field(:username)
- end
+ it { is_expected.to_not allow_value('support').for(:username) }
it 'is valid when username is reserved but record has already been created' do
account = Fabricate.build(:account, username: 'support')
@@ -849,9 +804,10 @@ RSpec.describe Account do
expect(account.valid?).to be true
end
- it 'is valid if we are creating an instance actor account with a period' do
- account = Fabricate.build(:account, id: described_class::INSTANCE_ACTOR_ID, actor_type: 'Application', locked: true, username: 'example.com')
- expect(account.valid?).to be true
+ context 'with the instance actor' do
+ subject { Fabricate.build :account, id: described_class::INSTANCE_ACTOR_ID, actor_type: 'Application', locked: true }
+
+ it { is_expected.to allow_value('example.com').for(:username) }
end
it 'is valid if we are creating a possibly-conflicting instance actor account' do
@@ -860,81 +816,31 @@ RSpec.describe Account do
expect(instance_account.valid?).to be true
end
- it 'is invalid if the username doesn\'t only contains letters, numbers and underscores' do
- account = Fabricate.build(:account, username: 'the-doctor')
- account.valid?
- expect(account).to model_have_error_on_field(:username)
- end
+ it { is_expected.to_not allow_values('the-doctor', 'the.doctor').for(:username) }
- it 'is invalid if the username contains a period' do
- account = Fabricate.build(:account, username: 'the.doctor')
- account.valid?
- expect(account).to model_have_error_on_field(:username)
- end
+ it { is_expected.to validate_length_of(:username).is_at_most(described_class::USERNAME_LENGTH_LIMIT) }
+ it { is_expected.to validate_length_of(:display_name).is_at_most(described_class::DISPLAY_NAME_LENGTH_LIMIT) }
- it 'is invalid if the username is longer than the character limit' do
- account = Fabricate.build(:account, username: username_over_limit)
- account.valid?
- expect(account).to model_have_error_on_field(:username)
- end
-
- it 'is invalid if the display name is longer than the character limit' do
- account = Fabricate.build(:account, display_name: display_name_over_limit)
- account.valid?
- expect(account).to model_have_error_on_field(:display_name)
- end
-
- it 'is invalid if the note is longer than the character limit' do
- account = Fabricate.build(:account, note: account_note_over_limit)
- account.valid?
- expect(account).to model_have_error_on_field(:note)
- end
+ it { is_expected.to_not allow_values(account_note_over_limit).for(:note) }
end
- context 'when is remote' do
- it 'is invalid if the username is same among accounts in the same normalized domain' do
- Fabricate(:account, domain: 'にゃん', username: 'username')
- account = Fabricate.build(:account, domain: 'xn--r9j5b5b', username: 'username')
- account.valid?
- expect(account).to model_have_error_on_field(:username)
+ context 'when account is remote' do
+ subject { Fabricate.build :account, domain: 'host.example' }
+
+ context 'when a normalized domain account exists' do
+ subject { Fabricate.build :account, domain: 'xn--r9j5b5b' }
+
+ before { Fabricate(:account, domain: 'にゃん', username: 'username') }
+
+ it { is_expected.to_not allow_values('username', 'Username').for(:username) }
end
- it 'is invalid if the username is not unique in case-insensitive comparison among accounts in the same normalized domain' do
- Fabricate(:account, domain: 'にゃん', username: 'username')
- account = Fabricate.build(:account, domain: 'xn--r9j5b5b', username: 'Username')
- account.valid?
- expect(account).to model_have_error_on_field(:username)
- end
+ it { is_expected.to allow_values('the-doctor', username_over_limit).for(:username) }
+ it { is_expected.to_not allow_values('the doctor').for(:username) }
- it 'is valid even if the username contains hyphens' do
- account = Fabricate.build(:account, domain: 'domain', username: 'the-doctor')
- account.valid?
- expect(account).to_not model_have_error_on_field(:username)
- end
+ it { is_expected.to allow_values(display_name_over_limit).for(:display_name) }
- it 'is invalid if the username doesn\'t only contains letters, numbers, underscores and hyphens' do
- account = Fabricate.build(:account, domain: 'domain', username: 'the doctor')
- account.valid?
- expect(account).to model_have_error_on_field(:username)
- end
-
- it 'is valid even if the username is longer than the character limit' do
- account = Fabricate.build(:account, domain: 'domain', username: username_over_limit)
- account.valid?
- expect(account).to_not model_have_error_on_field(:username)
- end
-
- it 'is valid even if the display name is longer than the character limit' do
- account = Fabricate.build(:account, domain: 'domain', display_name: display_name_over_limit)
- account.valid?
- expect(account).to_not model_have_error_on_field(:display_name)
- end
-
- it 'is valid even if the note is longer than the character limit' do
- account = Fabricate.build(:account, domain: 'domain', note: account_note_over_limit)
- account.valid?
- expect(account).to_not model_have_error_on_field(:note)
- end
+ it { is_expected.to allow_values(account_note_over_limit).for(:note) }
end
def username_over_limit
@@ -1085,14 +991,6 @@ RSpec.describe Account do
end
end
- describe 'suspended' do
- it 'returns an array of accounts who are suspended' do
- suspended_account = Fabricate(:account, suspended: true)
- _account = Fabricate(:account, suspended: false)
- expect(described_class.suspended).to contain_exactly(suspended_account)
- end
- end
-
describe 'searchable' do
let!(:suspended_local) { Fabricate(:account, suspended: true, username: 'suspended_local') }
let!(:suspended_remote) { Fabricate(:account, suspended: true, domain: 'example.org', username: 'suspended_remote') }
diff --git a/spec/models/account_statuses_cleanup_policy_spec.rb b/spec/models/account_statuses_cleanup_policy_spec.rb
index c142a0359a..9bbbefa08e 100644
--- a/spec/models/account_statuses_cleanup_policy_spec.rb
+++ b/spec/models/account_statuses_cleanup_policy_spec.rb
@@ -5,13 +5,12 @@ require 'rails_helper'
RSpec.describe AccountStatusesCleanupPolicy do
let(:account) { Fabricate(:account, username: 'alice', domain: nil) }
- describe 'validation' do
- it 'disallow remote accounts' do
- account.update(domain: 'example.com')
- account_statuses_cleanup_policy = Fabricate.build(:account_statuses_cleanup_policy, account: account)
- account_statuses_cleanup_policy.valid?
- expect(account_statuses_cleanup_policy).to model_have_error_on_field(:account)
- end
+ describe 'Validations' do
+ subject { Fabricate.build :account_statuses_cleanup_policy }
+
+ let(:remote_account) { Fabricate(:account, domain: 'example.com') }
+
+ it { is_expected.to_not allow_value(remote_account).for(:account) }
end
describe 'save hooks' do
@@ -339,14 +338,7 @@ RSpec.describe AccountStatusesCleanupPolicy do
end
context 'when policy is set to keep DMs and reject everything else' do
- before do
- account_statuses_cleanup_policy.keep_direct = true
- account_statuses_cleanup_policy.keep_pinned = false
- account_statuses_cleanup_policy.keep_polls = false
- account_statuses_cleanup_policy.keep_media = false
- account_statuses_cleanup_policy.keep_self_fav = false
- account_statuses_cleanup_policy.keep_self_bookmark = false
- end
+ before { establish_policy(keep_direct: true) }
it 'returns every old status except does not return the old direct message for deletion' do
expect(subject.pluck(:id))
@@ -356,14 +348,7 @@ RSpec.describe AccountStatusesCleanupPolicy do
end
context 'when policy is set to keep self-bookmarked toots and reject everything else' do
- before do
- account_statuses_cleanup_policy.keep_direct = false
- account_statuses_cleanup_policy.keep_pinned = false
- account_statuses_cleanup_policy.keep_polls = false
- account_statuses_cleanup_policy.keep_media = false
- account_statuses_cleanup_policy.keep_self_fav = false
- account_statuses_cleanup_policy.keep_self_bookmark = true
- end
+ before { establish_policy(keep_self_bookmark: true) }
it 'returns every old status but does not return the old self-bookmarked message for deletion' do
expect(subject.pluck(:id))
@@ -373,14 +358,7 @@ RSpec.describe AccountStatusesCleanupPolicy do
end
context 'when policy is set to keep self-faved toots and reject everything else' do
- before do
- account_statuses_cleanup_policy.keep_direct = false
- account_statuses_cleanup_policy.keep_pinned = false
- account_statuses_cleanup_policy.keep_polls = false
- account_statuses_cleanup_policy.keep_media = false
- account_statuses_cleanup_policy.keep_self_fav = true
- account_statuses_cleanup_policy.keep_self_bookmark = false
- end
+ before { establish_policy(keep_self_fav: true) }
it 'returns every old status but does not return the old self-faved message for deletion' do
expect(subject.pluck(:id))
@@ -390,14 +368,7 @@ RSpec.describe AccountStatusesCleanupPolicy do
end
context 'when policy is set to keep toots with media and reject everything else' do
- before do
- account_statuses_cleanup_policy.keep_direct = false
- account_statuses_cleanup_policy.keep_pinned = false
- account_statuses_cleanup_policy.keep_polls = false
- account_statuses_cleanup_policy.keep_media = true
- account_statuses_cleanup_policy.keep_self_fav = false
- account_statuses_cleanup_policy.keep_self_bookmark = false
- end
+ before { establish_policy(keep_media: true) }
it 'returns every old status but does not return the old message with media for deletion' do
expect(subject.pluck(:id))
@@ -407,14 +378,7 @@ RSpec.describe AccountStatusesCleanupPolicy do
end
context 'when policy is set to keep toots with polls and reject everything else' do
- before do
- account_statuses_cleanup_policy.keep_direct = false
- account_statuses_cleanup_policy.keep_pinned = false
- account_statuses_cleanup_policy.keep_polls = true
- account_statuses_cleanup_policy.keep_media = false
- account_statuses_cleanup_policy.keep_self_fav = false
- account_statuses_cleanup_policy.keep_self_bookmark = false
- end
+ before { establish_policy(keep_polls: true) }
it 'returns every old status but does not return the old poll message for deletion' do
expect(subject.pluck(:id))
@@ -424,14 +388,7 @@ RSpec.describe AccountStatusesCleanupPolicy do
end
context 'when policy is set to keep pinned toots and reject everything else' do
- before do
- account_statuses_cleanup_policy.keep_direct = false
- account_statuses_cleanup_policy.keep_pinned = true
- account_statuses_cleanup_policy.keep_polls = false
- account_statuses_cleanup_policy.keep_media = false
- account_statuses_cleanup_policy.keep_self_fav = false
- account_statuses_cleanup_policy.keep_self_bookmark = false
- end
+ before { establish_policy(keep_pinned: true) }
it 'returns every old status but does not return the old pinned message for deletion' do
expect(subject.pluck(:id))
@@ -441,14 +398,7 @@ RSpec.describe AccountStatusesCleanupPolicy do
end
context 'when policy is to not keep any special messages' do
- before do
- account_statuses_cleanup_policy.keep_direct = false
- account_statuses_cleanup_policy.keep_pinned = false
- account_statuses_cleanup_policy.keep_polls = false
- account_statuses_cleanup_policy.keep_media = false
- account_statuses_cleanup_policy.keep_self_fav = false
- account_statuses_cleanup_policy.keep_self_bookmark = false
- end
+ before { establish_policy }
it 'returns every old status but does not return the recent or unrelated statuses' do
expect(subject.pluck(:id))
@@ -459,14 +409,7 @@ RSpec.describe AccountStatusesCleanupPolicy do
end
context 'when policy is set to keep every category of toots' do
- before do
- account_statuses_cleanup_policy.keep_direct = true
- account_statuses_cleanup_policy.keep_pinned = true
- account_statuses_cleanup_policy.keep_polls = true
- account_statuses_cleanup_policy.keep_media = true
- account_statuses_cleanup_policy.keep_self_fav = true
- account_statuses_cleanup_policy.keep_self_bookmark = true
- end
+ before { establish_policy(keep_direct: true, keep_pinned: true, keep_polls: true, keep_media: true, keep_self_fav: true, keep_self_bookmark: true) }
it 'returns normal statuses and does not return unrelated old status' do
expect(subject.pluck(:id))
@@ -502,5 +445,24 @@ RSpec.describe AccountStatusesCleanupPolicy do
.and include(very_old_status.id, faved_primary.id, reblogged_primary.id, reblogged_secondary.id)
end
end
+
+ private
+
+ def establish_policy(options = {})
+ default_policy_options.merge(options).each do |attribute, value|
+ account_statuses_cleanup_policy.send :"#{attribute}=", value
+ end
+ end
+
+ def default_policy_options
+ {
+ keep_direct: false,
+ keep_media: false,
+ keep_pinned: false,
+ keep_polls: false,
+ keep_self_bookmark: false,
+ keep_self_fav: false,
+ }
+ end
end
end
diff --git a/spec/models/announcement_spec.rb b/spec/models/announcement_spec.rb
index 8bd1e74b29..884b352cb5 100644
--- a/spec/models/announcement_spec.rb
+++ b/spec/models/announcement_spec.rb
@@ -67,18 +67,30 @@ RSpec.describe Announcement do
it { is_expected.to validate_presence_of(:text) }
describe 'ends_at' do
- it 'validates presence when starts_at is present' do
- record = Fabricate.build(:announcement, starts_at: 1.day.ago)
+ context 'when starts_at is present' do
+ subject { Fabricate.build :announcement, starts_at: 1.day.ago }
- expect(record).to_not be_valid
- expect(record.errors[:ends_at]).to be_present
+ it { is_expected.to validate_presence_of(:ends_at) }
end
- it 'does not validate presence when starts_at is missing' do
- record = Fabricate.build(:announcement, starts_at: nil)
+ context 'when starts_at is missing' do
+ subject { Fabricate.build :announcement, starts_at: nil }
- expect(record).to be_valid
- expect(record.errors[:ends_at]).to_not be_present
+ it { is_expected.to_not validate_presence_of(:ends_at) }
+ end
+ end
+
+ describe 'starts_at' do
+ context 'when ends_at is present' do
+ subject { Fabricate.build :announcement, ends_at: 1.day.ago }
+
+ it { is_expected.to validate_presence_of(:starts_at) }
+ end
+
+ context 'when ends_at is missing' do
+ subject { Fabricate.build :announcement, ends_at: nil }
+
+ it { is_expected.to_not validate_presence_of(:starts_at) }
end
end
end
diff --git a/spec/models/appeal_spec.rb b/spec/models/appeal_spec.rb
index 7e324582ed..e974ff9254 100644
--- a/spec/models/appeal_spec.rb
+++ b/spec/models/appeal_spec.rb
@@ -4,20 +4,85 @@ require 'rails_helper'
RSpec.describe Appeal do
describe 'Validations' do
- it 'validates text length is under limit' do
- appeal = Fabricate.build(
- :appeal,
- strike: Fabricate(:account_warning),
- text: 'a' * described_class::TEXT_LENGTH_LIMIT * 2
- )
+ subject { Fabricate.build :appeal, strike: Fabricate(:account_warning) }
- expect(appeal).to_not be_valid
- expect(appeal).to model_have_error_on_field(:text)
+ it { is_expected.to validate_length_of(:text).is_at_most(described_class::TEXT_LENGTH_LIMIT) }
+
+ context 'with a strike created too long ago' do
+ let(:strike) { Fabricate.build :account_warning, created_at: 100.days.ago }
+
+ it { is_expected.to_not allow_values(strike).for(:strike).against(:base).on(:create) }
end
end
- describe 'scopes' do
- describe 'approved' do
+ describe 'Query methods' do
+ describe '#pending?' do
+ subject { Fabricate.build :appeal, approved_at:, rejected_at: }
+
+ context 'with not approved and not rejected' do
+ let(:approved_at) { nil }
+ let(:rejected_at) { nil }
+
+ it { expect(subject).to be_pending }
+ end
+
+ context 'with approved and rejected' do
+ let(:approved_at) { 1.day.ago }
+ let(:rejected_at) { 1.day.ago }
+
+ it { expect(subject).to_not be_pending }
+ end
+
+ context 'with approved and not rejected' do
+ let(:approved_at) { 1.day.ago }
+ let(:rejected_at) { nil }
+
+ it { expect(subject).to_not be_pending }
+ end
+
+ context 'with not approved and rejected' do
+ let(:approved_at) { nil }
+ let(:rejected_at) { 1.day.ago }
+
+ it { expect(subject).to_not be_pending }
+ end
+ end
+
+ describe '#approved?' do
+ subject { Fabricate.build :appeal, approved_at: }
+
+ context 'with not approved' do
+ let(:approved_at) { nil }
+
+ it { expect(subject).to_not be_approved }
+ end
+
+ context 'with approved' do
+ let(:approved_at) { 1.day.ago }
+
+ it { expect(subject).to be_approved }
+ end
+ end
+
+ describe '#rejected?' do
+ subject { Fabricate.build :appeal, rejected_at: }
+
+ context 'with not rejected' do
+ let(:rejected_at) { nil }
+
+ it { expect(subject).to_not be_rejected }
+ end
+
+ context 'with rejected' do
+ let(:rejected_at) { 1.day.ago }
+
+ it { expect(subject).to be_rejected }
+ end
+ end
+ end
+
+ describe 'Scopes' do
+ describe '.approved' do
let(:approved_appeal) { Fabricate(:appeal, approved_at: 10.days.ago) }
let(:not_approved_appeal) { Fabricate(:appeal, approved_at: nil) }
@@ -27,7 +92,7 @@ RSpec.describe Appeal do
end
end
- describe 'rejected' do
+ describe '.rejected' do
let(:rejected_appeal) { Fabricate(:appeal, rejected_at: 10.days.ago) }
let(:not_rejected_appeal) { Fabricate(:appeal, rejected_at: nil) }
@@ -37,7 +102,7 @@ RSpec.describe Appeal do
end
end
- describe 'pending' do
+ describe '.pending' do
let(:approved_appeal) { Fabricate(:appeal, approved_at: 10.days.ago) }
let(:rejected_appeal) { Fabricate(:appeal, rejected_at: 10.days.ago) }
let(:pending_appeal) { Fabricate(:appeal, rejected_at: nil, approved_at: nil) }
diff --git a/spec/models/concerns/account/suspensions_spec.rb b/spec/models/concerns/account/suspensions_spec.rb
new file mode 100644
index 0000000000..3d71f1b723
--- /dev/null
+++ b/spec/models/concerns/account/suspensions_spec.rb
@@ -0,0 +1,65 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Account::Suspensions do
+ subject { Fabricate(:account) }
+
+ describe '.suspended' do
+ let!(:suspended_account) { Fabricate :account, suspended: true }
+
+ before { Fabricate :account, suspended: false }
+
+ it 'returns accounts that are suspended' do
+ expect(Account.suspended)
+ .to contain_exactly(suspended_account)
+ end
+ end
+
+ describe '#suspended_locally?' do
+ context 'when the account is not suspended' do
+ it { is_expected.to_not be_suspended_locally }
+ end
+
+ context 'when the account is suspended locally' do
+ before { subject.update!(suspended_at: 1.day.ago, suspension_origin: :local) }
+
+ it { is_expected.to be_suspended_locally }
+ end
+
+ context 'when the account is suspended remotely' do
+ before { subject.update!(suspended_at: 1.day.ago, suspension_origin: :remote) }
+
+ it { is_expected.to_not be_suspended_locally }
+ end
+ end
+
+ describe '#suspend!' do
+ it 'marks the account as suspended and creates a deletion request' do
+ expect { subject.suspend! }
+ .to change(subject, :suspended?).from(false).to(true)
+ .and change(subject, :suspended_locally?).from(false).to(true)
+ .and(change { AccountDeletionRequest.exists?(account: subject) }.from(false).to(true))
+ end
+
+ context 'when the account is of a local user' do
+ subject { local_user_account }
+
+ let!(:local_user_account) { Fabricate(:user, email: 'foo+bar@domain.org').account }
+
+ it 'creates a canonical domain block' do
+ expect { subject.suspend! }
+ .to change { CanonicalEmailBlock.block?(subject.user_email) }.from(false).to(true)
+ end
+
+ context 'when a canonical domain block already exists for that email' do
+ before { Fabricate(:canonical_email_block, email: subject.user_email) }
+
+ it 'does not raise an error' do
+ expect { subject.suspend! }
+ .to_not raise_error
+ end
+ end
+ end
+ end
+end
diff --git a/spec/models/domain_allow_spec.rb b/spec/models/domain_allow_spec.rb
index d8f438f07e..fbb324657e 100644
--- a/spec/models/domain_allow_spec.rb
+++ b/spec/models/domain_allow_spec.rb
@@ -6,11 +6,10 @@ RSpec.describe DomainAllow do
describe 'Validations' do
it { is_expected.to validate_presence_of(:domain) }
- it 'is invalid if the same normalized domain already exists' do
- _domain_allow = Fabricate(:domain_allow, domain: 'にゃん')
- domain_allow_with_normalized_value = Fabricate.build(:domain_allow, domain: 'xn--r9j5b5b')
- domain_allow_with_normalized_value.valid?
- expect(domain_allow_with_normalized_value).to model_have_error_on_field(:domain)
+ context 'when a normalized domain exists' do
+ before { Fabricate(:domain_allow, domain: 'にゃん') }
+
+ it { is_expected.to_not allow_value('xn--r9j5b5b').for(:domain) }
end
end
end
diff --git a/spec/models/follow_spec.rb b/spec/models/follow_spec.rb
index f22bd6ea88..8684170dcf 100644
--- a/spec/models/follow_spec.rb
+++ b/spec/models/follow_spec.rb
@@ -3,27 +3,26 @@
require 'rails_helper'
RSpec.describe Follow do
- let(:alice) { Fabricate(:account, username: 'alice') }
- let(:bob) { Fabricate(:account, username: 'bob') }
-
- describe 'validations' do
- subject { described_class.new(account: alice, target_account: bob, rate_limit: true) }
-
+ describe 'Associations' do
it { is_expected.to belong_to(:account).required }
it { is_expected.to belong_to(:target_account).required }
+ end
- it 'is invalid if account already follows too many people' do
- alice.update(following_count: FollowLimitValidator::LIMIT)
+ describe 'Validations' do
+ subject { Fabricate.build :follow, rate_limit: true }
- expect(subject).to_not be_valid
- expect(subject).to model_have_error_on_field(:base)
+ let(:account) { Fabricate(:account) }
+
+ context 'when account follows too many people' do
+ before { account.update(following_count: FollowLimitValidator::LIMIT) }
+
+ it { is_expected.to_not allow_value(account).for(:account).against(:base) }
end
- it 'is valid if account is only on the brink of following too many people' do
- alice.update(following_count: FollowLimitValidator::LIMIT - 1)
+ context 'when account is on brink of following too many people' do
+ before { account.update(following_count: FollowLimitValidator::LIMIT - 1) }
- expect(subject).to be_valid
- expect(subject).to_not model_have_error_on_field(:base)
+ it { is_expected.to allow_value(account).for(:account).against(:base) }
end
end
@@ -54,4 +53,58 @@ RSpec.describe Follow do
expect(account.requested?(target_account)).to be true
end
end
+
+ describe '#local?' do
+ it { is_expected.to_not be_local }
+ end
+
+ describe 'Callbacks' do
+ describe 'Setting a URI' do
+ context 'when URI exists' do
+ subject { Fabricate.build :follow, uri: 'https://uri/value' }
+
+ it 'does not change' do
+ expect { subject.save }
+ .to not_change(subject, :uri)
+ end
+ end
+
+ context 'when URI is blank' do
+ subject { Fabricate.build :follow, uri: nil }
+
+ it 'populates the value' do
+ expect { subject.save }
+ .to change(subject, :uri).to(be_present)
+ end
+ end
+ end
+
+ describe 'Maintaining counters' do
+ subject { Fabricate.build :follow, account:, target_account: }
+
+ let(:account) { Fabricate :account }
+ let(:target_account) { Fabricate :account }
+
+ before do
+ account.account_stat.update following_count: 123
+ target_account.account_stat.update followers_count: 123
+ end
+
+ describe 'saving the follow' do
+ it 'increments counters' do
+ expect { subject.save }
+ .to change(account, :following_count).by(1)
+ .and(change(target_account, :followers_count).by(1))
+ end
+ end
+
+ describe 'destroying the follow' do
+ it 'decrements counters' do
+ expect { subject.destroy }
+ .to change(account, :following_count).by(-1)
+ .and(change(target_account, :followers_count).by(-1))
+ end
+ end
+ end
+ end
end
diff --git a/spec/models/form/admin_settings_spec.rb b/spec/models/form/admin_settings_spec.rb
index 6080b9e081..73106f2b69 100644
--- a/spec/models/form/admin_settings_spec.rb
+++ b/spec/models/form/admin_settings_spec.rb
@@ -3,33 +3,17 @@
require 'rails_helper'
RSpec.describe Form::AdminSettings do
- describe 'validations' do
+ describe 'Validations' do
describe 'site_contact_username' do
context 'with no accounts' do
- it 'is not valid' do
- setting = described_class.new(site_contact_username: 'Test')
- setting.valid?
-
- expect(setting).to model_have_error_on_field(:site_contact_username)
- end
+ it { is_expected.to_not allow_value('Test').for(:site_contact_username) }
end
context 'with an account' do
before { Fabricate(:account, username: 'Glorp') }
- it 'is not valid when account doesnt match' do
- setting = described_class.new(site_contact_username: 'Test')
- setting.valid?
-
- expect(setting).to model_have_error_on_field(:site_contact_username)
- end
-
- it 'is valid when account matches' do
- setting = described_class.new(site_contact_username: 'Glorp')
- setting.valid?
-
- expect(setting).to_not model_have_error_on_field(:site_contact_username)
- end
+ it { is_expected.to_not allow_value('Test').for(:site_contact_username) }
+ it { is_expected.to allow_value('Glorp').for(:site_contact_username) }
end
end
end
diff --git a/spec/models/ip_block_spec.rb b/spec/models/ip_block_spec.rb
index ac9f5db601..b85856780a 100644
--- a/spec/models/ip_block_spec.rb
+++ b/spec/models/ip_block_spec.rb
@@ -3,18 +3,13 @@
require 'rails_helper'
RSpec.describe IpBlock do
- describe 'validations' do
+ describe 'Validations' do
+ subject { Fabricate.build :ip_block }
+
it { is_expected.to validate_presence_of(:ip) }
it { is_expected.to validate_presence_of(:severity) }
- it 'validates ip uniqueness', :aggregate_failures do
- described_class.create!(ip: '127.0.0.1', severity: :no_access)
-
- ip_block = described_class.new(ip: '127.0.0.1', severity: :no_access)
-
- expect(ip_block).to_not be_valid
- expect(ip_block).to model_have_error_on_field(:ip)
- end
+ it { is_expected.to validate_uniqueness_of(:ip) }
end
describe '#to_log_human_identifier' do
diff --git a/spec/models/preview_card_spec.rb b/spec/models/preview_card_spec.rb
index c0bc2b6e0e..0fe76c37b0 100644
--- a/spec/models/preview_card_spec.rb
+++ b/spec/models/preview_card_spec.rb
@@ -9,26 +9,10 @@ RSpec.describe PreviewCard do
end
end
- describe 'validations' do
- describe 'urls' do
- it 'allows http schemes' do
- record = described_class.new(url: 'http://example.host/path')
-
- expect(record).to be_valid
- end
-
- it 'allows https schemes' do
- record = described_class.new(url: 'https://example.host/path')
-
- expect(record).to be_valid
- end
-
- it 'does not allow javascript: schemes' do
- record = described_class.new(url: 'javascript:alert()')
-
- expect(record).to_not be_valid
- expect(record).to model_have_error_on_field(:url)
- end
+ describe 'Validations' do
+ describe 'url' do
+ it { is_expected.to allow_values('http://example.host/path', 'https://example.host/path').for(:url) }
+ it { is_expected.to_not allow_value('javascript:alert()').for(:url) }
end
end
end
diff --git a/spec/models/report_note_spec.rb b/spec/models/report_note_spec.rb
index 417971c9a1..0d1c0f619e 100644
--- a/spec/models/report_note_spec.rb
+++ b/spec/models/report_note_spec.rb
@@ -3,29 +3,24 @@
require 'rails_helper'
RSpec.describe ReportNote do
- describe 'chronological scope' do
- it 'returns report notes oldest to newest' do
- report = Fabricate(:report)
- note1 = Fabricate(:report_note, report: report)
- note2 = Fabricate(:report_note, report: report)
+ describe 'Scopes' do
+ describe '.chronological' do
+ it 'returns report notes oldest to newest' do
+ report = Fabricate(:report)
+ note1 = Fabricate(:report_note, report: report)
+ note2 = Fabricate(:report_note, report: report)
- expect(report.notes.chronological).to eq [note1, note2]
+ expect(report.notes.chronological).to eq [note1, note2]
+ end
end
end
- describe 'validations' do
- it 'is invalid if the content is empty' do
- report = Fabricate.build(:report_note, content: '')
- expect(report.valid?).to be false
- end
+ describe 'Validations' do
+ subject { Fabricate.build :report_note }
- it 'is invalid if content is longer than character limit' do
- report = Fabricate.build(:report_note, content: comment_over_limit)
- expect(report.valid?).to be false
- end
-
- def comment_over_limit
- Faker::Lorem.paragraph_by_chars(number: described_class::CONTENT_SIZE_LIMIT * 2)
+ describe 'content' do
+ it { is_expected.to_not allow_value('').for(:content) }
+ it { is_expected.to validate_length_of(:content).is_at_most(described_class::CONTENT_SIZE_LIMIT) }
end
end
end
diff --git a/spec/models/webauthn_credential_spec.rb b/spec/models/webauthn_credential_spec.rb
index c4105d9150..067c696c13 100644
--- a/spec/models/webauthn_credential_spec.rb
+++ b/spec/models/webauthn_credential_spec.rb
@@ -3,53 +3,17 @@
require 'rails_helper'
RSpec.describe WebauthnCredential do
- describe 'validations' do
+ describe 'Validations' do
+ subject { Fabricate.build :webauthn_credential }
+
it { is_expected.to validate_presence_of(:external_id) }
it { is_expected.to validate_presence_of(:public_key) }
it { is_expected.to validate_presence_of(:nickname) }
it { is_expected.to validate_presence_of(:sign_count) }
- it 'is invalid if already exist a webauthn credential with the same external id' do
- Fabricate(:webauthn_credential, external_id: '_Typ0ygudDnk9YUVWLQayw')
- new_webauthn_credential = Fabricate.build(:webauthn_credential, external_id: '_Typ0ygudDnk9YUVWLQayw')
+ it { is_expected.to validate_uniqueness_of(:external_id) }
+ it { is_expected.to validate_uniqueness_of(:nickname).scoped_to(:user_id) }
- new_webauthn_credential.valid?
-
- expect(new_webauthn_credential).to model_have_error_on_field(:external_id)
- end
-
- it 'is invalid if user already registered a webauthn credential with the same nickname' do
- user = Fabricate(:user)
- Fabricate(:webauthn_credential, user_id: user.id, nickname: 'USB Key')
- new_webauthn_credential = Fabricate.build(:webauthn_credential, user_id: user.id, nickname: 'USB Key')
-
- new_webauthn_credential.valid?
-
- expect(new_webauthn_credential).to model_have_error_on_field(:nickname)
- end
-
- it 'is invalid if sign_count is not a number' do
- webauthn_credential = Fabricate.build(:webauthn_credential, sign_count: 'invalid sign_count')
-
- webauthn_credential.valid?
-
- expect(webauthn_credential).to model_have_error_on_field(:sign_count)
- end
-
- it 'is invalid if sign_count is negative number' do
- webauthn_credential = Fabricate.build(:webauthn_credential, sign_count: -1)
-
- webauthn_credential.valid?
-
- expect(webauthn_credential).to model_have_error_on_field(:sign_count)
- end
-
- it 'is invalid if sign_count is greater than the limit' do
- webauthn_credential = Fabricate.build(:webauthn_credential, sign_count: (described_class::SIGN_COUNT_LIMIT * 2))
-
- webauthn_credential.valid?
-
- expect(webauthn_credential).to model_have_error_on_field(:sign_count)
- end
+ it { is_expected.to validate_numericality_of(:sign_count).only_integer.is_greater_than_or_equal_to(0).is_less_than_or_equal_to(described_class::SIGN_COUNT_LIMIT - 1) }
end
end
diff --git a/spec/requests/activitypub/likes_spec.rb b/spec/requests/activitypub/likes_spec.rb
new file mode 100644
index 0000000000..d780ad5168
--- /dev/null
+++ b/spec/requests/activitypub/likes_spec.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe 'ActivityPub Likes' do
+ let(:account) { Fabricate(:account) }
+ let(:status) { Fabricate :status, account: account }
+
+ before { Fabricate :favourite, status: status }
+
+ describe 'GET /accounts/:account_username/statuses/:status_id/likes' do
+ it 'returns http success and activity json types and correct items count' do
+ get account_status_likes_path(account, status)
+
+ expect(response)
+ .to have_http_status(200)
+ expect(response.media_type)
+ .to eq 'application/activity+json'
+
+ expect(response.parsed_body)
+ .to include(type: 'Collection')
+ .and include(totalItems: 1)
+ end
+ end
+end
diff --git a/spec/requests/activitypub/shares_spec.rb b/spec/requests/activitypub/shares_spec.rb
new file mode 100644
index 0000000000..956bc7d201
--- /dev/null
+++ b/spec/requests/activitypub/shares_spec.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe 'ActivityPub Shares' do
+ let(:account) { Fabricate(:account) }
+ let(:status) { Fabricate :status, account: account }
+
+ before { Fabricate :status, reblog: status }
+
+ describe 'GET /accounts/:account_username/statuses/:status_id/shares' do
+ it 'returns http success and activity json types and correct items count' do
+ get account_status_shares_path(account, status)
+
+ expect(response)
+ .to have_http_status(200)
+ expect(response.media_type)
+ .to eq 'application/activity+json'
+
+ expect(response.parsed_body)
+ .to include(type: 'Collection')
+ .and include(totalItems: 1)
+ end
+ end
+end
diff --git a/spec/requests/api/v1/domain_blocks/previews_spec.rb b/spec/requests/api/v1/domain_blocks/previews_spec.rb
new file mode 100644
index 0000000000..eb191f436b
--- /dev/null
+++ b/spec/requests/api/v1/domain_blocks/previews_spec.rb
@@ -0,0 +1,36 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe 'Domain Blocks Previews API' do
+ let(:user) { Fabricate(:user) }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
+ let(:scopes) { 'write:blocks' }
+ let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }
+ let(:account) { Fabricate(:account, user: user) }
+
+ describe 'GET /api/v1/domain_blocks/preview' do
+ subject { get '/api/v1/domain_blocks/preview', params: { domain: domain }, headers: headers }
+
+ let(:domain) { 'host.example' }
+
+ before do
+ Fabricate :follow, account: account, target_account: Fabricate(:account, domain: domain)
+ Fabricate :follow, target_account: account, account: Fabricate(:account, domain: domain)
+ end
+
+ it_behaves_like 'forbidden for wrong scope', 'write:statuses'
+
+ it 'returns http success and follower counts' do
+ subject
+
+ expect(response)
+ .to have_http_status(200)
+ expect(response.content_type)
+ .to start_with('application/json')
+ expect(response.parsed_body)
+ .to include(followers_count: 1)
+ .and include(following_count: 1)
+ end
+ end
+end
diff --git a/spec/requests/api/web/push_subscriptions_spec.rb b/spec/requests/api/web/push_subscriptions_spec.rb
new file mode 100644
index 0000000000..a903dc6f89
--- /dev/null
+++ b/spec/requests/api/web/push_subscriptions_spec.rb
@@ -0,0 +1,55 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe 'API Web Push Subscriptions' do
+ describe 'DELETE /api/web/push_subscriptions/:id' do
+ subject { delete api_web_push_subscription_path(token) }
+
+ context 'when the subscription exists' do
+ let!(:web_push_subscription) do
+ Fabricate(:web_push_subscription)
+ end
+ let(:token) do
+ web_push_subscription.generate_token_for(:unsubscribe)
+ end
+
+ it 'deletes the subscription' do
+ expect { subject }
+ .to change(Web::PushSubscription, :count).by(-1)
+
+ expect(response).to have_http_status(200)
+ end
+ end
+
+ context 'when the subscription does not exist' do
+ let(:web_push_subscription) do
+ Fabricate(:web_push_subscription)
+ end
+ let(:token) do
+ web_push_subscription.generate_token_for(:unsubscribe)
+ end
+
+ before do
+ token # memoize before destroying the record
+ web_push_subscription.destroy!
+ end
+
+ it 'does nothing' do
+ subject
+
+ expect(response).to have_http_status(200)
+ end
+ end
+
+ context 'when the token is invalid' do
+ let(:token) { 'invalid--invalid' }
+
+ it 'does nothing' do
+ subject
+
+ expect(response).to have_http_status(200)
+ end
+ end
+ end
+end
diff --git a/spec/support/stories/profile_stories.rb b/spec/support/stories/profile_stories.rb
index 07eaaca9fb..43a8e170cc 100644
--- a/spec/support/stories/profile_stories.rb
+++ b/spec/support/stories/profile_stories.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
module ProfileStories
- attr_reader :bob, :alice, :alice_bio
+ attr_reader :bob
def fill_in_auth_details(email, password)
fill_in 'user_email', with: email
@@ -31,18 +31,6 @@ module ProfileStories
bob.update!(role: UserRole.find_by!(name: 'Admin'))
end
- def with_alice_as_local_user
- @alice_bio = '@alice and @bob are fictional characters commonly used as' \
- 'placeholder names in #cryptology, as well as #science and' \
- 'engineering 📖 literature. Not affiliated with @pepe.'
-
- @alice = Fabricate(
- :user,
- email: 'alice@example.com', password: password, confirmed_at: confirmed_at,
- account: Fabricate(:account, username: 'alice', note: @alice_bio)
- )
- end
-
def confirmed_at
@confirmed_at ||= Time.zone.now
end
diff --git a/spec/system/profile_spec.rb b/spec/system/profile_spec.rb
index 7e3cbfd334..a05a146fef 100644
--- a/spec/system/profile_spec.rb
+++ b/spec/system/profile_spec.rb
@@ -11,10 +11,10 @@ RSpec.describe 'Profile' do
before do
as_a_logged_in_user
- with_alice_as_local_user
+ Fabricate(:user, account: Fabricate(:account, username: 'alice'))
end
- it 'I can view Annes public account' do
+ it 'I can view public account page for Alice' do
visit account_path('alice')
expect(subject).to have_title("alice (@alice@#{local_domain})")
diff --git a/spec/workers/account_refresh_worker_spec.rb b/spec/workers/account_refresh_worker_spec.rb
index 3e88e8db28..4408ef77a9 100644
--- a/spec/workers/account_refresh_worker_spec.rb
+++ b/spec/workers/account_refresh_worker_spec.rb
@@ -7,9 +7,7 @@ RSpec.describe AccountRefreshWorker do
let(:service) { instance_double(ResolveAccountService, call: true) }
describe '#perform' do
- before do
- allow(ResolveAccountService).to receive(:new).and_return(service)
- end
+ before { stub_service }
context 'when account does not exist' do
it 'returns immediately without processing' do
@@ -48,5 +46,11 @@ RSpec.describe AccountRefreshWorker do
(Account::BACKGROUND_REFRESH_INTERVAL + 3.days).ago
end
end
+
+ def stub_service
+ allow(ResolveAccountService)
+ .to receive(:new)
+ .and_return(service)
+ end
end
end
diff --git a/spec/workers/activitypub/followers_synchronization_worker_spec.rb b/spec/workers/activitypub/followers_synchronization_worker_spec.rb
new file mode 100644
index 0000000000..0847b247e3
--- /dev/null
+++ b/spec/workers/activitypub/followers_synchronization_worker_spec.rb
@@ -0,0 +1,33 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe ActivityPub::FollowersSynchronizationWorker do
+ let(:worker) { described_class.new }
+ let(:service) { instance_double(ActivityPub::SynchronizeFollowersService, call: true) }
+
+ describe '#perform' do
+ before { stub_service }
+
+ let(:account) { Fabricate(:account, domain: 'host.example') }
+ let(:url) { 'https://sync.url' }
+
+ it 'sends the status to the service' do
+ worker.perform(account.id, url)
+
+ expect(service).to have_received(:call).with(account, url)
+ end
+
+ it 'returns nil for non-existent record' do
+ result = worker.perform(123_123_123, url)
+
+ expect(result).to be(true)
+ end
+ end
+
+ def stub_service
+ allow(ActivityPub::SynchronizeFollowersService)
+ .to receive(:new)
+ .and_return(service)
+ end
+end
diff --git a/spec/workers/push_conversation_worker_spec.rb b/spec/workers/push_conversation_worker_spec.rb
index d651059c9a..a98c603c17 100644
--- a/spec/workers/push_conversation_worker_spec.rb
+++ b/spec/workers/push_conversation_worker_spec.rb
@@ -6,8 +6,30 @@ RSpec.describe PushConversationWorker do
let(:worker) { described_class.new }
describe 'perform' do
- it 'runs without error for missing record' do
- expect { worker.perform(nil) }.to_not raise_error
+ context 'with missing values' do
+ it 'runs without error' do
+ expect { worker.perform(nil) }
+ .to_not raise_error
+ end
+ end
+
+ context 'with valid records' do
+ let(:account_conversation) { Fabricate :account_conversation }
+
+ before { allow(redis).to receive(:publish) }
+
+ it 'pushes message to timeline' do
+ expect { worker.perform(account_conversation.id) }
+ .to_not raise_error
+
+ expect(redis)
+ .to have_received(:publish)
+ .with(redis_key, anything)
+ end
+
+ def redis_key
+ "timeline:direct:#{account_conversation.account_id}"
+ end
end
end
end
diff --git a/spec/workers/push_update_worker_spec.rb b/spec/workers/push_update_worker_spec.rb
index 6206ab5986..f3e0a128df 100644
--- a/spec/workers/push_update_worker_spec.rb
+++ b/spec/workers/push_update_worker_spec.rb
@@ -6,11 +6,31 @@ RSpec.describe PushUpdateWorker do
let(:worker) { described_class.new }
describe 'perform' do
- it 'runs without error for missing record' do
- account_id = nil
- status_id = nil
+ context 'with missing values' do
+ it 'runs without error' do
+ expect { worker.perform(nil, nil) }
+ .to_not raise_error
+ end
+ end
- expect { worker.perform(account_id, status_id) }.to_not raise_error
+ context 'with valid records' do
+ let(:account) { Fabricate :account }
+ let(:status) { Fabricate :status }
+
+ before { allow(redis).to receive(:publish) }
+
+ it 'pushes message to timeline' do
+ expect { worker.perform(account.id, status.id) }
+ .to_not raise_error
+
+ expect(redis)
+ .to have_received(:publish)
+ .with(redis_key, anything)
+ end
+
+ def redis_key
+ "timeline:#{account.id}"
+ end
end
end
end
diff --git a/spec/workers/remote_account_refresh_worker_spec.rb b/spec/workers/remote_account_refresh_worker_spec.rb
new file mode 100644
index 0000000000..9938d971b9
--- /dev/null
+++ b/spec/workers/remote_account_refresh_worker_spec.rb
@@ -0,0 +1,38 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe RemoteAccountRefreshWorker do
+ let(:worker) { described_class.new }
+ let(:service) { instance_double(ActivityPub::FetchRemoteAccountService, call: true) }
+
+ describe '#perform' do
+ before { stub_service }
+
+ let(:account) { Fabricate(:account, domain: 'host.example') }
+
+ it 'sends the status to the service' do
+ worker.perform(account.id)
+
+ expect(service).to have_received(:call).with(account.uri)
+ end
+
+ it 'returns nil for non-existent record' do
+ result = worker.perform(123_123_123)
+
+ expect(result).to be_nil
+ end
+
+ it 'returns nil for a local record' do
+ account = Fabricate :account, domain: nil
+ result = worker.perform(account)
+ expect(result).to be_nil
+ end
+
+ def stub_service
+ allow(ActivityPub::FetchRemoteAccountService)
+ .to receive(:new)
+ .and_return(service)
+ end
+ end
+end
diff --git a/spec/workers/remove_featured_tag_worker_spec.rb b/spec/workers/remove_featured_tag_worker_spec.rb
index 7866824ee7..a8a5bcea81 100644
--- a/spec/workers/remove_featured_tag_worker_spec.rb
+++ b/spec/workers/remove_featured_tag_worker_spec.rb
@@ -4,12 +4,35 @@ require 'rails_helper'
RSpec.describe RemoveFeaturedTagWorker do
let(:worker) { described_class.new }
+ let(:service) { instance_double(RemoveFeaturedTagService, call: true) }
describe 'perform' do
- it 'runs without error for missing record' do
- account_id = nil
- featured_tag_id = nil
- expect { worker.perform(account_id, featured_tag_id) }.to_not raise_error
+ context 'with missing values' do
+ it 'runs without error' do
+ expect { worker.perform(nil, nil) }
+ .to_not raise_error
+ end
+ end
+
+ context 'with real records' do
+ before { stub_service }
+
+ let(:account) { Fabricate :account }
+ let(:featured_tag) { Fabricate :featured_tag }
+
+ it 'calls the service for processing' do
+ worker.perform(account.id, featured_tag.id)
+
+ expect(service)
+ .to have_received(:call)
+ .with(be_an(Account), be_an(FeaturedTag))
+ end
+
+ def stub_service
+ allow(RemoveFeaturedTagService)
+ .to receive(:new)
+ .and_return(service)
+ end
end
end
end
diff --git a/spec/workers/resolve_account_worker_spec.rb b/spec/workers/resolve_account_worker_spec.rb
index de349adacb..58c2c12129 100644
--- a/spec/workers/resolve_account_worker_spec.rb
+++ b/spec/workers/resolve_account_worker_spec.rb
@@ -4,10 +4,34 @@ require 'rails_helper'
RSpec.describe ResolveAccountWorker do
let(:worker) { described_class.new }
+ let(:service) { instance_double(ResolveAccountService, call: true) }
describe 'perform' do
- it 'runs without error for missing record' do
- expect { worker.perform(nil) }.to_not raise_error
+ context 'with missing values' do
+ it 'runs without error' do
+ expect { worker.perform(nil) }
+ .to_not raise_error
+ end
+ end
+
+ context 'with a URI' do
+ before { stub_service }
+
+ let(:uri) { 'https://host/path/value' }
+
+ it 'initiates account resolution' do
+ worker.perform(uri)
+
+ expect(service)
+ .to have_received(:call)
+ .with(uri)
+ end
+
+ def stub_service
+ allow(ResolveAccountService)
+ .to receive(:new)
+ .and_return(service)
+ end
end
end
end
diff --git a/spec/workers/web/push_notification_worker_spec.rb b/spec/workers/web/push_notification_worker_spec.rb
index 7f836d99e4..4993d467b3 100644
--- a/spec/workers/web/push_notification_worker_spec.rb
+++ b/spec/workers/web/push_notification_worker_spec.rb
@@ -61,6 +61,7 @@ RSpec.describe Web::PushNotificationWorker do
'Ttl' => '172800',
'Urgency' => 'normal',
'Authorization' => 'WebPush jwt.encoded.payload',
+ 'Unsubscribe-URL' => %r{/api/web/push_subscriptions/},
},
body: "+\xB8\xDBT}\u0013\xB6\xDD.\xF9\xB0\xA7\xC8Ҁ\xFD\x99#\xF7\xAC\x83\xA4\xDB,\u001F\xB5\xB9w\x85>\xF7\xADr"
)
diff --git a/streaming/package.json b/streaming/package.json
index d573c9b284..585c4be4e1 100644
--- a/streaming/package.json
+++ b/streaming/package.json
@@ -1,7 +1,7 @@
{
"name": "@mastodon/streaming",
"license": "AGPL-3.0-or-later",
- "packageManager": "yarn@4.5.0",
+ "packageManager": "yarn@4.5.1",
"engines": {
"node": ">=18"
},
diff --git a/yarn.lock b/yarn.lock
index 58f0410bbd..f564f432fc 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -42,127 +42,127 @@ __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.25.7":
- version: 7.25.7
- resolution: "@babel/code-frame@npm:7.25.7"
+"@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.25.9":
+ version: 7.25.9
+ resolution: "@babel/code-frame@npm:7.25.9"
dependencies:
- "@babel/highlight": "npm:^7.25.7"
+ "@babel/highlight": "npm:^7.25.9"
picocolors: "npm:^1.0.0"
- checksum: 10c0/14825c298bdec914caf3d24d1383b6d4cd6b030714686004992f4fc251831ecf432236652896f99d5d341f17170ae9a07b58d8d7b15aa0df8cfa1c5a7d5474bc
+ checksum: 10c0/88562eba0eeb5960b7004e108790aa00183d90cbbe70ce10dad01c2c48141d2ef54d6dcd0c678cc1e456de770ffeb68e28559f4d222c01a110c79aea8733074b
languageName: node
linkType: hard
-"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.7, @babel/compat-data@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/compat-data@npm:7.25.8"
- checksum: 10c0/8b81c17580e5fb4cbb6a3c52079f8c283fc59c0c6bd2fe14cfcf9c44b32d2eaab71b02c5633e2c679f5896f73f8ac4036ba2e67a4c806e8f428e4b11f526d7f4
+"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/compat-data@npm:7.25.9"
+ checksum: 10c0/8d9fc2074311ce61aaf5bccf740a808644d19d4859caf5fa46d8a7186a1ee0b0d8cbbc23f9371f8b397e84a885bdeab58d5f22d6799ddde55973252aac351a27
languageName: node
linkType: hard
"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.22.1, @babel/core@npm:^7.24.4, @babel/core@npm:^7.25.0":
- version: 7.25.8
- resolution: "@babel/core@npm:7.25.8"
+ version: 7.25.9
+ resolution: "@babel/core@npm:7.25.9"
dependencies:
"@ampproject/remapping": "npm:^2.2.0"
- "@babel/code-frame": "npm:^7.25.7"
- "@babel/generator": "npm:^7.25.7"
- "@babel/helper-compilation-targets": "npm:^7.25.7"
- "@babel/helper-module-transforms": "npm:^7.25.7"
- "@babel/helpers": "npm:^7.25.7"
- "@babel/parser": "npm:^7.25.8"
- "@babel/template": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.8"
+ "@babel/code-frame": "npm:^7.25.9"
+ "@babel/generator": "npm:^7.25.9"
+ "@babel/helper-compilation-targets": "npm:^7.25.9"
+ "@babel/helper-module-transforms": "npm:^7.25.9"
+ "@babel/helpers": "npm:^7.25.9"
+ "@babel/parser": "npm:^7.25.9"
+ "@babel/template": "npm:^7.25.9"
+ "@babel/traverse": "npm:^7.25.9"
+ "@babel/types": "npm:^7.25.9"
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/8411ea506e6f7c8a39ab5c1524b00589fa3b087edb47389708f7fe07170929192171734666e3ea10b95a951643a531a6d09eedfe071572c9ea28516646265086
+ checksum: 10c0/40d3064ebe906f65ed4153a0f4d75c679a19e4d71e425035b7bbe2d292a9167274f1a0d908d4d6c8f484fcddeb10bd91e0c7878fdb3dfad1bb00f6a319ce431d
languageName: node
linkType: hard
-"@babel/generator@npm:^7.25.7, @babel/generator@npm:^7.7.2":
- version: 7.25.7
- resolution: "@babel/generator@npm:7.25.7"
+"@babel/generator@npm:^7.25.9, @babel/generator@npm:^7.7.2":
+ version: 7.25.9
+ resolution: "@babel/generator@npm:7.25.9"
dependencies:
- "@babel/types": "npm:^7.25.7"
+ "@babel/types": "npm:^7.25.9"
"@jridgewell/gen-mapping": "npm:^0.3.5"
"@jridgewell/trace-mapping": "npm:^0.3.25"
jsesc: "npm:^3.0.2"
- checksum: 10c0/c03a26c79864d60d04ce36b649c3fa0d6fd7b2bf6a22e22854a0457aa09206508392dd73ee40e7bc8d50b3602f9ff068afa47770cda091d332e7db1ca382ee96
+ checksum: 10c0/fca49a1440ac550bb835a73c0e8314849cd493a468a5431ca7f9dbb3d3443e3a1a6dcba2426752e8a97cc2feed4a3b7a0c639e1c45871c4a9dd0c994f08dd25a
languageName: node
linkType: hard
-"@babel/helper-annotate-as-pure@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-annotate-as-pure@npm:7.25.7"
+"@babel/helper-annotate-as-pure@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-annotate-as-pure@npm:7.25.9"
dependencies:
- "@babel/types": "npm:^7.25.7"
- checksum: 10c0/2f020b0fa9d336b5778485cc2de3141561ec436a7591b685457a5bcdae4ce41d9ddee68169c95504e0789e5a4327e73b8b7e72e5b60e82e96d730c4d19255248
+ "@babel/types": "npm:^7.25.9"
+ checksum: 10c0/095b6ba50489d797733abebc4596a81918316a99e3632755c9f02508882912b00c2ae5e468532a25a5c2108d109ddbe9b7da78333ee7cc13817fc50c00cf06fe
languageName: node
linkType: hard
-"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.25.7"
+"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.25.9"
dependencies:
- "@babel/traverse": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10c0/e9dc5a7920a1d74150dec53ccd5e34f2b31ae307df7cdeec6289866f7bda97ecb1328b49a7710ecde5db5b6daad768c904a030f9a0fa3184963b0017622c42aa
+ "@babel/traverse": "npm:^7.25.9"
+ "@babel/types": "npm:^7.25.9"
+ checksum: 10c0/a6068bb813e7f72d12b72edeecb99167f60cd7964cacedfb60e01fff5e7bed4a5a7f4f7414de7cf352a1b71487df5f8dab8c2b5230de4ad5aea16adf32e14219
languageName: node
linkType: hard
-"@babel/helper-builder-react-jsx@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-builder-react-jsx@npm:7.25.7"
+"@babel/helper-builder-react-jsx@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-builder-react-jsx@npm:7.25.9"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10c0/f8123a76e8c3fcdbb24cc14bfefc80e4c7bf58112ab26bea3247298748c674cbaee70591c362d0d881e4d88154ea4809b145f3ddcf96221cf55ba27bfde535c6
+ "@babel/helper-annotate-as-pure": "npm:^7.25.9"
+ "@babel/types": "npm:^7.25.9"
+ checksum: 10c0/99d6e87eede0971f25b5e638220f5f966c56c03f6a6278a693c73ac0a31acddb86110208a89d948aa337c8cf7998fb317c00e8baf2e9fa0a42b9207b977dc9c6
languageName: node
linkType: hard
-"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-compilation-targets@npm:7.25.7"
+"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-compilation-targets@npm:7.25.9"
dependencies:
- "@babel/compat-data": "npm:^7.25.7"
- "@babel/helper-validator-option": "npm:^7.25.7"
+ "@babel/compat-data": "npm:^7.25.9"
+ "@babel/helper-validator-option": "npm:^7.25.9"
browserslist: "npm:^4.24.0"
lru-cache: "npm:^5.1.1"
semver: "npm:^6.3.1"
- checksum: 10c0/705be7e5274a3fdade68e3e2cf42e2b600316ab52794e13b91299a16f16c926f15886b6e9d6df20eb943ccc1cdba5a363d4766f8d01e47b8e6f4e01175f5e66c
+ checksum: 10c0/a6b26a1e4222e69ef8e62ee19374308f060b007828bc11c65025ecc9e814aba21ff2175d6d3f8bf53c863edd728ee8f94ba7870f8f90a37d39552ad9933a8aaa
languageName: node
linkType: hard
-"@babel/helper-create-class-features-plugin@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-create-class-features-plugin@npm:7.25.7"
+"@babel/helper-create-class-features-plugin@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-create-class-features-plugin@npm:7.25.9"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
- "@babel/helper-member-expression-to-functions": "npm:^7.25.7"
- "@babel/helper-optimise-call-expression": "npm:^7.25.7"
- "@babel/helper-replace-supers": "npm:^7.25.7"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
+ "@babel/helper-annotate-as-pure": "npm:^7.25.9"
+ "@babel/helper-member-expression-to-functions": "npm:^7.25.9"
+ "@babel/helper-optimise-call-expression": "npm:^7.25.9"
+ "@babel/helper-replace-supers": "npm:^7.25.9"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9"
+ "@babel/traverse": "npm:^7.25.9"
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/405c3c1a137acda1206380a96993cf2cfd808b3bee1c11c4af47ee0f03a20858497aa53394d6adc5431793c543be5e02010620e871a5ab39d938ae90a54b50f2
+ checksum: 10c0/b2bdd39f38056a76b9ba00ec5b209dd84f5c5ebd998d0f4033cf0e73d5f2c357fbb49d1ce52db77a2709fb29ee22321f84a5734dc9914849bdfee9ad12ce8caf
languageName: node
linkType: hard
-"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.7"
+"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.9"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
+ "@babel/helper-annotate-as-pure": "npm:^7.25.9"
regexpu-core: "npm:^6.1.1"
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/75919fd5a67cd7be8497b56f7b9ed6b4843cb401956ba8d403aa9ae5b005bc28e35c7f27e704d820edbd1154394ed7a7984d4719916795d89d716f6980fe8bd4
+ checksum: 10c0/3adc60a758febbf07d65a15eaccab1f7b9fcc55e7141e59122f13c9f81fc0d1cce4525b7f4af50285d27c93b34c859fd2c39c39820c5fb92211898c3bbdc77ef
languageName: node
linkType: hard
@@ -181,223 +181,223 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-member-expression-to-functions@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-member-expression-to-functions@npm:7.25.7"
+"@babel/helper-member-expression-to-functions@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-member-expression-to-functions@npm:7.25.9"
dependencies:
- "@babel/traverse": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10c0/1e948162ab48d84593a7c6ec9570d14c906146f1697144fc369c59dbeb00e4a062da67dd06cb0d8f98a044cd8389002dcf2ab6f5613d99c35748307846ec63fc
+ "@babel/traverse": "npm:^7.25.9"
+ "@babel/types": "npm:^7.25.9"
+ checksum: 10c0/e08c7616f111e1fb56f398365e78858e26e466d4ac46dff25921adc5ccae9b232f66e952a2f4162bbe336627ba336c7fd9eca4835b6548935973d3380d77eaff
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.25.7":
- version: 7.25.7
- resolution: "@babel/helper-module-imports@npm:7.25.7"
+"@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.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-module-imports@npm:7.25.9"
dependencies:
- "@babel/traverse": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10c0/0fd0c3673835e5bf75558e184bcadc47c1f6dd2fe2016d53ebe1e5a6ae931a44e093015c2f9a6651c1a89f25c76d9246710c2b0b460b95ee069c464f2837fa2c
+ "@babel/traverse": "npm:^7.25.9"
+ "@babel/types": "npm:^7.25.9"
+ checksum: 10c0/078d3c2b45d1f97ffe6bb47f61961be4785d2342a4156d8b42c92ee4e1b7b9e365655dd6cb25329e8fe1a675c91eeac7e3d04f0c518b67e417e29d6e27b6aa70
languageName: node
linkType: hard
-"@babel/helper-module-transforms@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-module-transforms@npm:7.25.7"
+"@babel/helper-module-transforms@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-module-transforms@npm:7.25.9"
dependencies:
- "@babel/helper-module-imports": "npm:^7.25.7"
- "@babel/helper-simple-access": "npm:^7.25.7"
- "@babel/helper-validator-identifier": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
+ "@babel/helper-module-imports": "npm:^7.25.9"
+ "@babel/helper-simple-access": "npm:^7.25.9"
+ "@babel/helper-validator-identifier": "npm:^7.25.9"
+ "@babel/traverse": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/f37fa7d1d4df21690535b278468cbd5faf0133a3080f282000cfa4f3ffc9462a1458f866b04b6a2f2d1eec4691236cba9a867da61270dab3ab19846e62f05090
+ checksum: 10c0/cd005e7585806845d79c5c0ca9e8926f186b430b0a558dad08a3611365eaad3ac587672b0d903530117dec454f48b6bdc3d164b19ea1b71ca1b4eb3be7b452ef
languageName: node
linkType: hard
-"@babel/helper-optimise-call-expression@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-optimise-call-expression@npm:7.25.7"
+"@babel/helper-optimise-call-expression@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-optimise-call-expression@npm:7.25.9"
dependencies:
- "@babel/types": "npm:^7.25.7"
- checksum: 10c0/19b4cc7e77811b1fedca4928dbc14026afef913c2ba4142e5e110ebdcb5c3b2efc0f0fbee9f362c23a194674147b9d627adea71c289b9be08b9067bc0085308b
+ "@babel/types": "npm:^7.25.9"
+ checksum: 10c0/90203e6607edeadd2a154940803fd616c0ed92c1013d6774c4b8eb491f1a5a3448b68faae6268141caa5c456e55e3ee49a4ed2bd7ddaf2365daea321c435914c
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.25.0, @babel/helper-plugin-utils@npm:^7.25.7, @babel/helper-plugin-utils@npm:^7.8.0":
- version: 7.25.7
- resolution: "@babel/helper-plugin-utils@npm:7.25.7"
- checksum: 10c0/241f8cf3c5b7700e91cab7cfe5b432a3c710ae3cd5bb96dc554da536a6d25f5b9f000cc0c0917501ceb4f76ba92599ee3beb25e10adaf96be59f8df89a842faf
+"@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.25.0, @babel/helper-plugin-utils@npm:^7.25.9, @babel/helper-plugin-utils@npm:^7.8.0":
+ version: 7.25.9
+ resolution: "@babel/helper-plugin-utils@npm:7.25.9"
+ checksum: 10c0/483066a1ba36ff16c0116cd24f93de05de746a603a777cd695ac7a1b034928a65a4ecb35f255761ca56626435d7abdb73219eba196f9aa83b6c3c3169325599d
languageName: node
linkType: hard
-"@babel/helper-remap-async-to-generator@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-remap-async-to-generator@npm:7.25.7"
+"@babel/helper-remap-async-to-generator@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-remap-async-to-generator@npm:7.25.9"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
- "@babel/helper-wrap-function": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
+ "@babel/helper-annotate-as-pure": "npm:^7.25.9"
+ "@babel/helper-wrap-function": "npm:^7.25.9"
+ "@babel/traverse": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/972d84876adce6ab61c87a2df47e1afc790b73cff0d1767d0a1c5d9f7aa5e91d8c581a272b66b2051a26cfbb167d8a780564705e488e3ce1f477f1c15059bc5f
+ checksum: 10c0/6798b562f2788210980f29c5ee96056d90dc73458c88af5bd32f9c82e28e01975588aa2a57bb866c35556bd9b76bac937e824ee63ba472b6430224b91b4879e9
languageName: node
linkType: hard
-"@babel/helper-replace-supers@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-replace-supers@npm:7.25.7"
+"@babel/helper-replace-supers@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-replace-supers@npm:7.25.9"
dependencies:
- "@babel/helper-member-expression-to-functions": "npm:^7.25.7"
- "@babel/helper-optimise-call-expression": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
+ "@babel/helper-member-expression-to-functions": "npm:^7.25.9"
+ "@babel/helper-optimise-call-expression": "npm:^7.25.9"
+ "@babel/traverse": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/761d64ee74429f7326a6aa65e2cd5bfcb8de9e3bc3f1efb14b8f610d2410f003b0fca52778dc801d49ff8fbc90b057e8f51b27c62b0b05c95eaf23140ca1287b
+ checksum: 10c0/0b40d7d2925bd3ba4223b3519e2e4d2456d471ad69aa458f1c1d1783c80b522c61f8237d3a52afc9e47c7174129bbba650df06393a6787d5722f2ec7f223c3f4
languageName: node
linkType: hard
-"@babel/helper-simple-access@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-simple-access@npm:7.25.7"
+"@babel/helper-simple-access@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-simple-access@npm:7.25.9"
dependencies:
- "@babel/traverse": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10c0/eed1b499bfb4f613c18debd61517e3de77b6da2727ca025aa05ac81599e0269f1dddb5237db04e8bb598115d015874752e0a7f11ff38672d74a4976097417059
+ "@babel/traverse": "npm:^7.25.9"
+ "@babel/types": "npm:^7.25.9"
+ checksum: 10c0/3f1bcdb88ee3883ccf86959869a867f6bbf8c4737cd44fb9f799c38e54f67474590bc66802500ae9fe18161792875b2cfb7ec15673f48ed6c8663f6d09686ca8
languageName: node
linkType: hard
-"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.7"
+"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9"
dependencies:
- "@babel/traverse": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10c0/5804adb893849a9d8cfb548e3812566a81d95cb0c9a10d66b52912d13f488e577c33063bf19bc06ac70e6333162a7370d67ba1a1c3544d37fb50d5f4a00db4de
+ "@babel/traverse": "npm:^7.25.9"
+ "@babel/types": "npm:^7.25.9"
+ checksum: 10c0/09ace0c6156961624ac9524329ce7f45350bab94bbe24335cbe0da7dfaa1448e658771831983cb83fe91cf6635b15d0a3cab57c03b92657480bfb49fb56dd184
languageName: node
linkType: hard
-"@babel/helper-string-parser@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-string-parser@npm:7.25.7"
- checksum: 10c0/73ef2ceb81f8294678a0afe8ab0103729c0370cac2e830e0d5128b03be5f6a2635838af31d391d763e3c5a4460ed96f42fd7c9b552130670d525be665913bc4c
+"@babel/helper-string-parser@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-string-parser@npm:7.25.9"
+ checksum: 10c0/7244b45d8e65f6b4338a6a68a8556f2cb161b782343e97281a5f2b9b93e420cad0d9f5773a59d79f61d0c448913d06f6a2358a87f2e203cf112e3c5b53522ee6
languageName: node
linkType: hard
-"@babel/helper-validator-identifier@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-validator-identifier@npm:7.25.7"
- checksum: 10c0/07438e5bf01ab2882a15027fdf39ac3b0ba1b251774a5130917907014684e2f70fef8fd620137ca062c4c4eedc388508d2ea7a3a7d9936a32785f4fe116c68c0
+"@babel/helper-validator-identifier@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-validator-identifier@npm:7.25.9"
+ checksum: 10c0/4fc6f830177b7b7e887ad3277ddb3b91d81e6c4a24151540d9d1023e8dc6b1c0505f0f0628ae653601eb4388a8db45c1c14b2c07a9173837aef7e4116456259d
languageName: node
linkType: hard
-"@babel/helper-validator-option@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-validator-option@npm:7.25.7"
- checksum: 10c0/12ed418c8e3ed9ed44c8c80d823f4e42d399b5eb2e423adccb975e31a31a008cd3b5d8eab688b31f740caff4a1bb28fe06ea2fa7d635aee34cc0ad6995d50f0a
+"@babel/helper-validator-option@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-validator-option@npm:7.25.9"
+ checksum: 10c0/27fb195d14c7dcb07f14e58fe77c44eea19a6a40a74472ec05c441478fa0bb49fa1c32b2d64be7a38870ee48ef6601bdebe98d512f0253aea0b39756c4014f3e
languageName: node
linkType: hard
-"@babel/helper-wrap-function@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-wrap-function@npm:7.25.7"
+"@babel/helper-wrap-function@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-wrap-function@npm:7.25.9"
dependencies:
- "@babel/template": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10c0/b5d412f72697f4a4ce4cb9784fbaf82501c63cf95066c0eadd3179e3439cbbf0aa5fa4858d93590083671943cd357aeb87286958df34aa56fdf8a4c9dea39755
+ "@babel/template": "npm:^7.25.9"
+ "@babel/traverse": "npm:^7.25.9"
+ "@babel/types": "npm:^7.25.9"
+ checksum: 10c0/b6627d83291e7b80df020f8ee2890c52b8d49272962cac0114ef90f189889c90f1027985873d1b5261a4e986e109b2754292dc112392f0b1fcbfc91cc08bd003
languageName: node
linkType: hard
-"@babel/helpers@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helpers@npm:7.25.7"
+"@babel/helpers@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helpers@npm:7.25.9"
dependencies:
- "@babel/template": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10c0/3b3ae9e373bd785414195ef8f59976a69d5a6ebe0ef2165fdcc5165e5c3ee09e0fcee94bb457df2ddb8c0532e4146d0a9b7a96b3497399a4bff4ffe196b30228
+ "@babel/template": "npm:^7.25.9"
+ "@babel/types": "npm:^7.25.9"
+ checksum: 10c0/4354fbf050291937d0f127f6f927a0c471b604524e0767516fefb91dc36427f25904dd0d2b2b3bbc66bce1894c680cc37eac9ab46970d70f24bf3e53375612de
languageName: node
linkType: hard
-"@babel/highlight@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/highlight@npm:7.25.7"
+"@babel/highlight@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/highlight@npm:7.25.9"
dependencies:
- "@babel/helper-validator-identifier": "npm:^7.25.7"
+ "@babel/helper-validator-identifier": "npm:^7.25.9"
chalk: "npm:^2.4.2"
js-tokens: "npm:^4.0.0"
picocolors: "npm:^1.0.0"
- checksum: 10c0/1f5894fdb0a0af6101fb2822369b2eeeae32cbeae2ef73ff73fc6a0a4a20471565cd9cfa589f54ed69df66adeca7c57266031ca9134b7bd244d023a488d419aa
+ checksum: 10c0/ae0ed93c151b85a07df42936117fa593ce91563a22dfc8944a90ae7088c9679645c33e00dcd20b081c1979665d65f986241172dae1fc9e5922692fc3ff685a49
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.25.7, @babel/parser@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/parser@npm:7.25.8"
+"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/parser@npm:7.25.9"
dependencies:
- "@babel/types": "npm:^7.25.8"
+ "@babel/types": "npm:^7.25.9"
bin:
parser: ./bin/babel-parser.js
- checksum: 10c0/a1a13845b7e8dda4c970791814a4bbf60004969882f18f470e260ad822d2e1f8941948f851e9335895563610f240fa6c98481ce8019865e469502bbf21daafa4
+ checksum: 10c0/143faff8a72331be5ed94080e0f4645cbeea814fb488cd9210154083735f67cb66fde32f6a4a80efd6c4cdf12c6f8b50995a465846093c7f65c5da8d7829627c
languageName: node
linkType: hard
-"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.7"
+"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/traverse": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/c6ba97c39973897a2ab021c4a77221e1e93e853a5811d498db325da1bd692e41fa521db6d91bb709ccafd4e54ddd00869ffb35846923c3ccd49d46124b316904
+ checksum: 10c0/7aab47fcbb8c1ddc195a3cd66609edcad54c5022f018db7de40185f0182950389690e953e952f117a1737b72f665ff02ad30de6c02b49b97f1d8f4ccdffedc34
languageName: node
linkType: hard
-"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.7"
+"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/ac284868bf410f952c6959b0d77708464127160416f003b05c8127d30e64792d671abc167ebf778b17707e32174223ea8d3ff487276991fa90297d92f0dac6e2
+ checksum: 10c0/3a652b3574ca62775c5f101f8457950edc540c3581226579125da535d67765f41ad7f0e6327f8efeb2540a5dad5bb0c60a89fb934af3f67472e73fb63612d004
languageName: node
linkType: hard
-"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.7"
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/1bffc0a20c8c82b4c77515eb4c99b961b38184116f008bb42bed4e12d3379ba7b2bc6cf299bcea8118d645bb7a5e0caa83969842f16dd1fce49fb3a050e4ac65
+ checksum: 10c0/18fc9004104a150f9f5da9f3307f361bc3104d16778bb593b7523d5110f04a8df19a2587e6bdd5e726fb1d397191add45223f4f731bb556c33f14f2779d596e8
languageName: node
linkType: hard
-"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.7"
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7"
- "@babel/plugin-transform-optional-chaining": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9"
+ "@babel/plugin-transform-optional-chaining": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.13.0
- checksum: 10c0/32223f012614a0b2657579317ded7d0d09af2aa316285715c5012f974d0f15c2ce2fe0d8e80fdd9bac6c10c21c93cc925a9dfd6c8e21ce7ba1a9fe06a58088b4
+ checksum: 10c0/3f6c8781a2f7aa1791a31d2242399ca884df2ab944f90c020b6f112fb19f05fa6dad5be143d274dad1377e40415b63d24d5489faf5060b9c4a99e55d8f0c317c
languageName: node
linkType: hard
-"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.7"
+"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/traverse": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/aa2ee7a5954d187de6cbcca0e0b64cfb79c4d224c332d1eb1e0e4afd92ef1a1f4bc4af24f66154097ccb348c08121a875456f47baed220b1b9e93584e6a19b65
+ checksum: 10c0/02b365f0cc4df8b8b811c68697c93476da387841e5f153fe42766f34241b685503ea51110d5ed6df7132759820b93e48d9fa3743cffc091eed97c19f7e5fe272
languageName: node
linkType: hard
@@ -443,25 +443,25 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-syntax-import-assertions@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-syntax-import-assertions@npm:7.25.7"
+"@babel/plugin-syntax-import-assertions@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-syntax-import-assertions@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/0fee0d971f3c654749fdf92e09b6556bba26ab014c8e99b7252f6a7f1ca108f17edd7ceefb5401d7b7008e98ab1b6f8c3c6a5db72862e7c7b2fcd649d000d690
+ checksum: 10c0/f5a022b8a7f3585cf1586535224b06ae380983d3c14f7127b82792ef50cd8194047080540c8abec7aa8f8bfe7d774d71a1ee91f4fd3fa0277f7ffe2d3c6c4977
languageName: node
linkType: hard
-"@babel/plugin-syntax-import-attributes@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-syntax-import-attributes@npm:7.25.7"
+"@babel/plugin-syntax-import-attributes@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-syntax-import-attributes@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/fe00cdb96fd289ab126830a98e1dcf5ab7b529a6ef1c01a72506b5e7b1197d6e46c3c4d029cd90d1d61eb9a15ef77c282d156d0c02c7e32f168bb09d84150db4
+ checksum: 10c0/bbdf97ba088c3d482492f6c3376422752b1723ce32e3ac11b000faf3c942d68e418c8a911431cb05d5e300d008cc37cd5518e89807a5813c2ac8fdd82d171f8d
languageName: node
linkType: hard
@@ -487,14 +487,14 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-syntax-jsx@npm:^7.25.0, @babel/plugin-syntax-jsx@npm:^7.25.7, @babel/plugin-syntax-jsx@npm:^7.7.2":
- version: 7.25.7
- resolution: "@babel/plugin-syntax-jsx@npm:7.25.7"
+"@babel/plugin-syntax-jsx@npm:^7.25.0, @babel/plugin-syntax-jsx@npm:^7.25.9, @babel/plugin-syntax-jsx@npm:^7.7.2":
+ version: 7.25.9
+ resolution: "@babel/plugin-syntax-jsx@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/17db499c31fcfaa94d5408726d943955d51d478353d1e2dd84eda6024f7e3d104b9456a77f8aabfae0db7f4dc32f810d08357112f7fcbe305e7c9fcf5b3cac13
+ checksum: 10c0/d56597aff4df39d3decda50193b6dfbe596ca53f437ff2934622ce19a743bf7f43492d3fb3308b0289f5cee2b825d99ceb56526a2b9e7b68bf04901546c5618c
languageName: node
linkType: hard
@@ -575,14 +575,14 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-syntax-typescript@npm:^7.25.7, @babel/plugin-syntax-typescript@npm:^7.7.2":
- version: 7.25.7
- resolution: "@babel/plugin-syntax-typescript@npm:7.25.7"
+"@babel/plugin-syntax-typescript@npm:^7.25.9, @babel/plugin-syntax-typescript@npm:^7.7.2":
+ version: 7.25.9
+ resolution: "@babel/plugin-syntax-typescript@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/ed51fd81a5cf571a89fc4cf4c0e3b0b91285c367237374c133d2e5e718f3963cfa61b81997df39220a8837dc99f9e9a8ab7701d259c09fae379e4843d9db60c2
+ checksum: 10c0/5192ebe11bd46aea68b7a60fd9555465c59af7e279e71126788e59121b86e00b505816685ab4782abe159232b0f73854e804b54449820b0d950b397ee158caa2
languageName: node
linkType: hard
@@ -598,454 +598,454 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-arrow-functions@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.7"
+"@babel/plugin-transform-arrow-functions@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/c8d75ead93f130bf113b6d29493aca695092661ef039336d2a227169c3b7895aa5e9bcc548c42a95a6eaaaf49e512317b00699940bd40ccefd77443e703d3935
+ checksum: 10c0/851fef9f58be60a80f46cc0ce1e46a6f7346a6f9d50fa9e0fa79d46ec205320069d0cc157db213e2bea88ef5b7d9bd7618bb83f0b1996a836e2426c3a3a1f622
languageName: node
linkType: hard
-"@babel/plugin-transform-async-generator-functions@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.8"
+"@babel/plugin-transform-async-generator-functions@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-remap-async-to-generator": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/helper-remap-async-to-generator": "npm:^7.25.9"
+ "@babel/traverse": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/1698d0757d3dc895047120346cdbe6d539dae4a7bb930caf958c3623e89c850d378d1ebd971a1a8b4cba39c8f001cd9c25a1d6f430099022ab1e87aeddb5dd88
+ checksum: 10c0/e3fcb9fc3d6ab6cbd4fcd956b48c17b5e92fe177553df266ffcd2b2c1f2f758b893e51b638e77ed867941e0436487d2b8b505908d615c41799241699b520dec6
languageName: node
linkType: hard
-"@babel/plugin-transform-async-to-generator@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.7"
+"@babel/plugin-transform-async-to-generator@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.9"
dependencies:
- "@babel/helper-module-imports": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-remap-async-to-generator": "npm:^7.25.7"
+ "@babel/helper-module-imports": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/helper-remap-async-to-generator": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/1dbefba9c1455f7a92b8c59a93c622091db945294c936fc2c09b1648308c5b4cb2ecaae92baae0d07a324ab890a8a2ee27ceb046bc120932845d27aede275821
+ checksum: 10c0/c443d9e462ddef733ae56360064f32fc800105803d892e4ff32d7d6a6922b3765fa97b9ddc9f7f1d3f9d8c2d95721d85bef9dbf507804214c6cf6466b105c168
languageName: node
linkType: hard
-"@babel/plugin-transform-block-scoped-functions@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.25.7"
+"@babel/plugin-transform-block-scoped-functions@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/b1e77492295d1b271ef850a81b0404cf3d0dd6a2bcbeab28a0fd99e61c6de4bda91dff583bb42138eec61bf71282bdd3b1bebcb53b7e373035e77fd6ba66caeb
+ checksum: 10c0/e92ba0e3d72c038513844d8fca1cc8437dcb35cd42778e97fd03cb8303380b201468611e7ecfdcae3de33473b2679fe2de1552c5f925d112c5693425cf851f10
languageName: node
linkType: hard
-"@babel/plugin-transform-block-scoping@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-block-scoping@npm:7.25.7"
+"@babel/plugin-transform-block-scoping@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-block-scoping@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/b2057e00535cd0e8bd5ee5d4640aa2e952564aeafb1bcf4e7b6de33442422877bb0ca8669ad0a48262ec077271978c61eae87b6b3bc8f472d830fa781d6f7e44
+ checksum: 10c0/a76e30becb6c75b4d87a2cd53556fddb7c88ddd56bfadb965287fd944810ac159aa8eb5705366fc37336041f63154ed9fab3862fb10482a45bf5ede63fd55fda
languageName: node
linkType: hard
-"@babel/plugin-transform-class-properties@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-class-properties@npm:7.25.7"
+"@babel/plugin-transform-class-properties@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-class-properties@npm:7.25.9"
dependencies:
- "@babel/helper-create-class-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-create-class-features-plugin": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/1f41e6934b20ad3e05df63959cff9bc600ff3119153b9acbbd44c1731e7df04866397e6e17799173f4c53cdee6115e155632859aee20bf47ec7dcef3f2168a47
+ checksum: 10c0/f0603b6bd34d8ba62c03fc0572cb8bbc75874d097ac20cc7c5379e001081210a84dba1749e7123fca43b978382f605bb9973c99caf2c5b4c492d5c0a4a441150
languageName: node
linkType: hard
-"@babel/plugin-transform-class-static-block@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-class-static-block@npm:7.25.8"
+"@babel/plugin-transform-class-static-block@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-class-static-block@npm:7.25.9"
dependencies:
- "@babel/helper-create-class-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-create-class-features-plugin": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.12.0
- checksum: 10c0/4f37853aef6920875022bbb2d7c6523218d9d718291464e2cacd9cc6f2c22d86a69948d8ea38f9248843bbfe9343f3fd18cf16b1615560124198bf999e3ba612
+ checksum: 10c0/696a3a8acde79d6fee4f685ee1353bf483c4cd50a38e586a1a044268df72d87f9b1a3b7c473def6cde836aa69931fd5a75560bb9ee3a635ebde8911575ed49ca
languageName: node
linkType: hard
-"@babel/plugin-transform-classes@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-classes@npm:7.25.7"
+"@babel/plugin-transform-classes@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-classes@npm:7.25.9"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
- "@babel/helper-compilation-targets": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-replace-supers": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
+ "@babel/helper-annotate-as-pure": "npm:^7.25.9"
+ "@babel/helper-compilation-targets": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/helper-replace-supers": "npm:^7.25.9"
+ "@babel/traverse": "npm:^7.25.9"
globals: "npm:^11.1.0"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/8121781e1d8acd80e6169019106f73a399475ad9c895c1988a344dfed5a6ddd340938ac55123dc1e423bb8f25f255f5d11031116ad756ba3c314595a97c973af
+ checksum: 10c0/02742ea7cd25be286c982e672619effca528d7a931626a6f3d6cea11852951b7ee973276127eaf6418ac0e18c4d749a16b520709c707e86a67012bd23ff2927d
languageName: node
linkType: hard
-"@babel/plugin-transform-computed-properties@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-computed-properties@npm:7.25.7"
+"@babel/plugin-transform-computed-properties@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-computed-properties@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/template": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/template": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/7ad0a1c126f50935a02e77d438ebc39078a9d644b3a60de60bec32c5d9f49e7f2b193fcecb8c61bb1bc3cdd4af1e93f72d022d448511fa76a171527c633cd1bf
+ checksum: 10c0/948c0ae3ce0ba2375241d122a9bc7cda4a7ac8110bd8a62cd804bc46a5fdb7a7a42c7799c4cd972e14e0a579d2bd0999b92e53177b73f240bb0d4b09972c758b
languageName: node
linkType: hard
-"@babel/plugin-transform-destructuring@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-destructuring@npm:7.25.7"
+"@babel/plugin-transform-destructuring@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-destructuring@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/a563123b2fb267e03aa50104005f00b56226a685938906c42c1b251462e0cc9fc89e587d5656d3324159071eb8ebda8c68a6011f11d5a00fb1436cb5a5411b7b
+ checksum: 10c0/7beec5fda665d108f69d5023aa7c298a1e566b973dd41290faa18aeea70f6f571295c1ece0a058f3ceb6c6c96de76de7cd34f5a227fbf09a1b8d8a735d28ca49
languageName: node
linkType: hard
-"@babel/plugin-transform-dotall-regex@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.7"
+"@babel/plugin-transform-dotall-regex@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.9"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/7f1db3ec20b7fae46db4a9c4c257d75418b0896b72c0a3de20b3044f952801480f0a2e75ebb0d64f13e8cd4db0e49aa42c5c0edff372b23c41679b1ea5dd3ed4
+ checksum: 10c0/7c3471ae5cf7521fd8da5b03e137e8d3733fc5ee4524ce01fb0c812f0bb77cb2c9657bc8a6253186be3a15bb4caa8974993c7ddc067f554ecc6a026f0a3b5e12
languageName: node
linkType: hard
-"@babel/plugin-transform-duplicate-keys@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.7"
+"@babel/plugin-transform-duplicate-keys@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/b4079981e2db19737a0f1a00254e7388e2d3c01ce36e9fd826e4d86d3c1755339495e29c71fd7c84a068201ec24687328d48f3bf53b32b6d6224f51d9a34da74
+ checksum: 10c0/d0c74894b9bf6ff2a04189afffb9cd43d87ebd7b7943e51a827c92d2aaa40fa89ac81565a2fd6fbeabf9e38413a9264c45862eee2b017f1d49046cc3c8ff06b4
languageName: node
linkType: hard
-"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.7"
+"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.9"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/e4946090ff6d88d54b78265ee653079ec34c117ac046e22f66f7c4ac44249cdc2dfca385bc5bf4386db668b9948eeb12985589500188bc252e684c7714c31475
+ checksum: 10c0/a8039a6d2b90e011c7b30975edee47b5b1097cf3c2f95ec1f5ddd029898d783a995f55f7d6eb8d6bb8873c060fb64f9f1ccba938dfe22d118d09cf68e0cd3bf6
languageName: node
linkType: hard
-"@babel/plugin-transform-dynamic-import@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.8"
+"@babel/plugin-transform-dynamic-import@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/9726abc1b07771a9c1e3670908ac425d21e29f54c775d10ed7a4e2bc0a18e07600f70bbc531deba3fb3ff7f6763c189200593264c6f784dac583e653b66fe754
+ checksum: 10c0/5e643a8209072b668350f5788f23c64e9124f81f958b595c80fecca6561086d8ef346c04391b9e5e4cad8b8cbe22c258f0cd5f4ea89b97e74438e7d1abfd98cf
languageName: node
linkType: hard
-"@babel/plugin-transform-exponentiation-operator@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.25.7"
+"@babel/plugin-transform-exponentiation-operator@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.25.9"
dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/c8537b9f3cddc5a8d3710f6980196dc7a0f4389f8f82617312a5f7b8b15bcd8ddaeba783c687c3ac6031eb0a4ba0bc380a98da6bf7efe98e225602a98ad42a1e
+ checksum: 10c0/3b42f65bab3fee28c385115ce6bcb6ba544dff187012df408a432c9fb44c980afd898911020c723dc1c9257aaf3d7d0131ad83ba15102bf30ad9a86fc2a8a912
languageName: node
linkType: hard
-"@babel/plugin-transform-export-namespace-from@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.8"
+"@babel/plugin-transform-export-namespace-from@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/8a2e1205dd727a96a9adef0e981d68c61b1c286480b9136e2aa67ce3e2c742be4f87feb9fb4c5548a401aba0953d43d66e9ec36a54dea6a7c15f1ee9345baf57
+ checksum: 10c0/f291ea2ec5f36de9028a00cbd5b32f08af281b8183bf047200ff001f4cb260be56f156b2449f42149448a4a033bd6e86a3a7f06d0c2825532eb0ae6b03058dfb
languageName: node
linkType: hard
-"@babel/plugin-transform-for-of@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-for-of@npm:7.25.7"
+"@babel/plugin-transform-for-of@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-for-of@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/08a37a1742368a422d095c998ed76f60f6bf3f9cc060033be121d803fd2dddc08fe543e48ee49c022bdc9ed80893ca79d084958d83d30684178b088774754277
+ checksum: 10c0/bf11abc71934a1f369f39cd7a33cf3d4dc5673026a53f70b7c1238c4fcc44e68b3ca1bdbe3db2076f60defb6ffe117cbe10b90f3e1a613b551d88f7c4e693bbe
languageName: node
linkType: hard
-"@babel/plugin-transform-function-name@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-function-name@npm:7.25.7"
+"@babel/plugin-transform-function-name@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-function-name@npm:7.25.9"
dependencies:
- "@babel/helper-compilation-targets": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
+ "@babel/helper-compilation-targets": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/traverse": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/ca98e1116c0ada7211ed43e4b7f21ca15f95bbbdad70f2fbe1ec2d90a97daedf9f22fcb0a25c8b164a5e394f509f2e4d1f7609d26dc938a58d37c5ee9b80088a
+ checksum: 10c0/8e67fbd1dd367927b8b6afdf0a6e7cb3a3fd70766c52f700ca77428b6d536f6c9d7ec643e7762d64b23093233765c66bffa40e31aabe6492682879bcb45423e1
languageName: node
linkType: hard
-"@babel/plugin-transform-json-strings@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-json-strings@npm:7.25.8"
+"@babel/plugin-transform-json-strings@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-json-strings@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/2a6cf69ebe8deebc39c56adae75d609e16786dc4cbd83577eefdc838bd89ca8974671d47e2669b8e65ef9b7ace427f7c2c5a9fc6aa09247b10e141d15fee81cf
+ checksum: 10c0/00bc2d4751dfc9d44ab725be16ee534de13cfd7e77dfb386e5dac9e48101ce8fcbc5971df919dc25b3f8a0fa85d6dc5f2a0c3cf7ec9d61c163d9823c091844f0
languageName: node
linkType: hard
-"@babel/plugin-transform-literals@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-literals@npm:7.25.7"
+"@babel/plugin-transform-literals@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-literals@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/c2c2488102f33e566f45becdcb632e53bd052ecfb2879deb07a614b3e9437e3b624c3b16d080096d50b0b622edebd03e438acbf9260bcc41167897963f64560e
+ checksum: 10c0/00b14e9c14cf1e871c1f3781bf6334cac339c360404afd6aba63d2f6aca9270854d59a2b40abff1c4c90d4ffdca614440842d3043316c2f0ceb155fdf7726b3b
languageName: node
linkType: hard
-"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.8"
+"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/9adc2634c94b283b682fbf71bbec553bd8448196213491a0ef9ea167993c9c36dcb2fbefbd834e113cfed843a67290131bc99e463f8702043c3f4e3a99bb807e
+ checksum: 10c0/6e2051e10b2d6452980fc4bdef9da17c0d6ca48f81b8529e8804b031950e4fff7c74a7eb3de4a2b6ad22ffb631d0b67005425d232cce6e2b29ce861c78ed04f5
languageName: node
linkType: hard
-"@babel/plugin-transform-member-expression-literals@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.7"
+"@babel/plugin-transform-member-expression-literals@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/d6936b98ae4d3daed850dc4e064042ea4375f815219ba9d8591373bf1fba4cfdb5be42623ae8882f2d666cc34af650a4855e2a5ad89e3c235d73a6f172f9969c
+ checksum: 10c0/91d17b451bcc5ea9f1c6f8264144057ade3338d4b92c0b248366e4db3a7790a28fd59cc56ac433a9627a9087a17a5684e53f4995dd6ae92831cb72f1bd540b54
languageName: node
linkType: hard
-"@babel/plugin-transform-modules-amd@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-modules-amd@npm:7.25.7"
+"@babel/plugin-transform-modules-amd@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-modules-amd@npm:7.25.9"
dependencies:
- "@babel/helper-module-transforms": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-module-transforms": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/c0bc999206c3834c090e6559a6c8a55d7672d3573104e832223ebe7df99bd1b82fc850e15ba32f512c84b0db1cdb613b66fa60abe9abb9c7e8dcbff91649b356
+ checksum: 10c0/849957d9484d0a2d93331226ed6cf840cee7d57454549534c447c93f8b839ef8553eae9877f8f550e3c39f14d60992f91244b2e8e7502a46064b56c5d68ba855
languageName: node
linkType: hard
-"@babel/plugin-transform-modules-commonjs@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.7"
+"@babel/plugin-transform-modules-commonjs@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.9"
dependencies:
- "@babel/helper-module-transforms": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-simple-access": "npm:^7.25.7"
+ "@babel/helper-module-transforms": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/helper-simple-access": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/2f1c945fc3c9b690b0ddcf2c80156b2e4fbf2cf15aac43ac8fe6e4b34125869528839a53d07c564e62e4aed394ebdc1d2c3b796b547374455522581c11b7599c
+ checksum: 10c0/6ce771fb04d4810257fc8900374fece877dacaed74b05eaa16ad9224b390f43795c4d046cbe9ae304e1eb5aad035d37383895e3c64496d647c2128d183916e74
languageName: node
linkType: hard
-"@babel/plugin-transform-modules-systemjs@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.7"
+"@babel/plugin-transform-modules-systemjs@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.9"
dependencies:
- "@babel/helper-module-transforms": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-validator-identifier": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
+ "@babel/helper-module-transforms": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/helper-validator-identifier": "npm:^7.25.9"
+ "@babel/traverse": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/95eaea7082636710c61e49e58b3907e85ec79db4327411d3784f28592509fbe94a53cc3d20a36a1cf245efc6d3f0017eae15b45ffd645c1ab949bb4e1670e6bb
+ checksum: 10c0/8299e3437542129c2684b86f98408c690df27db4122a79edded4782cf04e755d6ecb05b1e812c81a34224a81e664303392d5f3c36f3d2d51fdc99bb91c881e9a
languageName: node
linkType: hard
-"@babel/plugin-transform-modules-umd@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-modules-umd@npm:7.25.7"
+"@babel/plugin-transform-modules-umd@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-modules-umd@npm:7.25.9"
dependencies:
- "@babel/helper-module-transforms": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-module-transforms": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/8849ab04eecdb73cd37e2d7289449fa5256331832b0304c220b2a6aaa12e2d2dd87684f2813412d1fc5bdb3d6b55cc08c6386d3273fe05a65177c09bee5b6769
+ checksum: 10c0/fa11a621f023e2ac437b71d5582f819e667c94306f022583d77da9a8f772c4128861a32bbb63bef5cba581a70cd7dbe87a37238edaafcfacf889470c395e7076
languageName: node
linkType: hard
-"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.7"
+"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.9"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/eb55fec55dc930cd122911f3e4a421320fa8b1b4de85bfd7ef11b46c611ec69b0213c114a6e1c6bc224d6b954ff183a0caa7251267d5258ecc0f00d6d9ca1d52
+ checksum: 10c0/32b14fda5c885d1706863f8af2ee6c703d39264355b57482d3a24fce7f6afbd4c7a0896e501c0806ed2b0759beb621bf7f3f7de1fbbc82026039a98d961e78ef
languageName: node
linkType: hard
-"@babel/plugin-transform-new-target@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-new-target@npm:7.25.7"
+"@babel/plugin-transform-new-target@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-new-target@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/8e5dce6d027e0f3fd394578ea1af7f515de157793a15c23a5aad7034a6d8a4005ef280238e67a232bb4dd4fafd3a264fed462deb149128ddd9ce59ff6f575cff
+ checksum: 10c0/7b5f1b7998f1cf183a7fa646346e2f3742e5805b609f28ad5fee22d666a15010f3e398b7e1ab78cddb7901841a3d3f47135929af23d54e8bf4ce69b72051f71e
languageName: node
linkType: hard
-"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.3, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.8"
+"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.3, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/3cb7c44cffccae42e104755acb31b4f00bc27d8c88102ae6f30dca508832f98fa5b746bead0fc7c0c6ddcf83f336829be4b64245c6c7ce26b3ef591937ec54a4
+ checksum: 10c0/eb623db5be078a1c974afe7c7797b0309ba2ea9e9237c0b6831ade0f56d8248bb4ab3432ab34495ff8c877ec2fe412ff779d1e9b3c2b8139da18e1753d950bc3
languageName: node
linkType: hard
-"@babel/plugin-transform-numeric-separator@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.8"
+"@babel/plugin-transform-numeric-separator@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/d23b3ebc50513f24510791ac2cad43e3c6ea08579f54dccfd4ed5e5d5084f02da0576ea42ea999fb51e1f94f42857cac96a1a29ac6728fc262fbe87ec966dc18
+ checksum: 10c0/ad63ad341977844b6f9535fcca15ca0d6d6ad112ed9cc509d4f6b75e9bf4b1b1a96a0bcb1986421a601505d34025373608b5f76d420d924b4e21f86b1a1f2749
languageName: node
linkType: hard
-"@babel/plugin-transform-object-rest-spread@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.8"
+"@babel/plugin-transform-object-rest-spread@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.9"
dependencies:
- "@babel/helper-compilation-targets": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/plugin-transform-parameters": "npm:^7.25.7"
+ "@babel/helper-compilation-targets": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/plugin-transform-parameters": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/058d5f5bb61068997fb78855011dd175d441da84717640852bbfd12a5919acf8d8c5a14c1debfe87d230f3f4c47c22fcad3d7fa1acd72e5e48b2fff93b6c1dd9
+ checksum: 10c0/02077d8abd83bf6a48ff0b59e98d7561407cf75b591cffd3fdc5dc5e9a13dec1c847a7a690983762a3afecddb244831e897e0515c293e7c653b262c30cd614af
languageName: node
linkType: hard
-"@babel/plugin-transform-object-super@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-object-super@npm:7.25.7"
+"@babel/plugin-transform-object-super@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-object-super@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-replace-supers": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/helper-replace-supers": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/7f2968d4da997101b63fd3b74445c9b16f56bd32cd8a0a16c368af9d3e983e7675c1b05d18601f32307cb06e7d884ee11d13ff18a1f6830c0db243a9a852afab
+ checksum: 10c0/0348d00e76f1f15ada44481a76e8c923d24cba91f6e49ee9b30d6861eb75344e7f84d62a18df8a6f9e9a7eacf992f388174b7f9cc4ce48287bcefca268c07600
languageName: node
linkType: hard
-"@babel/plugin-transform-optional-catch-binding@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.8"
+"@babel/plugin-transform-optional-catch-binding@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/f4360e62ca4aa998db31548d0ef06836d958bcb29dee58f5c62d0c29b6b2bff1b54871195bd032825fe3dd79a4fd8275e165148c8d4b57694bcf72135c8f7d24
+ checksum: 10c0/722fd5ee12ab905309d4e84421584fce4b6d9e6b639b06afb20b23fa809e6ab251e908a8d5e8b14d066a28186b8ef8f58d69fd6eca9ce1b9ef7af08333378f6c
languageName: node
linkType: hard
-"@babel/plugin-transform-optional-chaining@npm:^7.25.7, @babel/plugin-transform-optional-chaining@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.8"
+"@babel/plugin-transform-optional-chaining@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/a1cdbfc249619fa6b37e57f81600701281629d86a57e616b0c2b29816d0c43114a2296ce089564afd3aa7870c8aad62e907658ffef2c110662af14ee23d5247f
+ checksum: 10c0/041ad2beae5affb8e68a0bcb6882a2dadb758db3c629a0e012f57488ab43a822ac1ea17a29db8ef36560a28262a5dfa4dbbbf06ed6e431db55abe024b7cd3961
languageName: node
linkType: hard
-"@babel/plugin-transform-parameters@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-parameters@npm:7.25.7"
+"@babel/plugin-transform-parameters@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-parameters@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/b40ba70278842ce1e800d7ab400df730994941550da547ef453780023bd61a9b8acf4b9fb8419c1b5bcbe09819a1146ff59369db11db07eb71870bef86a12422
+ checksum: 10c0/aecb446754b9e09d6b6fa95fd09e7cf682f8aaeed1d972874ba24c0a30a7e803ad5f014bb1fffc7bfeed22f93c0d200947407894ea59bf7687816f2f464f8df3
languageName: node
linkType: hard
-"@babel/plugin-transform-private-methods@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-private-methods@npm:7.25.7"
+"@babel/plugin-transform-private-methods@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-private-methods@npm:7.25.9"
dependencies:
- "@babel/helper-create-class-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-create-class-features-plugin": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/92e076f63f7c4696e1321dafdd56c4212eb41784cdadba0ebc39091f959a76d357c3df61a6c668be81d6b6ad8964ee458e85752ab0c6cfbbaf2066903edda732
+ checksum: 10c0/64bd71de93d39daefa3e6c878d6f2fd238ed7d4ecfb13b0e771ddbbc131487def3ceb405b62b534a5cbb5043046b504e1b189b0a45229cc75af979a9fbcaa7bd
languageName: node
linkType: hard
-"@babel/plugin-transform-private-property-in-object@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.8"
+"@babel/plugin-transform-private-property-in-object@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.9"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
- "@babel/helper-create-class-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-annotate-as-pure": "npm:^7.25.9"
+ "@babel/helper-create-class-features-plugin": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/61b5e3a4eb94caf38d6e9ff7bff1ac8927758141aaa4891036d3490866ecee53beaefd7893519fec42a4c55f33374a17fc0e49694cdaf95668082073f0fe4a79
+ checksum: 10c0/d4965de19d9f204e692cc74dbc39f0bb469e5f29df96dd4457ea23c5e5596fba9d5af76eaa96f9d48a9fc20ec5f12a94c679285e36b8373406868ea228109e27
languageName: node
linkType: hard
-"@babel/plugin-transform-property-literals@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-property-literals@npm:7.25.7"
+"@babel/plugin-transform-property-literals@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-property-literals@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/6d5bccdc772207906666ad5201bd91e4e132e1d806dbcf4163a1d08e18c57cc3795578c4e10596514bcd6afaf9696f478ea4f0dea890176d93b9cb077b9e5c55
+ checksum: 10c0/1639e35b2438ccf3107af760d34e6a8e4f9acdd3ae6186ae771a6e3029bd59dfe778e502d67090f1185ecda5c16addfed77561e39c518a3f51ff10d41790e106
languageName: node
linkType: hard
@@ -1060,290 +1060,290 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-react-display-name@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-react-display-name@npm:7.25.7"
+"@babel/plugin-transform-react-display-name@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-react-display-name@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/a0c537cc7c328ed7468d3b6a37bf0d9cb15d94afcdf3f2849ce6e5a68494fc61f0fa4fc529482a6b95b00f3c5c734f310bf18085293bff40702789f06c816f36
+ checksum: 10c0/63a0f962d64e71baf87c212755419e25c637d2d95ea6fdc067df26b91e606ae186442ae815b99a577eca9bf5404d9577ecad218a3cf42d0e9e286ca7b003a992
languageName: node
linkType: hard
"@babel/plugin-transform-react-inline-elements@npm:^7.21.0":
- version: 7.25.7
- resolution: "@babel/plugin-transform-react-inline-elements@npm:7.25.7"
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-react-inline-elements@npm:7.25.9"
dependencies:
- "@babel/helper-builder-react-jsx": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-builder-react-jsx": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/de85180c09002083cb330ef28d5b31b44e6ac6565c700b603be76e629f5a92c59ff69f79c08cc1dbd2dd1f271f44fe8d4c751deaf66c059ba721aa3cb43c881e
+ checksum: 10c0/d745bcfa8e51acc497b5ea2ff2fc4215cd39ebdb54703f2973962e3818a4829081ebc9e7818db28f90d1295e0b02e140986509ba48eef8aaa9de8c09b9434646
languageName: node
linkType: hard
-"@babel/plugin-transform-react-jsx-development@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-react-jsx-development@npm:7.25.7"
+"@babel/plugin-transform-react-jsx-development@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-react-jsx-development@npm:7.25.9"
dependencies:
- "@babel/plugin-transform-react-jsx": "npm:^7.25.7"
+ "@babel/plugin-transform-react-jsx": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/a3dc14644d09a6d22875af7b5584393ab53e467e0531cd192fc6242504dacaffa421e89265ba7f84fd4edef2b7b100d2e2ebf092a4dce2b55cf9c5fe29390c18
+ checksum: 10c0/c0b92ff9eb029620abf320ff74aae182cea87524723d740fb48a4373d0d16bddf5edbe1116e7ba341332a5337e55c2ceaee8b8cad5549e78af7f4b3cfe77debb
languageName: node
linkType: hard
-"@babel/plugin-transform-react-jsx@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-react-jsx@npm:7.25.7"
+"@babel/plugin-transform-react-jsx@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-react-jsx@npm:7.25.9"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
- "@babel/helper-module-imports": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/plugin-syntax-jsx": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
+ "@babel/helper-annotate-as-pure": "npm:^7.25.9"
+ "@babel/helper-module-imports": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/plugin-syntax-jsx": "npm:^7.25.9"
+ "@babel/types": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/6766b0357b8bbfcb77fca5350f06cf822c89bbe75ddcaea24614601ef23957504da24e76597d743038ce8fa081373b0663c8ad0c86d7c7226e8185f0680b8b56
+ checksum: 10c0/5c9947e8ed141f7606f54da3e05eea1074950c5b8354c39df69cb7f43cb5a83c6c9d7973b24bc3d89341c8611f8ad50830a98ab10d117d850e6bdd8febdce221
languageName: node
linkType: hard
-"@babel/plugin-transform-react-pure-annotations@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.25.7"
+"@babel/plugin-transform-react-pure-annotations@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.25.9"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-annotate-as-pure": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/d92c9b511850fb6dea71966a0d4f313d67e317db7fc3633a7ff2e27d6df2e95cbc91c4c25abdb6c8db651fcda842a0cb7433835a8a9d4a3fdc5d452068428101
+ checksum: 10c0/7c8eac04644ad19dcd71bb8e949b0ae22b9e548fa4a58e545d3d0342f647fb89db7f8789a7c5b8074d478ce6d3d581eaf47dd4b36027e16fd68211c383839abc
languageName: node
linkType: hard
-"@babel/plugin-transform-regenerator@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-regenerator@npm:7.25.7"
+"@babel/plugin-transform-regenerator@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-regenerator@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
regenerator-transform: "npm:^0.15.2"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/7ee3a57c4050bc908ef7ac392d810826b294970a7182f4ec34a8ca93dbe36deb21bc862616d46a6f3d881d6b5749930e1679e875b638a00866d844a4250df212
+ checksum: 10c0/eef3ffc19f7d291b863635f32b896ad7f87806d9219a0d3404a470219abcfc5b43aabecd691026c48e875b965760d9c16abee25e6447272233f30cd07f453ec7
languageName: node
linkType: hard
-"@babel/plugin-transform-reserved-words@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-reserved-words@npm:7.25.7"
+"@babel/plugin-transform-reserved-words@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-reserved-words@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/920c98130daff6c1288fb13a9a2d2e45863bba93e619cb88d90e1f5b5cb358a3ee8880a425a3adb1b4bd5dbb6bd0500eea3370fc612633045eec851b08cc586c
+ checksum: 10c0/8b028b80d1983e3e02f74e21924323cc66ba930e5c5758909a122aa7d80e341b8b0f42e1698e42b50d47a6ba911332f584200b28e1a4e2104b7514d9dc011e96
languageName: node
linkType: hard
"@babel/plugin-transform-runtime@npm:^7.22.4":
- version: 7.25.7
- resolution: "@babel/plugin-transform-runtime@npm:7.25.7"
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-runtime@npm:7.25.9"
dependencies:
- "@babel/helper-module-imports": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-module-imports": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
babel-plugin-polyfill-corejs2: "npm:^0.4.10"
babel-plugin-polyfill-corejs3: "npm:^0.10.6"
babel-plugin-polyfill-regenerator: "npm:^0.6.1"
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/9b2514e9079361ac8e7e500ffd522dad869d61a3894302da7e29bbac80de00276c8a1b4394d1dcf0b51c57b2c854919928df9648be336139fdf1d6ecd6d1bb32
+ checksum: 10c0/888a4998ba0a2313de347954c9a8dfeccbff0633c69d33aee385b8878eba2b429dbfb00c3cc04f6bca454b9be8afa01ebbd73defb7fbbb6e2d3086205c07758b
languageName: node
linkType: hard
-"@babel/plugin-transform-shorthand-properties@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.7"
+"@babel/plugin-transform-shorthand-properties@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/4250f89a0072f0f400be7a2e3515227b8e2518737899bd57d497e5173284a0e05d812e4a3c219ffcd484e9fa9a01c19fce5acd77bbb898f4d594512c56701eb4
+ checksum: 10c0/05a20d45f0fb62567644c507ccd4e379c1a74dacf887d2b2cac70247415e3f6d7d3bf4850c8b336053144715fedb6200fc38f7130c4b76c94eec9b9c0c2a8e9b
languageName: node
linkType: hard
-"@babel/plugin-transform-spread@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-spread@npm:7.25.7"
+"@babel/plugin-transform-spread@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-spread@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/258bd1b52388cd7425d0ae25fa39538734f7540ea503a1d8a72211d33f6f214cb4e3b73d6cd03016cbcff5d41169f1e578b9ea331965ad224d223591983e90a7
+ checksum: 10c0/996c8fed238efc30e0664f9f58bd7ec8c148f4659f84425f68923a094fe891245711d26eb10d1f815f50c124434e076e860dbe9662240844d1b77cd09907dcdf
languageName: node
linkType: hard
-"@babel/plugin-transform-sticky-regex@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.7"
+"@babel/plugin-transform-sticky-regex@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/0e466cfc3ca1e0db4bb11eb630215b0e1f43066d7678325e5ddadcf5a118b2351a528f67205729c32ac5b78ab68ab7f40517dd33bcb1fb6b456509f5f54ce097
+ checksum: 10c0/e9612b0615dab4c4fba1c560769616a9bd7b9226c73191ef84b6c3ee185c8b719b4f887cdd8336a0a13400ce606ab4a0d33bc8fa6b4fcdb53e2896d07f2568f6
languageName: node
linkType: hard
-"@babel/plugin-transform-template-literals@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-template-literals@npm:7.25.7"
+"@babel/plugin-transform-template-literals@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-template-literals@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/a3455303b6841cb536ac66d1a2d03c194b9f371519482d8d1e8edbd33bf5ca7cdd5db1586b2b0ea5f909ebf74a0eafacf0fb28d257e4905445282dcdccfa6139
+ checksum: 10c0/5144da6036807bbd4e9d2a8b92ae67a759543929f34f4db9b463448a77298f4a40bf1e92e582db208fe08ee116224806a3bd0bed75d9da404fc2c0af9e6da540
languageName: node
linkType: hard
-"@babel/plugin-transform-typeof-symbol@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-typeof-symbol@npm:7.25.7"
+"@babel/plugin-transform-typeof-symbol@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-typeof-symbol@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/ce1a0744a900b05de1372a70508c4148f17eb941c482da26eb369b9f0347570dce45470c8a86d907bc3a0443190344da1e18489ecfecb30388ab6178e8a9916b
+ checksum: 10c0/2b19fd88608589d9bc6b607ff17b06791d35c67ef3249f4659283454e6a9984241e3bd4c4eb72bb8b3d860a73223f3874558b861adb7314aa317c1c6a2f0cafb
languageName: node
linkType: hard
-"@babel/plugin-transform-typescript@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-typescript@npm:7.25.7"
+"@babel/plugin-transform-typescript@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-typescript@npm:7.25.9"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
- "@babel/helper-create-class-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7"
- "@babel/plugin-syntax-typescript": "npm:^7.25.7"
+ "@babel/helper-annotate-as-pure": "npm:^7.25.9"
+ "@babel/helper-create-class-features-plugin": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9"
+ "@babel/plugin-syntax-typescript": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/5fa839b9560221698edff5e00b5cccc658c7875efaa7971c66d478f5b026770f12dd47b1be024463a44f9e29b4e14e8ddddbf4a2b324b0b94f58370dd5ae7195
+ checksum: 10c0/c607ddb45f7e33cfcb928aad05cb1b18b1ecb564d2329d8f8e427f75192511aa821dee42d26871f1bdffbd883853e150ba81436664646c6e6b13063e65ce1475
languageName: node
linkType: hard
-"@babel/plugin-transform-unicode-escapes@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.7"
+"@babel/plugin-transform-unicode-escapes@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/8b1f71fda0a832c6e26ba4c00f99e9033e6f9b36ced542a512921f4ad861a70e2fec2bd54a91a5ca2efa46aaa8c8893e4c602635c4ef172bd3ed6eef3178c70b
+ checksum: 10c0/615c84d7c53e1575d54ba9257e753e0b98c5de1e3225237d92f55226eaab8eb5bceb74df43f50f4aa162b0bbcc934ed11feafe2b60b8ec4934ce340fad4b8828
languageName: node
linkType: hard
-"@babel/plugin-transform-unicode-property-regex@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.7"
+"@babel/plugin-transform-unicode-property-regex@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.9"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/b4bfcf7529138d00671bf5cdfe606603d52cfe57ec1be837da57683f404fc0b0c171834a02515eb03379e5c806121866d097b90e31cb437d21d0ea59368ad82b
+ checksum: 10c0/1685836fc38af4344c3d2a9edbd46f7c7b28d369b63967d5b83f2f6849ec45b97223461cea3d14cc3f0be6ebb284938e637a5ca3955c0e79c873d62f593d615c
languageName: node
linkType: hard
-"@babel/plugin-transform-unicode-regex@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.7"
+"@babel/plugin-transform-unicode-regex@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.9"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/73ae34c02ea8b7ac7e4efa690f8c226089c074e3fef658d2a630ad898a93550d84146ce05e073c271c8b2bbba61cbbfd5a2002a7ea940dcad3274e5b5dcb6bcf
+ checksum: 10c0/448004f978279e726af26acd54f63f9002c9e2582ecd70d1c5c4436f6de490fcd817afb60016d11c52f5ef17dbaac2590e8cc7bfaf4e91b58c452cf188c7920f
languageName: node
linkType: hard
-"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.7"
+"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.9"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/39e45ae3db7adfc3457b1d6ba5608ffbace957ad019785967e5357a6639f261765bda12363f655d39265f5a2834af26327037751420191d0b73152ccc7ce3c35
+ checksum: 10c0/56ee04fbe236b77cbcd6035cbf0be7566d1386b8349154ac33244c25f61170c47153a9423cd1d92855f7d6447b53a4a653d9e8fd1eaeeee14feb4b2baf59bd9f
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.25.8
- resolution: "@babel/preset-env@npm:7.25.8"
+ version: 7.25.9
+ resolution: "@babel/preset-env@npm:7.25.9"
dependencies:
- "@babel/compat-data": "npm:^7.25.8"
- "@babel/helper-compilation-targets": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-validator-option": "npm:^7.25.7"
- "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.7"
- "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.7"
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.7"
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.7"
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.7"
+ "@babel/compat-data": "npm:^7.25.9"
+ "@babel/helper-compilation-targets": "npm:^7.25.9"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/helper-validator-option": "npm:^7.25.9"
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.9"
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.9"
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.9"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.9"
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.9"
"@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2"
- "@babel/plugin-syntax-import-assertions": "npm:^7.25.7"
- "@babel/plugin-syntax-import-attributes": "npm:^7.25.7"
+ "@babel/plugin-syntax-import-assertions": "npm:^7.25.9"
+ "@babel/plugin-syntax-import-attributes": "npm:^7.25.9"
"@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6"
- "@babel/plugin-transform-arrow-functions": "npm:^7.25.7"
- "@babel/plugin-transform-async-generator-functions": "npm:^7.25.8"
- "@babel/plugin-transform-async-to-generator": "npm:^7.25.7"
- "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.7"
- "@babel/plugin-transform-block-scoping": "npm:^7.25.7"
- "@babel/plugin-transform-class-properties": "npm:^7.25.7"
- "@babel/plugin-transform-class-static-block": "npm:^7.25.8"
- "@babel/plugin-transform-classes": "npm:^7.25.7"
- "@babel/plugin-transform-computed-properties": "npm:^7.25.7"
- "@babel/plugin-transform-destructuring": "npm:^7.25.7"
- "@babel/plugin-transform-dotall-regex": "npm:^7.25.7"
- "@babel/plugin-transform-duplicate-keys": "npm:^7.25.7"
- "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.7"
- "@babel/plugin-transform-dynamic-import": "npm:^7.25.8"
- "@babel/plugin-transform-exponentiation-operator": "npm:^7.25.7"
- "@babel/plugin-transform-export-namespace-from": "npm:^7.25.8"
- "@babel/plugin-transform-for-of": "npm:^7.25.7"
- "@babel/plugin-transform-function-name": "npm:^7.25.7"
- "@babel/plugin-transform-json-strings": "npm:^7.25.8"
- "@babel/plugin-transform-literals": "npm:^7.25.7"
- "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.8"
- "@babel/plugin-transform-member-expression-literals": "npm:^7.25.7"
- "@babel/plugin-transform-modules-amd": "npm:^7.25.7"
- "@babel/plugin-transform-modules-commonjs": "npm:^7.25.7"
- "@babel/plugin-transform-modules-systemjs": "npm:^7.25.7"
- "@babel/plugin-transform-modules-umd": "npm:^7.25.7"
- "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.25.7"
- "@babel/plugin-transform-new-target": "npm:^7.25.7"
- "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.8"
- "@babel/plugin-transform-numeric-separator": "npm:^7.25.8"
- "@babel/plugin-transform-object-rest-spread": "npm:^7.25.8"
- "@babel/plugin-transform-object-super": "npm:^7.25.7"
- "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.8"
- "@babel/plugin-transform-optional-chaining": "npm:^7.25.8"
- "@babel/plugin-transform-parameters": "npm:^7.25.7"
- "@babel/plugin-transform-private-methods": "npm:^7.25.7"
- "@babel/plugin-transform-private-property-in-object": "npm:^7.25.8"
- "@babel/plugin-transform-property-literals": "npm:^7.25.7"
- "@babel/plugin-transform-regenerator": "npm:^7.25.7"
- "@babel/plugin-transform-reserved-words": "npm:^7.25.7"
- "@babel/plugin-transform-shorthand-properties": "npm:^7.25.7"
- "@babel/plugin-transform-spread": "npm:^7.25.7"
- "@babel/plugin-transform-sticky-regex": "npm:^7.25.7"
- "@babel/plugin-transform-template-literals": "npm:^7.25.7"
- "@babel/plugin-transform-typeof-symbol": "npm:^7.25.7"
- "@babel/plugin-transform-unicode-escapes": "npm:^7.25.7"
- "@babel/plugin-transform-unicode-property-regex": "npm:^7.25.7"
- "@babel/plugin-transform-unicode-regex": "npm:^7.25.7"
- "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.7"
+ "@babel/plugin-transform-arrow-functions": "npm:^7.25.9"
+ "@babel/plugin-transform-async-generator-functions": "npm:^7.25.9"
+ "@babel/plugin-transform-async-to-generator": "npm:^7.25.9"
+ "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.9"
+ "@babel/plugin-transform-block-scoping": "npm:^7.25.9"
+ "@babel/plugin-transform-class-properties": "npm:^7.25.9"
+ "@babel/plugin-transform-class-static-block": "npm:^7.25.9"
+ "@babel/plugin-transform-classes": "npm:^7.25.9"
+ "@babel/plugin-transform-computed-properties": "npm:^7.25.9"
+ "@babel/plugin-transform-destructuring": "npm:^7.25.9"
+ "@babel/plugin-transform-dotall-regex": "npm:^7.25.9"
+ "@babel/plugin-transform-duplicate-keys": "npm:^7.25.9"
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.9"
+ "@babel/plugin-transform-dynamic-import": "npm:^7.25.9"
+ "@babel/plugin-transform-exponentiation-operator": "npm:^7.25.9"
+ "@babel/plugin-transform-export-namespace-from": "npm:^7.25.9"
+ "@babel/plugin-transform-for-of": "npm:^7.25.9"
+ "@babel/plugin-transform-function-name": "npm:^7.25.9"
+ "@babel/plugin-transform-json-strings": "npm:^7.25.9"
+ "@babel/plugin-transform-literals": "npm:^7.25.9"
+ "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.9"
+ "@babel/plugin-transform-member-expression-literals": "npm:^7.25.9"
+ "@babel/plugin-transform-modules-amd": "npm:^7.25.9"
+ "@babel/plugin-transform-modules-commonjs": "npm:^7.25.9"
+ "@babel/plugin-transform-modules-systemjs": "npm:^7.25.9"
+ "@babel/plugin-transform-modules-umd": "npm:^7.25.9"
+ "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.25.9"
+ "@babel/plugin-transform-new-target": "npm:^7.25.9"
+ "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.9"
+ "@babel/plugin-transform-numeric-separator": "npm:^7.25.9"
+ "@babel/plugin-transform-object-rest-spread": "npm:^7.25.9"
+ "@babel/plugin-transform-object-super": "npm:^7.25.9"
+ "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.9"
+ "@babel/plugin-transform-optional-chaining": "npm:^7.25.9"
+ "@babel/plugin-transform-parameters": "npm:^7.25.9"
+ "@babel/plugin-transform-private-methods": "npm:^7.25.9"
+ "@babel/plugin-transform-private-property-in-object": "npm:^7.25.9"
+ "@babel/plugin-transform-property-literals": "npm:^7.25.9"
+ "@babel/plugin-transform-regenerator": "npm:^7.25.9"
+ "@babel/plugin-transform-reserved-words": "npm:^7.25.9"
+ "@babel/plugin-transform-shorthand-properties": "npm:^7.25.9"
+ "@babel/plugin-transform-spread": "npm:^7.25.9"
+ "@babel/plugin-transform-sticky-regex": "npm:^7.25.9"
+ "@babel/plugin-transform-template-literals": "npm:^7.25.9"
+ "@babel/plugin-transform-typeof-symbol": "npm:^7.25.9"
+ "@babel/plugin-transform-unicode-escapes": "npm:^7.25.9"
+ "@babel/plugin-transform-unicode-property-regex": "npm:^7.25.9"
+ "@babel/plugin-transform-unicode-regex": "npm:^7.25.9"
+ "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.9"
"@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.6"
@@ -1352,7 +1352,7 @@ __metadata:
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/a45cd64ca082262998f6cf508b413ff8a9e967bf33e58337a1fe41c6c939a4c25cc73cd58387792c00d43905cf5fb0ea5ef88dfdc2addf2e8133743088c86c72
+ checksum: 10c0/b8b391e3fe69918a2a4f4366034113bd6f57c9748974dbe1b807a728bc41434f1e003cb4204ca63a2a01cbb7c05ba96036261b64756243374374353931d346e6
languageName: node
linkType: hard
@@ -1370,33 +1370,33 @@ __metadata:
linkType: hard
"@babel/preset-react@npm:^7.12.5, @babel/preset-react@npm:^7.22.3":
- version: 7.25.7
- resolution: "@babel/preset-react@npm:7.25.7"
+ version: 7.25.9
+ resolution: "@babel/preset-react@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-validator-option": "npm:^7.25.7"
- "@babel/plugin-transform-react-display-name": "npm:^7.25.7"
- "@babel/plugin-transform-react-jsx": "npm:^7.25.7"
- "@babel/plugin-transform-react-jsx-development": "npm:^7.25.7"
- "@babel/plugin-transform-react-pure-annotations": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/helper-validator-option": "npm:^7.25.9"
+ "@babel/plugin-transform-react-display-name": "npm:^7.25.9"
+ "@babel/plugin-transform-react-jsx": "npm:^7.25.9"
+ "@babel/plugin-transform-react-jsx-development": "npm:^7.25.9"
+ "@babel/plugin-transform-react-pure-annotations": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/b133b1a2f46c70a337d8b1ef442e09e3dbdaecb0d6bed8f1cb64dfddc31c16e248b017385ab909caeebd8462111c9c0e1c5409deb10f2be5cb5bcfdaa4d27718
+ checksum: 10c0/c294b475ee741f01f63ea0d828862811c453fabc6023f01814ce983bc316388e9d73290164d2b1384c2684db9c330803a3d4d2170285b105dcbacd483329eb93
languageName: node
linkType: hard
"@babel/preset-typescript@npm:^7.21.5":
- version: 7.25.7
- resolution: "@babel/preset-typescript@npm:7.25.7"
+ version: 7.25.9
+ resolution: "@babel/preset-typescript@npm:7.25.9"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-validator-option": "npm:^7.25.7"
- "@babel/plugin-syntax-jsx": "npm:^7.25.7"
- "@babel/plugin-transform-modules-commonjs": "npm:^7.25.7"
- "@babel/plugin-transform-typescript": "npm:^7.25.7"
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ "@babel/helper-validator-option": "npm:^7.25.9"
+ "@babel/plugin-syntax-jsx": "npm:^7.25.9"
+ "@babel/plugin-transform-modules-commonjs": "npm:^7.25.9"
+ "@babel/plugin-transform-typescript": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/8dc1258e3c5230bbe42ff9811f08924509238e6bd32fa0b7b0c0a6c5e1419512a8e1f733e1b114454d367b7c164beca2cf33acf2ed9e0d99be010c1c5cdbef0c
+ checksum: 10c0/cbcc5b4bf2891e367627338961113febbe58d361e9a03bd2c8340ede914870f74db35ee367cfd8d0fca0872149bfb58b090d0a4815de7c05d0a8abb3d961eead
languageName: node
linkType: hard
@@ -1410,48 +1410,47 @@ __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.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.22.3, @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.25.7
- resolution: "@babel/runtime@npm:7.25.7"
+ version: 7.25.9
+ resolution: "@babel/runtime@npm:7.25.9"
dependencies:
regenerator-runtime: "npm:^0.14.0"
- checksum: 10c0/86b7829d2fc9343714a9afe92757cf96c4dc799006ca61d73cda62f4b9e29bfa1ce36794955bc6cb4c188f5b10db832c949339895e1bbe81a69022d9d578ce29
+ checksum: 10c0/d1727a47eab67b8a742cbf1ef336a20c3d906fe65d6316d073c72479125addfa4358c44dd7b95d114f241b93409b134fad7cea43f3bf8ca7e2ef344177eb72d8
languageName: node
linkType: hard
-"@babel/template@npm:^7.25.7, @babel/template@npm:^7.3.3":
- version: 7.25.7
- resolution: "@babel/template@npm:7.25.7"
+"@babel/template@npm:^7.25.9, @babel/template@npm:^7.3.3":
+ version: 7.25.9
+ resolution: "@babel/template@npm:7.25.9"
dependencies:
- "@babel/code-frame": "npm:^7.25.7"
- "@babel/parser": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10c0/8ae9e36e4330ee83d4832531d1d9bec7dc2ef6a2a8afa1ef1229506fd60667abcb17f306d1c3d7e582251270597022990c845d5d69e7add70a5aea66720decb9
+ "@babel/code-frame": "npm:^7.25.9"
+ "@babel/parser": "npm:^7.25.9"
+ "@babel/types": "npm:^7.25.9"
+ checksum: 10c0/ebe677273f96a36c92cc15b7aa7b11cc8bc8a3bb7a01d55b2125baca8f19cae94ff3ce15f1b1880fb8437f3a690d9f89d4e91f16fc1dc4d3eb66226d128983ab
languageName: node
linkType: hard
-"@babel/traverse@npm:^7.25.0, @babel/traverse@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/traverse@npm:7.25.7"
+"@babel/traverse@npm:^7.25.0, @babel/traverse@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/traverse@npm:7.25.9"
dependencies:
- "@babel/code-frame": "npm:^7.25.7"
- "@babel/generator": "npm:^7.25.7"
- "@babel/parser": "npm:^7.25.7"
- "@babel/template": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
+ "@babel/code-frame": "npm:^7.25.9"
+ "@babel/generator": "npm:^7.25.9"
+ "@babel/parser": "npm:^7.25.9"
+ "@babel/template": "npm:^7.25.9"
+ "@babel/types": "npm:^7.25.9"
debug: "npm:^4.3.1"
globals: "npm:^11.1.0"
- checksum: 10c0/75d73e52c507a7a7a4c7971d6bf4f8f26fdd094e0d3a0193d77edf6a5efa36fc3db91ec5cc48e8b94e6eb5d5ad21af0a1040e71309172851209415fd105efb1a
+ checksum: 10c0/e90be586a714da4adb80e6cb6a3c5cfcaa9b28148abdafb065e34cc109676fc3db22cf98cd2b2fff66ffb9b50c0ef882cab0f466b6844be0f6c637b82719bba1
languageName: node
linkType: hard
-"@babel/types@npm:^7.0.0, @babel/types@npm:^7.0.0-beta.49, @babel/types@npm:^7.12.6, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4":
- version: 7.25.8
- resolution: "@babel/types@npm:7.25.8"
+"@babel/types@npm:^7.0.0, @babel/types@npm:^7.0.0-beta.49, @babel/types@npm:^7.12.6, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4":
+ version: 7.25.9
+ resolution: "@babel/types@npm:7.25.9"
dependencies:
- "@babel/helper-string-parser": "npm:^7.25.7"
- "@babel/helper-validator-identifier": "npm:^7.25.7"
- to-fast-properties: "npm:^2.0.0"
- checksum: 10c0/55ca2d6df6426c98db2769ce884ce5e9de83a512ea2dd7bcf56c811984dc14351cacf42932a723630c5afcff2455809323decd645820762182f10b7b5252b59f
+ "@babel/helper-string-parser": "npm:^7.25.9"
+ "@babel/helper-validator-identifier": "npm:^7.25.9"
+ checksum: 10c0/33890d08bcb06b26a3a60e4c6c996cbdf2b8d8a3c212664de659c2775f80b002c5f2bceedaa309c384ff5e99bd579794fe6a7e41de07df70246f43c55016d349
languageName: node
linkType: hard
@@ -1462,13 +1461,13 @@ __metadata:
languageName: node
linkType: hard
-"@csstools/cascade-layer-name-parser@npm:^2.0.2":
- version: 2.0.2
- resolution: "@csstools/cascade-layer-name-parser@npm:2.0.2"
+"@csstools/cascade-layer-name-parser@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "@csstools/cascade-layer-name-parser@npm:2.0.3"
peerDependencies:
- "@csstools/css-parser-algorithms": ^3.0.2
+ "@csstools/css-parser-algorithms": ^3.0.3
"@csstools/css-tokenizer": ^3.0.2
- checksum: 10c0/2cc840445328400bb3e1e4186e6081e6519a23d9abde36a16c95892b6ad75155b3af3410d79fdda1c53a068384f970cabff4b5f5ba6867578168cbd3419016c8
+ checksum: 10c0/a0f0d6c94122d0a82b0da94ee2619915a9e6e98211de6e1f28afebe34332a29cab1b7905a34b6e5c1df30a125df9f9860ce5fa960c676484417d4ef2c4db4757
languageName: node
linkType: hard
@@ -1479,35 +1478,35 @@ __metadata:
languageName: node
linkType: hard
-"@csstools/css-calc@npm:^2.0.2":
- version: 2.0.2
- resolution: "@csstools/css-calc@npm:2.0.2"
+"@csstools/css-calc@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "@csstools/css-calc@npm:2.0.3"
peerDependencies:
- "@csstools/css-parser-algorithms": ^3.0.2
+ "@csstools/css-parser-algorithms": ^3.0.3
"@csstools/css-tokenizer": ^3.0.2
- checksum: 10c0/b36e655b4abc8ea39b300725e33cd43b1875d759dd60bee8155bf7841065615a7f24cf53199382e30aa10bb137f64021043e4af7e11b7199b674a6e6cf3ccd01
+ checksum: 10c0/a3dacda66bde67edab0f2384e85462dcd46b5bb62bc2a6396f0577a006d9ad59eae270353cbd6fe1a5f7081d0546fe4b1fd9b2df242758da54ec8b7022296570
languageName: node
linkType: hard
-"@csstools/css-color-parser@npm:^3.0.3":
- version: 3.0.3
- resolution: "@csstools/css-color-parser@npm:3.0.3"
+"@csstools/css-color-parser@npm:^3.0.4":
+ version: 3.0.4
+ resolution: "@csstools/css-color-parser@npm:3.0.4"
dependencies:
"@csstools/color-helpers": "npm:^5.0.1"
- "@csstools/css-calc": "npm:^2.0.2"
+ "@csstools/css-calc": "npm:^2.0.3"
peerDependencies:
- "@csstools/css-parser-algorithms": ^3.0.2
+ "@csstools/css-parser-algorithms": ^3.0.3
"@csstools/css-tokenizer": ^3.0.2
- checksum: 10c0/02367ffc222254132c47f9cbc856f65fe0b81ee4a5e7381251b95c4064138b5ed99a5e5a79c0c8689f9e75e3d900f94773258a161a97f467c3f0420838c10e04
+ checksum: 10c0/8f05264254d3768e45e46ce10e9355fe8ca0f6e4d2f648a22572f46c6d05b2378c37c2e5d970ed3b7bdfa0b152ea2af0c56a0556249bd85973aee9db7b091aa7
languageName: node
linkType: hard
-"@csstools/css-parser-algorithms@npm:^3.0.1, @csstools/css-parser-algorithms@npm:^3.0.2":
- version: 3.0.2
- resolution: "@csstools/css-parser-algorithms@npm:3.0.2"
+"@csstools/css-parser-algorithms@npm:^3.0.1, @csstools/css-parser-algorithms@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "@csstools/css-parser-algorithms@npm:3.0.3"
peerDependencies:
"@csstools/css-tokenizer": ^3.0.2
- checksum: 10c0/246afbf518ee9eaa24ed7f083360eb66884f1172fd4f8c663bff8c6099de2a8abd1e2a31d5b6fe42e010277d238469d780cff62bc7fdc6a52e7a90626b8924dc
+ checksum: 10c0/c1e634384affb10c3726a36f090867247005a2a470cb223de88debeab07921b78c0e7875e7847d90949c2b0ba88a290c71565f1839f7739c21a5bf1c870e137d
languageName: node
linkType: hard
@@ -1528,82 +1527,82 @@ __metadata:
languageName: node
linkType: hard
-"@csstools/media-query-list-parser@npm:^4.0.0":
- version: 4.0.0
- resolution: "@csstools/media-query-list-parser@npm:4.0.0"
+"@csstools/media-query-list-parser@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "@csstools/media-query-list-parser@npm:4.0.1"
peerDependencies:
- "@csstools/css-parser-algorithms": ^3.0.2
+ "@csstools/css-parser-algorithms": ^3.0.3
"@csstools/css-tokenizer": ^3.0.2
- checksum: 10c0/416417bcfd84c18a2df8dc77f31c87830e151dc20530fe7f0d8f13a0848b1a9090858abdf7792d82bf2edb41ddedb7b57b34eb78b68b5c10755ae02c019e496a
+ checksum: 10c0/037f57520b6ca7d58ba1d71a477bd99bdbe3a6d8e7b972ed0f436d649e574f5b429e54fc47d0272daa2ac24ffb819bd9d260a90e154c4a265b8ee4d1cfb1d279
languageName: node
linkType: hard
-"@csstools/postcss-cascade-layers@npm:^5.0.0":
- version: 5.0.0
- resolution: "@csstools/postcss-cascade-layers@npm:5.0.0"
+"@csstools/postcss-cascade-layers@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "@csstools/postcss-cascade-layers@npm:5.0.1"
dependencies:
- "@csstools/selector-specificity": "npm:^4.0.0"
- postcss-selector-parser: "npm:^6.1.0"
+ "@csstools/selector-specificity": "npm:^5.0.0"
+ postcss-selector-parser: "npm:^7.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/b608c69c12671682676598e451dcd79bfc6f5030a4e17b4d1bf9659e531f1daf03526be023f9aafdc952ecc87c87b04f379a763309e3eadb2140572cd4aa5b60
+ checksum: 10c0/5cc3c6f220d9216f7ab16e716a20d6db845f127c917521e6236342bfa871accd63eb662a04c1e24a28e396412dcb47b1c4abccc490b88e4010cd704d14a702f1
languageName: node
linkType: hard
-"@csstools/postcss-color-function@npm:^4.0.3":
- version: 4.0.3
- resolution: "@csstools/postcss-color-function@npm:4.0.3"
+"@csstools/postcss-color-function@npm:^4.0.4":
+ version: 4.0.4
+ resolution: "@csstools/postcss-color-function@npm:4.0.4"
dependencies:
- "@csstools/css-color-parser": "npm:^3.0.3"
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/css-color-parser": "npm:^3.0.4"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
"@csstools/utilities": "npm:^2.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/c994660ca0e2652755d9ad181c8cb46a07220c972086c97c843fa9bacf690be10c642770f898aeec4acc47c2b718dfc7372107285a678361f34d84d9e9c11e0c
+ checksum: 10c0/e7735c6d7c84f039c84dc1b180410aa4db7c404d55477c2e7872bc8306a3150bf37883583ec080ebd8b40b765f700cc78892d61dc167578f76e324543d551c04
languageName: node
linkType: hard
-"@csstools/postcss-color-mix-function@npm:^3.0.3":
- version: 3.0.3
- resolution: "@csstools/postcss-color-mix-function@npm:3.0.3"
+"@csstools/postcss-color-mix-function@npm:^3.0.4":
+ version: 3.0.4
+ resolution: "@csstools/postcss-color-mix-function@npm:3.0.4"
dependencies:
- "@csstools/css-color-parser": "npm:^3.0.3"
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/css-color-parser": "npm:^3.0.4"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
"@csstools/utilities": "npm:^2.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/4ba358eb9030fc485bfe2922d897eeb712725762cc399eaba60ba665c84dc3e56a4d5a52dfb320093c0b217d32fedb9b5197fa45738cade53d9afcbefdadf04f
+ checksum: 10c0/3e01f04853e49c9f69ee0538b817209b630649844039ee5b195cfbae94d41cf6e0d8a50a3d02dbe066f84855eefa1b7047f6750e4744858519978468577e567f
languageName: node
linkType: hard
-"@csstools/postcss-content-alt-text@npm:^2.0.2":
- version: 2.0.2
- resolution: "@csstools/postcss-content-alt-text@npm:2.0.2"
+"@csstools/postcss-content-alt-text@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "@csstools/postcss-content-alt-text@npm:2.0.3"
dependencies:
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
"@csstools/utilities": "npm:^2.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/e52d40f6567b9b23b32a6c40f9b2a74d57f99a9921b4cae015f51f72453474236c760bb13120682f8815698a615e0ad7bed22314c29dca89c34b5480d83a7a6d
+ checksum: 10c0/0389292a1ba11483f58db1bdd38cc774b0ec18c73f03d1db5f4a1f38edc861bb8b8d750b5c5b3615a98aaf995c0464dcfd6db5421888be0f868548c69455b5b3
languageName: node
linkType: hard
-"@csstools/postcss-exponential-functions@npm:^2.0.2":
- version: 2.0.2
- resolution: "@csstools/postcss-exponential-functions@npm:2.0.2"
+"@csstools/postcss-exponential-functions@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "@csstools/postcss-exponential-functions@npm:2.0.3"
dependencies:
- "@csstools/css-calc": "npm:^2.0.2"
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/css-calc": "npm:^2.0.3"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/034ff89089872f63a6b00bda670c5ff11361babd221ed3e441dde969a718059e5d44ab0ed331868f137bb205331b808ecbcc4cb641d5c945238ebca28aa3ed59
+ checksum: 10c0/690ac6c5ec72e085160401100cc8465a040fd70d59efadf61ef767094edac28bbb2653f53ea7cfa47d8220d0be0b9e23c3e3c2b80d9e93ad07b1db8031163d70
languageName: node
linkType: hard
@@ -1619,46 +1618,46 @@ __metadata:
languageName: node
linkType: hard
-"@csstools/postcss-gamut-mapping@npm:^2.0.3":
- version: 2.0.3
- resolution: "@csstools/postcss-gamut-mapping@npm:2.0.3"
+"@csstools/postcss-gamut-mapping@npm:^2.0.4":
+ version: 2.0.4
+ resolution: "@csstools/postcss-gamut-mapping@npm:2.0.4"
dependencies:
- "@csstools/css-color-parser": "npm:^3.0.3"
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/css-color-parser": "npm:^3.0.4"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/21f5708f63e9c3b7603f8b72b5f288e0a021e9710a6abf4aaa713ff4d04bae057d1861e1f28d7670ea39ba463ac04f1507876d4a11178934e7cc7a1c6a780084
+ checksum: 10c0/60c6ff13cc71a0cda7ce184fa8b42924975f2bd05e3bc096059de853ae01d48e36f27d02d7e6286d9e8c4eb4dfd526f7c302ff51be19c5f7949dd6079915a3a9
languageName: node
linkType: hard
-"@csstools/postcss-gradients-interpolation-method@npm:^5.0.3":
- version: 5.0.3
- resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.3"
+"@csstools/postcss-gradients-interpolation-method@npm:^5.0.4":
+ version: 5.0.4
+ resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.4"
dependencies:
- "@csstools/css-color-parser": "npm:^3.0.3"
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/css-color-parser": "npm:^3.0.4"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
"@csstools/utilities": "npm:^2.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/062d27148438309c940a1973bfc7d42a06caa9397bf2382c7a61979f5be3d6f3fae1bc8ddf94d2dd8e6c807e0530a9e76179510266aaddc439677bf79447a765
+ checksum: 10c0/3b6aa4404851be09a083f35b596acc7e3f74f525386dcd2887720438638ca1893f79e699e5dad0e3a35487cb9527e08d0dcd29f1331f87800f53c13423321d6e
languageName: node
linkType: hard
-"@csstools/postcss-hwb-function@npm:^4.0.3":
- version: 4.0.3
- resolution: "@csstools/postcss-hwb-function@npm:4.0.3"
+"@csstools/postcss-hwb-function@npm:^4.0.4":
+ version: 4.0.4
+ resolution: "@csstools/postcss-hwb-function@npm:4.0.4"
dependencies:
- "@csstools/css-color-parser": "npm:^3.0.3"
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/css-color-parser": "npm:^3.0.4"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
"@csstools/utilities": "npm:^2.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/faf2bfbafeec765391e37c7a5cbc7b4647d9ab1ffa51e922c7dfffa545c3d436d15604dfdfb9d7684e760042e62bb42e0243dd4ebd8c3c14694a9f7be4e57b30
+ checksum: 10c0/2460cc7e6324f0793d12976de175ff33344c3410ff7a04ca8a5ce0560ee3354d1d8034f9f07c0759c2b7e222a4681d02298f6a29c2a326c76b33060830da83b4
languageName: node
linkType: hard
@@ -1684,29 +1683,29 @@ __metadata:
languageName: node
linkType: hard
-"@csstools/postcss-is-pseudo-class@npm:^5.0.0":
- version: 5.0.0
- resolution: "@csstools/postcss-is-pseudo-class@npm:5.0.0"
+"@csstools/postcss-is-pseudo-class@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "@csstools/postcss-is-pseudo-class@npm:5.0.1"
dependencies:
- "@csstools/selector-specificity": "npm:^4.0.0"
- postcss-selector-parser: "npm:^6.1.0"
+ "@csstools/selector-specificity": "npm:^5.0.0"
+ postcss-selector-parser: "npm:^7.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/738eb84728b24bfe19ca06ccf6ff773a423552df2f31c87704ce79da4abfd2ccf2a45d5d6d3e11e71e42cc3d92eb35a856209b9cd6116c879acf15ac75454683
+ checksum: 10c0/3aaab18ebb2dcf5565efa79813eaa987d40de1e086765358524392a09631c68ad1ee952e6aff8f42513b2c18ab84891787e065fe287f696128498fc641520b6c
languageName: node
linkType: hard
-"@csstools/postcss-light-dark-function@npm:^2.0.5":
- version: 2.0.5
- resolution: "@csstools/postcss-light-dark-function@npm:2.0.5"
+"@csstools/postcss-light-dark-function@npm:^2.0.6":
+ version: 2.0.6
+ resolution: "@csstools/postcss-light-dark-function@npm:2.0.6"
dependencies:
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
"@csstools/utilities": "npm:^2.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/80635ee312d2a8f42aa5ce6792f1dc4a71199c384c66a3270d37e998d96db55beaa6836d689cda3b7e4828227960582fae04659ba5e4e0f64fd4543cbf15c6ab
+ checksum: 10c0/f3e93b58a23f0f01c9d032a892070a18e3393e60997e1d2b57c5bddb2cb36f7ee6cbaeaeb3d531b065a545a03e54d86567d34b45eddf85ed48ac360eb4ab66cd
languageName: node
linkType: hard
@@ -1760,30 +1759,30 @@ __metadata:
languageName: node
linkType: hard
-"@csstools/postcss-media-minmax@npm:^2.0.2":
- version: 2.0.2
- resolution: "@csstools/postcss-media-minmax@npm:2.0.2"
+"@csstools/postcss-media-minmax@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "@csstools/postcss-media-minmax@npm:2.0.3"
dependencies:
- "@csstools/css-calc": "npm:^2.0.2"
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/css-calc": "npm:^2.0.3"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
- "@csstools/media-query-list-parser": "npm:^4.0.0"
+ "@csstools/media-query-list-parser": "npm:^4.0.1"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/83cf10742884fca3baa7ae26e2cb34123ce5a022622390566c139b4587ea8583fab00acbb85545786b36398e2201d2a94301e0fae805e55f375f1b5c38f67ce8
+ checksum: 10c0/87c1ed6fe6ed487125e383ae7bc356ba0f68885c41cd129b85c323af69255031a8ac7b2e994d4f9b6b65d6a9f6833aeb1301ca230b592547825aedb3e3acab4b
languageName: node
linkType: hard
-"@csstools/postcss-media-queries-aspect-ratio-number-values@npm:^3.0.2":
- version: 3.0.2
- resolution: "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:3.0.2"
+"@csstools/postcss-media-queries-aspect-ratio-number-values@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "@csstools/postcss-media-queries-aspect-ratio-number-values@npm:3.0.3"
dependencies:
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
- "@csstools/media-query-list-parser": "npm:^4.0.0"
+ "@csstools/media-query-list-parser": "npm:^4.0.1"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/3ac4073d2e958bfb24ae45f673070dd805f0fcf07bc8d00a9a98f596d1096e7be282c8d8e87df3abde90f33fcbe2c7705e972b8c1a58e43ec44729f470b76096
+ checksum: 10c0/3bbadd5c79ff2102b4a2e0f107d7f3cbb89d2840b935915531d0a1bfc711d58386e6e234fccb9b4abb37e48f07cdfaa4dd66b5c795dfac9e317fa8b5cfd38e06
languageName: node
linkType: hard
@@ -1810,18 +1809,18 @@ __metadata:
languageName: node
linkType: hard
-"@csstools/postcss-oklab-function@npm:^4.0.3":
- version: 4.0.3
- resolution: "@csstools/postcss-oklab-function@npm:4.0.3"
+"@csstools/postcss-oklab-function@npm:^4.0.4":
+ version: 4.0.4
+ resolution: "@csstools/postcss-oklab-function@npm:4.0.4"
dependencies:
- "@csstools/css-color-parser": "npm:^3.0.3"
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/css-color-parser": "npm:^3.0.4"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
"@csstools/utilities": "npm:^2.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/650bcb4f664308972588a8f789f806d63c4069e2e008cfc3b5c80bf9df992c62972dce279b8f434c7f78823e97095942ee4f0e37bc549258887213e72acb7ef8
+ checksum: 10c0/4fd2a5c22ebaf69053e005d9d009ccb41b6879f0246677159bfb6a28208e90af857446c443d34fe3efdaf50bccdd67b16fcd0c1e7c52961396a48bd84e45311f
languageName: node
linkType: hard
@@ -1836,42 +1835,42 @@ __metadata:
languageName: node
linkType: hard
-"@csstools/postcss-relative-color-syntax@npm:^3.0.3":
- version: 3.0.3
- resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.3"
+"@csstools/postcss-relative-color-syntax@npm:^3.0.4":
+ version: 3.0.4
+ resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.4"
dependencies:
- "@csstools/css-color-parser": "npm:^3.0.3"
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/css-color-parser": "npm:^3.0.4"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
"@csstools/utilities": "npm:^2.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/c241fe6b725d775f6d2085be1dff3868d189b176fa91ab1eb1133e30e30c8151bded4e50d17a845edd0bdd0a7adf9e8883cb2634fea3394872591fe9ad2a7e86
+ checksum: 10c0/f2ae6f9053e976e2431d08bdc5aa40ca5242754e23370abdfd7b6087d7ed56037e46911d1be801cf7e760aa8aee94bcab6a46f4f68696cf6befacf707c1534b7
languageName: node
linkType: hard
-"@csstools/postcss-scope-pseudo-class@npm:^4.0.0":
- version: 4.0.0
- resolution: "@csstools/postcss-scope-pseudo-class@npm:4.0.0"
+"@csstools/postcss-scope-pseudo-class@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "@csstools/postcss-scope-pseudo-class@npm:4.0.1"
dependencies:
- postcss-selector-parser: "npm:^6.1.0"
+ postcss-selector-parser: "npm:^7.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/a6f562df1417c6f257c0fec95babf4cea99a25622573a2dbcfb416e2fcb8e1e53561127f5e7277d19fcb2a4603bdbc64dd6a4c416429623503c604050c99229a
+ checksum: 10c0/6a0ca50fae655f4498200d1ce298ca794c85fbe2e3fd5d6419843254f055df5007a973e09b5f1e78e376c02b54278e411516c8d824300c68b265d3e5b311d7ee
languageName: node
linkType: hard
-"@csstools/postcss-stepped-value-functions@npm:^4.0.2":
- version: 4.0.2
- resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.2"
+"@csstools/postcss-stepped-value-functions@npm:^4.0.3":
+ version: 4.0.3
+ resolution: "@csstools/postcss-stepped-value-functions@npm:4.0.3"
dependencies:
- "@csstools/css-calc": "npm:^2.0.2"
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/css-calc": "npm:^2.0.3"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/444a27d725bc7a8e1554469e8ac69e248ff525b728fbe058523b0f1aefcff80ca707f543d21fead0a22d51603b1669190fb01f0f2dcd599a01768a37e0d62bc3
+ checksum: 10c0/31af5a650d4b2de97d3a3ef77e7ad0777b3f013f7463e23455ac31ffc946d2f79f365a1fdead52c7c535176232ab57f6f086ecdbeca1bb0b250161b1302e8c8c
languageName: node
linkType: hard
@@ -1887,16 +1886,16 @@ __metadata:
languageName: node
linkType: hard
-"@csstools/postcss-trigonometric-functions@npm:^4.0.2":
- version: 4.0.2
- resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.2"
+"@csstools/postcss-trigonometric-functions@npm:^4.0.3":
+ version: 4.0.3
+ resolution: "@csstools/postcss-trigonometric-functions@npm:4.0.3"
dependencies:
- "@csstools/css-calc": "npm:^2.0.2"
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/css-calc": "npm:^2.0.3"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/eaecb2ea891162e4fcbbccf4f660c99e9e59f21937b70fe6aec3b51441eff2a12c1a2dc13fff426722629a7929919fd866311eaa68d74ee9d1f5387a23502fe2
+ checksum: 10c0/a13dd72c00e45e6db16c03e135f1cd1b2b412e83b7681696b49feef3a4c36ab80f5f806f3589d33405e2d14dd0dfb13572ec12007ebe3d294077b0bd3d645b2b
languageName: node
linkType: hard
@@ -1909,12 +1908,12 @@ __metadata:
languageName: node
linkType: hard
-"@csstools/selector-resolve-nested@npm:^2.0.0":
- version: 2.0.0
- resolution: "@csstools/selector-resolve-nested@npm:2.0.0"
+"@csstools/selector-resolve-nested@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "@csstools/selector-resolve-nested@npm:3.0.0"
peerDependencies:
- postcss-selector-parser: ^6.1.0
- checksum: 10c0/10516fd1db5e0a3963063caa57d24eeb1d1f69fcb63f0b5aec5d7a44f8b36ff07b1eded3012e8a9b92fc1f484e1a5a9def0cf57d788aa7f944ee79877837cc77
+ postcss-selector-parser: ^7.0.0
+ checksum: 10c0/2b01c36b3fa81388d5bddd8db962766465d76b021a815c8bb5a48c3a42c530154cc155fc496707ade627dbba6745eb8ecd9fa840c1972133c0f7d8811e0a959d
languageName: node
linkType: hard
@@ -1927,6 +1926,15 @@ __metadata:
languageName: node
linkType: hard
+"@csstools/selector-specificity@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "@csstools/selector-specificity@npm:5.0.0"
+ peerDependencies:
+ postcss-selector-parser: ^7.0.0
+ checksum: 10c0/186b444cabcdcdeb553bfe021f80c58bfe9ef38dcc444f2b1f34a5aab9be063ab4e753022b2d5792049c041c28cfbb78e4b707ec398459300e402030d35c07eb
+ languageName: node
+ linkType: hard
+
"@csstools/utilities@npm:^2.0.0":
version: 2.0.0
resolution: "@csstools/utilities@npm:2.0.0"
@@ -2116,14 +2124,14 @@ __metadata:
languageName: node
linkType: hard
-"@es-joy/jsdoccomment@npm:~0.48.0":
- version: 0.48.0
- resolution: "@es-joy/jsdoccomment@npm:0.48.0"
+"@es-joy/jsdoccomment@npm:~0.49.0":
+ version: 0.49.0
+ resolution: "@es-joy/jsdoccomment@npm:0.49.0"
dependencies:
comment-parser: "npm:1.4.1"
esquery: "npm:^1.6.0"
jsdoc-type-pratt-parser: "npm:~4.1.0"
- checksum: 10c0/8d87c7c0426fade009c30ab429d4ede53fd253d40b55079c02bdacdaa4c0fe904aaea5e3084cd98052f2bed6b3030c381d84f4a3251b343a71fee6f681a08bee
+ checksum: 10c0/16717507d557d37e7b59456fedeefbe0a3bc93aa2d9c043d5db91e24e076509b6fcb10ee6fd1dafcb0c5bbe50ae329b45de5b83541cb5994a98c9e862a45641e
languageName: node
linkType: hard
@@ -2162,10 +2170,10 @@ __metadata:
languageName: node
linkType: hard
-"@eslint/js@npm:8.57.0":
- version: 8.57.0
- resolution: "@eslint/js@npm:8.57.0"
- checksum: 10c0/9a518bb8625ba3350613903a6d8c622352ab0c6557a59fe6ff6178bf882bf57123f9d92aa826ee8ac3ee74b9c6203fe630e9ee00efb03d753962dcf65ee4bd94
+"@eslint/js@npm:8.57.1":
+ version: 8.57.1
+ resolution: "@eslint/js@npm:8.57.1"
+ checksum: 10c0/b489c474a3b5b54381c62e82b3f7f65f4b8a5eaaed126546520bf2fede5532a8ed53212919fed1e9048dcf7f37167c8561d58d0ba4492a4244004e7793805223
languageName: node
linkType: hard
@@ -2196,8 +2204,8 @@ __metadata:
linkType: hard
"@formatjs/cli@npm:^6.1.1":
- version: 6.2.15
- resolution: "@formatjs/cli@npm:6.2.15"
+ version: 6.3.0
+ resolution: "@formatjs/cli@npm:6.3.0"
peerDependencies:
"@glimmer/env": ^0.1.7
"@glimmer/reference": ^0.91.1 || ^0.92.0
@@ -2226,17 +2234,7 @@ __metadata:
optional: true
bin:
formatjs: bin/formatjs
- checksum: 10c0/e947aa7f3994251392fe15673752a8d8e3c8a30733bb49de5e617d45a327a3e1d16419e2d6b01f7ef2cbe86e2946024342d5b3301e6a8f17de3de9e2e7aedb29
- languageName: node
- linkType: hard
-
-"@formatjs/ecma402-abstract@npm:2.0.0":
- version: 2.0.0
- resolution: "@formatjs/ecma402-abstract@npm:2.0.0"
- dependencies:
- "@formatjs/intl-localematcher": "npm:0.5.4"
- tslib: "npm:^2.4.0"
- checksum: 10c0/94cba291aeadffa3ca416087c2c2352c8a741bb4dcb7f47f15c247b1f043ffcef1af5b20a1b7578fbba9e704fc5f1c079923f3537a273d50162be62f8037625c
+ checksum: 10c0/9a803eacbcf2060c8b3cedcf9eef1300df73722eeadaebf7282ff0e9cc41bdcb98d60cea46c297fb9060a07ccd56d44f70247d659827086a55a1d0787e6bd545
languageName: node
linkType: hard
@@ -2251,6 +2249,17 @@ __metadata:
languageName: node
linkType: hard
+"@formatjs/ecma402-abstract@npm:2.2.1":
+ version: 2.2.1
+ resolution: "@formatjs/ecma402-abstract@npm:2.2.1"
+ dependencies:
+ "@formatjs/fast-memoize": "npm:2.2.2"
+ "@formatjs/intl-localematcher": "npm:0.5.6"
+ tslib: "npm:2"
+ checksum: 10c0/bb0b01282368d201d9bcfb3232963af90069f6048da5824d38a674118fd49a0cb92b05d19d2526fe6d035428b2e47e1abd671bb59a673317f1418e67974253fa
+ languageName: node
+ linkType: hard
+
"@formatjs/fast-memoize@npm:2.2.1":
version: 2.2.1
resolution: "@formatjs/fast-memoize@npm:2.2.1"
@@ -2260,6 +2269,15 @@ __metadata:
languageName: node
linkType: hard
+"@formatjs/fast-memoize@npm:2.2.2":
+ version: 2.2.2
+ resolution: "@formatjs/fast-memoize@npm:2.2.2"
+ dependencies:
+ tslib: "npm:2"
+ checksum: 10c0/cebbf632a6ed8798ed67dba59d05be8bbe81c9ada7bcbc8ce69798fbaa5e0117c35792f212097d28b8b06fb99cf73bdbc7754702c06cda34f847e5082814643b
+ languageName: node
+ linkType: hard
+
"@formatjs/icu-messageformat-parser@npm:2.7.10":
version: 2.7.10
resolution: "@formatjs/icu-messageformat-parser@npm:2.7.10"
@@ -2271,24 +2289,14 @@ __metadata:
languageName: node
linkType: hard
-"@formatjs/icu-messageformat-parser@npm:2.7.8":
- version: 2.7.8
- resolution: "@formatjs/icu-messageformat-parser@npm:2.7.8"
+"@formatjs/icu-messageformat-parser@npm:2.9.1":
+ version: 2.9.1
+ resolution: "@formatjs/icu-messageformat-parser@npm:2.9.1"
dependencies:
- "@formatjs/ecma402-abstract": "npm:2.0.0"
- "@formatjs/icu-skeleton-parser": "npm:1.8.2"
- tslib: "npm:^2.4.0"
- checksum: 10c0/a3b759a825fb22ffd7b906f6a07b1a079bbc34f72c745de2c2514e439c4bb75bc1a9442eba1bac7ff3ea3010e12076374cd755ad12116b1d066cc90da5fbcbc9
- languageName: node
- linkType: hard
-
-"@formatjs/icu-skeleton-parser@npm:1.8.2":
- version: 1.8.2
- resolution: "@formatjs/icu-skeleton-parser@npm:1.8.2"
- dependencies:
- "@formatjs/ecma402-abstract": "npm:2.0.0"
- tslib: "npm:^2.4.0"
- checksum: 10c0/9b15013acc47b8d560b52942e3dab2abaaa9c5a4410bbd1d490a4b22bf5ca36fdd88b71f241d05479bddf856d0d1d57b7ecc9e79738497ac518616aa6d4d0015
+ "@formatjs/ecma402-abstract": "npm:2.2.1"
+ "@formatjs/icu-skeleton-parser": "npm:1.8.5"
+ tslib: "npm:2"
+ checksum: 10c0/53554edc7d41f6bd737dc3bb3e03dcd4b4081b4fc9a70383612b87993c1639747d1d3827d8ebb13f8bf3566c60442549a0a42df4959699eef76633d4c7b49b25
languageName: node
linkType: hard
@@ -2302,34 +2310,35 @@ __metadata:
languageName: node
linkType: hard
-"@formatjs/intl-displaynames@npm:6.6.10":
- version: 6.6.10
- resolution: "@formatjs/intl-displaynames@npm:6.6.10"
+"@formatjs/icu-skeleton-parser@npm:1.8.5":
+ version: 1.8.5
+ resolution: "@formatjs/icu-skeleton-parser@npm:1.8.5"
dependencies:
- "@formatjs/ecma402-abstract": "npm:2.2.0"
- "@formatjs/intl-localematcher": "npm:0.5.5"
- tslib: "npm:^2.7.0"
- checksum: 10c0/e4158f67fc0d6c2345d05b85183aef480fc86c68b60643abdd143ddc66a2203acfcf1b3dc4619658479e54c971c878a2548db34e08f3b035348686f088bf03c4
+ "@formatjs/ecma402-abstract": "npm:2.2.1"
+ tslib: "npm:2"
+ checksum: 10c0/3e5ddd26e5dc983547320ca09b4a5daa692a00c15382e85474a9a539c223b581dba2290708d71aae12589c3ddd053b3bfd0dab0a07a11c44033fb313605566bc
languageName: node
linkType: hard
-"@formatjs/intl-listformat@npm:7.5.9":
- version: 7.5.9
- resolution: "@formatjs/intl-listformat@npm:7.5.9"
+"@formatjs/intl-displaynames@npm:6.8.1":
+ version: 6.8.1
+ resolution: "@formatjs/intl-displaynames@npm:6.8.1"
dependencies:
- "@formatjs/ecma402-abstract": "npm:2.2.0"
- "@formatjs/intl-localematcher": "npm:0.5.5"
- tslib: "npm:^2.7.0"
- checksum: 10c0/b5041de4d6e011f36ba4b54406aae9aef763f8bc8b22364bdc8447d0b8b3e553111d117b02f801c31f2ab2c0d3abc086bd90db1b83c000babb99316cd15be5e2
+ "@formatjs/ecma402-abstract": "npm:2.2.1"
+ "@formatjs/intl-localematcher": "npm:0.5.6"
+ tslib: "npm:2"
+ checksum: 10c0/6d39c7bbc3cf0b1398463d662662e5c7c8b873fe977e93b7d702a337f1ed639246492b71b7138c1f193df9e1045add5609edb3fd3efc76c6174ce134c02a186f
languageName: node
linkType: hard
-"@formatjs/intl-localematcher@npm:0.5.4":
- version: 0.5.4
- resolution: "@formatjs/intl-localematcher@npm:0.5.4"
+"@formatjs/intl-listformat@npm:7.7.1":
+ version: 7.7.1
+ resolution: "@formatjs/intl-listformat@npm:7.7.1"
dependencies:
- tslib: "npm:^2.4.0"
- checksum: 10c0/c9ff5d34ca8b6fe59f8f303a3cc31a92d343e095a6987e273e5cc23f0fe99feb557a392a05da95931c7d24106acb6988e588d00ddd05b0934005aafd7fdbafe6
+ "@formatjs/ecma402-abstract": "npm:2.2.1"
+ "@formatjs/intl-localematcher": "npm:0.5.6"
+ tslib: "npm:2"
+ checksum: 10c0/9ac38d34956ee8018c000bbd594c84f1de283d18441f1376b072658844735a4ebee61ac4711f824dd0a89f4a855acfc7a24159e4cd8a4747609b1d2153316a61
languageName: node
linkType: hard
@@ -2342,54 +2351,43 @@ __metadata:
languageName: node
linkType: hard
-"@formatjs/intl-pluralrules@npm:^5.2.2":
- version: 5.2.16
- resolution: "@formatjs/intl-pluralrules@npm:5.2.16"
+"@formatjs/intl-localematcher@npm:0.5.6":
+ version: 0.5.6
+ resolution: "@formatjs/intl-localematcher@npm:0.5.6"
dependencies:
- "@formatjs/ecma402-abstract": "npm:2.2.0"
- "@formatjs/intl-localematcher": "npm:0.5.5"
- tslib: "npm:^2.7.0"
- checksum: 10c0/2250a96a74a153a5f1e771233c366c42005efd71ac5ff665891a308ce78a68f85709f8c892d28a1e334f974252bfb3407f6a64da616c3adbeb158310ef73d71b
+ tslib: "npm:2"
+ checksum: 10c0/39fc454641b7871f4b37416a01c7851624db6f1bf6cdcd5c854dfe06b95c0ca7540ec7c803a654140fc3f1c758596a684de8054bc95c4d6c7962091c251f5671
languageName: node
linkType: hard
-"@formatjs/intl@npm:2.10.8":
- version: 2.10.8
- resolution: "@formatjs/intl@npm:2.10.8"
+"@formatjs/intl-pluralrules@npm:^5.2.2":
+ version: 5.3.1
+ resolution: "@formatjs/intl-pluralrules@npm:5.3.1"
dependencies:
- "@formatjs/ecma402-abstract": "npm:2.2.0"
- "@formatjs/fast-memoize": "npm:2.2.1"
- "@formatjs/icu-messageformat-parser": "npm:2.7.10"
- "@formatjs/intl-displaynames": "npm:6.6.10"
- "@formatjs/intl-listformat": "npm:7.5.9"
- intl-messageformat: "npm:10.7.0"
- tslib: "npm:^2.7.0"
+ "@formatjs/ecma402-abstract": "npm:2.2.1"
+ "@formatjs/intl-localematcher": "npm:0.5.6"
+ tslib: "npm:2"
+ checksum: 10c0/71a87aa81d5d69d56dca0636144f8f9714176b95fe3bc92ae1e455322c09b5b09ba0018315d81def00e89fc95e4fbffe41110104c86eb189ba6d58ac09efa48c
+ languageName: node
+ linkType: hard
+
+"@formatjs/intl@npm:2.10.11":
+ version: 2.10.11
+ resolution: "@formatjs/intl@npm:2.10.11"
+ dependencies:
+ "@formatjs/ecma402-abstract": "npm:2.2.1"
+ "@formatjs/fast-memoize": "npm:2.2.2"
+ "@formatjs/icu-messageformat-parser": "npm:2.9.1"
+ "@formatjs/intl-displaynames": "npm:6.8.1"
+ "@formatjs/intl-listformat": "npm:7.7.1"
+ intl-messageformat: "npm:10.7.3"
+ tslib: "npm:2"
peerDependencies:
typescript: ^4.7 || 5
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/e35a4421f445ef4f7ce362144dde143ad895391b03380fbf896fe261a445fa6b5d886989e07bf9b49e52e83f0a3f9b667cfecbc2684a9ea898c6d25daf07b392
- languageName: node
- linkType: hard
-
-"@formatjs/ts-transformer@npm:3.13.14":
- version: 3.13.14
- resolution: "@formatjs/ts-transformer@npm:3.13.14"
- dependencies:
- "@formatjs/icu-messageformat-parser": "npm:2.7.8"
- "@types/json-stable-stringify": "npm:^1.0.32"
- "@types/node": "npm:14 || 16 || 17"
- chalk: "npm:^4.0.0"
- json-stable-stringify: "npm:^1.0.1"
- tslib: "npm:^2.4.0"
- typescript: "npm:5"
- peerDependencies:
- ts-jest: ">=27"
- peerDependenciesMeta:
- ts-jest:
- optional: true
- checksum: 10c0/38450cfce3ec5132f3548c1e9ab098909ca8d2db2b8b6b4b5bb87aa59a4ca1a19bbf6d339ace39bcc931fa80d9946b4c7cf039c9574069b317ae015cd6963bd3
+ checksum: 10c0/83baa76d1194dbaae38c21d28cdc4e1ce024f8c49a37e2c02629a9f6afe18912f640435e346fae11af7d8128dac6355b36b93cff37685542ab3095edf3ec6d19
languageName: node
linkType: hard
@@ -2413,6 +2411,26 @@ __metadata:
languageName: node
linkType: hard
+"@formatjs/ts-transformer@npm:3.13.20":
+ version: 3.13.20
+ resolution: "@formatjs/ts-transformer@npm:3.13.20"
+ dependencies:
+ "@formatjs/icu-messageformat-parser": "npm:2.9.1"
+ "@types/json-stable-stringify": "npm:1"
+ "@types/node": "npm:14 || 16 || 17 || 18 || 20"
+ chalk: "npm:4"
+ json-stable-stringify: "npm:1"
+ tslib: "npm:2"
+ typescript: "npm:5"
+ peerDependencies:
+ ts-jest: ">=27"
+ peerDependenciesMeta:
+ ts-jest:
+ optional: true
+ checksum: 10c0/0c1a203ce2e0efc24b9c1fc087771330f9630ebb4220e34dd2fffe64d5ee94816554df8ed8402a54dd588c186617765efb6c200a3373cf1d5dfb093ba8d70416
+ languageName: node
+ linkType: hard
+
"@gamestdio/websocket@npm:^0.3.2":
version: 0.3.2
resolution: "@gamestdio/websocket@npm:0.3.2"
@@ -2436,14 +2454,14 @@ __metadata:
languageName: node
linkType: hard
-"@humanwhocodes/config-array@npm:^0.11.14":
- version: 0.11.14
- resolution: "@humanwhocodes/config-array@npm:0.11.14"
+"@humanwhocodes/config-array@npm:^0.13.0":
+ version: 0.13.0
+ resolution: "@humanwhocodes/config-array@npm:0.13.0"
dependencies:
- "@humanwhocodes/object-schema": "npm:^2.0.2"
+ "@humanwhocodes/object-schema": "npm:^2.0.3"
debug: "npm:^4.3.1"
minimatch: "npm:^3.0.5"
- checksum: 10c0/66f725b4ee5fdd8322c737cb5013e19fac72d4d69c8bf4b7feb192fcb83442b035b92186f8e9497c220e58b2d51a080f28a73f7899bc1ab288c3be172c467541
+ checksum: 10c0/205c99e756b759f92e1f44a3dc6292b37db199beacba8f26c2165d4051fe73a4ae52fdcfd08ffa93e7e5cb63da7c88648f0e84e197d154bbbbe137b2e0dd332e
languageName: node
linkType: hard
@@ -2454,10 +2472,10 @@ __metadata:
languageName: node
linkType: hard
-"@humanwhocodes/object-schema@npm:^2.0.2":
- version: 2.0.2
- resolution: "@humanwhocodes/object-schema@npm:2.0.2"
- checksum: 10c0/6fd83dc320231d71c4541d0244051df61f301817e9f9da9fd4cb7e44ec8aacbde5958c1665b0c419401ab935114fdf532a6ad5d4e7294b1af2f347dd91a6983f
+"@humanwhocodes/object-schema@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "@humanwhocodes/object-schema@npm:2.0.3"
+ checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c
languageName: node
linkType: hard
@@ -2865,13 +2883,13 @@ __metadata:
eslint: "npm:^8.41.0"
eslint-define-config: "npm:^2.0.0"
eslint-import-resolver-typescript: "npm:^3.5.5"
- eslint-plugin-formatjs: "npm:^4.10.1"
+ eslint-plugin-formatjs: "npm:^5.0.0"
eslint-plugin-import: "npm:~2.30.0"
eslint-plugin-jsdoc: "npm:^50.0.0"
eslint-plugin-jsx-a11y: "npm:~6.10.0"
eslint-plugin-promise: "npm:~7.1.0"
eslint-plugin-react: "npm:^7.33.2"
- eslint-plugin-react-hooks: "npm:^4.6.0"
+ eslint-plugin-react-hooks: "npm:^5.0.0"
exif-js: "npm:^2.3.0"
favico.js: "npm:^0.3.10"
file-loader: "npm:^6.2.0"
@@ -3113,8 +3131,8 @@ __metadata:
linkType: hard
"@reduxjs/toolkit@npm:^2.0.1":
- version: 2.2.8
- resolution: "@reduxjs/toolkit@npm:2.2.8"
+ version: 2.3.0
+ resolution: "@reduxjs/toolkit@npm:2.3.0"
dependencies:
immer: "npm:^10.0.3"
redux: "npm:^5.0.1"
@@ -3128,7 +3146,7 @@ __metadata:
optional: true
react-redux:
optional: true
- checksum: 10c0/bf1356d71bfb82e5a181692c79c19b7bc19355260a9966f6562604c995f0cd0ce1154177ccd14095e8b319e73f64cfe86a4e46a83d24edba7876d4ae71fd5ae0
+ checksum: 10c0/414e90b706331385a2122fc79e33f90c59a9caf9a59419f1bfd7f5e594bc8e4987902fd1bccbc53eb96d22c65ec2981ff5581f3d2df3ecd381a630f391edfc3e
languageName: node
linkType: hard
@@ -3428,8 +3446,8 @@ __metadata:
linkType: hard
"@testing-library/jest-dom@npm:^6.0.0":
- version: 6.5.0
- resolution: "@testing-library/jest-dom@npm:6.5.0"
+ version: 6.6.2
+ resolution: "@testing-library/jest-dom@npm:6.6.2"
dependencies:
"@adobe/css-tools": "npm:^4.4.0"
aria-query: "npm:^5.0.0"
@@ -3438,7 +3456,7 @@ __metadata:
dom-accessibility-api: "npm:^0.6.3"
lodash: "npm:^4.17.21"
redent: "npm:^3.0.0"
- checksum: 10c0/fd5936a547f04608d8de15a7de3ae26516f21023f8f45169b10c8c8847015fd20ec259b7309f08aa1031bcbc37c6e5e6f532d1bb85ef8f91bad654193ec66a4c
+ checksum: 10c0/1c51390f97063ce8b06a7267534aac0d6ac9b1f27042a0ae43ca52d886b32c9d2b0ff85e62e7cfeb7e1f089ef03c4d75fda4f2b7b1f08afb4bdb09a5d56566d9
languageName: node
linkType: hard
@@ -3577,13 +3595,13 @@ __metadata:
languageName: node
linkType: hard
-"@types/eslint@npm:7 || 8":
- version: 8.56.10
- resolution: "@types/eslint@npm:8.56.10"
+"@types/eslint@npm:9":
+ version: 9.6.1
+ resolution: "@types/eslint@npm:9.6.1"
dependencies:
"@types/estree": "npm:*"
"@types/json-schema": "npm:*"
- checksum: 10c0/674349d6c342c3864d70f4d5a9965f96fb253801532752c8c500ad6a1c2e8b219e01ccff5dc8791dcb58b5483012c495708bb9f3ff929f5c9322b3da126c15d3
+ checksum: 10c0/69ba24fee600d1e4c5abe0df086c1a4d798abf13792d8cfab912d76817fe1a894359a1518557d21237fbaf6eda93c5ab9309143dee4c59ef54336d1b3570420e
languageName: node
linkType: hard
@@ -3651,7 +3669,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/hoist-non-react-statics@npm:^3.3.1":
+"@types/hoist-non-react-statics@npm:3, @types/hoist-non-react-statics@npm:^3.3.1":
version: 3.3.5
resolution: "@types/hoist-non-react-statics@npm:3.3.5"
dependencies:
@@ -3737,17 +3755,17 @@ __metadata:
languageName: node
linkType: hard
-"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8":
+"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8":
version: 7.0.15
resolution: "@types/json-schema@npm:7.0.15"
checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db
languageName: node
linkType: hard
-"@types/json-stable-stringify@npm:^1.0.32":
- version: 1.0.35
- resolution: "@types/json-stable-stringify@npm:1.0.35"
- checksum: 10c0/67b50a86478f932c932ba21515b80700a8844d55e0656b3abe2c32c41c1c405c70fcd10b30ff8f38d1869871af2deae63ffdea54ce72cc2ee92e94a9d1cf2b6f
+"@types/json-stable-stringify@npm:1, @types/json-stable-stringify@npm:^1.0.32":
+ version: 1.1.0
+ resolution: "@types/json-stable-stringify@npm:1.1.0"
+ checksum: 10c0/8f69944701510243cd3a83aa44363a8a4d366f11a659b258f69fb3ad0f94ab1e2533206a2c929ac7fd18784d201b663b3f02a45934f545c926f051d8cb4df095
languageName: node
linkType: hard
@@ -3759,9 +3777,9 @@ __metadata:
linkType: hard
"@types/lodash@npm:^4.14.195":
- version: 4.17.9
- resolution: "@types/lodash@npm:4.17.9"
- checksum: 10c0/54de935e835508b5f835a5dfaedd2b9a299685a21d11e9c5cd2dde57331d03bc2f98b71d2424ca8460f447ecd55a673e45ccdb70e58f9f72745710f6b91abc60
+ version: 4.17.12
+ resolution: "@types/lodash@npm:4.17.12"
+ checksum: 10c0/106008f628ea3c74ed7ee7842dee79e230c84e3721ac38c293700031adb5bd130113048c22f476dbde0d0c119506b0fc447d4bd62eca922682d11e00e1377967
languageName: node
linkType: hard
@@ -3786,19 +3804,12 @@ __metadata:
languageName: node
linkType: hard
-"@types/node@npm:*":
- version: 20.8.10
- resolution: "@types/node@npm:20.8.10"
+"@types/node@npm:*, @types/node@npm:14 || 16 || 17 || 18 || 20":
+ version: 20.16.13
+ resolution: "@types/node@npm:20.16.13"
dependencies:
- undici-types: "npm:~5.26.4"
- checksum: 10c0/caaa3ae9294f1bfdacb029a916c64af63cbcea613a52f53ea86f93c91779859af177b2b68113ef835194519f5e76cadda08559929b68297f1a8a568c207f9f66
- languageName: node
- linkType: hard
-
-"@types/node@npm:14 || 16 || 17":
- version: 17.0.45
- resolution: "@types/node@npm:17.0.45"
- checksum: 10c0/0db377133d709b33a47892581a21a41cd7958f22723a3cc6c71d55ac018121382de42fbfc7970d5ae3e7819dbe5f40e1c6a5174aedf7e7964e9cb8fa72b580b0
+ undici-types: "npm:~6.19.2"
+ checksum: 10c0/7f4fd7176db0802c62e11ebbf7a66d0248e2dc8ec9153d9fc8bcb164d9aed581d91c407046c823c522e60d0babfdc24a1618dba7f2c6920ef1a24e1d416c9550
languageName: node
linkType: hard
@@ -3886,11 +3897,11 @@ __metadata:
linkType: hard
"@types/react-dom@npm:^18.2.4":
- version: 18.3.0
- resolution: "@types/react-dom@npm:18.3.0"
+ version: 18.3.1
+ resolution: "@types/react-dom@npm:18.3.1"
dependencies:
"@types/react": "npm:*"
- checksum: 10c0/6c90d2ed72c5a0e440d2c75d99287e4b5df3e7b011838cdc03ae5cd518ab52164d86990e73246b9d812eaf02ec351d74e3b4f5bd325bf341e13bf980392fd53b
+ checksum: 10c0/8b416551c60bb6bd8ec10e198c957910cfb271bc3922463040b0d57cf4739cdcd24b13224f8d68f10318926e1ec3cd69af0af79f0291b599a992f8c80d47f1eb
languageName: node
linkType: hard
@@ -4022,13 +4033,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/semver@npm:^7.5.0":
- version: 7.5.8
- resolution: "@types/semver@npm:7.5.8"
- checksum: 10c0/8663ff927234d1c5fcc04b33062cb2b9fcfbe0f5f351ed26c4d1e1581657deebd506b41ff7fdf89e787e3d33ce05854bc01686379b89e9c49b564c4cfa988efa
- languageName: node
- linkType: hard
-
"@types/send@npm:*":
version: 0.17.4
resolution: "@types/send@npm:0.17.4"
@@ -4173,14 +4177,14 @@ __metadata:
linkType: hard
"@typescript-eslint/eslint-plugin@npm:^8.0.0":
- version: 8.1.0
- resolution: "@typescript-eslint/eslint-plugin@npm:8.1.0"
+ version: 8.10.0
+ resolution: "@typescript-eslint/eslint-plugin@npm:8.10.0"
dependencies:
"@eslint-community/regexpp": "npm:^4.10.0"
- "@typescript-eslint/scope-manager": "npm:8.1.0"
- "@typescript-eslint/type-utils": "npm:8.1.0"
- "@typescript-eslint/utils": "npm:8.1.0"
- "@typescript-eslint/visitor-keys": "npm:8.1.0"
+ "@typescript-eslint/scope-manager": "npm:8.10.0"
+ "@typescript-eslint/type-utils": "npm:8.10.0"
+ "@typescript-eslint/utils": "npm:8.10.0"
+ "@typescript-eslint/visitor-keys": "npm:8.10.0"
graphemer: "npm:^1.4.0"
ignore: "npm:^5.3.1"
natural-compare: "npm:^1.4.0"
@@ -4191,104 +4195,68 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/7bbeae588f859b59c34d6a76cac06ef0fa605921b40c5d3b65b94829984280ea84c4dd3f5cb9ce2eb326f5563e9abb4c90ebff05c47f83f4def296c2ea1fa86c
+ checksum: 10c0/4b77ba9c865a2a14e238cd330b5901f0274b8ce1c13324fccd0339b8eea82a50a4709394c903fd8cd5bd0d3aebace0761ff9a4a19fa20b00bb61349b7671c035
languageName: node
linkType: hard
"@typescript-eslint/parser@npm:^8.0.0":
- version: 8.1.0
- resolution: "@typescript-eslint/parser@npm:8.1.0"
+ version: 8.10.0
+ resolution: "@typescript-eslint/parser@npm:8.10.0"
dependencies:
- "@typescript-eslint/scope-manager": "npm:8.1.0"
- "@typescript-eslint/types": "npm:8.1.0"
- "@typescript-eslint/typescript-estree": "npm:8.1.0"
- "@typescript-eslint/visitor-keys": "npm:8.1.0"
+ "@typescript-eslint/scope-manager": "npm:8.10.0"
+ "@typescript-eslint/types": "npm:8.10.0"
+ "@typescript-eslint/typescript-estree": "npm:8.10.0"
+ "@typescript-eslint/visitor-keys": "npm:8.10.0"
debug: "npm:^4.3.4"
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/b94b2d3ab5ca505484d100701fad6a04a5dc8d595029bac1b9f5b8a4a91d80fd605b0f65d230b36a97ab7e5d55eeb0c28af2ab63929a3e4ab8fdefd2a548c36b
+ checksum: 10c0/7becb2457c085c239838d301796074b790f46dd38c9fbc14ec1dec8e993c7115cd8a66cdc07983c3a68a2dd92e24e8acc49d69a4ebcc29e9869957eb52d1cb74
languageName: node
linkType: hard
-"@typescript-eslint/scope-manager@npm:6.21.0":
- version: 6.21.0
- resolution: "@typescript-eslint/scope-manager@npm:6.21.0"
+"@typescript-eslint/scope-manager@npm:8.10.0":
+ version: 8.10.0
+ resolution: "@typescript-eslint/scope-manager@npm:8.10.0"
dependencies:
- "@typescript-eslint/types": "npm:6.21.0"
- "@typescript-eslint/visitor-keys": "npm:6.21.0"
- checksum: 10c0/eaf868938d811cbbea33e97e44ba7050d2b6892202cea6a9622c486b85ab1cf801979edf78036179a8ba4ac26f1dfdf7fcc83a68c1ff66be0b3a8e9a9989b526
+ "@typescript-eslint/types": "npm:8.10.0"
+ "@typescript-eslint/visitor-keys": "npm:8.10.0"
+ checksum: 10c0/b8bb8635c4d6c00a3578d6265e3ee0f5d96d0c9dee534ed588aa411c3f4497fd71cce730c3ae7571e52453d955b191bc9edcc47c9af21a20c90e9a20f2371108
languageName: node
linkType: hard
-"@typescript-eslint/scope-manager@npm:8.1.0":
- version: 8.1.0
- resolution: "@typescript-eslint/scope-manager@npm:8.1.0"
+"@typescript-eslint/type-utils@npm:8.10.0":
+ version: 8.10.0
+ resolution: "@typescript-eslint/type-utils@npm:8.10.0"
dependencies:
- "@typescript-eslint/types": "npm:8.1.0"
- "@typescript-eslint/visitor-keys": "npm:8.1.0"
- checksum: 10c0/2bcf8cd176a1819bddcae16c572e7da8fba821b995a91cd53d64d8d6b85a17f5a895522f281ba57e34929574bddd4d6684ee3e545ec4e8096be4c3198e253a9a
- languageName: node
- linkType: hard
-
-"@typescript-eslint/type-utils@npm:8.1.0":
- version: 8.1.0
- resolution: "@typescript-eslint/type-utils@npm:8.1.0"
- dependencies:
- "@typescript-eslint/typescript-estree": "npm:8.1.0"
- "@typescript-eslint/utils": "npm:8.1.0"
+ "@typescript-eslint/typescript-estree": "npm:8.10.0"
+ "@typescript-eslint/utils": "npm:8.10.0"
debug: "npm:^4.3.4"
ts-api-utils: "npm:^1.3.0"
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/62753941c4136e8d2daa72fe0410dea48e5317a6f12ece6382ca85e29912bd1b3f739b61d1060fc0a1f8c488dfc905beab4c8b8497951a21c3138a659c7271ec
+ checksum: 10c0/1af8fce8394279e6ac7bcef449a132072ee36e374c8d557564246ffe7150230844901ca0305e29525bf37c87010e03bf8bedec76fccbfe1e41931cb4f274e208
languageName: node
linkType: hard
-"@typescript-eslint/types@npm:6.21.0":
- version: 6.21.0
- resolution: "@typescript-eslint/types@npm:6.21.0"
- checksum: 10c0/020631d3223bbcff8a0da3efbdf058220a8f48a3de221563996ad1dcc30d6c08dadc3f7608cc08830d21c0d565efd2db19b557b9528921c78aabb605eef2d74d
+"@typescript-eslint/types@npm:8.10.0":
+ version: 8.10.0
+ resolution: "@typescript-eslint/types@npm:8.10.0"
+ checksum: 10c0/f27dd43c8383e02e914a254257627e393dfc0f08b0f74a253c106813ae361f090271b2f3f2ef588fa3ca1329897d873da595bb5641fe8e3091b25eddca24b5d2
languageName: node
linkType: hard
-"@typescript-eslint/types@npm:8.1.0":
- version: 8.1.0
- resolution: "@typescript-eslint/types@npm:8.1.0"
- checksum: 10c0/ceade44455f45974e68956016c4d1c6626580732f7f9675e14ffa63db80b551752b0df596b20473dae9f0dc6ed966e17417dc2cf36e1a82b6ab0edc97c5eaa50
- languageName: node
- linkType: hard
-
-"@typescript-eslint/typescript-estree@npm:6.21.0":
- version: 6.21.0
- resolution: "@typescript-eslint/typescript-estree@npm:6.21.0"
+"@typescript-eslint/typescript-estree@npm:8.10.0":
+ version: 8.10.0
+ resolution: "@typescript-eslint/typescript-estree@npm:8.10.0"
dependencies:
- "@typescript-eslint/types": "npm:6.21.0"
- "@typescript-eslint/visitor-keys": "npm:6.21.0"
+ "@typescript-eslint/types": "npm:8.10.0"
+ "@typescript-eslint/visitor-keys": "npm:8.10.0"
debug: "npm:^4.3.4"
- globby: "npm:^11.1.0"
- is-glob: "npm:^4.0.3"
- minimatch: "npm:9.0.3"
- semver: "npm:^7.5.4"
- ts-api-utils: "npm:^1.0.1"
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 10c0/af1438c60f080045ebb330155a8c9bb90db345d5069cdd5d01b67de502abb7449d6c75500519df829f913a6b3f490ade3e8215279b6bdc63d0fb0ae61034df5f
- languageName: node
- linkType: hard
-
-"@typescript-eslint/typescript-estree@npm:8.1.0":
- version: 8.1.0
- resolution: "@typescript-eslint/typescript-estree@npm:8.1.0"
- dependencies:
- "@typescript-eslint/types": "npm:8.1.0"
- "@typescript-eslint/visitor-keys": "npm:8.1.0"
- debug: "npm:^4.3.4"
- globby: "npm:^11.1.0"
+ fast-glob: "npm:^3.3.2"
is-glob: "npm:^4.0.3"
minimatch: "npm:^9.0.4"
semver: "npm:^7.6.0"
@@ -4296,58 +4264,31 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/a7bc8275df1c79c4cb14ef086c56674316dd4907efec53eddca35d0b5220428b69c82178ce2d95138da2e398269c8bd0764cae8020a36417e411e35c3c47bc4b
+ checksum: 10c0/535a740fe25be0e28fe68c41e3264273d1e5169c9f938e08cc0e3415c357726f43efa44621960108c318fc3305c425d29f3223b6e731d44d67f84058a8947304
languageName: node
linkType: hard
-"@typescript-eslint/utils@npm:8.1.0":
- version: 8.1.0
- resolution: "@typescript-eslint/utils@npm:8.1.0"
+"@typescript-eslint/utils@npm:8.10.0":
+ version: 8.10.0
+ resolution: "@typescript-eslint/utils@npm:8.10.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.4.0"
- "@typescript-eslint/scope-manager": "npm:8.1.0"
- "@typescript-eslint/types": "npm:8.1.0"
- "@typescript-eslint/typescript-estree": "npm:8.1.0"
+ "@typescript-eslint/scope-manager": "npm:8.10.0"
+ "@typescript-eslint/types": "npm:8.10.0"
+ "@typescript-eslint/typescript-estree": "npm:8.10.0"
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
- checksum: 10c0/c95503a6bdcd98b1ff04d1adbf46377b2036b1c510d90a4a056401f996f775f06c3108c95fb81cd6babc9c97b73b91b8e848f0337bc508de8a49c993582f0e75
+ checksum: 10c0/a21a2933517176abd00fcd5d8d80023e35dc3d89d5746bbac43790b4e984ab1f371117db08048bce7f42d54c64f4e0e35161149f8f34fd25a27bff9d1110fd16
languageName: node
linkType: hard
-"@typescript-eslint/utils@npm:^6.18.1":
- version: 6.21.0
- resolution: "@typescript-eslint/utils@npm:6.21.0"
+"@typescript-eslint/visitor-keys@npm:8.10.0":
+ version: 8.10.0
+ resolution: "@typescript-eslint/visitor-keys@npm:8.10.0"
dependencies:
- "@eslint-community/eslint-utils": "npm:^4.4.0"
- "@types/json-schema": "npm:^7.0.12"
- "@types/semver": "npm:^7.5.0"
- "@typescript-eslint/scope-manager": "npm:6.21.0"
- "@typescript-eslint/types": "npm:6.21.0"
- "@typescript-eslint/typescript-estree": "npm:6.21.0"
- semver: "npm:^7.5.4"
- peerDependencies:
- eslint: ^7.0.0 || ^8.0.0
- checksum: 10c0/ab2df3833b2582d4e5467a484d08942b4f2f7208f8e09d67de510008eb8001a9b7460f2f9ba11c12086fd3cdcac0c626761c7995c2c6b5657d5fa6b82030a32d
- languageName: node
- linkType: hard
-
-"@typescript-eslint/visitor-keys@npm:6.21.0":
- version: 6.21.0
- resolution: "@typescript-eslint/visitor-keys@npm:6.21.0"
- dependencies:
- "@typescript-eslint/types": "npm:6.21.0"
- eslint-visitor-keys: "npm:^3.4.1"
- checksum: 10c0/7395f69739cfa1cb83c1fb2fad30afa2a814756367302fb4facd5893eff66abc807e8d8f63eba94ed3b0fe0c1c996ac9a1680bcbf0f83717acedc3f2bb724fbf
- languageName: node
- linkType: hard
-
-"@typescript-eslint/visitor-keys@npm:8.1.0":
- version: 8.1.0
- resolution: "@typescript-eslint/visitor-keys@npm:8.1.0"
- dependencies:
- "@typescript-eslint/types": "npm:8.1.0"
+ "@typescript-eslint/types": "npm:8.10.0"
eslint-visitor-keys: "npm:^3.4.3"
- checksum: 10c0/b7544dbb0eec1ddbfcd95c04b51b9a739c2e768c16d1c88508f976a2b0d1bc02fefb7491930e06e48073a5c07c6f488cd8403bba3a8b918888b93a88d5ac3869
+ checksum: 10c0/14721c4ac939640d5fd1ee1b6eeb07604b11a6017e319e21dcc71e7aac2992341fc7ae1992d977bad4433b6a1d0d1c0c279e6927316b26245f6e333f922fa458
languageName: node
linkType: hard
@@ -4837,7 +4778,7 @@ __metadata:
languageName: node
linkType: hard
-"aria-query@npm:5.3.0, aria-query@npm:^5.0.0":
+"aria-query@npm:5.3.0":
version: 5.3.0
resolution: "aria-query@npm:5.3.0"
dependencies:
@@ -4846,12 +4787,10 @@ __metadata:
languageName: node
linkType: hard
-"aria-query@npm:~5.1.3":
- version: 5.1.3
- resolution: "aria-query@npm:5.1.3"
- dependencies:
- deep-equal: "npm:^2.0.5"
- checksum: 10c0/edcbc8044c4663d6f88f785e983e6784f98cb62b4ba1e9dd8d61b725d0203e4cfca38d676aee984c31f354103461102a3d583aa4fbe4fd0a89b679744f4e5faf
+"aria-query@npm:^5.0.0, aria-query@npm:^5.3.2":
+ version: 5.3.2
+ resolution: "aria-query@npm:5.3.2"
+ checksum: 10c0/003c7e3e2cff5540bf7a7893775fc614de82b0c5dde8ae823d47b7a28a9d4da1f7ed85f340bdb93d5649caa927755f0e31ecc7ab63edfdfc00c8ef07e505e03e
languageName: node
linkType: hard
@@ -4876,7 +4815,7 @@ __metadata:
languageName: node
linkType: hard
-"array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1":
+"array-buffer-byte-length@npm:^1.0.1":
version: 1.0.1
resolution: "array-buffer-byte-length@npm:1.0.1"
dependencies:
@@ -5249,21 +5188,21 @@ __metadata:
linkType: hard
"babel-plugin-formatjs@npm:^10.5.1":
- version: 10.5.18
- resolution: "babel-plugin-formatjs@npm:10.5.18"
+ version: 10.5.22
+ resolution: "babel-plugin-formatjs@npm:10.5.22"
dependencies:
"@babel/core": "npm:^7.25.0"
"@babel/helper-plugin-utils": "npm:^7.25.0"
"@babel/plugin-syntax-jsx": "npm:^7.25.0"
"@babel/traverse": "npm:^7.25.0"
"@babel/types": "npm:^7.25.0"
- "@formatjs/icu-messageformat-parser": "npm:2.7.10"
- "@formatjs/ts-transformer": "npm:3.13.16"
+ "@formatjs/icu-messageformat-parser": "npm:2.9.1"
+ "@formatjs/ts-transformer": "npm:3.13.20"
"@types/babel__core": "npm:^7.20.5"
"@types/babel__helper-plugin-utils": "npm:^7.10.3"
"@types/babel__traverse": "npm:^7.20.6"
- tslib: "npm:^2.7.0"
- checksum: 10c0/3e7753cb1837ea300f7b0d574751758330f4fe56e4f686a1ceb7acc612c0ac1353ed2a918b5af6e4dcaf579c623d56f714159a265d64b71897471a69f15910b8
+ tslib: "npm:2"
+ checksum: 10c0/c35ec81d89eb228d23d3d62e7e4d0e5d7216f0d09f91b1dc3c46e049c5515a201fcfe77c1079924c6bfb9883b2941af91431f479a0f5a24a0574b695f18b64bc
languageName: node
linkType: hard
@@ -5919,6 +5858,16 @@ __metadata:
languageName: node
linkType: hard
+"chalk@npm:4, chalk@npm:^4.0, chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0":
+ version: 4.1.2
+ resolution: "chalk@npm:4.1.2"
+ dependencies:
+ ansi-styles: "npm:^4.1.0"
+ supports-color: "npm:^7.1.0"
+ checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880
+ languageName: node
+ linkType: hard
+
"chalk@npm:^2.4.1, chalk@npm:^2.4.2":
version: 2.4.2
resolution: "chalk@npm:2.4.2"
@@ -5940,16 +5889,6 @@ __metadata:
languageName: node
linkType: hard
-"chalk@npm:^4.0, chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0":
- version: 4.1.2
- resolution: "chalk@npm:4.1.2"
- dependencies:
- ansi-styles: "npm:^4.1.0"
- supports-color: "npm:^7.1.0"
- checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880
- languageName: node
- linkType: hard
-
"chalk@npm:~5.3.0":
version: 5.3.0
resolution: "chalk@npm:5.3.0"
@@ -6611,14 +6550,14 @@ __metadata:
languageName: node
linkType: hard
-"css-blank-pseudo@npm:^7.0.0":
- version: 7.0.0
- resolution: "css-blank-pseudo@npm:7.0.0"
+"css-blank-pseudo@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "css-blank-pseudo@npm:7.0.1"
dependencies:
- postcss-selector-parser: "npm:^6.1.0"
+ postcss-selector-parser: "npm:^7.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/74c6c0af773a8d2c8c5a53bcfc2b2c06f9c3fd4a8bd756b7aafc102b91a1060b179a4f0aa21475b54685b62bfd9724fee90778dd992b42e0cd3ea3698132af92
+ checksum: 10c0/46c3d3a611972fdb0c264db7c0b34fe437bc4300961d11945145cf04962f52a545a6ef55bc8ff4afd82b605bd692b4970f2b54582616dea00441105e725d4618
languageName: node
linkType: hard
@@ -6638,16 +6577,16 @@ __metadata:
languageName: node
linkType: hard
-"css-has-pseudo@npm:^7.0.0":
- version: 7.0.0
- resolution: "css-has-pseudo@npm:7.0.0"
+"css-has-pseudo@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "css-has-pseudo@npm:7.0.1"
dependencies:
- "@csstools/selector-specificity": "npm:^4.0.0"
- postcss-selector-parser: "npm:^6.1.0"
+ "@csstools/selector-specificity": "npm:^5.0.0"
+ postcss-selector-parser: "npm:^7.0.0"
postcss-value-parser: "npm:^4.2.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/2c72602ca9bcdb3afe2cce3b014e7dd17548658904c17560042ebf4bd6727b1ed8706961b1f44bff43bbdb8dc932c30a0b29f536c353df858e300e68e163b872
+ checksum: 10c0/13789b08b70169204be786d652190356ace9313099d3656bd2fc38afbdd28f3d9620f0e0b07425480961b7a1ec789794961d0472f205b959d3f64c9a78ce511c
languageName: node
linkType: hard
@@ -6783,10 +6722,10 @@ __metadata:
languageName: node
linkType: hard
-"cssdb@npm:^8.1.1":
- version: 8.1.1
- resolution: "cssdb@npm:8.1.1"
- checksum: 10c0/d60facfad3bca70e21100fc35b9205cb9d3d0ac642f44f0a687e54bf787f21c43d28ce2d17fcd405f67950fb4709516108fe1f3cb15df570eff1007b5fbbc787
+"cssdb@npm:^8.1.2":
+ version: 8.1.2
+ resolution: "cssdb@npm:8.1.2"
+ checksum: 10c0/056149e713a78921f56d9ef0cd734577cedb93c27966c3d0eab01956a2aa8d3c260a911766064b57ded8b4d9c55dd5275626cbb022ccd8d2d0b93b53fefd1603
languageName: node
linkType: hard
@@ -7069,32 +7008,6 @@ __metadata:
languageName: node
linkType: hard
-"deep-equal@npm:^2.0.5":
- version: 2.2.3
- resolution: "deep-equal@npm:2.2.3"
- dependencies:
- array-buffer-byte-length: "npm:^1.0.0"
- call-bind: "npm:^1.0.5"
- es-get-iterator: "npm:^1.1.3"
- get-intrinsic: "npm:^1.2.2"
- is-arguments: "npm:^1.1.1"
- is-array-buffer: "npm:^3.0.2"
- is-date-object: "npm:^1.0.5"
- is-regex: "npm:^1.1.4"
- is-shared-array-buffer: "npm:^1.0.2"
- isarray: "npm:^2.0.5"
- object-is: "npm:^1.1.5"
- object-keys: "npm:^1.1.1"
- object.assign: "npm:^4.1.4"
- regexp.prototype.flags: "npm:^1.5.1"
- side-channel: "npm:^1.0.4"
- which-boxed-primitive: "npm:^1.0.2"
- which-collection: "npm:^1.0.1"
- which-typed-array: "npm:^1.1.13"
- checksum: 10c0/a48244f90fa989f63ff5ef0cc6de1e4916b48ea0220a9c89a378561960814794a5800c600254482a2c8fd2e49d6c2e196131dc983976adb024c94a42dfe4949f
- languageName: node
- linkType: hard
-
"deep-is@npm:^0.1.3":
version: 0.1.4
resolution: "deep-is@npm:0.1.4"
@@ -7768,26 +7681,9 @@ __metadata:
languageName: node
linkType: hard
-"es-get-iterator@npm:^1.1.3":
- version: 1.1.3
- resolution: "es-get-iterator@npm:1.1.3"
- dependencies:
- call-bind: "npm:^1.0.2"
- get-intrinsic: "npm:^1.1.3"
- has-symbols: "npm:^1.0.3"
- is-arguments: "npm:^1.1.1"
- is-map: "npm:^2.0.2"
- is-set: "npm:^2.0.2"
- is-string: "npm:^1.0.7"
- isarray: "npm:^2.0.5"
- stop-iteration-iterator: "npm:^1.0.0"
- checksum: 10c0/ebd11effa79851ea75d7f079405f9d0dc185559fd65d986c6afea59a0ff2d46c2ed8675f19f03dce7429d7f6c14ff9aede8d121fbab78d75cfda6a263030bac0
- languageName: node
- linkType: hard
-
-"es-iterator-helpers@npm:^1.0.19":
- version: 1.0.19
- resolution: "es-iterator-helpers@npm:1.0.19"
+"es-iterator-helpers@npm:^1.0.19, es-iterator-helpers@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "es-iterator-helpers@npm:1.1.0"
dependencies:
call-bind: "npm:^1.0.7"
define-properties: "npm:^1.2.1"
@@ -7796,14 +7692,14 @@ __metadata:
es-set-tostringtag: "npm:^2.0.3"
function-bind: "npm:^1.1.2"
get-intrinsic: "npm:^1.2.4"
- globalthis: "npm:^1.0.3"
+ globalthis: "npm:^1.0.4"
has-property-descriptors: "npm:^1.0.2"
has-proto: "npm:^1.0.3"
has-symbols: "npm:^1.0.3"
internal-slot: "npm:^1.0.7"
- iterator.prototype: "npm:^1.1.2"
+ iterator.prototype: "npm:^1.1.3"
safe-array-concat: "npm:^1.1.2"
- checksum: 10c0/ae8f0241e383b3d197383b9842c48def7fce0255fb6ed049311b686ce295595d9e389b466f6a1b7d4e7bb92d82f5e716d6fae55e20c1040249bf976743b038c5
+ checksum: 10c0/84d6c240c7da6e62323b336cb1497781546dab16bebdbd879ccfdf588979712d3e941d41165b6c2ffce5a03a7b929d4e6131d3124d330da1a0e2bfa1da7cd99f
languageName: node
linkType: hard
@@ -7962,24 +7858,24 @@ __metadata:
languageName: node
linkType: hard
-"eslint-plugin-formatjs@npm:^4.10.1":
- version: 4.13.3
- resolution: "eslint-plugin-formatjs@npm:4.13.3"
+"eslint-plugin-formatjs@npm:^5.0.0":
+ version: 5.1.1
+ resolution: "eslint-plugin-formatjs@npm:5.1.1"
dependencies:
- "@formatjs/icu-messageformat-parser": "npm:2.7.8"
- "@formatjs/ts-transformer": "npm:3.13.14"
- "@types/eslint": "npm:7 || 8"
+ "@formatjs/icu-messageformat-parser": "npm:2.7.10"
+ "@formatjs/ts-transformer": "npm:3.13.16"
+ "@types/eslint": "npm:9"
"@types/picomatch": "npm:^2.3.0"
- "@typescript-eslint/utils": "npm:^6.18.1"
+ "@typescript-eslint/utils": "npm:8.10.0"
emoji-regex: "npm:^10.2.1"
magic-string: "npm:^0.30.0"
picomatch: "npm:^2.3.1"
- tslib: "npm:2.6.2"
+ tslib: "npm:^2.7.0"
typescript: "npm:5"
unicode-emoji-utils: "npm:^1.2.0"
peerDependencies:
- eslint: 7 || 8
- checksum: 10c0/5e98f487a097189e3bdc64b678d19f4c83502c32d7c89a8959eda4ed9cb664bf16f13ad8871be89ca192cb39c1007d6a158c39bbf5b23c56962d949dbe9abfab
+ eslint: 9
+ checksum: 10c0/b0cf41208fe1bdcd4e7879c0a7099273753ec1e2c5a855c0989679690a740b92123d1625cea7ce862a19412a588fd16e42c0c196807021f13462585ace719dc1
languageName: node
linkType: hard
@@ -8012,10 +7908,10 @@ __metadata:
linkType: hard
"eslint-plugin-jsdoc@npm:^50.0.0":
- version: 50.2.2
- resolution: "eslint-plugin-jsdoc@npm:50.2.2"
+ version: 50.4.3
+ resolution: "eslint-plugin-jsdoc@npm:50.4.3"
dependencies:
- "@es-joy/jsdoccomment": "npm:~0.48.0"
+ "@es-joy/jsdoccomment": "npm:~0.49.0"
are-docs-informative: "npm:^0.0.2"
comment-parser: "npm:1.4.1"
debug: "npm:^4.3.6"
@@ -8028,15 +7924,15 @@ __metadata:
synckit: "npm:^0.9.1"
peerDependencies:
eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
- checksum: 10c0/f41d30246f6a4b6acb55e8cd75cf4fc256315e141ab25f7740fa6fa58cdd24e08cb672b4a350da93aeb126d210bd25981310a50f97cfb108f6a7ce8668b6b90a
+ checksum: 10c0/96067f8fc3553371e9afdc6d03c166228bfd3cb004fcd70c4357d49185732f384351e20f44c21b0a13ea318c8aabbd584b627804f62a2a80376507646708a786
languageName: node
linkType: hard
"eslint-plugin-jsx-a11y@npm:~6.10.0":
- version: 6.10.0
- resolution: "eslint-plugin-jsx-a11y@npm:6.10.0"
+ version: 6.10.1
+ resolution: "eslint-plugin-jsx-a11y@npm:6.10.1"
dependencies:
- aria-query: "npm:~5.1.3"
+ aria-query: "npm:^5.3.2"
array-includes: "npm:^3.1.8"
array.prototype.flatmap: "npm:^1.3.2"
ast-types-flow: "npm:^0.0.8"
@@ -8044,17 +7940,17 @@ __metadata:
axobject-query: "npm:^4.1.0"
damerau-levenshtein: "npm:^1.0.8"
emoji-regex: "npm:^9.2.2"
- es-iterator-helpers: "npm:^1.0.19"
+ es-iterator-helpers: "npm:^1.1.0"
hasown: "npm:^2.0.2"
jsx-ast-utils: "npm:^3.3.5"
language-tags: "npm:^1.0.9"
minimatch: "npm:^3.1.2"
object.fromentries: "npm:^2.0.8"
safe-regex-test: "npm:^1.0.3"
- string.prototype.includes: "npm:^2.0.0"
+ string.prototype.includes: "npm:^2.0.1"
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
- checksum: 10c0/9f8e29a3317fb6a82e2ecd333fe0fab3a69fff786d087eb65dc723d6e954473ab681d14a252d7cb2971f5e7f68816cb6f7731766558e1833a77bd73af1b5ab34
+ checksum: 10c0/25bf28e3db4f6789c5d4f9300fc6fc54faca19ecc537d0f46e9c873f80ed37103a033e1f716f608fab5f5813dd38af65a9a6ae2e29dd079763ce539ebecf998e
languageName: node
linkType: hard
@@ -8067,18 +7963,18 @@ __metadata:
languageName: node
linkType: hard
-"eslint-plugin-react-hooks@npm:^4.6.0":
- version: 4.6.2
- resolution: "eslint-plugin-react-hooks@npm:4.6.2"
+"eslint-plugin-react-hooks@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "eslint-plugin-react-hooks@npm:5.0.0"
peerDependencies:
- eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
- checksum: 10c0/4844e58c929bc05157fb70ba1e462e34f1f4abcbc8dd5bbe5b04513d33e2699effb8bca668297976ceea8e7ebee4e8fc29b9af9d131bcef52886feaa2308b2cc
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
+ checksum: 10c0/bcb74b421f32e4203a7100405b57aab85526be4461e5a1da01bc537969a30012d2ee209a2c2a6cac543833a27188ce1e6ad71e4628d0bb4a2e5365cad86c5002
languageName: node
linkType: hard
"eslint-plugin-react@npm:^7.33.2":
- version: 7.35.2
- resolution: "eslint-plugin-react@npm:7.35.2"
+ version: 7.37.1
+ resolution: "eslint-plugin-react@npm:7.37.1"
dependencies:
array-includes: "npm:^3.1.8"
array.prototype.findlast: "npm:^1.2.5"
@@ -8100,7 +7996,7 @@ __metadata:
string.prototype.repeat: "npm:^1.0.0"
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
- checksum: 10c0/5f891f5a77e902a0ca8d10b23d0b800e90a09400187febe5986c5078d6277baa4b974d6acdbba25baae065dbcf12eb9241b5f5782527d0780314c2ee5006a8af
+ checksum: 10c0/13cf55666f16d2ca45b14aad1b0e14741d1817679c86d20aff0bc1e802439a8541f40a42c4c8e3486ffb710f1bcc2f3e56697f2b5f724306a7fca174e1ad6433
languageName: node
linkType: hard
@@ -8139,14 +8035,14 @@ __metadata:
linkType: hard
"eslint@npm:^8.41.0":
- version: 8.57.0
- resolution: "eslint@npm:8.57.0"
+ version: 8.57.1
+ resolution: "eslint@npm:8.57.1"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.2.0"
"@eslint-community/regexpp": "npm:^4.6.1"
"@eslint/eslintrc": "npm:^2.1.4"
- "@eslint/js": "npm:8.57.0"
- "@humanwhocodes/config-array": "npm:^0.11.14"
+ "@eslint/js": "npm:8.57.1"
+ "@humanwhocodes/config-array": "npm:^0.13.0"
"@humanwhocodes/module-importer": "npm:^1.0.1"
"@nodelib/fs.walk": "npm:^1.2.8"
"@ungap/structured-clone": "npm:^1.2.0"
@@ -8182,7 +8078,7 @@ __metadata:
text-table: "npm:^0.2.0"
bin:
eslint: bin/eslint.js
- checksum: 10c0/00bb96fd2471039a312435a6776fe1fd557c056755eaa2b96093ef3a8508c92c8775d5f754768be6b1dddd09fdd3379ddb231eeb9b6c579ee17ea7d68000a529
+ checksum: 10c0/1fd31533086c1b72f86770a4d9d7058ee8b4643fd1cfd10c7aac1ecb8725698e88352a87805cf4b2ce890aa35947df4b4da9655fb7fdfa60dbb448a43f6ebcf1
languageName: node
linkType: hard
@@ -8994,7 +8890,7 @@ __metadata:
languageName: node
linkType: hard
-"get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4":
+"get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4":
version: 1.2.4
resolution: "get-intrinsic@npm:1.2.4"
dependencies:
@@ -9189,12 +9085,13 @@ __metadata:
languageName: node
linkType: hard
-"globalthis@npm:^1.0.3":
- version: 1.0.3
- resolution: "globalthis@npm:1.0.3"
+"globalthis@npm:^1.0.3, globalthis@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "globalthis@npm:1.0.4"
dependencies:
- define-properties: "npm:^1.1.3"
- checksum: 10c0/0db6e9af102a5254630351557ac15e6909bc7459d3e3f6b001e59fe784c96d31108818f032d9095739355a88467459e6488ff16584ee6250cd8c27dec05af4b0
+ define-properties: "npm:^1.2.1"
+ gopd: "npm:^1.0.1"
+ checksum: 10c0/9d156f313af79d80b1566b93e19285f481c591ad6d0d319b4be5e03750d004dde40a39a0f26f7e635f9007a3600802f53ecd85a759b86f109e80a5f705e01846
languageName: node
linkType: hard
@@ -9425,7 +9322,7 @@ __metadata:
languageName: node
linkType: hard
-"hoist-non-react-statics@npm:^3.1.0, hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.1, hoist-non-react-statics@npm:^3.3.2":
+"hoist-non-react-statics@npm:3, hoist-non-react-statics@npm:^3.1.0, hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.1, hoist-non-react-statics@npm:^3.3.2":
version: 3.3.2
resolution: "hoist-non-react-statics@npm:3.3.2"
dependencies:
@@ -9841,7 +9738,7 @@ __metadata:
languageName: node
linkType: hard
-"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.7":
+"internal-slot@npm:^1.0.7":
version: 1.0.7
resolution: "internal-slot@npm:1.0.7"
dependencies:
@@ -9866,15 +9763,15 @@ __metadata:
languageName: node
linkType: hard
-"intl-messageformat@npm:10.7.0, intl-messageformat@npm:^10.3.5":
- version: 10.7.0
- resolution: "intl-messageformat@npm:10.7.0"
+"intl-messageformat@npm:10.7.3, intl-messageformat@npm:^10.3.5":
+ version: 10.7.3
+ resolution: "intl-messageformat@npm:10.7.3"
dependencies:
- "@formatjs/ecma402-abstract": "npm:2.2.0"
- "@formatjs/fast-memoize": "npm:2.2.1"
- "@formatjs/icu-messageformat-parser": "npm:2.7.10"
- tslib: "npm:^2.7.0"
- checksum: 10c0/772469599fa8ab43dc933d03c75c6290220565c97afdc60cb67d036f2c51f1b3a825b2345933ee7616ecdf018b95ea7704f5ec80ded5a8efc2ce7f4b2962cae3
+ "@formatjs/ecma402-abstract": "npm:2.2.1"
+ "@formatjs/fast-memoize": "npm:2.2.2"
+ "@formatjs/icu-messageformat-parser": "npm:2.9.1"
+ tslib: "npm:2"
+ checksum: 10c0/7ddd118c04023c9ecdf9a2270753abd876e90a428d5106ce8373622ddefe72ff1daa33993b12065a3339b7f838e9266c3db9048aa7dd20012c8703c6ebe26fd4
languageName: node
linkType: hard
@@ -9957,7 +9854,7 @@ __metadata:
languageName: node
linkType: hard
-"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1":
+"is-arguments@npm:^1.0.4":
version: 1.1.1
resolution: "is-arguments@npm:1.1.1"
dependencies:
@@ -9967,7 +9864,7 @@ __metadata:
languageName: node
linkType: hard
-"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4":
+"is-array-buffer@npm:^3.0.4":
version: 3.0.4
resolution: "is-array-buffer@npm:3.0.4"
dependencies:
@@ -10232,7 +10129,7 @@ __metadata:
languageName: node
linkType: hard
-"is-map@npm:^2.0.1, is-map@npm:^2.0.2":
+"is-map@npm:^2.0.1":
version: 2.0.3
resolution: "is-map@npm:2.0.3"
checksum: 10c0/2c4d431b74e00fdda7162cd8e4b763d6f6f217edf97d4f8538b94b8702b150610e2c64961340015fe8df5b1fcee33ccd2e9b62619c4a8a3a155f8de6d6d355fc
@@ -10357,7 +10254,7 @@ __metadata:
languageName: node
linkType: hard
-"is-set@npm:^2.0.1, is-set@npm:^2.0.2":
+"is-set@npm:^2.0.1":
version: 2.0.3
resolution: "is-set@npm:2.0.3"
checksum: 10c0/f73732e13f099b2dc879c2a12341cfc22ccaca8dd504e6edae26484bd5707a35d503fba5b4daad530a9b088ced1ae6c9d8200fd92e09b428fe14ea79ce8080b7
@@ -10584,16 +10481,16 @@ __metadata:
languageName: node
linkType: hard
-"iterator.prototype@npm:^1.1.2":
- version: 1.1.2
- resolution: "iterator.prototype@npm:1.1.2"
+"iterator.prototype@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "iterator.prototype@npm:1.1.3"
dependencies:
define-properties: "npm:^1.2.1"
get-intrinsic: "npm:^1.2.1"
has-symbols: "npm:^1.0.3"
reflect.getprototypeof: "npm:^1.0.4"
set-function-name: "npm:^2.0.1"
- checksum: 10c0/a32151326095e916f306990d909f6bbf23e3221999a18ba686419535dcd1749b10ded505e89334b77dc4c7a58a8508978f0eb16c2c8573e6d412eb7eb894ea79
+ checksum: 10c0/68b0320c14291fbb3d8ed5a17e255d3127e7971bec19108076667e79c9ff4c7d69f99de4b0b3075c789c3f318366d7a0a35bb086eae0f2cf832dd58465b2f9e6
languageName: node
linkType: hard
@@ -11292,12 +11189,15 @@ __metadata:
languageName: node
linkType: hard
-"json-stable-stringify@npm:^1.0.1":
- version: 1.0.2
- resolution: "json-stable-stringify@npm:1.0.2"
+"json-stable-stringify@npm:1, json-stable-stringify@npm:^1.0.1":
+ version: 1.1.1
+ resolution: "json-stable-stringify@npm:1.1.1"
dependencies:
+ call-bind: "npm:^1.0.5"
+ isarray: "npm:^2.0.5"
jsonify: "npm:^0.0.1"
- checksum: 10c0/502d021c3c59c09587faa40d7693d77c00460fd6c68bae95d6e35804909ec8c4aec71b136d3a09df61a7ebf803eb6e820f23ede76b77e74b8b02c76afb2ada8c
+ object-keys: "npm:^1.1.1"
+ checksum: 10c0/3801e3eeccbd030afb970f54bea690a079cfea7d9ed206a1b17ca9367f4b7772c764bf77a48f03e56b50e5f7ee7d11c52339fe20d8d7ccead003e4ca69e4cfde
languageName: node
linkType: hard
@@ -12076,15 +11976,6 @@ __metadata:
languageName: node
linkType: hard
-"minimatch@npm:9.0.3":
- version: 9.0.3
- resolution: "minimatch@npm:9.0.3"
- dependencies:
- brace-expansion: "npm:^2.0.1"
- checksum: 10c0/85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac
- languageName: node
- linkType: hard
-
"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
version: 3.1.2
resolution: "minimatch@npm:3.1.2"
@@ -12553,7 +12444,7 @@ __metadata:
languageName: node
linkType: hard
-"object-is@npm:^1.0.1, object-is@npm:^1.1.5":
+"object-is@npm:^1.0.1":
version: 1.1.6
resolution: "object-is@npm:1.1.6"
dependencies:
@@ -13154,8 +13045,8 @@ __metadata:
linkType: hard
"pg@npm:^8.5.0":
- version: 8.13.0
- resolution: "pg@npm:8.13.0"
+ version: 8.13.1
+ resolution: "pg@npm:8.13.1"
dependencies:
pg-cloudflare: "npm:^1.1.1"
pg-connection-string: "npm:^2.7.0"
@@ -13171,7 +13062,7 @@ __metadata:
peerDependenciesMeta:
pg-native:
optional: true
- checksum: 10c0/1521189063d2293d62f3fac61e797a3096a62a69668c223827d00b83c17a320805f31f0b5316feb80f8d9eed0c6c32f95146d8aca866af05816a66fd2ba8e32a
+ checksum: 10c0/c13bc661cbdb115337bc8519254836faf4bd79106dfd7ed588c8ece8c8b2dd3b7376bfec9a9a2f7646fa095b0b310cec77a83c3ba2ea4872331446eb93fd9055
languageName: node
linkType: hard
@@ -13244,13 +13135,12 @@ __metadata:
languageName: node
linkType: hard
-"pino-abstract-transport@npm:^1.0.0, pino-abstract-transport@npm:^1.2.0":
- version: 1.2.0
- resolution: "pino-abstract-transport@npm:1.2.0"
+"pino-abstract-transport@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "pino-abstract-transport@npm:2.0.0"
dependencies:
- readable-stream: "npm:^4.0.0"
split2: "npm:^4.0.0"
- checksum: 10c0/b4ab59529b7a91f488440147fc58ee0827a6c1c5ca3627292339354b1381072c1a6bfa9b46d03ad27872589e8477ecf74da12cf286e1e6b665ac64a3b806bf07
+ checksum: 10c0/02c05b8f2ffce0d7c774c8e588f61e8b77de8ccb5f8125afd4a7325c9ea0e6af7fb78168999657712ae843e4462bb70ac550dfd6284f930ee57f17f486f25a9f
languageName: node
linkType: hard
@@ -13267,8 +13157,8 @@ __metadata:
linkType: hard
"pino-pretty@npm:^11.0.0":
- version: 11.2.2
- resolution: "pino-pretty@npm:11.2.2"
+ version: 11.3.0
+ resolution: "pino-pretty@npm:11.3.0"
dependencies:
colorette: "npm:^2.0.7"
dateformat: "npm:^4.6.3"
@@ -13278,7 +13168,7 @@ __metadata:
joycon: "npm:^3.1.1"
minimist: "npm:^1.2.6"
on-exit-leak-free: "npm:^2.1.0"
- pino-abstract-transport: "npm:^1.0.0"
+ pino-abstract-transport: "npm:^2.0.0"
pump: "npm:^3.0.0"
readable-stream: "npm:^4.0.0"
secure-json-parse: "npm:^2.4.0"
@@ -13286,7 +13176,7 @@ __metadata:
strip-json-comments: "npm:^3.1.1"
bin:
pino-pretty: bin.js
- checksum: 10c0/3ce1769907886a5584f6c8123d9bc987712ad10a375797733a0fe95a238df587dac8e2b709bab291c4e30d41b0cf65808c708c96f8eb98b2778b6df60afa7e66
+ checksum: 10c0/8e4d842bfce5fa3fc69d3a6adb1bca873051e000f0fb4879ae1cc5d1410387b2464a7208f6ecc70ec49bb149a9617ec233cb3ec7a5f017ec141cb482d79917c2
languageName: node
linkType: hard
@@ -13298,13 +13188,13 @@ __metadata:
linkType: hard
"pino@npm:^9.0.0":
- version: 9.4.0
- resolution: "pino@npm:9.4.0"
+ version: 9.5.0
+ resolution: "pino@npm:9.5.0"
dependencies:
atomic-sleep: "npm:^1.0.0"
fast-redact: "npm:^3.1.1"
on-exit-leak-free: "npm:^2.1.0"
- pino-abstract-transport: "npm:^1.2.0"
+ pino-abstract-transport: "npm:^2.0.0"
pino-std-serializers: "npm:^7.0.0"
process-warning: "npm:^4.0.0"
quick-format-unescaped: "npm:^4.0.3"
@@ -13314,7 +13204,7 @@ __metadata:
thread-stream: "npm:^3.0.0"
bin:
pino: bin.js
- checksum: 10c0/12a3d74968964d92b18ca7d6095a3c5b86478dc22264a37486d64e102085ed08820fcbe75e640acc3542fdf2937a34e5050b624f98e6ac62dd10f5e1328058a2
+ checksum: 10c0/b06590c5f4da43df59905af1aac344432b43154c4c1569ebea168e7ae7fd0a4181ccabb769a6568cf3e781e1d1b9df13d65b3603e25ebb05539bcb02ea04215e
languageName: node
linkType: hard
@@ -13368,14 +13258,14 @@ __metadata:
languageName: node
linkType: hard
-"postcss-attribute-case-insensitive@npm:^7.0.0":
- version: 7.0.0
- resolution: "postcss-attribute-case-insensitive@npm:7.0.0"
+"postcss-attribute-case-insensitive@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "postcss-attribute-case-insensitive@npm:7.0.1"
dependencies:
- postcss-selector-parser: "npm:^6.1.0"
+ postcss-selector-parser: "npm:^7.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/ce2a96bc29f59a6113953f1f72bfa2d4d34e54b194ff4d49aad0d548aa738835afaf479f22060a2605952b842f63aeae278b44e41f8f3a05731df28d08e2df97
+ checksum: 10c0/48945abe2024e2d2e4c37d30b8c1aaf37af720f24f6a996f7ea7e7ed33621f5c22cf247ed22028c0c922de040c58c0802729bc39b903cb1693f4b63c0b49da34
languageName: node
linkType: hard
@@ -13402,18 +13292,18 @@ __metadata:
languageName: node
linkType: hard
-"postcss-color-functional-notation@npm:^7.0.3":
- version: 7.0.3
- resolution: "postcss-color-functional-notation@npm:7.0.3"
+"postcss-color-functional-notation@npm:^7.0.4":
+ version: 7.0.4
+ resolution: "postcss-color-functional-notation@npm:7.0.4"
dependencies:
- "@csstools/css-color-parser": "npm:^3.0.3"
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/css-color-parser": "npm:^3.0.4"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
"@csstools/utilities": "npm:^2.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/5e04c81002512c960784043c096bc91ebc76b8fddb9259a2418b0e121eb65042944cc0f78946f6b7e5774ff1fee087849019655e4848af1f88879e3ab9ff7c17
+ checksum: 10c0/1e39c47f27610ebf6a6308cfea2904fbe1f157b13654325ada23153a944666722c6132b53dfc7660632406a636479dda68eeb97a246c2e593ad6eed1e9bf838d
languageName: node
linkType: hard
@@ -13467,57 +13357,57 @@ __metadata:
languageName: node
linkType: hard
-"postcss-custom-media@npm:^11.0.3":
- version: 11.0.3
- resolution: "postcss-custom-media@npm:11.0.3"
+"postcss-custom-media@npm:^11.0.4":
+ version: 11.0.4
+ resolution: "postcss-custom-media@npm:11.0.4"
dependencies:
- "@csstools/cascade-layer-name-parser": "npm:^2.0.2"
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/cascade-layer-name-parser": "npm:^2.0.3"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
- "@csstools/media-query-list-parser": "npm:^4.0.0"
+ "@csstools/media-query-list-parser": "npm:^4.0.1"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/bd3f0cf17d7422385d26afed510dc2acebb1d8c25fce13e2bbee1c49cdc7fe95ebe7f50b89ef0a88ebdd5f6826e89d99e26b905881ceff788df655670dba93d8
+ checksum: 10c0/31e82e5802f6933a15f5fcf64ff41c8107af9c1d5dcba3c4422a6de3fac77bce9e3dc4ed2b79ae7f6ae460549c5da5a013669af05c1ae21549dbb09b66a9492d
languageName: node
linkType: hard
-"postcss-custom-properties@npm:^14.0.2":
- version: 14.0.2
- resolution: "postcss-custom-properties@npm:14.0.2"
+"postcss-custom-properties@npm:^14.0.3":
+ version: 14.0.3
+ resolution: "postcss-custom-properties@npm:14.0.3"
dependencies:
- "@csstools/cascade-layer-name-parser": "npm:^2.0.2"
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/cascade-layer-name-parser": "npm:^2.0.3"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
"@csstools/utilities": "npm:^2.0.0"
postcss-value-parser: "npm:^4.2.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/ea2e0cb60c558bb1afb4e601dcc64a38e1b28e5df3e47b83b858fc12d909d0e3453013e6b368fc05a7db7098ffcdc702a30a92f1a3c0ef67dfb97bf089021f1a
+ checksum: 10c0/878ffd171ab9bbbba711930cf1b5bd48a12779e3b45d69f41366c2f65d84518f9338a92a277c0e390518c9e12272e06892cdc6575783bcdecfa6d26ebde3d043
languageName: node
linkType: hard
-"postcss-custom-selectors@npm:^8.0.2":
- version: 8.0.2
- resolution: "postcss-custom-selectors@npm:8.0.2"
+"postcss-custom-selectors@npm:^8.0.3":
+ version: 8.0.3
+ resolution: "postcss-custom-selectors@npm:8.0.3"
dependencies:
- "@csstools/cascade-layer-name-parser": "npm:^2.0.2"
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/cascade-layer-name-parser": "npm:^2.0.3"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
- postcss-selector-parser: "npm:^6.1.0"
+ postcss-selector-parser: "npm:^7.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/81673ffb0874f63c0f5e14315a5808259ec80ae8452aaf10d28112d30a9aaabbf61d13edb02f8be2965f44b943968c7eda051a1693da436ef157e77fcff0d752
+ checksum: 10c0/3acdada43e385c23130f1dde41b189acc7739e5bbd14751ae28b2bd97b0d97f30c2a53da4f9558d108a893cc48717f76b28395a9ff38dcbbe3c3a1721ee4a68a
languageName: node
linkType: hard
-"postcss-dir-pseudo-class@npm:^9.0.0":
- version: 9.0.0
- resolution: "postcss-dir-pseudo-class@npm:9.0.0"
+"postcss-dir-pseudo-class@npm:^9.0.1":
+ version: 9.0.1
+ resolution: "postcss-dir-pseudo-class@npm:9.0.1"
dependencies:
- postcss-selector-parser: "npm:^6.1.0"
+ postcss-selector-parser: "npm:^7.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/debae71bf508c0e494ebb1892ce6b3c1c4eeb6b23231180151a93920a12fec771815510cdec54db54605e090ae56af9f07c68ef6a61260d0c837adc719f9e1e4
+ checksum: 10c0/da9d3387648c5c3161a653d354c8f3e70a299108df3977e8aa65cf10793e4dd58a2711b3426cd63716245b13584ca8d95adcd6e10e3c9adbc61d08743e2d8690
languageName: node
linkType: hard
@@ -13572,25 +13462,25 @@ __metadata:
languageName: node
linkType: hard
-"postcss-focus-visible@npm:^10.0.0":
- version: 10.0.0
- resolution: "postcss-focus-visible@npm:10.0.0"
+"postcss-focus-visible@npm:^10.0.1":
+ version: 10.0.1
+ resolution: "postcss-focus-visible@npm:10.0.1"
dependencies:
- postcss-selector-parser: "npm:^6.1.0"
+ postcss-selector-parser: "npm:^7.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/b86b825bac597092b300127c2686c0669ce0766165716ecda42f298f21ca69dda721e44917732cbcb2611a4ab650f1231bf8c5d4d07c9daefef815329251ae8a
+ checksum: 10c0/c5ecc8536a708a49a99d0abd68a88a160664e6c832c808db8edd9f0221e7017a258daa87e49daf2cb098cb037005d46cf492403c8c9c92ad8835d30adaccf665
languageName: node
linkType: hard
-"postcss-focus-within@npm:^9.0.0":
- version: 9.0.0
- resolution: "postcss-focus-within@npm:9.0.0"
+"postcss-focus-within@npm:^9.0.1":
+ version: 9.0.1
+ resolution: "postcss-focus-within@npm:9.0.1"
dependencies:
- postcss-selector-parser: "npm:^6.1.0"
+ postcss-selector-parser: "npm:^7.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/1d6f1b4f4d12e23a2824f394652d520942f00fd582d3016c933a492fe0ba38aaf26bc1855576878aaeaeda1d6fc38da39bb51e8e6470c50ef03f3ea9a286b3d1
+ checksum: 10c0/d6ab49d2a7f33485a9e137dc77ec92c5619a3ec92e1e672734fc604853ff1f3c0c189085c12461614be4fcb03ea0347d91791a45986a18d50b5228d161eda57a
languageName: node
linkType: hard
@@ -13624,18 +13514,18 @@ __metadata:
languageName: node
linkType: hard
-"postcss-lab-function@npm:^7.0.3":
- version: 7.0.3
- resolution: "postcss-lab-function@npm:7.0.3"
+"postcss-lab-function@npm:^7.0.4":
+ version: 7.0.4
+ resolution: "postcss-lab-function@npm:7.0.4"
dependencies:
- "@csstools/css-color-parser": "npm:^3.0.3"
- "@csstools/css-parser-algorithms": "npm:^3.0.2"
+ "@csstools/css-color-parser": "npm:^3.0.4"
+ "@csstools/css-parser-algorithms": "npm:^3.0.3"
"@csstools/css-tokenizer": "npm:^3.0.2"
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
"@csstools/utilities": "npm:^2.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/c50a73a9ed54b4194998c4627599d1f42074235f572edbbcdb0e00717f3ae2121dc8378d917792b281860c5650a617d923823da6f395515f610b5760d115354d
+ checksum: 10c0/79ce3cc20484aef0e0bbc2d18c8f91d7362226a3db52f06a931ac8e1c58ffbc60876c6439f364093e5f16ef92260a420230cfb2a9e7b95c6c11e6f7d57626260
languageName: node
linkType: hard
@@ -13792,16 +13682,16 @@ __metadata:
languageName: node
linkType: hard
-"postcss-nesting@npm:^13.0.0":
- version: 13.0.0
- resolution: "postcss-nesting@npm:13.0.0"
+"postcss-nesting@npm:^13.0.1":
+ version: 13.0.1
+ resolution: "postcss-nesting@npm:13.0.1"
dependencies:
- "@csstools/selector-resolve-nested": "npm:^2.0.0"
- "@csstools/selector-specificity": "npm:^4.0.0"
- postcss-selector-parser: "npm:^6.1.0"
+ "@csstools/selector-resolve-nested": "npm:^3.0.0"
+ "@csstools/selector-specificity": "npm:^5.0.0"
+ postcss-selector-parser: "npm:^7.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/b82a3c7010f7c6097bd3f3fe6c03f3f3af9a63a58e255f120dadd506a0ea9444aeeaba994f2a3fa34fb26e666dc72032edf5786c5fbdade790b02ad07d91ef95
+ checksum: 10c0/549307c272cdd4cb5105d8fbcd582f15a1cb74e5bba240b05b27f77fe0422730be966699a49a9ad15fd9d1bc551c1edbaefb21a69686a9b131b585dbc9d90ebf
languageName: node
linkType: hard
@@ -13956,84 +13846,84 @@ __metadata:
linkType: hard
"postcss-preset-env@npm:^10.0.0":
- version: 10.0.7
- resolution: "postcss-preset-env@npm:10.0.7"
+ version: 10.0.8
+ resolution: "postcss-preset-env@npm:10.0.8"
dependencies:
- "@csstools/postcss-cascade-layers": "npm:^5.0.0"
- "@csstools/postcss-color-function": "npm:^4.0.3"
- "@csstools/postcss-color-mix-function": "npm:^3.0.3"
- "@csstools/postcss-content-alt-text": "npm:^2.0.2"
- "@csstools/postcss-exponential-functions": "npm:^2.0.2"
+ "@csstools/postcss-cascade-layers": "npm:^5.0.1"
+ "@csstools/postcss-color-function": "npm:^4.0.4"
+ "@csstools/postcss-color-mix-function": "npm:^3.0.4"
+ "@csstools/postcss-content-alt-text": "npm:^2.0.3"
+ "@csstools/postcss-exponential-functions": "npm:^2.0.3"
"@csstools/postcss-font-format-keywords": "npm:^4.0.0"
- "@csstools/postcss-gamut-mapping": "npm:^2.0.3"
- "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.3"
- "@csstools/postcss-hwb-function": "npm:^4.0.3"
+ "@csstools/postcss-gamut-mapping": "npm:^2.0.4"
+ "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.4"
+ "@csstools/postcss-hwb-function": "npm:^4.0.4"
"@csstools/postcss-ic-unit": "npm:^4.0.0"
"@csstools/postcss-initial": "npm:^2.0.0"
- "@csstools/postcss-is-pseudo-class": "npm:^5.0.0"
- "@csstools/postcss-light-dark-function": "npm:^2.0.5"
+ "@csstools/postcss-is-pseudo-class": "npm:^5.0.1"
+ "@csstools/postcss-light-dark-function": "npm:^2.0.6"
"@csstools/postcss-logical-float-and-clear": "npm:^3.0.0"
"@csstools/postcss-logical-overflow": "npm:^2.0.0"
"@csstools/postcss-logical-overscroll-behavior": "npm:^2.0.0"
"@csstools/postcss-logical-resize": "npm:^3.0.0"
"@csstools/postcss-logical-viewport-units": "npm:^3.0.2"
- "@csstools/postcss-media-minmax": "npm:^2.0.2"
- "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.2"
+ "@csstools/postcss-media-minmax": "npm:^2.0.3"
+ "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.3"
"@csstools/postcss-nested-calc": "npm:^4.0.0"
"@csstools/postcss-normalize-display-values": "npm:^4.0.0"
- "@csstools/postcss-oklab-function": "npm:^4.0.3"
+ "@csstools/postcss-oklab-function": "npm:^4.0.4"
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
- "@csstools/postcss-relative-color-syntax": "npm:^3.0.3"
- "@csstools/postcss-scope-pseudo-class": "npm:^4.0.0"
- "@csstools/postcss-stepped-value-functions": "npm:^4.0.2"
+ "@csstools/postcss-relative-color-syntax": "npm:^3.0.4"
+ "@csstools/postcss-scope-pseudo-class": "npm:^4.0.1"
+ "@csstools/postcss-stepped-value-functions": "npm:^4.0.3"
"@csstools/postcss-text-decoration-shorthand": "npm:^4.0.1"
- "@csstools/postcss-trigonometric-functions": "npm:^4.0.2"
+ "@csstools/postcss-trigonometric-functions": "npm:^4.0.3"
"@csstools/postcss-unset-value": "npm:^4.0.0"
autoprefixer: "npm:^10.4.19"
browserslist: "npm:^4.23.1"
- css-blank-pseudo: "npm:^7.0.0"
- css-has-pseudo: "npm:^7.0.0"
+ css-blank-pseudo: "npm:^7.0.1"
+ css-has-pseudo: "npm:^7.0.1"
css-prefers-color-scheme: "npm:^10.0.0"
- cssdb: "npm:^8.1.1"
- postcss-attribute-case-insensitive: "npm:^7.0.0"
+ cssdb: "npm:^8.1.2"
+ postcss-attribute-case-insensitive: "npm:^7.0.1"
postcss-clamp: "npm:^4.1.0"
- postcss-color-functional-notation: "npm:^7.0.3"
+ postcss-color-functional-notation: "npm:^7.0.4"
postcss-color-hex-alpha: "npm:^10.0.0"
postcss-color-rebeccapurple: "npm:^10.0.0"
- postcss-custom-media: "npm:^11.0.3"
- postcss-custom-properties: "npm:^14.0.2"
- postcss-custom-selectors: "npm:^8.0.2"
- postcss-dir-pseudo-class: "npm:^9.0.0"
+ postcss-custom-media: "npm:^11.0.4"
+ postcss-custom-properties: "npm:^14.0.3"
+ postcss-custom-selectors: "npm:^8.0.3"
+ postcss-dir-pseudo-class: "npm:^9.0.1"
postcss-double-position-gradients: "npm:^6.0.0"
- postcss-focus-visible: "npm:^10.0.0"
- postcss-focus-within: "npm:^9.0.0"
+ postcss-focus-visible: "npm:^10.0.1"
+ postcss-focus-within: "npm:^9.0.1"
postcss-font-variant: "npm:^5.0.0"
postcss-gap-properties: "npm:^6.0.0"
postcss-image-set-function: "npm:^7.0.0"
- postcss-lab-function: "npm:^7.0.3"
+ postcss-lab-function: "npm:^7.0.4"
postcss-logical: "npm:^8.0.0"
- postcss-nesting: "npm:^13.0.0"
+ postcss-nesting: "npm:^13.0.1"
postcss-opacity-percentage: "npm:^3.0.0"
postcss-overflow-shorthand: "npm:^6.0.0"
postcss-page-break: "npm:^3.0.4"
postcss-place: "npm:^10.0.0"
- postcss-pseudo-class-any-link: "npm:^10.0.0"
+ postcss-pseudo-class-any-link: "npm:^10.0.1"
postcss-replace-overflow-wrap: "npm:^4.0.0"
- postcss-selector-not: "npm:^8.0.0"
+ postcss-selector-not: "npm:^8.0.1"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/f789000e0504fd827e854bb0feb8b4c218d381314e4d863c5a36df925df412d0844c912952fe27892a320433640aeaff03ee94a3057b42011bf5d32b3963f333
+ checksum: 10c0/3f7dc8eb2e7f4e7a5eee0a9456972a5b18bd40109d1aa3328f60cd645d352f3a70c83c507ea58f83b820153b0f5c3f14af3f376573c56599c36d5739c943b6f1
languageName: node
linkType: hard
-"postcss-pseudo-class-any-link@npm:^10.0.0":
- version: 10.0.0
- resolution: "postcss-pseudo-class-any-link@npm:10.0.0"
+"postcss-pseudo-class-any-link@npm:^10.0.1":
+ version: 10.0.1
+ resolution: "postcss-pseudo-class-any-link@npm:10.0.1"
dependencies:
- postcss-selector-parser: "npm:^6.1.0"
+ postcss-selector-parser: "npm:^7.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/8357716e0ba0f01c70dba65a1efd268f610249ac2fbd41833e5e87dc19ffa7911c8d5e234d0d7c77d94ba6cdfa04fe7f0f98461c34f64cdbb59abd9737ab7d32
+ checksum: 10c0/95e883996e87baf14fc09d25f9a763a2e9d599eb3b9c6b736e83a8c3d0b55841bcb886bccdf51b5b7fefc128cbd0187ad8841f59878f85bd1613642e592d7673
languageName: node
linkType: hard
@@ -14094,18 +13984,18 @@ __metadata:
languageName: node
linkType: hard
-"postcss-selector-not@npm:^8.0.0":
- version: 8.0.0
- resolution: "postcss-selector-not@npm:8.0.0"
+"postcss-selector-not@npm:^8.0.1":
+ version: 8.0.1
+ resolution: "postcss-selector-not@npm:8.0.1"
dependencies:
- postcss-selector-parser: "npm:^6.1.0"
+ postcss-selector-parser: "npm:^7.0.0"
peerDependencies:
postcss: ^8.4
- checksum: 10c0/677f2cd9d0cd481d276663b57001b2ba96db94ad5bba397f277e53d560ccb074b27c21792deff44720a9f2d96da85fa34f438bb1d33198305b5866b35f1a4708
+ checksum: 10c0/491ea3dcc421cd90135be786078521605e2062fb93624ea8813cfd5ba0d35143f931e2e608d5f20effd5ea7d3f4786d2afea2afa42d117779a0288e135f132b6
languageName: node
linkType: hard
-"postcss-selector-parser@npm:^6.0.13, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.1.0, postcss-selector-parser@npm:^6.1.2":
+"postcss-selector-parser@npm:^6.0.13, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.1.2":
version: 6.1.2
resolution: "postcss-selector-parser@npm:6.1.2"
dependencies:
@@ -14115,6 +14005,16 @@ __metadata:
languageName: node
linkType: hard
+"postcss-selector-parser@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "postcss-selector-parser@npm:7.0.0"
+ dependencies:
+ cssesc: "npm:^3.0.0"
+ util-deprecate: "npm:^1.0.2"
+ checksum: 10c0/e96e096afcce70bf5c97789f5ea09d7415ae5eb701d82b05b5e8532885d31363b484fcb1ca9488c9a331f30508d9e5bb6c3109eb2eb5067ef3d3919f9928cd9d
+ languageName: node
+ linkType: hard
+
"postcss-svgo@npm:^7.0.1":
version: 7.0.1
resolution: "postcss-svgo@npm:7.0.1"
@@ -14596,26 +14496,26 @@ __metadata:
linkType: hard
"react-intl@npm:^6.4.2":
- version: 6.8.0
- resolution: "react-intl@npm:6.8.0"
+ version: 6.8.4
+ resolution: "react-intl@npm:6.8.4"
dependencies:
- "@formatjs/ecma402-abstract": "npm:2.2.0"
- "@formatjs/icu-messageformat-parser": "npm:2.7.10"
- "@formatjs/intl": "npm:2.10.8"
- "@formatjs/intl-displaynames": "npm:6.6.10"
- "@formatjs/intl-listformat": "npm:7.5.9"
- "@types/hoist-non-react-statics": "npm:^3.3.1"
+ "@formatjs/ecma402-abstract": "npm:2.2.1"
+ "@formatjs/icu-messageformat-parser": "npm:2.9.1"
+ "@formatjs/intl": "npm:2.10.11"
+ "@formatjs/intl-displaynames": "npm:6.8.1"
+ "@formatjs/intl-listformat": "npm:7.7.1"
+ "@types/hoist-non-react-statics": "npm:3"
"@types/react": "npm:^18.3.11"
- hoist-non-react-statics: "npm:^3.3.2"
- intl-messageformat: "npm:10.7.0"
- tslib: "npm:^2.7.0"
+ hoist-non-react-statics: "npm:3"
+ intl-messageformat: "npm:10.7.3"
+ tslib: "npm:2"
peerDependencies:
react: ^16.6.0 || 17 || 18
typescript: ^4.7 || 5
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/e110d8cbfc227cbed3b72b162fe8a75e824aef47eeb5a7879a5a2d9fa5dd35d2d25149ef57460fa06bca7ae106184c729e410c22bcdb349d29bb1ee35f3c5cf0
+ checksum: 10c0/a6b417c1cfb36ffe38645fe9daaaf3e1a25660468b8dbd4ccf386be063cc7c0fdeecc3c0490c671721408696b6578262b8db5882d00b76d4ec48d94601b14eab
languageName: node
linkType: hard
@@ -15133,7 +15033,7 @@ __metadata:
languageName: node
linkType: hard
-"regexp.prototype.flags@npm:^1.2.0, regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.2":
+"regexp.prototype.flags@npm:^1.2.0, regexp.prototype.flags@npm:^1.5.2":
version: 1.5.2
resolution: "regexp.prototype.flags@npm:1.5.2"
dependencies:
@@ -16351,15 +16251,6 @@ __metadata:
languageName: node
linkType: hard
-"stop-iteration-iterator@npm:^1.0.0":
- version: 1.0.0
- resolution: "stop-iteration-iterator@npm:1.0.0"
- dependencies:
- internal-slot: "npm:^1.0.4"
- checksum: 10c0/c4158d6188aac510d9e92925b58709207bd94699e9c31186a040c80932a687f84a51356b5895e6dc72710aad83addb9411c22171832c9ae0e6e11b7d61b0dfb9
- languageName: node
- linkType: hard
-
"stream-browserify@npm:^2.0.1":
version: 2.0.2
resolution: "stream-browserify@npm:2.0.2"
@@ -16444,13 +16335,14 @@ __metadata:
languageName: node
linkType: hard
-"string.prototype.includes@npm:^2.0.0":
- version: 2.0.0
- resolution: "string.prototype.includes@npm:2.0.0"
+"string.prototype.includes@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "string.prototype.includes@npm:2.0.1"
dependencies:
- define-properties: "npm:^1.1.3"
- es-abstract: "npm:^1.17.5"
- checksum: 10c0/32dff118c9e9dcc87e240b05462fa8ee7248d9e335c0015c1442fe18152261508a2146d9bb87ddae56abab69148a83c61dfaea33f53853812a6a2db737689ed2
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.3"
+ checksum: 10c0/25ce9c9b49128352a2618fbe8758b46f945817a58a4420f4799419e40a8d28f116e176c7590d767d5327a61e75c8f32c86171063f48e389b9fdd325f1bd04ee5
languageName: node
linkType: hard
@@ -17154,13 +17046,6 @@ __metadata:
languageName: node
linkType: hard
-"to-fast-properties@npm:^2.0.0":
- version: 2.0.0
- resolution: "to-fast-properties@npm:2.0.0"
- checksum: 10c0/b214d21dbfb4bce3452b6244b336806ffea9c05297148d32ebb428d5c43ce7545bdfc65a1ceb58c9ef4376a65c0cb2854d645f33961658b3e3b4f84910ddcdd7
- languageName: node
- linkType: hard
-
"to-object-path@npm:^0.3.0":
version: 0.3.0
resolution: "to-object-path@npm:0.3.0"
@@ -17270,7 +17155,7 @@ __metadata:
languageName: node
linkType: hard
-"ts-api-utils@npm:^1.0.1, ts-api-utils@npm:^1.3.0":
+"ts-api-utils@npm:^1.3.0":
version: 1.3.0
resolution: "ts-api-utils@npm:1.3.0"
peerDependencies:
@@ -17291,17 +17176,10 @@ __metadata:
languageName: node
linkType: hard
-"tslib@npm:2.6.2":
- version: 2.6.2
- resolution: "tslib@npm:2.6.2"
- checksum: 10c0/e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb
- languageName: node
- linkType: hard
-
-"tslib@npm:^2.0.0, tslib@npm:^2.4.0, tslib@npm:^2.6.2, tslib@npm:^2.7.0":
- version: 2.7.0
- resolution: "tslib@npm:2.7.0"
- checksum: 10c0/469e1d5bf1af585742128827000711efa61010b699cb040ab1800bcd3ccdd37f63ec30642c9e07c4439c1db6e46345582614275daca3e0f4abae29b0083f04a6
+"tslib@npm:2, tslib@npm:^2.0.0, tslib@npm:^2.4.0, tslib@npm:^2.6.2, tslib@npm:^2.7.0":
+ version: 2.8.0
+ resolution: "tslib@npm:2.8.0"
+ checksum: 10c0/31e4d14dc1355e9b89e4d3c893a18abb7f90b6886b089c2da91224d0a7752c79f3ddc41bc1aa0a588ac895bd97bb99c5bc2bfdb2f86de849f31caeb3ba79bbe5
languageName: node
linkType: hard
@@ -17483,6 +17361,13 @@ __metadata:
languageName: node
linkType: hard
+"undici-types@npm:~6.19.2":
+ version: 6.19.8
+ resolution: "undici-types@npm:6.19.8"
+ checksum: 10c0/078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344
+ languageName: node
+ linkType: hard
+
"unicode-canonical-property-names-ecmascript@npm:^2.0.0":
version: 2.0.0
resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0"
@@ -18295,7 +18180,7 @@ __metadata:
languageName: node
linkType: hard
-"which-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15, which-typed-array@npm:^1.1.9":
+"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15, which-typed-array@npm:^1.1.9":
version: 1.1.15
resolution: "which-typed-array@npm:1.1.15"
dependencies: