diff --git a/.github/workflows/build-container-image.yml b/.github/workflows/build-container-image.yml
index 595011a0c6..ae85d9d5e6 100644
--- a/.github/workflows/build-container-image.yml
+++ b/.github/workflows/build-container-image.yml
@@ -76,7 +76,7 @@ jobs:
- name: Build and push by digest
id: build
- uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
+ uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6
with:
context: .
file: ${{ inputs.file_to_build }}
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 4e55219f55..fb59d33810 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -35,7 +35,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4
+ uses: github/codeql-action/init@e46ed2cbd01164d986452f91f178727624ae40d7 # v4
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -48,7 +48,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
- uses: github/codeql-action/autobuild@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4
+ uses: github/codeql-action/autobuild@e46ed2cbd01164d986452f91f178727624ae40d7 # v4
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@@ -61,6 +61,6 @@ jobs:
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4
+ uses: github/codeql-action/analyze@e46ed2cbd01164d986452f91f178727624ae40d7 # v4
with:
category: '/language:${{matrix.language}}'
diff --git a/Gemfile.lock b/Gemfile.lock
index 94bbf5d18c..3aa782cbe6 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -801,7 +801,7 @@ GEM
ruby-vips (2.3.0)
ffi (~> 1.12)
logger
- rubyzip (3.2.2)
+ rubyzip (3.3.0)
rufus-scheduler (3.9.2)
fugit (~> 1.1, >= 1.11.1)
safety_net_attestation (0.5.0)
diff --git a/app/controllers/admin/email_domain_blocks_controller.rb b/app/controllers/admin/email_domain_blocks_controller.rb
index 12f221164f..d248a04d61 100644
--- a/app/controllers/admin/email_domain_blocks_controller.rb
+++ b/app/controllers/admin/email_domain_blocks_controller.rb
@@ -5,7 +5,7 @@ module Admin
def index
authorize :email_domain_block, :index?
- @email_domain_blocks = EmailDomainBlock.parents.includes(:children).order(id: :desc).page(params[:page])
+ @email_domain_blocks = filter_by_domain.page(params[:page])
@form = Form::EmailDomainBlockBatch.new
end
@@ -57,6 +57,12 @@ module Admin
private
+ def filter_by_domain
+ scope = EmailDomainBlock.parents.includes(:children).order(id: :desc)
+ scope.merge!(EmailDomainBlock.matches_domain(params[:domain])) if params[:domain].present?
+ scope
+ end
+
def set_resolved_records
@resolved_records = DomainResource.new(@email_domain_block.domain).mx
end
diff --git a/app/controllers/admin/email_subscriptions_controller.rb b/app/controllers/admin/email_subscriptions_controller.rb
index 39a32909df..af71eb7012 100644
--- a/app/controllers/admin/email_subscriptions_controller.rb
+++ b/app/controllers/admin/email_subscriptions_controller.rb
@@ -6,7 +6,7 @@ class Admin::EmailSubscriptionsController < Admin::BaseController
@enabled = Setting.email_subscriptions
@roles = UserRole.where('permissions & ? != 0', UserRole::FLAGS[:manage_email_subscriptions] | UserRole::FLAGS[:administrator])
- @accounts = Account.local.joins(:email_subscriptions).where.associated(:email_subscriptions).includes(:user)
+ @accounts = Account.local.where.associated(:email_subscriptions).includes(:user)
end
def disable
diff --git a/app/controllers/api/v1_alpha/collections_controller.rb b/app/controllers/api/v1_alpha/collections_controller.rb
index 1ca1cd6923..4e15b65ff5 100644
--- a/app/controllers/api/v1_alpha/collections_controller.rb
+++ b/app/controllers/api/v1_alpha/collections_controller.rb
@@ -28,9 +28,10 @@ class Api::V1Alpha::CollectionsController < Api::BaseController
cache_if_unauthenticated!
authorize @account, :index_collections?
- render json: @collections, each_serializer: REST::CollectionSerializer, adapter: :json
+ presenter = CollectionsPresenter.new(collections: @collections)
+ render json: presenter, serializer: REST::CollectionsWithAccountPreviewsSerializer
rescue Mastodon::NotPermittedError
- render json: { collections: [] }
+ render json: { collections: [], partial_accounts: [] }
end
def show
@@ -73,6 +74,7 @@ class Api::V1Alpha::CollectionsController < Api::BaseController
def set_collections
@collections = @account.collections
.with_tag
+ .preload(top_items: :account)
.order(created_at: :desc)
.offset(offset_param)
.limit(limit_param(DEFAULT_COLLECTIONS_LIMIT))
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index d07108df73..ff8e5dc386 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -328,11 +328,15 @@
"annual_report.summary.share_on_mastodon": "Auf Mastodon teilen",
"attachments_list.unprocessed": "(ausstehend)",
"audio.hide": "Audio ausblenden",
+ "block_modal.no_collections": "Ihr werdet euch gegenseitig nicht zu Sammlungen hinzufügen können. Du wirst, falls zutreffend, aus deren Sammlungen entfernt werden.",
"block_modal.remote_users_caveat": "Wir werden den Server {domain} bitten, deine Entscheidung zu respektieren. Allerdings kann nicht garantiert werden, dass sie eingehalten wird, weil einige Server Blockierungen unterschiedlich handhaben können. Öffentliche Beiträge können für nicht angemeldete Nutzer*innen weiterhin sichtbar sein.",
"block_modal.show_less": "Weniger anzeigen",
"block_modal.show_more": "Mehr anzeigen",
+ "block_modal.they_cant_mention": "Ihr werdet euch gegenseitig nicht erwähnen, folgen oder zitieren können.",
+ "block_modal.they_cant_see_posts": "Deine Beiträge können nicht mehr angesehen werden und du wirst deren Beiträge nicht mehr sehen.",
"block_modal.they_will_know": "Das Profil wird erkennen können, dass du es blockiert hast.",
"block_modal.title": "Profil blockieren?",
+ "block_modal.you_wont_see_mentions": "Du wirst keine Beiträge sehen, die dieses Profil erwähnen.",
"boost_modal.combo": "Mit {combo} erscheint dieses Fenster nicht mehr",
"boost_modal.reblog": "Beitrag teilen?",
"boost_modal.undo_reblog": "Beitrag nicht mehr teilen?",
diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json
index a6ba4c814f..d99a25c6be 100644
--- a/app/javascript/mastodon/locales/fr-CA.json
+++ b/app/javascript/mastodon/locales/fr-CA.json
@@ -328,11 +328,15 @@
"annual_report.summary.share_on_mastodon": "Partager sur Mastodon",
"attachments_list.unprocessed": "(non traité)",
"audio.hide": "Masquer l'audio",
+ "block_modal.no_collections": "Aucun de vous ne peut ajouter l'autre à une collection. Le cas échéant chacun sera automatiquement supprimé·e des collections existantes de l'autre.",
"block_modal.remote_users_caveat": "Nous allons demander au serveur {domain} de respecter votre décision. Cependant, ce respect n'est pas garanti, car certains serveurs peuvent gérer différemment les blocages. Les messages publics peuvent rester visibles par les utilisateur·rice·s non connecté·e·s.",
"block_modal.show_less": "Afficher moins",
"block_modal.show_more": "Afficher plus",
+ "block_modal.they_cant_mention": "Vous ne pouvez pas vous mentionner, suivre ou citer l'un l'autre.",
+ "block_modal.they_cant_see_posts": "Aucun de vous ne pourra voir le contenu de l'autre.",
"block_modal.they_will_know": "Iel pourra voir qu'iel est bloqué·e.",
- "block_modal.title": "Bloquer l'utilisateur·ice ?",
+ "block_modal.title": "Bloquer l'utilisateur·rice ?",
+ "block_modal.you_wont_see_mentions": "Vous ne verrez plus les messages qui le ou la mentionnent.",
"boost_modal.combo": "Vous pouvez appuyer sur {combo} pour sauter ceci la prochaine fois",
"boost_modal.reblog": "Partager le message ?",
"boost_modal.undo_reblog": "Annuler le partage du message ?",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index d12b189f12..c76754c1e5 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -328,11 +328,15 @@
"annual_report.summary.share_on_mastodon": "Partager sur Mastodon",
"attachments_list.unprocessed": "(non traité)",
"audio.hide": "Masquer l'audio",
+ "block_modal.no_collections": "Aucun de vous ne peut ajouter l'autre à une collection. Le cas échéant chacun sera automatiquement supprimé·e des collections existantes de l'autre.",
"block_modal.remote_users_caveat": "Nous allons demander au serveur {domain} de respecter votre décision. Cependant, ce respect n'est pas garanti, car certains serveurs peuvent gérer différemment les blocages. Les messages publics peuvent rester visibles par les utilisateur·rice·s non connecté·e·s.",
"block_modal.show_less": "Afficher moins",
"block_modal.show_more": "Afficher plus",
+ "block_modal.they_cant_mention": "Vous ne pouvez pas vous mentionner, suivre ou citer l'un l'autre.",
+ "block_modal.they_cant_see_posts": "Aucun de vous ne pourra voir le contenu de l'autre.",
"block_modal.they_will_know": "Iel pourra voir qu'iel est bloqué·e.",
- "block_modal.title": "Bloquer l'utilisateur·ice ?",
+ "block_modal.title": "Bloquer l'utilisateur·rice ?",
+ "block_modal.you_wont_see_mentions": "Vous ne verrez plus les messages qui le ou la mentionnent.",
"boost_modal.combo": "Vous pouvez appuyer sur {combo} pour passer ceci la prochaine fois",
"boost_modal.reblog": "Partager le message ?",
"boost_modal.undo_reblog": "Annuler le partage du message ?",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index 1e9f5305b8..16d6e58ce3 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -328,11 +328,15 @@
"annual_report.summary.share_on_mastodon": "Compartir en Mastodon",
"attachments_list.unprocessed": "(sen procesar)",
"audio.hide": "Agochar audio",
+ "block_modal.no_collections": "Ninguén de vós poderá engadir á outra a coleccións. Ides ser retiradas automaticamente das coleccións relativas existentes, se fose o caso.",
"block_modal.remote_users_caveat": "Ímoslle pedir ao servidor {domain} que respecte a túa decisión. Emporiso, non hai garantía de que atenda a petición xa que os servidores xestionan os bloqueos de formas diferentes. As publicacións públicas poderían aínda ser visibles para usuarias que non iniciaron sesión.",
"block_modal.show_less": "Mostrar menos",
"block_modal.show_more": "Mostrar máis",
+ "block_modal.they_cant_mention": "Non podedes mencionarvos, seguirvos ou citarvos unha á outra.",
+ "block_modal.they_cant_see_posts": "Non pode ver os teus contidos nin ti ver os da outra persoa.",
"block_modal.they_will_know": "Pode ver que a bloqueaches.",
"block_modal.title": "Bloquear usuaria?",
+ "block_modal.you_wont_see_mentions": "Non vas ver as publicacións doutras persoas que a mencionen.",
"boost_modal.combo": "Preme {combo} para ignorar isto na seguinte vez",
"boost_modal.reblog": "Promover publicación?",
"boost_modal.undo_reblog": "Retirar promoción?",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index 9990ad5904..291829bfa9 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -330,8 +330,11 @@
"block_modal.remote_users_caveat": "Arra kérjük a {domain} kiszolgálót, hogy tartsa tiszteletben a döntésedet. Ugyanakkor az együttműködés nem garantált, mivel néhány kiszolgáló másképp kezelheti a letiltásokat. A nyilvános bejegyzések a be nem jelentkezett felhasználók számára továbbra is látszódhatnak.",
"block_modal.show_less": "Kevesebb mutatása",
"block_modal.show_more": "Több mutatása",
+ "block_modal.they_cant_mention": "Nem említhetik meg, követhetik vagy idézhetik egymást.",
+ "block_modal.they_cant_see_posts": "Nem láthatja a tartalmadat, és te sem fogod látni az övéit.",
"block_modal.they_will_know": "Láthatja, hogy le van tiltva.",
"block_modal.title": "Letiltsuk a felhasználót?",
+ "block_modal.you_wont_see_mentions": "Nem fogod látni az őt említő bejegyzéseket.",
"boost_modal.combo": "Hogy átugord ezt következő alkalommal, használd {combo}",
"boost_modal.reblog": "Bejegyzés megtolása?",
"boost_modal.undo_reblog": "Megtolás visszavonása?",
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index f9d840020c..31bb045ff8 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -121,7 +121,7 @@
"column.directory": "Jelajahi profil",
"column.domain_blocks": "Domain tersembunyi",
"column.favourites": "Favorit",
- "column.firehose": "Feed yang sedang berlangsung",
+ "column.firehose": "Umpan terkini",
"column.follow_requests": "Permintaan mengikuti",
"column.home": "Beranda",
"column.lists": "List",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index 8df530d248..17426d2a1c 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -328,11 +328,15 @@
"annual_report.summary.share_on_mastodon": "Deila á Mastodon",
"attachments_list.unprocessed": "(óunnið)",
"audio.hide": "Fela hljóð",
+ "block_modal.no_collections": "Hvorugur ykkar getur bætt hinum í söfn. Þú verður sjálfkrafa fjarlægð/ur úr fyrirliggjandi söfnum hins, ef við á.",
"block_modal.remote_users_caveat": "Við munum biðja {domain} netþjóninn um að virða ákvörðun þína. Hitt er svo annað mál hvort hann fari eftir þessu, ekki er hægt að tryggja eftirfylgni því sumir netþjónar meðhöndla útilokanir á sinn hátt. Opinberar færslur gætu verið sýnilegar notendum sem ekki eru skráðir inn.",
"block_modal.show_less": "Sýna minna",
"block_modal.show_more": "Sýna meira",
+ "block_modal.they_cant_mention": "Þið getið ekki minnst á, fylgst með eða vitnað í hvorn annan.",
+ "block_modal.they_cant_see_posts": "Viðkomandi geta ekki séð efnið þitt og þú ekki þeirra.",
"block_modal.they_will_know": "Viðkomandi geta séð að þeir eru útilokaðir.",
"block_modal.title": "Útiloka notanda?",
+ "block_modal.you_wont_see_mentions": "Þú munt ekki sjá færslur frá öðrum sem minnast á viðkomandi aðila.",
"boost_modal.combo": "Þú getur ýtt á {combo} til að sleppa þessu næst",
"boost_modal.reblog": "Endurbirta færslu?",
"boost_modal.undo_reblog": "Taka færslu úr endurbirtingu?",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index f933efc269..ee04a53f8b 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -328,13 +328,15 @@
"annual_report.summary.share_on_mastodon": "Condividi su Mastodon",
"attachments_list.unprocessed": "(non elaborato)",
"audio.hide": "Nascondi audio",
+ "block_modal.no_collections": "Nessuno dei due può aggiungere l'altro alle rispettive raccolte. Verrete automaticamente rimossi dalle collezioni esistenti dell'altro, se presenti.",
"block_modal.remote_users_caveat": "Chiederemo al server {domain} di rispettare la tua decisione. Tuttavia, la conformità non è garantita poiché alcuni server potrebbero gestire i blocchi in modo diverso. I post pubblici potrebbero essere ancora visibili agli utenti che non hanno effettuato l'accesso.",
"block_modal.show_less": "Mostra meno",
"block_modal.show_more": "Mostra di più",
- "block_modal.they_cant_mention": "Non potete menzionarvi, seguirvi o citarvi a vicenda.",
- "block_modal.they_cant_see_posts": "Non possono vedere i tuoi contenuti e tu non vedrai i loro.",
- "block_modal.they_will_know": "Possono vedere che sono bloccati.",
+ "block_modal.they_cant_mention": "Non potrete menzionarvi, seguirvi o citarvi a vicenda.",
+ "block_modal.they_cant_see_posts": "Non potrà vedere i tuoi contenuti e tu non potrai vedere i suoi.",
+ "block_modal.they_will_know": "Può vedere che è stato/a bloccato/a.",
"block_modal.title": "Bloccare l'utente?",
+ "block_modal.you_wont_see_mentions": "Non vedrai messaggi di altri che menzionano l'utente.",
"boost_modal.combo": "Puoi premere {combo} per saltare questo passaggio, la prossima volta",
"boost_modal.reblog": "Condividere il post?",
"boost_modal.undo_reblog": "Annullare la condivisione del post?",
@@ -887,11 +889,11 @@
"mute_modal.hide_options": "Nascondi le opzioni",
"mute_modal.indefinite": "Finché io non le riattivo",
"mute_modal.show_options": "Mostre le opzioni",
- "mute_modal.they_can_mention_and_follow": "Possono menzionarti e seguirti, ma non li vedrai.",
+ "mute_modal.they_can_mention_and_follow": "Può menzionarti e seguirti, ma tu non lo/a vedrai.",
"mute_modal.they_wont_know": "Non sapranno di essere stati silenziati.",
"mute_modal.title": "Silenziare l'utente?",
"mute_modal.you_wont_see_mentions": "Non vedrai i post che li menzionano.",
- "mute_modal.you_wont_see_posts": "Possono ancora vedere i tuoi post, ma tu non vedrai i loro.",
+ "mute_modal.you_wont_see_posts": "Potrà ancora vedere i tuoi post, ma tu non vedrai i suoi.",
"navigation_bar.about": "Info",
"navigation_bar.account_settings": "Password e sicurezza",
"navigation_bar.administration": "Amministrazione",
@@ -1133,7 +1135,7 @@
"report.forward": "Inoltra a {target}",
"report.forward_hint": "Il profilo proviene da un altro server. Inviare anche lì una copia anonima del rapporto?",
"report.mute": "Silenzia",
- "report.mute_explanation": "Non visualizzerai i suoi post. Potrà comunque seguirti e visualizzare i tuoi post e non saprà di esser stato silenziato.",
+ "report.mute_explanation": "Non visualizzerai i suoi post. Potrà comunque seguirti e visualizzare i tuoi post e non saprà di esser stato/a silenziato/a.",
"report.next": "Successivo",
"report.placeholder": "Commenti aggiuntivi",
"report.reasons.dislike": "Non mi piace",
diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json
index 56ca50eea6..080e2d1813 100644
--- a/app/javascript/mastodon/locales/kab.json
+++ b/app/javascript/mastodon/locales/kab.json
@@ -39,6 +39,7 @@
"account.featured.accounts": "Imeɣna",
"account.featured.collections": "Tilkensa",
"account.featured.new_collection": "Talkensit tamaynut",
+ "account.field_overflow": "Wali akk agbur",
"account.filters.all": "Akk irmad",
"account.filters.boosts_toggle": "Sken-d izuzar",
"account.filters.posts_boosts": "Tisuffaɣ akked tizuzar",
@@ -62,6 +63,11 @@
"account.follows_you": "Yeṭṭafaṛ-ik·em-id",
"account.go_to_profile": "Ddu ɣer umaɣnu",
"account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}",
+ "account.join_modal.day": "Ass",
+ "account.join_modal.me": "Terniḍ-d ɣer {server} ass n",
+ "account.join_modal.me_today": "Ass-a, d ass-ik⋅im amezwaru deg {server}!",
+ "account.join_modal.other": "{name} yerna-d ɣer {server} ass n",
+ "account.join_modal.other_today": "D ass amezwaru n {name} ɣef {server}!",
"account.joined_short": "Izeddi da seg ass n",
"account.languages": "Beddel tutlayin yettwajerden",
"account.last_active": "Armud aneggaru",
@@ -259,12 +265,16 @@
"collections.edit_details": "Ẓreg talqayt",
"collections.hidden_accounts_link": "{count, plural, one {# n umiḍan uffir} other {# n imiḍanen yettwaffaren}}",
"collections.hints.accounts_counter": "{count}/{max} n imiḍanen",
+ "collections.last_updated_at": "Taẓrigt taneggarut: {date}",
+ "collections.list.created_by_author": "D-yesnulfa {name}",
+ "collections.list.created_by_you": "D-tesnulfaḍ",
"collections.manage_accounts": "Sefrek imiḍanen",
"collections.name_length_hint": "talast n 40 n yisekkilen",
"collections.new_collection": "Talkensit tamaynut",
"collections.remove_account": "Kkes",
"collections.report_collection": "Cetki ɣef telkensit-a",
"collections.revoke_collection_inclusion": "Kkes-iyi seg telkensit-a",
+ "collections.search_accounts_label": "Nadi ɣef umiḍan ara ternuḍ",
"collections.share_short": "Bḍu",
"collections.view_collection": "Wali talkensit",
"collections.visibility_public": "Azayaz",
@@ -387,6 +397,7 @@
"disabled_account_banner.account_settings": "Iɣewwaṛen n umiḍan",
"dismissable_banner.dismiss": "Agi",
"domain_block_modal.block": "Sewḥel aqeddac",
+ "domain_block_modal.block_account_instead": "Sewḥel @{name} deg nnuba-s",
"domain_block_modal.they_cant_follow": "Yiwen ur yezmir ad k·m-id-yeḍfer seg uqeddac-a.",
"domain_block_modal.they_wont_know": "Ur-d yettawi ara s lexbaṛ belli yettuseḥbes.",
"domain_block_modal.title": "Sewḥel taɣult?",
@@ -478,6 +489,7 @@
"follow_suggestions.who_to_follow": "Ad tḍefreḍ?",
"followed_tags": "Ihacṭagen yettwaḍfaren",
"followers.title": "Yeṭṭafaṛ {name}",
+ "following.title": "Yeṭṭafar-it {name}",
"footer.about": "Ɣef",
"footer.about_mastodon": "Ɣef Mastodon",
"footer.about_server": "Ɣef {domain}",
@@ -826,10 +838,13 @@
"server_banner.active_users": "iseqdacen urmiden",
"server_banner.administered_by": "Yettwadbel sɣur :",
"server_banner.is_one_of_many": "{domain} d yiwen seg seg waṭṭas n iqeddacen imzurag n Mastodon i tzemreḍ ad tsqesdceḍ i wakken ad tettekkiḍ deg fediverse.",
+ "server_banner.more_about_this_server": "Issin ugar ɣef uqeddac-a",
"server_banner.server_stats": "Tidaddanin n uqeddac:",
"sign_in_banner.create_account": "Snulfu-d amiḍan",
"sign_in_banner.sign_in": "Qqen",
"sign_in_banner.sso_redirect": "Qqen neɣ jerred",
+ "skip_links.skip_to_content": "Kcem ɣer ugbur agejdan",
+ "skip_links.skip_to_navigation": "Kcem ɣer tunigin tagejdant",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Seḥbes @{name}",
"status.bookmark": "Creḍ",
@@ -837,6 +852,7 @@
"status.cannot_reblog": "Tasuffeɣt-a ur tezmir ara ad tettwabḍu tikelt-nniḍen",
"status.contains_quote": "Yegber tanebdurt",
"status.context.loading": "Aɛebbi n tririyin nniḍen",
+ "status.context.loading_success": "Ttuɛebbant-d tririyin timaynutin",
"status.context.more_replies_found": "Ugar n tririyin ttwafent",
"status.context.retry": "Ɛreḍ tikkelt nniḍen",
"status.context.show": "Sken-d",
@@ -872,11 +888,13 @@
"status.quote_noun": "Tanebdurt",
"status.quote_policy_change": "Snifel anwa i izemren ad d-yebder",
"status.quote_post_author": "Yebder-d tasuffeɣt sɣur @{name}",
+ "status.quotes_count": "{count, plural, one {{counter} n tnebdurt} other {{counter} n tnebdurin}}",
"status.read_more": "Issin ugar",
"status.reblog": "Bḍu",
"status.reblog_or_quote": "Zuzer neɣ ader-d",
"status.reblogged_by": "Yebḍa-tt {name}",
"status.reblogs.empty": "Ula yiwen ur yebḍi tajewwiqt-agi ar tura. Ticki yebḍa-tt yiwen, ad d-iban da.",
+ "status.reblogs_count": "{count, plural, one {{counter} n uzuzer} other {{counter} n yizuzar}}",
"status.redraft": "Kkes tɛiwdeḍ tira",
"status.remove_bookmark": "Kkes tacreḍt",
"status.remove_quote": "Kkes",
diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json
index 9a81ab554a..5067e505a4 100644
--- a/app/javascript/mastodon/locales/nn.json
+++ b/app/javascript/mastodon/locales/nn.json
@@ -53,7 +53,7 @@
"account.follow": "Fylg",
"account.follow_back": "Fylg tilbake",
"account.follow_back_short": "Fylg tilbake",
- "account.follow_request": "Folk du vil fylgja",
+ "account.follow_request": "Be om å fylgja",
"account.follow_request_cancel": "Avbryt førespurnaden",
"account.follow_request_cancel_short": "Avbryt",
"account.follow_request_short": "Førespurnad",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index e3445e75bb..ff3f829aa8 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -224,6 +224,10 @@
"account_edit.profile_tab.show_media.title": "\"Medya\" sekmesini göster",
"account_edit.profile_tab.show_media_replies.description": "Etkinleştirildiğinde Medya sekmesi hem kendi gönderilerinizi hem de diğer kişilerin gönderilerine verdiğiniz yanıtları gösterir.",
"account_edit.profile_tab.show_media_replies.title": "\"Medya\" sekmesinde yanıtları göster",
+ "account_edit.profile_tab.show_relations.description": "Profilinizde takip ettiğiniz hesapları ve sizi takip eden kullanıcıları gösterir. Diğer kullanıcılar, sizin onları takip edip etmediğinizi yine de görebileceklerdir.",
+ "account_edit.profile_tab.show_relations.title": "'Takipçilerimi' ve 'Takip Ettiklerimi' Göster",
+ "account_edit.profile_tab.subtitle": "Profilinizin görüntülenme şeklini özelleştirin.",
+ "account_edit.profile_tab.title": "Profil görüntüleme ayarları",
"account_edit.save": "Kaydet",
"account_edit.upload_modal.back": "Geri",
"account_edit.upload_modal.done": "Tamamlandı",
@@ -251,6 +255,7 @@
"account_edit_tags.search_placeholder": "Bir etiket girin…",
"account_edit_tags.suggestions": "Öneriler:",
"account_edit_tags.tag_status_count": "{count, plural, one {# gönderi} other {# gönderi}}",
+ "account_list.hidden_notice": "Bu liste yalnızca sizin tarafınızdan görülebilir. Bu listeyi başkalarına göstermek için {page} > {modal} > {field} adresine gidin.",
"account_list.total": "{total, plural, one {# hesap} other {# hesap}}",
"account_note.placeholder": "Not eklemek için tıklayın",
"admin.dashboard.daily_retention": "Kayıttan sonra günlük kullanıcı saklama oranı",
@@ -323,11 +328,15 @@
"annual_report.summary.share_on_mastodon": "Mastodon'da Paylaş",
"attachments_list.unprocessed": "(işlenmemiş)",
"audio.hide": "Sesi gizle",
+ "block_modal.no_collections": "İkiniz de birbirinizi koleksiyonlarınıza ekleyemezsiniz. Varsa, birbirinizin mevcut koleksiyonlarından otomatik olarak kaldırılacaksınız.",
"block_modal.remote_users_caveat": "{domain} sunucusundan kararınıza saygı duymasını isteyeceğiz. Ancak, Uymaları garanti değildir çünkü bazı sunucular engellemeyi farklı şekilde yapıyorlar. Herkese açık gönderiler giriş yapmamış kullanıcılara görüntülenmeye devam edebilir.",
"block_modal.show_less": "Daha az göster",
"block_modal.show_more": "Daha fazla göster",
+ "block_modal.they_cant_mention": "Birbirinizden bahsedemez, birbirinizi takip edemez veya birbirinizin sözlerini alıntılayamazsınız.",
+ "block_modal.they_cant_see_posts": "Onlar sizin içeriğinizi göremezler, siz de onlarınkini göremezsiniz.",
"block_modal.they_will_know": "Engellendiklerini görebiliyorlar.",
"block_modal.title": "Kullanıcıyı engelle?",
+ "block_modal.you_wont_see_mentions": "Onlardan bahseden diğer kullanıcıların gönderilerini göremeyeceksiniz.",
"boost_modal.combo": "Bir daha ki sefere {combo} tuşuna basabilirsin",
"boost_modal.reblog": "Gönderiyi yeniden paylaş?",
"boost_modal.undo_reblog": "Gönderinin yeniden paylaşımını geri al?",
@@ -390,6 +399,7 @@
"collections.detail.share": "Bu koleksiyonu paylaş",
"collections.detail.you_are_in_this_collection": "Bu koleksiyonda öne çıkanlardasınız",
"collections.edit_details": "Ayrıntıları düzenle",
+ "collections.error_loading_collections": "Bu koleksiyonları yüklemeye çalışırken bir hata oluştu.",
"collections.hidden_accounts_description": "Bu {count, plural, one {kullanıcıyı} other {kullanıcıları}} engellediniz veya sessize aldınız",
"collections.hidden_accounts_link": "{count, plural, one {# gizli hesap} other {# gizli hesap}}",
"collections.hints.accounts_counter": "{count}/{max} hesap",
@@ -639,6 +649,7 @@
"empty_column.account_unavailable": "Profil kullanılamıyor",
"empty_column.blocks": "Henüz herhangi bir kullanıcıyı engellemedin.",
"empty_column.bookmarked_statuses": "Henüz yer imine eklediğin toot yok. Bir tanesi yer imine eklendiğinde burada görünür.",
+ "empty_column.collections.featured_in": "Henüz herhangi bir koleksiyona atanmadınız.",
"empty_column.community": "Yerel zaman çizelgesi boş. Daha fazla eğlence için herkese açık bir gönderi paylaşın!",
"empty_column.direct": "Henüz doğrudan değinmeniz yok. Bir tane gönderdiğinizde veya aldığınızda burada listelenecek.",
"empty_column.disabled_feed": "Bu akış sunucu yöneticileri tarafından devre dışı bırakılmıştır.",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index c72ad4ccf4..de45c3dffe 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -328,11 +328,15 @@
"annual_report.summary.share_on_mastodon": "Chia sẻ lên Mastodon",
"attachments_list.unprocessed": "(chưa xử lí)",
"audio.hide": "Ẩn âm thanh",
+ "block_modal.no_collections": "Cả hai bạn đều không thể thêm nhau vào gói khởi đầu. Nếu có, bạn sẽ tự động bị xóa khỏi gói khởi đầu hiện có của người kia.",
"block_modal.remote_users_caveat": "Chúng tôi sẽ yêu cầu {domain} tôn trọng quyết định của bạn. Tuy nhiên, việc tuân thủ không được đảm bảo vì một số máy chủ có thể xử lý việc chặn theo cách khác nhau. Các tút công khai vẫn có thể hiển thị đối với người dùng chưa đăng nhập.",
"block_modal.show_less": "Thu gọn",
"block_modal.show_more": "Hiện thêm",
+ "block_modal.they_cant_mention": "Bạn không thể nhắc đến, theo dõi hoặc trích dẫn lẫn nhau.",
+ "block_modal.they_cant_see_posts": "Bạn và họ sẽ không nhìn thấy tút của nhau.",
"block_modal.they_will_know": "Họ sẽ biết đã bị bạn chặn.",
"block_modal.title": "Chặn tài khoản này?",
+ "block_modal.you_wont_see_mentions": "Bạn không còn thấy tút có nhắc đến họ.",
"boost_modal.combo": "Nhấn {combo} để bỏ qua bước này",
"boost_modal.reblog": "Đăng lại?",
"boost_modal.undo_reblog": "Bỏ đăng lại?",
diff --git a/app/models/collection.rb b/app/models/collection.rb
index c5082269e0..547079e11d 100644
--- a/app/models/collection.rb
+++ b/app/models/collection.rb
@@ -5,6 +5,7 @@
# Table name: collections
#
# id :bigint(8) not null, primary key
+# deleted_at :datetime
# description :text
# description_html :text
# discoverable :boolean not null
@@ -31,6 +32,7 @@ class Collection < ApplicationRecord
has_many :collection_items, dependent: :delete_all
has_many :accepted_collection_items, -> { accepted }, class_name: 'CollectionItem', inverse_of: :collection # rubocop:disable Rails/HasManyOrHasOneDependent
+ has_many :top_items, -> { top_items }, class_name: 'CollectionItem', inverse_of: :collection # rubocop:disable Rails/HasManyOrHasOneDependent
has_many :collection_reports, dependent: :delete_all
validates :name, presence: true
diff --git a/app/models/collection_item.rb b/app/models/collection_item.rb
index bbb0343ebe..b7b82a29c4 100644
--- a/app/models/collection_item.rb
+++ b/app/models/collection_item.rb
@@ -47,6 +47,15 @@ class CollectionItem < ApplicationRecord
scope :local, -> { joins(:collection).merge(Collection.local) }
scope :accepted_partial, ->(account) { joins(:account).merge(Account.local).accepted.where(uri: nil, account_id: account.id) }
scope :pending_or_accepted, -> { where(state: [:pending, :accepted]) }
+ scope :top_items, lambda { |limit = 4|
+ subquery = where('collection_items.collection_id = collections.id')
+ .accepted.ordered.limit(limit)
+ .arel.lateral('top_items')
+ collection_query = Collection
+ .select('top_items.*')
+ .from([Collection.arel_table, subquery])
+ from(collection_query, 'collection_items')
+ }
def with_local_account?
account&.local?
diff --git a/app/models/email_domain_block.rb b/app/models/email_domain_block.rb
index c1b961517f..882b592843 100644
--- a/app/models/email_domain_block.rb
+++ b/app/models/email_domain_block.rb
@@ -29,6 +29,7 @@ class EmailDomainBlock < ApplicationRecord
validates :domain, presence: true, uniqueness: true, domain: true
scope :parents, -> { where(parent_id: nil) }
+ scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
# Used for adding multiple blocks at once
attr_accessor :other_domains
diff --git a/app/presenters/collections_presenter.rb b/app/presenters/collections_presenter.rb
new file mode 100644
index 0000000000..e97d872769
--- /dev/null
+++ b/app/presenters/collections_presenter.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class CollectionsPresenter < ActiveModelSerializers::Model
+ attributes :collections
+
+ def accounts
+ owners = collections.map(&:account)
+ top_accounts = collections.flat_map { |c| c.top_items.map(&:account) }
+ (owners + top_accounts).uniq
+ end
+end
diff --git a/app/serializers/rest/collections_with_account_previews_serializer.rb b/app/serializers/rest/collections_with_account_previews_serializer.rb
new file mode 100644
index 0000000000..95216ea649
--- /dev/null
+++ b/app/serializers/rest/collections_with_account_previews_serializer.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class REST::CollectionsWithAccountPreviewsSerializer < ActiveModel::Serializer
+ has_many :collections, serializer: REST::CollectionSerializer
+ has_many :partial_accounts, serializer: REST::PartialAccountSerializer
+
+ def partial_accounts
+ object.accounts
+ end
+end
diff --git a/app/serializers/rest/dedup_notification_group_serializer.rb b/app/serializers/rest/dedup_notification_group_serializer.rb
index 4f02505e25..19b42e6bd5 100644
--- a/app/serializers/rest/dedup_notification_group_serializer.rb
+++ b/app/serializers/rest/dedup_notification_group_serializer.rb
@@ -1,18 +1,8 @@
# frozen_string_literal: true
class REST::DedupNotificationGroupSerializer < ActiveModel::Serializer
- class PartialAccountSerializer < REST::AccountSerializer
- # This is a hack to reset ActiveModel::Serializer internals and only expose the attributes
- # we care about.
- self._attributes_data = {}
- self._reflections = []
- self._links = []
-
- attributes :id, :acct, :locked, :bot, :url, :avatar, :avatar_static
- end
-
has_many :accounts, serializer: REST::AccountSerializer
- has_many :partial_accounts, serializer: PartialAccountSerializer, if: :return_partial_accounts?
+ has_many :partial_accounts, serializer: REST::PartialAccountSerializer, if: :return_partial_accounts?
has_many :statuses, serializer: REST::StatusSerializer
has_many :notification_groups, serializer: REST::NotificationGroupSerializer
diff --git a/app/serializers/rest/partial_account_serializer.rb b/app/serializers/rest/partial_account_serializer.rb
new file mode 100644
index 0000000000..4ff3b9cbb1
--- /dev/null
+++ b/app/serializers/rest/partial_account_serializer.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class REST::PartialAccountSerializer < REST::AccountSerializer
+ # This is a hack to reset ActiveModel::Serializer internals and only expose the attributes
+ # we care about.
+ self._attributes_data = {}
+ self._reflections = []
+ self._links = []
+
+ attributes :id, :acct, :locked, :bot, :url, :avatar, :avatar_static, :avatar_description
+end
diff --git a/app/views/admin/email_domain_blocks/index.html.haml b/app/views/admin/email_domain_blocks/index.html.haml
index 4fae6557a5..8ca422c665 100644
--- a/app/views/admin/email_domain_blocks/index.html.haml
+++ b/app/views/admin/email_domain_blocks/index.html.haml
@@ -4,8 +4,23 @@
- content_for :heading_actions do
= link_to t('admin.email_domain_blocks.add_new'), new_admin_email_domain_block_path, class: 'button'
+= form_with url: admin_email_domain_blocks_path, method: :get, class: :simple_form do |f|
+ .fields-group
+ .input.string.optional
+ = f.text_field :domain,
+ value: params[:domain],
+ class: 'string optional',
+ placeholder: t('admin.email_domain_blocks.domain')
+
+ .actions
+ %button.button= t('admin.email_domain_blocks.search')
+ = link_to t('admin.email_domain_blocks.reset'), admin_email_domain_blocks_path, class: 'button button--dangerous'
+
+%hr.spacer/
+
= form_with model: @form, url: batch_admin_email_domain_blocks_path do |f|
= hidden_field_tag :page, params[:page] || 1
+ = hidden_field_tag :domain, params[:domain] if params[:domain].present?
.batch-table
.batch-table__toolbar
diff --git a/app/views/admin/email_subscriptions/_accounts.html.haml b/app/views/admin/email_subscriptions/_accounts.html.haml
index d560d417db..456455af4e 100644
--- a/app/views/admin/email_subscriptions/_accounts.html.haml
+++ b/app/views/admin/email_subscriptions/_accounts.html.haml
@@ -39,6 +39,7 @@
%td.valign-middle
= account.email_subscriptions.count
%td.valign-middle
- = l account.last_status_at
+ - if account.last_status_at.present?
+ = l account.last_status_at
%td.valign-middle.align-end
= link_to material_symbol('chevron_right'), admin_account_path(account.id), class: 'table-icon-link'
diff --git a/app/workers/remote_account_refresh_worker.rb b/app/workers/remote_account_refresh_worker.rb
index 5a4cbdf726..dfb18f2b49 100644
--- a/app/workers/remote_account_refresh_worker.rb
+++ b/app/workers/remote_account_refresh_worker.rb
@@ -8,8 +8,8 @@ class RemoteAccountRefreshWorker
sidekiq_options queue: 'pull', retry: 3
def perform(id)
- account = Account.find_by(id: id)
- return if account.nil? || account.local?
+ account = Account.remote.find_by(id: id)
+ return if account.nil?
ActivityPub::FetchRemoteAccountService.new.call(account.uri)
rescue Mastodon::UnexpectedResponseError => e
diff --git a/config/initializers/cors.rb b/config/initializers/cors.rb
index 476f1fb07a..6d4a832ee8 100644
--- a/config/initializers/cors.rb
+++ b/config/initializers/cors.rb
@@ -19,7 +19,7 @@ Rails.application.config.middleware.insert_before 0, Rack::Cors do
resource '/users/:username'
end
resource '/api/*',
- expose: %w(Link X-RateLimit-Reset X-RateLimit-Limit X-RateLimit-Remaining X-Request-Id),
+ expose: %w(Link Mastodon-Async-Refresh X-RateLimit-Reset X-RateLimit-Limit X-RateLimit-Remaining X-Request-Id),
methods: %i(post put delete get patch options)
resource '/oauth/token', methods: [:post]
resource '/oauth/revoke', methods: [:post]
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 6d377c9962..1521df439a 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -516,9 +516,16 @@ de:
index:
disabled:
get_started: Loslegen
+ lead: Ermögliche Gästen, Beiträge von ausgewählten Konten dieses Servers per E-Mail zu abonnieren.
+ title: E-Mail-Newsletter
+ purged_msg: Alle Daten zu E-Mail-Abonnements werden gelöscht.
roles:
accounts: Konten
edit_role: Rolle bearbeiten
+ empty:
+ hint: Niemand hat die Berechtigung, diese Funktion zu verwenden.
+ no_roles_added: Keine Rollen hinzugefügt
+ lead: Die folgenden Rollen berechtigen zur Aktivierung der Funktion.
manage_roles: Rollen verwalten
role_name: Name der Rolle
title: Rollen
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 5d3344f0e1..b0533881ba 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -484,8 +484,10 @@ en:
title: Block new email domain
no_email_domain_block_selected: No email domain blocks were changed as none were selected
not_permitted: Not permitted
+ reset: Reset
resolved_dns_records_hint_html: The domain name resolves to the following MX domains, which are ultimately responsible for accepting email. Blocking an MX domain will block sign-ups from any email address which uses the same MX domain, even if the visible domain name is different. Be careful not to block major email providers.
resolved_through_html: Resolved through %{domain}
+ search: Search
title: Blocked email domains
email_subscriptions:
accounts:
diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml
index 603ed0c15b..e5c8f759b7 100644
--- a/config/locales/fr-CA.yml
+++ b/config/locales/fr-CA.yml
@@ -487,6 +487,71 @@ fr-CA:
resolved_dns_records_hint_html: Le nom de domaine est lié aux domaines MX suivants, qui sont responsables de la réception des courriels. Le blocage d'un domaine MX empêchera l'inscription de toute adresse de courriel utilisant le même domaine MX, et ce même si le nom de domaine visible est différent. Veillez à ne pas bloquer les principaux fournisseurs de services de messagerie.
resolved_through_html: Résolu par %{domain}
title: Domaines de messagerie électronique bloqués
+ email_subscriptions:
+ accounts:
+ account: Compte
+ active: Actif
+ empty:
+ hint: Aucun compte n'a d'abonné·e·s pour l'instant.
+ no_lists_yet: Aucune liste pour l'instant
+ inactive: Inactif
+ last_email: Dernier courriel
+ lead: Les comptes ayant activé la fonctionnalité et qui ont des abonné·e·s apparaîtront ci-dessous.
+ status: État
+ subscribers: Abonné·e·s
+ title: Listes de diffusion
+ additional_footer_texts:
+ show:
+ title: Texte de pied de page supplémentaire
+ compliance_settings:
+ additional_footer_text:
+ action: Gérer
+ hint: Texte facultatif qui apparaît uniquement dans le pied de page des lettres d'information par courriel
+ title: Texte de pied de page supplémentaire
+ lead: Les lettres d'information peuvent être considérées comme des courriels de marketing, selon les juridictions où vous opérez.
+ privacy_policy:
+ action: Gérer
+ hint: Cette politique est liée dans le pied de page de chaque courriel
+ title: Politique de confidentialité
+ title: Paramètres de conformité
+ danger_zone:
+ disable_feature:
+ action: Désactiver
+ hint: Désactiver la fonctionnalité pour tous les comptes
+ title: Désactiver la fonctionnalité
+ erase_all_data:
+ action: Effacer les données
+ hint: Supprime définitivement toutes les adresses de courriel de toutes les listes de diffusion
+ title: Effacer toutes les données
+ title: Zone de danger
+ disabled_msg: Les abonnements par courriel ont été désactivés avec succès.
+ index:
+ disabled:
+ cannot_be_enabled: Votre fournisseur technique n'a pas activé cette fonctionnalité pour votre serveur.
+ description: Cette fonctionnalité permet aux comptes spécifiés d'ajouter un composant à leurs profils, permettant aux visiteur·euse·s sans compte Mastodon de recevoir leurs messages par courriel.
+ get_started: Premiers pas
+ lead: Permettre aux visiteur·euse·s de recevoir des messages par courriel à partir de comptes dédiés sur ce serveur.
+ title: Lettres d'information par courriel
+ purged_msg: Toutes les données d'abonnement par courriel sont en cours de suppression.
+ roles:
+ accounts: Comptes
+ edit_role: Modifier le rôle
+ empty:
+ hint: Personne n'a l'autorisation d'utiliser cette fonctionnalité.
+ no_roles_added: Aucun rôle ajouté
+ lead: Les comptes avec les rôles suivants peuvent activer cette fonctionnalité sur leurs profils.
+ manage_roles: Gérer les rôles
+ role_name: Nom du rôle
+ title: Rôles
+ setups:
+ show:
+ enable_feature: Activer la fonctionnalité
+ important_information: Information importante
+ list:
+ 1_permission_explanation: Lorsque cette fonctionnalité est activée, les comptes avec les autorisations désignées peuvent ajouter un formulaire de collecte d'adresses de courriel à leur profil.
+ 2_feature_explanation: Lorsque des visiteur·euse·s s'inscrivent sur la page de profil d'un compte et confirment leur abonnement, des notifications par courriel seront envoyées lorsque le compte publie de nouveaux messages publics.
+ 3_privacy_policy_warning: L'équipe d'administration du serveur aura accès aux informations personnelles (adresses de courriel) collectées. Pour cette raison, la politique de confidentialité et les conditions d'utilisation du serveur doivent être mises à jour avant d'utiliser cette fonctionnalité.
+ 4_cost_warning: Les courriels peuvent entraîner des frais en fonction de la configuration de l'hébergement. Discutez avec votre hébergeur avant de l'activer, car cette fonctionnalité pourrait considérablement augmenter le nombre de courriels envoyés par votre serveur.
export_domain_allows:
new:
title: Importer les autorisations de domaine
@@ -792,6 +857,7 @@ fr-CA:
manage_custom_emojis: Gérer les émojis personnalisés
manage_custom_emojis_description: Permet aux utilisateur⋅rice⋅s de gérer les émoticônes personnalisées sur le serveur
manage_email_subscriptions: Gérer les abonnements par courriel
+ manage_email_subscriptions_description: Permettre aux comptes ayant cette autorisation d'activer la fonctionnalité de lettre d'information par courriel
manage_federation: Gérer de la féderation
manage_federation_description: Permet aux utilisateur⋅rice⋅s de bloquer ou d'autoriser la fédération avec d'autres domaines, et de contrôler la capacité de livraison
manage_invites: Gérer les invitations
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 1522d8f980..1a60d7495e 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -487,6 +487,71 @@ fr:
resolved_dns_records_hint_html: Le nom de domaine est lié aux domaines MX suivants, qui sont responsables de la réception des courriels. Le blocage d'un domaine MX empêchera l'inscription de toute adresse de courriel utilisant le même domaine MX, et ce même si le nom de domaine visible est différent. Veillez à ne pas bloquer les principaux fournisseurs de services de messagerie.
resolved_through_html: Résolu par %{domain}
title: Domaines de messagerie électronique bloqués
+ email_subscriptions:
+ accounts:
+ account: Compte
+ active: Actif
+ empty:
+ hint: Aucun compte n'a d'abonné·e·s pour l'instant.
+ no_lists_yet: Aucune liste pour l'instant
+ inactive: Inactif
+ last_email: Dernier courriel
+ lead: Les comptes ayant activé la fonctionnalité et qui ont des abonné·e·s apparaîtront ci-dessous.
+ status: État
+ subscribers: Abonné·e·s
+ title: Listes de diffusion
+ additional_footer_texts:
+ show:
+ title: Texte de pied de page supplémentaire
+ compliance_settings:
+ additional_footer_text:
+ action: Gérer
+ hint: Texte facultatif qui apparaît uniquement dans le pied de page des lettres d'information par courriel
+ title: Texte de pied de page supplémentaire
+ lead: Les lettres d'information peuvent être considérées comme des courriels de marketing, selon les juridictions où vous opérez.
+ privacy_policy:
+ action: Gérer
+ hint: Cette politique est liée dans le pied de page de chaque courriel
+ title: Politique de confidentialité
+ title: Paramètres de conformité
+ danger_zone:
+ disable_feature:
+ action: Désactiver
+ hint: Désactiver la fonctionnalité pour tous les comptes
+ title: Désactiver la fonctionnalité
+ erase_all_data:
+ action: Effacer les données
+ hint: Supprime définitivement toutes les adresses de courriel de toutes les listes de diffusion
+ title: Effacer toutes les données
+ title: Zone de danger
+ disabled_msg: Les abonnements par courriel ont été désactivés avec succès.
+ index:
+ disabled:
+ cannot_be_enabled: Votre fournisseur technique n'a pas activé cette fonctionnalité pour votre serveur.
+ description: Cette fonctionnalité permet aux comptes spécifiés d'ajouter un composant à leurs profils, permettant aux visiteur·euse·s sans compte Mastodon de recevoir leurs messages par courriel.
+ get_started: Premiers pas
+ lead: Permettre aux visiteur·euse·s de recevoir des messages par courriel à partir de comptes dédiés sur ce serveur.
+ title: Lettres d'information par courriel
+ purged_msg: Toutes les données d'abonnement par courriel sont en cours de suppression.
+ roles:
+ accounts: Comptes
+ edit_role: Modifier le rôle
+ empty:
+ hint: Personne n'a l'autorisation d'utiliser cette fonctionnalité.
+ no_roles_added: Aucun rôle ajouté
+ lead: Les comptes avec les rôles suivants peuvent activer cette fonctionnalité sur leurs profils.
+ manage_roles: Gérer les rôles
+ role_name: Nom du rôle
+ title: Rôles
+ setups:
+ show:
+ enable_feature: Activer la fonctionnalité
+ important_information: Information importante
+ list:
+ 1_permission_explanation: Lorsque cette fonctionnalité est activée, les comptes avec les autorisations désignées peuvent ajouter un formulaire de collecte d'adresses de courriel à leur profil.
+ 2_feature_explanation: Lorsque des visiteur·euse·s s'inscrivent sur la page de profil d'un compte et confirment leur abonnement, des notifications par courriel seront envoyées lorsque le compte publie de nouveaux messages publics.
+ 3_privacy_policy_warning: L'équipe d'administration du serveur aura accès aux informations personnelles (adresses de courriel) collectées. Pour cette raison, la politique de confidentialité et les conditions d'utilisation du serveur doivent être mises à jour avant d'utiliser cette fonctionnalité.
+ 4_cost_warning: Les courriels peuvent entraîner des frais en fonction de la configuration de l'hébergement. Discutez avec votre hébergeur avant de l'activer, car cette fonctionnalité pourrait considérablement augmenter le nombre de courriels envoyés par votre serveur.
export_domain_allows:
new:
title: Importer les autorisations de domaine
@@ -792,6 +857,7 @@ fr:
manage_custom_emojis: Gérer les émojis personnalisés
manage_custom_emojis_description: Permet aux utilisateur⋅rice⋅s de gérer les émoticônes personnalisées sur le serveur
manage_email_subscriptions: Gérer les abonnements par courriel
+ manage_email_subscriptions_description: Permettre aux comptes ayant cette autorisation d'activer la fonctionnalité de lettre d'information par courriel
manage_federation: Gérer de la féderation
manage_federation_description: Permet aux utilisateur⋅rice⋅s de bloquer ou d'autoriser la fédération avec d'autres domaines, et de contrôler la capacité de livraison
manage_invites: Gérer les invitations
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index 441e067cf9..41e85c8e65 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -487,6 +487,70 @@ gl:
resolved_dns_records_hint_html: O nome de dominio corresponde cos seguintes dominios MX, que son os responsables últimos de aceptar o correo. Ao bloquear un dominio MX bloquerás a creación de contas para todo enderezo de correo que use o mesmo dominio MX, incluso se o nome de dominio visible é diferente. Ten coidado xa que podes bloquear os principais provedores de correo.
resolved_through_html: Resolto a través de %{domain}
title: Dominios de correo bloqueados
+ email_subscriptions:
+ accounts:
+ account: Conta
+ active: Activa
+ empty:
+ hint: Aínda non hai contas con subscritoras.
+ no_lists_yet: Aínda non hai listas
+ inactive: Inactiva
+ last_email: Último correo
+ lead: Aquí móstranse as contas que activaron esta ferramenta e teñen subscritoras.
+ status: Estado
+ subscribers: Subscritoras
+ title: Listas de correo
+ additional_footer_texts:
+ show:
+ title: Texto adicional no rodapé
+ compliance_settings:
+ additional_footer_text:
+ action: Xestionar
+ hint: Texto optativo que só aparece no rodapé dos correos do boletín
+ title: Texto adiciona no rodapé
+ lead: Os boletíns por correo poden considerarse correos de propaganda, dependendo da xurisdición onde opere o servidor.
+ privacy_policy:
+ action: Xestionar
+ hint: Esta directiva está indicada no rodapé de cada correo
+ title: Directiva de privacidade
+ title: Axustes de cumprimento
+ danger_zone:
+ disable_feature:
+ action: Desactivar
+ hint: Desconectar a ferramenta para todas as contas
+ title: Desactivar a ferramenta
+ erase_all_data:
+ action: Eliminar datos
+ hint: Elimina de xeito permanente todos os correos de todas as litas de correo
+ title: Eliminar todos os datos
+ title: Zona perigosa
+ disabled_msg: Desactiváronse correctamente todas as subscripcións por correo.
+ index:
+ disabled:
+ cannot_be_enabled: O teu provedor técnico non activou esta ferramenta para o teu servidor.
+ description: Esta característica permite que as contas indicadas engadan un widget ao seu perfil, para que así as persoas que visitan súa conta Mastodon poidan recibir as súas publicacións por correo electrónico.
+ get_started: Comezar
+ lead: Permitir que as visitas reciban as publicacións de certas contas deste servidor por correo electrónico.
+ title: Boletíns por correo electrónico
+ purged_msg: Vaise eliminar todos os datos de subscricións por correo.
+ roles:
+ accounts: Contas
+ edit_role: Editar rol
+ empty:
+ hint: Ninguén ten permiso para usar esta ferramenta.
+ no_roles_added: Sen roles engadidos
+ lead: As contas cos seguintes roles poden activar esta ferramenta no seu perfil.
+ manage_roles: Xestionar roles
+ role_name: Nome do rol
+ title: Roles
+ setups:
+ show:
+ enable_feature: Activar ferramenta
+ important_information: Información importante
+ list:
+ 1_permission_explanation: Cando se activa esta ferramenta as contas cos permisos concedidos poden engadir un formulario no seu perfil para recoller correos.
+ 2_feature_explanation: Cando unha persoa visita se apunta na páxina do perfil e confirma a súa subscrición, comezará a recibir actualizacións por correo cando a conta publique novas publicacións públicas.
+ 3_privacy_policy_warning: A administración do servidor vai ter acceso aos PII (enderezos de correo) recollidos. Así, a directiva de privacidade e os termos do servizo do servidor deben actualizarse antes de activar esta ferramenta.
export_domain_allows:
new:
title: Importar dominios permitidos
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index 837bb1d6dc..62250a9bfb 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -487,6 +487,65 @@ hu:
resolved_dns_records_hint_html: A domain név a következő MX domain-ekre oldódik fel, melyek valójában fogadják az e-mailt. Az MX domain letiltása minden olyan feliratkozást tiltani fog, melyben az e-mailcím ugyanazt az MX domaint használja, még akkor is, ha a látható domain név más. Légy óvatos, hogy ne tilts le nagy e-mail szolgáltatókat.
resolved_through_html: Feloldva %{domain}-n keresztül
title: Tiltott e-mail-domainek
+ email_subscriptions:
+ accounts:
+ account: Fiók
+ active: Aktív
+ empty:
+ hint: Egyik fióknak sincs feliratkozója.
+ no_lists_yet: Még nincsenek listák
+ inactive: Inaktív
+ last_email: Legutóbbi e-mail
+ status: Állapot
+ subscribers: Feliratkozók
+ title: Levelezőlisták
+ additional_footer_texts:
+ show:
+ title: További láblécszöveg
+ compliance_settings:
+ additional_footer_text:
+ action: Kezelés
+ hint: Nem kötelező szöveg, amely csak a hírlevelek láblécében jelenik meg
+ title: További láblécszöveg
+ lead: Az e-mailes hírlevelek marketinglevélnek számíthatnak a joghatóságodtól függően.
+ privacy_policy:
+ action: Kezelés
+ hint: Ez a nyilatkozat minden egyes levél láblécében be lesz hivatkozva
+ title: Adatvédelmi szabályzat
+ title: Megfelelőségi beállítások
+ danger_zone:
+ disable_feature:
+ action: Kikapcsolás
+ hint: Funkció kikapcsolása az összes fióknál
+ title: Funkció kikapcsolása
+ erase_all_data:
+ action: Adatok törlése
+ hint: Véglegesen törli az összes e-mailt az összes levelezőlistában
+ title: Összes adat törlése
+ title: Veszélyzóna
+ disabled_msg: Az e-mail-feliratkozások sikeresen ki lettek kapcsolva.
+ index:
+ disabled:
+ cannot_be_enabled: A műszaki szolgáltató nem kapcsolta be ezt a funkciót a kiszolgálód számára.
+ get_started: Első lépések
+ title: E-mailes hírlevelek
+ purged_msg: Az összes e-mail-feliratkozási adat törlése folyamatban van.
+ roles:
+ accounts: Fiókok
+ edit_role: Szerep szerkesztése
+ empty:
+ hint: Senkinek sincs engedélye a funkció használatához.
+ no_roles_added: Nincsenek szerepek hozzáadva
+ lead: A következő szereppel rendelkező fiókok kapcsolhatják be ezt a funkciót a profiljukban.
+ manage_roles: Szerepek kezelése
+ role_name: Szerep neve
+ title: Szerepek
+ setups:
+ show:
+ enable_feature: Funkció bekapcsolása
+ important_information: Fontos információk
+ list:
+ 3_privacy_policy_warning: A kiszolgálóadminok hozzá fognak férni a gyűjtött személyazonosításra alkalmas információkhoz (e-mail-címek). Ezért a funkció használata előtt frissíteni kell a kiszolgáló Adatvédelmi szabályzatát és a Felhasználási feltételeket.
export_domain_allows:
new:
title: Domain engedélyezések importálása
diff --git a/config/locales/is.yml b/config/locales/is.yml
index 15e924962e..97c09f7988 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -487,6 +487,71 @@ is:
resolved_dns_records_hint_html: Heiti lénsins vísar til eftirfarandi MX-léna, sem bera endanlega ábyrgð á að tölvupóstur skili sér. Útilokun á MX-léni mun koma í veg fyrir nýskráningar með hverju því tölvupóstfangi sem notar sama MX-lén, jafnvel þótt sýnilega lénsheitið sé frábrugðið. Farðu varlega svo þú útilokir ekki algengar tölvupóstþjónustur.
resolved_through_html: Leyst í gegnum %{domain}
title: Útilokuð tölvupóstlén
+ email_subscriptions:
+ accounts:
+ account: Aðgangur
+ active: Virkur
+ empty:
+ hint: Engir aðgangar eru ennþá með neina áskrifendur.
+ no_lists_yet: Ennþá engir listar
+ inactive: Óvirkur
+ last_email: Síðasti tölvupóstur
+ lead: Aðgangar sem hafa virkjað eiginleikann og eru með áskrifendur munu birtast hér fyrir neðan.
+ status: Staða
+ subscribers: Áskrifendur
+ title: Póstlistar
+ additional_footer_texts:
+ show:
+ title: Viðbótartexti neðst í skilaboðum
+ compliance_settings:
+ additional_footer_text:
+ action: Stýra
+ hint: Valkvæður texti sem birtist neðst í tölvupóstum fréttabréfs
+ title: Viðbótartexti neðst í skilaboðum
+ lead: Fréttabréf í tölvupósti eru í sumum lögsagnarumdæmum skilgreind sem markaðsefni.
+ privacy_policy:
+ action: Stýra
+ hint: Tengill sem vísar á þessa stefnu kemur fram neðst í hverjum tölvupósti
+ title: Meðferð persónuupplýsinga
+ title: Stillingar á samhæfni við reglur
+ danger_zone:
+ disable_feature:
+ action: Gera óvirkt
+ hint: Slökkva á eiginleika fyrir alla aðganga
+ title: Gera eiginleika óvirkan
+ erase_all_data:
+ action: Eyða gögnum
+ hint: Eyða endanlega öllum tölvupóstum í öllum póstlistum
+ title: Eyða öllum gögnum
+ title: Hættusvæði
+ disabled_msg: Tölvupóstáskriftir hafa verið gerðar óvirkar.
+ index:
+ disabled:
+ cannot_be_enabled: Tæknilega þjónustan hefur ekki virkjað þennan eiginleika á netþjóninum þínum.
+ description: Þessi eiginleiki gerir tilteknum notendum kleift að bæta við viðmótshluta á notendasniðin sín, sem gerir gestum án Mastodon-aðgangs kleift að fá færslurnar þeirra í tölvupósti.
+ get_started: Byrjum á þessu
+ lead: Leyfa gestum að sjá færslur frá útvöldum notendum á þessum netþjóni.
+ title: Fréttabréf í tölvupósti
+ purged_msg: Verið er að eyða öllum gögnum varðandi tölvupóstáskriftir.
+ roles:
+ accounts: Aðgangar
+ edit_role: Breyta hlutverki
+ empty:
+ hint: Enginn hefur heimild til að nota þennan eiginleika.
+ no_roles_added: Engum hlutverkum bætt við
+ lead: Aðgangar með eftirfarandi hlutverk geta virkjað þennan eiginleika á notandasniðinu sínu.
+ manage_roles: Sýsla með hlutverk
+ role_name: Heiti hlutverks
+ title: Hlutverk
+ setups:
+ show:
+ enable_feature: Virkja eiginleika
+ important_information: Mikilvægar upplýsingar
+ list:
+ 1_permission_explanation: Þegar þessi eiginleiki er virkur, munu aðgangar með tilteknar heimildir geta bætt söfnunarformi fyrir tölvupóst á notendasniðin sín.
+ 2_feature_explanation: Þegar gestir skrá sig á notendasniðssíðu aðgangs og staðfesta skráninguna, þá munu þeir fara að fá fréttir í tölvupósti þegar sá aðgangur útbýr nýjar opinberar færslur.
+ 3_privacy_policy_warning: Stjórnendur netþjóna munu hafa aðgang að þeim PII (tölvupóstföngum) sem safnað er. Þar með þarf að uppfæra stefnur varðandi meðferð persónuupplýsinga og þjónustuskilmála fyrir netþjóninn áður en þessi eiginleiki er notaður.
+ 4_cost_warning: Tölvupóstar geta haft kostað í för með sér, sé uppsetning hýsingar á tilteknu formi. Hafðu samband við hýsingarþjónustuna þína áður en þú virkjar þetta, þar sem þessi eiginleiki gæti valdið mikilli aukningu á þeim fjölda tölvupóstskilaboða sem send verða frá netþjóninum þínum.
export_domain_allows:
new:
title: Flytja inn leyfileg lén
@@ -792,6 +857,7 @@ is:
manage_custom_emojis: Sýsla með sérsniðin lyndistákn
manage_custom_emojis_description: Leyfir notendum að sýsla með sérsniðin lyndistákn á netþjóninum
manage_email_subscriptions: Sýsla með tölvupóstáskriftir
+ manage_email_subscriptions_description: Leyfa notendum með þessa heimild að virkja áskrift að færslum í tölvupósti fyrir aðganginn þeirra
manage_federation: Sýsla með netþjónasambönd
manage_federation_description: Leyfir notendum að loka á eða leyfa samþættingu við önnur lén (federation) og stýra afhendingu skilaboða
manage_invites: Sýsla með boðsgesti
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 317d829cd5..72260e1a40 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -490,6 +490,67 @@ it:
email_subscriptions:
accounts:
account: Account
+ active: Attivo
+ empty:
+ hint: Non ci sono ancora account con iscritti.
+ no_lists_yet: Non ci sono ancora liste
+ inactive: Inattivo
+ last_email: Ultima email
+ lead: Di seguito verranno visualizzati gli account che hanno attivato la funzionalità e che hanno degli iscritti.
+ status: Stato
+ subscribers: Iscritti
+ title: Mailing list
+ additional_footer_texts:
+ show:
+ title: Testo aggiuntivo a piè di pagina
+ compliance_settings:
+ additional_footer_text:
+ action: Gestisci
+ hint: Testo opzionale che compare solo nel piè di pagina delle email della newsletter
+ title: Testo aggiuntivo a piè di pagina
+ lead: Le newsletter via email possono essere considerate email di marketing, a seconda delle giurisdizioni in cui operi.
+ privacy_policy:
+ action: Gestisci
+ hint: Questa informativa è collegata nel piè di pagina di ogni email
+ title: Informativa sulla privacy
+ title: Impostazioni di conformità
+ danger_zone:
+ disable_feature:
+ action: Disabilita
+ hint: Disattiva la funzione per tutti gli account
+ title: Disabilita la funzionalità
+ erase_all_data:
+ action: Cancella i dati
+ title: Cancella tutti i dati
+ title: Zona pericolosa
+ disabled_msg: Le iscrizioni via email sono state disabilitate con successo.
+ index:
+ disabled:
+ cannot_be_enabled: Il tuo provider tecnico non ha abilitato questa funzione per il tuo server.
+ description: Questa funzione consente ad account specifici di aggiungere un widget ai propri profili, permettendo così ai visitatori sprovvisti di un account Mastodon di ricevere i loro post via email.
+ get_started: Inizia
+ lead: Consenti ai visitatori di ricevere post via email da account dedicati su questo server.
+ title: Newsletter via email
+ purged_msg: Tutti i dati relativi alle iscrizioni via email verranno cancellati.
+ roles:
+ accounts: Account
+ edit_role: Modifica il ruolo
+ empty:
+ hint: Nessuno ha il permesso di usare questa funzione.
+ no_roles_added: Nessun ruolo aggiunto
+ lead: Gli account con i seguenti ruoli possono abilitare questa funzione sui loro profili.
+ manage_roles: Gestisci i ruoli
+ role_name: Nome del ruolo
+ title: Ruoli
+ setups:
+ show:
+ enable_feature: Abilita la funzione
+ important_information: Informazioni importanti
+ list:
+ 1_permission_explanation: Quando questa funzione è abilitata, gli account con i permessi designati possono aggiungere un modulo di raccolta indirizzi email ai loro profili.
+ 2_feature_explanation: Quando i visitatori si registrano sulla pagina del profilo di un account e confermano l'iscrizione, inizieranno a ricevere aggiornamenti via email quando l'account crea nuovi post pubblici.
+ 3_privacy_policy_warning: Gli amministratori del server avranno accesso alle informazioni di identificazione personale (indirizzi email) raccolte. Pertanto, l'informativa sulla privacy e i termini di servizio per il server devono essere aggiornati prima di utilizzare questa funzione.
+ 4_cost_warning: L'invio di email potrebbe comportare dei costi a seconda della configurazione del servizio di hosting. Prima di abilitare questa funzione, è consigliabile parlarne con il proprio provider di hosting, poiché potrebbe aumentare notevolmente il numero di email inviate dal server.
export_domain_allows:
new:
title: Importare i permessi di dominio
@@ -795,6 +856,7 @@ it:
manage_custom_emojis: Gestisci emoji personalizzate
manage_custom_emojis_description: Consente agli utenti di gestire emoji personalizzate sul server
manage_email_subscriptions: Gestisci le iscrizioni via email
+ manage_email_subscriptions_description: Consenti agli utenti con questa autorizzazione di abilitare la funzione di newsletter via email per il loro account
manage_federation: Gestisci Federazione
manage_federation_description: Consente agli utenti di bloccare o consentire la federazione con altri domini e controllare la consegnabilità
manage_invites: Gestisci Inviti
diff --git a/config/locales/kab.yml b/config/locales/kab.yml
index 897e17c222..662b3be45f 100644
--- a/config/locales/kab.yml
+++ b/config/locales/kab.yml
@@ -285,6 +285,29 @@ kab:
domain: Taɣult
new:
create: Rnu taɣult
+ email_subscriptions:
+ accounts:
+ account: Amiḍan
+ active: D urmid
+ inactive: D arurmid
+ last_email: Imayl aneggaru
+ status: Addad
+ compliance_settings:
+ privacy_policy:
+ title: Tasertit n tbaḍnit
+ danger_zone:
+ disable_feature:
+ action: Kkes armad
+ erase_all_data:
+ action: Kkes isefka
+ index:
+ disabled:
+ get_started: Aha bdu tura
+ roles:
+ accounts: Imiḍanen
+ manage_roles: Sefrek timlilin
+ role_name: Isem n temlilt
+ title: Timlilin
export_domain_allows:
no_file: Ula d yiwen ufaylu ma yettwafran
export_domain_blocks:
@@ -577,8 +600,10 @@ kab:
webhooks:
delete: Kkes
disable: Kkes armad
+ disabled: Yettwassens
enable: Rmed
enabled: D urmid
+ events: Ineḍruyen
admin_mailer:
new_report:
body: "%{reporter} yettwazen ɣef %{target}"
@@ -636,6 +661,7 @@ kab:
progress:
confirm: Asentem n imayl
details: Isalli-inek·inem
+ list: Tikli n ujerred
review: Tamuɣli-nneɣ
rules: Abal n ilugan
providers:
@@ -658,6 +684,7 @@ kab:
set_new_password: Egr-d awal uffir amaynut
setup:
link_not_received: Ur k-id-iṣaḥ ara wassaɣ ?
+ title: Sefqed Tanaka-inek⋅inem
sign_in:
preamble_html: Kcem ar %{domain} s inekcam-inek n tuqqna. Ma yella yezga-d umiḍan-ik deg uqeddac-nniḍen, ur tezmireḍ ara ad tkecmeḍ sya.
title: Akeččum ɣer %{domain}
@@ -720,6 +747,7 @@ kab:
none: Ɣur-wat
edit_profile:
other: Ayen nniḍen
+ redesign_button: Ddu ɣer din
email_subscription_mailer:
confirmation:
action: Sentem tansa imayl
@@ -873,6 +901,8 @@ kab:
title: Azuzer amaynut
status:
subject: "%{name} akken i d-y·t·essufeɣ"
+ update:
+ subject: "%{name} isenfel tira n yiwen n yizen"
number:
human:
decimal_units:
@@ -1032,6 +1062,8 @@ kab:
sensitive_content: Agbur amḥulfu
terms_of_service:
title: Tiwtilin n useqdec
+ themes:
+ default: Mastodon
time:
formats:
default: "%d %b %Y, %H:%M"
@@ -1047,6 +1079,9 @@ kab:
enabled_success: Asesteb s snat n tarrayin yermed akken iwata
otp: Asnas n usesteb
webauthn: Tisura n teɣlist
+ unsubscriptions:
+ create:
+ action: Ddu ɣer usebter agejdan n uqeddac
user_mailer:
appeal_approved:
action: Iɣewwaṛen n umiḍan
@@ -1058,6 +1093,7 @@ kab:
categories:
spam: Aspam
reason: 'Taɣẓint:'
+ statuses: 'Iznan d-yettwabedren:'
title:
disable: Amiḍan i igersen
none: Ɣur-wat
diff --git a/config/locales/simple_form.fr-CA.yml b/config/locales/simple_form.fr-CA.yml
index cfb33954e3..7bb4176607 100644
--- a/config/locales/simple_form.fr-CA.yml
+++ b/config/locales/simple_form.fr-CA.yml
@@ -92,6 +92,7 @@ fr-CA:
closed_registrations_message: Affiché lorsque les inscriptions sont fermées
content_cache_retention_period: Tous les messages provenant d'autres serveurs (y compris les partages et les réponses) seront supprimés passé le nombre de jours spécifié, sans tenir compte des interactions locales avec ces messages. Cela inclut les messages qu'un·e utilisateur·rice aurait marqué comme signets ou favoris. Les mentions privées entre utilisateur·rice·s de différentes instances seront également perdues et impossibles à restaurer. L'utilisation de ce paramètre est destinée à des instances spécifiques et contrevient à de nombreuses attentes des utilisateur·rice·s lorsqu'il est appliquée à une instance généraliste.
custom_css: Vous pouvez appliquer des styles personnalisés sur la version Web de Mastodon.
+ email_footer_text: Texte facultatif qui apparaît uniquement dans le pied de page des lettres d'information par courriel.
favicon: WebP, PNG, GIF ou JPG. Remplace la favicon Mastodon par défaut avec une icône personnalisée.
landing_page: Sélectionne la page à afficher aux nouveaux visiteur·euse·s quand ils arrivent sur votre serveur. Pour utiliser « Tendances » les tendances doivent être activées dans les paramètres de découverte. Pour utiliser « Fil local » le paramètre « Accès au flux en direct de ce serveur » doit être défini sur « Tout le monde » dans les paramètres de découverte.
mascot: Remplace l'illustration dans l'interface Web avancée.
@@ -294,6 +295,7 @@ fr-CA:
closed_registrations_message: Message personnalisé lorsque les inscriptions ne sont pas disponibles
content_cache_retention_period: Durée de rétention du contenu distant
custom_css: CSS personnalisé
+ email_footer_text: Texte de pied de page supplémentaire
favicon: Favicon
landing_page: Page d'accueil pour les nouveaux visiteurs
local_live_feed_access: Accès au flux en direct de ce serveur
@@ -322,6 +324,9 @@ fr-CA:
trendable_by_default: Autoriser les tendances sans révision préalable
trends: Activer les tendances
wrapstodon: Activer Wrapstodon
+ form_email_subscriptions_confirmation:
+ agreement_email_volume: Je comprends que l'activation de cette fonctionnalité peut augmenter considérablement le volume de courriels envoyés par le serveur et que je suis seul responsable des coûts encourus.
+ agreement_privacy_and_terms: J'ai mis à jour la politique de confidentialité et les conditions d'utilisation.
interactions:
must_be_follower: Bloquer les notifications des personnes qui ne vous suivent pas
must_be_following: Bloquer les notifications des personnes que vous ne suivez pas
diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml
index fcd906ce67..d682488b9e 100644
--- a/config/locales/simple_form.fr.yml
+++ b/config/locales/simple_form.fr.yml
@@ -92,6 +92,7 @@ fr:
closed_registrations_message: Affiché lorsque les inscriptions sont fermées
content_cache_retention_period: Tous les messages provenant d'autres serveurs (y compris les partages et les réponses) seront supprimés passé le nombre de jours spécifié, sans tenir compte des interactions locales avec ces messages. Cela inclut les messages qu'un·e utilisateur·rice aurait marqué comme signets ou favoris. Les mentions privées entre utilisateur·rice·s de différentes instances seront également perdues et impossibles à restaurer. L'utilisation de ce paramètre est destinée à des instances spécifiques et contrevient à de nombreuses attentes des utilisateur·rice·s lorsqu'il est appliquée à une instance généraliste.
custom_css: Vous pouvez appliquer des styles personnalisés sur la version Web de Mastodon.
+ email_footer_text: Texte facultatif qui apparaît uniquement dans le pied de page des lettres d'information par courriel.
favicon: WebP, PNG, GIF ou JPG. Remplace la favicon Mastodon par défaut avec une icône personnalisée.
landing_page: Sélectionne la page à afficher aux nouveaux visiteur·euse·s quand ils arrivent sur votre serveur. Pour utiliser « Tendances » les tendances doivent être activées dans les paramètres de découverte. Pour utiliser « Fil local » le paramètre « Accès au flux en direct de ce serveur » doit être défini sur « Tout le monde » dans les paramètres de découverte.
mascot: Remplace l'illustration dans l'interface Web avancée.
@@ -294,6 +295,7 @@ fr:
closed_registrations_message: Message personnalisé lorsque les inscriptions ne sont pas disponibles
content_cache_retention_period: Durée de rétention du contenu distant
custom_css: CSS personnalisé
+ email_footer_text: Texte de pied de page supplémentaire
favicon: Favicon
landing_page: Page d'accueil pour les nouveaux visiteurs
local_live_feed_access: Accès au flux en direct de ce serveur
@@ -322,6 +324,9 @@ fr:
trendable_by_default: Autoriser les tendances sans révision préalable
trends: Activer les tendances
wrapstodon: Activer Wrapstodon
+ form_email_subscriptions_confirmation:
+ agreement_email_volume: Je comprends que l'activation de cette fonctionnalité peut augmenter considérablement le volume de courriels envoyés par le serveur et que je suis seul responsable des coûts encourus.
+ agreement_privacy_and_terms: J'ai mis à jour la politique de confidentialité et les conditions d'utilisation.
interactions:
must_be_follower: Bloquer les notifications des personnes qui ne vous suivent pas
must_be_following: Bloquer les notifications des personnes que vous ne suivez pas
diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml
index ac4c27bb52..b9582b474e 100644
--- a/config/locales/simple_form.hu.yml
+++ b/config/locales/simple_form.hu.yml
@@ -92,6 +92,7 @@ hu:
closed_registrations_message: Akkor jelenik meg, amikor a regisztráció le van zárva
content_cache_retention_period: Minden más kiszolgálóról származó bejegyzés (megtolásokkal és válaszokkal együtt) törölve lesz a megadott számú nap elteltével, függetlenül a helyi felhasználók ezekkel a bejegyzésekkel történő interakcióitól. Ebben azok a bejegyzések is benne vannak, melyeket a helyi felhasználó könyvjelzőzött vagy kedvencnek jelölt. A különböző kiszolgálók felhasználói közötti privát üzenetek is el fognak veszni visszaállíthatatlanul. Ennek a beállításnak a használata különleges felhasználási esetekre javasolt, mert számos felhasználói elvárás fog eltörni, ha általános céllal használják.
custom_css: A Mastodon webes verziójában használhatsz egyéni stílusokat.
+ email_footer_text: Nem kötelező szöveg, amely csak a hírlevelek láblécében jelenik meg.
favicon: WEBP, PNG, GIF vagy JPG. Az alapértelmezett Mastodon favicont felülírja egy egyéni ikonnal.
landing_page: Kiválasztja, hogy a webhely új látogatói mit látnak, amikor először érkeznek a kiszolgálóra. Ha a „Trendek” lehetőséget választod, akkor engedélyezni kell a trendeket a Felfedezési beállításokban. Ha a „Helyi hírfolyamot” választod, akkor a „Helyi bejegyzéseket tartalmazó helyi élő idővonalak elérése” lehetőséget „Mindenki” értékre kell állítani a Felfedezési beállításokban.
mascot: Felülbírálja a speciális webes felületen található illusztrációt.
@@ -294,6 +295,7 @@ hu:
closed_registrations_message: A feliratkozáskor megjelenő egyéni üzenet nem érhető el
content_cache_retention_period: Távoli tartalmak megtartási időszaka
custom_css: Egyéni CSS
+ email_footer_text: További láblécszöveg
favicon: Könyvjelzőikon
landing_page: Kezdőoldal az új látogatóknak
local_live_feed_access: Helyi bejegyzéseket bemutató élő hírfolyamok elérése
@@ -322,6 +324,8 @@ hu:
trendable_by_default: Trendek engedélyezése előzetes ellenőrzés nélkül
trends: Trendek engedélyezése
wrapstodon: Wrapstodon engedélyezése
+ form_email_subscriptions_confirmation:
+ agreement_privacy_and_terms: Frissítettem az Adatvédelmi szabályzatot és a Felhasználási feltételeket.
interactions:
must_be_follower: Nem követőidtől érkező értesítések tiltása
must_be_following: Nem követettjeidtől érkező értesítések tiltása
diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml
index bc863a8d91..8556716840 100644
--- a/config/locales/simple_form.is.yml
+++ b/config/locales/simple_form.is.yml
@@ -92,6 +92,7 @@ is:
closed_registrations_message: Birtist þegar lokað er á nýskráningar
content_cache_retention_period: Öllum færslum af öðrum netþjónum (þar með taldar endurbirtingar og svör) verður eytt eftir uppgefinn fjölda daga, án tillits til gagnvirkni staðværra notenda við þessar færslur. Þetta á einnig við um færslur sem notandinn hefur merkt sem bókamerki eða eftirlæti. Beinar tilvísanir (einkaspjall) milli notenda af mismunandi netþjónum munu einnig tapast og er engin leið til að endurheimta þær. Notkun á þessari stillingu er einungis ætluð sérstilltum netþjónum og mun skemma fyrir notendum ef þetta er sett upp fyrir almenna notkun.
custom_css: Þú getur virkjað sérsniðna stíla í vefútgáfu Mastodon.
+ email_footer_text: Valkvæður texti sem birtist neðst í tölvupóstum fréttabréfs.
favicon: WEBP, PNG, GIF eða JPG. Tekur yfir sjálfgefna Mastodon favicon-táknmynd með sérsniðinni táknmynd.
landing_page: Þetta ákvarðar hvaða síðu nýir gestir sjá þegar þeir koma fyrst á netþjóninn þinn. Ef þú velur "Vinsælt" þá þurfa vinsælar færslur að vera virkjaðar í stillingum fyrir Uppgötvun. Ef þú velur "Staðbundið streymi" þá þarf "Aðgangur að beinum streymum, þar með töldum staðværum færslum" að vera stillt á "Allir" í stillingum fyrir Uppgötvun.
mascot: Þetta tekyr yfir myndskreytinguna í ítarlega vefviðmótinu.
@@ -294,6 +295,7 @@ is:
closed_registrations_message: Sérsniðin skilaboð þegar ekki er hægt að nýskrá
content_cache_retention_period: Tímabil sem á að geyma fjartengt efni
custom_css: Sérsniðið CSS
+ email_footer_text: Viðbótartexti neðst í skilaboðum
favicon: Auðkennismynd
landing_page: Kynningarsíða fyrir nýja gesti
local_live_feed_access: Aðgangur að beinum streymum, þar með töldum staðværum færslum
@@ -322,6 +324,9 @@ is:
trendable_by_default: Leyfa vinsælt efni án undanfarandi yfirferðar
trends: Virkja vinsælt
wrapstodon: Virkja Ársuppgjörið
+ form_email_subscriptions_confirmation:
+ agreement_email_volume: Ég skil að þessi eiginleiki gæti valdið mikilli aukningu á þeim fjölda tölvupóstskilaboða sem send verða frá netþjóninum og að ég beri alfarið ábyrgð á þeim aukna kostnaði sem af þessu gæti hlotist.
+ agreement_privacy_and_terms: Ég hef uppfært stefnur varðandi meðferð persónuupplýsinga og þjónustuskilmála.
interactions:
must_be_follower: Loka á tilkynningar frá þeim sem ekki eru fylgjendur
must_be_following: Loka á tilkynningar frá þeim sem þú fylgist ekki með
diff --git a/config/locales/simple_form.kab.yml b/config/locales/simple_form.kab.yml
index 9c41da1e0e..313cca2036 100644
--- a/config/locales/simple_form.kab.yml
+++ b/config/locales/simple_form.kab.yml
@@ -102,6 +102,7 @@ kab:
setting_display_media_show_all: Sken-iten-id akk
setting_emoji_style: Aɣanib n yimujiten
setting_hide_network: Ffer azetta-k·m inmetti
+ setting_system_font_ui: Seqdec tasefsit tamezwert n unagraw
setting_theme: Asental n wesmel
setting_trends: Sken-d inezzaɣ n wass-a
setting_use_pending_items: Askar aleɣwayan
diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml
index c3630cf615..5b4c1d2a46 100644
--- a/config/locales/simple_form.tr.yml
+++ b/config/locales/simple_form.tr.yml
@@ -92,6 +92,7 @@ tr:
closed_registrations_message: Kayıt olma kapalıyken görüntülenir
content_cache_retention_period: Diğer sunuculardaki (öne çıkarma ve yanıtlar da dahil olmak üzere) tüm gönderiler belirlenen gün sonunda, yerel bir kullanıcının etkileşimine bakılmadan, silinecektir. Yerel bir kullanıcının yerimlerine veya favorilerine eklediği gönderiler de dahildir. Farklı sunuculardaki kullanıcılar arasındaki özel bahsetmeler de kaybolacak ve geri getirilmeleri mümkün olmayacaktır. Bu ayarın kullanımı özel amaçlı sunucular içindir ve genel amaçlı kullanımda etkinleştirildiğinde kullanıcı beklentilerini karşılamayabilir.
custom_css: Mastodon'un web sürümüne özel biçimler uygulayabilirsiniz.
+ email_footer_text: Yalnızca haber bülteni e-postalarının altbilgisinde görünen isteğe bağlı metin.
favicon: WEBP, PNG, GIF veya JPG. Varsayılan Mastodon simgesini isteğe bağlı bir simgeyle değiştirir.
landing_page: Yeni ziyaretçilerin sunucunuza ilk geldiklerinde görecekleri sayfayı seçer. "Öne çıkanlar" seçeneğini seçerseniz, Keşif Ayarlarında öne çıkanların etkinleştirilmesi gerekir. "Yerel akış" seçeneğini seçerseniz, Keşif Ayarlarında "Yerel gönderileri içeren canlı akışlara erişim" seçeneğinin "Herkes" olarak ayarlanması gerekir.
mascot: Gelişmiş web arayüzündeki illüstrasyonu geçersiz kılar.
@@ -294,6 +295,7 @@ tr:
closed_registrations_message: Kayıt olma mevcut değilken gösterilen özel ileti
content_cache_retention_period: Uzak içerik saklama süresi
custom_css: Özel CSS
+ email_footer_text: Ek altbilgi metni
favicon: Yer imi simgesi
landing_page: Yeni ziyaretçiler için giriş sayfası
local_live_feed_access: Yerel gönderileri ön plana çıkaran canlı akışlara erişim
@@ -322,6 +324,9 @@ tr:
trendable_by_default: Ön incelemesiz öne çıkanlara izin ver
trends: Öne çıkanları etkinleştir
wrapstodon: Wrapstodonu Etkinleştir
+ form_email_subscriptions_confirmation:
+ agreement_email_volume: Bu özelliği etkinleştirmenin sunucudan gönderilen e-posta sayısını önemli ölçüde artırabileceğini ve ortaya çıkabilecek tüm masraflardan tamamen kendimin sorumlu olduğunu anlıyorum.
+ agreement_privacy_and_terms: Gizlilik Politikası ve Hizmet Şartları'nı güncelledim.
interactions:
must_be_follower: Takipçim olmayan kişilerden gelen bildirimleri engelle
must_be_following: Takip etmediğim kişilerden gelen bildirimleri engelle
diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml
index 40a500f0af..a5ffe49c44 100644
--- a/config/locales/simple_form.vi.yml
+++ b/config/locales/simple_form.vi.yml
@@ -92,6 +92,7 @@ vi:
closed_registrations_message: Được hiển thị khi đóng đăng ký
content_cache_retention_period: Tất cả tút từ các máy chủ khác (bao gồm cả đăng lại và trả lời) sẽ bị xóa sau số ngày được chỉ định mà không tính đến bất kỳ tương tác nào của người dùng cục bộ với các tút đó. Điều này bao gồm các tút mà người dùng cục bộ đã đánh dấu nó là dấu trang hoặc mục yêu thích. Những lượt nhắc riêng tư giữa những người dùng từ các máy chủ khác nhau cũng sẽ bị mất và không thể khôi phục. Việc sử dụng cài đặt này dành cho các trường hợp có mục đích đặc biệt và phá vỡ nhiều kỳ vọng của người dùng khi được triển khai cho mục đích sử dụng chung.
custom_css: Bạn có thể tùy chỉnh phong cách trên bản web của Mastodon.
+ email_footer_text: Văn bản tùy chọn chỉ xuất hiện ở phần chân trang của bản tin email.
favicon: WEBP, PNG, GIF hoặc JPG. Dùng favicon Maston tùy chỉnh.
landing_page: Chọn trang mà khách truy cập mới sẽ thấy khi họ lần đầu truy cập máy chủ của bạn. Nếu bạn chọn "Xu hướng", thì cần bật xu hướng trong Cài đặt Khám phá. Nếu bạn chọn "Bảng tin máy chủ", thì cần đặt "Truy cập vào nguồn cấp dữ liệu trực tiếp có bài đăng cục bộ" thành "Mọi người" trong Cài đặt Khám phá.
mascot: Ghi đè hình minh họa trong giao diện web nâng cao.
@@ -293,6 +294,7 @@ vi:
closed_registrations_message: Thông báo tùy chỉnh khi tắt đăng ký
content_cache_retention_period: Khoảng thời gian lưu giữ nội dung máy chủ khác
custom_css: Tùy chỉnh CSS
+ email_footer_text: Văn bản chân trang bổ sung
favicon: Favicon
landing_page: Trang mở đầu dành cho khách ghé thăm
local_live_feed_access: Truy cập bảng tin gồm những tút của máy chủ
@@ -321,6 +323,9 @@ vi:
trendable_by_default: Cho phép lên xu hướng mà không cần duyệt trước
trends: Bật xu hướng
wrapstodon: Bật Wrapstodon
+ form_email_subscriptions_confirmation:
+ agreement_email_volume: Tôi hiểu rằng việc kích hoạt tính năng này có thể làm tăng đáng kể số lượng email được gửi từ máy chủ và tôi hoàn toàn chịu trách nhiệm về mọi chi phí phát sinh.
+ agreement_privacy_and_terms: Tôi đã cập nhật Chính sách Bảo mật và Điều khoản Dịch vụ.
interactions:
must_be_follower: Những người không theo dõi bạn
must_be_following: Những người bạn không theo dõi
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index 2c05c635c6..301df709e9 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -487,6 +487,71 @@ tr:
resolved_dns_records_hint_html: Alan adı aşağıdaki MX alan adlarına çözümleniyor, ancak hiç biri nihayetinde e-posta kabulünden sorum değil. Bir MX alan adını engellemek, görünen alan adı farklı osa bile aynı MX alan adını kullanan e-posta adreslerinden gelen kayıtları engelleyecektir. Başlıca e-posta sağlayıcıları engellememek için dikkatli olun.
resolved_through_html: "%{domain} aracılığıyla çözümlendi"
title: Engelli e-posta alan adları
+ email_subscriptions:
+ accounts:
+ account: Hesap
+ active: Etkin
+ empty:
+ hint: Henüz hiçbir hesabın abonesi yok.
+ no_lists_yet: Henüz liste yok
+ inactive: Etkin değil
+ last_email: Son e-posta
+ lead: Bu özelliği etkinleştirmiş ve abonesi olan hesaplar aşağıda gösterilecektir.
+ status: Durum
+ subscribers: Aboneler
+ title: E-posta listeleri
+ additional_footer_texts:
+ show:
+ title: Ek altbilgi metni
+ compliance_settings:
+ additional_footer_text:
+ action: Yönet
+ hint: Yalnızca haber bülteni e-postalarının altbilgisinde görünen isteğe bağlı metin
+ title: Ek altbilgi metni
+ lead: Faaliyet gösterdiğiniz yargı bölgelerine bağlı olarak, e-posta bültenleri pazarlama amaçlı e-postalar olarak değerlendirilebilir.
+ privacy_policy:
+ action: Yönet
+ hint: Bu politika her e-postanın alt bilgisinde yer alır
+ title: Gizlilik politikası
+ title: Uyumluluk ayarları
+ danger_zone:
+ disable_feature:
+ action: Devre dışı bırak
+ hint: Özelliği tüm hesaplar için kapat
+ title: Özelliği devre dışı bırak
+ erase_all_data:
+ action: Verileri sil
+ hint: Tüm posta listelerindeki tüm e-postaları kalıcı olarak siler
+ title: Tüm verileri sil
+ title: Tehlikeli bölge
+ disabled_msg: E-posta abonelikleri başarıyla devre dışı bırakıldı.
+ index:
+ disabled:
+ cannot_be_enabled: Teknik hizmet sağlayıcınız sunucunuz için bu özelliği etkinleştirmedi.
+ description: Bu özellik, belirlenen hesapların profillerine bir widget eklemesine olanak tanıyarak, Mastodon hesabı olmayan ziyaretçilerin bu hesapların gönderilerini e-posta yoluyla alabilmesini sağlar.
+ get_started: Başlayın
+ lead: Ziyaretçilerin bu sunucudaki özel hesaplardan e-posta yoluyla gönderileri almasına izin verin.
+ title: E-posta bültenleri
+ purged_msg: Tüm e-posta abonelik verileri siliniyor.
+ roles:
+ accounts: Hesaplar
+ edit_role: Rolü düzenle
+ empty:
+ hint: Hiç kimsenin bu özelliği kullanma izni yok.
+ no_roles_added: Hiçbir rol eklenmedi
+ lead: Aşağıdaki rollere sahip hesaplar, profillerinde bu özelliği etkinleştirebilir.
+ manage_roles: Rolleri yönet
+ role_name: Rol adı
+ title: Roller
+ setups:
+ show:
+ enable_feature: Özelliği etkinleştir
+ important_information: Önemli bilgi
+ list:
+ 1_permission_explanation: Bu özellik etkinleştirildiğinde, belirlenen izinlere sahip hesaplar profillerine bir e-posta toplama formu ekleyebilir.
+ 2_feature_explanation: Ziyaretçiler bir hesabın profil sayfasında kaydolup aboneliklerini onayladıklarında, o hesap yeni herkese açık gönderiler paylaştığında e-posta yoluyla güncellemeler almaya başlayacaklar.
+ 3_privacy_policy_warning: Sunucu yöneticileri, toplanan kişisel bilgilere (e-posta adresleri) erişebileceklerdir. Bu nedenle, bu özelliği kullanmadan önce sunucunun gizlilik politikası ve Hizmet Şartları güncellenmelidir.
+ 4_cost_warning: Barındırma yapılandırmasına bağlı olarak e-postalar için ücret tahsil edilebilir. Bu özellik, sunucunuzdan gönderilen e-posta sayısını önemli ölçüde artırabileceğinden, etkinleştirmeden önce barındırma sağlayıcınızla görüşün.
export_domain_allows:
new:
title: Alan adı engellerini içe aktar
@@ -792,6 +857,7 @@ tr:
manage_custom_emojis: Özel İfadeleri Yönetme
manage_custom_emojis_description: Kullanıcıların sunucudaki özel ifadeleri yönetmesine izin verir
manage_email_subscriptions: E-posta Aboneliklerini Yönet
+ manage_email_subscriptions_description: Bu izne sahip kullanıcıların, hesapları için e-posta bültenini etkinleştirmelerine izin ver
manage_federation: Birleştirme Yönetme
manage_federation_description: Kullanıcıların diğer alan adlarıyla birleştirmeye izin vermesi veya engellemesine ve teslim edilebilirliği denetlemesine izin verir
manage_invites: Davetleri Yönetme
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index fd29b46fce..7f5e2cb159 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -477,6 +477,71 @@ vi:
resolved_dns_records_hint_html: Tên miền phân giải thành các tên miền MX sau, các tên miền này chịu trách nhiệm cuối cùng trong việc chấp nhận email. Chặn tên miền MX sẽ chặn đăng ký từ bất kỳ địa chỉ email nào sử dụng cùng một tên miền MX, ngay cả khi tên miền hiển thị là khác. Cẩn thận đừng chặn những dịch vụ email lớn.
resolved_through_html: Đã xử lý thông qua %{domain}
title: Tên miền email đã chặn
+ email_subscriptions:
+ accounts:
+ account: Tài khoản
+ active: Hoạt động
+ empty:
+ hint: Hiện chưa có tài khoản nào có người đăng ký đọc.
+ no_lists_yet: Chưa có danh sách nào
+ inactive: Không hoạt động
+ last_email: Email gần nhất
+ lead: Các tài khoản đã kích hoạt tính năng này và có người đăng ký sẽ hiển thị bên dưới.
+ status: Trạng thái
+ subscribers: Người đăng ký đọc
+ title: Danh sách gửi thư
+ additional_footer_texts:
+ show:
+ title: Văn bản chân trang bổ sung
+ compliance_settings:
+ additional_footer_text:
+ action: Quản lý
+ hint: Văn bản tùy chọn chỉ xuất hiện ở phần chân trang của bản tin email
+ title: Văn bản chân trang bổ sung
+ lead: Tùy thuộc vào khu vực pháp lý nơi bạn hoạt động, bản tin email có thể được coi là email tiếp thị.
+ privacy_policy:
+ action: Quản lý
+ hint: Chính sách này được liên kết ở phần chân trang của mỗi email
+ title: Chính sách bảo mật
+ title: Cài đặt tuân thủ
+ danger_zone:
+ disable_feature:
+ action: Tắt
+ hint: Tắt tính năng này cho tất cả tài khoản
+ title: Tắt tính năng
+ erase_all_data:
+ action: Xóa dữ liệu
+ hint: Xóa vĩnh viễn tất cả email trong tất cả danh sách gửi thư
+ title: Xóa tất cả dữ liệu
+ title: Khu vực nguy hiểm
+ disabled_msg: Việc đăng ký nhận email đã được vô hiệu hóa thành công.
+ index:
+ disabled:
+ cannot_be_enabled: Nhà cung cấp kỹ thuật của bạn chưa kích hoạt tính năng này cho máy chủ của bạn.
+ description: Tính năng này cho phép các tài khoản được chỉ định thêm tiện ích vào hồ sơ của họ, giúp khách truy cập không có tài khoản Mastodon vẫn có thể nhận bài đăng qua email.
+ get_started: Bắt đầu
+ lead: Cho phép khách truy cập nhận tút qua email từ các tài khoản đặc biệt trên máy chủ này.
+ title: Bản tin email
+ purged_msg: Tất cả dữ liệu đăng ký nhận email đang được xóa.
+ roles:
+ accounts: Tài khoản
+ edit_role: Chỉnh sửa vai trò
+ empty:
+ hint: Không ai có quyền dùng tính năng này.
+ no_roles_added: Chưa có vai trò nào được thêm
+ lead: Các tài khoản có vai trò sau đây có thể kích hoạt tính năng này trên hồ sơ của họ.
+ manage_roles: Quản lý vai trò
+ role_name: Tên vai trò
+ title: Vai trò
+ setups:
+ show:
+ enable_feature: Bật tính năng
+ important_information: Thông tin quan trọng
+ list:
+ 1_permission_explanation: Khi tính năng này được kích hoạt, các tài khoản có quyền được chỉ định có thể thêm biểu mẫu thu thập email vào hồ sơ của họ.
+ 2_feature_explanation: Khi khách truy cập đăng ký trên trang hồ sơ tài khoản và xác nhận đăng ký của họ, họ sẽ bắt đầu nhận được thông báo qua email mỗi khi tài khoản đó đăng tút công khai mới.
+ 3_privacy_policy_warning: Quản trị viên máy chủ sẽ có quyền truy cập vào thông tin nhận dạng cá nhân (địa chỉ email) đã thu thập được. Do đó, chính sách bảo mật và Điều khoản dịch vụ của máy chủ phải được cập nhật trước khi sử dụng tính năng này.
+ 4_cost_warning: Việc gửi email có thể phát sinh phí tùy thuộc vào cấu hình máy chủ. Hãy thảo luận với nhà cung cấp dịch vụ lưu trữ của bạn trước khi kích hoạt tính năng này, vì nó có thể làm tăng đáng kể số lượng email được gửi từ máy chủ của bạn.
export_domain_allows:
new:
title: Nhập tên miền cho phép
@@ -776,6 +841,7 @@ vi:
manage_custom_emojis: Quản lý emoji
manage_custom_emojis_description: Cho phép quản lý các emoji tùy chỉnh trên máy chủ
manage_email_subscriptions: Quản lý đăng ký đọc qua email
+ manage_email_subscriptions_description: Cho phép người dùng có quyền này kích hoạt tính năng nhận bản tin email cho tài khoản của họ
manage_federation: Quản lý liên hợp
manage_federation_description: Cho phép chặn hoặc liên hợp với các máy chủ khác và kiểm soát khả năng phân phối
manage_invites: Quản lý lời mời
diff --git a/spec/models/collection_spec.rb b/spec/models/collection_spec.rb
index b9a5453642..0a04473d56 100644
--- a/spec/models/collection_spec.rb
+++ b/spec/models/collection_spec.rb
@@ -199,4 +199,16 @@ RSpec.describe Collection do
expect(subject.to_log_permalink).to eq ActivityPub::TagManager.instance.uri_for(subject)
end
end
+
+ describe '#top_items' do
+ let(:collection) { Fabricate(:collection) }
+
+ before do
+ 5.times { |i| Fabricate(:collection_item, collection:, position: i + 1) }
+ end
+
+ it 'returns the topmost four items' do
+ expect(collection.top_items.map(&:position)).to contain_exactly(1, 2, 3, 4)
+ end
+ end
end
diff --git a/spec/policies/email_subscription_policy_spec.rb b/spec/policies/email_subscription_policy_spec.rb
new file mode 100644
index 0000000000..cdccf0a18b
--- /dev/null
+++ b/spec/policies/email_subscription_policy_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe EmailSubscriptionPolicy do
+ subject { described_class }
+
+ let(:admin) { Fabricate(:admin_user).account }
+ let(:account) { Fabricate(:account) }
+
+ permissions :index?, :enable?, :disable?, :purge? do
+ context 'when admin' do
+ it { is_expected.to permit(admin, EmailSubscription) }
+ end
+
+ context 'when not admin' do
+ it { is_expected.to_not permit(account, EmailSubscription) }
+ end
+ end
+end
diff --git a/spec/presenters/collections_presenter_spec.rb b/spec/presenters/collections_presenter_spec.rb
new file mode 100644
index 0000000000..7207637481
--- /dev/null
+++ b/spec/presenters/collections_presenter_spec.rb
@@ -0,0 +1,48 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe CollectionsPresenter do
+ subject { described_class.new(collections:) }
+
+ let(:collection_owner_one) { Fabricate(:account) }
+ let(:collection_owner_two) { Fabricate(:account) }
+ let(:collection_one) do
+ Fabricate(:collection,
+ account: collection_owner_one,
+ name: 'Exquisite follows')
+ end
+ let(:collection_two) do
+ Fabricate(:collection,
+ account: collection_owner_two,
+ name: 'Excellent people')
+ end
+ let(:collections) { [collection_one, collection_two] }
+
+ describe '#accounts' do
+ context 'when collections do not have any items' do
+ it 'includes only the collection owners' do
+ expect(subject.accounts).to contain_exactly(collection_owner_one, collection_owner_two)
+ end
+ end
+
+ context 'when collections include accounts' do
+ let(:accounts) { Fabricate.times(3, :account) }
+
+ before do
+ accounts[0..1].each { |a| Fabricate(:collection_item, collection: collection_one, account: a) }
+ accounts[1..2].each { |a| Fabricate(:collection_item, collection: collection_two, account: a) }
+ end
+
+ it 'includes collection owners and unique preview accounts' do
+ expect(subject.accounts).to contain_exactly(
+ collection_owner_one,
+ collection_owner_two,
+ accounts[0],
+ accounts[1],
+ accounts[2]
+ )
+ end
+ end
+ end
+end
diff --git a/spec/requests/api/v2/notifications_spec.rb b/spec/requests/api/v2/notifications_spec.rb
index 4b4aa1b475..182733a8fc 100644
--- a/spec/requests/api/v2/notifications_spec.rb
+++ b/spec/requests/api/v2/notifications_spec.rb
@@ -322,7 +322,7 @@ RSpec.describe 'Notifications' do
expect(response.content_type)
.to start_with('application/json')
expect(response.parsed_body[:partial_accounts].size).to be > 0
- expect(response.parsed_body[:partial_accounts][0].keys.map(&:to_sym)).to contain_exactly(:acct, :avatar, :avatar_static, :bot, :id, :locked, :url)
+ expect(response.parsed_body[:partial_accounts][0].keys.map(&:to_sym)).to contain_exactly(:acct, :avatar, :avatar_static, :avatar_description, :bot, :id, :locked, :url)
expect(response.parsed_body[:partial_accounts].pluck(:id)).to_not include(recent_account.id.to_s)
expect(response.parsed_body[:accounts].pluck(:id)).to include(recent_account.id.to_s)
end
diff --git a/spec/serializers/rest/collections_with_account_previews_serializer_spec.rb b/spec/serializers/rest/collections_with_account_previews_serializer_spec.rb
new file mode 100644
index 0000000000..3d65f6c99d
--- /dev/null
+++ b/spec/serializers/rest/collections_with_account_previews_serializer_spec.rb
@@ -0,0 +1,45 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe REST::CollectionsWithAccountPreviewsSerializer do
+ subject do
+ serialized_record_json(presenter, described_class, options: {
+ scope_name: :current_user, scope: nil
+ })
+ end
+
+ let(:collection_owner_one) { Fabricate(:account) }
+ let(:collection_owner_two) { Fabricate(:account) }
+ let(:featured_account) { Fabricate(:account) }
+ let(:collection_one) do
+ Fabricate(:collection,
+ account: collection_owner_one,
+ name: 'Exquisite follows')
+ end
+ let(:collection_two) do
+ Fabricate(:collection,
+ account: collection_owner_two,
+ name: 'Excellent people')
+ end
+ let(:collections) { [collection_one, collection_two] }
+ let(:presenter) { CollectionsPresenter.new(collections:) }
+
+ before do
+ Fabricate(:collection_item, collection: collection_one, account: featured_account)
+ end
+
+ it 'includes collections and partial accounts with the expected attributes' do
+ expect(subject).to include({
+ 'collections' => [
+ a_hash_including({ 'name' => 'Exquisite follows' }),
+ a_hash_including({ 'name' => 'Excellent people' }),
+ ],
+ 'partial_accounts' => [
+ a_hash_including({ 'id' => collection_owner_one.id.to_s }),
+ a_hash_including({ 'id' => collection_owner_two.id.to_s }),
+ a_hash_including({ 'id' => featured_account.id.to_s }),
+ ],
+ })
+ end
+end
diff --git a/spec/serializers/rest/partial_account_serializer_spec.rb b/spec/serializers/rest/partial_account_serializer_spec.rb
new file mode 100644
index 0000000000..dc98850ba4
--- /dev/null
+++ b/spec/serializers/rest/partial_account_serializer_spec.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe REST::PartialAccountSerializer do
+ subject do
+ serialized_record_json(account, described_class, options: {
+ scope: nil,
+ scope_name: :current_user,
+ })
+ end
+
+ let(:account) { Fabricate(:account, avatar_description: 'image') }
+
+ it 'includes the expected attributes' do
+ expect(subject).to include({
+ 'id' => account.id.to_s,
+ 'acct' => account.pretty_acct,
+ 'locked' => false,
+ 'bot' => false,
+ 'url' => ActivityPub::TagManager.instance.url_for(account),
+ 'avatar' => include(account.avatar_original_url),
+ 'avatar_static' => include(account.avatar_static_url),
+ 'avatar_description' => 'image',
+ })
+ end
+end
diff --git a/spec/system/admin/email_domain_blocks_spec.rb b/spec/system/admin/email_domain_blocks_spec.rb
index 393e1a21c7..4a54744afd 100644
--- a/spec/system/admin/email_domain_blocks_spec.rb
+++ b/spec/system/admin/email_domain_blocks_spec.rb
@@ -86,4 +86,41 @@ RSpec.describe 'Admin::EmailDomainBlocks' do
I18n.t('admin.email_domain_blocks.no_email_domain_block_selected')
end
end
+
+ describe 'Searching for email domain blocks' do
+ let(:email_domain_block) { Fabricate :email_domain_block, domain: 'something.com' }
+ let(:email_domain_block2) { Fabricate :email_domain_block, domain: 'example.com' }
+
+ before do
+ visit admin_email_domain_blocks_path
+ email_domain_block
+ email_domain_block2
+ end
+
+ it 'filters by domain' do
+ fill_in 'domain', with: 'example.com'
+ click_on I18n.t('admin.email_domain_blocks.search')
+
+ expect(page).to have_text('example.com')
+ expect(page).to have_no_text('something.com')
+ end
+
+ it 'shows empty page when no such domains are blocked' do
+ fill_in 'domain', with: 'mydomain.com'
+ click_on I18n.t('admin.email_domain_blocks.search')
+
+ expect(page).to have_no_text('mydomain.com')
+ expect(page).to have_text('There is nothing here!')
+ end
+
+ it 'returns to the list when resetting the search' do
+ fill_in 'domain', with: 'example.com'
+ click_on I18n.t('admin.email_domain_blocks.search')
+ click_on I18n.t('admin.email_domain_blocks.reset')
+
+ expect(page).to have_text('example.com')
+ expect(page).to have_text('something.com')
+ expect(page).to have_no_text('There is nothing here!')
+ end
+ end
end
diff --git a/spec/system/admin/email_subscriptions/additional_footer_texts_spec.rb b/spec/system/admin/email_subscriptions/additional_footer_texts_spec.rb
new file mode 100644
index 0000000000..9da22fb152
--- /dev/null
+++ b/spec/system/admin/email_subscriptions/additional_footer_texts_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe 'Admin Email Subscriptions Footer Texts' do
+ let(:user) { Fabricate(:admin_user) }
+
+ before { sign_in user }
+
+ describe 'Updated the email footer additional text' do
+ it 'updates the text and redirects to subscriptions page' do
+ visit admin_email_subscriptions_additional_footer_text_path
+ expect(page)
+ .to have_title(I18n.t('admin.email_subscriptions.additional_footer_texts.show.title'))
+
+ fill_in 'form_admin_settings_email_footer_text', with: 'More text'
+
+ expect { click_on submit_button }
+ .to change(Setting, :email_footer_text).to('More text')
+ expect(page)
+ .to have_title(I18n.t('admin.email_subscriptions.index.title'))
+ end
+ end
+end
diff --git a/spec/system/admin/email_subscriptions/setups_spec.rb b/spec/system/admin/email_subscriptions/setups_spec.rb
new file mode 100644
index 0000000000..a0d23849c3
--- /dev/null
+++ b/spec/system/admin/email_subscriptions/setups_spec.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe 'Admin Email Subscriptions Setup' do
+ let(:user) { Fabricate(:admin_user) }
+
+ before { sign_in user }
+
+ describe 'Enabling the email subscription feature' do
+ it 'enables the feature and redirects to subscriptions page' do
+ visit admin_email_subscriptions_setup_path
+ expect(page)
+ .to have_title(I18n.t('admin.email_subscriptions.index.title'))
+
+ check 'form_email_subscriptions_confirmation_agreement_privacy_and_terms'
+ check 'form_email_subscriptions_confirmation_agreement_email_volume'
+
+ expect { submit_form }
+ .to change(Setting, :email_subscriptions).to(true)
+ expect(page)
+ .to have_title(I18n.t('admin.email_subscriptions.index.title'))
+ end
+
+ def submit_form
+ click_on I18n.t('admin.email_subscriptions.setups.show.enable_feature')
+ end
+ end
+end
diff --git a/spec/system/admin/email_subscriptions_spec.rb b/spec/system/admin/email_subscriptions_spec.rb
new file mode 100644
index 0000000000..0530cea150
--- /dev/null
+++ b/spec/system/admin/email_subscriptions_spec.rb
@@ -0,0 +1,47 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe 'Admin Email Subscriptions' do
+ let(:user) { Fabricate(:admin_user) }
+
+ before { sign_in user }
+
+ describe 'Viewing the subscriptions index page' do
+ before do
+ Fabricate.create :email_subscription # Create a sub show that purge is shown
+ end
+
+ context 'when feature enabled' do
+ before { Setting.email_subscriptions = true }
+
+ it 'shows subscription related details and manages the setting', :inline_jobs do
+ visit admin_email_subscriptions_path
+ expect(page)
+ .to have_title(I18n.t('admin.email_subscriptions.index.title'))
+ .and have_text(I18n.t('admin.email_subscriptions.compliance_settings.title'))
+
+ expect { click_on I18n.t('admin.email_subscriptions.danger_zone.erase_all_data.action') }
+ .to change(EmailSubscription, :count).to(0)
+ expect(page)
+ .to have_text(I18n.t('admin.email_subscriptions.purged_msg'))
+
+ expect { click_on I18n.t('admin.email_subscriptions.danger_zone.disable_feature.action') }
+ .to change(Setting, :email_subscriptions).to(false)
+ expect(page)
+ .to have_text(I18n.t('admin.email_subscriptions.disabled_msg'))
+ end
+ end
+
+ context 'when feature disabled' do
+ before { Setting.email_subscriptions = false }
+
+ it 'shows subscription related details' do
+ visit admin_email_subscriptions_path
+ expect(page)
+ .to have_title(I18n.t('admin.email_subscriptions.index.title'))
+ .and have_text(I18n.t('admin.email_subscriptions.index.disabled.description'))
+ end
+ end
+ end
+end
diff --git a/spec/system/admin/roles_spec.rb b/spec/system/admin/roles_spec.rb
index 8765bc9967..36a72d1f3c 100644
--- a/spec/system/admin/roles_spec.rb
+++ b/spec/system/admin/roles_spec.rb
@@ -74,5 +74,19 @@ RSpec.describe 'Admin::Roles' do
expect(page)
.to have_title(I18n.t('admin.roles.title'))
end
+
+ it 'Manages the `everyone` user role' do
+ role = UserRole.everyone
+
+ visit edit_admin_role_path(role)
+ expect(page)
+ .to have_title(I18n.t('admin.roles.edit', name: I18n.t('admin.roles.everyone')))
+ .and have_text('This is the base role affecting all users')
+
+ # Update role attribute
+ check 'user_role_require_2fa' # Require 2FA for everyone
+ expect { click_on submit_button }
+ .to(change { role.reload.require_2fa }.to(true))
+ end
end
end
diff --git a/spec/workers/remote_account_refresh_worker_spec.rb b/spec/workers/remote_account_refresh_worker_spec.rb
index 9938d971b9..18f51ebd53 100644
--- a/spec/workers/remote_account_refresh_worker_spec.rb
+++ b/spec/workers/remote_account_refresh_worker_spec.rb
@@ -4,29 +4,44 @@ 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)
+ context 'with a working service' do
+ let(:service) { instance_double(ActivityPub::FetchRemoteAccountService, call: true) }
- expect(service).to have_received(:call).with(account.uri)
+ 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.id)
+ expect(result).to be_nil
+ end
end
- it 'returns nil for non-existent record' do
- result = worker.perform(123_123_123)
+ context 'with a failing service' do
+ let(:service) { instance_double(ActivityPub::FetchRemoteAccountService) }
+ let(:response) { instance_double(HTTP::Response, code: 500) }
- expect(result).to be_nil
- end
+ before { allow(service).to receive(:call).and_raise(Mastodon::UnexpectedResponseError, response) }
- it 'returns nil for a local record' do
- account = Fabricate :account, domain: nil
- result = worker.perform(account)
- expect(result).to be_nil
+ it 'raises error when service fails' do
+ expect { worker.perform(account.id) }
+ .to raise_error(Mastodon::UnexpectedResponseError)
+ end
end
def stub_service
diff --git a/yarn.lock b/yarn.lock
index e71f2fb9c3..347061b3ae 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -217,7 +217,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.28.6":
+"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.18.6, @babel/helper-module-imports@npm:^7.28.6":
version: 7.28.6
resolution: "@babel/helper-module-imports@npm:7.28.6"
dependencies:
@@ -2420,10 +2420,10 @@ __metadata:
languageName: node
linkType: hard
-"@formatjs/bigdecimal@npm:0.2.2":
- version: 0.2.2
- resolution: "@formatjs/bigdecimal@npm:0.2.2"
- checksum: 10c0/69de414e037cd54d33f41ffd85b975ada50e8bb6355821d28cd30b1a9d69d83f3c4ff6bb8e1e4269b47768177f6ead6b564ee99d509e71a89fdf2f6e8c464eb6
+"@formatjs/bigdecimal@npm:0.2.3":
+ version: 0.2.3
+ resolution: "@formatjs/bigdecimal@npm:0.2.3"
+ checksum: 10c0/e928ecb903cb71ab5e2214a825263fd3d10369e924d546c595d2828a1771b133994395b321d6ea50ce55fcac7581c1b65e74ac7e8768801cdf1790eb8a7a964d
languageName: node
linkType: hard
@@ -2474,10 +2474,10 @@ __metadata:
languageName: node
linkType: hard
-"@formatjs/fast-memoize@npm:3.1.3":
- version: 3.1.3
- resolution: "@formatjs/fast-memoize@npm:3.1.3"
- checksum: 10c0/572802c57aa295e516f5ac52db9062591643510f360c4d99c3b562fd4b8852a0000e4c1a9daa9e29be88d34356fab1cb9a8a45f764388a7fcdfa010eff6d610d
+"@formatjs/fast-memoize@npm:3.1.4":
+ version: 3.1.4
+ resolution: "@formatjs/fast-memoize@npm:3.1.4"
+ checksum: 10c0/7704f4a26099727dff4aadcadb130a9e512eac69fa366f8de57f5437f250daf90e0ccfe47eb0a2e1f14b83a639e58fe9c7682a139ecd3c1c55fe8d3da6c4616c
languageName: node
linkType: hard
@@ -2491,12 +2491,12 @@ __metadata:
languageName: node
linkType: hard
-"@formatjs/icu-messageformat-parser@npm:3.5.6":
- version: 3.5.6
- resolution: "@formatjs/icu-messageformat-parser@npm:3.5.6"
+"@formatjs/icu-messageformat-parser@npm:3.5.7":
+ version: 3.5.7
+ resolution: "@formatjs/icu-messageformat-parser@npm:3.5.7"
dependencies:
- "@formatjs/icu-skeleton-parser": "npm:2.1.6"
- checksum: 10c0/640e334eefe66c393b19d401bf1cc39cf7f783e450661220683a200a4e044a221c0a03f2c8ff0a9968bdab2234f7be35faf25aab722c467862fcffef45df8b3a
+ "@formatjs/icu-skeleton-parser": "npm:2.1.7"
+ checksum: 10c0/229c5ecf28a08eedc4185f756db7942ed5837226ff932885d1a7219ef895aa08177efd68a02efe2ca4d0612b5a1137e7f3e4a55b1b0850d5320b9328caad394e
languageName: node
linkType: hard
@@ -2509,10 +2509,10 @@ __metadata:
languageName: node
linkType: hard
-"@formatjs/icu-skeleton-parser@npm:2.1.6":
- version: 2.1.6
- resolution: "@formatjs/icu-skeleton-parser@npm:2.1.6"
- checksum: 10c0/f68bb13dfb771e9fd768702a1491482dbe05ab8e704e7c58083e82e907dac58b0c88c7cdc336bfc32222d67b129e57a9502597004b373ef0534601a480c6d943
+"@formatjs/icu-skeleton-parser@npm:2.1.7":
+ version: 2.1.7
+ resolution: "@formatjs/icu-skeleton-parser@npm:2.1.7"
+ checksum: 10c0/d0dff576c11bc60f043540a695f6be523a4e1ebab41fad81918f5b8609cac9a88664a8ed3e5574f2b0e624a75d7020ddc12b88fc979b069136ac7bd9da07dfe7
languageName: node
linkType: hard
@@ -2525,33 +2525,33 @@ __metadata:
languageName: node
linkType: hard
-"@formatjs/intl-localematcher@npm:0.8.5":
- version: 0.8.5
- resolution: "@formatjs/intl-localematcher@npm:0.8.5"
+"@formatjs/intl-localematcher@npm:0.8.6":
+ version: 0.8.6
+ resolution: "@formatjs/intl-localematcher@npm:0.8.6"
dependencies:
- "@formatjs/fast-memoize": "npm:3.1.3"
- checksum: 10c0/638b02a374fd18b0c1e6569838ea033b9136f652157e5e15ae0ccacc52408f232b82512bf63d15590d722720286bc85b73b2e52401e12e2229079b56534f4066
+ "@formatjs/fast-memoize": "npm:3.1.4"
+ checksum: 10c0/de6f3e426febb048249d73f4dce04a7ef868c2ff891c3dd5ff4ffac815565798d395ac1dbccc39ded7d8118a508f5bf08980c7b3bf0cffe485fb475046b53ca4
languageName: node
linkType: hard
"@formatjs/intl-pluralrules@npm:^6.0.0":
- version: 6.3.4
- resolution: "@formatjs/intl-pluralrules@npm:6.3.4"
+ version: 6.3.5
+ resolution: "@formatjs/intl-pluralrules@npm:6.3.5"
dependencies:
- "@formatjs/bigdecimal": "npm:0.2.2"
- "@formatjs/intl-localematcher": "npm:0.8.5"
- checksum: 10c0/c6b0c24012a53ef7c025c0c69d7d17cea8453916936a8e69f088723a5f9c82692441c5f2bf63abae9928e6d6cf31c913c33977a7afd83d90ac04d22d72c71d68
+ "@formatjs/bigdecimal": "npm:0.2.3"
+ "@formatjs/intl-localematcher": "npm:0.8.6"
+ checksum: 10c0/aac326900fcd2439b420724a7458eb75f57fbc8987efd2947bbfef7532220b6febe9a1053aa39dee314f38b54fe1a4386d8f97b34f48dd74c0b3fc4cd794b032
languageName: node
linkType: hard
-"@formatjs/intl@npm:4.1.8":
- version: 4.1.8
- resolution: "@formatjs/intl@npm:4.1.8"
+"@formatjs/intl@npm:4.1.9":
+ version: 4.1.9
+ resolution: "@formatjs/intl@npm:4.1.9"
dependencies:
- "@formatjs/fast-memoize": "npm:3.1.3"
- "@formatjs/icu-messageformat-parser": "npm:3.5.6"
- intl-messageformat: "npm:11.2.3"
- checksum: 10c0/244d4efa20bc57b66d1ae8eb571b8df3264b0879d304553d775cb93869030bf770165b9907f164b97cbf5ce79b5d62cee7f714f1173333aa30a0586210bc5882
+ "@formatjs/fast-memoize": "npm:3.1.4"
+ "@formatjs/icu-messageformat-parser": "npm:3.5.7"
+ intl-messageformat: "npm:11.2.4"
+ checksum: 10c0/50bdec85fdc02a9fda06c7a771d773f2d2374e58ca15edea93b7a6d033273e0fbec795c42cadf893e201a45ab228efcd3ee5f538cfa67d37e42bf96ef3621618
languageName: node
linkType: hard
@@ -2572,11 +2572,11 @@ __metadata:
languageName: node
linkType: hard
-"@formatjs/ts-transformer@npm:4.4.6":
- version: 4.4.6
- resolution: "@formatjs/ts-transformer@npm:4.4.6"
+"@formatjs/ts-transformer@npm:4.4.7":
+ version: 4.4.7
+ resolution: "@formatjs/ts-transformer@npm:4.4.7"
dependencies:
- "@formatjs/icu-messageformat-parser": "npm:3.5.6"
+ "@formatjs/icu-messageformat-parser": "npm:3.5.7"
"@types/node": "npm:22 || 24"
json-stable-stringify: "npm:^1.3.0"
typescript: "npm:^5.6 || 6"
@@ -2585,16 +2585,16 @@ __metadata:
peerDependenciesMeta:
ts-jest:
optional: true
- checksum: 10c0/aed517bdad919dc7ac9c6844a8af3bc87bdd13a3e5a41f03c1da540536e167fe3f4c7d02db1641d74272dc4b0c15a479d0290ea0bfa40788d8ea03e8913c8359
+ checksum: 10c0/62ac9dbd948ca6718c896d2684c4f3f87739fabb85a426f3b8089a9fce7f0cbd4153a319b7b2921783d90c23caa9b5a441b420ade3a20375ba7dcbf78652fe4d
languageName: node
linkType: hard
"@formatjs/unplugin@npm:^1.1.5":
- version: 1.1.9
- resolution: "@formatjs/unplugin@npm:1.1.9"
+ version: 1.1.10
+ resolution: "@formatjs/unplugin@npm:1.1.10"
dependencies:
- "@formatjs/icu-messageformat-parser": "npm:3.5.6"
- "@formatjs/ts-transformer": "npm:4.4.6"
+ "@formatjs/icu-messageformat-parser": "npm:3.5.7"
+ "@formatjs/ts-transformer": "npm:4.4.7"
magic-string: "npm:^0.30.0"
oxc-parser: "npm:^0.128.0"
unplugin: "npm:^3.0.0"
@@ -2615,7 +2615,7 @@ __metadata:
optional: true
webpack:
optional: true
- checksum: 10c0/bed54839f7218658cbd033aa1664214785e576992dde11ee693b43c48aec6a364286fb82d99d1fe321ef13c879104c69c5a3cdb5a074f958f8dd0085ab254d7f
+ checksum: 10c0/54d8ea307d1cd1c122b10366e931b52c3d4932825af1ad18ce8d7319619ab280f0d0bfdbb084c1bfe46aa1b95bc816137a81c548780195f60f6e29a6b73aadfb
languageName: node
linkType: hard
@@ -3904,26 +3904,28 @@ __metadata:
languageName: node
linkType: hard
-"@rollup/plugin-babel@npm:^5.2.0":
- version: 5.3.1
- resolution: "@rollup/plugin-babel@npm:5.3.1"
+"@rollup/plugin-babel@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "@rollup/plugin-babel@npm:6.1.0"
dependencies:
- "@babel/helper-module-imports": "npm:^7.10.4"
- "@rollup/pluginutils": "npm:^3.1.0"
+ "@babel/helper-module-imports": "npm:^7.18.6"
+ "@rollup/pluginutils": "npm:^5.0.1"
peerDependencies:
"@babel/core": ^7.0.0
"@types/babel__core": ^7.1.9
- rollup: ^1.20.0||^2.0.0
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
peerDependenciesMeta:
"@types/babel__core":
optional: true
- checksum: 10c0/2766134dd5567c0d4fd6909d1f511ce9bf3bd9d727e1bc5ffdd6097a3606faca324107ae8e0961839ee4dbb45e5e579ae601efe472fc0a271259aea79920cafa
+ rollup:
+ optional: true
+ checksum: 10c0/68bc1a3689552992c3443e43a95ac14ac4e271079a5a18e252d8113358236e9c91fe514dad7a42b84581214f8714ec1f46fd99a5d9cc5a6a1e7456367ee4d6d4
languageName: node
linkType: hard
-"@rollup/plugin-node-resolve@npm:^15.2.3":
- version: 15.3.1
- resolution: "@rollup/plugin-node-resolve@npm:15.3.1"
+"@rollup/plugin-node-resolve@npm:^16.0.3":
+ version: 16.0.3
+ resolution: "@rollup/plugin-node-resolve@npm:16.0.3"
dependencies:
"@rollup/pluginutils": "npm:^5.0.1"
"@types/resolve": "npm:1.20.2"
@@ -3935,27 +3937,30 @@ __metadata:
peerDependenciesMeta:
rollup:
optional: true
- checksum: 10c0/ecf3abe890fc98ad665fdbfb1ea245253e0d1f2bc6d9f4e8f496f212c76a2ce7cd4b9bc0abd21e6bcaa16f72d1c67cc6b322ea12a6ec68e8a8834df8242a5ecd
+ checksum: 10c0/5bafff8e51cd28b5b3b8f415c30a893f5bfdb1a54469e00b3dc6530f26051620f3dfa172f40544361948b46cc3070cb34fd44ade66d38c0677d74c846fbc58dc
languageName: node
linkType: hard
-"@rollup/plugin-replace@npm:^2.4.1":
- version: 2.4.2
- resolution: "@rollup/plugin-replace@npm:2.4.2"
+"@rollup/plugin-replace@npm:^6.0.3":
+ version: 6.0.3
+ resolution: "@rollup/plugin-replace@npm:6.0.3"
dependencies:
- "@rollup/pluginutils": "npm:^3.1.0"
- magic-string: "npm:^0.25.7"
+ "@rollup/pluginutils": "npm:^5.0.1"
+ magic-string: "npm:^0.30.3"
peerDependencies:
- rollup: ^1.20.0 || ^2.0.0
- checksum: 10c0/ea3d27291c791661638b91809d0247dde1ee71be0b16fa7060078c2700db3669eada2c3978ea979b917b29ebe06f3fddc8797feae554da966264a22142b5771a
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ checksum: 10c0/93217c52fe86b03363bc534b5f07963ac4fd6b91f19f6070a66809b0c65a036b3b234624a65a8bfcc01a8dc0e42838feae03c021b0d1e5e91753c503c4d70cd6
languageName: node
linkType: hard
-"@rollup/plugin-terser@npm:^0.4.3":
- version: 0.4.4
- resolution: "@rollup/plugin-terser@npm:0.4.4"
+"@rollup/plugin-terser@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "@rollup/plugin-terser@npm:1.0.0"
dependencies:
- serialize-javascript: "npm:^6.0.1"
+ serialize-javascript: "npm:^7.0.3"
smob: "npm:^1.0.0"
terser: "npm:^5.17.4"
peerDependencies:
@@ -3963,20 +3968,7 @@ __metadata:
peerDependenciesMeta:
rollup:
optional: true
- checksum: 10c0/b9cb6c8f02ac1c1344019e9fb854321b74f880efebc41b6bdd84f18331fce0f4a2aadcdb481042245cd3f409b429ac363af71f9efec4a2024731d67d32af36ee
- languageName: node
- linkType: hard
-
-"@rollup/pluginutils@npm:^3.1.0":
- version: 3.1.0
- resolution: "@rollup/pluginutils@npm:3.1.0"
- dependencies:
- "@types/estree": "npm:0.0.39"
- estree-walker: "npm:^1.0.1"
- picomatch: "npm:^2.2.2"
- peerDependencies:
- rollup: ^1.20.0||^2.0.0
- checksum: 10c0/7151753160d15ba2b259461a6c25b3932150994ea52dba8fd3144f634c7647c2e56733d986e2c15de67c4d96a9ee7d6278efa6d2e626a7169898fd64adc0f90c
+ checksum: 10c0/08be445cc2e0677132ee06cdebbcd1b6cd3ab22e220fcd89d8a22eaf9ee501a940f425931ac65c65ab113803ad31a895f2575716248609c882c8e562fd6cc2d4
languageName: node
linkType: hard
@@ -3996,6 +3988,181 @@ __metadata:
languageName: node
linkType: hard
+"@rollup/rollup-android-arm-eabi@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-android-arm-eabi@npm:4.60.3"
+ conditions: os=android & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-android-arm64@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-android-arm64@npm:4.60.3"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-darwin-arm64@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-darwin-arm64@npm:4.60.3"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-darwin-x64@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-darwin-x64@npm:4.60.3"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-freebsd-arm64@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-freebsd-arm64@npm:4.60.3"
+ conditions: os=freebsd & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-freebsd-x64@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-freebsd-x64@npm:4.60.3"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-arm-gnueabihf@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.60.3"
+ conditions: os=linux & cpu=arm & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-arm-musleabihf@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.60.3"
+ conditions: os=linux & cpu=arm & libc=musl
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-arm64-gnu@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.60.3"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-arm64-musl@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-linux-arm64-musl@npm:4.60.3"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-loong64-gnu@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.60.3"
+ conditions: os=linux & cpu=loong64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-loong64-musl@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-linux-loong64-musl@npm:4.60.3"
+ conditions: os=linux & cpu=loong64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-ppc64-gnu@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.60.3"
+ conditions: os=linux & cpu=ppc64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-ppc64-musl@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.60.3"
+ conditions: os=linux & cpu=ppc64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-riscv64-gnu@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.60.3"
+ conditions: os=linux & cpu=riscv64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-riscv64-musl@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.60.3"
+ conditions: os=linux & cpu=riscv64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-s390x-gnu@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.60.3"
+ conditions: os=linux & cpu=s390x & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-x64-gnu@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-linux-x64-gnu@npm:4.60.3"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-x64-musl@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-linux-x64-musl@npm:4.60.3"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-openbsd-x64@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-openbsd-x64@npm:4.60.3"
+ conditions: os=openbsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-openharmony-arm64@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-openharmony-arm64@npm:4.60.3"
+ conditions: os=openharmony & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-win32-arm64-msvc@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.60.3"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-win32-ia32-msvc@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.60.3"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-win32-x64-gnu@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-win32-x64-gnu@npm:4.60.3"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-win32-x64-msvc@npm:4.60.3":
+ version: 4.60.3
+ resolution: "@rollup/rollup-win32-x64-msvc@npm:4.60.3"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
"@rtsao/scc@npm:^1.1.0":
version: 1.1.0
resolution: "@rtsao/scc@npm:1.1.0"
@@ -4192,18 +4359,6 @@ __metadata:
languageName: node
linkType: hard
-"@surma/rollup-plugin-off-main-thread@npm:^2.2.3":
- version: 2.2.3
- resolution: "@surma/rollup-plugin-off-main-thread@npm:2.2.3"
- dependencies:
- ejs: "npm:^3.1.6"
- json5: "npm:^2.2.0"
- magic-string: "npm:^0.25.0"
- string.prototype.matchall: "npm:^4.0.6"
- checksum: 10c0/4f36a7488cdae2907053a48231430e8e9aa8f1903a96131bf8325786afba3224011f9120164cae75043558bd051881050b071958388fe477927d340b1cc1a066
- languageName: node
- linkType: hard
-
"@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0":
version: 8.0.0
resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0"
@@ -4390,6 +4545,18 @@ __metadata:
languageName: node
linkType: hard
+"@trickfilm400/rollup-plugin-off-main-thread@npm:^3.0.0-pre1":
+ version: 3.0.0-pre1
+ resolution: "@trickfilm400/rollup-plugin-off-main-thread@npm:3.0.0-pre1"
+ dependencies:
+ ejs: "npm:^3.1.10"
+ json5: "npm:^2.2.3"
+ magic-string: "npm:^0.30.21"
+ string.prototype.matchall: "npm:^4.0.12"
+ checksum: 10c0/60d4ff15295413e8b4092221f2683681d13168fb136d94b0c1ca472810e4b28c51b1f88be5fa1aa44327e18b620fd6ca9a3201cb2679034b29adf7bdbde014e0
+ languageName: node
+ linkType: hard
+
"@tybys/wasm-util@npm:^0.10.0, @tybys/wasm-util@npm:^0.10.1":
version: 0.10.1
resolution: "@tybys/wasm-util@npm:0.10.1"
@@ -4523,14 +4690,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/estree@npm:0.0.39":
- version: 0.0.39
- resolution: "@types/estree@npm:0.0.39"
- checksum: 10c0/f0af6c95ac1988c4827964bd9d3b51d24da442e2188943f6dfcb1e1559103d5d024d564b2e9d3f84c53714a02a0a7435c7441138eb63d9af5de4dfc66cdc0d92
- languageName: node
- linkType: hard
-
-"@types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6, @types/estree@npm:^1.0.8":
+"@types/estree@npm:1.0.8, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6, @types/estree@npm:^1.0.8":
version: 1.0.8
resolution: "@types/estree@npm:1.0.8"
checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5
@@ -5838,13 +5998,13 @@ __metadata:
linkType: hard
"axios@npm:^1.4.0":
- version: 1.15.2
- resolution: "axios@npm:1.15.2"
+ version: 1.16.0
+ resolution: "axios@npm:1.16.0"
dependencies:
- follow-redirects: "npm:^1.15.11"
+ follow-redirects: "npm:^1.16.0"
form-data: "npm:^4.0.5"
proxy-from-env: "npm:^2.1.0"
- checksum: 10c0/4eeae0feeaa7fdc1ef24f81f8b378fdadedf4aebdd6bf224484675160f8744cf17b9b0d1c215279979940f7e8ce463beffa2f713099612e428eac238515c81d5
+ checksum: 10c0/1c91a5221b77b76072026b4cc95ecdf38f7c3e33e63423abec09a85e6e9a12279637dcc9ac2ba1fc333e0c447fb3b0f46d7965acb5d7cea02d188e9c6d425c0b
languageName: node
linkType: hard
@@ -6955,7 +7115,7 @@ __metadata:
languageName: node
linkType: hard
-"ejs@npm:^3.1.6":
+"ejs@npm:^3.1.10":
version: 3.1.10
resolution: "ejs@npm:3.1.10"
dependencies:
@@ -7743,13 +7903,6 @@ __metadata:
languageName: node
linkType: hard
-"estree-walker@npm:^1.0.1":
- version: 1.0.1
- resolution: "estree-walker@npm:1.0.1"
- checksum: 10c0/fa9e5f8c1bbe8d01e314c0f03067b64a4f22d4c58410fc5237060d0c15b81e58c23921c41acc60abbdab490f1fdfcbd6408ede2d03ca704454272e0244d61a55
- languageName: node
- linkType: hard
-
"estree-walker@npm:^2.0.2":
version: 2.0.2
resolution: "estree-walker@npm:2.0.2"
@@ -7773,6 +7926,13 @@ __metadata:
languageName: node
linkType: hard
+"eta@npm:^4.5.1":
+ version: 4.6.0
+ resolution: "eta@npm:4.6.0"
+ checksum: 10c0/98c8081f756884bbc22f2bf4a6a38c2322ee97575fb6f0c02dcb1c3040353971c91a96bfba2d6f7cba39bb0ebece5708803a765447d9a81ca1172ccd5e31becf
+ languageName: node
+ linkType: hard
+
"etag@npm:^1.8.1":
version: 1.8.1
resolution: "etag@npm:1.8.1"
@@ -8036,13 +8196,13 @@ __metadata:
languageName: node
linkType: hard
-"follow-redirects@npm:^1.15.11":
- version: 1.15.11
- resolution: "follow-redirects@npm:1.15.11"
+"follow-redirects@npm:^1.16.0":
+ version: 1.16.0
+ resolution: "follow-redirects@npm:1.16.0"
peerDependenciesMeta:
debug:
optional: true
- checksum: 10c0/d301f430542520a54058d4aeeb453233c564aaccac835d29d15e050beb33f339ad67d9bddbce01739c5dc46a6716dbe3d9d0d5134b1ca203effa11a7ef092343
+ checksum: 10c0/a1e2900163e6f1b4d1ed5c221b607f41decbab65534c63fe7e287e40a5d552a6496e7d9d7d976fa4ba77b4c51c11e5e9f683f10b43011ea11e442ff128d0e181
languageName: node
linkType: hard
@@ -8835,13 +8995,13 @@ __metadata:
languageName: node
linkType: hard
-"intl-messageformat@npm:11.2.3, intl-messageformat@npm:^11.0.0":
- version: 11.2.3
- resolution: "intl-messageformat@npm:11.2.3"
+"intl-messageformat@npm:11.2.4, intl-messageformat@npm:^11.0.0":
+ version: 11.2.4
+ resolution: "intl-messageformat@npm:11.2.4"
dependencies:
- "@formatjs/fast-memoize": "npm:3.1.3"
- "@formatjs/icu-messageformat-parser": "npm:3.5.6"
- checksum: 10c0/95cf3eabad1613c62e291e09ec7d77929df536b038f61cbaffc8e8ad0e59568153aabf3acac45a9204c67f241ed2881d7569247f812c338e519c60db237b97ca
+ "@formatjs/fast-memoize": "npm:3.1.4"
+ "@formatjs/icu-messageformat-parser": "npm:3.5.7"
+ checksum: 10c0/a35128139b821334dccb76495f274b4cecd7807f69099f1f539dbf727df78465f8266a5f88efb064f18a636ec2b0e6cd994d40a6b196faffe843cdfb1b909509
languageName: node
linkType: hard
@@ -9509,7 +9669,7 @@ __metadata:
languageName: node
linkType: hard
-"json5@npm:^2.2.0, json5@npm:^2.2.2, json5@npm:^2.2.3":
+"json5@npm:^2.2.2, json5@npm:^2.2.3":
version: 2.2.3
resolution: "json5@npm:2.2.3"
bin:
@@ -9888,7 +10048,7 @@ __metadata:
languageName: node
linkType: hard
-"lodash@npm:^4.17.20, lodash@npm:^4.17.21":
+"lodash@npm:^4.17.21":
version: 4.18.1
resolution: "lodash@npm:4.18.1"
checksum: 10c0/757228fc68805c59789e82185135cf85f05d0b2d3d54631d680ca79ec21944ec8314d4533639a14b8bcfbd97a517e78960933041a5af17ecb693ec6eecb99a27
@@ -9967,16 +10127,7 @@ __metadata:
languageName: node
linkType: hard
-"magic-string@npm:^0.25.0, magic-string@npm:^0.25.7":
- version: 0.25.9
- resolution: "magic-string@npm:0.25.9"
- dependencies:
- sourcemap-codec: "npm:^1.4.8"
- checksum: 10c0/37f5e01a7e8b19a072091f0b45ff127cda676232d373ce2c551a162dd4053c575ec048b9cbb4587a1f03adb6c5d0fd0dd49e8ab070cd2c83a4992b2182d9cb56
- languageName: node
- linkType: hard
-
-"magic-string@npm:^0.30.0, magic-string@npm:^0.30.21, magic-string@npm:~0.30.11":
+"magic-string@npm:^0.30.0, magic-string@npm:^0.30.21, magic-string@npm:^0.30.3, magic-string@npm:~0.30.11":
version: 0.30.21
resolution: "magic-string@npm:0.30.21"
dependencies:
@@ -11131,7 +11282,7 @@ __metadata:
languageName: node
linkType: hard
-"picomatch@npm:^2.2.2, picomatch@npm:^2.3.1":
+"picomatch@npm:^2.3.1":
version: 2.3.1
resolution: "picomatch@npm:2.3.1"
checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be
@@ -11933,15 +12084,6 @@ __metadata:
languageName: node
linkType: hard
-"randombytes@npm:^2.1.0":
- version: 2.1.0
- resolution: "randombytes@npm:2.1.0"
- dependencies:
- safe-buffer: "npm:^5.1.0"
- checksum: 10c0/50395efda7a8c94f5dffab564f9ff89736064d32addf0cc7e8bf5e4166f09f8ded7a0849ca6c2d2a59478f7d90f78f20d8048bca3cdf8be09d8e8a10790388f3
- languageName: node
- linkType: hard
-
"range-parser@npm:^1.2.1":
version: 1.2.1
resolution: "range-parser@npm:1.2.1"
@@ -12068,16 +12210,16 @@ __metadata:
linkType: hard
"react-intl@npm:^10.0.0":
- version: 10.1.4
- resolution: "react-intl@npm:10.1.4"
+ version: 10.1.5
+ resolution: "react-intl@npm:10.1.5"
dependencies:
- "@formatjs/icu-messageformat-parser": "npm:3.5.6"
- "@formatjs/intl": "npm:4.1.8"
- intl-messageformat: "npm:11.2.3"
+ "@formatjs/icu-messageformat-parser": "npm:3.5.7"
+ "@formatjs/intl": "npm:4.1.9"
+ intl-messageformat: "npm:11.2.4"
peerDependencies:
"@types/react": 19
react: 19
- checksum: 10c0/7c5fad35e77f3fc64fc54422ee1756c168ebf2ae3d92f4cb8791831ef779441e5ab9ce8bf6e991ac0b3829dfc21831a3f17ee7eb4910eee777ccff063cb0c55b
+ checksum: 10c0/6c136a26692f2eb93feacaed1235f550075095e81e21cf9e713873429bac7326713c522bfebe04500b631e7e6ba2bc04b60d81f1ed5fbd3232956f1fc8ef5d0a
languageName: node
linkType: hard
@@ -12732,17 +12874,93 @@ __metadata:
languageName: node
linkType: hard
-"rollup@npm:^2.79.2":
- version: 2.80.0
- resolution: "rollup@npm:2.80.0"
+"rollup@npm:^4.53.3":
+ version: 4.60.3
+ resolution: "rollup@npm:4.60.3"
dependencies:
+ "@rollup/rollup-android-arm-eabi": "npm:4.60.3"
+ "@rollup/rollup-android-arm64": "npm:4.60.3"
+ "@rollup/rollup-darwin-arm64": "npm:4.60.3"
+ "@rollup/rollup-darwin-x64": "npm:4.60.3"
+ "@rollup/rollup-freebsd-arm64": "npm:4.60.3"
+ "@rollup/rollup-freebsd-x64": "npm:4.60.3"
+ "@rollup/rollup-linux-arm-gnueabihf": "npm:4.60.3"
+ "@rollup/rollup-linux-arm-musleabihf": "npm:4.60.3"
+ "@rollup/rollup-linux-arm64-gnu": "npm:4.60.3"
+ "@rollup/rollup-linux-arm64-musl": "npm:4.60.3"
+ "@rollup/rollup-linux-loong64-gnu": "npm:4.60.3"
+ "@rollup/rollup-linux-loong64-musl": "npm:4.60.3"
+ "@rollup/rollup-linux-ppc64-gnu": "npm:4.60.3"
+ "@rollup/rollup-linux-ppc64-musl": "npm:4.60.3"
+ "@rollup/rollup-linux-riscv64-gnu": "npm:4.60.3"
+ "@rollup/rollup-linux-riscv64-musl": "npm:4.60.3"
+ "@rollup/rollup-linux-s390x-gnu": "npm:4.60.3"
+ "@rollup/rollup-linux-x64-gnu": "npm:4.60.3"
+ "@rollup/rollup-linux-x64-musl": "npm:4.60.3"
+ "@rollup/rollup-openbsd-x64": "npm:4.60.3"
+ "@rollup/rollup-openharmony-arm64": "npm:4.60.3"
+ "@rollup/rollup-win32-arm64-msvc": "npm:4.60.3"
+ "@rollup/rollup-win32-ia32-msvc": "npm:4.60.3"
+ "@rollup/rollup-win32-x64-gnu": "npm:4.60.3"
+ "@rollup/rollup-win32-x64-msvc": "npm:4.60.3"
+ "@types/estree": "npm:1.0.8"
fsevents: "npm:~2.3.2"
dependenciesMeta:
+ "@rollup/rollup-android-arm-eabi":
+ optional: true
+ "@rollup/rollup-android-arm64":
+ optional: true
+ "@rollup/rollup-darwin-arm64":
+ optional: true
+ "@rollup/rollup-darwin-x64":
+ optional: true
+ "@rollup/rollup-freebsd-arm64":
+ optional: true
+ "@rollup/rollup-freebsd-x64":
+ optional: true
+ "@rollup/rollup-linux-arm-gnueabihf":
+ optional: true
+ "@rollup/rollup-linux-arm-musleabihf":
+ optional: true
+ "@rollup/rollup-linux-arm64-gnu":
+ optional: true
+ "@rollup/rollup-linux-arm64-musl":
+ optional: true
+ "@rollup/rollup-linux-loong64-gnu":
+ optional: true
+ "@rollup/rollup-linux-loong64-musl":
+ optional: true
+ "@rollup/rollup-linux-ppc64-gnu":
+ optional: true
+ "@rollup/rollup-linux-ppc64-musl":
+ optional: true
+ "@rollup/rollup-linux-riscv64-gnu":
+ optional: true
+ "@rollup/rollup-linux-riscv64-musl":
+ optional: true
+ "@rollup/rollup-linux-s390x-gnu":
+ optional: true
+ "@rollup/rollup-linux-x64-gnu":
+ optional: true
+ "@rollup/rollup-linux-x64-musl":
+ optional: true
+ "@rollup/rollup-openbsd-x64":
+ optional: true
+ "@rollup/rollup-openharmony-arm64":
+ optional: true
+ "@rollup/rollup-win32-arm64-msvc":
+ optional: true
+ "@rollup/rollup-win32-ia32-msvc":
+ optional: true
+ "@rollup/rollup-win32-x64-gnu":
+ optional: true
+ "@rollup/rollup-win32-x64-msvc":
+ optional: true
fsevents:
optional: true
bin:
rollup: dist/bin/rollup
- checksum: 10c0/48ad7b79a4ef9332cf90692d28c05f904132820964f012941372ec4f31c18635e1b7909823058964fb2b216154713bfbe82ec00920d71b15f3fe13bb9df3eac8
+ checksum: 10c0/72c9c768f3fabeaeff228b6364e6600c169d6c231a4324c47c34880fd8961aebacd974cf905ecc2db75e56c6491bdd676409a06aecf589791bf419cd41d06e76
languageName: node
linkType: hard
@@ -12788,7 +13006,7 @@ __metadata:
languageName: node
linkType: hard
-"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.1.0":
+"safe-buffer@npm:5.2.1":
version: 5.2.1
resolution: "safe-buffer@npm:5.2.1"
checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3
@@ -12957,12 +13175,10 @@ __metadata:
languageName: node
linkType: hard
-"serialize-javascript@npm:^6.0.1":
- version: 6.0.2
- resolution: "serialize-javascript@npm:6.0.2"
- dependencies:
- randombytes: "npm:^2.1.0"
- checksum: 10c0/2dd09ef4b65a1289ba24a788b1423a035581bef60817bea1f01eda8e3bda623f86357665fe7ac1b50f6d4f583f97db9615b3f07b2a2e8cbcb75033965f771dd2
+"serialize-javascript@npm:^7.0.3":
+ version: 7.0.5
+ resolution: "serialize-javascript@npm:7.0.5"
+ checksum: 10c0/7b7818e5267f6d474ec7a56d36ba69dd712726a13eab37706ec94615fb7ca8945471f2b7fb0dc9dbe8c79c1930c1079d97f66f91315c8c8c2ca6c38898cec96f
languageName: node
linkType: hard
@@ -13247,13 +13463,6 @@ __metadata:
languageName: node
linkType: hard
-"sourcemap-codec@npm:^1.4.8":
- version: 1.4.8
- resolution: "sourcemap-codec@npm:1.4.8"
- checksum: 10c0/f099279fdaae070ff156df7414bbe39aad69cdd615454947ed3e19136bfdfcb4544952685ee73f56e17038f4578091e12b17b283ed8ac013882916594d95b9e6
- languageName: node
- linkType: hard
-
"spdx-exceptions@npm:^2.1.0":
version: 2.3.0
resolution: "spdx-exceptions@npm:2.3.0"
@@ -13471,7 +13680,7 @@ __metadata:
languageName: node
linkType: hard
-"string.prototype.matchall@npm:^4.0.12, string.prototype.matchall@npm:^4.0.6":
+"string.prototype.matchall@npm:^4.0.12":
version: 4.0.12
resolution: "string.prototype.matchall@npm:4.0.12"
dependencies:
@@ -14697,23 +14906,23 @@ __metadata:
linkType: hard
"vite-plugin-pwa@npm:^1.2.0":
- version: 1.2.0
- resolution: "vite-plugin-pwa@npm:1.2.0"
+ version: 1.3.0
+ resolution: "vite-plugin-pwa@npm:1.3.0"
dependencies:
debug: "npm:^4.3.6"
pretty-bytes: "npm:^6.1.1"
tinyglobby: "npm:^0.2.10"
- workbox-build: "npm:^7.4.0"
- workbox-window: "npm:^7.4.0"
+ workbox-build: "npm:^7.4.1"
+ workbox-window: "npm:^7.4.1"
peerDependencies:
"@vite-pwa/assets-generator": ^1.0.0
- vite: ^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
- workbox-build: ^7.4.0
- workbox-window: ^7.4.0
+ vite: ^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
+ workbox-build: ^7.4.1
+ workbox-window: ^7.4.1
peerDependenciesMeta:
"@vite-pwa/assets-generator":
optional: true
- checksum: 10c0/d037591fc6a44b9a97f45b2452f691fce34c1c8ece4721d4f1a068f6dd7c30991b63c090a2af87d5b78d351bf5f5eee9d9dbbfc4bb39a77d3bc2ab7d2ca5df6b
+ checksum: 10c0/1cf7a43bf25d3f1276fe61e63cf7134b735b4426ddd2cf05775160e5bcd0a84eb705c15496abe78f6fb051f7a9481fcf854ed2b5b86922e07865ab37d5cb7a0b
languageName: node
linkType: hard
@@ -15060,193 +15269,193 @@ __metadata:
languageName: node
linkType: hard
-"workbox-background-sync@npm:7.4.0":
- version: 7.4.0
- resolution: "workbox-background-sync@npm:7.4.0"
+"workbox-background-sync@npm:7.4.1":
+ version: 7.4.1
+ resolution: "workbox-background-sync@npm:7.4.1"
dependencies:
idb: "npm:^7.0.1"
- workbox-core: "npm:7.4.0"
- checksum: 10c0/024dfad37c9ca28480857aaf7c0dd2e2f2b2ea416e100b51260eaf28f14ca5a558d0e12b1e95f862fec04df54432c090fa29582ab88b43d8778a4c821f21d13f
+ workbox-core: "npm:7.4.1"
+ checksum: 10c0/804729b83eb194a7694cb174d79090de85765f835bcc94d4c7eb739cb839385c6755baaf8dc82a43468b27488355cfaabb08cff751d5dfc70e07bf4c07e1c45d
languageName: node
linkType: hard
-"workbox-broadcast-update@npm:7.4.0":
- version: 7.4.0
- resolution: "workbox-broadcast-update@npm:7.4.0"
+"workbox-broadcast-update@npm:7.4.1":
+ version: 7.4.1
+ resolution: "workbox-broadcast-update@npm:7.4.1"
dependencies:
- workbox-core: "npm:7.4.0"
- checksum: 10c0/9e96d38cb1cfaccf72a37beeed7d36a66db8bacaa09e584bfa15f6b129aee5026c521320b4b68fa762f4f6ba0229f11c6ec6f7bc039419c8d1f1a9ed9f2a37b5
+ workbox-core: "npm:7.4.1"
+ checksum: 10c0/fb640c12dc9034f4f0fe9636f532a41c8eccba360676b4cd28d479b59684eab727435310d0e115b935d92e7abfe5ee91a77d567f9cb824fe33064e18880d7c4f
languageName: node
linkType: hard
-"workbox-build@npm:^7.4.0":
- version: 7.4.0
- resolution: "workbox-build@npm:7.4.0"
+"workbox-build@npm:^7.4.1":
+ version: 7.4.1
+ resolution: "workbox-build@npm:7.4.1"
dependencies:
"@apideck/better-ajv-errors": "npm:^0.3.1"
"@babel/core": "npm:^7.24.4"
"@babel/preset-env": "npm:^7.11.0"
"@babel/runtime": "npm:^7.11.2"
- "@rollup/plugin-babel": "npm:^5.2.0"
- "@rollup/plugin-node-resolve": "npm:^15.2.3"
- "@rollup/plugin-replace": "npm:^2.4.1"
- "@rollup/plugin-terser": "npm:^0.4.3"
- "@surma/rollup-plugin-off-main-thread": "npm:^2.2.3"
+ "@rollup/plugin-babel": "npm:^6.1.0"
+ "@rollup/plugin-node-resolve": "npm:^16.0.3"
+ "@rollup/plugin-replace": "npm:^6.0.3"
+ "@rollup/plugin-terser": "npm:^1.0.0"
+ "@trickfilm400/rollup-plugin-off-main-thread": "npm:^3.0.0-pre1"
ajv: "npm:^8.6.0"
common-tags: "npm:^1.8.0"
+ eta: "npm:^4.5.1"
fast-json-stable-stringify: "npm:^2.1.0"
fs-extra: "npm:^9.0.1"
glob: "npm:^11.0.1"
- lodash: "npm:^4.17.20"
pretty-bytes: "npm:^5.3.0"
- rollup: "npm:^2.79.2"
+ rollup: "npm:^4.53.3"
source-map: "npm:^0.8.0-beta.0"
stringify-object: "npm:^3.3.0"
strip-comments: "npm:^2.0.1"
tempy: "npm:^0.6.0"
upath: "npm:^1.2.0"
- workbox-background-sync: "npm:7.4.0"
- workbox-broadcast-update: "npm:7.4.0"
- workbox-cacheable-response: "npm:7.4.0"
- workbox-core: "npm:7.4.0"
- workbox-expiration: "npm:7.4.0"
- workbox-google-analytics: "npm:7.4.0"
- workbox-navigation-preload: "npm:7.4.0"
- workbox-precaching: "npm:7.4.0"
- workbox-range-requests: "npm:7.4.0"
- workbox-recipes: "npm:7.4.0"
- workbox-routing: "npm:7.4.0"
- workbox-strategies: "npm:7.4.0"
- workbox-streams: "npm:7.4.0"
- workbox-sw: "npm:7.4.0"
- workbox-window: "npm:7.4.0"
- checksum: 10c0/673fb05a0b24bb5534667a8d7c42304e3a1394071d73c9ccbfec881e36a66c98ed59eba92e21669a2758289c79e76a72930077a611f20ba803cdc0d0a24da6b2
+ workbox-background-sync: "npm:7.4.1"
+ workbox-broadcast-update: "npm:7.4.1"
+ workbox-cacheable-response: "npm:7.4.1"
+ workbox-core: "npm:7.4.1"
+ workbox-expiration: "npm:7.4.1"
+ workbox-google-analytics: "npm:7.4.1"
+ workbox-navigation-preload: "npm:7.4.1"
+ workbox-precaching: "npm:7.4.1"
+ workbox-range-requests: "npm:7.4.1"
+ workbox-recipes: "npm:7.4.1"
+ workbox-routing: "npm:7.4.1"
+ workbox-strategies: "npm:7.4.1"
+ workbox-streams: "npm:7.4.1"
+ workbox-sw: "npm:7.4.1"
+ workbox-window: "npm:7.4.1"
+ checksum: 10c0/18ed36ef28d31ffc26efbc0796d858b68b5dd9b61c86a9d5eef1c2a863ea05cc5a777a6e842af9a28a8efdbf84e6273b3ab82f8c60f495d95bdb5a7acf491da0
languageName: node
linkType: hard
-"workbox-cacheable-response@npm:7.4.0":
- version: 7.4.0
- resolution: "workbox-cacheable-response@npm:7.4.0"
+"workbox-cacheable-response@npm:7.4.1":
+ version: 7.4.1
+ resolution: "workbox-cacheable-response@npm:7.4.1"
dependencies:
- workbox-core: "npm:7.4.0"
- checksum: 10c0/4d4fabf3cbd7b2b0505e62ec653f933de40d4fa7600e49ac15cdf223e86b9e70580927f53c6ef27ddd027b655829918b90a77a3675593017c001811a122c6591
+ workbox-core: "npm:7.4.1"
+ checksum: 10c0/fc7bb1e435262c6390c6cdab02f27c7304bdd5de663514278718620c15df894e1d57a1cf38b10ec5dbe673ce3d650010c650dcd3d6587eb4dfad170caeaa53d4
languageName: node
linkType: hard
-"workbox-core@npm:7.4.0":
- version: 7.4.0
- resolution: "workbox-core@npm:7.4.0"
- checksum: 10c0/ae7c762df084b57d3d10f42b83a508a5c0bec5663de4c9cefc2b5c2893922a816f451cf8ec45ee76d204a3a6e90ee52b6c550a6cba9109d9bb644da9e98fb9e8
+"workbox-core@npm:7.4.1":
+ version: 7.4.1
+ resolution: "workbox-core@npm:7.4.1"
+ checksum: 10c0/953c3bcec2c04cef44ac779ac6b525f639fade17c594cfa601d7892090da6e18abd3eda22d2d592d8b4df6aa6856c947770f8b960f70c1ac1c989f722d0e7f67
languageName: node
linkType: hard
-"workbox-expiration@npm:7.4.0, workbox-expiration@npm:^7.3.0":
- version: 7.4.0
- resolution: "workbox-expiration@npm:7.4.0"
+"workbox-expiration@npm:7.4.1, workbox-expiration@npm:^7.3.0":
+ version: 7.4.1
+ resolution: "workbox-expiration@npm:7.4.1"
dependencies:
idb: "npm:^7.0.1"
- workbox-core: "npm:7.4.0"
- checksum: 10c0/d4f5e96e6d58d74a1be7d8c842e68e9fc2d4a22664f629ec71570039a1876e033ca1e54d68eccded83d901999e48fb388c1f807b14f706b9b83c7b3ab5815cf8
+ workbox-core: "npm:7.4.1"
+ checksum: 10c0/d940f2f263b5c1b5a27c4e0b7df9c44c9a8d9aa4ac4c8217610cee6e235aa4d97608d8713bb95a0da3228f145209e8cbc3d4ebc51455bd72a60d33f706640e15
languageName: node
linkType: hard
-"workbox-google-analytics@npm:7.4.0":
- version: 7.4.0
- resolution: "workbox-google-analytics@npm:7.4.0"
+"workbox-google-analytics@npm:7.4.1":
+ version: 7.4.1
+ resolution: "workbox-google-analytics@npm:7.4.1"
dependencies:
- workbox-background-sync: "npm:7.4.0"
- workbox-core: "npm:7.4.0"
- workbox-routing: "npm:7.4.0"
- workbox-strategies: "npm:7.4.0"
- checksum: 10c0/34a5ad1ea6fd6c65d5eb78b8c4bcf30b2624099b1c7c2e8f6a2af7135dcfcff00531d042f99b45960dcc42185b0f9c4b62c02a38325429fa15f060f30df61e51
+ workbox-background-sync: "npm:7.4.1"
+ workbox-core: "npm:7.4.1"
+ workbox-routing: "npm:7.4.1"
+ workbox-strategies: "npm:7.4.1"
+ checksum: 10c0/107beef09bc14f7b83a257964dc4ac2f19d14fce20f5498e31172e8ef387fd46ee9e0dd63f01825c8baf49fc0fea0451e06fb1879df958b4df634f85564be8a1
languageName: node
linkType: hard
-"workbox-navigation-preload@npm:7.4.0":
- version: 7.4.0
- resolution: "workbox-navigation-preload@npm:7.4.0"
+"workbox-navigation-preload@npm:7.4.1":
+ version: 7.4.1
+ resolution: "workbox-navigation-preload@npm:7.4.1"
dependencies:
- workbox-core: "npm:7.4.0"
- checksum: 10c0/9999d78683247dcbf1ca1e18664b3ecb19e8330c0ff9328403a513051d65eb3fc6578504dcc324fe603c7fb6d3d1054de1f55b4d2b9765236298cfebebefabe9
+ workbox-core: "npm:7.4.1"
+ checksum: 10c0/efe8fda736cc6afa1bf90eec65fccf206c179bda194264c5fa14063cd7d3b9bf399b960c22400212f83e48e3509cb6f586d1360710319049542cbe93254af5b9
languageName: node
linkType: hard
-"workbox-precaching@npm:7.4.0":
- version: 7.4.0
- resolution: "workbox-precaching@npm:7.4.0"
+"workbox-precaching@npm:7.4.1":
+ version: 7.4.1
+ resolution: "workbox-precaching@npm:7.4.1"
dependencies:
- workbox-core: "npm:7.4.0"
- workbox-routing: "npm:7.4.0"
- workbox-strategies: "npm:7.4.0"
- checksum: 10c0/df1d3ac590f56418ae80595c6c6a718f15ce3d6b9622ef43058d9d56f7374d95202ef2932e5ef5410d949f4f4366f5eccaf7956c32f579846fcc4bd83578c246
+ workbox-core: "npm:7.4.1"
+ workbox-routing: "npm:7.4.1"
+ workbox-strategies: "npm:7.4.1"
+ checksum: 10c0/e1f22df8945fe8cf3b77d8c8c9fb460d8e6469dbf0dba3d372a59e9649a6272024d6e63783ceb95bfed30f634ced524f1d0d3f21979fb6e48cdaa009e9be12c5
languageName: node
linkType: hard
-"workbox-range-requests@npm:7.4.0":
- version: 7.4.0
- resolution: "workbox-range-requests@npm:7.4.0"
+"workbox-range-requests@npm:7.4.1":
+ version: 7.4.1
+ resolution: "workbox-range-requests@npm:7.4.1"
dependencies:
- workbox-core: "npm:7.4.0"
- checksum: 10c0/7b945fab877bfc226fa8b7aa8e87b1d2179565314eff424672bfa70c43eec5dce99fe79109f548b6c6b054629f4464fb73085c3357f3c52cea6befe8d36f4fb4
+ workbox-core: "npm:7.4.1"
+ checksum: 10c0/fca4ca13a82056bac7b1599b103287b74819e8532500c5f229c27466681e243628df8cb9ed3660eff9dcb07b81b0b8bb5428271351a3502317423214fb5b5dc0
languageName: node
linkType: hard
-"workbox-recipes@npm:7.4.0":
- version: 7.4.0
- resolution: "workbox-recipes@npm:7.4.0"
+"workbox-recipes@npm:7.4.1":
+ version: 7.4.1
+ resolution: "workbox-recipes@npm:7.4.1"
dependencies:
- workbox-cacheable-response: "npm:7.4.0"
- workbox-core: "npm:7.4.0"
- workbox-expiration: "npm:7.4.0"
- workbox-precaching: "npm:7.4.0"
- workbox-routing: "npm:7.4.0"
- workbox-strategies: "npm:7.4.0"
- checksum: 10c0/2de53c679af2879921861d817b2f9b6a682aff0d871d38542519c16902ccfdfe7d5bf456f1e3a1f2fdb86824795f1794fec39a5b342a0d9866fccfd0e02a93a7
+ workbox-cacheable-response: "npm:7.4.1"
+ workbox-core: "npm:7.4.1"
+ workbox-expiration: "npm:7.4.1"
+ workbox-precaching: "npm:7.4.1"
+ workbox-routing: "npm:7.4.1"
+ workbox-strategies: "npm:7.4.1"
+ checksum: 10c0/5d238895f7a3c0791ee315bd7ad6dcb268acdd2328abb3e78e655cff591ceb89d466ecf63bea92007b88d5bb52074a6a7a16b813f718b1cce89fe0153bae6ad7
languageName: node
linkType: hard
-"workbox-routing@npm:7.4.0, workbox-routing@npm:^7.3.0":
- version: 7.4.0
- resolution: "workbox-routing@npm:7.4.0"
+"workbox-routing@npm:7.4.1, workbox-routing@npm:^7.3.0":
+ version: 7.4.1
+ resolution: "workbox-routing@npm:7.4.1"
dependencies:
- workbox-core: "npm:7.4.0"
- checksum: 10c0/62a2a3f24a5c54fc716e9275ccd032c5e35cf645d3bcf670c91531a2a8308025767a4ff799d36483eab50c007647748ab309ea1af76847ebcd78203ef4069ae6
+ workbox-core: "npm:7.4.1"
+ checksum: 10c0/11447d16c652de1667aa2be89634e426b615ff00f96d08d395a096afef07813a131d64c1f840344dd4210746800937437682a6bde7ef8a5233f371203c99d36a
languageName: node
linkType: hard
-"workbox-strategies@npm:7.4.0, workbox-strategies@npm:^7.3.0":
- version: 7.4.0
- resolution: "workbox-strategies@npm:7.4.0"
+"workbox-strategies@npm:7.4.1, workbox-strategies@npm:^7.3.0":
+ version: 7.4.1
+ resolution: "workbox-strategies@npm:7.4.1"
dependencies:
- workbox-core: "npm:7.4.0"
- checksum: 10c0/c25771af342ce10aee006d749e7adba4e77e7379b39cd96dbd05557f0f4968ff1ac88001022fb588ce2c105e5dfded321ce9f14344291c19ab753db37e6611f8
+ workbox-core: "npm:7.4.1"
+ checksum: 10c0/db96df6ef1260e281c580a963e68390e64df198b0684f37a693449af928edb3679ac97390dabe2ec11dc617a632cf4410a65854dd399bfdeaafbb74aea6532d8
languageName: node
linkType: hard
-"workbox-streams@npm:7.4.0":
- version: 7.4.0
- resolution: "workbox-streams@npm:7.4.0"
+"workbox-streams@npm:7.4.1":
+ version: 7.4.1
+ resolution: "workbox-streams@npm:7.4.1"
dependencies:
- workbox-core: "npm:7.4.0"
- workbox-routing: "npm:7.4.0"
- checksum: 10c0/213ac3cebb6f499fd2bedf28ae75523c8193ca6c7ace797227347775811dba80551dd645fc0bf04fb1b36eea2cf030e4ce3648d886cc0e8017363bd3806c84f3
+ workbox-core: "npm:7.4.1"
+ workbox-routing: "npm:7.4.1"
+ checksum: 10c0/f487b6e2f17119057b3f4265a0454de2304e5378ddfc95b1f7e4f660aab6f93f4b0ede86fd0c33fbcae3a077162020ea07846cb5fc69d7c71c6ddf5ad6f3b1da
languageName: node
linkType: hard
-"workbox-sw@npm:7.4.0":
- version: 7.4.0
- resolution: "workbox-sw@npm:7.4.0"
- checksum: 10c0/f87198a9f40da34e13f896ea308c5feedf9caf3ba10b2d40c301850396edf17cdba060775b224fc07697356858816af9912997b751041a715b6934ab14b35300
+"workbox-sw@npm:7.4.1":
+ version: 7.4.1
+ resolution: "workbox-sw@npm:7.4.1"
+ checksum: 10c0/cef8ebffcef9e8f055d7f51273c8fcb9981b6c9de272c4d37b17a11cef5df55d05f814bda3d8daab6b7e207a484865cb08a579e0ba7341ed66ecce34acb3cfc3
languageName: node
linkType: hard
-"workbox-window@npm:7.4.0, workbox-window@npm:^7.3.0, workbox-window@npm:^7.4.0":
- version: 7.4.0
- resolution: "workbox-window@npm:7.4.0"
+"workbox-window@npm:7.4.1, workbox-window@npm:^7.3.0, workbox-window@npm:^7.4.1":
+ version: 7.4.1
+ resolution: "workbox-window@npm:7.4.1"
dependencies:
"@types/trusted-types": "npm:^2.0.2"
- workbox-core: "npm:7.4.0"
- checksum: 10c0/6013d1019fe3bbb06d8e572b6a4ccfec6fc0879448337997c193fde08738c2fa420a4dca385b00220ef1feac3539e82b01896c85f77cd8c45cff379e7a6cb1d5
+ workbox-core: "npm:7.4.1"
+ checksum: 10c0/1c4db303d2f71cccd16e12ced9c85e2a2d16a00e3992bade92e990bcd1e6c8a49bc2021261e62145ba098065a691972a763f958d35f07232ee61e8d26555699b
languageName: node
linkType: hard