From 69eee9f05024776b1f3d4a16e9b52ced8b7152cd Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sun, 9 Mar 2025 15:13:49 +0900 Subject: [PATCH 01/78] =?UTF-8?q?enhance(frontend):=20=E3=82=A6=E3=82=A3?= =?UTF-8?q?=E3=82=B8=E3=82=A7=E3=83=83=E3=83=88=E3=82=82preference?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/boot/main-boot.ts | 1 + packages/frontend/src/preferences/def.ts | 9 +++++++ packages/frontend/src/preferences/utility.ts | 2 +- packages/frontend/src/store.ts | 18 ++++++------- .../src/ui/_common_/PreferenceRestore.vue | 9 ------- packages/frontend/src/ui/classic.vue | 26 +++++++++--------- packages/frontend/src/ui/universal.vue | 27 +++++++++---------- .../frontend/src/ui/universal.widgets.vue | 26 +++++++++--------- 8 files changed, 57 insertions(+), 61 deletions(-) diff --git a/packages/frontend/src/boot/main-boot.ts b/packages/frontend/src/boot/main-boot.ts index 94a57acb96..cf56ec8640 100644 --- a/packages/frontend/src/boot/main-boot.ts +++ b/packages/frontend/src/boot/main-boot.ts @@ -154,6 +154,7 @@ export async function mainBoot() { prefer.set('lightTheme', ColdDeviceStorage.get('lightTheme')); prefer.set('darkTheme', ColdDeviceStorage.get('darkTheme')); prefer.set('syncDeviceDarkMode', ColdDeviceStorage.get('syncDeviceDarkMode')); + prefer.set('widgets', store.state.widgets); prefer.set('keepCw', store.state.keepCw); prefer.set('collapseRenotes', store.state.collapseRenotes); prefer.set('rememberNoteVisibility', store.state.rememberNoteVisibility); diff --git a/packages/frontend/src/preferences/def.ts b/packages/frontend/src/preferences/def.ts index e122a25d4e..089098006b 100644 --- a/packages/frontend/src/preferences/def.ts +++ b/packages/frontend/src/preferences/def.ts @@ -35,6 +35,15 @@ export const PREF_DEF = { accountDependent: true, default: null as string | null, }, + widgets: { + accountDependent: true, + default: [] as { + name: string; + id: string; + place: string | null; + data: Record; + }[], + }, themes: { default: [] as Theme[], diff --git a/packages/frontend/src/preferences/utility.ts b/packages/frontend/src/preferences/utility.ts index 2d1921f8a9..11bebc6ab2 100644 --- a/packages/frontend/src/preferences/utility.ts +++ b/packages/frontend/src/preferences/utility.ts @@ -203,7 +203,7 @@ export async function enableAutoBackup() { export const shouldSuggestRestoreBackup = ref(false); if ($i != null) { - if (new Date($i.createdAt).getTime() < (Date.now() - 1000 * 60 * 30)) { // アカウント作成直後は意味ないので除外 + if (new Date($i.createdAt).getTime() > (Date.now() - 1000 * 60 * 30)) { // アカウント作成直後は意味ないので除外 miLocalStorage.setItem('hidePreferencesRestoreSuggestion', 'true'); } else { if (miLocalStorage.getItem('hidePreferencesRestoreSuggestion') !== 'true') { diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts index b6bf0e5fba..32b4543f52 100644 --- a/packages/frontend/src/store.ts +++ b/packages/frontend/src/store.ts @@ -102,15 +102,6 @@ export const store = markRaw(new Storage('base', { where: 'device', default: false, }, - widgets: { - where: 'account', - default: [] as { - name: string; - id: string; - place: string | null; - data: Record; - }[], - }, tl: { where: 'deviceAccount', default: { @@ -187,6 +178,15 @@ export const store = markRaw(new Storage('base', { }, //#region TODO: そのうち消す (preferに移行済み) + widgets: { + where: 'account', + default: [] as { + name: string; + id: string; + place: string | null; + data: Record; + }[], + }, defaultSideView: { where: 'device', default: false, diff --git a/packages/frontend/src/ui/_common_/PreferenceRestore.vue b/packages/frontend/src/ui/_common_/PreferenceRestore.vue index 0412733350..c70b82cd0e 100644 --- a/packages/frontend/src/ui/_common_/PreferenceRestore.vue +++ b/packages/frontend/src/ui/_common_/PreferenceRestore.vue @@ -39,15 +39,6 @@ function skip() { overflow: clip; contain: strict; background: var(--MI_THEME-panel); - - @container (max-width: 1000px) { - display: block; - text-align: center; - - > .body { - display: none; - } - } } .icon { diff --git a/packages/frontend/src/ui/classic.vue b/packages/frontend/src/ui/classic.vue index abe612ab3e..12791dba30 100644 --- a/packages/frontend/src/ui/classic.vue +++ b/packages/frontend/src/ui/classic.vue @@ -143,20 +143,18 @@ if (window.innerWidth < 1024) { document.documentElement.style.overflowY = 'scroll'; -store.loaded.then(() => { - if (store.state.widgets.length === 0) { - store.set('widgets', [{ - name: 'calendar', - id: 'a', place: null, data: {}, - }, { - name: 'notifications', - id: 'b', place: null, data: {}, - }, { - name: 'trends', - id: 'c', place: null, data: {}, - }]); - } -}); +if (prefer.s.widgets.length === 0) { + prefer.set('widgets', [{ + name: 'calendar', + id: 'a', place: null, data: {}, + }, { + name: 'notifications', + id: 'b', place: null, data: {}, + }, { + name: 'trends', + id: 'c', place: null, data: {}, + }]); +} onMounted(() => { window.addEventListener('resize', () => { diff --git a/packages/frontend/src/ui/universal.vue b/packages/frontend/src/ui/universal.vue index e012d615a8..633eca7542 100644 --- a/packages/frontend/src/ui/universal.vue +++ b/packages/frontend/src/ui/universal.vue @@ -106,7 +106,6 @@ import type MkStickyContainer from '@/components/global/MkStickyContainer.vue'; import type { PageMetadata } from '@/utility/page-metadata.js'; import XDrawerMenu from '@/ui/_common_/navbar-for-mobile.vue'; import * as os from '@/os.js'; -import { store } from '@/store.js'; import { navbarItemDef } from '@/navbar.js'; import { i18n } from '@/i18n.js'; import { $i } from '@/account.js'; @@ -178,20 +177,18 @@ if (window.innerWidth > 1024) { } } -store.loaded.then(() => { - if (store.state.widgets.length === 0) { - store.set('widgets', [{ - name: 'calendar', - id: 'a', place: 'right', data: {}, - }, { - name: 'notifications', - id: 'b', place: 'right', data: {}, - }, { - name: 'trends', - id: 'c', place: 'right', data: {}, - }]); - } -}); +if (prefer.s.widgets.length === 0) { + prefer.set('widgets', [{ + name: 'calendar', + id: 'a', place: 'right', data: {}, + }, { + name: 'notifications', + id: 'b', place: 'right', data: {}, + }, { + name: 'trends', + id: 'c', place: 'right', data: {}, + }]); +} onMounted(() => { if (!isDesktop.value) { diff --git a/packages/frontend/src/ui/universal.widgets.vue b/packages/frontend/src/ui/universal.widgets.vue index 42b870cbb5..ea2b7f2cf2 100644 --- a/packages/frontend/src/ui/universal.widgets.vue +++ b/packages/frontend/src/ui/universal.widgets.vue @@ -19,7 +19,7 @@ const editMode = ref(false); + + diff --git a/packages/frontend/src/pages/settings/theme.install.vue b/packages/frontend/src/pages/settings/theme.install.vue index c731f343e2..92f4893f1a 100644 --- a/packages/frontend/src/pages/settings/theme.install.vue +++ b/packages/frontend/src/pages/settings/theme.install.vue @@ -10,8 +10,8 @@ SPDX-License-Identifier: AGPL-3.0-only
- {{ i18n.ts.preview }} - {{ i18n.ts.install }} + {{ i18n.ts.preview }} + {{ i18n.ts.install }}
@@ -24,7 +24,9 @@ import { parseThemeCode, previewTheme, installTheme } from '@/theme.js'; import * as os from '@/os.js'; import { i18n } from '@/i18n.js'; import { definePageMetadata } from '@/utility/page-metadata.js'; +import { useRouter } from '@/router/supplier.js'; +const router = useRouter(); const installThemeCode = ref(null); async function install(code: string): Promise { @@ -35,6 +37,8 @@ async function install(code: string): Promise { type: 'success', text: i18n.tsx._theme.installed({ name: theme.name }), }); + installThemeCode.value = null; + router.push('/settings/theme'); } catch (err) { switch (err.message.toLowerCase()) { case 'this theme is already installed': diff --git a/packages/frontend/src/plugin.ts b/packages/frontend/src/plugin.ts index 613e3a9df6..5e33d196c3 100644 --- a/packages/frontend/src/plugin.ts +++ b/packages/frontend/src/plugin.ts @@ -131,6 +131,10 @@ export async function installPlugin(code: string, meta?: AiScriptPluginMeta) { realMeta = meta; } + if (prefer.s.plugins.some(x => x.name === realMeta.name)) { + throw new Error('Plugin already installed'); + } + const installId = uuid(); const plugin = { @@ -161,8 +165,14 @@ export async function uninstallPlugin(plugin: Plugin) { } } -const pluginContexts = new Map(); -export const pluginLogs = ref(new Map()); +const pluginContexts = new Map(); + +export const pluginLogs = ref(new Map()); type HandlerDef = { post_form_action: { @@ -197,6 +207,11 @@ type PluginHandler = { let pluginHandlers: PluginHandler[] = []; function addPluginHandler(installId: Plugin['installId'], type: K, ctx: PluginHandler['ctx']) { + pluginLogs.value.get(installId)!.push({ + at: Date.now(), + isSystem: true, + message: `Handler registered: ${type}`, + }); pluginHandlers.push({ pluginInstallId: installId, type, ctx }); } @@ -215,6 +230,19 @@ async function launchPlugin(id: Plugin['installId']): Promise { // 後方互換性のため if (plugin.src == null) return; + pluginLogs.value.set(plugin.installId, []); + + function systemLog(message: string, isError = false): void { + pluginLogs.value.get(plugin.installId)?.push({ + at: Date.now(), + isSystem: true, + message, + isError, + }); + } + + systemLog('Starting plugin...'); + await authorizePlugin(plugin); const aiscript = new Interpreter(createPluginEnv({ @@ -223,26 +251,33 @@ async function launchPlugin(id: Plugin['installId']): Promise { }), { in: aiScriptReadline, out: (value): void => { - console.log(value); - pluginLogs.value.get(plugin.installId).push(utils.reprValue(value)); + pluginLogs.value.get(plugin.installId)!.push({ + at: Date.now(), + message: utils.reprValue(value), + }); }, log: (): void => { }, err: (err): void => { - pluginLogs.value.get(plugin.installId).push(`${err}`); + pluginLogs.value.get(plugin.installId)!.push({ + at: Date.now(), + message: `${err}`, + isError: true, + }); throw err; // install時のtry-catchに反応させる }, }); pluginContexts.set(plugin.installId, aiscript); - pluginLogs.value.set(plugin.installId, []); aiscript.exec(parser.parse(plugin.src)).then( () => { console.info('Plugin installed:', plugin.name, 'v' + plugin.version); + systemLog('Plugin started'); }, (err) => { console.error('Plugin install failed:', plugin.name, 'v' + plugin.version); + systemLog(`${err}`, true); throw err; }, ); @@ -300,16 +335,15 @@ function createPluginEnv(opts: { plugin: Plugin; storageKey: string }): Record(fn: (ctx: Interpreter) => T): T { - console.log('withContext', id); const ctx = pluginContexts.get(id); if (!ctx) throw new Error('Plugin context not found'); return fn(ctx); } - return { + const env: Record = { ...createAiScriptEnv({ ...opts, token: store.state.pluginTokens[id] }), - 'Plugin:register_post_form_action': values.FN_NATIVE(([title, handler]) => { + 'Plugin:register:post_form_action': values.FN_NATIVE(([title, handler]) => { utils.assertString(title); utils.assertFunction(handler); addPluginHandler(id, 'post_form_action', { @@ -325,7 +359,7 @@ function createPluginEnv(opts: { plugin: Plugin; storageKey: string }): Record { + 'Plugin:register:user_action': values.FN_NATIVE(([title, handler]) => { utils.assertString(title); utils.assertFunction(handler); addPluginHandler(id, 'user_action', { @@ -336,7 +370,7 @@ function createPluginEnv(opts: { plugin: Plugin; storageKey: string }): Record { + 'Plugin:register:note_action': values.FN_NATIVE(([title, handler]) => { utils.assertString(title); utils.assertFunction(handler); addPluginHandler(id, 'note_action', { @@ -347,7 +381,7 @@ function createPluginEnv(opts: { plugin: Plugin; storageKey: string }): Record { + 'Plugin:register:note_view_interruptor': values.FN_NATIVE(([handler]) => { utils.assertFunction(handler); addPluginHandler(id, 'note_view_interruptor', { handler: withContext(ctx => async (note) => { @@ -356,7 +390,7 @@ function createPluginEnv(opts: { plugin: Plugin; storageKey: string }): Record { + 'Plugin:register:note_post_interruptor': values.FN_NATIVE(([handler]) => { utils.assertFunction(handler); addPluginHandler(id, 'note_post_interruptor', { handler: withContext(ctx => async (note) => { @@ -365,7 +399,7 @@ function createPluginEnv(opts: { plugin: Plugin; storageKey: string }): Record { + 'Plugin:register:page_view_interruptor': values.FN_NATIVE(([handler]) => { utils.assertFunction(handler); addPluginHandler(id, 'page_view_interruptor', { handler: withContext(ctx => async (page) => { @@ -381,6 +415,16 @@ function createPluginEnv(opts: { plugin: Plugin; storageKey: string }): Record(type: K): HandlerDef[K][] { From 6419af21797a6438bff714052e459bb3bbbe4c07 Mon Sep 17 00:00:00 2001 From: taichan <40626578+tai-cha@users.noreply.github.com> Date: Mon, 10 Mar 2025 09:34:45 +0900 Subject: [PATCH 13/78] =?UTF-8?q?fix(frontend,=20dev):=20storybook?= =?UTF-8?q?=E3=81=AE=E3=83=93=E3=83=AB=E3=83=89=E3=82=A8=E3=83=A9=E3=83=BC?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E3=81=AE=E3=81=9F=E3=82=81=E3=80=81as?= =?UTF-8?q?=E6=A7=8B=E6=96=87=E3=81=AB=E3=83=AA=E3=83=95=E3=82=A1=E3=82=AF?= =?UTF-8?q?=E3=82=BF=20(#15640)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/components/MkTokenGenerateWindow.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/frontend/src/components/MkTokenGenerateWindow.vue b/packages/frontend/src/components/MkTokenGenerateWindow.vue index 73aef68964..31ecb15ab8 100644 --- a/packages/frontend/src/components/MkTokenGenerateWindow.vue +++ b/packages/frontend/src/components/MkTokenGenerateWindow.vue @@ -79,8 +79,8 @@ const adminPermissions = Misskey.permissions.filter(p => p.startsWith('read:admi const dialog = shallowRef>(); const name = ref(props.initialName); -const permissionSwitches = ref(>{}); -const permissionSwitchesForAdmin = ref(>{}); +const permissionSwitches = ref({} as Record<(typeof Misskey.permissions)[number], boolean>); +const permissionSwitchesForAdmin = ref({} as Record<(typeof Misskey.permissions)[number], boolean>); if (props.initialPermissions) { for (const kind of props.initialPermissions) { From 4df9083bf04b72f59b9cb09334c89412e8cb296c Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Mon, 10 Mar 2025 10:05:50 +0900 Subject: [PATCH 14/78] =?UTF-8?q?fix(frontend):=20=E3=83=86=E3=83=BC?= =?UTF-8?q?=E3=83=9E=E5=88=87=E3=82=8A=E6=9B=BF=E3=81=88=E6=99=82=E3=81=AB?= =?UTF-8?q?=E4=B8=80=E9=83=A8=E3=81=AE=E8=89=B2=E3=81=8C=E5=A4=89=E3=82=8F?= =?UTF-8?q?=E3=82=89=E3=81=AA=E3=81=84=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + .../src/components/global/MkPageHeader.vue | 10 +++---- .../src/directives/adaptive-border.ts | 27 ++++++++++++++----- packages/frontend/src/events.ts | 1 + .../frontend/src/pages/admin/_header_.vue | 6 ++--- packages/frontend/src/theme.ts | 5 +++- 6 files changed, 35 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ea6dbdb961..e0b47ff5e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - Feat: 設定の管理が強化されました - 自動でバックアップされるように - Enhance: プラグインの管理が強化されました +- Fix: テーマ切り替え時に一部の色が変わらない問題を修正 ### Server - Fix: プロフィール追加情報で無効なURLに入力された場合に照会エラーを出るのを修正 diff --git a/packages/frontend/src/components/global/MkPageHeader.vue b/packages/frontend/src/components/global/MkPageHeader.vue index a7cf70745e..d3c64bf85a 100644 --- a/packages/frontend/src/components/global/MkPageHeader.vue +++ b/packages/frontend/src/components/global/MkPageHeader.vue @@ -43,14 +43,14 @@ SPDX-License-Identifier: AGPL-3.0-only diff --git a/packages/frontend/src/directives/adaptive-border.ts b/packages/frontend/src/directives/adaptive-border.ts index af7deb5960..8072a1ffd9 100644 --- a/packages/frontend/src/directives/adaptive-border.ts +++ b/packages/frontend/src/directives/adaptive-border.ts @@ -5,17 +5,32 @@ import type { Directive } from 'vue'; import { getBgColor } from '@/utility/get-bg-color.js'; +import { globalEvents } from '@/events.js'; + +const handlerMap = new WeakMap(); export default { mounted(src, binding, vn) { - const parentBg = getBgColor(src.parentElement) ?? 'transparent'; + function calc() { + const parentBg = getBgColor(src.parentElement) ?? 'transparent'; - const myBg = window.getComputedStyle(src).backgroundColor; + const myBg = window.getComputedStyle(src).backgroundColor; - if (parentBg === myBg) { - src.style.borderColor = 'var(--MI_THEME-divider)'; - } else { - src.style.borderColor = myBg; + if (parentBg === myBg) { + src.style.borderColor = 'var(--MI_THEME-divider)'; + } else { + src.style.borderColor = myBg; + } } + + handlerMap.set(src, calc); + + calc(); + + globalEvents.on('themeChanged', calc); + }, + + unmounted(src, binding, vn) { + globalEvents.off('themeChanged', handlerMap.get(src)); }, } as Directive; diff --git a/packages/frontend/src/events.ts b/packages/frontend/src/events.ts index d476aec04a..a74018223c 100644 --- a/packages/frontend/src/events.ts +++ b/packages/frontend/src/events.ts @@ -7,6 +7,7 @@ import { EventEmitter } from 'eventemitter3'; import * as Misskey from 'misskey-js'; export const globalEvents = new EventEmitter<{ + themeChanging: () => void; themeChanged: () => void; clientNotification: (notification: Misskey.entities.Notification) => void; requestClearPageCache: () => void; diff --git a/packages/frontend/src/pages/admin/_header_.vue b/packages/frontend/src/pages/admin/_header_.vue index 8ba35d65d5..d5dac40e86 100644 --- a/packages/frontend/src/pages/admin/_header_.vue +++ b/packages/frontend/src/pages/admin/_header_.vue @@ -35,8 +35,8 @@ SPDX-License-Identifier: AGPL-3.0-only diff --git a/packages/frontend/src/theme.ts b/packages/frontend/src/theme.ts index 0f44d777f9..ed2f1d3164 100644 --- a/packages/frontend/src/theme.ts +++ b/packages/frontend/src/theme.ts @@ -72,6 +72,9 @@ export function applyTheme(theme: Theme, persist = true) { timeout = window.setTimeout(() => { document.documentElement.classList.remove('_themeChanging_'); + + // 色計算など再度行えるようにクライアント全体に通知 + globalEvents.emit('themeChanged'); }, 1000); const colorScheme = theme.base === 'dark' ? 'dark' : 'light'; @@ -108,7 +111,7 @@ export function applyTheme(theme: Theme, persist = true) { } // 色計算など再度行えるようにクライアント全体に通知 - globalEvents.emit('themeChanged'); + globalEvents.emit('themeChanging'); } function compile(theme: Theme): Record { From 16ad6b3f6c861a5da4ce141381860973573bbee4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 10 Mar 2025 01:09:42 +0000 Subject: [PATCH 15/78] Bump version to 2025.3.2-alpha.4 --- package.json | 2 +- packages/misskey-js/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 731c426e15..73577833f8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2025.3.2-alpha.3", + "version": "2025.3.2-alpha.4", "codename": "nasubi", "repository": { "type": "git", diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json index c04ade5533..d98d2f3ed1 100644 --- a/packages/misskey-js/package.json +++ b/packages/misskey-js/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "misskey-js", - "version": "2025.3.2-alpha.3", + "version": "2025.3.2-alpha.4", "description": "Misskey SDK for JavaScript", "license": "MIT", "main": "./built/index.js", From 08f7e7d9b35ed384671b1918c4b6d16fd1181f82 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Mon, 10 Mar 2025 10:51:54 +0900 Subject: [PATCH 16/78] refactor(frontend): rename pizzax fields --- ...lugin-unwind-css-module-class-name.test.ts | 4 +- packages/frontend/src/boot/common.ts | 12 +- packages/frontend/src/boot/main-boot.ts | 148 +++++++++--------- .../src/components/MkAutocomplete.vue | 6 +- .../frontend/src/components/MkCaptcha.vue | 2 +- packages/frontend/src/components/MkChart.vue | 2 +- .../frontend/src/components/MkCode.core.vue | 2 +- .../frontend/src/components/MkEmojiPicker.vue | 10 +- .../src/components/MkFollowButton.vue | 4 +- .../frontend/src/components/MkHeatmap.vue | 2 +- .../frontend/src/components/MkPostForm.vue | 8 +- .../src/components/MkRetentionHeatmap.vue | 2 +- .../src/components/MkRetentionLineChart.vue | 2 +- .../frontend/src/components/MkUrlPreview.vue | 2 +- .../src/components/MkUserSelectDialog.vue | 4 +- .../src/components/MkUserSetupDialog.vue | 2 +- .../MkVisitorDashboard.ActiveUsersChart.vue | 2 +- .../frontend/src/components/global/MkAd.vue | 4 +- .../src/components/global/MkFooterSpacer.vue | 2 +- packages/frontend/src/deck.ts | 92 +++++------ packages/frontend/src/pages/about-misskey.vue | 2 +- packages/frontend/src/pages/admin/abuses.vue | 2 +- .../src/pages/admin/overview.active-users.vue | 2 +- .../src/pages/admin/overview.ap-requests.vue | 2 +- .../src/pages/admin/overview.queue.chart.vue | 2 +- .../src/pages/admin/queue.chart.chart.vue | 2 +- .../src/pages/drop-and-fusion.game.vue | 2 +- .../src/pages/settings/emoji-picker.vue | 4 +- .../src/pages/settings/import-export.vue | 2 +- .../frontend/src/pages/settings/index.vue | 2 +- .../src/pages/settings/preferences.vue | 8 +- packages/frontend/src/pages/theme-editor.vue | 2 +- packages/frontend/src/pages/timeline.vue | 24 +-- .../src/pages/user/activity.following.vue | 2 +- .../src/pages/user/activity.notes.vue | 2 +- .../frontend/src/pages/user/activity.pv.vue | 2 +- packages/frontend/src/pizzax.ts | 45 +++--- packages/frontend/src/plugin.ts | 12 +- packages/frontend/src/preferences.ts | 2 +- packages/frontend/src/preferences/store.ts | 2 +- packages/frontend/src/preferences/utility.ts | 2 +- packages/frontend/src/ui/_common_/navbar.vue | 4 +- packages/frontend/src/ui/classic.sidebar.vue | 2 +- packages/frontend/src/ui/classic.vue | 4 +- packages/frontend/src/ui/deck.vue | 18 +-- packages/frontend/src/utility/emoji-picker.ts | 2 +- .../frontend/src/utility/get-note-menu.ts | 4 +- packages/frontend/src/utility/init-chart.ts | 2 +- .../frontend/src/utility/reaction-picker.ts | 2 +- packages/frontend/src/widgets/WidgetMemo.vue | 4 +- 50 files changed, 243 insertions(+), 236 deletions(-) diff --git a/packages/frontend/lib/rollup-plugin-unwind-css-module-class-name.test.ts b/packages/frontend/lib/rollup-plugin-unwind-css-module-class-name.test.ts index 884ae3afac..ccfa08575b 100644 --- a/packages/frontend/lib/rollup-plugin-unwind-css-module-class-name.test.ts +++ b/packages/frontend/lib/rollup-plugin-unwind-css-module-class-name.test.ts @@ -74,7 +74,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ let fetching = ref(true); let images = ref([]); function thumbnail(image) { - return store.state.disableShowingAnimatedImages ? getStaticImageUrl(image.url) : image.thumbnailUrl; + return store.s.disableShowingAnimatedImages ? getStaticImageUrl(image.url) : image.thumbnailUrl; } onMounted(() => { const image = [ @@ -190,7 +190,7 @@ const index_photos = defineComponent({ let fetching = ref(true); let images = ref([]); function thumbnail(image) { - return store.state.disableShowingAnimatedImages ? getStaticImageUrl(image.url) : image.thumbnailUrl; + return store.s.disableShowingAnimatedImages ? getStaticImageUrl(image.url) : image.thumbnailUrl; } onMounted(() => { const image = ["image/jpeg", "image/webp", "image/avif", "image/png", "image/gif", "image/apng", "image/vnd.mozilla.apng"]; diff --git a/packages/frontend/src/boot/common.ts b/packages/frontend/src/boot/common.ts index efada79823..d09c6d39d2 100644 --- a/packages/frontend/src/boot/common.ts +++ b/packages/frontend/src/boot/common.ts @@ -154,26 +154,26 @@ export async function common(createVue: () => App) { //#endregion // NOTE: この処理は必ずクライアント更新チェック処理より後に来ること(テーマ再構築のため) - watch(store.reactiveState.darkMode, (darkMode) => { + watch(store.r.darkMode, (darkMode) => { applyTheme(darkMode ? (prefer.s.darkTheme ?? defaultDarkTheme) : (prefer.s.lightTheme ?? defaultLightTheme), ); }, { immediate: miLocalStorage.getItem('theme') == null }); - document.documentElement.dataset.colorScheme = store.state.darkMode ? 'dark' : 'light'; + document.documentElement.dataset.colorScheme = store.s.darkMode ? 'dark' : 'light'; const darkTheme = prefer.model('darkTheme'); const lightTheme = prefer.model('lightTheme'); watch(darkTheme, (theme) => { - if (store.state.darkMode) { + if (store.s.darkMode) { applyTheme(theme ?? defaultDarkTheme); } }); watch(lightTheme, (theme) => { - if (!store.state.darkMode) { + if (!store.s.darkMode) { applyTheme(theme ?? defaultLightTheme); } }); @@ -190,9 +190,9 @@ export async function common(createVue: () => App) { }); //#endregion - if (prefer.s.darkTheme && store.state.darkMode) { + if (prefer.s.darkTheme && store.s.darkMode) { if (miLocalStorage.getItem('themeId') !== prefer.s.darkTheme.id) applyTheme(prefer.s.darkTheme); - } else if (prefer.s.lightTheme && !store.state.darkMode) { + } else if (prefer.s.lightTheme && !store.s.darkMode) { if (miLocalStorage.getItem('themeId') !== prefer.s.lightTheme.id) applyTheme(prefer.s.lightTheme); } diff --git a/packages/frontend/src/boot/main-boot.ts b/packages/frontend/src/boot/main-boot.ts index a64e14cc1a..411cf3f672 100644 --- a/packages/frontend/src/boot/main-boot.ts +++ b/packages/frontend/src/boot/main-boot.ts @@ -138,7 +138,7 @@ export async function mainBoot() { store.loaded.then(async () => { // prefereces migration // TODO: そのうち消す - if (store.state.menu.length > 0) { + if (store.s.menu.length > 0) { const themes = await misskeyApi('i/registry/get', { scope: ['client'], key: 'themes' }).catch(() => []); if (themes.length > 0) { prefer.set('themes', themes); @@ -152,84 +152,84 @@ export async function mainBoot() { prefer.set('lightTheme', ColdDeviceStorage.get('lightTheme')); prefer.set('darkTheme', ColdDeviceStorage.get('darkTheme')); prefer.set('syncDeviceDarkMode', ColdDeviceStorage.get('syncDeviceDarkMode')); - prefer.set('overridedDeviceKind', store.state.overridedDeviceKind); - prefer.set('widgets', store.state.widgets); - prefer.set('keepCw', store.state.keepCw); - prefer.set('collapseRenotes', store.state.collapseRenotes); - prefer.set('rememberNoteVisibility', store.state.rememberNoteVisibility); - prefer.set('uploadFolder', store.state.uploadFolder); - prefer.set('keepOriginalUploading', store.state.keepOriginalUploading); - prefer.set('menu', store.state.menu); - prefer.set('statusbars', store.state.statusbars); - prefer.set('pinnedUserLists', store.state.pinnedUserLists); - prefer.set('serverDisconnectedBehavior', store.state.serverDisconnectedBehavior); - prefer.set('nsfw', store.state.nsfw); - prefer.set('highlightSensitiveMedia', store.state.highlightSensitiveMedia); - prefer.set('animation', store.state.animation); - prefer.set('animatedMfm', store.state.animatedMfm); - prefer.set('advancedMfm', store.state.advancedMfm); - prefer.set('showReactionsCount', store.state.showReactionsCount); - prefer.set('enableQuickAddMfmFunction', store.state.enableQuickAddMfmFunction); - prefer.set('loadRawImages', store.state.loadRawImages); - prefer.set('imageNewTab', store.state.imageNewTab); - prefer.set('disableShowingAnimatedImages', store.state.disableShowingAnimatedImages); - prefer.set('emojiStyle', store.state.emojiStyle); - prefer.set('menuStyle', store.state.menuStyle); - prefer.set('useBlurEffectForModal', store.state.useBlurEffectForModal); - prefer.set('useBlurEffect', store.state.useBlurEffect); - prefer.set('showFixedPostForm', store.state.showFixedPostForm); - prefer.set('showFixedPostFormInChannel', store.state.showFixedPostFormInChannel); - prefer.set('enableInfiniteScroll', store.state.enableInfiniteScroll); - prefer.set('useReactionPickerForContextMenu', store.state.useReactionPickerForContextMenu); - prefer.set('showGapBetweenNotesInTimeline', store.state.showGapBetweenNotesInTimeline); - prefer.set('instanceTicker', store.state.instanceTicker); - prefer.set('emojiPickerScale', store.state.emojiPickerScale); - prefer.set('emojiPickerWidth', store.state.emojiPickerWidth); - prefer.set('emojiPickerHeight', store.state.emojiPickerHeight); - prefer.set('emojiPickerStyle', store.state.emojiPickerStyle); - prefer.set('reportError', store.state.reportError); - prefer.set('squareAvatars', store.state.squareAvatars); - prefer.set('showAvatarDecorations', store.state.showAvatarDecorations); - prefer.set('numberOfPageCache', store.state.numberOfPageCache); - prefer.set('showNoteActionsOnlyHover', store.state.showNoteActionsOnlyHover); - prefer.set('showClipButtonInNoteFooter', store.state.showClipButtonInNoteFooter); - prefer.set('reactionsDisplaySize', store.state.reactionsDisplaySize); - prefer.set('limitWidthOfReaction', store.state.limitWidthOfReaction); - prefer.set('forceShowAds', store.state.forceShowAds); - prefer.set('aiChanMode', store.state.aiChanMode); - prefer.set('devMode', store.state.devMode); - prefer.set('mediaListWithOneImageAppearance', store.state.mediaListWithOneImageAppearance); - prefer.set('notificationPosition', store.state.notificationPosition); - prefer.set('notificationStackAxis', store.state.notificationStackAxis); - prefer.set('enableCondensedLine', store.state.enableCondensedLine); - prefer.set('keepScreenOn', store.state.keepScreenOn); - prefer.set('disableStreamingTimeline', store.state.disableStreamingTimeline); - prefer.set('useGroupedNotifications', store.state.useGroupedNotifications); - prefer.set('dataSaver', store.state.dataSaver); - prefer.set('enableSeasonalScreenEffect', store.state.enableSeasonalScreenEffect); - prefer.set('enableHorizontalSwipe', store.state.enableHorizontalSwipe); - prefer.set('useNativeUiForVideoAudioPlayer', store.state.useNativeUIForVideoAudioPlayer); - prefer.set('keepOriginalFilename', store.state.keepOriginalFilename); - prefer.set('alwaysConfirmFollow', store.state.alwaysConfirmFollow); - prefer.set('confirmWhenRevealingSensitiveMedia', store.state.confirmWhenRevealingSensitiveMedia); - prefer.set('contextMenu', store.state.contextMenu); - prefer.set('skipNoteRender', store.state.skipNoteRender); - prefer.set('showSoftWordMutedWord', store.state.showSoftWordMutedWord); - prefer.set('confirmOnReact', store.state.confirmOnReact); - prefer.set('sound.masterVolume', store.state.sound_masterVolume); - prefer.set('sound.notUseSound', store.state.sound_notUseSound); - prefer.set('sound.useSoundOnlyWhenActive', store.state.sound_useSoundOnlyWhenActive); - prefer.set('sound.on.note', store.state.sound_note as any); - prefer.set('sound.on.noteMy', store.state.sound_noteMy as any); - prefer.set('sound.on.notification', store.state.sound_notification as any); - prefer.set('sound.on.reaction', store.state.sound_reaction as any); + prefer.set('overridedDeviceKind', store.s.overridedDeviceKind); + prefer.set('widgets', store.s.widgets); + prefer.set('keepCw', store.s.keepCw); + prefer.set('collapseRenotes', store.s.collapseRenotes); + prefer.set('rememberNoteVisibility', store.s.rememberNoteVisibility); + prefer.set('uploadFolder', store.s.uploadFolder); + prefer.set('keepOriginalUploading', store.s.keepOriginalUploading); + prefer.set('menu', store.s.menu); + prefer.set('statusbars', store.s.statusbars); + prefer.set('pinnedUserLists', store.s.pinnedUserLists); + prefer.set('serverDisconnectedBehavior', store.s.serverDisconnectedBehavior); + prefer.set('nsfw', store.s.nsfw); + prefer.set('highlightSensitiveMedia', store.s.highlightSensitiveMedia); + prefer.set('animation', store.s.animation); + prefer.set('animatedMfm', store.s.animatedMfm); + prefer.set('advancedMfm', store.s.advancedMfm); + prefer.set('showReactionsCount', store.s.showReactionsCount); + prefer.set('enableQuickAddMfmFunction', store.s.enableQuickAddMfmFunction); + prefer.set('loadRawImages', store.s.loadRawImages); + prefer.set('imageNewTab', store.s.imageNewTab); + prefer.set('disableShowingAnimatedImages', store.s.disableShowingAnimatedImages); + prefer.set('emojiStyle', store.s.emojiStyle); + prefer.set('menuStyle', store.s.menuStyle); + prefer.set('useBlurEffectForModal', store.s.useBlurEffectForModal); + prefer.set('useBlurEffect', store.s.useBlurEffect); + prefer.set('showFixedPostForm', store.s.showFixedPostForm); + prefer.set('showFixedPostFormInChannel', store.s.showFixedPostFormInChannel); + prefer.set('enableInfiniteScroll', store.s.enableInfiniteScroll); + prefer.set('useReactionPickerForContextMenu', store.s.useReactionPickerForContextMenu); + prefer.set('showGapBetweenNotesInTimeline', store.s.showGapBetweenNotesInTimeline); + prefer.set('instanceTicker', store.s.instanceTicker); + prefer.set('emojiPickerScale', store.s.emojiPickerScale); + prefer.set('emojiPickerWidth', store.s.emojiPickerWidth); + prefer.set('emojiPickerHeight', store.s.emojiPickerHeight); + prefer.set('emojiPickerStyle', store.s.emojiPickerStyle); + prefer.set('reportError', store.s.reportError); + prefer.set('squareAvatars', store.s.squareAvatars); + prefer.set('showAvatarDecorations', store.s.showAvatarDecorations); + prefer.set('numberOfPageCache', store.s.numberOfPageCache); + prefer.set('showNoteActionsOnlyHover', store.s.showNoteActionsOnlyHover); + prefer.set('showClipButtonInNoteFooter', store.s.showClipButtonInNoteFooter); + prefer.set('reactionsDisplaySize', store.s.reactionsDisplaySize); + prefer.set('limitWidthOfReaction', store.s.limitWidthOfReaction); + prefer.set('forceShowAds', store.s.forceShowAds); + prefer.set('aiChanMode', store.s.aiChanMode); + prefer.set('devMode', store.s.devMode); + prefer.set('mediaListWithOneImageAppearance', store.s.mediaListWithOneImageAppearance); + prefer.set('notificationPosition', store.s.notificationPosition); + prefer.set('notificationStackAxis', store.s.notificationStackAxis); + prefer.set('enableCondensedLine', store.s.enableCondensedLine); + prefer.set('keepScreenOn', store.s.keepScreenOn); + prefer.set('disableStreamingTimeline', store.s.disableStreamingTimeline); + prefer.set('useGroupedNotifications', store.s.useGroupedNotifications); + prefer.set('dataSaver', store.s.dataSaver); + prefer.set('enableSeasonalScreenEffect', store.s.enableSeasonalScreenEffect); + prefer.set('enableHorizontalSwipe', store.s.enableHorizontalSwipe); + prefer.set('useNativeUiForVideoAudioPlayer', store.s.useNativeUIForVideoAudioPlayer); + prefer.set('keepOriginalFilename', store.s.keepOriginalFilename); + prefer.set('alwaysConfirmFollow', store.s.alwaysConfirmFollow); + prefer.set('confirmWhenRevealingSensitiveMedia', store.s.confirmWhenRevealingSensitiveMedia); + prefer.set('contextMenu', store.s.contextMenu); + prefer.set('skipNoteRender', store.s.skipNoteRender); + prefer.set('showSoftWordMutedWord', store.s.showSoftWordMutedWord); + prefer.set('confirmOnReact', store.s.confirmOnReact); + prefer.set('sound.masterVolume', store.s.sound_masterVolume); + prefer.set('sound.notUseSound', store.s.sound_notUseSound); + prefer.set('sound.useSoundOnlyWhenActive', store.s.sound_useSoundOnlyWhenActive); + prefer.set('sound.on.note', store.s.sound_note as any); + prefer.set('sound.on.noteMy', store.s.sound_noteMy as any); + prefer.set('sound.on.notification', store.s.sound_notification as any); + prefer.set('sound.on.reaction', store.s.sound_reaction as any); store.set('deck.profile', deckStore.state.profile); store.set('deck.columns', deckStore.state.columns); store.set('deck.layout', deckStore.state.layout); store.set('menu', []); } - if (store.state.accountSetupWizard !== -1) { + if (store.s.accountSetupWizard !== -1) { const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkUserSetupDialog.vue')), {}, { closed: () => dispose(), }); @@ -502,7 +502,7 @@ export async function mainBoot() { post(); }, 'd': () => { - store.set('darkMode', !store.state.darkMode); + store.set('darkMode', !store.s.darkMode); }, 's': () => { mainRouter.push('/search'); diff --git a/packages/frontend/src/components/MkAutocomplete.vue b/packages/frontend/src/components/MkAutocomplete.vue index 912e2d65a5..7436d4f1b2 100644 --- a/packages/frontend/src/components/MkAutocomplete.vue +++ b/packages/frontend/src/components/MkAutocomplete.vue @@ -73,7 +73,7 @@ const emojiDb = computed(() => { url: char2path(x.char), })); - for (const index of Object.values(store.state.additionalUnicodeEmojiIndexes)) { + for (const index of Object.values(store.s.additionalUnicodeEmojiIndexes)) { for (const [emoji, keywords] of Object.entries(index)) { for (const k of keywords) { unicodeEmojiDB.push({ @@ -155,7 +155,7 @@ function complete(type: string, value: any) { emit('done', { type, value }); emit('closed'); if (type === 'emoji') { - let recents = store.state.recentlyUsedEmojis; + let recents = store.s.recentlyUsedEmojis; recents = recents.filter((emoji: any) => emoji !== value); recents.unshift(value); store.set('recentlyUsedEmojis', recents.splice(0, 32)); @@ -238,7 +238,7 @@ function exec() { } else if (props.type === 'emoji') { if (!props.q || props.q === '') { // 最近使った絵文字をサジェスト - emojis.value = store.state.recentlyUsedEmojis.map(emoji => emojiDb.value.find(dbEmoji => dbEmoji.emoji === emoji)).filter(x => x) as EmojiDef[]; + emojis.value = store.s.recentlyUsedEmojis.map(emoji => emojiDb.value.find(dbEmoji => dbEmoji.emoji === emoji)).filter(x => x) as EmojiDef[]; return; } diff --git a/packages/frontend/src/components/MkCaptcha.vue b/packages/frontend/src/components/MkCaptcha.vue index 05b8264a83..30eafb7a5b 100644 --- a/packages/frontend/src/components/MkCaptcha.vue +++ b/packages/frontend/src/components/MkCaptcha.vue @@ -154,7 +154,7 @@ async function requestRender() { captchaWidgetId.value = captcha.value.render(elem, { sitekey: props.sitekey, - theme: store.state.darkMode ? 'dark' : 'light', + theme: store.s.darkMode ? 'dark' : 'light', callback: callback, 'expired-callback': () => callback(undefined), 'error-callback': () => callback(undefined), diff --git a/packages/frontend/src/components/MkChart.vue b/packages/frontend/src/components/MkChart.vue index 4707d02ce9..c1a55906ae 100644 --- a/packages/frontend/src/components/MkChart.vue +++ b/packages/frontend/src/components/MkChart.vue @@ -161,7 +161,7 @@ const render = () => { chartInstance.destroy(); } - const vLineColor = store.state.darkMode ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)'; + const vLineColor = store.s.darkMode ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)'; const maxes = chartData.series.map((x, i) => Math.max(...x.data.map(d => d.y))); diff --git a/packages/frontend/src/components/MkCode.core.vue b/packages/frontend/src/components/MkCode.core.vue index 948419130e..8b39468d4c 100644 --- a/packages/frontend/src/components/MkCode.core.vue +++ b/packages/frontend/src/components/MkCode.core.vue @@ -22,7 +22,7 @@ const props = defineProps<{ }>(); const highlighter = await getHighlighter(); -const darkMode = store.reactiveState.darkMode; +const darkMode = store.r.darkMode; const codeLang = ref('js'); const [lightThemeName, darkThemeName] = await Promise.all([ diff --git a/packages/frontend/src/components/MkEmojiPicker.vue b/packages/frontend/src/components/MkEmojiPicker.vue index 214b244802..384682277e 100644 --- a/packages/frontend/src/components/MkEmojiPicker.vue +++ b/packages/frontend/src/components/MkEmojiPicker.vue @@ -166,7 +166,7 @@ const { emojiPickerHeight, } = prefer.r; -const recentlyUsedEmojis = store.reactiveState.recentlyUsedEmojis; +const recentlyUsedEmojis = store.r.recentlyUsedEmojis; const recentlyUsedEmojisDef = computed(() => { return recentlyUsedEmojis.value.map(getDef); @@ -319,7 +319,7 @@ watch(q, () => { } if (matches.size >= max) return matches; - for (const index of Object.values(store.state.additionalUnicodeEmojiIndexes)) { + for (const index of Object.values(store.s.additionalUnicodeEmojiIndexes)) { for (const emoji of emojis) { if (keywords.every(keyword => index[emoji.char].some(k => k.includes(keyword)))) { matches.add(emoji); @@ -336,7 +336,7 @@ watch(q, () => { } if (matches.size >= max) return matches; - for (const index of Object.values(store.state.additionalUnicodeEmojiIndexes)) { + for (const index of Object.values(store.s.additionalUnicodeEmojiIndexes)) { for (const emoji of emojis) { if (index[emoji.char].some(k => k.startsWith(newQ))) { matches.add(emoji); @@ -353,7 +353,7 @@ watch(q, () => { } if (matches.size >= max) return matches; - for (const index of Object.values(store.state.additionalUnicodeEmojiIndexes)) { + for (const index of Object.values(store.s.additionalUnicodeEmojiIndexes)) { for (const emoji of emojis) { if (index[emoji.char].some(k => k.includes(newQ))) { matches.add(emoji); @@ -429,7 +429,7 @@ function chosen(emoji: string | Misskey.entities.EmojiSimple | UnicodeEmojiDef, // 最近使った絵文字更新 if (!pinned.value?.includes(key)) { - let recents = store.state.recentlyUsedEmojis; + let recents = store.s.recentlyUsedEmojis; recents = recents.filter((emoji) => emoji !== key); recents.unshift(key); store.set('recentlyUsedEmojis', recents.splice(0, 32)); diff --git a/packages/frontend/src/components/MkFollowButton.vue b/packages/frontend/src/components/MkFollowButton.vue index 64828699d6..3d5d0ec5ab 100644 --- a/packages/frontend/src/components/MkFollowButton.vue +++ b/packages/frontend/src/components/MkFollowButton.vue @@ -121,11 +121,11 @@ async function onClick() { } else { await misskeyApi('following/create', { userId: props.user.id, - withReplies: store.state.defaultWithReplies, + withReplies: store.s.defaultWithReplies, }); emit('update:user', { ...props.user, - withReplies: store.state.defaultWithReplies, + withReplies: store.s.defaultWithReplies, }); hasPendingFollowRequestFromYou.value = true; diff --git a/packages/frontend/src/components/MkHeatmap.vue b/packages/frontend/src/components/MkHeatmap.vue index 4c4ae86db3..8339e68b07 100644 --- a/packages/frontend/src/components/MkHeatmap.vue +++ b/packages/frontend/src/components/MkHeatmap.vue @@ -106,7 +106,7 @@ async function renderChart() { await nextTick(); - const color = store.state.darkMode ? '#b4e900' : '#86b300'; + const color = store.s.darkMode ? '#b4e900' : '#86b300'; // 視覚上の分かりやすさのため上から最も大きい3つの値の平均を最大値とする const max = values.slice().sort((a, b) => b - a).slice(0, 3).reduce((a, b) => a + b, 0) / 3; diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue index 755e13279c..8dbb2a80d6 100644 --- a/packages/frontend/src/components/MkPostForm.vue +++ b/packages/frontend/src/components/MkPostForm.vue @@ -176,18 +176,18 @@ const text = ref(props.initialText ?? ''); const files = ref(props.initialFiles ?? []); const poll = ref(null); const useCw = ref(!!props.initialCw); -const showPreview = ref(store.state.showPreview); +const showPreview = ref(store.s.showPreview); watch(showPreview, () => store.set('showPreview', showPreview.value)); const showAddMfmFunction = ref(prefer.s.enableQuickAddMfmFunction); watch(showAddMfmFunction, () => prefer.set('enableQuickAddMfmFunction', showAddMfmFunction.value)); const cw = ref(props.initialCw ?? null); -const localOnly = ref(props.initialLocalOnly ?? (prefer.s.rememberNoteVisibility ? store.state.localOnly : prefer.s.defaultNoteLocalOnly)); -const visibility = ref(props.initialVisibility ?? (prefer.s.rememberNoteVisibility ? store.state.visibility : prefer.s.defaultNoteVisibility)); +const localOnly = ref(props.initialLocalOnly ?? (prefer.s.rememberNoteVisibility ? store.s.localOnly : prefer.s.defaultNoteLocalOnly)); +const visibility = ref(props.initialVisibility ?? (prefer.s.rememberNoteVisibility ? store.s.visibility : prefer.s.defaultNoteVisibility)); const visibleUsers = ref([]); if (props.initialVisibleUsers) { props.initialVisibleUsers.forEach(u => pushVisibleUser(u)); } -const reactionAcceptance = ref(store.state.reactionAcceptance); +const reactionAcceptance = ref(store.s.reactionAcceptance); const draghover = ref(false); const quoteId = ref(null); const hasNotSpecifiedMentions = ref(false); diff --git a/packages/frontend/src/components/MkRetentionHeatmap.vue b/packages/frontend/src/components/MkRetentionHeatmap.vue index 1dc1da0bc3..c53bf98f67 100644 --- a/packages/frontend/src/components/MkRetentionHeatmap.vue +++ b/packages/frontend/src/components/MkRetentionHeatmap.vue @@ -75,7 +75,7 @@ async function renderChart() { await nextTick(); - const color = store.state.darkMode ? '#b4e900' : '#86b300'; + const color = store.s.darkMode ? '#b4e900' : '#86b300'; const getYYYYMMDD = (date: Date) => { const y = date.getFullYear().toString().padStart(2, '0'); diff --git a/packages/frontend/src/components/MkRetentionLineChart.vue b/packages/frontend/src/components/MkRetentionLineChart.vue index dd4a8a1a6d..9e03be3e7f 100644 --- a/packages/frontend/src/components/MkRetentionLineChart.vue +++ b/packages/frontend/src/components/MkRetentionLineChart.vue @@ -42,7 +42,7 @@ const getDate = (ymd: string) => { onMounted(async () => { let raw = await misskeyApi('retention', { }); - const vLineColor = store.state.darkMode ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)'; + const vLineColor = store.s.darkMode ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)'; const accent = tinycolor(getComputedStyle(document.documentElement).getPropertyValue('--MI_THEME-accent')); const color = accent.toHex(); diff --git a/packages/frontend/src/components/MkUrlPreview.vue b/packages/frontend/src/components/MkUrlPreview.vue index f8ac638e40..f20aee0ce3 100644 --- a/packages/frontend/src/components/MkUrlPreview.vue +++ b/packages/frontend/src/components/MkUrlPreview.vue @@ -34,7 +34,7 @@ SPDX-License-Identifier: AGPL-3.0-only sandbox="allow-popups allow-popups-to-escape-sandbox allow-scripts allow-same-origin" scrolling="no" :style="{ position: 'relative', width: '100%', height: `${tweetHeight}px`, border: 0 }" - :src="`https://platform.twitter.com/embed/index.html?embedId=${embedId}&hideCard=false&hideThread=false&lang=en&theme=${store.state.darkMode ? 'dark' : 'light'}&id=${tweetId}`" + :src="`https://platform.twitter.com/embed/index.html?embedId=${embedId}&hideCard=false&hideThread=false&lang=en&theme=${store.s.darkMode ? 'dark' : 'light'}&id=${tweetId}`" >
diff --git a/packages/frontend/src/components/MkUserSelectDialog.vue b/packages/frontend/src/components/MkUserSelectDialog.vue index 1dbc143f8f..e5c6df267b 100644 --- a/packages/frontend/src/components/MkUserSelectDialog.vue +++ b/packages/frontend/src/components/MkUserSelectDialog.vue @@ -128,7 +128,7 @@ async function ok() { dialogEl.value?.close(); // 最近使ったユーザー更新 - let recents = store.state.recentlyUsedUsers; + let recents = store.s.recentlyUsedUsers; recents = recents.filter(x => x !== selected.value?.id); recents.unshift(selected.value.id); store.set('recentlyUsedUsers', recents.splice(0, 16)); @@ -141,7 +141,7 @@ function cancel() { onMounted(() => { misskeyApi('users/show', { - userIds: store.state.recentlyUsedUsers, + userIds: store.s.recentlyUsedUsers, }).then(foundUsers => { let _users = foundUsers; _users = _users.filter((u) => { diff --git a/packages/frontend/src/components/MkUserSetupDialog.vue b/packages/frontend/src/components/MkUserSetupDialog.vue index cba6f6fd90..eb3a69217e 100644 --- a/packages/frontend/src/components/MkUserSetupDialog.vue +++ b/packages/frontend/src/components/MkUserSetupDialog.vue @@ -149,7 +149,7 @@ const emit = defineEmits<{ const dialog = shallowRef>(); // eslint-disable-next-line vue/no-setup-props-reactivity-loss -const page = ref(store.state.accountSetupWizard); +const page = ref(store.s.accountSetupWizard); watch(page, () => { store.set('accountSetupWizard', page.value); diff --git a/packages/frontend/src/components/MkVisitorDashboard.ActiveUsersChart.vue b/packages/frontend/src/components/MkVisitorDashboard.ActiveUsersChart.vue index 3aa76be0bc..872d4201bb 100644 --- a/packages/frontend/src/components/MkVisitorDashboard.ActiveUsersChart.vue +++ b/packages/frontend/src/components/MkVisitorDashboard.ActiveUsersChart.vue @@ -59,7 +59,7 @@ async function renderChart() { await nextTick(); - const vLineColor = store.state.darkMode ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)'; + const vLineColor = store.s.darkMode ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)'; const computedStyle = getComputedStyle(document.documentElement); const accent = tinycolor(computedStyle.getPropertyValue('--MI_THEME-accent')).toHexString(); diff --git a/packages/frontend/src/components/global/MkAd.vue b/packages/frontend/src/components/global/MkAd.vue index 4f9bfd02bd..c196519c15 100644 --- a/packages/frontend/src/components/global/MkAd.vue +++ b/packages/frontend/src/components/global/MkAd.vue @@ -67,7 +67,7 @@ const choseAd = (): Ad | null => { return props.specify; } - const allAds = instance.ads.map(ad => store.state.mutedAds.includes(ad.id) ? { + const allAds = instance.ads.map(ad => store.s.mutedAds.includes(ad.id) ? { ...ad, ratio: 0, } : ad); @@ -112,7 +112,7 @@ const shouldHide = ref(!prefer.s.forceShowAds && $i && $i.policies.canHideAds && function reduceFrequency(): void { if (chosen.value == null) return; - if (store.state.mutedAds.includes(chosen.value.id)) return; + if (store.s.mutedAds.includes(chosen.value.id)) return; store.push('mutedAds', chosen.value.id); os.success(); chosen.value = choseAd(); diff --git a/packages/frontend/src/components/global/MkFooterSpacer.vue b/packages/frontend/src/components/global/MkFooterSpacer.vue index d08645aaf3..45b415a7f6 100644 --- a/packages/frontend/src/components/global/MkFooterSpacer.vue +++ b/packages/frontend/src/components/global/MkFooterSpacer.vue @@ -4,7 +4,7 @@ SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/packages/frontend/src/pages/settings/statusbar.vue b/packages/frontend/src/pages/settings/statusbar.vue index 2737af3aa4..7b09093c85 100644 --- a/packages/frontend/src/pages/settings/statusbar.vue +++ b/packages/frontend/src/pages/settings/statusbar.vue @@ -37,7 +37,7 @@ onMounted(() => { }); async function add() { - prefer.set('statusbars', [...statusbars.value, { + prefer.commit('statusbars', [...statusbars.value, { id: uuid(), type: null, black: false, diff --git a/packages/frontend/src/pages/settings/theme.vue b/packages/frontend/src/pages/settings/theme.vue index 397c387af6..f536b92599 100644 --- a/packages/frontend/src/pages/settings/theme.vue +++ b/packages/frontend/src/pages/settings/theme.vue @@ -179,7 +179,7 @@ const darkThemeId = computed({ set(id) { const t = themes.value.find(x => x.id === id); if (t) { // テーマエディタでテーマを作成したときなどは、themesに反映されないため undefined になる - prefer.set('darkTheme', t); + prefer.commit('darkTheme', t); } }, }); @@ -191,7 +191,7 @@ const lightThemeId = computed({ set(id) { const t = themes.value.find(x => x.id === id); if (t) { // テーマエディタでテーマを作成したときなどは、themesに反映されないため undefined になる - prefer.set('lightTheme', t); + prefer.commit('lightTheme', t); } }, }); diff --git a/packages/frontend/src/pages/theme-editor.vue b/packages/frontend/src/pages/theme-editor.vue index 64e16987a9..43ac5f38d7 100644 --- a/packages/frontend/src/pages/theme-editor.vue +++ b/packages/frontend/src/pages/theme-editor.vue @@ -201,9 +201,9 @@ async function saveAs() { await addTheme(theme.value); applyTheme(theme.value); if (store.s.darkMode) { - prefer.set('darkTheme', theme.value); + prefer.commit('darkTheme', theme.value); } else { - prefer.set('lightTheme', theme.value); + prefer.commit('lightTheme', theme.value); } changed.value = false; os.alert({ diff --git a/packages/frontend/src/plugin.ts b/packages/frontend/src/plugin.ts index 25d69cd727..1b51850e77 100644 --- a/packages/frontend/src/plugin.ts +++ b/packages/frontend/src/plugin.ts @@ -145,7 +145,7 @@ export async function installPlugin(code: string, meta?: AiScriptPluginMeta) { src: code, }; - prefer.set('plugins', prefer.s.plugins.concat(plugin)); + prefer.commit('plugins', prefer.s.plugins.concat(plugin)); await authorizePlugin(plugin); @@ -154,7 +154,7 @@ export async function installPlugin(code: string, meta?: AiScriptPluginMeta) { export async function uninstallPlugin(plugin: Plugin) { abortPlugin(plugin); - prefer.set('plugins', prefer.s.plugins.filter(x => x.installId !== plugin.installId)); + prefer.commit('plugins', prefer.s.plugins.filter(x => x.installId !== plugin.installId)); if (Object.hasOwn(store.s.pluginTokens, plugin.installId)) { await os.apiWithDialog('i/revoke-token', { token: store.s.pluginTokens[plugin.installId], @@ -311,13 +311,13 @@ export async function configPlugin(plugin: Plugin) { const { canceled, result } = await os.form(plugin.name, config); if (canceled) return; - prefer.set('plugins', prefer.s.plugins.map(x => x.installId === plugin.installId ? { ...x, configData: result } : x)); + prefer.commit('plugins', prefer.s.plugins.map(x => x.installId === plugin.installId ? { ...x, configData: result } : x)); reloadPlugin(plugin); } export function changePluginActive(plugin: Plugin, active: boolean) { - prefer.set('plugins', prefer.s.plugins.map(x => x.installId === plugin.installId ? { ...x, active } : x)); + prefer.commit('plugins', prefer.s.plugins.map(x => x.installId === plugin.installId ? { ...x, active } : x)); if (active) { launchPlugin(plugin.installId); diff --git a/packages/frontend/src/preferences/profile.ts b/packages/frontend/src/preferences/profile.ts index 1d03639d37..c1320b0dcc 100644 --- a/packages/frontend/src/preferences/profile.ts +++ b/packages/frontend/src/preferences/profile.ts @@ -222,7 +222,7 @@ export class ProfileManager extends EventEmitter<{ text: i18n.ts.resetToDefaultValue, danger: true, action: () => { - this.store.set(key, PREF_DEF[key].default); + this.store.commit(key, PREF_DEF[key].default); }, }, { type: 'divider', diff --git a/packages/frontend/src/preferences/store.ts b/packages/frontend/src/preferences/store.ts index 58684ce024..e10afcc308 100644 --- a/packages/frontend/src/preferences/store.ts +++ b/packages/frontend/src/preferences/store.ts @@ -44,7 +44,7 @@ export class Store> extends EventEmitter(key: K, value: Data[K]) { + public commit(key: K, value: Data[K]) { this.r[key].value = this.s[key] = value; this.emit('updated', { key, value }); } @@ -84,7 +84,7 @@ export class Store> extends EventEmitter { const val = setter ? setter(value) : value; - this.set(key, val); + this.commit(key, val); valueRef.value = val; }, }); diff --git a/packages/frontend/src/theme-store.ts b/packages/frontend/src/theme-store.ts index c02005a15c..5d09ec27f9 100644 --- a/packages/frontend/src/theme-store.ts +++ b/packages/frontend/src/theme-store.ts @@ -23,11 +23,11 @@ export async function addTheme(theme: Theme): Promise { if (themes.some(t => t.id === theme.id)) { throw new Error('already exists'); } - prefer.set('themes', [...themes, theme]); + prefer.commit('themes', [...themes, theme]); } export async function removeTheme(theme: Theme): Promise { if ($i == null) return; const themes = getThemes().filter(t => t.id !== theme.id); - prefer.set('themes', themes); + prefer.commit('themes', themes); } diff --git a/packages/frontend/src/ui/classic.vue b/packages/frontend/src/ui/classic.vue index 3d4e8ed19d..3faacc5125 100644 --- a/packages/frontend/src/ui/classic.vue +++ b/packages/frontend/src/ui/classic.vue @@ -144,7 +144,7 @@ if (window.innerWidth < 1024) { document.documentElement.style.overflowY = 'scroll'; if (prefer.s.widgets.length === 0) { - prefer.set('widgets', [{ + prefer.commit('widgets', [{ name: 'calendar', id: 'a', place: null, data: {}, }, { diff --git a/packages/frontend/src/ui/universal.vue b/packages/frontend/src/ui/universal.vue index 633eca7542..8d0015a046 100644 --- a/packages/frontend/src/ui/universal.vue +++ b/packages/frontend/src/ui/universal.vue @@ -178,7 +178,7 @@ if (window.innerWidth > 1024) { } if (prefer.s.widgets.length === 0) { - prefer.set('widgets', [{ + prefer.commit('widgets', [{ name: 'calendar', id: 'a', place: 'right', data: {}, }, { diff --git a/packages/frontend/src/ui/universal.widgets.vue b/packages/frontend/src/ui/universal.widgets.vue index ea2b7f2cf2..1a6d62e19b 100644 --- a/packages/frontend/src/ui/universal.widgets.vue +++ b/packages/frontend/src/ui/universal.widgets.vue @@ -37,18 +37,18 @@ const widgets = computed(() => { }); function addWidget(widget) { - prefer.set('widgets', [{ + prefer.commit('widgets', [{ ...widget, place: props.place, }, ...prefer.s.widgets]); } function removeWidget(widget) { - prefer.set('widgets', prefer.s.widgets.filter(w => w.id !== widget.id)); + prefer.commit('widgets', prefer.s.widgets.filter(w => w.id !== widget.id)); } function updateWidget({ id, data }) { - prefer.set('widgets', prefer.s.widgets.map(w => w.id === id ? { + prefer.commit('widgets', prefer.s.widgets.map(w => w.id === id ? { ...w, data, place: props.place, @@ -57,17 +57,17 @@ function updateWidget({ id, data }) { function updateWidgets(thisWidgets) { if (props.place === null) { - prefer.set('widgets', thisWidgets); + prefer.commit('widgets', thisWidgets); return; } if (props.place === 'left') { - prefer.set('widgets', [ + prefer.commit('widgets', [ ...thisWidgets.map(w => ({ ...w, place: 'left' })), ...prefer.s.widgets.filter(w => w.place !== 'left' && !thisWidgets.some(t => w.id === t.id)), ]); return; } - prefer.set('widgets', [ + prefer.commit('widgets', [ ...prefer.s.widgets.filter(w => w.place === 'left' && !thisWidgets.some(t => w.id === t.id)), ...thisWidgets.map(w => ({ ...w, place: 'right' })), ]); From 7957ee51910bca040ee2c4c5fdf1b965bd1b43a8 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Mon, 10 Mar 2025 11:28:54 +0900 Subject: [PATCH 18/78] fix(frontend): rename pizzax fields --- packages/frontend/src/boot/main-boot.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/frontend/src/boot/main-boot.ts b/packages/frontend/src/boot/main-boot.ts index 72b05ad05e..bf3ab12682 100644 --- a/packages/frontend/src/boot/main-boot.ts +++ b/packages/frontend/src/boot/main-boot.ts @@ -223,9 +223,9 @@ export async function mainBoot() { prefer.commit('sound.on.noteMy', store.s.sound_noteMy as any); prefer.commit('sound.on.notification', store.s.sound_notification as any); prefer.commit('sound.on.reaction', store.s.sound_reaction as any); - store.set('deck.profile', deckStore.state.profile); - store.set('deck.columns', deckStore.state.columns); - store.set('deck.layout', deckStore.state.layout); + store.set('deck.profile', deckStore.s.profile); + store.set('deck.columns', deckStore.s.columns); + store.set('deck.layout', deckStore.s.layout); store.set('menu', []); } From 6c9153300d8287fdea7b780500d298865ed728e8 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Mon, 10 Mar 2025 12:03:54 +0900 Subject: [PATCH 19/78] chore(frontend): tweak lockdown setting --- locales/index.d.ts | 4 ++++ locales/ja-JP.yml | 1 + packages/frontend/src/pages/settings/privacy.vue | 5 +++-- .../frontend/src/utility/autogen/settings-search-index.ts | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/locales/index.d.ts b/locales/index.d.ts index 344c3ccf9d..0cdd428c82 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -5395,6 +5395,10 @@ export interface Locale extends ILocale { * リモートサーバーに連合されたノートには効果が及ばない場合があります。 */ "mayNotEffectForFederatedNotes": string; + /** + * これらの制限は簡易的なものです。リモートサーバーでの閲覧やモデレーション時など、一部のシチュエーションでは適用されない場合があります。 + */ + "mayNotEffectSomeSituations": string; /** * 指定した時間を経過しているノート */ diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 301b68e21d..1e41c43864 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1349,6 +1349,7 @@ _accountSettings: makeNotesHiddenBefore: "過去のノートを非公開化する" makeNotesHiddenBeforeDescription: "この機能が有効になっている間、設定された日時より過去、または設定された時間を経過しているノートが自分のみ表示可能(非公開化)になります。無効に戻すと、ノートの公開状態も元に戻ります。" mayNotEffectForFederatedNotes: "リモートサーバーに連合されたノートには効果が及ばない場合があります。" + mayNotEffectSomeSituations: "これらの制限は簡易的なものです。リモートサーバーでの閲覧やモデレーション時など、一部のシチュエーションでは適用されない場合があります。" notesHavePassedSpecifiedPeriod: "指定した時間を経過しているノート" notesOlderThanSpecifiedDateAndTime: "指定した日時より前のノート" diff --git a/packages/frontend/src/pages/settings/privacy.vue b/packages/frontend/src/pages/settings/privacy.vue index 7660a591b4..7b69e91be9 100644 --- a/packages/frontend/src/pages/settings/privacy.vue +++ b/packages/frontend/src/pages/settings/privacy.vue @@ -123,7 +123,6 @@ SPDX-License-Identifier: AGPL-3.0-only @@ -161,10 +160,11 @@ SPDX-License-Identifier: AGPL-3.0-only + + {{ i18n.ts._accountSettings.mayNotEffectSomeSituations }}
@@ -188,6 +188,7 @@ import { formatDateTimeString } from '@/utility/format-time-string.js'; import MkInput from '@/components/MkInput.vue'; import * as os from '@/os.js'; import MkDisableSection from '@/components/MkDisableSection.vue'; +import MkInfo from '@/components/MkInfo.vue'; const $i = signinRequired(); diff --git a/packages/frontend/src/utility/autogen/settings-search-index.ts b/packages/frontend/src/utility/autogen/settings-search-index.ts index 8e2a896b17..66476672e3 100644 --- a/packages/frontend/src/utility/autogen/settings-search-index.ts +++ b/packages/frontend/src/utility/autogen/settings-search-index.ts @@ -253,7 +253,7 @@ export const searchIndexes: SearchIndexItem[] = [ keywords: ['follower', i18n.ts._accountSettings.makeNotesFollowersOnlyBeforeDescription], }, { - id: '2prkeWRSd', + id: 'ebJ9IUbik', label: i18n.ts._accountSettings.makeNotesHiddenBefore, keywords: ['hidden', i18n.ts._accountSettings.makeNotesHiddenBeforeDescription], }, From 5ed1101bbda9d6e9c03d39c106e0da868e1d419b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 12:30:37 +0900 Subject: [PATCH 20/78] chore(deps): update [root] update dependencies (#15624) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 335 ++++++++++++++++++++++++++++--------------------- 2 files changed, 196 insertions(+), 143 deletions(-) diff --git a/package.json b/package.json index 73577833f8..ff891ab9a4 100644 --- a/package.json +++ b/package.json @@ -65,12 +65,12 @@ }, "devDependencies": { "@misskey-dev/eslint-plugin": "2.1.0", - "@types/node": "22.13.9", + "@types/node": "22.13.10", "@typescript-eslint/eslint-plugin": "8.26.0", "@typescript-eslint/parser": "8.26.0", "cross-env": "7.0.3", "cypress": "14.1.0", - "eslint": "9.21.0", + "eslint": "9.22.0", "globals": "16.0.0", "ncp": "2.0.0", "pnpm": "10.6.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 46ce2bf978..4b70b273d0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -54,16 +54,16 @@ importers: devDependencies: '@misskey-dev/eslint-plugin': specifier: 2.1.0 - version: 2.1.0(@eslint/compat@1.1.1)(@stylistic/eslint-plugin@2.13.0(eslint@9.21.0)(typescript@5.8.2))(@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0)(typescript@5.8.2))(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0))(eslint@9.21.0)(globals@16.0.0) + version: 2.1.0(@eslint/compat@1.1.1)(@stylistic/eslint-plugin@2.13.0(eslint@9.22.0)(typescript@5.8.2))(@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0)(typescript@5.8.2))(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0))(eslint@9.22.0)(globals@16.0.0) '@types/node': - specifier: 22.13.9 - version: 22.13.9 + specifier: 22.13.10 + version: 22.13.10 '@typescript-eslint/eslint-plugin': specifier: 8.26.0 - version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0)(typescript@5.8.2) '@typescript-eslint/parser': specifier: 8.26.0 - version: 8.26.0(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(eslint@9.22.0)(typescript@5.8.2) cross-env: specifier: 7.0.3 version: 7.0.3 @@ -71,8 +71,8 @@ importers: specifier: 14.1.0 version: 14.1.0 eslint: - specifier: 9.21.0 - version: 9.21.0 + specifier: 9.22.0 + version: 9.22.0 globals: specifier: 16.0.0 version: 16.0.0 @@ -569,10 +569,10 @@ importers: version: 8.5.14 '@typescript-eslint/eslint-plugin': specifier: 8.24.0 - version: 8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.21.0)(typescript@5.7.3))(eslint@9.21.0)(typescript@5.7.3) + version: 8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.22.0)(typescript@5.7.3))(eslint@9.22.0)(typescript@5.7.3) '@typescript-eslint/parser': specifier: 8.24.0 - version: 8.24.0(eslint@9.21.0)(typescript@5.7.3) + version: 8.24.0(eslint@9.22.0)(typescript@5.7.3) aws-sdk-client-mock: specifier: 4.1.0 version: 4.1.0 @@ -581,7 +581,7 @@ importers: version: 7.0.3 eslint-plugin-import: specifier: 2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.24.0(eslint@9.21.0)(typescript@5.7.3))(eslint@9.21.0) + version: 2.31.0(@typescript-eslint/parser@8.24.0(eslint@9.22.0)(typescript@5.7.3))(eslint@9.22.0) execa: specifier: 8.0.1 version: 8.0.1 @@ -973,10 +973,10 @@ importers: version: 8.18.0 '@typescript-eslint/eslint-plugin': specifier: 8.26.0 - version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0)(typescript@5.8.2) '@typescript-eslint/parser': specifier: 8.26.0 - version: 8.26.0(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(eslint@9.22.0)(typescript@5.8.2) '@vitest/coverage-v8': specifier: 3.0.8 version: 3.0.8(vitest@3.0.8(@types/debug@4.1.12)(@types/node@22.13.9)(happy-dom@17.3.0)(jsdom@26.0.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.7.3(@types/node@22.13.9)(typescript@5.8.2))(sass@1.85.1)(terser@5.39.0)(tsx@4.19.3)) @@ -994,10 +994,10 @@ importers: version: 14.1.0 eslint-plugin-import: specifier: 2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0) + version: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0) eslint-plugin-vue: specifier: 10.0.0 - version: 10.0.0(eslint@9.21.0)(vue-eslint-parser@10.1.1(eslint@9.21.0)) + version: 10.0.0(eslint@9.22.0)(vue-eslint-parser@10.1.1(eslint@9.22.0)) fast-glob: specifier: 3.3.3 version: 3.3.3 @@ -1054,7 +1054,7 @@ importers: version: 2.2.8 vue-eslint-parser: specifier: 10.1.1 - version: 10.1.1(eslint@9.21.0) + version: 10.1.1(eslint@9.22.0) vue-tsc: specifier: 2.2.8 version: 2.2.8(typescript@5.8.2) @@ -1166,10 +1166,10 @@ importers: version: 8.18.0 '@typescript-eslint/eslint-plugin': specifier: 8.26.0 - version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0)(typescript@5.8.2) '@typescript-eslint/parser': specifier: 8.26.0 - version: 8.26.0(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(eslint@9.22.0)(typescript@5.8.2) '@vitest/coverage-v8': specifier: 3.0.8 version: 3.0.8(vitest@3.0.8(@types/debug@4.1.12)(@types/node@22.13.9)(happy-dom@17.3.0)(jsdom@26.0.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.7.3(@types/node@22.13.9)(typescript@5.8.2))(sass@1.85.1)(terser@5.39.0)(tsx@4.19.3)) @@ -1184,10 +1184,10 @@ importers: version: 7.0.3 eslint-plugin-import: specifier: 2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0) + version: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0) eslint-plugin-vue: specifier: 10.0.0 - version: 10.0.0(eslint@9.21.0)(vue-eslint-parser@10.1.1(eslint@9.21.0)) + version: 10.0.0(eslint@9.22.0)(vue-eslint-parser@10.1.1(eslint@9.22.0)) fast-glob: specifier: 3.3.3 version: 3.3.3 @@ -1220,7 +1220,7 @@ importers: version: 2.2.8 vue-eslint-parser: specifier: 10.1.1 - version: 10.1.1(eslint@9.21.0) + version: 10.1.1(eslint@9.22.0) vue-tsc: specifier: 2.2.8 version: 2.2.8(typescript@5.8.2) @@ -1239,16 +1239,16 @@ importers: version: 22.13.9 '@typescript-eslint/eslint-plugin': specifier: 8.26.0 - version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0)(typescript@5.8.2) '@typescript-eslint/parser': specifier: 8.26.0 - version: 8.26.0(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(eslint@9.22.0)(typescript@5.8.2) esbuild: specifier: 0.25.0 version: 0.25.0 eslint-plugin-vue: specifier: 10.0.0 - version: 10.0.0(eslint@9.21.0)(vue-eslint-parser@10.1.1(eslint@9.21.0)) + version: 10.0.0(eslint@9.22.0)(vue-eslint-parser@10.1.1(eslint@9.22.0)) nodemon: specifier: 3.1.9 version: 3.1.9 @@ -1257,7 +1257,7 @@ importers: version: 5.8.2 vue-eslint-parser: specifier: 10.1.1 - version: 10.1.1(eslint@9.21.0) + version: 10.1.1(eslint@9.22.0) packages/misskey-bubble-game: dependencies: @@ -1282,10 +1282,10 @@ importers: version: 3.0.8 '@typescript-eslint/eslint-plugin': specifier: 8.26.0 - version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0)(typescript@5.8.2) '@typescript-eslint/parser': specifier: 8.26.0 - version: 8.26.0(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(eslint@9.22.0)(typescript@5.8.2) esbuild: specifier: 0.25.0 version: 0.25.0 @@ -1328,10 +1328,10 @@ importers: version: 22.13.9 '@typescript-eslint/eslint-plugin': specifier: 8.26.0 - version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0)(typescript@5.8.2) '@typescript-eslint/parser': specifier: 8.26.0 - version: 8.26.0(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(eslint@9.22.0)(typescript@5.8.2) esbuild: specifier: 0.25.0 version: 0.25.0 @@ -1376,10 +1376,10 @@ importers: version: 22.13.9 '@typescript-eslint/eslint-plugin': specifier: 8.26.0 - version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0)(typescript@5.8.2) '@typescript-eslint/parser': specifier: 8.26.0 - version: 8.26.0(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(eslint@9.22.0)(typescript@5.8.2) openapi-types: specifier: 12.1.3 version: 12.1.3 @@ -1407,10 +1407,10 @@ importers: version: 22.13.9 '@typescript-eslint/eslint-plugin': specifier: 8.26.0 - version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0)(typescript@5.8.2) '@typescript-eslint/parser': specifier: 8.26.0 - version: 8.26.0(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(eslint@9.22.0)(typescript@5.8.2) esbuild: specifier: 0.25.0 version: 0.25.0 @@ -1441,13 +1441,13 @@ importers: devDependencies: '@typescript-eslint/parser': specifier: 8.26.0 - version: 8.26.0(eslint@9.21.0)(typescript@5.8.2) + version: 8.26.0(eslint@9.22.0)(typescript@5.8.2) '@typescript/lib-webworker': specifier: npm:@types/serviceworker@0.0.74 version: '@types/serviceworker@0.0.74' eslint-plugin-import: specifier: 2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0) + version: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0) nodemon: specifier: 3.1.9 version: 3.1.9 @@ -2141,6 +2141,10 @@ packages: resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-helpers@0.1.0': + resolution: {integrity: sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.12.0': resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2149,8 +2153,8 @@ packages: resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.21.0': - resolution: {integrity: sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==} + '@eslint/js@9.22.0': + resolution: {integrity: sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': @@ -4198,6 +4202,9 @@ packages: '@types/node-fetch@2.6.11': resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} + '@types/node@22.13.10': + resolution: {integrity: sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==} + '@types/node@22.13.4': resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==} @@ -6113,6 +6120,10 @@ packages: resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-scope@8.3.0: + resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6121,8 +6132,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.21.0: - resolution: {integrity: sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==} + eslint@9.22.0: + resolution: {integrity: sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -11850,9 +11861,9 @@ snapshots: '@esbuild/win32-x64@0.25.0': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.21.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.22.0)': dependencies: - eslint: 9.21.0 + eslint: 9.22.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -11867,6 +11878,8 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/config-helpers@0.1.0': {} + '@eslint/core@0.12.0': dependencies: '@types/json-schema': 7.0.15 @@ -11885,7 +11898,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.21.0': {} + '@eslint/js@9.22.0': {} '@eslint/object-schema@2.1.6': {} @@ -12165,7 +12178,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.13.9 + '@types/node': 22.13.10 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -12178,14 +12191,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.9 + '@types/node': 22.13.10 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.7.1 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.13.9) + jest-config: 29.7.0(@types/node@22.13.10) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -12214,7 +12227,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.9 + '@types/node': 22.13.10 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -12232,7 +12245,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.13.9 + '@types/node': 22.13.10 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -12254,7 +12267,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.13.9 + '@types/node': 22.13.10 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -12324,7 +12337,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/yargs': 17.0.19 chalk: 4.1.2 @@ -12434,14 +12447,14 @@ snapshots: '@misskey-dev/browser-image-resizer@2024.1.0': {} - '@misskey-dev/eslint-plugin@2.1.0(@eslint/compat@1.1.1)(@stylistic/eslint-plugin@2.13.0(eslint@9.21.0)(typescript@5.8.2))(@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0)(typescript@5.8.2))(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0))(eslint@9.21.0)(globals@16.0.0)': + '@misskey-dev/eslint-plugin@2.1.0(@eslint/compat@1.1.1)(@stylistic/eslint-plugin@2.13.0(eslint@9.22.0)(typescript@5.8.2))(@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0)(typescript@5.8.2))(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0))(eslint@9.22.0)(globals@16.0.0)': dependencies: '@eslint/compat': 1.1.1 - '@stylistic/eslint-plugin': 2.13.0(eslint@9.21.0)(typescript@5.8.2) - '@typescript-eslint/eslint-plugin': 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0)(typescript@5.8.2) - '@typescript-eslint/parser': 8.26.0(eslint@9.21.0)(typescript@5.8.2) - eslint: 9.21.0 - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0) + '@stylistic/eslint-plugin': 2.13.0(eslint@9.22.0)(typescript@5.8.2) + '@typescript-eslint/eslint-plugin': 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.26.0(eslint@9.22.0)(typescript@5.8.2) + eslint: 9.22.0 + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0) globals: 16.0.0 '@misskey-dev/sharp-read-bmp@1.2.0': @@ -13975,10 +13988,10 @@ snapshots: vue: 3.5.13(typescript@5.8.2) vue-component-type-helpers: 2.2.8 - '@stylistic/eslint-plugin@2.13.0(eslint@9.21.0)(typescript@5.8.2)': + '@stylistic/eslint-plugin@2.13.0(eslint@9.22.0)(typescript@5.8.2)': dependencies: - '@typescript-eslint/utils': 8.26.0(eslint@9.21.0)(typescript@5.8.2) - eslint: 9.21.0 + '@typescript-eslint/utils': 8.26.0(eslint@9.22.0)(typescript@5.8.2) + eslint: 9.22.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 estraverse: 5.3.0 @@ -14228,7 +14241,7 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/archiver@6.0.3': dependencies: @@ -14264,7 +14277,7 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.35 - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/braces@3.0.1': {} @@ -14278,11 +14291,11 @@ snapshots: '@types/connect@3.4.35': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/connect@3.4.36': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/content-disposition@0.5.8': {} @@ -14307,7 +14320,7 @@ snapshots: '@types/express-serve-static-core@4.17.33': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 @@ -14320,11 +14333,11 @@ snapshots: '@types/fluent-ffmpeg@2.1.27': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/graceful-fs@4.1.6': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/hammerjs@2.0.46': {} @@ -14338,7 +14351,7 @@ snapshots: '@types/http-link-header@1.0.7': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/istanbul-lib-coverage@2.0.4': {} @@ -14359,7 +14372,7 @@ snapshots: '@types/jsdom@21.1.7': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/tough-cookie': 4.0.2 parse5: 7.2.1 @@ -14395,13 +14408,17 @@ snapshots: '@types/mysql@2.15.26': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/node-fetch@2.6.11': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 form-data: 4.0.2 + '@types/node@22.13.10': + dependencies: + undici-types: 6.20.0 + '@types/node@22.13.4': dependencies: undici-types: 6.20.0 @@ -14412,7 +14429,7 @@ snapshots: '@types/nodemailer@6.4.17': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/normalize-package-data@2.4.1': {} @@ -14423,11 +14440,11 @@ snapshots: '@types/oauth2orize@1.11.5': dependencies: '@types/express': 4.17.17 - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/oauth@0.9.6': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/offscreencanvas@2019.3.0': {} @@ -14439,13 +14456,13 @@ snapshots: '@types/pg@8.11.11': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 pg-protocol: 1.7.0 pg-types: 4.0.1 '@types/pg@8.6.1': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 pg-protocol: 1.7.0 pg-types: 2.2.0 @@ -14457,7 +14474,7 @@ snapshots: '@types/qrcode@1.5.5': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/qs@6.9.7': {} @@ -14475,7 +14492,7 @@ snapshots: '@types/readdir-glob@1.1.1': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/rename@1.0.7': {} @@ -14496,7 +14513,7 @@ snapshots: '@types/serve-static@1.15.1': dependencies: '@types/mime': 3.0.1 - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/serviceworker@0.0.74': {} @@ -14520,7 +14537,7 @@ snapshots: '@types/tedious@4.0.14': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/throttle-debounce@5.0.2': {} @@ -14538,19 +14555,19 @@ snapshots: '@types/vary@1.1.3': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/web-push@3.6.4': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/ws@8.18.0': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/ws@8.5.14': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 '@types/yargs-parser@21.0.0': {} @@ -14560,18 +14577,18 @@ snapshots: '@types/yauzl@2.10.0': dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 optional: true - '@typescript-eslint/eslint-plugin@8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.21.0)(typescript@5.7.3))(eslint@9.21.0)(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.22.0)(typescript@5.7.3))(eslint@9.22.0)(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.24.0(eslint@9.21.0)(typescript@5.7.3) + '@typescript-eslint/parser': 8.24.0(eslint@9.22.0)(typescript@5.7.3) '@typescript-eslint/scope-manager': 8.24.0 - '@typescript-eslint/type-utils': 8.24.0(eslint@9.21.0)(typescript@5.7.3) - '@typescript-eslint/utils': 8.24.0(eslint@9.21.0)(typescript@5.7.3) + '@typescript-eslint/type-utils': 8.24.0(eslint@9.22.0)(typescript@5.7.3) + '@typescript-eslint/utils': 8.24.0(eslint@9.22.0)(typescript@5.7.3) '@typescript-eslint/visitor-keys': 8.24.0 - eslint: 9.21.0 + eslint: 9.22.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -14580,15 +14597,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0)(typescript@5.8.2)': + '@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0)(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.26.0(eslint@9.21.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.26.0(eslint@9.22.0)(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.0 - '@typescript-eslint/type-utils': 8.26.0(eslint@9.21.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.26.0(eslint@9.21.0)(typescript@5.8.2) + '@typescript-eslint/type-utils': 8.26.0(eslint@9.22.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.0(eslint@9.22.0)(typescript@5.8.2) '@typescript-eslint/visitor-keys': 8.26.0 - eslint: 9.21.0 + eslint: 9.22.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -14597,26 +14614,26 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.24.0(eslint@9.21.0)(typescript@5.7.3)': + '@typescript-eslint/parser@8.24.0(eslint@9.22.0)(typescript@5.7.3)': dependencies: '@typescript-eslint/scope-manager': 8.24.0 '@typescript-eslint/types': 8.24.0 '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3) '@typescript-eslint/visitor-keys': 8.24.0 debug: 4.4.0(supports-color@8.1.1) - eslint: 9.21.0 + eslint: 9.22.0 typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2)': + '@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2)': dependencies: '@typescript-eslint/scope-manager': 8.26.0 '@typescript-eslint/types': 8.26.0 '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2) '@typescript-eslint/visitor-keys': 8.26.0 debug: 4.4.0(supports-color@8.1.1) - eslint: 9.21.0 + eslint: 9.22.0 typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -14631,23 +14648,23 @@ snapshots: '@typescript-eslint/types': 8.26.0 '@typescript-eslint/visitor-keys': 8.26.0 - '@typescript-eslint/type-utils@8.24.0(eslint@9.21.0)(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.24.0(eslint@9.22.0)(typescript@5.7.3)': dependencies: '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.24.0(eslint@9.21.0)(typescript@5.7.3) + '@typescript-eslint/utils': 8.24.0(eslint@9.22.0)(typescript@5.7.3) debug: 4.4.0(supports-color@8.1.1) - eslint: 9.21.0 + eslint: 9.22.0 ts-api-utils: 2.0.1(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.26.0(eslint@9.21.0)(typescript@5.8.2)': + '@typescript-eslint/type-utils@8.26.0(eslint@9.22.0)(typescript@5.8.2)': dependencies: '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2) - '@typescript-eslint/utils': 8.26.0(eslint@9.21.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.0(eslint@9.22.0)(typescript@5.8.2) debug: 4.4.0(supports-color@8.1.1) - eslint: 9.21.0 + eslint: 9.22.0 ts-api-utils: 2.0.1(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: @@ -14685,24 +14702,24 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.24.0(eslint@9.21.0)(typescript@5.7.3)': + '@typescript-eslint/utils@8.24.0(eslint@9.22.0)(typescript@5.7.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.21.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.22.0) '@typescript-eslint/scope-manager': 8.24.0 '@typescript-eslint/types': 8.24.0 '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3) - eslint: 9.21.0 + eslint: 9.22.0 typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.26.0(eslint@9.21.0)(typescript@5.8.2)': + '@typescript-eslint/utils@8.26.0(eslint@9.22.0)(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.21.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.22.0) '@typescript-eslint/scope-manager': 8.26.0 '@typescript-eslint/types': 8.26.0 '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2) - eslint: 9.21.0 + eslint: 9.22.0 typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -16704,27 +16721,27 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.24.0(eslint@9.21.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.21.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.24.0(eslint@9.22.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.22.0): dependencies: debug: 3.2.7(supports-color@8.1.1) optionalDependencies: - '@typescript-eslint/parser': 8.24.0(eslint@9.21.0)(typescript@5.7.3) - eslint: 9.21.0 + '@typescript-eslint/parser': 8.24.0(eslint@9.22.0)(typescript@5.7.3) + eslint: 9.22.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.21.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.22.0): dependencies: debug: 3.2.7(supports-color@8.1.1) optionalDependencies: - '@typescript-eslint/parser': 8.26.0(eslint@9.21.0)(typescript@5.8.2) - eslint: 9.21.0 + '@typescript-eslint/parser': 8.26.0(eslint@9.22.0)(typescript@5.8.2) + eslint: 9.22.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.0(eslint@9.21.0)(typescript@5.7.3))(eslint@9.21.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.0(eslint@9.22.0)(typescript@5.7.3))(eslint@9.22.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -16733,9 +16750,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7(supports-color@8.1.1) doctrine: 2.1.0 - eslint: 9.21.0 + eslint: 9.22.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.24.0(eslint@9.21.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.21.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.24.0(eslint@9.22.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.22.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -16747,13 +16764,13 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.24.0(eslint@9.21.0)(typescript@5.7.3) + '@typescript-eslint/parser': 8.24.0(eslint@9.22.0)(typescript@5.7.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -16762,9 +16779,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7(supports-color@8.1.1) doctrine: 2.1.0 - eslint: 9.21.0 + eslint: 9.22.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.21.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.22.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -16776,21 +16793,21 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.26.0(eslint@9.21.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.26.0(eslint@9.22.0)(typescript@5.8.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-vue@10.0.0(eslint@9.21.0)(vue-eslint-parser@10.1.1(eslint@9.21.0)): + eslint-plugin-vue@10.0.0(eslint@9.22.0)(vue-eslint-parser@10.1.1(eslint@9.22.0)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.21.0) - eslint: 9.21.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.22.0) + eslint: 9.22.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 semver: 7.6.3 - vue-eslint-parser: 10.1.1(eslint@9.21.0) + vue-eslint-parser: 10.1.1(eslint@9.22.0) xml-name-validator: 4.0.0 eslint-rule-docs@1.1.235: {} @@ -16800,18 +16817,24 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 + eslint-scope@8.3.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + eslint-visitor-keys@3.4.3: {} eslint-visitor-keys@4.2.0: {} - eslint@9.21.0: + eslint@9.22.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.21.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.22.0) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.2 + '@eslint/config-helpers': 0.1.0 '@eslint/core': 0.12.0 '@eslint/eslintrc': 3.3.0 - '@eslint/js': 9.21.0 + '@eslint/js': 9.22.0 '@eslint/plugin-kit': 0.2.7 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 @@ -16823,7 +16846,7 @@ snapshots: cross-spawn: 7.0.6 debug: 4.4.0(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint-scope: 8.2.0 + eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 esquery: 1.6.0 @@ -18127,7 +18150,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.9 + '@types/node': 22.13.10 chalk: 4.1.2 co: 4.6.0 dedent: 1.3.0 @@ -18185,6 +18208,36 @@ snapshots: - supports-color - ts-node + jest-config@29.7.0(@types/node@22.13.10): + dependencies: + '@babel/core': 7.23.5 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.23.5) + chalk: 4.1.2 + ci-info: 3.7.1 + deepmerge: 4.2.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 22.13.10 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + jest-config@29.7.0(@types/node@22.13.4): dependencies: '@babel/core': 7.23.5 @@ -18269,7 +18322,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.9 + '@types/node': 22.13.10 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -18286,7 +18339,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.6 - '@types/node': 22.13.9 + '@types/node': 22.13.10 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -18325,7 +18378,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.13.9 + '@types/node': 22.13.10 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -18360,7 +18413,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.9 + '@types/node': 22.13.10 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -18388,7 +18441,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.9 + '@types/node': 22.13.10 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 @@ -18434,7 +18487,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.13.9 + '@types/node': 22.13.10 chalk: 4.1.2 ci-info: 3.7.1 graceful-fs: 4.2.11 @@ -18453,7 +18506,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.9 + '@types/node': 22.13.10 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -18467,7 +18520,7 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.13.9 + '@types/node': 22.13.10 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -21972,10 +22025,10 @@ snapshots: vue: 3.5.13(typescript@5.8.2) vue-inbrowser-compiler-independent-utils: 4.71.1(vue@3.5.13(typescript@5.8.2)) - vue-eslint-parser@10.1.1(eslint@9.21.0): + vue-eslint-parser@10.1.1(eslint@9.22.0): dependencies: debug: 4.4.0(supports-color@8.1.1) - eslint: 9.21.0 + eslint: 9.22.0 eslint-scope: 8.2.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 From 9998cb84e80c98a399c68dd79d553f0cdfca78c7 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Mon, 10 Mar 2025 13:47:38 +0900 Subject: [PATCH 21/78] refactor(frontend): page-metadata -> page --- packages/frontend/src/components/MkPageWindow.vue | 4 ++-- packages/frontend/src/components/global/MkPageHeader.vue | 4 ++-- packages/frontend/src/{utility/page-metadata.ts => page.ts} | 2 +- packages/frontend/src/pages/_error_.vue | 4 ++-- packages/frontend/src/pages/about-misskey.vue | 4 ++-- packages/frontend/src/pages/about.vue | 4 ++-- packages/frontend/src/pages/achievements.vue | 4 ++-- packages/frontend/src/pages/admin-file.vue | 4 ++-- packages/frontend/src/pages/admin-user.vue | 4 ++-- packages/frontend/src/pages/admin/_header_.vue | 2 +- packages/frontend/src/pages/admin/abuses.vue | 4 ++-- packages/frontend/src/pages/admin/ads.vue | 4 ++-- packages/frontend/src/pages/admin/announcements.vue | 4 ++-- packages/frontend/src/pages/admin/branding.vue | 4 ++-- .../frontend/src/pages/admin/custom-emojis-manager2.vue | 4 ++-- packages/frontend/src/pages/admin/database.vue | 4 ++-- packages/frontend/src/pages/admin/email-settings.vue | 4 ++-- packages/frontend/src/pages/admin/external-services.vue | 4 ++-- packages/frontend/src/pages/admin/federation.vue | 4 ++-- packages/frontend/src/pages/admin/files.vue | 4 ++-- packages/frontend/src/pages/admin/index.vue | 6 +++--- packages/frontend/src/pages/admin/invites.vue | 4 ++-- packages/frontend/src/pages/admin/moderation.vue | 4 ++-- packages/frontend/src/pages/admin/modlog.vue | 4 ++-- packages/frontend/src/pages/admin/object-storage.vue | 4 ++-- packages/frontend/src/pages/admin/overview.vue | 4 ++-- packages/frontend/src/pages/admin/performance.vue | 4 ++-- packages/frontend/src/pages/admin/queue.vue | 4 ++-- packages/frontend/src/pages/admin/relays.vue | 4 ++-- packages/frontend/src/pages/admin/roles.edit.vue | 4 ++-- packages/frontend/src/pages/admin/roles.role.vue | 4 ++-- packages/frontend/src/pages/admin/roles.vue | 4 ++-- packages/frontend/src/pages/admin/security.vue | 4 ++-- packages/frontend/src/pages/admin/server-rules.vue | 4 ++-- packages/frontend/src/pages/admin/settings.vue | 4 ++-- packages/frontend/src/pages/admin/system-webhook.vue | 4 ++-- packages/frontend/src/pages/admin/users.vue | 4 ++-- packages/frontend/src/pages/ads.vue | 4 ++-- packages/frontend/src/pages/announcement.vue | 4 ++-- packages/frontend/src/pages/announcements.vue | 4 ++-- packages/frontend/src/pages/antenna-timeline.vue | 4 ++-- packages/frontend/src/pages/api-console.vue | 4 ++-- packages/frontend/src/pages/auth.vue | 4 ++-- packages/frontend/src/pages/avatar-decorations.vue | 4 ++-- packages/frontend/src/pages/channel-editor.vue | 4 ++-- packages/frontend/src/pages/channel.vue | 4 ++-- packages/frontend/src/pages/channels.vue | 4 ++-- packages/frontend/src/pages/clicker.vue | 4 ++-- packages/frontend/src/pages/clip.vue | 4 ++-- packages/frontend/src/pages/contact.vue | 4 ++-- packages/frontend/src/pages/custom-emojis-manager.vue | 4 ++-- packages/frontend/src/pages/drive.file.vue | 4 ++-- packages/frontend/src/pages/drive.vue | 4 ++-- packages/frontend/src/pages/drop-and-fusion.game.vue | 4 ++-- packages/frontend/src/pages/drop-and-fusion.vue | 4 ++-- packages/frontend/src/pages/explore.vue | 4 ++-- packages/frontend/src/pages/favorites.vue | 4 ++-- packages/frontend/src/pages/flash/flash-edit.vue | 4 ++-- packages/frontend/src/pages/flash/flash-index.vue | 4 ++-- packages/frontend/src/pages/flash/flash.vue | 4 ++-- packages/frontend/src/pages/follow-requests.vue | 4 ++-- packages/frontend/src/pages/gallery/edit.vue | 4 ++-- packages/frontend/src/pages/gallery/index.vue | 4 ++-- packages/frontend/src/pages/gallery/post.vue | 4 ++-- packages/frontend/src/pages/games.vue | 4 ++-- packages/frontend/src/pages/install-extensions.vue | 4 ++-- packages/frontend/src/pages/instance-info.vue | 4 ++-- packages/frontend/src/pages/invite.vue | 4 ++-- packages/frontend/src/pages/list.vue | 4 ++-- packages/frontend/src/pages/lookup.vue | 4 ++-- packages/frontend/src/pages/miauth.vue | 4 ++-- packages/frontend/src/pages/my-antennas/create.vue | 4 ++-- packages/frontend/src/pages/my-antennas/edit.vue | 4 ++-- packages/frontend/src/pages/my-antennas/index.vue | 4 ++-- packages/frontend/src/pages/my-clips/index.vue | 4 ++-- packages/frontend/src/pages/my-lists/index.vue | 4 ++-- packages/frontend/src/pages/my-lists/list.vue | 4 ++-- packages/frontend/src/pages/not-found.vue | 4 ++-- packages/frontend/src/pages/note.vue | 4 ++-- packages/frontend/src/pages/notifications.vue | 4 ++-- packages/frontend/src/pages/oauth.vue | 4 ++-- packages/frontend/src/pages/page-editor/page-editor.vue | 4 ++-- packages/frontend/src/pages/page.vue | 4 ++-- packages/frontend/src/pages/pages.vue | 4 ++-- packages/frontend/src/pages/preview.vue | 4 ++-- packages/frontend/src/pages/registry.keys.vue | 4 ++-- packages/frontend/src/pages/registry.value.vue | 4 ++-- packages/frontend/src/pages/registry.vue | 4 ++-- packages/frontend/src/pages/reset-password.vue | 4 ++-- packages/frontend/src/pages/reversi/game.vue | 4 ++-- packages/frontend/src/pages/reversi/index.vue | 4 ++-- packages/frontend/src/pages/role.vue | 4 ++-- packages/frontend/src/pages/scratchpad.vue | 4 ++-- packages/frontend/src/pages/search.vue | 4 ++-- packages/frontend/src/pages/settings/accessibility.vue | 4 ++-- packages/frontend/src/pages/settings/accounts.vue | 4 ++-- packages/frontend/src/pages/settings/api.vue | 4 ++-- packages/frontend/src/pages/settings/appearance.vue | 4 ++-- packages/frontend/src/pages/settings/apps.vue | 4 ++-- packages/frontend/src/pages/settings/avatar-decoration.vue | 4 ++-- packages/frontend/src/pages/settings/custom-css.vue | 4 ++-- packages/frontend/src/pages/settings/deck.vue | 4 ++-- packages/frontend/src/pages/settings/drive-cleaner.vue | 4 ++-- packages/frontend/src/pages/settings/drive.vue | 4 ++-- packages/frontend/src/pages/settings/email.vue | 4 ++-- packages/frontend/src/pages/settings/emoji-picker.vue | 4 ++-- packages/frontend/src/pages/settings/import-export.vue | 4 ++-- packages/frontend/src/pages/settings/index.vue | 6 +++--- packages/frontend/src/pages/settings/mute-block.vue | 4 ++-- packages/frontend/src/pages/settings/navbar.vue | 4 ++-- packages/frontend/src/pages/settings/notifications.vue | 4 ++-- packages/frontend/src/pages/settings/other.vue | 4 ++-- packages/frontend/src/pages/settings/plugin.install.vue | 4 ++-- packages/frontend/src/pages/settings/plugin.vue | 4 ++-- packages/frontend/src/pages/settings/preferences.vue | 4 ++-- packages/frontend/src/pages/settings/privacy.vue | 4 ++-- packages/frontend/src/pages/settings/profile.vue | 4 ++-- packages/frontend/src/pages/settings/roles.vue | 4 ++-- packages/frontend/src/pages/settings/security.vue | 4 ++-- packages/frontend/src/pages/settings/sounds.vue | 4 ++-- packages/frontend/src/pages/settings/statusbar.vue | 4 ++-- packages/frontend/src/pages/settings/theme.install.vue | 4 ++-- packages/frontend/src/pages/settings/theme.manage.vue | 4 ++-- packages/frontend/src/pages/settings/theme.vue | 4 ++-- packages/frontend/src/pages/settings/webhook.edit.vue | 4 ++-- packages/frontend/src/pages/settings/webhook.new.vue | 4 ++-- packages/frontend/src/pages/settings/webhook.vue | 4 ++-- packages/frontend/src/pages/share.vue | 4 ++-- packages/frontend/src/pages/tag.vue | 4 ++-- packages/frontend/src/pages/theme-editor.vue | 4 ++-- packages/frontend/src/pages/timeline.vue | 4 ++-- packages/frontend/src/pages/user-list-timeline.vue | 4 ++-- packages/frontend/src/pages/user-tag.vue | 4 ++-- packages/frontend/src/pages/user/followers.vue | 4 ++-- packages/frontend/src/pages/user/following.vue | 4 ++-- packages/frontend/src/pages/user/index.vue | 4 ++-- packages/frontend/src/pages/welcome.vue | 4 ++-- packages/frontend/src/ui/classic.vue | 4 ++-- packages/frontend/src/ui/deck/main-column.vue | 4 ++-- packages/frontend/src/ui/minimum.vue | 4 ++-- packages/frontend/src/ui/universal.vue | 4 ++-- packages/frontend/src/ui/visitor.vue | 4 ++-- packages/frontend/src/ui/zen.vue | 4 ++-- 143 files changed, 286 insertions(+), 286 deletions(-) rename packages/frontend/src/{utility/page-metadata.ts => page.ts} (95%) diff --git a/packages/frontend/src/components/MkPageWindow.vue b/packages/frontend/src/components/MkPageWindow.vue index 780b434456..5c0fa60847 100644 --- a/packages/frontend/src/components/MkPageWindow.vue +++ b/packages/frontend/src/components/MkPageWindow.vue @@ -32,14 +32,14 @@ SPDX-License-Identifier: AGPL-3.0-only import { computed, onMounted, onUnmounted, provide, ref, shallowRef } from 'vue'; import { url } from '@@/js/config.js'; import { getScrollContainer } from '@@/js/scroll.js'; -import type { PageMetadata } from '@/utility/page-metadata.js'; +import type { PageMetadata } from '@/page.js'; import RouterView from '@/components/global/RouterView.vue'; import MkWindow from '@/components/MkWindow.vue'; import { popout as _popout } from '@/utility/popout.js'; import { copyToClipboard } from '@/utility/copy-to-clipboard.js'; import { useScrollPositionManager } from '@/nirax.js'; import { i18n } from '@/i18n.js'; -import { provideMetadataReceiver, provideReactiveMetadata } from '@/utility/page-metadata.js'; +import { provideMetadataReceiver, provideReactiveMetadata } from '@/page.js'; import { openingWindowsCount } from '@/os.js'; import { claimAchievement } from '@/utility/achievements.js'; import { useRouterFactory } from '@/router/supplier.js'; diff --git a/packages/frontend/src/components/global/MkPageHeader.vue b/packages/frontend/src/components/global/MkPageHeader.vue index d3c64bf85a..728e37cf51 100644 --- a/packages/frontend/src/components/global/MkPageHeader.vue +++ b/packages/frontend/src/components/global/MkPageHeader.vue @@ -47,9 +47,9 @@ import { scrollToTop } from '@@/js/scroll.js'; import XTabs from './MkPageHeader.tabs.vue'; import type { Tab } from './MkPageHeader.tabs.vue'; import type { PageHeaderItem } from '@/types/page-header.js'; -import type { PageMetadata } from '@/utility/page-metadata.js'; +import type { PageMetadata } from '@/page.js'; import { globalEvents } from '@/events.js'; -import { injectReactiveMetadata } from '@/utility/page-metadata.js'; +import { injectReactiveMetadata } from '@/page.js'; import { $i, openAccountMenu as openAccountMenu_ } from '@/account.js'; const props = withDefaults(defineProps<{ diff --git a/packages/frontend/src/utility/page-metadata.ts b/packages/frontend/src/page.ts similarity index 95% rename from packages/frontend/src/utility/page-metadata.ts rename to packages/frontend/src/page.ts index 671751147c..f3ec09a16f 100644 --- a/packages/frontend/src/utility/page-metadata.ts +++ b/packages/frontend/src/page.ts @@ -35,7 +35,7 @@ const getMetadata = (): Ref | undefined => { return inject>(METADATA_KEY); }; -export const definePageMetadata = (maybeRefOrGetterMetadata: MaybeRefOrGetter): void => { +export const definePage = (maybeRefOrGetterMetadata: MaybeRefOrGetter): void => { const metadataRef = ref(toValue(maybeRefOrGetterMetadata)); const metadataGetter = () => metadataRef.value; const receiver = getReceiver(); diff --git a/packages/frontend/src/pages/_error_.vue b/packages/frontend/src/pages/_error_.vue index 05fa8a8a6b..066980db1f 100644 --- a/packages/frontend/src/pages/_error_.vue +++ b/packages/frontend/src/pages/_error_.vue @@ -33,7 +33,7 @@ import MkLink from '@/components/MkLink.vue'; import { misskeyApi } from '@/utility/misskey-api.js'; import { unisonReload } from '@/utility/unison-reload.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { miLocalStorage } from '@/local-storage.js'; import { prefer } from '@/preferences.js'; import { serverErrorImageUrl } from '@/instance.js'; @@ -67,7 +67,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.error, icon: 'ti ti-alert-triangle', })); diff --git a/packages/frontend/src/pages/about-misskey.vue b/packages/frontend/src/pages/about-misskey.vue index 5316398ba4..55d703b9ea 100644 --- a/packages/frontend/src/pages/about-misskey.vue +++ b/packages/frontend/src/pages/about-misskey.vue @@ -145,7 +145,7 @@ import { i18n } from '@/i18n.js'; import { instance } from '@/instance.js'; import { store } from '@/store.js'; import * as os from '@/os.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { claimAchievement, claimedAchievements } from '@/utility/achievements.js'; import { $i } from '@/account.js'; @@ -450,7 +450,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.aboutMisskey, icon: null, })); diff --git a/packages/frontend/src/pages/about.vue b/packages/frontend/src/pages/about.vue index 11a2ed4062..d6833a3d97 100644 --- a/packages/frontend/src/pages/about.vue +++ b/packages/frontend/src/pages/about.vue @@ -28,7 +28,7 @@ import { computed, defineAsyncComponent, ref, watch } from 'vue'; import { instance } from '@/instance.js'; import { i18n } from '@/i18n.js'; import { claimAchievement } from '@/utility/achievements.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue'; const XOverview = defineAsyncComponent(() => import('@/pages/about.overview.vue')); @@ -81,7 +81,7 @@ const headerTabs = computed(() => { return items; }); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.instanceInfo, icon: 'ti ti-info-circle', })); diff --git a/packages/frontend/src/pages/achievements.vue b/packages/frontend/src/pages/achievements.vue index f23046b476..53ce75f9bf 100644 --- a/packages/frontend/src/pages/achievements.vue +++ b/packages/frontend/src/pages/achievements.vue @@ -16,7 +16,7 @@ SPDX-License-Identifier: AGPL-3.0-only import { onActivated, onDeactivated, onMounted, onUnmounted } from 'vue'; import MkAchievements from '@/components/MkAchievements.vue'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { $i } from '@/account.js'; import { claimAchievement } from '@/utility/achievements.js'; @@ -48,7 +48,7 @@ onDeactivated(() => { } }); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.achievements, icon: 'ti ti-medal', })); diff --git a/packages/frontend/src/pages/admin-file.vue b/packages/frontend/src/pages/admin-file.vue index 46a5388e7e..0af28e94fa 100644 --- a/packages/frontend/src/pages/admin-file.vue +++ b/packages/frontend/src/pages/admin-file.vue @@ -85,7 +85,7 @@ import bytes from '@/filters/bytes.js'; import * as os from '@/os.js'; import { misskeyApi } from '@/utility/misskey-api.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { iAmAdmin, iAmModerator } from '@/account.js'; const tab = ref('overview'); @@ -161,7 +161,7 @@ const headerTabs = computed(() => [{ icon: 'ti ti-code', }]); -definePageMetadata(() => ({ +definePage(() => ({ title: file.value ? `${i18n.ts.file}: ${file.value.name}` : i18n.ts.file, icon: 'ti ti-file', })); diff --git a/packages/frontend/src/pages/admin-user.vue b/packages/frontend/src/pages/admin-user.vue index e1da305b84..2efae999ce 100644 --- a/packages/frontend/src/pages/admin-user.vue +++ b/packages/frontend/src/pages/admin-user.vue @@ -231,7 +231,7 @@ import MkInfo from '@/components/MkInfo.vue'; import * as os from '@/os.js'; import { misskeyApi } from '@/utility/misskey-api.js'; import { acct } from '@/filters/user.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { i18n } from '@/i18n.js'; import { iAmAdmin, $i, iAmModerator } from '@/account.js'; import MkRolePreview from '@/components/MkRolePreview.vue'; @@ -545,7 +545,7 @@ const headerTabs = computed(() => isSystem.value ? [{ icon: 'ti ti-code', }]); -definePageMetadata(() => ({ +definePage(() => ({ title: user.value ? acct(user.value) : i18n.ts.userInfo, icon: 'ti ti-user-exclamation', })); diff --git a/packages/frontend/src/pages/admin/_header_.vue b/packages/frontend/src/pages/admin/_header_.vue index d5dac40e86..1382cad9a4 100644 --- a/packages/frontend/src/pages/admin/_header_.vue +++ b/packages/frontend/src/pages/admin/_header_.vue @@ -39,7 +39,7 @@ import { scrollToTop } from '@@/js/scroll.js'; import { popupMenu } from '@/os.js'; import MkButton from '@/components/MkButton.vue'; import { globalEvents } from '@/events.js'; -import { injectReactiveMetadata } from '@/utility/page-metadata.js'; +import { injectReactiveMetadata } from '@/page.js'; type Tab = { key?: string | null; diff --git a/packages/frontend/src/pages/admin/abuses.vue b/packages/frontend/src/pages/admin/abuses.vue index 8b396c1821..e4119bb62d 100644 --- a/packages/frontend/src/pages/admin/abuses.vue +++ b/packages/frontend/src/pages/admin/abuses.vue @@ -65,7 +65,7 @@ import MkSelect from '@/components/MkSelect.vue'; import MkPagination from '@/components/MkPagination.vue'; import XAbuseReport from '@/components/MkAbuseReport.vue'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import MkButton from '@/components/MkButton.vue'; import MkInfo from '@/components/MkInfo.vue'; import { store } from '@/store.js'; @@ -100,7 +100,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.abuseReports, icon: 'ti ti-exclamation-circle', })); diff --git a/packages/frontend/src/pages/admin/ads.vue b/packages/frontend/src/pages/admin/ads.vue index d707e15c61..ebc3d23296 100644 --- a/packages/frontend/src/pages/admin/ads.vue +++ b/packages/frontend/src/pages/admin/ads.vue @@ -98,7 +98,7 @@ import FormSplit from '@/components/form/split.vue'; import * as os from '@/os.js'; import { misskeyApi } from '@/utility/misskey-api.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; const ads = ref([]); @@ -255,7 +255,7 @@ const headerActions = computed(() => [{ const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.ads, icon: 'ti ti-ad', })); diff --git a/packages/frontend/src/pages/admin/announcements.vue b/packages/frontend/src/pages/admin/announcements.vue index 48a072bc8a..f6b331455f 100644 --- a/packages/frontend/src/pages/admin/announcements.vue +++ b/packages/frontend/src/pages/admin/announcements.vue @@ -96,7 +96,7 @@ import MkInfo from '@/components/MkInfo.vue'; import * as os from '@/os.js'; import { misskeyApi } from '@/utility/misskey-api.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import MkFolder from '@/components/MkFolder.vue'; import MkTextarea from '@/components/MkTextarea.vue'; @@ -199,7 +199,7 @@ const headerActions = computed(() => [{ const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.announcements, icon: 'ti ti-speakerphone', })); diff --git a/packages/frontend/src/pages/admin/branding.vue b/packages/frontend/src/pages/admin/branding.vue index 02f08ecc05..0ac45914e8 100644 --- a/packages/frontend/src/pages/admin/branding.vue +++ b/packages/frontend/src/pages/admin/branding.vue @@ -114,7 +114,7 @@ import * as os from '@/os.js'; import { misskeyApi } from '@/utility/misskey-api.js'; import { instance, fetchInstance } from '@/instance.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import MkButton from '@/components/MkButton.vue'; import MkColorInput from '@/components/MkColorInput.vue'; import { host } from '@@/js/config.js'; @@ -175,7 +175,7 @@ function save() { const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.branding, icon: 'ti ti-paint', })); diff --git a/packages/frontend/src/pages/admin/custom-emojis-manager2.vue b/packages/frontend/src/pages/admin/custom-emojis-manager2.vue index f75393baac..7667206fa8 100644 --- a/packages/frontend/src/pages/admin/custom-emojis-manager2.vue +++ b/packages/frontend/src/pages/admin/custom-emojis-manager2.vue @@ -18,7 +18,7 @@ SPDX-License-Identifier: AGPL-3.0-only diff --git a/packages/frontend/src/pages/flash/flash-index.vue b/packages/frontend/src/pages/flash/flash-index.vue index 688b5c2ac6..3cd7c46c1e 100644 --- a/packages/frontend/src/pages/flash/flash-index.vue +++ b/packages/frontend/src/pages/flash/flash-index.vue @@ -46,7 +46,7 @@ import MkPagination from '@/components/MkPagination.vue'; import MkButton from '@/components/MkButton.vue'; import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { useRouter } from '@/router/supplier.js'; const router = useRouter(); @@ -91,7 +91,7 @@ const headerTabs = computed(() => [{ icon: 'ti ti-heart', }]); -definePageMetadata(() => ({ +definePage(() => ({ title: 'Play', icon: 'ti ti-player-play', })); diff --git a/packages/frontend/src/pages/flash/flash.vue b/packages/frontend/src/pages/flash/flash.vue index e2e7cc6f74..6bce6689d4 100644 --- a/packages/frontend/src/pages/flash/flash.vue +++ b/packages/frontend/src/pages/flash/flash.vue @@ -73,7 +73,7 @@ import MkButton from '@/components/MkButton.vue'; import * as os from '@/os.js'; import { misskeyApi } from '@/utility/misskey-api.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import MkAsUi from '@/components/MkAsUi.vue'; import { registerAsUiLib } from '@/aiscript/ui.js'; import { aiScriptReadline, createAiScriptEnv } from '@/aiscript/api.js'; @@ -304,7 +304,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: flash.value ? flash.value.title : 'Play', ...flash.value ? { avatar: flash.value.user, diff --git a/packages/frontend/src/pages/follow-requests.vue b/packages/frontend/src/pages/follow-requests.vue index 43532026fc..bd48b882d2 100644 --- a/packages/frontend/src/pages/follow-requests.vue +++ b/packages/frontend/src/pages/follow-requests.vue @@ -52,7 +52,7 @@ import MkButton from '@/components/MkButton.vue'; import { userPage, acct } from '@/filters/user.js'; import * as os from '@/os.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { infoImageUrl } from '@/instance.js'; import { $i } from '@/account.js'; import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue'; @@ -105,7 +105,7 @@ const headerTabs = computed(() => [ const tab = ref($i?.isLocked ? 'list' : 'sent'); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.followRequests, icon: 'ti ti-user-plus', })); diff --git a/packages/frontend/src/pages/gallery/edit.vue b/packages/frontend/src/pages/gallery/edit.vue index 974dd18224..9cd59d0aa5 100644 --- a/packages/frontend/src/pages/gallery/edit.vue +++ b/packages/frontend/src/pages/gallery/edit.vue @@ -48,7 +48,7 @@ import FormSuspense from '@/components/form/suspense.vue'; import { selectFiles } from '@/utility/select-file.js'; import * as os from '@/os.js'; import { misskeyApi } from '@/utility/misskey-api.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { i18n } from '@/i18n.js'; import { useRouter } from '@/router/supplier.js'; @@ -122,7 +122,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: props.postId ? i18n.ts.edit : i18n.ts.postToGallery, icon: 'ti ti-pencil', })); diff --git a/packages/frontend/src/pages/gallery/index.vue b/packages/frontend/src/pages/gallery/index.vue index 49b7e349e8..14b3f7bf3c 100644 --- a/packages/frontend/src/pages/gallery/index.vue +++ b/packages/frontend/src/pages/gallery/index.vue @@ -52,7 +52,7 @@ import MkFoldableSection from '@/components/MkFoldableSection.vue'; import MkPagination from '@/components/MkPagination.vue'; import MkGalleryPostPreview from '@/components/MkGalleryPostPreview.vue'; import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { i18n } from '@/i18n.js'; import { useRouter } from '@/router/supplier.js'; @@ -119,7 +119,7 @@ const headerTabs = computed(() => [{ icon: 'ti ti-edit', }]); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.gallery, icon: 'ti ti-icons', })); diff --git a/packages/frontend/src/pages/gallery/post.vue b/packages/frontend/src/pages/gallery/post.vue index 81c63b0f4e..56ddb820cf 100644 --- a/packages/frontend/src/pages/gallery/post.vue +++ b/packages/frontend/src/pages/gallery/post.vue @@ -75,7 +75,7 @@ import MkPagination from '@/components/MkPagination.vue'; import MkGalleryPostPreview from '@/components/MkGalleryPostPreview.vue'; import MkFollowButton from '@/components/MkFollowButton.vue'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { prefer } from '@/preferences.js'; import { $i } from '@/account.js'; import { isSupportShare } from '@/utility/navigator.js'; @@ -208,7 +208,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: post.value ? post.value.title : i18n.ts.gallery, ...post.value ? { avatar: post.value.user, diff --git a/packages/frontend/src/pages/games.vue b/packages/frontend/src/pages/games.vue index f6eb8a5d7e..48adead383 100644 --- a/packages/frontend/src/pages/games.vue +++ b/packages/frontend/src/pages/games.vue @@ -25,9 +25,9 @@ SPDX-License-Identifier: AGPL-3.0-only diff --git a/packages/frontend/src/pages/settings/mute-block.vue b/packages/frontend/src/pages/settings/mute-block.vue index 6fa2b5e689..d9c190f546 100644 --- a/packages/frontend/src/pages/settings/mute-block.vue +++ b/packages/frontend/src/pages/settings/mute-block.vue @@ -178,7 +178,7 @@ import XWordMute from './mute-block.word-mute.vue'; import MkPagination from '@/components/MkPagination.vue'; import { userPage } from '@/filters/user.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import MkUserCardMini from '@/components/MkUserCardMini.vue'; import * as os from '@/os.js'; import { instance, infoImageUrl } from '@/instance.js'; @@ -287,7 +287,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.muteAndBlock, icon: 'ti ti-ban', })); diff --git a/packages/frontend/src/pages/settings/navbar.vue b/packages/frontend/src/pages/settings/navbar.vue index 28e6bcc161..706cb731eb 100644 --- a/packages/frontend/src/pages/settings/navbar.vue +++ b/packages/frontend/src/pages/settings/navbar.vue @@ -56,7 +56,7 @@ import { navbarItemDef } from '@/navbar.js'; import { store } from '@/store.js'; import { reloadAsk } from '@/utility/reload-ask.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { prefer } from '@/preferences.js'; import { PREF_DEF } from '@/preferences/def.js'; @@ -106,7 +106,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.navbar, icon: 'ti ti-list', })); diff --git a/packages/frontend/src/pages/settings/notifications.vue b/packages/frontend/src/pages/settings/notifications.vue index dfbcf91a3f..ca0de0b4b1 100644 --- a/packages/frontend/src/pages/settings/notifications.vue +++ b/packages/frontend/src/pages/settings/notifications.vue @@ -73,7 +73,7 @@ import * as os from '@/os.js'; import { signinRequired } from '@/account.js'; import { misskeyApi } from '@/utility/misskey-api.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import MkPushNotificationAllowButton from '@/components/MkPushNotificationAllowButton.vue'; import { notificationTypes } from '@@/js/const.js'; @@ -138,7 +138,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.notifications, icon: 'ti ti-bell', })); diff --git a/packages/frontend/src/pages/settings/other.vue b/packages/frontend/src/pages/settings/other.vue index f2d998579f..835739a6c6 100644 --- a/packages/frontend/src/pages/settings/other.vue +++ b/packages/frontend/src/pages/settings/other.vue @@ -120,7 +120,7 @@ import { misskeyApi } from '@/utility/misskey-api.js'; import { store } from '@/store.js'; import { signout, signinRequired } from '@/account.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { reloadAsk } from '@/utility/reload-ask.js'; import FormSection from '@/components/form/section.vue'; import { prefer } from '@/preferences.js'; @@ -175,7 +175,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.other, icon: 'ti ti-dots', })); diff --git a/packages/frontend/src/pages/settings/plugin.install.vue b/packages/frontend/src/pages/settings/plugin.install.vue index 915eb8031c..e984ed7f8a 100644 --- a/packages/frontend/src/pages/settings/plugin.install.vue +++ b/packages/frontend/src/pages/settings/plugin.install.vue @@ -24,7 +24,7 @@ import MkButton from '@/components/MkButton.vue'; import FormInfo from '@/components/MkInfo.vue'; import * as os from '@/os.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { installPlugin } from '@/plugin.js'; import { useRouter } from '@/router/supplier.js'; @@ -53,7 +53,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts._plugin.install, icon: 'ti ti-download', })); diff --git a/packages/frontend/src/pages/settings/plugin.vue b/packages/frontend/src/pages/settings/plugin.vue index 32c35e3670..93a0e8a850 100644 --- a/packages/frontend/src/pages/settings/plugin.vue +++ b/packages/frontend/src/pages/settings/plugin.vue @@ -99,7 +99,7 @@ import MkCode from '@/components/MkCode.vue'; import MkFolder from '@/components/MkFolder.vue'; import MkKeyValue from '@/components/MkKeyValue.vue'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { changePluginActive, configPlugin, pluginLogs, uninstallPlugin, reloadPlugin } from '@/plugin.js'; import { prefer } from '@/preferences.js'; import * as os from '@/os.js'; @@ -138,7 +138,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.plugins, icon: 'ti ti-plug', })); diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue index f3f52d0914..58e01df633 100644 --- a/packages/frontend/src/pages/settings/preferences.vue +++ b/packages/frontend/src/pages/settings/preferences.vue @@ -377,7 +377,7 @@ import * as os from '@/os.js'; import { misskeyApi } from '@/utility/misskey-api.js'; import { reloadAsk } from '@/utility/reload-ask.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { miLocalStorage } from '@/local-storage.js'; import { prefer } from '@/preferences.js'; import MkPreferenceContainer from '@/components/MkPreferenceContainer.vue'; @@ -521,7 +521,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.general, icon: 'ti ti-adjustments', })); diff --git a/packages/frontend/src/pages/settings/privacy.vue b/packages/frontend/src/pages/settings/privacy.vue index 7b69e91be9..d42dd323e0 100644 --- a/packages/frontend/src/pages/settings/privacy.vue +++ b/packages/frontend/src/pages/settings/privacy.vue @@ -182,7 +182,7 @@ import { misskeyApi } from '@/utility/misskey-api.js'; import { i18n } from '@/i18n.js'; import { instance } from '@/instance.js'; import { signinRequired } from '@/account.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import FormSlot from '@/components/form/slot.vue'; import { formatDateTimeString } from '@/utility/format-time-string.js'; import MkInput from '@/components/MkInput.vue'; @@ -263,7 +263,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.privacy, icon: 'ti ti-lock-open', })); diff --git a/packages/frontend/src/pages/settings/profile.vue b/packages/frontend/src/pages/settings/profile.vue index 5efd986ce7..1d85ba7834 100644 --- a/packages/frontend/src/pages/settings/profile.vue +++ b/packages/frontend/src/pages/settings/profile.vue @@ -166,7 +166,7 @@ import * as os from '@/os.js'; import { i18n } from '@/i18n.js'; import { signinRequired } from '@/account.js'; import { langmap } from '@/utility/langmap.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { claimAchievement } from '@/utility/achievements.js'; import { store } from '@/store.js'; import { globalEvents } from '@/events.js'; @@ -316,7 +316,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.profile, icon: 'ti ti-user', })); diff --git a/packages/frontend/src/pages/settings/roles.vue b/packages/frontend/src/pages/settings/roles.vue index 4b0daff7fa..c1cabad2c3 100644 --- a/packages/frontend/src/pages/settings/roles.vue +++ b/packages/frontend/src/pages/settings/roles.vue @@ -28,7 +28,7 @@ import FormSection from '@/components/form/section.vue'; import * as os from '@/os.js'; import { i18n } from '@/i18n.js'; import { signinRequired } from '@/account.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import MkRolePreview from '@/components/MkRolePreview.vue'; const $i = signinRequired(); @@ -37,7 +37,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.roles, icon: 'ti ti-badges', })); diff --git a/packages/frontend/src/pages/settings/security.vue b/packages/frontend/src/pages/settings/security.vue index fec760582c..9b664fa98a 100644 --- a/packages/frontend/src/pages/settings/security.vue +++ b/packages/frontend/src/pages/settings/security.vue @@ -58,7 +58,7 @@ import MkPagination from '@/components/MkPagination.vue'; import * as os from '@/os.js'; import { misskeyApi } from '@/utility/misskey-api.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; const pagination = { endpoint: 'i/signin-history' as const, @@ -112,7 +112,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.security, icon: 'ti ti-lock', })); diff --git a/packages/frontend/src/pages/settings/sounds.vue b/packages/frontend/src/pages/settings/sounds.vue index ea634646f6..0c447b1a67 100644 --- a/packages/frontend/src/pages/settings/sounds.vue +++ b/packages/frontend/src/pages/settings/sounds.vue @@ -65,7 +65,7 @@ import MkButton from '@/components/MkButton.vue'; import FormSection from '@/components/form/section.vue'; import MkFolder from '@/components/MkFolder.vue'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { operationTypes } from '@/utility/sound.js'; import MkSwitch from '@/components/MkSwitch.vue'; import MkPreferenceContainer from '@/components/MkPreferenceContainer.vue'; @@ -117,7 +117,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.sounds, icon: 'ti ti-music', })); diff --git a/packages/frontend/src/pages/settings/statusbar.vue b/packages/frontend/src/pages/settings/statusbar.vue index 7b09093c85..7e6a536216 100644 --- a/packages/frontend/src/pages/settings/statusbar.vue +++ b/packages/frontend/src/pages/settings/statusbar.vue @@ -23,7 +23,7 @@ import MkFolder from '@/components/MkFolder.vue'; import MkButton from '@/components/MkButton.vue'; import { misskeyApi } from '@/utility/misskey-api.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { prefer } from '@/preferences.js'; const statusbars = prefer.r.statusbars; @@ -50,7 +50,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.statusbar, icon: 'ti ti-list', })); diff --git a/packages/frontend/src/pages/settings/theme.install.vue b/packages/frontend/src/pages/settings/theme.install.vue index 92f4893f1a..68e4bef5c4 100644 --- a/packages/frontend/src/pages/settings/theme.install.vue +++ b/packages/frontend/src/pages/settings/theme.install.vue @@ -23,7 +23,7 @@ import MkButton from '@/components/MkButton.vue'; import { parseThemeCode, previewTheme, installTheme } from '@/theme.js'; import * as os from '@/os.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { useRouter } from '@/router/supplier.js'; const router = useRouter(); @@ -63,7 +63,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts._theme.install, icon: 'ti ti-download', })); diff --git a/packages/frontend/src/pages/settings/theme.manage.vue b/packages/frontend/src/pages/settings/theme.manage.vue index cc730cf4f0..e2b48ea232 100644 --- a/packages/frontend/src/pages/settings/theme.manage.vue +++ b/packages/frontend/src/pages/settings/theme.manage.vue @@ -43,7 +43,7 @@ import { copyToClipboard } from '@/utility/copy-to-clipboard.js'; import * as os from '@/os.js'; import { getThemes, removeTheme } from '@/theme-store.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; const installedThemes = ref(getThemes()); const builtinThemes = getBuiltinThemesRef(); @@ -77,7 +77,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts._theme.manage, icon: 'ti ti-tool', })); diff --git a/packages/frontend/src/pages/settings/theme.vue b/packages/frontend/src/pages/settings/theme.vue index f536b92599..71dba777b7 100644 --- a/packages/frontend/src/pages/settings/theme.vue +++ b/packages/frontend/src/pages/settings/theme.vue @@ -91,7 +91,7 @@ import { i18n } from '@/i18n.js'; import { instance } from '@/instance.js'; import { uniqueBy } from '@/utility/array.js'; import { getThemes } from '@/theme-store.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { miLocalStorage } from '@/local-storage.js'; import { reloadAsk } from '@/utility/reload-ask.js'; import { prefer } from '@/preferences.js'; @@ -230,7 +230,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.theme, icon: 'ti ti-palette', })); diff --git a/packages/frontend/src/pages/settings/webhook.edit.vue b/packages/frontend/src/pages/settings/webhook.edit.vue index 83902fe6ba..2de948c69d 100644 --- a/packages/frontend/src/pages/settings/webhook.edit.vue +++ b/packages/frontend/src/pages/settings/webhook.edit.vue @@ -78,7 +78,7 @@ import MkButton from '@/components/MkButton.vue'; import * as os from '@/os.js'; import { misskeyApi } from '@/utility/misskey-api.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { useRouter } from '@/router/supplier.js'; const router = useRouter(); @@ -155,7 +155,7 @@ const headerActions = computed(() => []); // eslint-disable-next-line @typescript-eslint/no-unused-vars const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: 'Edit webhook', icon: 'ti ti-webhook', })); diff --git a/packages/frontend/src/pages/settings/webhook.new.vue b/packages/frontend/src/pages/settings/webhook.new.vue index ef5b7393bb..e853f967cb 100644 --- a/packages/frontend/src/pages/settings/webhook.new.vue +++ b/packages/frontend/src/pages/settings/webhook.new.vue @@ -46,7 +46,7 @@ import MkSwitch from '@/components/MkSwitch.vue'; import MkButton from '@/components/MkButton.vue'; import * as os from '@/os.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; const name = ref(''); const url = ref(''); @@ -82,7 +82,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: 'Create new webhook', icon: 'ti ti-webhook', })); diff --git a/packages/frontend/src/pages/settings/webhook.vue b/packages/frontend/src/pages/settings/webhook.vue index 7f84d87973..bf8af8cdce 100644 --- a/packages/frontend/src/pages/settings/webhook.vue +++ b/packages/frontend/src/pages/settings/webhook.vue @@ -37,7 +37,7 @@ import { computed } from 'vue'; import MkPagination from '@/components/MkPagination.vue'; import FormSection from '@/components/form/section.vue'; import FormLink from '@/components/form/link.vue'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { i18n } from '@/i18n.js'; const pagination = { @@ -50,7 +50,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: 'Webhook', icon: 'ti ti-webhook', })); diff --git a/packages/frontend/src/pages/share.vue b/packages/frontend/src/pages/share.vue index fc93f86a5b..abd84c8590 100644 --- a/packages/frontend/src/pages/share.vue +++ b/packages/frontend/src/pages/share.vue @@ -38,7 +38,7 @@ import MkButton from '@/components/MkButton.vue'; import MkPostForm from '@/components/MkPostForm.vue'; import * as os from '@/os.js'; import { misskeyApi } from '@/utility/misskey-api.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { postMessageToParentWindow } from '@/utility/post-message.js'; import { i18n } from '@/i18n.js'; @@ -199,7 +199,7 @@ const headerActions = computed(() => []); const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.share, icon: 'ti ti-share', })); diff --git a/packages/frontend/src/pages/tag.vue b/packages/frontend/src/pages/tag.vue index f7e0302ca7..1af69d82db 100644 --- a/packages/frontend/src/pages/tag.vue +++ b/packages/frontend/src/pages/tag.vue @@ -23,7 +23,7 @@ SPDX-License-Identifier: AGPL-3.0-only import { computed, ref } from 'vue'; import MkNotes from '@/components/MkNotes.vue'; import MkButton from '@/components/MkButton.vue'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { i18n } from '@/i18n.js'; import { $i } from '@/account.js'; import { store } from '@/store.js'; @@ -68,7 +68,7 @@ const headerActions = computed(() => [{ const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: props.tag, icon: 'ti ti-hash', })); diff --git a/packages/frontend/src/pages/theme-editor.vue b/packages/frontend/src/pages/theme-editor.vue index 43ac5f38d7..11971756f4 100644 --- a/packages/frontend/src/pages/theme-editor.vue +++ b/packages/frontend/src/pages/theme-editor.vue @@ -93,7 +93,7 @@ import { store } from '@/store.js'; import { addTheme } from '@/theme-store.js'; import { i18n } from '@/i18n.js'; import { useLeaveGuard } from '@/utility/use-leave-guard.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { prefer } from '@/preferences.js'; const bgColors = [ @@ -228,7 +228,7 @@ const headerActions = computed(() => [{ const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.themeEditor, icon: 'ti ti-palette', })); diff --git a/packages/frontend/src/pages/timeline.vue b/packages/frontend/src/pages/timeline.vue index 8d64b0a974..0ac6979b05 100644 --- a/packages/frontend/src/pages/timeline.vue +++ b/packages/frontend/src/pages/timeline.vue @@ -49,7 +49,7 @@ import { misskeyApi } from '@/utility/misskey-api.js'; import { store } from '@/store.js'; import { i18n } from '@/i18n.js'; import { $i } from '@/account.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { antennasCache, userListsCache, favoritedChannelsCache } from '@/cache.js'; import { deviceKind } from '@/utility/device-kind.js'; import { deepMerge } from '@/utility/merge.js'; @@ -333,7 +333,7 @@ const headerTabsWhenNotLogin = computed(() => [...availableBasicTimelines().map( iconOnly: true, }))] as Tab[]); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.timeline, icon: isBasicTimeline(src.value) ? basicTimelineIconClass(src.value) : 'ti ti-home', })); diff --git a/packages/frontend/src/pages/user-list-timeline.vue b/packages/frontend/src/pages/user-list-timeline.vue index 7ab1c91975..d4c7c9386d 100644 --- a/packages/frontend/src/pages/user-list-timeline.vue +++ b/packages/frontend/src/pages/user-list-timeline.vue @@ -29,7 +29,7 @@ import * as Misskey from 'misskey-js'; import MkTimeline from '@/components/MkTimeline.vue'; import { scroll } from '@@/js/scroll.js'; import { misskeyApi } from '@/utility/misskey-api.js'; -import { definePageMetadata } from '@/utility/page-metadata.js'; +import { definePage } from '@/page.js'; import { i18n } from '@/i18n.js'; import { useRouter } from '@/router/supplier.js'; @@ -70,7 +70,7 @@ const headerActions = computed(() => list.value ? [{ const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: list.value ? list.value.name : i18n.ts.lists, icon: 'ti ti-list', })); diff --git a/packages/frontend/src/pages/user-tag.vue b/packages/frontend/src/pages/user-tag.vue index af543ac723..fc9ff92080 100644 --- a/packages/frontend/src/pages/user-tag.vue +++ b/packages/frontend/src/pages/user-tag.vue @@ -18,7 +18,7 @@ SPDX-License-Identifier: AGPL-3.0-only diff --git a/packages/frontend/src/pages/settings/theme.vue b/packages/frontend/src/pages/settings/theme.vue index 71dba777b7..0e4f791f2c 100644 --- a/packages/frontend/src/pages/settings/theme.vue +++ b/packages/frontend/src/pages/settings/theme.vue @@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only