mirror of
https://github.com/glitch-soc/mastodon.git
synced 2025-12-11 06:20:42 +00:00
Merge commit '1ae3b4672bffbc4aaf26f60c7063d6901239de5d' into glitch-soc/merge-upstream
This commit is contained in:
2
Gemfile
2
Gemfile
@@ -114,7 +114,7 @@ group :opentelemetry do
|
||||
gem 'opentelemetry-instrumentation-http', '~> 0.27.0', require: false
|
||||
gem 'opentelemetry-instrumentation-http_client', '~> 0.26.0', require: false
|
||||
gem 'opentelemetry-instrumentation-net_http', '~> 0.26.0', require: false
|
||||
gem 'opentelemetry-instrumentation-pg', '~> 0.33.0', require: false
|
||||
gem 'opentelemetry-instrumentation-pg', '~> 0.34.0', require: false
|
||||
gem 'opentelemetry-instrumentation-rack', '~> 0.29.0', require: false
|
||||
gem 'opentelemetry-instrumentation-rails', '~> 0.39.0', require: false
|
||||
gem 'opentelemetry-instrumentation-redis', '~> 0.28.0', require: false
|
||||
|
||||
22
Gemfile.lock
22
Gemfile.lock
@@ -96,7 +96,7 @@ GEM
|
||||
ast (2.4.3)
|
||||
attr_required (1.0.2)
|
||||
aws-eventstream (1.4.0)
|
||||
aws-partitions (1.1186.0)
|
||||
aws-partitions (1.1190.0)
|
||||
aws-sdk-core (3.239.2)
|
||||
aws-eventstream (~> 1, >= 1.3.0)
|
||||
aws-partitions (~> 1, >= 1.992.0)
|
||||
@@ -105,10 +105,10 @@ GEM
|
||||
bigdecimal
|
||||
jmespath (~> 1, >= 1.6.1)
|
||||
logger
|
||||
aws-sdk-kms (1.117.0)
|
||||
aws-sdk-core (~> 3, >= 3.234.0)
|
||||
aws-sdk-kms (1.118.0)
|
||||
aws-sdk-core (~> 3, >= 3.239.1)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sdk-s3 (1.205.0)
|
||||
aws-sdk-s3 (1.206.0)
|
||||
aws-sdk-core (~> 3, >= 3.234.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.5)
|
||||
@@ -234,7 +234,7 @@ GEM
|
||||
excon (1.3.0)
|
||||
logger
|
||||
fabrication (3.0.0)
|
||||
faker (3.5.2)
|
||||
faker (3.5.3)
|
||||
i18n (>= 1.8.11, < 2)
|
||||
faraday (2.14.0)
|
||||
faraday-net_http (>= 2.0, < 3.5)
|
||||
@@ -518,7 +518,7 @@ GEM
|
||||
opentelemetry-semantic_conventions
|
||||
opentelemetry-helpers-sql (0.3.0)
|
||||
opentelemetry-api (~> 1.7)
|
||||
opentelemetry-helpers-sql-obfuscation (0.5.0)
|
||||
opentelemetry-helpers-sql-processor (0.3.1)
|
||||
opentelemetry-common (~> 0.21)
|
||||
opentelemetry-instrumentation-action_mailer (0.6.1)
|
||||
opentelemetry-instrumentation-active_support (~> 0.10)
|
||||
@@ -552,9 +552,9 @@ GEM
|
||||
opentelemetry-instrumentation-base (~> 0.25)
|
||||
opentelemetry-instrumentation-net_http (0.26.1)
|
||||
opentelemetry-instrumentation-base (~> 0.25)
|
||||
opentelemetry-instrumentation-pg (0.33.0)
|
||||
opentelemetry-instrumentation-pg (0.34.1)
|
||||
opentelemetry-helpers-sql
|
||||
opentelemetry-helpers-sql-obfuscation
|
||||
opentelemetry-helpers-sql-processor
|
||||
opentelemetry-instrumentation-base (~> 0.25)
|
||||
opentelemetry-instrumentation-rack (0.29.0)
|
||||
opentelemetry-instrumentation-base (~> 0.25)
|
||||
@@ -569,7 +569,7 @@ GEM
|
||||
opentelemetry-instrumentation-concurrent_ruby (~> 0.23)
|
||||
opentelemetry-instrumentation-redis (0.28.0)
|
||||
opentelemetry-instrumentation-base (~> 0.25)
|
||||
opentelemetry-instrumentation-sidekiq (0.28.0)
|
||||
opentelemetry-instrumentation-sidekiq (0.28.1)
|
||||
opentelemetry-instrumentation-base (~> 0.25)
|
||||
opentelemetry-registry (0.4.0)
|
||||
opentelemetry-api (~> 1.1)
|
||||
@@ -809,7 +809,7 @@ GEM
|
||||
securerandom (0.4.1)
|
||||
shoulda-matchers (7.0.1)
|
||||
activesupport (>= 7.1)
|
||||
sidekiq (8.0.9)
|
||||
sidekiq (8.0.10)
|
||||
connection_pool (>= 2.5.0)
|
||||
json (>= 2.9.0)
|
||||
logger (>= 1.6.2)
|
||||
@@ -1022,7 +1022,7 @@ DEPENDENCIES
|
||||
opentelemetry-instrumentation-http (~> 0.27.0)
|
||||
opentelemetry-instrumentation-http_client (~> 0.26.0)
|
||||
opentelemetry-instrumentation-net_http (~> 0.26.0)
|
||||
opentelemetry-instrumentation-pg (~> 0.33.0)
|
||||
opentelemetry-instrumentation-pg (~> 0.34.0)
|
||||
opentelemetry-instrumentation-rack (~> 0.29.0)
|
||||
opentelemetry-instrumentation-rails (~> 0.39.0)
|
||||
opentelemetry-instrumentation-redis (~> 0.28.0)
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
import type { FC } from 'react';
|
||||
import { useContext, useEffect, useState } from 'react';
|
||||
|
||||
import classNames from 'classnames';
|
||||
|
||||
import { EMOJI_TYPE_CUSTOM } from '@/mastodon/features/emoji/constants';
|
||||
import { useEmojiAppState } from '@/mastodon/features/emoji/mode';
|
||||
import { unicodeHexToUrl } from '@/mastodon/features/emoji/normalize';
|
||||
import {
|
||||
emojiToInversionClassName,
|
||||
unicodeHexToUrl,
|
||||
} from '@/mastodon/features/emoji/normalize';
|
||||
import {
|
||||
isStateLoaded,
|
||||
loadEmojiDataToState,
|
||||
@@ -41,6 +46,9 @@ export const Emoji: FC<EmojiProps> = ({
|
||||
}, [appState.currentLocale, state]);
|
||||
|
||||
const animate = useContext(AnimateEmojiContext);
|
||||
|
||||
const inversionClass = emojiToInversionClassName(code);
|
||||
|
||||
const fallback = showFallback ? code : null;
|
||||
|
||||
// If the code is invalid or we otherwise know it's not valid, show the fallback.
|
||||
@@ -79,7 +87,7 @@ export const Emoji: FC<EmojiProps> = ({
|
||||
src={src}
|
||||
alt={state.data.unicode}
|
||||
title={state.data.label}
|
||||
className='emojione'
|
||||
className={classNames('emojione', inversionClass)}
|
||||
loading='lazy'
|
||||
/>
|
||||
);
|
||||
|
||||
@@ -116,3 +116,29 @@ export const EMOJIS_WITH_LIGHT_BORDER = [
|
||||
'🪽', // 1FAE8
|
||||
'🪿', // 1FABF
|
||||
];
|
||||
|
||||
export const EMOJIS_REQUIRING_INVERSION_IN_LIGHT_MODE = [
|
||||
'⛓️', // 26D3-FE0F
|
||||
];
|
||||
|
||||
export const EMOJIS_REQUIRING_INVERSION_IN_DARK_MODE = [
|
||||
'🔜', // 1F51C
|
||||
'🔙', // 1F519
|
||||
'🔛', // 1F51B
|
||||
'🔝', // 1F51D
|
||||
'🔚', // 1F51A
|
||||
'©️', // 00A9 FE0F
|
||||
'➰', // 27B0
|
||||
'💱', // 1F4B1
|
||||
'✔️', // 2714 FE0F
|
||||
'➗', // 2797
|
||||
'💲', // 1F4B2
|
||||
'➖', // 2796
|
||||
'✖️', // 2716 FE0F
|
||||
'➕', // 2795
|
||||
'®️', // 00AE FE0F
|
||||
'🕷️', // 1F577 FE0F
|
||||
'📞', // 1F4DE
|
||||
'™️', // 2122 FE0F
|
||||
'〰️', // 3030 FE0F
|
||||
];
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import Trie from 'substring-trie';
|
||||
|
||||
import { getUserTheme, isDarkMode } from '@/mastodon/utils/theme';
|
||||
import { assetHost } from 'mastodon/utils/config';
|
||||
|
||||
import { autoPlayGif } from '../../initial_state';
|
||||
@@ -97,9 +98,9 @@ const emojifyTextNode = (node, customEmojis) => {
|
||||
const { filename, shortCode } = unicodeMapping[unicode_emoji];
|
||||
const title = shortCode ? `:${shortCode}:` : '';
|
||||
|
||||
const isSystemTheme = !!document.body?.classList.contains('theme-system');
|
||||
const isSystemTheme = getUserTheme() === 'system';
|
||||
|
||||
const theme = (isSystemTheme || document.body?.classList.contains('theme-mastodon-light')) ? 'light' : 'dark';
|
||||
const theme = (isSystemTheme || !isDarkMode()) ? 'light' : 'dark';
|
||||
|
||||
const imageFilename = emojiFilename(filename, theme);
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
import { createAppSelector, useAppSelector } from '@/mastodon/store';
|
||||
import { isDevelopment } from '@/mastodon/utils/environment';
|
||||
import { isDarkMode } from '@/mastodon/utils/theme';
|
||||
|
||||
import {
|
||||
EMOJI_MODE_NATIVE,
|
||||
@@ -27,7 +28,7 @@ export function useEmojiAppState(): EmojiAppState {
|
||||
currentLocale: locale,
|
||||
locales: [locale],
|
||||
mode,
|
||||
darkTheme: document.body.classList.contains('theme-default'),
|
||||
darkTheme: isDarkMode(),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,8 @@ import {
|
||||
SKIN_TONE_CODES,
|
||||
EMOJIS_WITH_DARK_BORDER,
|
||||
EMOJIS_WITH_LIGHT_BORDER,
|
||||
EMOJIS_REQUIRING_INVERSION_IN_LIGHT_MODE,
|
||||
EMOJIS_REQUIRING_INVERSION_IN_DARK_MODE,
|
||||
} from './constants';
|
||||
import type { CustomEmojiMapArg, ExtraCustomEmojiMap } from './types';
|
||||
|
||||
@@ -150,6 +152,16 @@ export function twemojiToUnicodeInfo(
|
||||
return hexNumbersToString(mappedCodes);
|
||||
}
|
||||
|
||||
export function emojiToInversionClassName(emoji: string): string | null {
|
||||
if (EMOJIS_REQUIRING_INVERSION_IN_DARK_MODE.includes(emoji)) {
|
||||
return 'invert-on-dark';
|
||||
}
|
||||
if (EMOJIS_REQUIRING_INVERSION_IN_LIGHT_MODE.includes(emoji)) {
|
||||
return 'invert-on-light';
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
export function cleanExtraEmojis(extraEmojis?: CustomEmojiMapArg) {
|
||||
if (!extraEmojis) {
|
||||
return null;
|
||||
|
||||
@@ -48,8 +48,10 @@ const handleIframeUrl = (html: string, url: string, providerName: string) => {
|
||||
iframeUrl.searchParams.set('autoplay', '1');
|
||||
iframeUrl.searchParams.set('auto_play', '1');
|
||||
|
||||
if (startTime && providerName === 'YouTube')
|
||||
iframeUrl.searchParams.set('start', startTime);
|
||||
if (providerName === 'YouTube') {
|
||||
iframeUrl.searchParams.set('start', startTime ?? '');
|
||||
iframe.referrerPolicy = 'strict-origin-when-cross-origin';
|
||||
}
|
||||
|
||||
iframe.src = iframeUrl.href;
|
||||
|
||||
|
||||
@@ -135,6 +135,7 @@
|
||||
"annual_report.summary.new_posts.new_posts": "новыя допісы",
|
||||
"annual_report.summary.percentile.text": "<topLabel>Гэта падымае Вас у топ</topLabel><percentage></percentage><bottomLabel> карыстальнікаў {domain}.</bottomLabel>",
|
||||
"annual_report.summary.percentile.we_wont_tell_bernie": "КДБ пра гэта не даведаецца.",
|
||||
"annual_report.summary.share_message": "Мой архетып – {archetype}!",
|
||||
"annual_report.summary.thanks": "Дзякуй за ўдзел у Mastodon!",
|
||||
"attachments_list.unprocessed": "(неапрацаваны)",
|
||||
"audio.hide": "Схаваць аўдыя",
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
"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 beim nächsten Mal nicht mehr",
|
||||
"boost_modal.combo": "Mit {combo} erscheint dieses Fenster nicht mehr",
|
||||
"boost_modal.reblog": "Beitrag teilen?",
|
||||
"boost_modal.undo_reblog": "Beitrag nicht mehr teilen?",
|
||||
"bundle_column_error.copy_stacktrace": "Fehlerbericht kopieren",
|
||||
@@ -200,7 +200,7 @@
|
||||
"column_search.cancel": "Abbrechen",
|
||||
"community.column_settings.local_only": "Nur lokal",
|
||||
"community.column_settings.media_only": "Nur Beiträge mit Medien",
|
||||
"community.column_settings.remote_only": "Nur andere Mastodon-Server",
|
||||
"community.column_settings.remote_only": "Nur andere Server im Fediverse",
|
||||
"compose.error.blank_post": "Beitrag muss einen Inhalt haben.",
|
||||
"compose.language.change": "Sprache festlegen",
|
||||
"compose.language.search": "Sprachen suchen …",
|
||||
@@ -213,13 +213,13 @@
|
||||
"compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Andere können dir folgen und deine Beiträge sehen, die nur für Follower bestimmt sind.",
|
||||
"compose_form.lock_disclaimer.lock": "geschützt",
|
||||
"compose_form.placeholder": "Was gibts Neues?",
|
||||
"compose_form.poll.duration": "Umfragedauer",
|
||||
"compose_form.poll.duration": "Laufzeit",
|
||||
"compose_form.poll.multiple": "Mehrfachauswahl",
|
||||
"compose_form.poll.option_placeholder": "{number}. Auswahl",
|
||||
"compose_form.poll.single": "Einfachauswahl",
|
||||
"compose_form.poll.switch_to_multiple": "Mehrfachauswahl erlauben",
|
||||
"compose_form.poll.switch_to_single": "Nur Einfachauswahl erlauben",
|
||||
"compose_form.poll.type": "Art",
|
||||
"compose_form.poll.type": "Typ",
|
||||
"compose_form.publish": "Veröffentlichen",
|
||||
"compose_form.reply": "Antworten",
|
||||
"compose_form.save_changes": "Aktualisieren",
|
||||
@@ -232,7 +232,7 @@
|
||||
"confirmations.delete.message": "Möchtest du diesen Beitrag wirklich löschen?",
|
||||
"confirmations.delete.title": "Beitrag löschen?",
|
||||
"confirmations.delete_list.confirm": "Löschen",
|
||||
"confirmations.delete_list.message": "Möchtest du diese Liste für immer löschen?",
|
||||
"confirmations.delete_list.message": "Bist du dir sicher, dass du diese Liste endgültig löschen möchtest?",
|
||||
"confirmations.delete_list.title": "Liste löschen?",
|
||||
"confirmations.discard_draft.confirm": "Verwerfen und fortfahren",
|
||||
"confirmations.discard_draft.edit.cancel": "Bearbeitung fortsetzen",
|
||||
@@ -247,31 +247,31 @@
|
||||
"confirmations.follow_to_list.message": "Du musst {name} folgen, um das Profil zu einer Liste hinzufügen zu können.",
|
||||
"confirmations.follow_to_list.title": "Profil folgen?",
|
||||
"confirmations.logout.confirm": "Abmelden",
|
||||
"confirmations.logout.message": "Bist du sicher, dass du dich abmelden möchtest?",
|
||||
"confirmations.logout.message": "Möchtest du dich wirklich ausloggen?",
|
||||
"confirmations.logout.title": "Abmelden?",
|
||||
"confirmations.missing_alt_text.confirm": "Bildbeschreibung hinzufügen",
|
||||
"confirmations.missing_alt_text.message": "Dein Beitrag enthält Medien ohne Bildbeschreibung. Mit ALT-Texten erreichst Du auch Menschen, die blind oder sehbehindert sind.",
|
||||
"confirmations.missing_alt_text.secondary": "Trotzdem veröffentlichen",
|
||||
"confirmations.missing_alt_text.title": "Bildbeschreibung hinzufügen?",
|
||||
"confirmations.mute.confirm": "Stummschalten",
|
||||
"confirmations.private_quote_notify.cancel": "Zurück zum Bearbeiten",
|
||||
"confirmations.private_quote_notify.cancel": "Zurück zur Bearbeitung",
|
||||
"confirmations.private_quote_notify.confirm": "Beitrag veröffentlichen",
|
||||
"confirmations.private_quote_notify.do_not_show_again": "Diesen Hinweis nicht mehr anzeigen",
|
||||
"confirmations.private_quote_notify.message": "Dein Beitrag wird von dem zitierten sowie den erwähnten Profilen gesehen werden können, auch wenn sie dir nicht folgen.",
|
||||
"confirmations.private_quote_notify.title": "Mit Followern und erwähnten Profilen teilen?",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "Nicht mehr anzeigen",
|
||||
"confirmations.quiet_post_quote_info.dismiss": "Nicht erneut erinnern",
|
||||
"confirmations.quiet_post_quote_info.got_it": "Verstanden",
|
||||
"confirmations.quiet_post_quote_info.message": "Beim Zitieren eines Beitrags, dessen Sichtbarkeit „Öffentlich (still)“ ist, wird auch dein Beitrag, der das Zitat enthält, aus den Trends und öffentlichen Timelines ausgeblendet.",
|
||||
"confirmations.quiet_post_quote_info.title": "Zitieren eines Beitrags mit der Sichtbarkeit „Öffentlich (still)“",
|
||||
"confirmations.redraft.confirm": "Löschen und neu erstellen",
|
||||
"confirmations.redraft.message": "Möchtest du diesen Beitrag wirklich löschen und neu verfassen? Alle Favoriten sowie die bisher geteilten Beiträge werden verloren gehen und Antworten auf den ursprünglichen Beitrag verlieren den Zusammenhang.",
|
||||
"confirmations.redraft.title": "Beitrag löschen und neu verfassen?",
|
||||
"confirmations.redraft.title": "Beitrag löschen & neu verfassen?",
|
||||
"confirmations.remove_from_followers.confirm": "Follower entfernen",
|
||||
"confirmations.remove_from_followers.message": "{name} wird dir nicht länger folgen. Bist du dir sicher?",
|
||||
"confirmations.remove_from_followers.title": "Follower entfernen?",
|
||||
"confirmations.revoke_quote.confirm": "Zitat entfernen",
|
||||
"confirmations.revoke_quote.message": "Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"confirmations.revoke_quote.title": "Zitieren meines Beitrags entfernen?",
|
||||
"confirmations.revoke_quote.title": "Mein Zitat aus diesem Beitrag entfernen?",
|
||||
"confirmations.unblock.confirm": "Blockierung aufheben",
|
||||
"confirmations.unblock.title": "Blockierung von {name} aufheben?",
|
||||
"confirmations.unfollow.confirm": "Entfolgen",
|
||||
@@ -309,7 +309,7 @@
|
||||
"domain_pill.activitypub_lets_connect": "Somit kannst du dich nicht nur auf Mastodon mit Leuten verbinden und mit ihnen interagieren, sondern über alle sozialen Apps hinweg.",
|
||||
"domain_pill.activitypub_like_language": "ActivityPub ist sozusagen die Sprache, die Mastodon mit anderen sozialen Netzwerken spricht.",
|
||||
"domain_pill.server": "Server",
|
||||
"domain_pill.their_handle": "Die vollständige Adresse:",
|
||||
"domain_pill.their_handle": "Vollständige Adresse:",
|
||||
"domain_pill.their_server": "Die digitale Heimat, in der sich alle Beiträge dieses Profils befinden.",
|
||||
"domain_pill.their_username": "Die eindeutige Identifizierung auf einem Server. Es ist möglich, denselben Profilnamen auf verschiedenen Servern im Fediverse zu finden.",
|
||||
"domain_pill.username": "Profilname",
|
||||
@@ -327,7 +327,7 @@
|
||||
"emoji_button.custom": "Spezielle Emojis dieses Servers",
|
||||
"emoji_button.flags": "Flaggen",
|
||||
"emoji_button.food": "Essen & Trinken",
|
||||
"emoji_button.label": "Emoji einfügen",
|
||||
"emoji_button.label": "Emoji hinzufügen",
|
||||
"emoji_button.nature": "Natur",
|
||||
"emoji_button.not_found": "Keine passenden Emojis gefunden",
|
||||
"emoji_button.objects": "Gegenstände",
|
||||
@@ -349,8 +349,8 @@
|
||||
"empty_column.community": "Die lokale Timeline ist leer. Schreibe einen öffentlichen Beitrag, um den Stein ins Rollen zu bringen!",
|
||||
"empty_column.direct": "Du hast noch keine privaten Erwähnungen. Sobald du eine sendest oder erhältst, wird sie hier erscheinen.",
|
||||
"empty_column.disabled_feed": "Diesen Feed haben deine Server-Administrator*innen deaktiviert.",
|
||||
"empty_column.domain_blocks": "Du hast noch keine Domains blockiert.",
|
||||
"empty_column.explore_statuses": "Momentan ist nichts im Trend. Schau später wieder vorbei!",
|
||||
"empty_column.domain_blocks": "Du hast bisher keine Domains blockiert.",
|
||||
"empty_column.explore_statuses": "Momentan trendet nichts. Schau später wieder vorbei!",
|
||||
"empty_column.favourited_statuses": "Du hast noch keine Beiträge favorisiert. Sobald du einen favorisierst, wird er hier erscheinen.",
|
||||
"empty_column.favourites": "Diesen Beitrag hat bisher noch niemand favorisiert. Sobald es jemand tut, wird das Profil hier erscheinen.",
|
||||
"empty_column.follow_requests": "Es liegen derzeit keine Follower-Anfragen vor. Sobald du eine erhältst, wird sie hier erscheinen.",
|
||||
@@ -458,7 +458,7 @@
|
||||
"hints.profiles.see_more_posts": "Weitere Beiträge auf {domain} ansehen",
|
||||
"home.column_settings.show_quotes": "Zitierte Beiträge anzeigen",
|
||||
"home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
|
||||
"home.column_settings.show_replies": "Antworten anzeigen",
|
||||
"home.column_settings.show_replies": "Antworten zu Beiträgen anzeigen",
|
||||
"home.hide_announcements": "Ankündigungen ausblenden",
|
||||
"home.pending_critical_update.body": "Bitte aktualisiere deinen Mastodon-Server so schnell wie möglich!",
|
||||
"home.pending_critical_update.link": "Updates ansehen",
|
||||
|
||||
@@ -135,6 +135,7 @@
|
||||
"annual_report.summary.new_posts.new_posts": "new posts",
|
||||
"annual_report.summary.percentile.text": "<topLabel>That puts you in the top</topLabel><percentage></percentage><bottomLabel>of {domain} users.</bottomLabel>",
|
||||
"annual_report.summary.percentile.we_wont_tell_bernie": "We won't tell Bernie.",
|
||||
"annual_report.summary.share_message": "I got the {archetype} archetype!",
|
||||
"annual_report.summary.thanks": "Thanks for being part of Mastodon!",
|
||||
"attachments_list.unprocessed": "(unprocessed)",
|
||||
"audio.hide": "Hide audio",
|
||||
|
||||
@@ -626,7 +626,7 @@
|
||||
"notification.follow_request.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} ont demandé à vous suivre",
|
||||
"notification.label.mention": "Mention",
|
||||
"notification.label.private_mention": "Mention privée",
|
||||
"notification.label.private_reply": "Répondre en privé",
|
||||
"notification.label.private_reply": "Réponse privée",
|
||||
"notification.label.quote": "{name} a cité votre publication",
|
||||
"notification.label.reply": "Réponse",
|
||||
"notification.mention": "Mention",
|
||||
|
||||
@@ -626,7 +626,7 @@
|
||||
"notification.follow_request.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} ont demandé à vous suivre",
|
||||
"notification.label.mention": "Mention",
|
||||
"notification.label.private_mention": "Mention privée",
|
||||
"notification.label.private_reply": "Répondre en privé",
|
||||
"notification.label.private_reply": "Réponse privée",
|
||||
"notification.label.quote": "{name} a cité votre publication",
|
||||
"notification.label.reply": "Réponse",
|
||||
"notification.mention": "Mention",
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
"account.follows_you": "Leanann tú",
|
||||
"account.go_to_profile": "Téigh go dtí próifíl",
|
||||
"account.hide_reblogs": "Folaigh moltaí ó @{name}",
|
||||
"account.in_memoriam": "Cuimhneachán.",
|
||||
"account.in_memoriam": "Ón tseanaimsir.",
|
||||
"account.joined_short": "Cláraithe",
|
||||
"account.languages": "Athraigh teangacha foscríofa",
|
||||
"account.link_verified_on": "Seiceáladh úinéireacht an naisc seo ar {date}",
|
||||
@@ -135,6 +135,7 @@
|
||||
"annual_report.summary.new_posts.new_posts": "postanna nua",
|
||||
"annual_report.summary.percentile.text": "<topLabel>Cuireann sé sin i mbarr</topLabel><percentage></percentage><bottomLabel> úsáideoirí {domain}.</bottomLabel> thú",
|
||||
"annual_report.summary.percentile.we_wont_tell_bernie": "Ní inseoidh muid do Bernie.",
|
||||
"annual_report.summary.share_message": "Fuair mé an t-archetíopa {archetype}!",
|
||||
"annual_report.summary.thanks": "Go raibh maith agat as a bheith mar chuid de Mastodon!",
|
||||
"attachments_list.unprocessed": "(neamhphróiseáilte)",
|
||||
"audio.hide": "Cuir fuaim i bhfolach",
|
||||
|
||||
@@ -135,6 +135,7 @@
|
||||
"annual_report.summary.new_posts.new_posts": "novas publicacións",
|
||||
"annual_report.summary.percentile.text": "<topLabel>Sitúante no top</topLabel><percentage></percentage><bottomLabel> das usuarias de {domain}.</bottomLabel>",
|
||||
"annual_report.summary.percentile.we_wont_tell_bernie": "Moito tes que contarnos!",
|
||||
"annual_report.summary.share_message": "Resulta que son… {archetype}!",
|
||||
"annual_report.summary.thanks": "Grazas por ser parte de Mastodon!",
|
||||
"attachments_list.unprocessed": "(sen procesar)",
|
||||
"audio.hide": "Agochar audio",
|
||||
|
||||
@@ -113,6 +113,10 @@
|
||||
"alt_text_modal.describe_for_people_with_visual_impairments": "Descrivi questo per le persone con disabilità visive…",
|
||||
"alt_text_modal.done": "Fatto",
|
||||
"announcement.announcement": "Annuncio",
|
||||
"annual_report.announcement.action_build": "Costruisci il mio Wrapstodon",
|
||||
"annual_report.announcement.action_view": "Visualizza il mio Wrapstodon",
|
||||
"annual_report.announcement.description": "Scopri di più sul tuo coinvolgimento su Mastodon nell'ultimo anno.",
|
||||
"annual_report.announcement.title": "Wrapstodon {year} è arrivato",
|
||||
"annual_report.summary.archetype.booster": "Cacciatore/trice di tendenze",
|
||||
"annual_report.summary.archetype.lurker": "L'osservatore/trice",
|
||||
"annual_report.summary.archetype.oracle": "L'oracolo",
|
||||
@@ -131,6 +135,7 @@
|
||||
"annual_report.summary.new_posts.new_posts": "nuovi post",
|
||||
"annual_report.summary.percentile.text": "<topLabel>Ciò ti colloca in cima</topLabel><percentage></percentage><bottomLabel>agli utenti di {domain}.</bottomLabel>",
|
||||
"annual_report.summary.percentile.we_wont_tell_bernie": "Non lo diremo a Bernie.",
|
||||
"annual_report.summary.share_message": "Ho ottenuto l'archetipo: {archetype}!",
|
||||
"annual_report.summary.thanks": "Grazie per far parte di Mastodon!",
|
||||
"attachments_list.unprocessed": "(non elaborato)",
|
||||
"audio.hide": "Nascondi audio",
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"about.powered_by": "Decentralizuota socialinė medija, veikianti pagal „{mastodon}“",
|
||||
"about.rules": "Serverio taisyklės",
|
||||
"account.account_note_header": "Asmeninė pastaba",
|
||||
"account.add_or_remove_from_list": "Pridėti arba pašalinti iš sąrašų",
|
||||
"account.add_or_remove_from_list": "Įtraukti arba šalinti iš sąrašų",
|
||||
"account.badges.bot": "Automatizuotas",
|
||||
"account.badges.group": "Grupė",
|
||||
"account.block": "Blokuoti @{name}",
|
||||
@@ -135,7 +135,7 @@
|
||||
"annual_report.summary.new_posts.new_posts": "nauji įrašai",
|
||||
"annual_report.summary.percentile.text": "<topLabel>Tai reiškia, kad esate tarp</topLabel><percentage></percentage><bottomLabel>populiariausių {domain} naudotojų.</bottomLabel>",
|
||||
"annual_report.summary.percentile.we_wont_tell_bernie": "Mes nesakysime Bernie.",
|
||||
"annual_report.summary.share_message": "Aš gavau {archetype}!",
|
||||
"annual_report.summary.share_message": "Aš gavau „{archetype}“!",
|
||||
"annual_report.summary.thanks": "Dėkojame, kad esate „Mastodon“ dalis!",
|
||||
"attachments_list.unprocessed": "(neapdorotas)",
|
||||
"audio.hide": "Slėpti garsą",
|
||||
@@ -921,7 +921,7 @@
|
||||
"status.more": "Daugiau",
|
||||
"status.mute": "Nutildyti @{name}",
|
||||
"status.mute_conversation": "Nutildyti pokalbį",
|
||||
"status.open": "Išplėsti šį įrašą",
|
||||
"status.open": "Išskleisti šį įrašą",
|
||||
"status.pin": "Prisegti prie profilio",
|
||||
"status.quote": "Paminėjimai",
|
||||
"status.quote.cancel": "Atšaukti paminėjimą",
|
||||
@@ -1016,14 +1016,21 @@
|
||||
"video.pause": "Pristabdyti",
|
||||
"video.play": "Leisti",
|
||||
"video.skip_backward": "Praleisti atgal",
|
||||
"video.skip_forward": "Praleisti į priekį",
|
||||
"video.unmute": "Atšaukti nutildymą",
|
||||
"video.volume_down": "Patildyti",
|
||||
"video.volume_up": "Pagarsinti",
|
||||
"visibility_modal.button_title": "Nustatyti matomumą",
|
||||
"visibility_modal.direct_quote_warning.text": "Jei išsaugosite dabartinius nustatymus, įterpta citata bus konvertuota į nuorodą.",
|
||||
"visibility_modal.direct_quote_warning.title": "Cituojami įrašai negali būti įterpiami į privačius paminėjimus",
|
||||
"visibility_modal.helper.direct_quoting": "Privatūs paminėjimai, parašyti platformoje „Mastodon“, negali būti cituojami kitų.",
|
||||
"visibility_modal.helper.privacy_private_self_quote": "Privačių įrašų paminėjimai negali būti skelbiami viešai.",
|
||||
"visibility_modal.helper.private_quoting": "Tik sekėjams skirti įrašai, parašyti platformoje „Mastodon“, negali būti cituojami kitų.",
|
||||
"visibility_modal.helper.unlisted_quoting": "Kai žmonės jus cituos, jų įrašai taip pat bus paslėpti iš populiariausių naujienų srauto.",
|
||||
"visibility_modal.privacy_label": "Matomumas",
|
||||
"visibility_modal.quote_followers": "Tik sekėjai",
|
||||
"visibility_modal.quote_label": "Kas gali cituoti",
|
||||
"visibility_modal.quote_nobody": "Tik aš",
|
||||
"visibility_modal.quote_public": "Visi"
|
||||
"visibility_modal.quote_public": "Visi",
|
||||
"visibility_modal.save": "Išsaugoti"
|
||||
}
|
||||
|
||||
@@ -135,6 +135,7 @@
|
||||
"annual_report.summary.new_posts.new_posts": "yeni gönderiler",
|
||||
"annual_report.summary.percentile.text": "<bottomLabel>{domain} kullanıcılarının</bottomLabel><percentage></percentage><topLabel>üst dilimindesiniz</topLabel>",
|
||||
"annual_report.summary.percentile.we_wont_tell_bernie": "Bernie'ye söylemeyiz.",
|
||||
"annual_report.summary.share_message": "{archetype} arketipindeyim!",
|
||||
"annual_report.summary.thanks": "Mastodon'un bir parçası olduğunuz için teşekkürler!",
|
||||
"attachments_list.unprocessed": "(işlenmemiş)",
|
||||
"audio.hide": "Sesi gizle",
|
||||
|
||||
@@ -42,13 +42,6 @@ interface AnnualReportV2 {
|
||||
time_series: TimeSeriesMonth[];
|
||||
top_hashtags: NameAndCount[];
|
||||
top_statuses: TopStatuses;
|
||||
most_used_apps: NameAndCount[];
|
||||
type_distribution: {
|
||||
total: number;
|
||||
reblogs: number;
|
||||
replies: number;
|
||||
standalone: number;
|
||||
};
|
||||
}
|
||||
|
||||
export type AnnualReport = {
|
||||
|
||||
@@ -530,7 +530,7 @@ export const composeReducer = (state = initialState, action) => {
|
||||
map.set('sensitive', action.status.get('sensitive'));
|
||||
map.set('language', action.status.get('language'));
|
||||
map.set('id', null);
|
||||
map.set('quoted_status_id', action.status.getIn(['quote', 'quoted_status']));
|
||||
map.set('quoted_status_id', action.status.getIn(['quote', 'quoted_status'], null));
|
||||
// Mastodon-authored posts can be expected to have at most one automatic approval policy
|
||||
map.set('quote_policy', action.status.getIn(['quote_approval', 'automatic', 0]) || 'nobody');
|
||||
|
||||
@@ -567,7 +567,7 @@ export const composeReducer = (state = initialState, action) => {
|
||||
map.set('idempotencyKey', uuid());
|
||||
map.set('sensitive', action.status.get('sensitive'));
|
||||
map.set('language', action.status.get('language'));
|
||||
map.set('quoted_status_id', action.status.getIn(['quote', 'quoted_status']));
|
||||
map.set('quoted_status_id', action.status.getIn(['quote', 'quoted_status'], null));
|
||||
// Mastodon-authored posts can be expected to have at most one automatic approval policy
|
||||
map.set('quote_policy', action.status.getIn(['quote_approval', 'automatic', 0]) || 'nobody');
|
||||
|
||||
|
||||
13
app/javascript/mastodon/utils/theme.ts
Normal file
13
app/javascript/mastodon/utils/theme.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
export function getUserTheme() {
|
||||
const { userTheme } = document.documentElement.dataset;
|
||||
return userTheme;
|
||||
}
|
||||
|
||||
export function isDarkMode() {
|
||||
const { userTheme } = document.documentElement.dataset;
|
||||
return (
|
||||
(userTheme === 'system' &&
|
||||
window.matchMedia('(prefers-color-scheme: dark)').matches) ||
|
||||
userTheme !== 'mastodon-light'
|
||||
);
|
||||
}
|
||||
@@ -1,2 +1 @@
|
||||
@use 'mastodon/variables';
|
||||
@use 'common';
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
@use 'mastodon/variables';
|
||||
@use 'mastodon/mixins';
|
||||
@use 'fonts/roboto';
|
||||
@use 'fonts/roboto-mono';
|
||||
@@ -21,5 +22,4 @@
|
||||
@use 'mastodon/admin';
|
||||
@use 'mastodon/dashboard';
|
||||
@use 'mastodon/rtl';
|
||||
@use 'mastodon/accessibility';
|
||||
@use 'mastodon/rich_text';
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
@use 'mastodon/variables';
|
||||
@use 'common';
|
||||
@use 'mastodon/high-contrast';
|
||||
|
||||
@@ -1,4 +1 @@
|
||||
@use 'mastodon/variables' with (
|
||||
$emojis-requiring-inversion: 'chains'
|
||||
);
|
||||
@use 'common';
|
||||
|
||||
@@ -20,8 +20,3 @@ $no-columns-breakpoint: 600px;
|
||||
$font-sans-serif: 'mastodon-font-sans-serif' !default;
|
||||
$font-display: 'mastodon-font-display' !default;
|
||||
$font-monospace: 'mastodon-font-monospace' !default;
|
||||
|
||||
$emojis-requiring-inversion: 'back' 'copyright' 'curly_loop' 'currency_exchange'
|
||||
'end' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign'
|
||||
'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'on'
|
||||
'registered' 'soon' 'spider' 'telephone_receiver' 'tm' 'top' 'wavy_dash' !default;
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
@use 'variables' as *;
|
||||
|
||||
%emoji-color-inversion {
|
||||
filter: invert(1);
|
||||
}
|
||||
|
||||
.emojione {
|
||||
@each $emoji in $emojis-requiring-inversion {
|
||||
&[title=':#{$emoji}:'] {
|
||||
@extend %emoji-color-inversion;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,8 @@ html {
|
||||
|
||||
--outline-focus-default: 2px solid var(--color-text-brand);
|
||||
--avatar-border-radius: 8px;
|
||||
--max-media-height-small: 460px;
|
||||
--max-media-height-large: 566px;
|
||||
|
||||
// Variable for easily inverting directional UI elements,
|
||||
--text-x-direction: 1;
|
||||
|
||||
@@ -7165,7 +7165,18 @@ a.status-card {
|
||||
// The size of single images is determined by their
|
||||
// aspect-ratio, applied via inline style attribute
|
||||
width: initial;
|
||||
max-height: 460px;
|
||||
|
||||
// Prevent extremely tall images from essentially becoming invisible
|
||||
min-width: 120px;
|
||||
max-height: var(--max-media-height-small);
|
||||
|
||||
@container (width > 500px) {
|
||||
max-height: var(--max-media-height-large);
|
||||
}
|
||||
|
||||
.detailed-status & {
|
||||
max-height: calc(2 * var(--max-media-height-large));
|
||||
}
|
||||
}
|
||||
|
||||
&--layout-2 {
|
||||
@@ -7500,7 +7511,7 @@ a.status-card {
|
||||
position: relative;
|
||||
color: var(--color-text-on-media);
|
||||
background: var(--color-bg-media);
|
||||
max-height: 460px;
|
||||
max-height: var(--max-media-height-small);
|
||||
border-radius: 8px;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
@@ -7508,6 +7519,10 @@ a.status-card {
|
||||
outline-offset: -1px;
|
||||
z-index: 2;
|
||||
|
||||
@container (width > 500px) {
|
||||
max-height: var(--max-media-height-large);
|
||||
}
|
||||
|
||||
video {
|
||||
display: block;
|
||||
z-index: -2;
|
||||
|
||||
@@ -1,3 +1,15 @@
|
||||
@function css-alpha($base-color, $amount) {
|
||||
@return #{rgb(from $base-color r g b / $amount)};
|
||||
}
|
||||
|
||||
@mixin invert-on-light {
|
||||
.invert-on-light {
|
||||
filter: invert(1);
|
||||
}
|
||||
}
|
||||
|
||||
@mixin invert-on-dark {
|
||||
.invert-on-dark {
|
||||
filter: invert(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
@use 'base';
|
||||
@use 'dark';
|
||||
@use 'light';
|
||||
@use 'utils';
|
||||
|
||||
html {
|
||||
@include base.palette;
|
||||
@@ -10,6 +11,7 @@ html {
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
@include dark.tokens;
|
||||
@include utils.invert-on-dark;
|
||||
|
||||
@media (prefers-contrast: more) {
|
||||
@include dark.contrast-overrides;
|
||||
@@ -18,6 +20,7 @@ html {
|
||||
|
||||
@media (prefers-color-scheme: light) {
|
||||
@include light.tokens;
|
||||
@include utils.invert-on-light;
|
||||
|
||||
@media (prefers-contrast: more) {
|
||||
@include light.contrast-overrides;
|
||||
@@ -33,6 +36,7 @@ html:where(
|
||||
color-scheme: dark;
|
||||
|
||||
@include dark.tokens;
|
||||
@include utils.invert-on-dark;
|
||||
}
|
||||
|
||||
html[data-user-theme='contrast'],
|
||||
@@ -45,4 +49,5 @@ html:where([data-user-theme='mastodon-light']) {
|
||||
color-scheme: light;
|
||||
|
||||
@include light.tokens;
|
||||
@include utils.invert-on-light;
|
||||
}
|
||||
|
||||
@@ -5,9 +5,7 @@ class AnnualReport
|
||||
|
||||
SOURCES = [
|
||||
AnnualReport::Archetype,
|
||||
AnnualReport::TypeDistribution,
|
||||
AnnualReport::TopStatuses,
|
||||
AnnualReport::MostUsedApps,
|
||||
AnnualReport::TimeSeries,
|
||||
AnnualReport::TopHashtags,
|
||||
].freeze
|
||||
@@ -22,7 +20,7 @@ class AnnualReport
|
||||
return unless Mastodon::Feature.wrapstodon_enabled?
|
||||
|
||||
datetime = Time.now.utc
|
||||
datetime.year if datetime.month == 12 && (1..31).cover?(datetime.day)
|
||||
datetime.year if datetime.month == 12 && (10..31).cover?(datetime.day)
|
||||
end
|
||||
|
||||
def initialize(account, year)
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class AnnualReport::MostUsedApps < AnnualReport::Source
|
||||
SET_SIZE = 10
|
||||
|
||||
def generate
|
||||
{
|
||||
most_used_apps: most_used_apps.map do |(name, count)|
|
||||
{
|
||||
name: name,
|
||||
count: count,
|
||||
}
|
||||
end,
|
||||
}
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def most_used_apps
|
||||
report_statuses.joins(:application).group(oauth_applications: [:name]).order(count_all: :desc).limit(SET_SIZE).count
|
||||
end
|
||||
end
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
class AnnualReport::TopHashtags < AnnualReport::Source
|
||||
MINIMUM_TAGGINGS = 1
|
||||
SET_SIZE = 5
|
||||
SET_SIZE = 1
|
||||
|
||||
def generate
|
||||
{
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class AnnualReport::TypeDistribution < AnnualReport::Source
|
||||
def generate
|
||||
{
|
||||
type_distribution: {
|
||||
total: report_statuses.count,
|
||||
reblogs: report_statuses.only_reblogs.count,
|
||||
replies: report_statuses.where.not(in_reply_to_id: nil).not_replying_to_account(@account).count,
|
||||
standalone: report_statuses.without_replies.without_reblogs.count,
|
||||
},
|
||||
}
|
||||
end
|
||||
end
|
||||
@@ -2273,3 +2273,5 @@ be:
|
||||
not_supported: Гэты браўзер не падтрымлівае ключы бяспекі
|
||||
otp_required: Каб выкарыстоўваць ключы бяспекі, спачатку ўключыце двухфактарную аўтэнтыфікацыю.
|
||||
registered_on: Зарэгістраваны %{date}
|
||||
wrapstodon:
|
||||
title: Вынікадон %{year} для %{name}
|
||||
|
||||
@@ -2185,3 +2185,5 @@ en-GB:
|
||||
not_supported: This browser doesn't support security keys
|
||||
otp_required: To use security keys please enable two-factor authentication first.
|
||||
registered_on: Registered on %{date}
|
||||
wrapstodon:
|
||||
title: Wrapstodon %{year} for %{name}
|
||||
|
||||
@@ -1321,7 +1321,7 @@ eo:
|
||||
warning:
|
||||
before: 'Antau ol dauri, legu ĉi tiujn notojn zorgeme:'
|
||||
caches: Enhavo kiu kaŝmemorigitas de aliaj serviloj eble restas
|
||||
data_removal: Viaj afiŝoj kaj aliaj informoj estos forigita por eterne
|
||||
data_removal: Viaj afiŝoj kaj aliaj informoj estos forigita por ĉiam
|
||||
email_change_html: Vi povas <a href="%{path}">ŝanĝi vian retadreson</a> sen forigi vian konton
|
||||
email_contact_html: Se ĝi ankoraŭ ne alvenas, vi povas retpoŝti al <a href="mailto:%{email}">%{email}</a> por helpo
|
||||
email_reconfirmation_html: Se vi ne ricevas la konfirmretpoŝton, vi povas <a href="%{path}">denove peti</a>
|
||||
|
||||
@@ -2185,3 +2185,5 @@ gl:
|
||||
not_supported: Este navegador non ten soporte para chaves de seguridade
|
||||
otp_required: Para usar chaves de seguridade tes que activar primeiro o segundo factor.
|
||||
registered_on: Rexistrado o %{date}
|
||||
wrapstodon:
|
||||
title: Wrapstodon %{year} de %{name}
|
||||
|
||||
@@ -1706,16 +1706,22 @@ it:
|
||||
body: 'Sei stato menzionato da %{name} su:'
|
||||
subject: Sei stato menzionato da %{name}
|
||||
title: Nuova menzione
|
||||
moderation_warning:
|
||||
subject: Hai ricevuto un avviso di moderazione
|
||||
poll:
|
||||
subject: Un sondaggio da %{name} è terminato
|
||||
quote:
|
||||
body: 'Il tuo post è stato citato da %{name}:'
|
||||
subject: "%{name} ha citato il tuo post"
|
||||
title: Nuova citazione
|
||||
quoted_update:
|
||||
subject: "%{name} ha modificato un post che hai citato"
|
||||
reblog:
|
||||
body: 'Il tuo status è stato condiviso da %{name}:'
|
||||
subject: "%{name} ha condiviso il tuo status"
|
||||
title: Nuova condivisione
|
||||
severed_relationships:
|
||||
subject: Hai perso le connessioni a causa di una decisione della moderazione
|
||||
status:
|
||||
subject: "%{name} ha appena pubblicato un post"
|
||||
update:
|
||||
@@ -2179,3 +2185,5 @@ it:
|
||||
not_supported: Questo browser non supporta le chiavi di sicurezza
|
||||
otp_required: Per utilizzare le chiavi di sicurezza, prima abilita l'autenticazione a due fattori.
|
||||
registered_on: Registrato il %{date}
|
||||
wrapstodon:
|
||||
title: Wrapstodon %{year} per %{name}
|
||||
|
||||
@@ -49,7 +49,7 @@ eo:
|
||||
email: Vi ricevos konfirman retpoŝton
|
||||
header: WEBP, PNG, GIF aŭ JPG. Maksimume %{size}. Malgrandiĝos al %{dimensions}px
|
||||
inbox_url: Kopiu la URL de la ĉefpaĝo de la ripetilo, kiun vi volas uzi
|
||||
irreversible: La filtritaj mesaĝoj malaperos por eterne, eĉ se la filtrilo poste estas forigita
|
||||
irreversible: La filtritaj mesaĝoj malaperos por ĉiam, eĉ se la filtrilo poste estas forigita
|
||||
locale: La lingvo de la fasado, retpoŝtaĵoj, kaj sciigoj
|
||||
password: Uzu almenaŭ 8 signojn
|
||||
phrase: Estos provita senzorge pri la uskleco de teksto aŭ averto pri enhavo de mesaĝo
|
||||
|
||||
@@ -12,7 +12,8 @@ RSpec.describe ThemeHelper do
|
||||
it 'returns the mastodon-light and application stylesheets with correct color schemes' do
|
||||
expect(html_links.first.attributes.symbolize_keys)
|
||||
.to include(
|
||||
href: have_attributes(value: match(/mastodon-light/)),
|
||||
# This is now identical to the default theme & will be unified very soon
|
||||
href: have_attributes(value: match(/default/)),
|
||||
media: have_attributes(value: 'not all and (prefers-color-scheme: dark)')
|
||||
)
|
||||
expect(html_links.last.attributes.symbolize_keys)
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe AnnualReport::MostUsedApps do
|
||||
describe '#generate' do
|
||||
subject { described_class.new(account, Time.zone.now.year) }
|
||||
|
||||
context 'with an inactive account' do
|
||||
let(:account) { Fabricate :account }
|
||||
|
||||
it 'builds a report for an account' do
|
||||
expect(subject.generate)
|
||||
.to include(
|
||||
most_used_apps: be_an(Array).and(be_empty)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with an active account' do
|
||||
let(:account) { Fabricate :account }
|
||||
|
||||
let(:application) { Fabricate :application, name: 'App' }
|
||||
let(:most_application) { Fabricate :application, name: 'Most App' }
|
||||
|
||||
before do
|
||||
_other = Fabricate :status
|
||||
Fabricate.times 2, :status, account: account, application: application
|
||||
Fabricate.times 3, :status, account: account, application: most_application
|
||||
end
|
||||
|
||||
it 'builds a report for an account' do
|
||||
expect(subject.generate)
|
||||
.to include(
|
||||
most_used_apps: eq(
|
||||
[
|
||||
{ name: most_application.name, count: 3 },
|
||||
{ name: application.name, count: 2 },
|
||||
]
|
||||
)
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -44,7 +44,6 @@ RSpec.describe AnnualReport::TopHashtags do
|
||||
top_hashtags: eq(
|
||||
[
|
||||
{ name: most_tag.name, count: 3 },
|
||||
{ name: tag.name, count: 2 },
|
||||
]
|
||||
)
|
||||
)
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe AnnualReport::TypeDistribution do
|
||||
describe '#generate' do
|
||||
subject { described_class.new(account, Time.zone.now.year) }
|
||||
|
||||
context 'with an inactive account' do
|
||||
let(:account) { Fabricate :account }
|
||||
|
||||
it 'builds a report for an account' do
|
||||
expect(subject.generate)
|
||||
.to include(
|
||||
type_distribution: include(
|
||||
total: 0,
|
||||
reblogs: 0,
|
||||
replies: 0,
|
||||
standalone: 0
|
||||
)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with an active account' do
|
||||
let(:account) { Fabricate :account }
|
||||
|
||||
before do
|
||||
_other = Fabricate :status
|
||||
Fabricate :status, reblog: Fabricate(:status), account: account
|
||||
Fabricate :status, in_reply_to_id: Fabricate(:status).id, account: account, reply: true
|
||||
Fabricate :status, account: account
|
||||
end
|
||||
|
||||
it 'builds a report for an account' do
|
||||
expect(subject.generate)
|
||||
.to include(
|
||||
type_distribution: include(
|
||||
total: 3,
|
||||
reblogs: 1,
|
||||
replies: 1,
|
||||
standalone: 1
|
||||
)
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
203
yarn.lock
203
yarn.lock
@@ -12,10 +12,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@acemir/cssom@npm:^0.9.19":
|
||||
version: 0.9.19
|
||||
resolution: "@acemir/cssom@npm:0.9.19"
|
||||
checksum: 10c0/baef216086b4c6d32ac02fff6621e5343969710d8262be3a84494564754424f60d3add8313c05a76465310e02bf72faa65abcb9febee15c2dc01d9b08c044d5a
|
||||
"@acemir/cssom@npm:^0.9.23":
|
||||
version: 0.9.24
|
||||
resolution: "@acemir/cssom@npm:0.9.24"
|
||||
checksum: 10c0/1c7bf8a61a74d9ecbc3b12fba697384461b3234441ed5a10f5c34aef91fdf4f1e3322fcd6659a8eaddd591eddc2259efd278212236100d90a6e16f77794d98bd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -59,16 +59,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@asamuzakjp/dom-selector@npm:^6.7.3":
|
||||
version: 6.7.3
|
||||
resolution: "@asamuzakjp/dom-selector@npm:6.7.3"
|
||||
"@asamuzakjp/dom-selector@npm:^6.7.4":
|
||||
version: 6.7.5
|
||||
resolution: "@asamuzakjp/dom-selector@npm:6.7.5"
|
||||
dependencies:
|
||||
"@asamuzakjp/nwsapi": "npm:^2.3.9"
|
||||
bidi-js: "npm:^1.0.3"
|
||||
css-tree: "npm:^3.1.0"
|
||||
is-potential-custom-element-name: "npm:^1.0.1"
|
||||
lru-cache: "npm:^11.2.2"
|
||||
checksum: 10c0/14af5b239e7c28db9a0378316da8b40669b29287c17a25119e34aa0b24336f7ed2b9b76b4fcf50c5221ffa0c6800d19ba3f5fa422786e3495af2dd64767cf741
|
||||
checksum: 10c0/72ac4dc45aac9165222345aacc1db51a84094f159e9e2fa71bc89befd2d78fd00a76c7ff9a8a1ceb60e7ce198a4ec0275a4d878bea67b756cadbf3d9680162c4
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -4496,140 +4496,139 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/eslint-plugin@npm:8.46.3":
|
||||
version: 8.46.3
|
||||
resolution: "@typescript-eslint/eslint-plugin@npm:8.46.3"
|
||||
"@typescript-eslint/eslint-plugin@npm:8.48.1":
|
||||
version: 8.48.1
|
||||
resolution: "@typescript-eslint/eslint-plugin@npm:8.48.1"
|
||||
dependencies:
|
||||
"@eslint-community/regexpp": "npm:^4.10.0"
|
||||
"@typescript-eslint/scope-manager": "npm:8.46.3"
|
||||
"@typescript-eslint/type-utils": "npm:8.46.3"
|
||||
"@typescript-eslint/utils": "npm:8.46.3"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.46.3"
|
||||
"@typescript-eslint/scope-manager": "npm:8.48.1"
|
||||
"@typescript-eslint/type-utils": "npm:8.48.1"
|
||||
"@typescript-eslint/utils": "npm:8.48.1"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.48.1"
|
||||
graphemer: "npm:^1.4.0"
|
||||
ignore: "npm:^7.0.0"
|
||||
natural-compare: "npm:^1.4.0"
|
||||
ts-api-utils: "npm:^2.1.0"
|
||||
peerDependencies:
|
||||
"@typescript-eslint/parser": ^8.46.3
|
||||
"@typescript-eslint/parser": ^8.48.1
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: ">=4.8.4 <6.0.0"
|
||||
checksum: 10c0/9c8a5efd9779418d2096634a072a9e2b108e146d0fc541572db56ff28ff37469f03dd404fdb3b0c3161be4cc4857ce14259f30eba1a93d4771de5d1562624e45
|
||||
checksum: 10c0/aeb4692ac27ded73dce5ddba08d46f15d617651f629cdfc5e874dd4ac767eac0523807f1f4e51f6f80675efff78e5937690f1c58740b8cb92b44b87d757a6a1a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/parser@npm:8.46.3":
|
||||
version: 8.46.3
|
||||
resolution: "@typescript-eslint/parser@npm:8.46.3"
|
||||
"@typescript-eslint/parser@npm:8.48.1":
|
||||
version: 8.48.1
|
||||
resolution: "@typescript-eslint/parser@npm:8.48.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager": "npm:8.46.3"
|
||||
"@typescript-eslint/types": "npm:8.46.3"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.46.3"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.46.3"
|
||||
"@typescript-eslint/scope-manager": "npm:8.48.1"
|
||||
"@typescript-eslint/types": "npm:8.48.1"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.48.1"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.48.1"
|
||||
debug: "npm:^4.3.4"
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: ">=4.8.4 <6.0.0"
|
||||
checksum: 10c0/8a8b47abbbc8bbc68f423df23189afefd296305d50a31c6bec9bdde563adc9ddf99b89a6b8466965fda4aee9118263bae36422dd1c25d7595dd82f8897b5df61
|
||||
checksum: 10c0/54ec22c82cc631f56131bfed9747f8cadf52ab123463a406c5221f258f9533431c4a33ebe21ef178840d50235e69bb370d36aa2fd6a066e7223b38bfa41a1788
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/project-service@npm:8.46.3":
|
||||
version: 8.46.3
|
||||
resolution: "@typescript-eslint/project-service@npm:8.46.3"
|
||||
"@typescript-eslint/project-service@npm:8.48.1":
|
||||
version: 8.48.1
|
||||
resolution: "@typescript-eslint/project-service@npm:8.48.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/tsconfig-utils": "npm:^8.46.3"
|
||||
"@typescript-eslint/types": "npm:^8.46.3"
|
||||
"@typescript-eslint/tsconfig-utils": "npm:^8.48.1"
|
||||
"@typescript-eslint/types": "npm:^8.48.1"
|
||||
debug: "npm:^4.3.4"
|
||||
peerDependencies:
|
||||
typescript: ">=4.8.4 <6.0.0"
|
||||
checksum: 10c0/24ef305bbb550a8e27a7d6377663c1f2773b39b7a9f12c8b95c66c0d15f8150787b036bbff9ae4c2a0a18ab68c62435b0e03889df294bef00b3ae8846cd20659
|
||||
checksum: 10c0/0aeeea5e65d0f837bd9a47265f144f14ca72969d259ee929e63e06526b21f4e990e70c7bafdb2ceb3783373df7d9f5bae32c328a4c6403606f01339bc984b3f5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/scope-manager@npm:8.46.3":
|
||||
version: 8.46.3
|
||||
resolution: "@typescript-eslint/scope-manager@npm:8.46.3"
|
||||
"@typescript-eslint/scope-manager@npm:8.48.1":
|
||||
version: 8.48.1
|
||||
resolution: "@typescript-eslint/scope-manager@npm:8.48.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": "npm:8.46.3"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.46.3"
|
||||
checksum: 10c0/de8c116477e2a05a895ecd848a8289974a76cab884e07683c8085b3a2ce53895871d9bcd9de94723d6b2a437a6c526c77afcc75d6030cc4f1dccb9b47f4fc069
|
||||
"@typescript-eslint/types": "npm:8.48.1"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.48.1"
|
||||
checksum: 10c0/16514823784cb598817b87d3d2b4fb618ab8b2378b3401a4c1160a5c914e51e7a925c3c1e7be73e0250e38390f0be70fecb3e0e0bdde7b243d74444933b95d3e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/tsconfig-utils@npm:8.46.3, @typescript-eslint/tsconfig-utils@npm:^8.46.3":
|
||||
version: 8.46.3
|
||||
resolution: "@typescript-eslint/tsconfig-utils@npm:8.46.3"
|
||||
"@typescript-eslint/tsconfig-utils@npm:8.48.1, @typescript-eslint/tsconfig-utils@npm:^8.48.1":
|
||||
version: 8.48.1
|
||||
resolution: "@typescript-eslint/tsconfig-utils@npm:8.48.1"
|
||||
peerDependencies:
|
||||
typescript: ">=4.8.4 <6.0.0"
|
||||
checksum: 10c0/a9686141204a96591ee51814a79fa676a8da845638eabb2363f9d82902660fd48ea47f7ec15a618129e45021ad154e1d193127248915752546d60d475d6a566e
|
||||
checksum: 10c0/0d540f7ab3018ed1bab8f008c0d30229e0ea12806fdbf1c756572b5cf536a1f2a6c59ca2544c09bcd5b89dcfcf79e5f6be3d765e725492b9c7e4cd64fcecffc6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/type-utils@npm:8.46.3":
|
||||
version: 8.46.3
|
||||
resolution: "@typescript-eslint/type-utils@npm:8.46.3"
|
||||
"@typescript-eslint/type-utils@npm:8.48.1":
|
||||
version: 8.48.1
|
||||
resolution: "@typescript-eslint/type-utils@npm:8.48.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": "npm:8.46.3"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.46.3"
|
||||
"@typescript-eslint/utils": "npm:8.46.3"
|
||||
"@typescript-eslint/types": "npm:8.48.1"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.48.1"
|
||||
"@typescript-eslint/utils": "npm:8.48.1"
|
||||
debug: "npm:^4.3.4"
|
||||
ts-api-utils: "npm:^2.1.0"
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: ">=4.8.4 <6.0.0"
|
||||
checksum: 10c0/06e20dff5a22feb6581703e8d35159ad6694d9e1df8fbb75869fcd89893826ca533b7b30b795a16d532e9d8ea6720462b1361d1e7a11d431a4cd11b3f47a22b5
|
||||
checksum: 10c0/c98a71f7d374be249ecc7c9f20b0a867a73ad4f64e646a6bf9f2c1a5d74f0dc7bd59e9c94a0842068caa366af39ae0c550ede6d653b5c9418a0a587510bbb6d5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/types@npm:8.46.3, @typescript-eslint/types@npm:^8.46.0, @typescript-eslint/types@npm:^8.46.3":
|
||||
version: 8.46.3
|
||||
resolution: "@typescript-eslint/types@npm:8.46.3"
|
||||
checksum: 10c0/6a6ccefbd086e6c38172fe14d04ba27c1c34755af7c25e752547c42d978b91bf6b97da56a5e63d098fbd679b4a5076c4dd4be6c947fd39b4c5feea5fed6deeb6
|
||||
"@typescript-eslint/types@npm:8.48.1, @typescript-eslint/types@npm:^8.46.0, @typescript-eslint/types@npm:^8.48.1":
|
||||
version: 8.48.1
|
||||
resolution: "@typescript-eslint/types@npm:8.48.1"
|
||||
checksum: 10c0/366b8140f4c69319f1796b66b33c0c6e16eb6cbe543b9517003104e12ed143b620c1433ccf60d781a629d9433bd509a363c0c9d21fd438c17bb8840733af6caa
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/typescript-estree@npm:8.46.3":
|
||||
version: 8.46.3
|
||||
resolution: "@typescript-eslint/typescript-estree@npm:8.46.3"
|
||||
"@typescript-eslint/typescript-estree@npm:8.48.1":
|
||||
version: 8.48.1
|
||||
resolution: "@typescript-eslint/typescript-estree@npm:8.48.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/project-service": "npm:8.46.3"
|
||||
"@typescript-eslint/tsconfig-utils": "npm:8.46.3"
|
||||
"@typescript-eslint/types": "npm:8.46.3"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.46.3"
|
||||
"@typescript-eslint/project-service": "npm:8.48.1"
|
||||
"@typescript-eslint/tsconfig-utils": "npm:8.48.1"
|
||||
"@typescript-eslint/types": "npm:8.48.1"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.48.1"
|
||||
debug: "npm:^4.3.4"
|
||||
fast-glob: "npm:^3.3.2"
|
||||
is-glob: "npm:^4.0.3"
|
||||
minimatch: "npm:^9.0.4"
|
||||
semver: "npm:^7.6.0"
|
||||
tinyglobby: "npm:^0.2.15"
|
||||
ts-api-utils: "npm:^2.1.0"
|
||||
peerDependencies:
|
||||
typescript: ">=4.8.4 <6.0.0"
|
||||
checksum: 10c0/3a2bb879a3b42eda478015beee42729efdc78c0cfc70fa009442706626813114f8f9a1e918638ab957df385681ab073cf2076c508973ff9a72e2425e4e521b4f
|
||||
checksum: 10c0/72c0802f74222160f6a13ebbd32b0d504142a2427678c87ea78fc32672c65fd522377d43b31a97c944cbd0aefc36b320bf02f04e47c44f2797d6ccd0a8aa30ec
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/utils@npm:8.46.3, @typescript-eslint/utils@npm:^8.27.0, @typescript-eslint/utils@npm:^8.8.1":
|
||||
version: 8.46.3
|
||||
resolution: "@typescript-eslint/utils@npm:8.46.3"
|
||||
"@typescript-eslint/utils@npm:8.48.1, @typescript-eslint/utils@npm:^8.27.0, @typescript-eslint/utils@npm:^8.8.1":
|
||||
version: 8.48.1
|
||||
resolution: "@typescript-eslint/utils@npm:8.48.1"
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils": "npm:^4.7.0"
|
||||
"@typescript-eslint/scope-manager": "npm:8.46.3"
|
||||
"@typescript-eslint/types": "npm:8.46.3"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.46.3"
|
||||
"@typescript-eslint/scope-manager": "npm:8.48.1"
|
||||
"@typescript-eslint/types": "npm:8.48.1"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.48.1"
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: ">=4.8.4 <6.0.0"
|
||||
checksum: 10c0/cf85b166f75c2fd248004fb59643315347489d9ab589738cda1b4c36c25e7947c197a1c21e46cb25959be7d0f310b352c4436f8d3e0a91d64e4fafb3ef4b4e3d
|
||||
checksum: 10c0/1775ac217b578f52d6c1e85258098f8ef764d04830c6ce11043b434860da80f1a5f7cc1b9f2e0a63de161e83b8d876f7ae8362d7644d5d8e636e60ad5eeff4e2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/visitor-keys@npm:8.46.3":
|
||||
version: 8.46.3
|
||||
resolution: "@typescript-eslint/visitor-keys@npm:8.46.3"
|
||||
"@typescript-eslint/visitor-keys@npm:8.48.1":
|
||||
version: 8.48.1
|
||||
resolution: "@typescript-eslint/visitor-keys@npm:8.48.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": "npm:8.46.3"
|
||||
"@typescript-eslint/types": "npm:8.48.1"
|
||||
eslint-visitor-keys: "npm:^4.2.1"
|
||||
checksum: 10c0/c5f96840e0c31541e1a2390712a6cb290eff59fc97a3ffa7ecab353d3bb3cf0d8c6f62d68db271bf194aa8c4582be735b6121fcc5b30449e01799642be77de6e
|
||||
checksum: 10c0/ecf4078ce63c296dd340672b516f42bf452534c75af7e7d6c1a3f32b143ff184cb3a4071d7429a9f870371ff9091a790acce28b85ce3c450bfc60554c79d43ca
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -6233,14 +6232,14 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"cssstyle@npm:^5.3.2":
|
||||
version: 5.3.2
|
||||
resolution: "cssstyle@npm:5.3.2"
|
||||
"cssstyle@npm:^5.3.3":
|
||||
version: 5.3.3
|
||||
resolution: "cssstyle@npm:5.3.3"
|
||||
dependencies:
|
||||
"@asamuzakjp/css-color": "npm:^4.0.3"
|
||||
"@csstools/css-syntax-patches-for-csstree": "npm:^1.0.14"
|
||||
css-tree: "npm:^3.1.0"
|
||||
checksum: 10c0/513f0bd5d80fa91beadd24a9f4d4705f1f7e783acd90049ba6ceaf452101326208dd0d1d088d3565c4df94e4730582bf3857ea0fd3e733d10b6141be6eb68e40
|
||||
checksum: 10c0/0e082992851a1ded3662bda420f86dc1c90510a21cf237ddf573a1e121a722a3f78bb8f6eb46b33f267da25162e8e1fe968f7002114c9ab1d0d4e11dad9c5ee8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -7078,8 +7077,8 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-jsdoc@npm:^61.1.11":
|
||||
version: 61.1.12
|
||||
resolution: "eslint-plugin-jsdoc@npm:61.1.12"
|
||||
version: 61.4.1
|
||||
resolution: "eslint-plugin-jsdoc@npm:61.4.1"
|
||||
dependencies:
|
||||
"@es-joy/jsdoccomment": "npm:~0.76.0"
|
||||
"@es-joy/resolve.exports": "npm:1.2.0"
|
||||
@@ -7097,7 +7096,7 @@ __metadata:
|
||||
to-valid-identifier: "npm:^1.0.0"
|
||||
peerDependencies:
|
||||
eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
|
||||
checksum: 10c0/a0d291796029f8c3711ece955afde3cbac2b366735ad99f22723e4d53e54b9dcb6224a7a23369d9bf95a25c01e64b7cf6e7807218b73a18fd33bfe6eabf0bbdd
|
||||
checksum: 10c0/564f89bad71dcdbf6a45c27d16113333a5251f97a60bcc0e7346ea1b19dc1258991e1f585c89a2978e279288be2e180dde58c57f63cd49ac3db6604a5d4c581c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -7181,14 +7180,14 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-storybook@npm:^10.0.2":
|
||||
version: 10.0.4
|
||||
resolution: "eslint-plugin-storybook@npm:10.0.4"
|
||||
version: 10.1.4
|
||||
resolution: "eslint-plugin-storybook@npm:10.1.4"
|
||||
dependencies:
|
||||
"@typescript-eslint/utils": "npm:^8.8.1"
|
||||
peerDependencies:
|
||||
eslint: ">=8"
|
||||
storybook: ^10.0.4
|
||||
checksum: 10c0/a2d486a6e45d1ce731333c439b51fc44b4a9292e8c0bca914534dab11cd37a3c25c62e8cbb1bb3b35e5e8b87d6ff2c7d8256c4f89a34c444138c4c738c52e1fc
|
||||
storybook: ^10.1.4
|
||||
checksum: 10c0/d68a0244318a386877de12d22ce309725f9f7057002f5182fa50fc965e26ced7d051432d7495046f13ee5803634ce53ef9e58cfe2866c3251f2ff94f8ab50e74
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -7426,7 +7425,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2, fast-glob@npm:^3.3.3":
|
||||
"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.3":
|
||||
version: 3.3.3
|
||||
resolution: "fast-glob@npm:3.3.3"
|
||||
dependencies:
|
||||
@@ -8939,12 +8938,12 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"jsdom@npm:^27.0.0":
|
||||
version: 27.1.0
|
||||
resolution: "jsdom@npm:27.1.0"
|
||||
version: 27.2.0
|
||||
resolution: "jsdom@npm:27.2.0"
|
||||
dependencies:
|
||||
"@acemir/cssom": "npm:^0.9.19"
|
||||
"@asamuzakjp/dom-selector": "npm:^6.7.3"
|
||||
cssstyle: "npm:^5.3.2"
|
||||
"@acemir/cssom": "npm:^0.9.23"
|
||||
"@asamuzakjp/dom-selector": "npm:^6.7.4"
|
||||
cssstyle: "npm:^5.3.3"
|
||||
data-urls: "npm:^6.0.0"
|
||||
decimal.js: "npm:^10.6.0"
|
||||
html-encoding-sniffer: "npm:^4.0.0"
|
||||
@@ -8967,7 +8966,7 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
canvas:
|
||||
optional: true
|
||||
checksum: 10c0/b3da39ab7c858df28a2300362924925327f5bff5727371523b99cac7f51bc2891c4b8516205c9acbd34430819f7e69f7790a2092a965359ed65d8111b3a79507
|
||||
checksum: 10c0/52d847e1aef099071d66d1d9aedcdd2f15e7ea781da9cfb41dc0d4caf741c5870c346396f8d1182d611427ae47a53f69a6f16410c698950e5809d3fed5a1672d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -13611,17 +13610,17 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"typescript-eslint@npm:^8.28.0, typescript-eslint@npm:^8.45.0":
|
||||
version: 8.46.3
|
||||
resolution: "typescript-eslint@npm:8.46.3"
|
||||
version: 8.48.1
|
||||
resolution: "typescript-eslint@npm:8.48.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/eslint-plugin": "npm:8.46.3"
|
||||
"@typescript-eslint/parser": "npm:8.46.3"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.46.3"
|
||||
"@typescript-eslint/utils": "npm:8.46.3"
|
||||
"@typescript-eslint/eslint-plugin": "npm:8.48.1"
|
||||
"@typescript-eslint/parser": "npm:8.48.1"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.48.1"
|
||||
"@typescript-eslint/utils": "npm:8.48.1"
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: ">=4.8.4 <6.0.0"
|
||||
checksum: 10c0/c6d9398b16429b614c96405caae018b7ea74df55abf5ba9248ca9d02327704d6e1c3bdd2e2f52cfb25c9e5465ad93d73e19ee7fc3afbb837a6aeeecdf02c979b
|
||||
checksum: 10c0/10b501bf69b14edd09d652b33e4a5dfad0498f2943992a433006933e384cdc5815217b2990801796ddf946d2ef4971d9a16c98c7cfbba41f6aa31b245ad057ac
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -14055,8 +14054,8 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"vite@npm:^6.0.0 || ^7.0.0, vite@npm:^7.1.1":
|
||||
version: 7.2.4
|
||||
resolution: "vite@npm:7.2.4"
|
||||
version: 7.2.6
|
||||
resolution: "vite@npm:7.2.6"
|
||||
dependencies:
|
||||
esbuild: "npm:^0.25.0"
|
||||
fdir: "npm:^6.5.0"
|
||||
@@ -14105,7 +14104,7 @@ __metadata:
|
||||
optional: true
|
||||
bin:
|
||||
vite: bin/vite.js
|
||||
checksum: 10c0/26aa0cad01d6e00f17c837b2a0587ab52f6bd0d0e64606b4220cfc58fa5fa76a4095ef3ea27c886bea542a346363912c4fad9f9462ef1e6757262fedfd5196b2
|
||||
checksum: 10c0/d444a159ab8f0f854d596d1938f201b449d59ed4d336e587be9dc89005467214d85848c212c2495f76a8421372ffe4d061d023d659600f1aaa3ba5ac13e804f7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
Reference in New Issue
Block a user