From fd880660a3120a0ff3c44740df98cd46c9113237 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?= <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Wed, 5 Feb 2025 17:02:10 +0900 Subject: [PATCH 01/36] =?UTF-8?q?fix(frontend):=20=E3=83=87=E3=83=83?= =?UTF-8?q?=E3=82=AD=E3=81=AE=E3=83=97=E3=83=AD=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=81=8C=E6=96=B0=E8=A6=8F=E4=BD=9C=E6=88=90=E3=81=A7?= =?UTF-8?q?=E3=81=8D=E3=81=AA=E3=81=84=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=20(#15406)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(frontend): デッキのプロファイルが保存できない問題を修正 * Update Changelog * Update CHANGELOG.md --- CHANGELOG.md | 1 + packages/frontend/src/ui/deck.vue | 26 ++++++++++++++++----- packages/frontend/src/ui/deck/deck-store.ts | 10 +++++--- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f48d1c532..c5a25c5e84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ - Fix: データセーバー有効時にもユーザーページの「ファイル」タブで画像が読み込まれてしまう問題を修正 - Fix: MFMの `sparkle` エフェクトが正しく表示されない問題を修正 - Fix: ページのURLにスラッシュが含まれている場合にページが正しく表示されない問題を修正 +- Fix: デッキのプロファイルが新規作成できない問題を修正 - ローカライゼーションの更新 - Playが実装されたため、ページ機能の「ソースを見る」は削除されました diff --git a/packages/frontend/src/ui/deck.vue b/packages/frontend/src/ui/deck.vue index a1a76a7e7d..71a18fbc66 100644 --- a/packages/frontend/src/ui/deck.vue +++ b/packages/frontend/src/ui/deck.vue @@ -95,7 +95,7 @@ SPDX-License-Identifier: AGPL-3.0-only import { computed, defineAsyncComponent, ref, watch, shallowRef } from 'vue'; import { v4 as uuid } from 'uuid'; import XCommon from './_common_/common.vue'; -import { deckStore, columnTypes, addColumn as addColumnToStore, loadDeck, getProfiles, deleteProfile as deleteProfile_ } from './deck/deck-store.js'; +import { deckStore, columnTypes, addColumn as addColumnToStore, forceSaveDeck, loadDeck, getProfiles, deleteProfile as deleteProfile_ } from './deck/deck-store.js'; import type { ColumnType } from './deck/deck-store.js'; import type { MenuItem } from '@/types/menu.js'; import XSidebar from '@/ui/_common_/navbar.vue'; @@ -233,10 +233,15 @@ function changeProfile(ev: MouseEvent) { title: i18n.ts._deck.profile, minLength: 1, }); + if (canceled || name == null) return; - deckStore.set('profile', name); - unisonReload(); + os.promiseDialog((async () => { + await deckStore.set('profile', name); + await forceSaveDeck(); + })(), () => { + unisonReload(); + }); }, }); }).then(() => { @@ -251,9 +256,18 @@ async function deleteProfile() { }); if (canceled) return; - deleteProfile_(deckStore.state.profile); - deckStore.set('profile', 'default'); - unisonReload(); + os.promiseDialog((async () => { + if (deckStore.state.profile === 'default') { + await deckStore.set('columns', []); + await deckStore.set('layout', []); + await forceSaveDeck(); + } else { + await deleteProfile_(deckStore.state.profile); + } + await deckStore.set('profile', 'default'); + })(), () => { + unisonReload(); + }); } diff --git a/packages/frontend/src/ui/deck/deck-store.ts b/packages/frontend/src/ui/deck/deck-store.ts index 3186982349..231bf19aa8 100644 --- a/packages/frontend/src/ui/deck/deck-store.ts +++ b/packages/frontend/src/ui/deck/deck-store.ts @@ -112,9 +112,8 @@ export const loadDeck = async () => { deckStore.set('layout', deck.layout); }; -// TODO: deckがloadされていない状態でsaveすると意図せず上書きが発生するので対策する -export const saveDeck = throttle(1000, () => { - misskeyApi('i/registry/set', { +export async function forceSaveDeck() { + await misskeyApi('i/registry/set', { scope: ['client', 'deck', 'profiles'], key: deckStore.state.profile, value: { @@ -122,6 +121,11 @@ export const saveDeck = throttle(1000, () => { layout: deckStore.reactiveState.layout.value, }, }); +} + +// TODO: deckがloadされていない状態でsaveすると意図せず上書きが発生するので対策する +export const saveDeck = throttle(1000, () => { + forceSaveDeck(); }); export async function getProfiles(): Promise { From 0f0e88e4c7bcfb30a3800e5e942c6414659e1eaa Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Wed, 5 Feb 2025 17:14:40 +0900 Subject: [PATCH 02/36] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c5a25c5e84..5acfb71727 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ - Fix: MFMの `sparkle` エフェクトが正しく表示されない問題を修正 - Fix: ページのURLにスラッシュが含まれている場合にページが正しく表示されない問題を修正 - Fix: デッキのプロファイルが新規作成できない問題を修正 +- Fix: セキュリティに関する修正 - ローカライゼーションの更新 - Playが実装されたため、ページ機能の「ソースを見る」は削除されました From b7c3630da991bd0ab75f86c6b95092b161cc8085 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 5 Feb 2025 08:58:41 +0000 Subject: [PATCH 03/36] Release: 2025.2.0 --- 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 972191a88f..52c139342f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2025.2.0-beta.1", + "version": "2025.2.0", "codename": "nasubi", "repository": { "type": "git", diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json index b9dd5b6817..601c261a05 100644 --- a/packages/misskey-js/package.json +++ b/packages/misskey-js/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "misskey-js", - "version": "2025.2.0-beta.1", + "version": "2025.2.0", "description": "Misskey SDK for JavaScript", "license": "MIT", "main": "./built/index.js", From c634ae37e5e1cd221c9bc9d83f277e1758ef0b43 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 5 Feb 2025 08:58:47 +0000 Subject: [PATCH 04/36] [skip ci] Update CHANGELOG.md (prepend template) --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5acfb71727..6d17921700 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +## Unreleased + +### General +- + +### Client +- + +### Server +- + + ## 2025.2.0 ### General From c548ec9906947c72743e611254a6557e8e8d057c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?= <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Wed, 5 Feb 2025 19:01:44 +0900 Subject: [PATCH 05/36] =?UTF-8?q?refactor(frontend):=20verbatimModuleSynta?= =?UTF-8?q?x=E3=82=92=E6=9C=89=E5=8A=B9=E5=8C=96=20(#15323)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * wip * wip * wip * wip * revert unnecessary changes * wip * refactor(frontend): enforce verbatimModuleSyntax * fix * refactor(frontend-shared): enforce verbatimModuleSyntax * wip * refactor(frontend-embed): enforce verbatimModuleSyntax * enforce consistent-type-imports * fix lint config * attemt to fix ci * fix lint * fix * fix * fix --- packages/frontend-embed/eslint.config.js | 1 + .../frontend-embed/src/components/EmMfm.ts | 3 +- .../frontend-embed/src/components/EmNotes.vue | 3 +- packages/frontend-embed/tsconfig.json | 1 + packages/frontend-shared/eslint.config.js | 1 + packages/frontend-shared/tsconfig.json | 1 + packages/frontend/.storybook/charts.ts | 3 +- packages/frontend/eslint.config.js | 1 + ...lup-plugin-unwind-css-module-class-name.ts | 2 +- packages/frontend/src/boot/common.ts | 3 +- packages/frontend/src/boot/main-boot.ts | 5 +- .../MkAbuseReportWindow.stories.impl.ts | 2 +- .../components/MkAccountMoved.stories.impl.ts | 2 +- .../components/MkAchievements.stories.impl.ts | 2 +- .../components/MkAnalogClock.stories.impl.ts | 2 +- .../MkAnnouncementDialog.stories.impl.ts | 2 +- .../MkAntennaEditor.stories.impl.ts | 2 +- .../MkAntennaEditorDialog.stories.impl.ts | 2 +- packages/frontend/src/components/MkAsUi.vue | 5 +- .../components/MkAutocomplete.stories.impl.ts | 2 +- .../src/components/MkAutocomplete.vue | 3 +- .../src/components/MkAvatars.stories.impl.ts | 2 +- .../src/components/MkButton.stories.impl.ts | 2 +- .../MkChannelFollowButton.stories.impl.ts | 2 +- .../components/MkChannelList.stories.impl.ts | 2 +- .../frontend/src/components/MkChannelList.vue | 3 +- .../MkChannelPreview.stories.impl.ts | 2 +- .../src/components/MkChart.stories.impl.ts | 2 +- .../frontend/src/components/MkChartLegend.vue | 3 +- .../components/MkClickerGame.stories.impl.ts | 2 +- .../components/MkClipPreview.stories.impl.ts | 2 +- .../src/components/MkCode.stories.impl.ts | 2 +- .../components/MkCodeEditor.stories.impl.ts | 2 +- .../components/MkCodeInline.stories.impl.ts | 2 +- .../components/MkColorInput.stories.impl.ts | 2 +- .../components/MkContextMenu.stories.impl.ts | 2 +- .../MkCropperDialog.stories.impl.ts | 2 +- ...kCustomEmojiDetailedDialog.stories.impl.ts | 2 +- .../src/components/MkCwButton.stories.impl.ts | 2 +- .../src/components/MkDateSeparatedList.vue | 5 +- .../src/components/MkDialog.stories.impl.ts | 2 +- .../components/MkDigitalClock.stories.impl.ts | 2 +- .../src/components/MkDonation.stories.impl.ts | 2 +- .../components/MkDrive.file.stories.impl.ts | 2 +- .../components/MkDrive.folder.stories.impl.ts | 2 +- .../src/components/MkDrive.stories.impl.ts | 2 +- .../MkDriveFileThumbnail.stories.impl.ts | 2 +- .../src/components/MkEmojiPicker.section.vue | 6 +- .../components/MkEmojiPicker.stories.impl.ts | 2 +- .../frontend/src/components/MkEmojiPicker.vue | 6 +- .../MkExtensionInstaller.stories.impl.ts | 2 +- .../components/MkFlashPreview.stories.impl.ts | 2 +- .../MkGalleryPostPreview.stories.impl.ts | 2 +- packages/frontend/src/components/MkInput.vue | 6 +- .../MkInstanceCardMini.stories.impl.ts | 2 +- .../src/components/MkInstanceStats.vue | 3 +- .../src/components/MkInstanceTicker.vue | 3 +- .../components/MkInviteCode.stories.impl.ts | 2 +- packages/frontend/src/components/MkLink.vue | 2 +- .../frontend/src/components/MkMediaAudio.vue | 2 +- .../frontend/src/components/MkMediaRange.vue | 5 +- .../frontend/src/components/MkMediaVideo.vue | 2 +- .../frontend/src/components/MkMention.vue | 2 +- packages/frontend/src/components/MkMenu.vue | 4 +- packages/frontend/src/components/MkModal.vue | 2 +- packages/frontend/src/components/MkNote.vue | 8 ++- .../src/components/MkNoteDetailed.vue | 8 ++- .../src/components/MkNoteMediaGrid.vue | 70 +++++++++---------- packages/frontend/src/components/MkNotes.vue | 3 +- .../components/MkNotificationSelectWindow.vue | 3 +- .../src/components/MkNotifications.vue | 2 +- .../frontend/src/components/MkPageWindow.vue | 3 +- .../frontend/src/components/MkPagination.vue | 5 +- .../frontend/src/components/MkPostForm.vue | 6 +- packages/frontend/src/components/MkRadios.vue | 3 +- .../MkRoleSelectDialog.stories.impl.ts | 2 +- packages/frontend/src/components/MkSelect.vue | 3 +- packages/frontend/src/components/MkSignin.vue | 3 +- .../src/components/MkSignupDialog.form.vue | 3 +- .../MkSignupDialog.rules.stories.impl.ts | 2 +- .../src/components/MkSortOrderEditor.vue | 4 +- .../frontend/src/components/MkSuperMenu.vue | 2 +- .../src/components/MkSwitch.button.vue | 3 +- packages/frontend/src/components/MkSwitch.vue | 3 +- .../src/components/MkSystemWebhookEditor.vue | 2 +- .../src/components/MkTagItem.stories.impl.ts | 2 +- .../frontend/src/components/MkTextarea.vue | 3 +- .../frontend/src/components/MkTimeline.vue | 2 +- .../frontend/src/components/MkUserList.vue | 3 +- .../MkUserSetupDialog.Follow.stories.impl.ts | 2 +- .../components/MkUserSetupDialog.Follow.vue | 3 +- .../MkUserSetupDialog.Privacy.stories.impl.ts | 2 +- .../MkUserSetupDialog.Profile.stories.impl.ts | 2 +- .../MkUserSetupDialog.User.stories.impl.ts | 2 +- .../MkUserSetupDialog.stories.impl.ts | 2 +- .../src/components/global/MkA.stories.impl.ts | 2 +- .../components/global/MkAcct.stories.impl.ts | 2 +- .../components/global/MkAd.stories.impl.ts | 2 +- .../global/MkAvatar.stories.impl.ts | 2 +- .../global/MkCondensedLine.stories.impl.ts | 2 +- .../global/MkCustomEmoji.stories.impl.ts | 2 +- .../global/MkEllipsis.stories.impl.ts | 2 +- .../components/global/MkEmoji.stories.impl.ts | 2 +- .../components/global/MkError.stories.impl.ts | 2 +- .../components/global/MkError.stories.meta.ts | 2 +- .../global/MkLoading.stories.impl.ts | 2 +- .../components/global/MkMfm.stories.impl.ts | 4 +- .../frontend/src/components/global/MkMfm.ts | 6 +- .../global/MkPageHeader.stories.impl.ts | 2 +- .../src/components/global/MkPageHeader.vue | 3 +- .../components/global/MkStickyContainer.vue | 3 +- .../components/global/MkTime.stories.impl.ts | 2 +- .../components/global/MkUrl.stories.impl.ts | 2 +- .../frontend/src/components/global/MkUrl.vue | 2 +- .../global/MkUserName.stories.impl.ts | 2 +- .../src/components/global/RouterView.vue | 2 +- .../src/components/grid/MkDataCell.vue | 7 +- .../src/components/grid/MkDataRow.vue | 7 +- .../components/grid/MkGrid.stories.impl.ts | 8 +-- .../frontend/src/components/grid/MkGrid.vue | 17 +++-- .../src/components/grid/MkHeaderCell.vue | 5 +- .../src/components/grid/MkHeaderRow.vue | 7 +- .../src/components/grid/MkNumberCell.vue | 3 +- .../src/components/grid/cell-validators.ts | 6 +- packages/frontend/src/components/grid/cell.ts | 12 ++-- .../frontend/src/components/grid/column.ts | 12 ++-- .../src/components/grid/grid-event.ts | 10 +-- .../src/components/grid/grid-utils.ts | 14 ++-- packages/frontend/src/components/grid/grid.ts | 6 +- packages/frontend/src/components/grid/row.ts | 10 +-- packages/frontend/src/components/index.ts | 2 +- packages/frontend/src/debug.ts | 3 +- .../frontend/src/directives/adaptive-bg.ts | 2 +- .../src/directives/adaptive-border.ts | 2 +- packages/frontend/src/directives/anim.ts | 2 +- packages/frontend/src/directives/appear.ts | 2 +- .../frontend/src/directives/click-anime.ts | 2 +- .../frontend/src/directives/follow-append.ts | 2 +- packages/frontend/src/directives/get-size.ts | 2 +- packages/frontend/src/directives/hotkey.ts | 2 +- packages/frontend/src/directives/index.ts | 2 +- packages/frontend/src/directives/panel.ts | 2 +- packages/frontend/src/directives/tooltip.ts | 3 +- .../frontend/src/directives/user-preview.ts | 3 +- packages/frontend/src/nirax.ts | 3 +- packages/frontend/src/os.ts | 3 +- .../frontend/src/pages/about.federation.vue | 3 +- .../notification-recipient.editor.vue | 3 +- .../src/pages/admin/bot-protection.vue | 2 +- .../custom-emojis-manager.local.list.vue | 7 +- .../custom-emojis-manager.local.register.vue | 12 ++-- .../admin/custom-emojis-manager.remote.vue | 15 ++-- .../custom-emojis-manager2.stories.impl.ts | 2 +- packages/frontend/src/pages/admin/index.vue | 3 +- packages/frontend/src/pages/admin/invites.vue | 3 +- .../overview.ap-requests.stories.impl.ts | 2 +- .../src/pages/admin/overview.federation.vue | 3 +- packages/frontend/src/pages/admin/queue.vue | 3 +- packages/frontend/src/pages/api-console.vue | 2 +- packages/frontend/src/pages/channel.vue | 2 +- .../frontend/src/pages/drive.file.notes.vue | 2 +- .../src/pages/drop-and-fusion.game.vue | 3 +- packages/frontend/src/pages/flash/flash.vue | 9 ++- .../frontend/src/pages/follow-requests.vue | 3 +- .../frontend/src/pages/install-extensions.vue | 6 +- packages/frontend/src/pages/instance-info.vue | 6 +- packages/frontend/src/pages/invite.vue | 5 +- packages/frontend/src/pages/scratchpad.vue | 8 ++- .../frontend/src/pages/search.stories.impl.ts | 2 +- .../frontend/src/pages/settings/accounts.vue | 4 +- .../src/pages/settings/drive-cleaner.vue | 3 +- .../src/pages/settings/emoji-picker.vue | 3 +- .../frontend/src/pages/settings/index.vue | 6 +- .../src/pages/settings/notifications.vue | 3 +- .../frontend/src/pages/settings/sounds.vue | 3 +- .../src/pages/settings/theme.manage.vue | 3 +- packages/frontend/src/pages/theme-editor.vue | 3 +- .../src/pages/user/activity.following.vue | 3 +- .../src/pages/user/activity.notes.vue | 3 +- .../frontend/src/pages/user/activity.pv.vue | 3 +- .../src/pages/user/home.stories.impl.ts | 2 +- packages/frontend/src/pizzax.ts | 3 +- packages/frontend/src/plugin.ts | 3 +- packages/frontend/src/router/definition.ts | 3 +- packages/frontend/src/router/main.ts | 2 +- packages/frontend/src/router/supplier.ts | 3 +- .../frontend/src/scripts/aiscript/common.ts | 3 +- packages/frontend/src/scripts/aiscript/ui.ts | 3 +- packages/frontend/src/scripts/autocomplete.ts | 3 +- packages/frontend/src/scripts/chart-legend.ts | 2 +- packages/frontend/src/scripts/chart-vline.ts | 2 +- .../src/scripts/check-reaction-permissions.ts | 2 +- packages/frontend/src/scripts/emoji-picker.ts | 3 +- .../frontend/src/scripts/get-note-menu.ts | 3 +- .../frontend/src/scripts/get-user-menu.ts | 2 +- .../frontend/src/scripts/install-theme.ts | 3 +- .../src/scripts/mfm-function-picker.ts | 3 +- .../frontend/src/scripts/page-metadata.ts | 3 +- .../frontend/src/scripts/reaction-picker.ts | 3 +- packages/frontend/src/scripts/theme-editor.ts | 3 +- packages/frontend/src/scripts/use-form.ts | 3 +- .../frontend/src/scripts/use-leave-guard.ts | 2 +- .../frontend/src/scripts/use-note-capture.ts | 3 +- packages/frontend/src/scripts/use-tooltip.ts | 3 +- packages/frontend/src/store.ts | 3 +- packages/frontend/src/theme-store.ts | 3 +- packages/frontend/src/types/menu.ts | 2 +- packages/frontend/src/ui/classic.vue | 3 +- .../frontend/src/ui/deck/antenna-column.vue | 5 +- .../frontend/src/ui/deck/channel-column.vue | 5 +- packages/frontend/src/ui/deck/column.vue | 3 +- packages/frontend/src/ui/deck/deck-store.ts | 2 +- .../frontend/src/ui/deck/direct-column.vue | 2 +- packages/frontend/src/ui/deck/list-column.vue | 5 +- packages/frontend/src/ui/deck/main-column.vue | 6 +- .../frontend/src/ui/deck/mentions-column.vue | 2 +- .../src/ui/deck/notifications-column.vue | 3 +- .../src/ui/deck/role-timeline-column.vue | 5 +- packages/frontend/src/ui/deck/tl-column.vue | 5 +- .../src/ui/deck/tl-note-notification.ts | 7 +- .../frontend/src/ui/deck/widgets-column.vue | 3 +- packages/frontend/src/ui/minimum.vue | 3 +- packages/frontend/src/ui/universal.vue | 6 +- packages/frontend/src/ui/visitor.vue | 3 +- packages/frontend/src/ui/zen.vue | 3 +- .../frontend/src/widgets/WidgetActivity.vue | 5 +- .../frontend/src/widgets/WidgetAichan.vue | 5 +- .../frontend/src/widgets/WidgetAiscript.vue | 5 +- .../src/widgets/WidgetAiscriptApp.vue | 11 +-- .../src/widgets/WidgetBirthdayFollowings.vue | 5 +- .../frontend/src/widgets/WidgetButton.vue | 5 +- .../frontend/src/widgets/WidgetCalendar.vue | 5 +- .../frontend/src/widgets/WidgetClicker.vue | 5 +- packages/frontend/src/widgets/WidgetClock.vue | 5 +- .../src/widgets/WidgetDigitalClock.vue | 5 +- .../frontend/src/widgets/WidgetFederation.vue | 5 +- .../src/widgets/WidgetInstanceCloud.vue | 5 +- .../src/widgets/WidgetInstanceInfo.vue | 5 +- .../frontend/src/widgets/WidgetJobQueue.vue | 5 +- packages/frontend/src/widgets/WidgetMemo.vue | 5 +- .../src/widgets/WidgetNotifications.vue | 5 +- .../src/widgets/WidgetOnlineUsers.vue | 5 +- .../frontend/src/widgets/WidgetPhotos.vue | 5 +- .../frontend/src/widgets/WidgetPostForm.vue | 5 +- .../frontend/src/widgets/WidgetProfile.vue | 5 +- packages/frontend/src/widgets/WidgetRss.vue | 5 +- .../frontend/src/widgets/WidgetRssTicker.vue | 5 +- .../frontend/src/widgets/WidgetSlideshow.vue | 5 +- .../frontend/src/widgets/WidgetTimeline.vue | 5 +- .../frontend/src/widgets/WidgetTrends.vue | 5 +- .../frontend/src/widgets/WidgetUnixClock.vue | 5 +- .../frontend/src/widgets/WidgetUserList.vue | 5 +- packages/frontend/src/widgets/index.ts | 3 +- .../src/widgets/server-metric/index.vue | 5 +- packages/frontend/src/widgets/widget.ts | 2 +- packages/frontend/test/home.test.ts | 2 +- packages/frontend/test/i18n.test.ts | 2 +- packages/frontend/test/note.test.ts | 2 +- packages/frontend/tsconfig.json | 1 + 259 files changed, 568 insertions(+), 409 deletions(-) diff --git a/packages/frontend-embed/eslint.config.js b/packages/frontend-embed/eslint.config.js index dd8f03dac5..7805256fd4 100644 --- a/packages/frontend-embed/eslint.config.js +++ b/packages/frontend-embed/eslint.config.js @@ -47,6 +47,7 @@ export default [ '@typescript-eslint/no-empty-interface': ['error', { allowSingleExtends: true, }], + 'import/consistent-type-specifier-style': ['error', 'prefer-top-level'], // window の禁止理由: グローバルスコープと衝突し、予期せぬ結果を招くため // e の禁止理由: error や event など、複数のキーワードの頭文字であり分かりにくいため 'id-denylist': ['error', 'window', 'e'], diff --git a/packages/frontend-embed/src/components/EmMfm.ts b/packages/frontend-embed/src/components/EmMfm.ts index e84fd6f679..1f9ce9d4f4 100644 --- a/packages/frontend-embed/src/components/EmMfm.ts +++ b/packages/frontend-embed/src/components/EmMfm.ts @@ -3,7 +3,8 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -import { VNode, h, SetupContext, provide } from 'vue'; +import { h, provide } from 'vue'; +import type { VNode, SetupContext } from 'vue'; import * as mfm from 'mfm-js'; import * as Misskey from 'misskey-js'; import { host } from '@@/js/config.js'; diff --git a/packages/frontend-embed/src/components/EmNotes.vue b/packages/frontend-embed/src/components/EmNotes.vue index 4e0ae005df..962a982fb7 100644 --- a/packages/frontend-embed/src/components/EmNotes.vue +++ b/packages/frontend-embed/src/components/EmNotes.vue @@ -22,7 +22,8 @@ SPDX-License-Identifier: AGPL-3.0-only + diff --git a/packages/frontend/src/components/MkPostFormAttaches.vue b/packages/frontend/src/components/MkPostFormAttaches.vue index 1336b61356..33fe82b759 100644 --- a/packages/frontend/src/components/MkPostFormAttaches.vue +++ b/packages/frontend/src/components/MkPostFormAttaches.vue @@ -22,20 +22,24 @@ SPDX-License-Identifier: AGPL-3.0-only -

{{ 16 - props.modelValue.length }}/16

+

+ {{ 16 - props.modelValue.length }}/16 +