Merge commit '2ea9336b6855b44126a55106a81e96ea68eaf8ff' into glitch-soc/merge-upstream

main
Claire 2024-07-10 16:58:06 +02:00
commit 52fb4f16ef
13 changed files with 134 additions and 31 deletions

View File

@ -1 +1 @@
3.3.3 3.3.4

View File

@ -12,7 +12,7 @@ ARG BUILDPLATFORM=${BUILDPLATFORM}
# Ruby image to use for base image, change with [--build-arg RUBY_VERSION="3.3.x"] # Ruby image to use for base image, change with [--build-arg RUBY_VERSION="3.3.x"]
# renovate: datasource=docker depName=docker.io/ruby # renovate: datasource=docker depName=docker.io/ruby
ARG RUBY_VERSION="3.3.3" ARG RUBY_VERSION="3.3.4"
# # Node version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="20"] # # Node version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="20"]
# renovate: datasource=node-version depName=node # renovate: datasource=node-version depName=node
ARG NODE_MAJOR_VERSION="20" ARG NODE_MAJOR_VERSION="20"
@ -67,7 +67,9 @@ ENV \
# Optimize jemalloc 5.x performance # Optimize jemalloc 5.x performance
MALLOC_CONF="narenas:2,background_thread:true,thp:never,dirty_decay_ms:1000,muzzy_decay_ms:0" \ MALLOC_CONF="narenas:2,background_thread:true,thp:never,dirty_decay_ms:1000,muzzy_decay_ms:0" \
# Enable libvips, should not be changed # Enable libvips, should not be changed
MASTODON_USE_LIBVIPS=true MASTODON_USE_LIBVIPS=true \
# Sidekiq will touch tmp/sidekiq_process_has_started_and_will_begin_processing_jobs to indicate it is ready. This can be used for a readiness check in Kubernetes
MASTODON_SIDEKIQ_READY_FILENAME=sidekiq_process_has_started_and_will_begin_processing_jobs
# Set default shell used for running commands # Set default shell used for running commands
SHELL ["/bin/bash", "-o", "pipefail", "-o", "errexit", "-c"] SHELL ["/bin/bash", "-o", "pipefail", "-o", "errexit", "-c"]

View File

