diff --git a/Gemfile b/Gemfile
index 6206a189c0e647..821938d0525f4b 100644
--- a/Gemfile
+++ b/Gemfile
@@ -112,8 +112,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 18c8eeaa433c65..6c0e63fad41d46 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -537,7 +537,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)
@@ -549,13 +549,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)
@@ -587,16 +587,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)
@@ -1061,8 +1061,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)
@@ -1135,7 +1135,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 167d16fc4d838c..f5159614278a0b 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 @@ def update
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 cfd93978cea576..c01da212499f04 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 6937331e1a6df9..9b950d5a6370f4 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 3c2cc06578e9a4..8bab687a594e7f 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -120,18 +120,6 @@ def check_icon
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 394202e39ad78a..0a8ebcde549cdc 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/images/logo_full.svg b/app/javascript/images/logo_full.svg
deleted file mode 100644
index 03bcf93e39d260..00000000000000
--- 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 a1e7b403e034c3..00000000000000
--- 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 00000000000000..ae6fbbe04a9f9b
--- /dev/null
+++ b/app/javascript/images/quote.svg
@@ -0,0 +1,3 @@
+
diff --git a/app/javascript/mastodon/components/content_warning.tsx b/app/javascript/mastodon/components/content_warning.tsx
index df8afca74d6a86..c1c879b55d27c8 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 4305e43038df9f..5eaaac4ba38686 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/status.jsx b/app/javascript/mastodon/components/status.jsx
index 46926b4aaead34..479213636818c9 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 8ff17a9b2e4b84..d25c05d6dbe098 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/locales/en.json b/app/javascript/mastodon/locales/en.json
index c29cdfed4de141..ceac91cd463b55 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -199,6 +199,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",
@@ -307,7 +308,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 5a9cc7220c7624..2001353b2e81e7 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 76bdc4022e3ef0..777c622ace0855 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 219d6080d714e6..420d0abca08e34 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -11127,19 +11127,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 {
@@ -11148,31 +11150,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;
- }
-
- &::before {
- border-start-start-radius: 4px;
- border-end-start-radius: 4px;
- inset-inline-start: 0;
- }
+ &--filter {
+ color: $darker-text-color;
- &::after {
- border-start-end-radius: 4px;
- border-end-end-radius: 4px;
- inset-inline-end: 0;
- }
+ p {
+ font-weight: normal;
+ }
- &--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 c57db26e036c32..52412274b61ef2 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;
+
+ &::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-child {
+ 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 baaec5f58f5942..fe36e166311e81 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 bfe5de44f87804..ee268d7a7c3649 100644
--- a/app/lib/translation_service.rb
+++ b/app/lib/translation_service.rb
@@ -8,17 +8,27 @@ class QuotaExceededError < Error; end
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 27ab33b0ffc10c..49dae9f5cfae72 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -66,6 +66,8 @@ class Account < ApplicationRecord
)
BACKGROUND_REFRESH_INTERVAL = 1.week.freeze
+ REFRESH_DEADLINE = 6.hours
+ STALE_THRESHOLD = 1.day
DEFAULT_FIELDS_SIZE = 4
INSTANCE_ACTOR_ID = -99
@@ -230,13 +232,13 @@ def to_webfinger_s
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 d6242efbf7db24..5ed4d2a84626d4 100644
--- a/app/models/ip_block.rb
+++ b/app/models/ip_block.rb
@@ -36,9 +36,14 @@ def to_log_human_identifier
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 32efb331b62656..29ea430cc0175a 100644
--- a/app/models/link_feed.rb
+++ b/app/models/link_feed.rb
@@ -19,6 +19,8 @@ def get(limit, max_id = nil, since_id = nil, min_id = nil)
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 9d30881bf38238..656040d2cec43b 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 e771928ef31fa7..824e7b59407d6b 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 @@ def perform(subscription_id, notification_id)
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 @@ def serialized_notification
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 5e2f44453d4d9c..f94366d36f49db 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -109,6 +109,9 @@ class Application < Rails::Application
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 00000000000000..a9f54588c71682
--- /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/routes/api.rb b/config/routes/api.rb
index 46907a1ce2f3db..57ce3ba9fd45c7 100644
--- a/config/routes/api.rb
+++ b/config/routes/api.rb
@@ -346,7 +346,7 @@
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 00000000000000..e074c5d0f22732
--- /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/cypress/e2e/visibilty_check_spec.cy.ts b/cypress/e2e/visibilty_check_spec.cy.ts
index cbc38bd1313be6..90beb0d608a5be 100644
--- a/cypress/e2e/visibilty_check_spec.cy.ts
+++ b/cypress/e2e/visibilty_check_spec.cy.ts
@@ -146,6 +146,6 @@ describe('custom theme change test', () => {
).contains('にゃーん');
cy.get(
'[aria-posinset="1"] > [tabindex="-1"] > .status__wrapper > .status',
- ).contains('承知の上で表示');
+ ).contains('Show more');
});
});
diff --git a/db/migrate/20241014010506_remove_duplicate_indexes.rb b/db/migrate/20241014010506_remove_duplicate_indexes.rb
new file mode 100644
index 00000000000000..50e0e6ffcfc00c
--- /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 14254bd127afc2..d97d4c75569da8 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 @@
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 @@
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 @@
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|
@@ -1202,7 +1199,6 @@
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/spec/fabricators/account_conversation_fabricator.rb b/spec/fabricators/account_conversation_fabricator.rb
new file mode 100644
index 00000000000000..6145ed8254cadc
--- /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 0f78dc82f511e3..ffcc5b81b66c49 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -227,28 +227,6 @@ def current_theme = 'default'
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 00000000000000..9ea398bf4ca38e
--- /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 679309bd11c746..1d704996746338 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 @@
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 @@
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 @@
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 @@
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 @@
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 reblog of a personally blocked domain' do
@@ -140,19 +142,19 @@
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
@@ -161,7 +163,7 @@
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
@@ -171,7 +173,7 @@
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
@@ -179,7 +181,7 @@
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
@@ -188,7 +190,7 @@
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
@@ -196,27 +198,27 @@
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
@@ -228,7 +230,7 @@
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
@@ -239,7 +241,7 @@
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
@@ -247,9 +249,9 @@
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
@@ -257,14 +259,14 @@
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
@@ -273,10 +275,10 @@
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
@@ -285,15 +287,15 @@
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
@@ -302,14 +304,14 @@
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
@@ -318,15 +320,15 @@
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
@@ -334,9 +336,9 @@
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
@@ -359,9 +361,9 @@
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
@@ -371,19 +373,19 @@
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
@@ -394,25 +396,25 @@
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
@@ -423,25 +425,25 @@
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
@@ -451,9 +453,9 @@
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
@@ -466,14 +468,14 @@
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)
@@ -484,12 +486,12 @@
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
@@ -499,14 +501,14 @@
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]
@@ -515,10 +517,10 @@
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)
@@ -532,9 +534,9 @@
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
@@ -545,9 +547,9 @@
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
@@ -555,9 +557,9 @@
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
@@ -588,7 +590,7 @@
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 fc8c6bd250efde..17c83967a4ab7f 100644
--- a/spec/models/account_alias_spec.rb
+++ b/spec/models/account_alias_spec.rb
@@ -8,4 +8,26 @@
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 d658915ce3c4e6..b92771e8f5c737 100644
--- a/spec/models/account_migration_spec.rb
+++ b/spec/models/account_migration_spec.rb
@@ -9,8 +9,8 @@
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 @@
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 @@
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 079774c4925b4e..f3bcff4cd66d13 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
-
- 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
+ describe 'Validations' do
+ subject { Fabricate.build :account_moderation_note }
- 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 a8f6ed74937af4..7a5deed599c5e4 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -10,64 +10,6 @@
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 @@
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 @@
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: }
+
+ 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 values' do
- expect { subject.valid? }
- .to not_change(subject, :note)
- .and(not_change(subject, :display_name))
+ it 'preserves content' do
+ expect { subject.valid? }
+ .to not_change(subject, :note)
+ .and not_change(subject, :display_name)
+ end
+ end
end
end
end
@@ -826,32 +784,30 @@
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)
- end
+ context 'when account is local' do
+ subject { Fabricate.build :account, domain: nil }
- 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)
+ 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_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')
account.save(validate: false)
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 @@
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 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 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_expected.to_not allow_values('the-doctor', 'the.doctor').for(:username) }
- 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_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 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)
- end
+ context 'when account is remote' do
+ subject { Fabricate.build :account, domain: 'host.example' }
- 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
+ context 'when a normalized domain account exists' do
+ subject { Fabricate.build :account, domain: 'xn--r9j5b5b' }
- 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
+ before { Fabricate(:account, domain: 'にゃん', username: 'username') }
- 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)
+ it { is_expected.to_not allow_values('username', 'Username').for(: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_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 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_expected.to allow_values(display_name_over_limit).for(:display_name) }
- 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 @@ def account_note_over_limit
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 c142a0359ac6fe..9bbbefa08eb489 100644
--- a/spec/models/account_statuses_cleanup_policy_spec.rb
+++ b/spec/models/account_statuses_cleanup_policy_spec.rb
@@ -5,13 +5,12 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
.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 8bd1e74b2975b5..884b352cb5ac77 100644
--- a/spec/models/announcement_spec.rb
+++ b/spec/models/announcement_spec.rb
@@ -67,18 +67,30 @@
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 7e324582ed5d37..e974ff92547f0a 100644
--- a/spec/models/appeal_spec.rb
+++ b/spec/models/appeal_spec.rb
@@ -4,20 +4,85 @@
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
- )
-
- expect(appeal).to_not be_valid
- expect(appeal).to model_have_error_on_field(:text)
+ subject { Fabricate.build :appeal, strike: Fabricate(:account_warning) }
+
+ 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 '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
+ 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 @@
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 @@
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 00000000000000..3d71f1b723087c
--- /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 d8f438f07eea2e..fbb324657e21b4 100644
--- a/spec/models/domain_allow_spec.rb
+++ b/spec/models/domain_allow_spec.rb
@@ -6,11 +6,10 @@
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 f22bd6ea88d53d..8684170dcf0c43 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
+
+ describe 'Validations' do
+ subject { Fabricate.build :follow, rate_limit: true }
+
+ let(:account) { Fabricate(:account) }
- it 'is invalid if account already follows too many people' do
- alice.update(following_count: FollowLimitValidator::LIMIT)
+ context 'when account follows too many people' do
+ before { account.update(following_count: FollowLimitValidator::LIMIT) }
- expect(subject).to_not be_valid
- expect(subject).to model_have_error_on_field(:base)
+ 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 @@
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 6080b9e081d39e..73106f2b69ce36 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 ac9f5db601329e..b85856780ae970 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 c0bc2b6e0e01bf..0fe76c37b07cda 100644
--- a/spec/models/preview_card_spec.rb
+++ b/spec/models/preview_card_spec.rb
@@ -9,26 +9,10 @@
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 417971c9a1e357..0d1c0f619e5957 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
-
- 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
+ describe 'Validations' do
+ subject { Fabricate.build :report_note }
- 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 c4105d91500622..067c696c1338a6 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')
-
- 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?
+ it { is_expected.to validate_uniqueness_of(:external_id) }
+ it { is_expected.to validate_uniqueness_of(:nickname).scoped_to(:user_id) }
- 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 00000000000000..d780ad51684876
--- /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 00000000000000..956bc7d201c04b
--- /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 00000000000000..eb191f436b6f2a
--- /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 00000000000000..a903dc6f89dae8
--- /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 07eaaca9fb93b0..43a8e170ccb5a2 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 @@ def as_a_logged_in_admin
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 7e3cbfd334ea44..a05a146fef7af4 100644
--- a/spec/system/profile_spec.rb
+++ b/spec/system/profile_spec.rb
@@ -11,10 +11,10 @@
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 3e88e8db28be7f..4408ef77a9433e 100644
--- a/spec/workers/account_refresh_worker_spec.rb
+++ b/spec/workers/account_refresh_worker_spec.rb
@@ -7,9 +7,7 @@
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 @@ def outdated_webfinger_at
(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 00000000000000..0847b247e378ad
--- /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 d651059c9a6ed8..a98c603c17d73c 100644
--- a/spec/workers/push_conversation_worker_spec.rb
+++ b/spec/workers/push_conversation_worker_spec.rb
@@ -6,8 +6,30 @@
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 6206ab59867a27..f3e0a128df55b8 100644
--- a/spec/workers/push_update_worker_spec.rb
+++ b/spec/workers/push_update_worker_spec.rb
@@ -6,11 +6,31 @@
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
+
+ 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
- expect { worker.perform(account_id, status_id) }.to_not raise_error
+ 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 00000000000000..9938d971b9a653
--- /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 7866824ee751fc..a8a5bcea81d7eb 100644
--- a/spec/workers/remove_featured_tag_worker_spec.rb
+++ b/spec/workers/remove_featured_tag_worker_spec.rb
@@ -4,12 +4,35 @@
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 de349adacb6f39..58c2c1212924e5 100644
--- a/spec/workers/resolve_account_worker_spec.rb
+++ b/spec/workers/resolve_account_worker_spec.rb
@@ -4,10 +4,34 @@
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 7f836d99e431f9..4993d467b36752 100644
--- a/spec/workers/web/push_notification_worker_spec.rb
+++ b/spec/workers/web/push_notification_worker_spec.rb
@@ -61,6 +61,7 @@ def web_push_endpoint_request
'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/yarn.lock b/yarn.lock
index 75944a19ff0c4a..478ebffd2322ce 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -35,127 +35,174 @@ __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/code-frame@npm:^7.26.0":
+ version: 7.26.0
+ resolution: "@babel/code-frame@npm:7.26.0"
+ dependencies:
+ "@babel/helper-validator-identifier": "npm:^7.25.9"
+ js-tokens: "npm:^4.0.0"
+ picocolors: "npm:^1.0.0"
+ checksum: 10c0/46f7e367714be736b52ea3c01b24f47e2102e210fb83021d1c8237d8fc511b9538909e16e2fcdbb5cb6173e0794e28624309a59014e52fcfb7bde908f5284388
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.23.9, @babel/core@npm:^7.24.4, @babel/core@npm:^7.25.0":
- version: 7.25.8
- resolution: "@babel/core@npm:7.25.8"
+"@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.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/core@npm:^7.23.9":
+ version: 7.26.0
+ resolution: "@babel/core@npm:7.26.0"
dependencies:
- "@babel/types": "npm:^7.25.7"
+ "@ampproject/remapping": "npm:^2.2.0"
+ "@babel/code-frame": "npm:^7.26.0"
+ "@babel/generator": "npm:^7.26.0"
+ "@babel/helper-compilation-targets": "npm:^7.25.9"
+ "@babel/helper-module-transforms": "npm:^7.26.0"
+ "@babel/helpers": "npm:^7.26.0"
+ "@babel/parser": "npm:^7.26.0"
+ "@babel/template": "npm:^7.25.9"
+ "@babel/traverse": "npm:^7.25.9"
+ "@babel/types": "npm:^7.26.0"
+ 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/91de73a7ff5c4049fbc747930aa039300e4d2670c2a91f5aa622f1b4868600fc89b01b6278385fbcd46f9574186fa3d9b376a9e7538e50f8d118ec13cfbcb63e
+ languageName: node
+ linkType: hard
+
+"@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.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/generator@npm:^7.26.0":
+ version: 7.26.0
+ resolution: "@babel/generator@npm:7.26.0"
dependencies:
- "@babel/types": "npm:^7.25.7"
- checksum: 10c0/2f020b0fa9d336b5778485cc2de3141561ec436a7591b685457a5bcdae4ce41d9ddee68169c95504e0789e5a4327e73b8b7e72e5b60e82e96d730c4d19255248
+ "@babel/parser": "npm:^7.26.0"
+ "@babel/types": "npm:^7.26.0"
+ "@jridgewell/gen-mapping": "npm:^0.3.5"
+ "@jridgewell/trace-mapping": "npm:^0.3.25"
+ jsesc: "npm:^3.0.2"
+ checksum: 10c0/b6bb9185f19a97eaf58e04a6d39a13237076678e7ed16b6321dea914535d4bf6a8d7727c9dcb65539845aa0096b326eb67be4bab764bd74bcfd848e2eda68609
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-annotate-as-pure@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-annotate-as-pure@npm:7.25.9"
dependencies:
- "@babel/traverse": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10c0/e9dc5a7920a1d74150dec53ccd5e34f2b31ae307df7cdeec6289866f7bda97ecb1328b49a7710ecde5db5b6daad768c904a030f9a0fa3184963b0017622c42aa
+ "@babel/types": "npm:^7.25.9"
+ checksum: 10c0/095b6ba50489d797733abebc4596a81918316a99e3632755c9f02508882912b00c2ae5e468532a25a5c2108d109ddbe9b7da78333ee7cc13817fc50c00cf06fe
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-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/helper-annotate-as-pure": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10c0/f8123a76e8c3fcdbb24cc14bfefc80e4c7bf58112ab26bea3247298748c674cbaee70591c362d0d881e4d88154ea4809b145f3ddcf96221cf55ba27bfde535c6
+ "@babel/traverse": "npm:^7.25.9"
+ "@babel/types": "npm:^7.25.9"
+ checksum: 10c0/a6068bb813e7f72d12b72edeecb99167f60cd7964cacedfb60e01fff5e7bed4a5a7f4f7414de7cf352a1b71487df5f8dab8c2b5230de4ad5aea16adf32e14219
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-builder-react-jsx@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-builder-react-jsx@npm:7.25.9"
dependencies:
- "@babel/compat-data": "npm:^7.25.7"
- "@babel/helper-validator-option": "npm:^7.25.7"
+ "@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.9":
+ version: 7.25.9
+ resolution: "@babel/helper-compilation-targets@npm:7.25.9"
+ dependencies:
+ "@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
@@ -174,223 +221,257 @@ __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.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.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/1e948162ab48d84593a7c6ec9570d14c906146f1697144fc369c59dbeb00e4a062da67dd06cb0d8f98a044cd8389002dcf2ab6f5613d99c35748307846ec63fc
+ "@babel/traverse": "npm:^7.25.9"
+ "@babel/types": "npm:^7.25.9"
+ checksum: 10c0/078d3c2b45d1f97ffe6bb47f61961be4785d2342a4156d8b42c92ee4e1b7b9e365655dd6cb25329e8fe1a675c91eeac7e3d04f0c518b67e417e29d6e27b6aa70
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-transforms@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-module-transforms@npm:7.25.9"
dependencies:
- "@babel/traverse": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10c0/0fd0c3673835e5bf75558e184bcadc47c1f6dd2fe2016d53ebe1e5a6ae931a44e093015c2f9a6651c1a89f25c76d9246710c2b0b460b95ee069c464f2837fa2c
+ "@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/cd005e7585806845d79c5c0ca9e8926f186b430b0a558dad08a3611365eaad3ac587672b0d903530117dec454f48b6bdc3d164b19ea1b71ca1b4eb3be7b452ef
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.26.0":
+ version: 7.26.0
+ resolution: "@babel/helper-module-transforms@npm:7.26.0"
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-validator-identifier": "npm:^7.25.9"
+ "@babel/traverse": "npm:^7.25.9"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/f37fa7d1d4df21690535b278468cbd5faf0133a3080f282000cfa4f3ffc9462a1458f866b04b6a2f2d1eec4691236cba9a867da61270dab3ab19846e62f05090
+ checksum: 10c0/ee111b68a5933481d76633dad9cdab30c41df4479f0e5e1cc4756dc9447c1afd2c9473b5ba006362e35b17f4ebddd5fca090233bef8dfc84dca9d9127e56ec3a
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.24.8, @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.24.8, @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/helpers@npm:^7.26.0":
+ version: 7.26.0
+ resolution: "@babel/helpers@npm:7.26.0"
dependencies:
- "@babel/helper-validator-identifier": "npm:^7.25.7"
+ "@babel/template": "npm:^7.25.9"
+ "@babel/types": "npm:^7.26.0"
+ checksum: 10c0/343333cced6946fe46617690a1d0789346960910225ce359021a88a60a65bc0d791f0c5d240c0ed46cf8cc63b5fd7df52734ff14e43b9c32feae2b61b1647097
+ languageName: node
+ linkType: hard
+
+"@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.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.9":
+ version: 7.25.9
+ resolution: "@babel/parser@npm:7.25.9"
+ dependencies:
+ "@babel/types": "npm:^7.25.9"
+ bin:
+ parser: ./bin/babel-parser.js
+ checksum: 10c0/143faff8a72331be5ed94080e0f4645cbeea814fb488cd9210154083735f67cb66fde32f6a4a80efd6c4cdf12c6f8b50995a465846093c7f65c5da8d7829627c
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.23.9, @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.23.9, @babel/parser@npm:^7.26.0":
+ version: 7.26.1
+ resolution: "@babel/parser@npm:7.26.1"
dependencies:
- "@babel/types": "npm:^7.25.8"
+ "@babel/types": "npm:^7.26.0"
bin:
parser: ./bin/babel-parser.js
- checksum: 10c0/a1a13845b7e8dda4c970791814a4bbf60004969882f18f470e260ad822d2e1f8941948f851e9335895563610f240fa6c98481ce8019865e469502bbf21daafa4
+ checksum: 10c0/dc7d4e6b7eb667fa0784e7e2c3f6f92ca12ad72242f6d4311995310dae55093f02acdb595b69b0dbbf04cb61ad87156ac03186ff32eacfa35149c655bc22c14b
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
@@ -436,25 +517,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
@@ -480,14 +561,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
@@ -568,14 +649,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
@@ -591,454 +672,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
@@ -1053,290 +1134,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"
- 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"
+ version: 7.25.9
+ resolution: "@babel/preset-env@npm:7.25.9"
+ dependencies:
+ "@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"
@@ -1345,7 +1426,7 @@ __metadata:
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/a45cd64ca082262998f6cf508b413ff8a9e967bf33e58337a1fe41c6c939a4c25cc73cd58387792c00d43905cf5fb0ea5ef88dfdc2addf2e8133743088c86c72
+ checksum: 10c0/b8b391e3fe69918a2a4f4366034113bd6f57c9748974dbe1b807a728bc41434f1e003cb4204ca63a2a01cbb7c05ba96036261b64756243374374353931d346e6
languageName: node
linkType: hard
@@ -1363,33 +1444,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
@@ -1403,48 +1484,57 @@ __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
+
+"@babel/types@npm:^7.26.0":
+ version: 7.26.0
+ resolution: "@babel/types@npm:7.26.0"
+ dependencies:
+ "@babel/helper-string-parser": "npm:^7.25.9"
+ "@babel/helper-validator-identifier": "npm:^7.25.9"
+ checksum: 10c0/b694f41ad1597127e16024d766c33a641508aad037abd08d0d1f73af753e1119fa03b4a107d04b5f92cc19c095a594660547ae9bead1db2299212d644b0a5cb8
languageName: node
linkType: hard
@@ -1462,13 +1552,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 +1569,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 +1618,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 +1709,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 +1774,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 +1850,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 +1900,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 +1926,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 +1977,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 +1999,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 +2017,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"
@@ -2277,6 +2376,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"
@@ -2286,6 +2396,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"
@@ -2297,6 +2416,17 @@ __metadata:
languageName: node
linkType: hard
+"@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.2.1"
+ "@formatjs/icu-skeleton-parser": "npm:1.8.5"
+ tslib: "npm:2"
+ checksum: 10c0/53554edc7d41f6bd737dc3bb3e03dcd4b4081b4fc9a70383612b87993c1639747d1d3827d8ebb13f8bf3566c60442549a0a42df4959699eef76633d4c7b49b25
+ languageName: node
+ linkType: hard
+
"@formatjs/icu-skeleton-parser@npm:1.8.4":
version: 1.8.4
resolution: "@formatjs/icu-skeleton-parser@npm:1.8.4"
@@ -2307,25 +2437,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-listformat@npm:7.7.1":
+ version: 7.7.1
+ resolution: "@formatjs/intl-listformat@npm:7.7.1"
+ dependencies:
+ "@formatjs/ecma402-abstract": "npm:2.2.1"
+ "@formatjs/intl-localematcher": "npm:0.5.6"
+ tslib: "npm:2"
+ checksum: 10c0/9ac38d34956ee8018c000bbd594c84f1de283d18441f1376b072658844735a4ebee61ac4711f824dd0a89f4a855acfc7a24159e4cd8a4747609b1d2153316a61
languageName: node
linkType: hard
@@ -2338,34 +2478,43 @@ __metadata:
languageName: node
linkType: hard
+"@formatjs/intl-localematcher@npm:0.5.6":
+ version: 0.5.6
+ resolution: "@formatjs/intl-localematcher@npm:0.5.6"
+ dependencies:
+ tslib: "npm:2"
+ checksum: 10c0/39fc454641b7871f4b37416a01c7851624db6f1bf6cdcd5c854dfe06b95c0ca7540ec7c803a654140fc3f1c758596a684de8054bc95c4d6c7962091c251f5671
+ languageName: node
+ linkType: hard
+
"@formatjs/intl-pluralrules@npm:^5.2.2":
- version: 5.2.16
- resolution: "@formatjs/intl-pluralrules@npm:5.2.16"
+ version: 5.3.1
+ resolution: "@formatjs/intl-pluralrules@npm:5.3.1"
dependencies:
- "@formatjs/ecma402-abstract": "npm:2.2.0"
- "@formatjs/intl-localematcher": "npm:0.5.5"
- tslib: "npm:^2.7.0"
- checksum: 10c0/2250a96a74a153a5f1e771233c366c42005efd71ac5ff665891a308ce78a68f85709f8c892d28a1e334f974252bfb3407f6a64da616c3adbeb158310ef73d71b
+ "@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.8":
- version: 2.10.8
- resolution: "@formatjs/intl@npm:2.10.8"
+"@formatjs/intl@npm:2.10.11":
+ version: 2.10.11
+ resolution: "@formatjs/intl@npm:2.10.11"
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/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
+ checksum: 10c0/83baa76d1194dbaae38c21d28cdc4e1ce024f8c49a37e2c02629a9f6afe18912f640435e346fae11af7d8128dac6355b36b93cff37685542ab3095edf3ec6d19
languageName: node
linkType: hard
@@ -2389,6 +2538,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"
@@ -3630,7 +3799,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:
@@ -3723,10 +3892,10 @@ __metadata:
languageName: node
linkType: hard
-"@types/json-stable-stringify@npm:^1.0.32":
- version: 1.0.36
- resolution: "@types/json-stable-stringify@npm:1.0.36"
- checksum: 10c0/c2f0d0075bd04681d664a7ac4ef5078289b2f790f9737cd3457b5cc199d39df2efe132e04574ad5f89c9ae50096d44c9ca5ec4aebcd6005b969009f725dbcb79
+"@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
@@ -3758,12 +3927,12 @@ __metadata:
languageName: node
linkType: hard
-"@types/node@npm:*":
- version: 22.2.0
- resolution: "@types/node@npm:22.2.0"
+"@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:~6.13.0"
- checksum: 10c0/c17900b34faecfec204f72970bd658d0c217aaf739c1bf7690c969465b6b26b77a8be1cd9ba735aadbd1dd20b5c3e4f406ec33528bf7c6eec90744886c5d5608
+ undici-types: "npm:~6.19.2"
+ checksum: 10c0/7f4fd7176db0802c62e11ebbf7a66d0248e2dc8ec9153d9fc8bcb164d9aed581d91c407046c823c522e60d0babfdc24a1618dba7f2c6920ef1a24e1d416c9550
languageName: node
linkType: hard
@@ -5205,21 +5374,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
@@ -5924,9 +6093,9 @@ __metadata:
linkType: hard
"caniuse-lite@npm:^1.0.30001646":
- version: 1.0.30001667
- resolution: "caniuse-lite@npm:1.0.30001667"
- checksum: 10c0/6bc8555a47603e1e76eaef9b185d6fdeeca7d9c20a283f7c32c971eb1b52ea3a80e6ec086920f088f06abe619240f1023a2d3a08b5b1f2f11df1475695e9f71c
+ version: 1.0.30001672
+ resolution: "caniuse-lite@npm:1.0.30001672"
+ checksum: 10c0/0ba63451bbb972987146ffadba8724fcf67ff89168f330e6bdcb0c3b73ef5e2ddbcd75089b59bd3f87ada61670ec7a1180f239169203132b7d4efd241d6e5d91
languageName: node
linkType: hard
@@ -5937,6 +6106,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"
@@ -5958,16 +6137,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"
@@ -6692,14 +6861,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
@@ -6719,16 +6888,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
@@ -6864,10 +7033,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
@@ -9718,7 +9887,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:
@@ -10177,15 +10346,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
@@ -11642,7 +11811,7 @@ __metadata:
languageName: node
linkType: hard
-"json-stable-stringify@npm:^1.0.1":
+"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:
@@ -13601,8 +13770,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"
@@ -13618,7 +13787,7 @@ __metadata:
peerDependenciesMeta:
pg-native:
optional: true
- checksum: 10c0/1521189063d2293d62f3fac61e797a3096a62a69668c223827d00b83c17a320805f31f0b5316feb80f8d9eed0c6c32f95146d8aca866af05816a66fd2ba8e32a
+ checksum: 10c0/c13bc661cbdb115337bc8519254836faf4bd79106dfd7ed588c8ece8c8b2dd3b7376bfec9a9a2f7646fa095b0b310cec77a83c3ba2ea4872331446eb93fd9055
languageName: node
linkType: hard
@@ -13814,14 +13983,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
@@ -13848,18 +14017,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
@@ -13913,57 +14082,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
@@ -14018,25 +14187,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
@@ -14070,18 +14239,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
@@ -14238,16 +14407,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
@@ -14402,84 +14571,84 @@ __metadata:
linkType: hard
"postcss-preset-env@npm:^10.0.0":
- version: 10.0.7
- resolution: "postcss-preset-env@npm:10.0.7"
- 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"
+ version: 10.0.8
+ resolution: "postcss-preset-env@npm:10.0.8"
+ dependencies:
+ "@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
@@ -14540,18 +14709,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.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.1.0, postcss-selector-parser@npm:^6.1.1, postcss-selector-parser@npm:^6.1.2":
+"postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.1.1, postcss-selector-parser@npm:^6.1.2":
version: 6.1.2
resolution: "postcss-selector-parser@npm:6.1.2"
dependencies:
@@ -14561,6 +14730,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"
@@ -15058,26 +15237,26 @@ __metadata:
linkType: hard
"react-intl@npm:^6.4.2":
- version: 6.8.0
- resolution: "react-intl@npm:6.8.0"
- 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"
+ version: 6.8.4
+ resolution: "react-intl@npm:6.8.4"
+ dependencies:
+ "@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
@@ -17704,13 +17883,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"
@@ -17841,14 +18013,7 @@ __metadata:
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
- languageName: node
- linkType: hard
-
-"tslib@npm:^2.1.0":
+"tslib@npm:2, tslib@npm:^2.0.0, tslib@npm:^2.1.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
@@ -18049,10 +18214,10 @@ __metadata:
languageName: node
linkType: hard
-"undici-types@npm:~6.13.0":
- version: 6.13.0
- resolution: "undici-types@npm:6.13.0"
- checksum: 10c0/2de55181f569c77a4f08063f8bf2722fcbb6ea312a26a9e927bd1f5ea5cf3a281c5ddf23155061db083e0a25838f54813543ff13b0ac34d230d5c1205ead66c1
+"undici-types@npm:~6.19.2":
+ version: 6.19.8
+ resolution: "undici-types@npm:6.19.8"
+ checksum: 10c0/078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344
languageName: node
linkType: hard