@ -197,7 +197,7 @@
"copy_icon_button.copied": "Zkopírováno do schránky", "copy_icon_button.copied": "Zkopírováno do schránky",
"copypaste.copied": "Zkopírováno", "copypaste.copied": "Zkopírováno",
"copypaste.copy_to_clipboard": "Zkopírovat do schránky", "copypaste.copy_to_clipboard": "Zkopírovat do schránky",
"directory.federated": "Ze známého fedivesmíru", "directory.federated": "Ze známého fediversu",
"directory.local": "Pouze z {domain}", "directory.local": "Pouze z {domain}",
"directory.new_arrivals": "Nově příchozí", "directory.new_arrivals": "Nově příchozí",
"directory.recently_active": "Nedávno aktivní", "directory.recently_active": "Nedávno aktivní",
@ -213,7 +213,7 @@
"domain_block_modal.block_account_instead": "Raději blokovat @{name}", "domain_block_modal.block_account_instead": "Raději blokovat @{name}",
"domain_block_modal.they_can_interact_with_old_posts": "Lidé z tohoto serveru mohou interagovat s vašimi starými příspěvky.", "domain_block_modal.they_can_interact_with_old_posts": "Lidé z tohoto serveru mohou interagovat s vašimi starými příspěvky.",
"domain_block_modal.they_cant_follow": "Nikdo z tohoto serveru vás nemůže sledovat.", "domain_block_modal.they_cant_follow": "Nikdo z tohoto serveru vás nemůže sledovat.",
"domain_block_modal.they_wont_know": "Nebude vědět, že je zablokován.", "domain_block_modal.they_wont_know": "Nebude vědět, že je zablokován*a.",
"domain_block_modal.title": "Blokovat doménu?", "domain_block_modal.title": "Blokovat doménu?",
"domain_block_modal.you_will_lose_followers": "Všichni vaši sledující z tohoto serveru budou odstraněni.", "domain_block_modal.you_will_lose_followers": "Všichni vaši sledující z tohoto serveru budou odstraněni.",
"domain_block_modal.you_wont_see_posts": "Neuvidíte příspěvky ani upozornění od uživatelů z tohoto serveru.", "domain_block_modal.you_wont_see_posts": "Neuvidíte příspěvky ani upozornění od uživatelů z tohoto serveru.",
@ -341,7 +341,7 @@
"hashtag.column_settings.tag_mode.any": "Jakýkoliv z těchto", "hashtag.column_settings.tag_mode.any": "Jakýkoliv z těchto",
"hashtag.column_settings.tag_mode.none": "Žádný z těchto", "hashtag.column_settings.tag_mode.none": "Žádný z těchto",
"hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci další štítky", "hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci další štítky",
"hashtag.counter_by_accounts": "{count, plural, one {{counter} účastník} few {{counter} účastníci} other {{counter} účastníků}}", "hashtag.counter_by_accounts": "{count, plural, one {{counter} účastník*ice} few {{counter} účastníci} other {{counter} účastníků}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
"hashtag.counter_by_uses_today": "Dnes {count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}", "hashtag.counter_by_uses_today": "Dnes {count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
"hashtag.follow": "Sledovat hashtag", "hashtag.follow": "Sledovat hashtag",
@ -440,7 +440,7 @@
"mute_modal.show_options": "Zobrazit možnosti", "mute_modal.show_options": "Zobrazit možnosti",
"mute_modal.they_can_mention_and_follow": "Mohou vás zmínit a sledovat, ale neuvidíte je.", "mute_modal.they_can_mention_and_follow": "Mohou vás zmínit a sledovat, ale neuvidíte je.",
"mute_modal.they_wont_know": "Nebudou vědět, že byli skryti.", "mute_modal.they_wont_know": "Nebudou vědět, že byli skryti.",
"mute_modal.title": "Ztlumit uživatele?", "mute_modal.title": "Ztlumit uživatele*ku?",
"mute_modal.you_wont_see_mentions": "Neuvidíte příspěvky, které je zmiňují.", "mute_modal.you_wont_see_mentions": "Neuvidíte příspěvky, které je zmiňují.",
"mute_modal.you_wont_see_posts": "Stále budou moci vidět vaše příspěvky, ale vy jejich neuvidíte.", "mute_modal.you_wont_see_posts": "Stále budou moci vidět vaše příspěvky, ale vy jejich neuvidíte.",
"navigation_bar.about": "O aplikaci", "navigation_bar.about": "O aplikaci",
@ -566,8 +566,8 @@
"onboarding.share.message": "Jsem {username} na #Mastodonu! Pojď mě sledovat na {url}", "onboarding.share.message": "Jsem {username} na #Mastodonu! Pojď mě sledovat na {url}",
"onboarding.share.next_steps": "Možné další kroky:", "onboarding.share.next_steps": "Možné další kroky:",
"onboarding.share.title": "Sdílejte svůj profil", "onboarding.share.title": "Sdílejte svůj profil",
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:", "onboarding.start.lead": "Nyní jste součástí Mastodonu, unikátní sociální sítě, kde vy - ne algoritmus - vytváří vaše vlastní prožitky. Začněte na této nové sociální platformě:",
"onboarding.start.skip": "Want to skip right ahead?", "onboarding.start.skip": "Nepotřebujete pomoci začít?",
"onboarding.start.title": "Dokázali jste to!", "onboarding.start.title": "Dokázali jste to!",
"onboarding.steps.follow_people.body": "Mastodon je o sledování zajimavých lidí.", "onboarding.steps.follow_people.body": "Mastodon je o sledování zajimavých lidí.",
"onboarding.steps.follow_people.title": "Přispůsobit vlastní domovský kanál", "onboarding.steps.follow_people.title": "Přispůsobit vlastní domovský kanál",
@ -581,7 +581,7 @@
"onboarding.tips.accounts_from_other_servers": "<strong>Víte, že?</strong> Protože je Mastodon decentralizovaný, některé profily, na které narazíte, budou hostovány na jiných serverech, než je ten váš. A přesto s nimi můžete bezproblémově komunikovat! Jejich server se nachází v druhé polovině uživatelského jména!", "onboarding.tips.accounts_from_other_servers": "<strong>Víte, že?</strong> Protože je Mastodon decentralizovaný, některé profily, na které narazíte, budou hostovány na jiných serverech, než je ten váš. A přesto s nimi můžete bezproblémově komunikovat! Jejich server se nachází v druhé polovině uživatelského jména!",
"onboarding.tips.migration": "<strong>Víte, že?</strong> Pokud máte pocit, že {domain} pro vás v budoucnu není vhodnou volbou, můžete se přesunout na jiný Mastodon server, aniž byste přišli o své sledující. Můžete dokonce hostovat svůj vlastní server!", "onboarding.tips.migration": "<strong>Víte, že?</strong> Pokud máte pocit, že {domain} pro vás v budoucnu není vhodnou volbou, můžete se přesunout na jiný Mastodon server, aniž byste přišli o své sledující. Můžete dokonce hostovat svůj vlastní server!",
"onboarding.tips.verification": "<strong>Víte, že?</strong> Svůj účet můžete ověřit tak, že na své webové stránky umístíte odkaz na váš Mastodon profil a odkaz na stránku přidáte do svého profilu. Nejsou k tomu potřeba žádné poplatky ani dokumenty!", "onboarding.tips.verification": "<strong>Víte, že?</strong> Svůj účet můžete ověřit tak, že na své webové stránky umístíte odkaz na váš Mastodon profil a odkaz na stránku přidáte do svého profilu. Nejsou k tomu potřeba žádné poplatky ani dokumenty!",
"password_confirmation.exceeds_maxlength": "Potvrzení hesla překračuje maximální délku hesla", "password_confirmation.exceeds_maxlength": "Potvrzení hesla překračuje maximální povolenou délku hesla",
"password_confirmation.mismatching": "Zadaná hesla se neshodují", "password_confirmation.mismatching": "Zadaná hesla se neshodují",
"picture_in_picture.restore": "Vrátit zpět", "picture_in_picture.restore": "Vrátit zpět",
"poll.closed": "Uzavřeno", "poll.closed": "Uzavřeno",
@ -665,7 +665,7 @@
"report.unfollow": "Přestat sledovat @{name}", "report.unfollow": "Přestat sledovat @{name}",
"report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jeho příspěvky ve své domovské časové ose, přestaňte jej sledovat.", "report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jeho příspěvky ve své domovské časové ose, přestaňte jej sledovat.",
"report_notification.attached_statuses": "{count, plural, one {{count} připojený příspěvek} few {{count} připojené příspěvky} many {{count} připojených příspěvků} other {{count} připojených příspěvků}}", "report_notification.attached_statuses": "{count, plural, one {{count} připojený příspěvek} few {{count} připojené příspěvky} many {{count} připojených příspěvků} other {{count} připojených příspěvků}}",
"report_notification.categories.legal": "Zákonné", "report_notification.categories.legal": "Právní ustanovení",
"report_notification.categories.other": "Ostatní", "report_notification.categories.other": "Ostatní",
"report_notification.categories.spam": "Spam", "report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Porušení pravidla", "report_notification.categories.violation": "Porušení pravidla",

View File

@ -82,6 +82,7 @@
"alert.unexpected.title": "Ийой!", "alert.unexpected.title": "Ийой!",
"announcement.announcement": "Голошіня", "announcement.announcement": "Голошіня",
"audio.hide": "Зпрятати звук", "audio.hide": "Зпрятати звук",
"block_modal.remote_users_caveat": "Попросиме ґазду сервера {domain} честовати вашоє рішеня. Айбо не ґарантуєме повный соглас, бо даякі серверы можут брати блокованя по-инчакому. Публичні дописы годно быти видко незалоґованым хосновачам.",
"block_modal.show_less": "Указати менше", "block_modal.show_less": "Указати менше",
"block_modal.show_more": "Указати бульше", "block_modal.show_more": "Указати бульше",
"block_modal.they_cant_mention": "Они не можут вас споминати авадь слідовати.", "block_modal.they_cant_mention": "Они не можут вас споминати авадь слідовати.",
@ -111,5 +112,43 @@
"column.direct": "Шептаня", "column.direct": "Шептаня",
"column.directory": "Никати профілі", "column.directory": "Никати профілі",
"column.domain_blocks": "Заблоковані домены", "column.domain_blocks": "Заблоковані домены",
"column.favourites": "Убраноє" "column.favourites": "Убраноє",
"column.follow_requests": "Запросы на пудписку",
"column.lists": "Исписы",
"column.mutes": "Стишені хосновачі",
"column.notifications": "Убвіщеня",
"column.pins": "Закріплені публикації",
"column_back_button.label": "Назад",
"column_header.hide_settings": "Спрятати штімованя",
"column_header.moveLeft_settings": "Посунути колонку до ліва",
"column_header.moveRight_settings": "Посунути колонку до права",
"column_header.pin": "Закріпити",
"column_header.show_settings": "Указати штімованя",
"column_header.unpin": "Удкріпити",
"column_subheading.settings": "Штімованя",
"compose.language.change": "Поміняти язык",
"compose.language.search": "Глядати языкы...",
"compose.published.body": "Пост опубликованый.",
"compose.saved.body": "Пост усокоченый.",
"compose_form.direct_message_warning_learn_more": "Читайте бульше",
"compose_form.encryption_warning": "Публикації на Mastodon не шіфрувут ся. Не шырьте чутливу інформацію через Mastodon.",
"compose_form.hashtag_warning": "Сись пост не буде ся появляти у исписови по гештеґови, бо вун не є публичный. Лишек публичні посты буде видко за гештеґом.",
"compose_form.lock_disclaimer": "Ваш профіл є {locked}. Хоть-тко може ся на вас пудписати, обы видїти ваші ексклузівні посты.",
"compose_form.lock_disclaimer.lock": "замкнено",
"compose_form.placeholder": "Што нового?",
"compose_form.poll.duration": "Трывалость убзвідованя",
"compose_form.poll.multiple": "Дакулько варіантув",
"compose_form.poll.option_placeholder": "Варіант {number}",
"compose_form.poll.single": "Уберіт єден",
"compose_form.poll.switch_to_multiple": "Змінити убзвідованя обы поволити дакулько варіантув",
"compose_form.poll.switch_to_single": "Змінити убзвідованя обы поволити лишек єден варіант",
"compose_form.poll.type": "Стіл",
"compose_form.publish": "Публикація",
"compose_form.publish_form": "Нова публикація",
"compose_form.reply": "Удповідь",
"copypaste.copy_to_clipboard": "Копіровати у памнять",
"directory.recently_active": "Недавно актівні",
"disabled_account_banner.account_settings": "Штімованя акаунта",
"disabled_account_banner.text": "Ваш акаунт {disabledAccount} раз є неактівный.",
"dismissable_banner.community_timeline": "Туй сут недавні публикації уд профілув на серверови {domain}."
} }

View File

@ -1366,6 +1366,8 @@ body > [data-popper-placement] {
min-height: 54px; min-height: 54px;
border-bottom: 1px solid var(--background-border-color); border-bottom: 1px solid var(--background-border-color);
cursor: auto; cursor: auto;
opacity: 1;
animation: fade 150ms linear;
@keyframes fade { @keyframes fade {
0% { 0% {
@ -1377,9 +1379,6 @@ body > [data-popper-placement] {
} }
} }
opacity: 1;
animation: fade 150ms linear;
.media-gallery, .media-gallery,
.video-player, .video-player,
.audio-player, .audio-player,
@ -4851,8 +4850,10 @@ a.status-card {
&__menu { &__menu {
@include search-popout; @include search-popout;
padding: 0; & {
background: $ui-secondary-color; padding: 0;
background: $ui-secondary-color;
}
} }
&__menu-list { &__menu-list {

View File

@ -274,7 +274,7 @@ class LinkDetailsExtractor
end end
def detect_encoding_and_parse_document def detect_encoding_and_parse_document
[detect_encoding, nil, @html_charset].uniq.each do |encoding| [detect_encoding, nil, header_encoding].uniq.each do |encoding|
document = Nokogiri::HTML(@html, nil, encoding) document = Nokogiri::HTML(@html, nil, encoding)
return document if document.to_s.valid_encoding? return document if document.to_s.valid_encoding?
end end
@ -286,6 +286,13 @@ class LinkDetailsExtractor
guess&.fetch(:confidence, 0).to_i > 60 ? guess&.fetch(:encoding, nil) : nil guess&.fetch(:confidence, 0).to_i > 60 ? guess&.fetch(:encoding, nil) : nil
end end
def header_encoding
Encoding.find(@html_charset).name if @html_charset
rescue ArgumentError
# Encoding from HTTP header is not recognized by ruby
nil
end
def detector def detector
@detector ||= CharlockHolmes::EncodingDetector.new.tap do |detector| @detector ||= CharlockHolmes::EncodingDetector.new.tap do |detector|
detector.strip_tags = true detector.strip_tags = true

View File

@ -2,19 +2,24 @@
require_relative '../../lib/mastodon/sidekiq_middleware' require_relative '../../lib/mastodon/sidekiq_middleware'
SIDEKIQ_WILL_PROCESSES_JOBS_FILE = Rails.root.join('tmp', 'sidekiq_process_has_started_and_will_begin_processing_jobs').freeze
Sidekiq.configure_server do |config| Sidekiq.configure_server do |config|
config.redis = REDIS_SIDEKIQ_PARAMS config.redis = REDIS_SIDEKIQ_PARAMS
# This is used in Kubernetes setups, to signal that the Sidekiq process has started and will begin processing jobs # This is used in Kubernetes setups, to signal that the Sidekiq process has started and will begin processing jobs
# This comes from https://github.com/sidekiq/sidekiq/wiki/Kubernetes#sidekiq # This comes from https://github.com/sidekiq/sidekiq/wiki/Kubernetes#sidekiq
config.on(:startup) do ready_filename = ENV.fetch('MASTODON_SIDEKIQ_READY_FILENAME', nil)
FileUtils.touch(SIDEKIQ_WILL_PROCESSES_JOBS_FILE) if ready_filename
end raise 'MASTODON_SIDEKIQ_READY_FILENAME is not a valid filename' if File.basename(ready_filename) != ready_filename
config.on(:shutdown) do ready_path = Rails.root.join('tmp', ready_filename)
FileUtils.rm_f(SIDEKIQ_WILL_PROCESSES_JOBS_FILE)
config.on(:startup) do
FileUtils.touch(ready_path)
end
config.on(:shutdown) do
FileUtils.rm_f(ready_path)
end
end end
config.server_middleware do |chain| config.server_middleware do |chain|

View File

@ -118,7 +118,7 @@ cs:
promote: Povýšit promote: Povýšit
protocol: Protokol protocol: Protokol
public: Veřejný public: Veřejný
push_subscription_expires: Odebírání PuSH expiruje push_subscription_expires: Odebírání PuSH vyprší
redownload: Obnovit profil redownload: Obnovit profil
redownloaded_msg: Profil účtu %{username} byl úspěšně obnoven ze zdroje redownloaded_msg: Profil účtu %{username} byl úspěšně obnoven ze zdroje
reject: Zamítnout reject: Zamítnout

View File

@ -25,7 +25,7 @@ lv:
edit: Labot edit: Labot
submit: Apstiprināt submit: Apstiprināt
confirmations: confirmations:
destroy: Vai esi pārliecināts? destroy: Vai tiešām?
edit: edit:
title: Labot lietotni title: Labot lietotni
form: form:
@ -69,7 +69,7 @@ lv:
buttons: buttons:
revoke: Atsaukt revoke: Atsaukt
confirmations: confirmations:
revoke: Vai esi pārliecināts? revoke: Vai tiešām?
index: index:
authorized_at: Autorizētas %{date} authorized_at: Autorizētas %{date}
description_html: Šīs ir lietotnes, kas var piekļūt Tavam kontam ar API. Ja šeit ir lietotnes, kuras neatpazīsti, vai lietotne darbojas ne tā, kā paredzēts, vari atsaukt tās piekļuvi. description_html: Šīs ir lietotnes, kas var piekļūt Tavam kontam ar API. Ja šeit ir lietotnes, kuras neatpazīsti, vai lietotne darbojas ne tā, kā paredzēts, vari atsaukt tās piekļuvi.
@ -135,6 +135,7 @@ lv:
media: Multividesu pielikumi media: Multividesu pielikumi
mutes: Apklusinātie mutes: Apklusinātie
notifications: Paziņojumi notifications: Paziņojumi
profile: Tavs Mastodon profils
push: Uznirstošie paziņojumi push: Uznirstošie paziņojumi
reports: Ziņojumi reports: Ziņojumi
search: Meklēt search: Meklēt
@ -165,6 +166,7 @@ lv:
admin:write:reports: veikt moderācijas darbības pārskatos admin:write:reports: veikt moderācijas darbības pārskatos
crypto: lieto pilnīgu šifrēšanu crypto: lieto pilnīgu šifrēšanu
follow: mainīt konta attiecības follow: mainīt konta attiecības
profile: lasīt tikai Tava konta profila informāciju
push: saņemt savus push paziņojumus push: saņemt savus push paziņojumus
read: lasīt visus sava konta datus read: lasīt visus sava konta datus
read:accounts: apskatīt kontu informāciju read:accounts: apskatīt kontu informāciju

View File

@ -1 +1,21 @@
---
ry: ry:
accounts:
follow: Пудписати ся
following: Пудпискы
posts:
few: Публикації
one: Публикація
other: Публикації
posts_tab_heading: Публикації
imports:
titles:
following: Імпортованя пудписок
types:
following: Испис пудписок
notification_mailer:
follow:
body: "%{name} ся пудписує ся на вас!"
subject: "%{name} ся пудписує ся на вас"
relationships:
following: Пудпискы

View File

@ -0,0 +1,18 @@
HTTP/1.1 200 OK
server: nginx
date: Thu, 13 Jun 2024 14:33:13 GMT
content-type: text/html; charset=utf8
content-length: 192
accept-ranges: bytes
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Webserver Configs R Us</title>
</head>
<body>
<h2>Welcome</h2>
<p>Sneaky non-UTF character: á</p>
</body>
</html>

View File

@ -32,6 +32,7 @@ RSpec.describe FetchLinkCardService do
stub_request(:get, 'http://example.com/aergerliche-umlaute').to_return(request_fixture('redirect_with_utf8_url.txt')) stub_request(:get, 'http://example.com/aergerliche-umlaute').to_return(request_fixture('redirect_with_utf8_url.txt'))
stub_request(:get, 'http://example.com/page_without_title').to_return(request_fixture('page_without_title.txt')) stub_request(:get, 'http://example.com/page_without_title').to_return(request_fixture('page_without_title.txt'))
stub_request(:get, 'http://example.com/long_canonical_url').to_return(request_fixture('long_canonical_url.txt')) stub_request(:get, 'http://example.com/long_canonical_url').to_return(request_fixture('long_canonical_url.txt'))
stub_request(:get, 'http://example.com/alternative_utf8_spelling_in_header').to_return(request_fixture('alternative_utf8_spelling_in_header.txt'))
Rails.cache.write('oembed_endpoint:example.com', oembed_cache) if oembed_cache Rails.cache.write('oembed_endpoint:example.com', oembed_cache) if oembed_cache
@ -292,6 +293,14 @@ RSpec.describe FetchLinkCardService do
expect(status.preview_card).to be_nil expect(status.preview_card).to be_nil
end end
end end
context 'with a URL where the `Content-Type` header uses `utf8` instead of `utf-8`' do
let(:status) { Fabricate(:status, text: 'test http://example.com/alternative_utf8_spelling_in_header') }
it 'does not create a preview card' do
expect(status.preview_card.title).to eq 'Webserver Configs R Us'
end
end
end end
context 'with a remote status' do context 'with a remote status' do

View File

@ -15486,15 +15486,15 @@ __metadata:
linkType: hard linkType: hard
"sass@npm:^1.62.1": "sass@npm:^1.62.1":
version: 1.77.6 version: 1.77.7
resolution: "sass@npm:1.77.6" resolution: "sass@npm:1.77.7"
dependencies: dependencies:
chokidar: "npm:>=3.0.0 <4.0.0" chokidar: "npm:>=3.0.0 <4.0.0"
immutable: "npm:^4.0.0" immutable: "npm:^4.0.0"
source-map-js: "npm:>=0.6.2 <2.0.0" source-map-js: "npm:>=0.6.2 <2.0.0"
bin: bin:
sass: sass.js sass: sass.js
checksum: 10c0/fe5a393c0aa29eda9f83c06be9b94788b61fe8bad0616ee6e3a25d21ab504f430d40c0064fdca89b02b8e426411ae6dcd906c91f2e48c263575c3d392b6daeb1 checksum: 10c0/6cacbf4b5165d30a9be0f09438aed85ff0617e5087442e65c23c8464750ff1b9988855a58f36b420b62f992d1e82403f99810aba7731519d3d026847e21a5635
languageName: node languageName: node
linkType: hard linkType: hard