-
{{ i18n.ts.startChat }}
+
{{ i18n.ts.startChat }}
-
{{ i18n.ts._chat.chatNotAvailableForThisAccountOrServer }}
+
{{ $i.policies.chatAvailability === 'readonly' ? i18n.ts._chat.chatIsReadOnlyForThisAccountOrServer : i18n.ts._chat.chatNotAvailableForThisAccountOrServer }}
@@ -67,7 +67,7 @@ SPDX-License-Identifier: AGPL-3.0-only
diff --git a/packages/frontend/src/pages/clip.vue b/packages/frontend/src/pages/clip.vue
index 8fe65217fb..a2fb02462e 100644
--- a/packages/frontend/src/pages/clip.vue
+++ b/packages/frontend/src/pages/clip.vue
@@ -150,7 +150,7 @@ const headerActions = computed(() => clip.value && isOwned.value ? [{
},
}, {
icon: 'ti ti-code',
- text: i18n.ts.genEmbedCode,
+ text: i18n.ts.embed,
action: () => {
genEmbedCode('clips', clip.value!.id);
},
diff --git a/packages/frontend/src/pages/scratchpad.vue b/packages/frontend/src/pages/scratchpad.vue
index f89e2dd776..ac1a7c6e1e 100644
--- a/packages/frontend/src/pages/scratchpad.vue
+++ b/packages/frontend/src/pages/scratchpad.vue
@@ -247,7 +247,7 @@ definePage(() => ({
}
.uiInspectorUnShown {
- color: var(--MI_THEME-fgTransparent);
+ color: color(from var(--MI_THEME-fg) srgb r g b / 0.5);
}
.uiInspectorType {
diff --git a/packages/frontend/src/pages/search.note.vue b/packages/frontend/src/pages/search.note.vue
index 1dc55d002c..17cf272a36 100644
--- a/packages/frontend/src/pages/search.note.vue
+++ b/packages/frontend/src/pages/search.note.vue
@@ -333,7 +333,7 @@ async function search() {
width: 100%;
height: 100%;
padding: 12px;
- border: 2px dashed var(--MI_THEME-fgTransparent);
+ border: 2px dashed color(from var(--MI_THEME-fg) srgb r g b / 0.5);
}
.userSelectButtonInner {
diff --git a/packages/frontend/src/pages/settings/emoji-palette.palette.vue b/packages/frontend/src/pages/settings/emoji-palette.palette.vue
index 33d1d7c9fa..b624d424f3 100644
--- a/packages/frontend/src/pages/settings/emoji-palette.palette.vue
+++ b/packages/frontend/src/pages/settings/emoji-palette.palette.vue
@@ -161,6 +161,6 @@ function del(ev: MouseEvent) {
.editorCaption {
font-size: 0.85em;
padding: 8px 0 0 0;
- color: var(--MI_THEME-fgTransparentWeak);
+ color: color(from var(--MI_THEME-fg) srgb r g b / 0.75);
}
diff --git a/packages/frontend/src/pages/settings/emoji-palette.vue b/packages/frontend/src/pages/settings/emoji-palette.vue
index f86c40412a..2fcecca2bd 100644
--- a/packages/frontend/src/pages/settings/emoji-palette.vue
+++ b/packages/frontend/src/pages/settings/emoji-palette.vue
@@ -246,6 +246,6 @@ definePage(() => ({
.editorCaption {
font-size: 0.85em;
padding: 8px 0 0 0;
- color: var(--MI_THEME-fgTransparentWeak);
+ color: color(from var(--MI_THEME-fg) srgb r g b / 0.75);
}
diff --git a/packages/frontend/src/pages/settings/index.vue b/packages/frontend/src/pages/settings/index.vue
index 4ed4cdc773..5921a8c812 100644
--- a/packages/frontend/src/pages/settings/index.vue
+++ b/packages/frontend/src/pages/settings/index.vue
@@ -42,7 +42,7 @@ import { instance } from '@/instance.js';
import { definePage, provideMetadataReceiver, provideReactiveMetadata } from '@/page.js';
import * as os from '@/os.js';
import { useRouter } from '@/router.js';
-import { searchIndexes } from '@/utility/autogen/settings-search-index.js';
+import { searchIndexes } from '@/utility/settings-search-index.js';
import { enableAutoBackup, getPreferencesProfileMenu } from '@/preferences/utility.js';
import { store } from '@/store.js';
import { signout } from '@/signout.js';
diff --git a/packages/frontend/src/pages/settings/mute-block.vue b/packages/frontend/src/pages/settings/mute-block.vue
index 7b8355d475..fc9cd8f892 100644
--- a/packages/frontend/src/pages/settings/mute-block.vue
+++ b/packages/frontend/src/pages/settings/mute-block.vue
@@ -62,12 +62,11 @@ SPDX-License-Identifier: AGPL-3.0-only
- {{ i18n.ts.mutedUsers }} ({{ i18n.ts.renote }})
+ {{ i18n.ts.mutedUsers }} ({{ i18n.ts.renote }})
@@ -308,7 +307,7 @@ definePage(() => ({
.userItemSub {
padding: 6px 12px;
font-size: 85%;
- color: var(--MI_THEME-fgTransparentWeak);
+ color: color(from var(--MI_THEME-fg) srgb r g b / 0.75);
}
.userItemMainBody {
diff --git a/packages/frontend/src/pages/settings/other.vue b/packages/frontend/src/pages/settings/other.vue
index 6736572e0b..d97ea6e459 100644
--- a/packages/frontend/src/pages/settings/other.vue
+++ b/packages/frontend/src/pages/settings/other.vue
@@ -19,7 +19,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
{{ i18n.ts.accountInfo }}
@@ -49,7 +49,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
{{ i18n.ts.rolesAssignedToMe }}
@@ -58,7 +58,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
{{ i18n.ts.accountMigration }}
@@ -67,7 +67,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
{{ i18n.ts.closeAccount }}
@@ -81,7 +81,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
{{ i18n.ts.experimentalFeatures }}
@@ -100,7 +100,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
{{ i18n.ts.developer }}
@@ -185,7 +185,6 @@ async function deleteAccount() {
}
function migrate() {
- os.waiting();
migrateOldSettings();
}
diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue
index 86ae8af213..42a7b486ed 100644
--- a/packages/frontend/src/pages/settings/preferences.vue
+++ b/packages/frontend/src/pages/settings/preferences.vue
@@ -14,7 +14,7 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.general }}
-
+
@@ -111,7 +111,7 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts._settings.timelineAndNote }}
-
+
@@ -279,7 +279,7 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.postForm }}
-
+
@@ -341,7 +341,7 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.notifications }}
-
+
@@ -379,49 +379,51 @@ SPDX-License-Identifier: AGPL-3.0-only
-
-
- {{ i18n.ts.chat }}
-
+
+
+
+ {{ i18n.ts.chat }}
+
-
-
-
-
- {{ i18n.ts._settings._chat.showSenderName }}
-
-
-
+
+
+
+
+ {{ i18n.ts._settings._chat.showSenderName }}
+
+
+
-
-
-
- {{ i18n.ts._settings._chat.sendOnEnter }}
-
-
-
-
{{ i18n.ts._settings.ifOn }}:
-
{{ i18n.ts._chat.send }}: Enter
-
{{ i18n.ts._chat.newline }}: Shift + Enter
+
+
+
+ {{ i18n.ts._settings._chat.sendOnEnter }}
+
+
+
+
{{ i18n.ts._settings.ifOn }}:
+
{{ i18n.ts._chat.send }}: Enter
+
{{ i18n.ts._chat.newline }}: Shift + Enter
+
+
+
{{ i18n.ts._settings.ifOff }}:
+
{{ i18n.ts._chat.send }}: Ctrl + Enter
+
{{ i18n.ts._chat.newline }}: Enter
+
-
-
{{ i18n.ts._settings.ifOff }}:
-
{{ i18n.ts._chat.send }}: Ctrl + Enter
-
{{ i18n.ts._chat.newline }}: Enter
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
{{ i18n.ts.accessibility }}
-
+
@@ -531,7 +533,7 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.performance }}
-
+
@@ -567,7 +569,7 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.dataSaver }}
-
+
{{ i18n.ts.reloadRequiredToApplySettings }}
@@ -601,7 +603,7 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.other }}
-
+
@@ -732,6 +734,9 @@ import MkFeatureBanner from '@/components/MkFeatureBanner.vue';
import { globalEvents } from '@/events.js';
import { claimAchievement } from '@/utility/achievements.js';
import { instance } from '@/instance.js';
+import { ensureSignin } from '@/i.js';
+
+const $i = ensureSignin();
const lang = ref(miLocalStorage.getItem('lang'));
const dataSaver = ref(prefer.s.dataSaver);
diff --git a/packages/frontend/src/pages/settings/privacy.vue b/packages/frontend/src/pages/settings/privacy.vue
index 2f8a697d74..4e6425667e 100644
--- a/packages/frontend/src/pages/settings/privacy.vue
+++ b/packages/frontend/src/pages/settings/privacy.vue
@@ -78,19 +78,26 @@ SPDX-License-Identifier: AGPL-3.0-only
-
-
-
- {{ i18n.ts._chat.chatAllowedUsers }}
-
-
-
-
-
- {{ i18n.ts._chat.chatAllowedUsers_note }}
-
-
-
+
+
+ {{ i18n.ts.chat }}
+
+
+ {{ i18n.ts._chat.chatNotAvailableForThisAccountOrServer }}
+
+
+ {{ i18n.ts._chat.chatAllowedUsers }}
+
+
+
+
+
+ {{ i18n.ts._chat.chatAllowedUsers_note }}
+
+
+
+
+
diff --git a/packages/frontend/src/pages/settings/webhook.edit.vue b/packages/frontend/src/pages/settings/webhook.edit.vue
index 6a6cec70ba..877d2deb90 100644
--- a/packages/frontend/src/pages/settings/webhook.edit.vue
+++ b/packages/frontend/src/pages/settings/webhook.edit.vue
@@ -184,6 +184,6 @@ definePage(() => ({
.description {
font-size: 0.85em;
padding: 8px 0 0 0;
- color: var(--MI_THEME-fgTransparentWeak);
+ color: color(from var(--MI_THEME-fg) srgb r g b / 0.75);
}
diff --git a/packages/frontend/src/pages/tag.vue b/packages/frontend/src/pages/tag.vue
index 4afef6f4d7..f67777be4e 100644
--- a/packages/frontend/src/pages/tag.vue
+++ b/packages/frontend/src/pages/tag.vue
@@ -56,7 +56,7 @@ const headerActions = computed(() => [{
label: i18n.ts.more,
handler: (ev: MouseEvent) => {
os.popupMenu([{
- text: i18n.ts.genEmbedCode,
+ text: i18n.ts.embed,
icon: 'ti ti-code',
action: () => {
genEmbedCode('tags', props.tag);
diff --git a/packages/frontend/src/pages/user/home.vue b/packages/frontend/src/pages/user/home.vue
index dfa43e1ef2..961b042873 100644
--- a/packages/frontend/src/pages/user/home.vue
+++ b/packages/frontend/src/pages/user/home.vue
@@ -520,7 +520,7 @@ onUnmounted(() => {
> .heading {
text-align: left;
- color: var(--MI_THEME-fgTransparent);
+ color: color(from var(--MI_THEME-fg) srgb r g b / 0.5);
line-height: 1.5;
font-size: 85%;
}
diff --git a/packages/frontend/src/pref-migrate.ts b/packages/frontend/src/pref-migrate.ts
index 5d48508def..414bb9c5aa 100644
--- a/packages/frontend/src/pref-migrate.ts
+++ b/packages/frontend/src/pref-migrate.ts
@@ -10,14 +10,19 @@ import { prefer } from '@/preferences.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { deckStore } from '@/ui/deck/deck-store.js';
import { unisonReload } from '@/utility/unison-reload.js';
+import * as os from '@/os.js';
+import { i18n } from '@/i18n.js';
// TODO: そのうち消す
export function migrateOldSettings() {
+ os.waiting(i18n.ts.settingsMigrating);
+
store.loaded.then(async () => {
- const themes = await misskeyApi('i/registry/get', { scope: ['client'], key: 'themes' }).catch(() => []);
- if (themes.length > 0) {
- prefer.commit('themes', themes);
- }
+ misskeyApi('i/registry/get', { scope: ['client'], key: 'themes' }).catch(() => []).then((themes: any) => {
+ if (themes.length > 0) {
+ prefer.commit('themes', themes);
+ }
+ });
const plugins = ColdDeviceStorage.get('plugins');
prefer.commit('plugins', plugins.map(p => ({
@@ -66,7 +71,7 @@ export function migrateOldSettings() {
prefer.commit('collapseRenotes', store.s.collapseRenotes);
prefer.commit('rememberNoteVisibility', store.s.rememberNoteVisibility);
prefer.commit('uploadFolder', store.s.uploadFolder);
- prefer.commit('menu', store.s.menu);
+ prefer.commit('menu', [...store.s.menu, 'chat']);
prefer.commit('statusbars', store.s.statusbars);
prefer.commit('pinnedUserLists', store.s.pinnedUserLists);
prefer.commit('serverDisconnectedBehavior', store.s.serverDisconnectedBehavior);
@@ -136,6 +141,6 @@ export function migrateOldSettings() {
window.setTimeout(() => {
unisonReload();
- }, 5000);
+ }, 10000);
});
}
diff --git a/packages/frontend/src/router.definition.ts b/packages/frontend/src/router.definition.ts
index 23118160e2..d59b160b8b 100644
--- a/packages/frontend/src/router.definition.ts
+++ b/packages/frontend/src/router.definition.ts
@@ -16,6 +16,10 @@ export const page = (loader: AsyncComponentLoader) => defineAsyncComponent({
errorComponent: MkError,
});
+function chatPage(...args: Parameters) {
+ return $i?.policies.chatAvailability !== 'unavailable' ? page(...args) : page(() => import('@/pages/not-found.vue'));
+}
+
export const ROUTE_DEF = [{
path: '/@:username/pages/:pageName(*)',
component: page(() => import('@/pages/page.vue')),
@@ -42,19 +46,19 @@ export const ROUTE_DEF = [{
component: page(() => import('@/pages/clip.vue')),
}, {
path: '/chat',
- component: page(() => import('@/pages/chat/home.vue')),
+ component: chatPage(() => import('@/pages/chat/home.vue')),
loginRequired: true,
}, {
path: '/chat/user/:userId',
- component: page(() => import('@/pages/chat/room.vue')),
+ component: chatPage(() => import('@/pages/chat/room.vue')),
loginRequired: true,
}, {
path: '/chat/room/:roomId',
- component: page(() => import('@/pages/chat/room.vue')),
+ component: chatPage(() => import('@/pages/chat/room.vue')),
loginRequired: true,
}, {
path: '/chat/messages/:messageId',
- component: page(() => import('@/pages/chat/message.vue')),
+ component: chatPage(() => import('@/pages/chat/message.vue')),
loginRequired: true,
}, {
path: '/instance-info/:host',
diff --git a/packages/frontend/src/ui/_common_/mobile-footer-menu.vue b/packages/frontend/src/ui/_common_/mobile-footer-menu.vue
new file mode 100644
index 0000000000..37b70847ca
--- /dev/null
+++ b/packages/frontend/src/ui/_common_/mobile-footer-menu.vue
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/frontend/src/ui/universal.widgets.vue b/packages/frontend/src/ui/_common_/widgets.vue
similarity index 100%
rename from packages/frontend/src/ui/universal.widgets.vue
rename to packages/frontend/src/ui/_common_/widgets.vue
diff --git a/packages/frontend/src/ui/deck.vue b/packages/frontend/src/ui/deck.vue
index bf39c07229..91da178a44 100644
--- a/packages/frontend/src/ui/deck.vue
+++ b/packages/frontend/src/ui/deck.vue
@@ -13,7 +13,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/frontend/vite.config.ts b/packages/frontend/vite.config.ts
index ec80e71ae4..aa7bf24174 100644
--- a/packages/frontend/vite.config.ts
+++ b/packages/frontend/vite.config.ts
@@ -24,7 +24,8 @@ const extensions = ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.json', '.json5', '.s
*/
export const searchIndexes = [{
targetFilePaths: ['src/pages/settings/*.vue'],
- exportFilePath: './src/utility/autogen/settings-search-index.ts',
+ mainVirtualModule: 'search-index:settings',
+ modulesToHmrOnUpdate: ['src/pages/settings/index.vue'],
verbose: process.env.FRONTEND_SEARCH_INDEX_VERBOSE === 'true',
}] satisfies SearchIndexOptions[];
diff --git a/packages/misskey-js/etc/misskey-js.api.md b/packages/misskey-js/etc/misskey-js.api.md
index cc397e2270..f54fc9de1e 100644
--- a/packages/misskey-js/etc/misskey-js.api.md
+++ b/packages/misskey-js/etc/misskey-js.api.md
@@ -813,6 +813,54 @@ export type Channels = {
claimTimeIsUp: null | Record;
};
};
+ chatUser: {
+ params: {
+ otherId: string;
+ };
+ events: {
+ message: (payload: ChatMessageLite) => void;
+ deleted: (payload: ChatMessageLite['id']) => void;
+ react: (payload: {
+ reaction: string;
+ user?: UserLite;
+ messageId: ChatMessageLite['id'];
+ }) => void;
+ unreact: (payload: {
+ reaction: string;
+ user?: UserLite;
+ messageId: ChatMessageLite['id'];
+ }) => void;
+ };
+ receives: {
+ read: {
+ id: ChatMessageLite['id'];
+ };
+ };
+ };
+ chatRoom: {
+ params: {
+ roomId: string;
+ };
+ events: {
+ message: (payload: ChatMessageLite) => void;
+ deleted: (payload: ChatMessageLite['id']) => void;
+ react: (payload: {
+ reaction: string;
+ user?: UserLite;
+ messageId: ChatMessageLite['id'];
+ }) => void;
+ unreact: (payload: {
+ reaction: string;
+ user?: UserLite;
+ messageId: ChatMessageLite['id'];
+ }) => void;
+ };
+ receives: {
+ read: {
+ id: ChatMessageLite['id'];
+ };
+ };
+ };
};
// @public (undocumented)
@@ -959,6 +1007,12 @@ type ChatMessage = components['schemas']['ChatMessage'];
// @public (undocumented)
type ChatMessageLite = components['schemas']['ChatMessageLite'];
+// @public (undocumented)
+type ChatMessageLiteFor1on1 = components['schemas']['ChatMessageLiteFor1on1'];
+
+// @public (undocumented)
+type ChatMessageLiteForRoom = components['schemas']['ChatMessageLiteForRoom'];
+
// @public (undocumented)
type ChatMessagesCreateToRoomRequest = operations['chat___messages___create-to-room']['requestBody']['content']['application/json'];
@@ -2086,6 +2140,8 @@ declare namespace entities {
AbuseReportNotificationRecipient,
ChatMessage,
ChatMessageLite,
+ ChatMessageLiteFor1on1,
+ ChatMessageLiteForRoom,
ChatRoom,
ChatRoomInvitation,
ChatRoomMembership
@@ -3655,8 +3711,8 @@ type V2AdminEmojiListResponse = operations['v2___admin___emoji___list']['respons
//
// src/entities.ts:50:2 - (ae-forgotten-export) The symbol "ModerationLogPayloads" needs to be exported by the entry point index.d.ts
// src/streaming.ts:57:3 - (ae-forgotten-export) The symbol "ReconnectingWebSocket" needs to be exported by the entry point index.d.ts
-// src/streaming.types.ts:217:4 - (ae-forgotten-export) The symbol "ReversiUpdateKey" needs to be exported by the entry point index.d.ts
-// src/streaming.types.ts:227:4 - (ae-forgotten-export) The symbol "ReversiUpdateSettings" needs to be exported by the entry point index.d.ts
+// src/streaming.types.ts:218:4 - (ae-forgotten-export) The symbol "ReversiUpdateKey" needs to be exported by the entry point index.d.ts
+// src/streaming.types.ts:228:4 - (ae-forgotten-export) The symbol "ReversiUpdateSettings" needs to be exported by the entry point index.d.ts
// (No @packageDocumentation comment for this package)
diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json
index 33a7070cc6..3f215221f2 100644
--- a/packages/misskey-js/package.json
+++ b/packages/misskey-js/package.json
@@ -1,7 +1,7 @@
{
"type": "module",
"name": "misskey-js",
- "version": "2025.4.0-beta.1",
+ "version": "2025.4.0-rc.3",
"description": "Misskey SDK for JavaScript",
"license": "MIT",
"main": "./built/index.js",
diff --git a/packages/misskey-js/src/autogen/models.ts b/packages/misskey-js/src/autogen/models.ts
index 0ff9749602..15c3ee7e55 100644
--- a/packages/misskey-js/src/autogen/models.ts
+++ b/packages/misskey-js/src/autogen/models.ts
@@ -56,6 +56,8 @@ export type SystemWebhook = components['schemas']['SystemWebhook'];
export type AbuseReportNotificationRecipient = components['schemas']['AbuseReportNotificationRecipient'];
export type ChatMessage = components['schemas']['ChatMessage'];
export type ChatMessageLite = components['schemas']['ChatMessageLite'];
+export type ChatMessageLiteFor1on1 = components['schemas']['ChatMessageLiteFor1on1'];
+export type ChatMessageLiteForRoom = components['schemas']['ChatMessageLiteForRoom'];
export type ChatRoom = components['schemas']['ChatRoom'];
export type ChatRoomInvitation = components['schemas']['ChatRoomInvitation'];
export type ChatRoomMembership = components['schemas']['ChatRoomMembership'];
diff --git a/packages/misskey-js/src/autogen/types.ts b/packages/misskey-js/src/autogen/types.ts
index f9b85f7164..3a1d598563 100644
--- a/packages/misskey-js/src/autogen/types.ts
+++ b/packages/misskey-js/src/autogen/types.ts
@@ -4898,6 +4898,8 @@ export type components = {
hasUnreadNote: boolean;
/** @default false */
notify: boolean;
+ /** @default false */
+ hideNotesInSensitiveChannel: boolean;
};
Clip: {
/**
@@ -5133,6 +5135,8 @@ export type components = {
/** @example false */
asBadge: boolean;
/** @example false */
+ preserveAssignmentOnMoveAccount: boolean;
+ /** @example false */
canEditMembersByModerator: boolean;
policies: {
[key: string]: {
@@ -5175,7 +5179,8 @@ export type components = {
canImportFollowing: boolean;
canImportMuting: boolean;
canImportUserLists: boolean;
- canChat: boolean;
+ /** @enum {string} */
+ chatAvailability: 'available' | 'readonly' | 'unavailable';
};
ReversiGameLite: {
/** Format: id */
@@ -5309,6 +5314,21 @@ export type components = {
enableEmail: boolean;
enableServiceWorker: boolean;
translatorAvailable: boolean;
+ sentryForFrontend: ({
+ options: {
+ dsn: string;
+ [key: string]: unknown;
+ };
+ vueIntegration?: {
+ [key: string]: unknown;
+ } | null;
+ browserTracingIntegration?: {
+ [key: string]: unknown;
+ } | null;
+ replayIntegration?: {
+ [key: string]: unknown;
+ } | null;
+ }) | null;
mediaProxy: string;
enableUrlPreview: boolean;
backgroundImageUrl: string | null;
@@ -5389,10 +5409,10 @@ export type components = {
fileId?: string | null;
file?: components['schemas']['DriveFile'] | null;
isRead?: boolean;
- reactions: ({
+ reactions: {
reaction: string;
- user?: components['schemas']['UserLite'] | null;
- })[];
+ user: components['schemas']['UserLite'];
+ }[];
};
ChatMessageLite: {
id: string;
@@ -5410,6 +5430,34 @@ export type components = {
user?: components['schemas']['UserLite'] | null;
})[];
};
+ ChatMessageLiteFor1on1: {
+ id: string;
+ /** Format: date-time */
+ createdAt: string;
+ fromUserId: string;
+ toUserId: string;
+ text?: string | null;
+ fileId?: string | null;
+ file?: components['schemas']['DriveFile'] | null;
+ reactions: {
+ reaction: string;
+ }[];
+ };
+ ChatMessageLiteForRoom: {
+ id: string;
+ /** Format: date-time */
+ createdAt: string;
+ fromUserId: string;
+ fromUser: components['schemas']['UserLite'];
+ toRoomId: string;
+ text?: string | null;
+ fileId?: string | null;
+ file?: components['schemas']['DriveFile'] | null;
+ reactions: {
+ reaction: string;
+ user: components['schemas']['UserLite'];
+ }[];
+ };
ChatRoom: {
id: string;
/** Format: date-time */
@@ -9351,6 +9399,7 @@ export type operations = {
/** @default false */
isExplorable?: boolean;
asBadge: boolean;
+ preserveAssignmentOnMoveAccount?: boolean;
canEditMembersByModerator: boolean;
displayOrder: number;
policies: Record;
@@ -9626,6 +9675,7 @@ export type operations = {
isAdministrator?: boolean;
isExplorable?: boolean;
asBadge?: boolean;
+ preserveAssignmentOnMoveAccount?: boolean;
canEditMembersByModerator?: boolean;
displayOrder?: number;
policies?: Record;
@@ -11298,6 +11348,7 @@ export type operations = {
excludeBots?: boolean;
withReplies: boolean;
withFile: boolean;
+ hideNotesInSensitiveChannel?: boolean;
};
};
};
@@ -11579,6 +11630,7 @@ export type operations = {
excludeBots?: boolean;
withReplies?: boolean;
withFile?: boolean;
+ hideNotesInSensitiveChannel?: boolean;
};
};
};
@@ -14056,7 +14108,7 @@ export type operations = {
/** @description OK (with results) */
200: {
content: {
- 'application/json': components['schemas']['ChatMessageLite'];
+ 'application/json': components['schemas']['ChatMessageLiteForRoom'];
};
};
/** @description Client error */
@@ -14119,7 +14171,7 @@ export type operations = {
/** @description OK (with results) */
200: {
content: {
- 'application/json': components['schemas']['ChatMessageLite'];
+ 'application/json': components['schemas']['ChatMessageLiteFor1on1'];
};
};
/** @description Client error */
@@ -14294,7 +14346,7 @@ export type operations = {
/** @description OK (with results) */
200: {
content: {
- 'application/json': components['schemas']['ChatMessageLite'][];
+ 'application/json': components['schemas']['ChatMessageLiteForRoom'][];
};
};
/** @description Client error */
@@ -14522,7 +14574,7 @@ export type operations = {
/** @description OK (with results) */
200: {
content: {
- 'application/json': components['schemas']['ChatMessageLite'][];
+ 'application/json': components['schemas']['ChatMessageLiteFor1on1'][];
};
};
/** @description Client error */
diff --git a/packages/misskey-js/src/streaming.types.ts b/packages/misskey-js/src/streaming.types.ts
index 8e5438eeb6..10204fb2c9 100644
--- a/packages/misskey-js/src/streaming.types.ts
+++ b/packages/misskey-js/src/streaming.types.ts
@@ -1,6 +1,7 @@
import {
Antenna,
ChatMessage,
+ ChatMessageLite,
DriveFile,
DriveFolder,
Note,
@@ -227,7 +228,55 @@ export type Channels = {
updateSettings: ReversiUpdateSettings;
claimTimeIsUp: null | Record;
}
- }
+ };
+ chatUser: {
+ params: {
+ otherId: string;
+ };
+ events: {
+ message: (payload: ChatMessageLite) => void;
+ deleted: (payload: ChatMessageLite['id']) => void;
+ react: (payload: {
+ reaction: string;
+ user?: UserLite;
+ messageId: ChatMessageLite['id'];
+ }) => void;
+ unreact: (payload: {
+ reaction: string;
+ user?: UserLite;
+ messageId: ChatMessageLite['id'];
+ }) => void;
+ };
+ receives: {
+ read: {
+ id: ChatMessageLite['id'];
+ };
+ };
+ };
+ chatRoom: {
+ params: {
+ roomId: string;
+ };
+ events: {
+ message: (payload: ChatMessageLite) => void;
+ deleted: (payload: ChatMessageLite['id']) => void;
+ react: (payload: {
+ reaction: string;
+ user?: UserLite;
+ messageId: ChatMessageLite['id'];
+ }) => void;
+ unreact: (payload: {
+ reaction: string;
+ user?: UserLite;
+ messageId: ChatMessageLite['id'];
+ }) => void;
+ };
+ receives: {
+ read: {
+ id: ChatMessageLite['id'];
+ };
+ };
+ };
};
export type NoteUpdatedEvent = { id: Note['id'] } & ({
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c7863c9a57..cbf5cc74e5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -13,6 +13,9 @@ patchedDependencies:
re2:
hash: 018babd22b7ce951bcd10d6246f1e541a7ac7ba212f7fa8985e774ece67d08e1
path: scripts/dependency-patches/re2.patch
+ vite:
+ hash: cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29
+ path: scripts/dependency-patches/vite.patch
importers:
@@ -447,6 +450,9 @@ importers:
'@nestjs/platform-express':
specifier: 10.4.15
version: 10.4.15(@nestjs/common@11.0.12(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.0.12)
+ '@sentry/vue':
+ specifier: 9.8.0
+ version: 9.8.0(vue@3.5.13(typescript@5.8.2))
'@simplewebauthn/types':
specifier: 12.0.0
version: 12.0.0
@@ -712,6 +718,9 @@ importers:
'@rollup/pluginutils':
specifier: 5.1.4
version: 5.1.4(rollup@4.36.0)
+ '@sentry/vue':
+ specifier: 9.8.0
+ version: 9.8.0(vue@3.5.13(typescript@5.8.2))
'@syuilo/aiscript':
specifier: 0.19.0
version: 0.19.0
@@ -723,7 +732,7 @@ importers:
version: 15.1.1
'@vitejs/plugin-vue':
specifier: 5.2.3
- version: 5.2.3(vite@6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))(vue@3.5.13(typescript@5.8.2))
+ version: 5.2.3(vite@6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))(vue@3.5.13(typescript@5.8.2))
'@vue/compiler-sfc':
specifier: 3.5.13
version: 3.5.13
@@ -861,7 +870,7 @@ importers:
version: 1.13.1(vue@3.5.13(typescript@5.8.2))
vite:
specifier: 6.2.4
- version: 6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
+ version: 6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
vue:
specifier: 3.5.13
version: 3.5.13(typescript@5.8.2)
@@ -913,7 +922,7 @@ importers:
version: 8.6.7(@storybook/test@8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.2)
'@storybook/react-vite':
specifier: 8.6.7
- version: 8.6.7(@storybook/test@8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.36.0)(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.2)(vite@6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))
+ version: 8.6.7(@storybook/test@8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.36.0)(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.2)(vite@6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))
'@storybook/test':
specifier: 8.6.7
version: 8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))
@@ -928,7 +937,7 @@ importers:
version: 8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vue@3.5.13(typescript@5.8.2))
'@storybook/vue3-vite':
specifier: 8.6.7
- version: 8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))(vue@3.5.13(typescript@5.8.2))
+ version: 8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))(vue@3.5.13(typescript@5.8.2))
'@testing-library/vue':
specifier: 8.1.0
version: 8.1.0(@vue/compiler-sfc@3.5.13)(@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.8.2)))(vue@3.5.13(typescript@5.8.2))
@@ -974,6 +983,9 @@ importers:
'@vitest/coverage-v8':
specifier: 3.0.9
version: 3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.11)(happy-dom@17.4.4)(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.11)(typescript@5.8.2))(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))
+ '@vue/compiler-core':
+ specifier: 3.5.13
+ version: 3.5.13
'@vue/runtime-core':
specifier: 3.5.13
version: 3.5.13
@@ -1004,6 +1016,9 @@ importers:
micromatch:
specifier: 4.0.8
version: 4.0.8
+ minimatch:
+ specifier: 10.0.1
+ version: 10.0.1
msw:
specifier: 2.7.3
version: 2.7.3(@types/node@22.13.11)(typescript@5.8.2)
@@ -1078,7 +1093,7 @@ importers:
version: 15.1.1
'@vitejs/plugin-vue':
specifier: 5.2.3
- version: 5.2.3(vite@6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))(vue@3.5.13(typescript@5.8.2))
+ version: 5.2.3(vite@6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))(vue@3.5.13(typescript@5.8.2))
'@vue/compiler-sfc':
specifier: 3.5.13
version: 3.5.13
@@ -1132,7 +1147,7 @@ importers:
version: 11.1.0
vite:
specifier: 6.2.4
- version: 6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
+ version: 6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
vue:
specifier: 3.5.13
version: 3.5.13(typescript@5.8.2)
@@ -1720,10 +1735,6 @@ packages:
resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==}
engines: {node: '>=6.9.0'}
- '@babel/helper-string-parser@7.24.7':
- resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==}
- engines: {node: '>=6.9.0'}
-
'@babel/helper-string-parser@7.24.8':
resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==}
engines: {node: '>=6.9.0'}
@@ -1748,11 +1759,6 @@ packages:
resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==}
engines: {node: '>=6.9.0'}
- '@babel/parser@7.24.7':
- resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==}
- engines: {node: '>=6.0.0'}
- hasBin: true
-
'@babel/parser@7.25.6':
resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==}
engines: {node: '>=6.0.0'}
@@ -1847,10 +1853,6 @@ packages:
resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==}
engines: {node: '>=6.9.0'}
- '@babel/types@7.24.7':
- resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==}
- engines: {node: '>=6.9.0'}
-
'@babel/types@7.25.6':
resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==}
engines: {node: '>=6.9.0'}
@@ -3558,10 +3560,34 @@ packages:
'@sec-ant/readable-stream@0.4.1':
resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
+ '@sentry-internal/browser-utils@9.8.0':
+ resolution: {integrity: sha512-7aQDeU9ogMLKnEBFM/vvgMMgZDkfMhoZCtX8kq65gn33L4X2B8sI5oyUj2QJtXaRSsiUjbdCaquDLqZBCaLQHA==}
+ engines: {node: '>=18'}
+
+ '@sentry-internal/feedback@9.8.0':
+ resolution: {integrity: sha512-xWiCJkD8ROuy2pnojuRLcLI6sezK399gasA5ZL4MCXdkryqZYs55Ef2Ofj4z0RdUc8gMUb81+LTqwbmbfTqNlQ==}
+ engines: {node: '>=18'}
+
+ '@sentry-internal/replay-canvas@9.8.0':
+ resolution: {integrity: sha512-/6ELOnyCOItvqv2Os29JhE8ydDds3xibMQ+FomsSkClQdC4bbc/L74nm/fdXVpJkMswtjksiTwZo1nYTS3JsIw==}
+ engines: {node: '>=18'}
+
+ '@sentry-internal/replay@9.8.0':
+ resolution: {integrity: sha512-YJhhNnrsufYVIX9s5lNSFFQrBJjUtn5AxvrcnN0fvLymNg3Y73GOUpFmhTxyELjQneKiOViClxjoWSVAN7sqQA==}
+ engines: {node: '>=18'}
+
+ '@sentry/browser@9.8.0':
+ resolution: {integrity: sha512-iFM4PGLc6qCb0GaHnA5Uy09k25RXVSepAgS574cm1CH7II1wrRjTozKnPKROW89WDMuxoTOL7Tk7qPGCyWmA4g==}
+ engines: {node: '>=18'}
+
'@sentry/core@8.55.0':
resolution: {integrity: sha512-6g7jpbefjHYs821Z+EBJ8r4Z7LT5h80YSWRJaylGS4nW5W5Z2KXzpdnyFarv37O7QjauzVC2E+PABmpkw5/JGA==}
engines: {node: '>=14.18'}
+ '@sentry/core@9.8.0':
+ resolution: {integrity: sha512-EnN2yLWCbWjooWBPzwlXdZoJG/Bqn3ymbuXX++DUJuBGjSmtixQeTf/hKeVzj4zbib3BbbYsNBasRVjq8Rk5ng==}
+ engines: {node: '>=18'}
+
'@sentry/node@8.55.0':
resolution: {integrity: sha512-h10LJLDTRAzYgay60Oy7moMookqqSZSviCWkkmHZyaDn+4WURnPp5SKhhfrzPRQcXKrweiOwDSHBgn1tweDssg==}
engines: {node: '>=14.18'}
@@ -3582,6 +3608,16 @@ packages:
engines: {node: '>=14.18'}
hasBin: true
+ '@sentry/vue@9.8.0':
+ resolution: {integrity: sha512-E+27lL+aU8HjDo3DD3TlgStTIxBZHVqz6jZcL0/tig/JldpFRetO77terRHNfSVlPc0m3aNXuARu7G438f7ZlQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ pinia: 2.x || 3.x
+ vue: 2.x || 3.x
+ peerDependenciesMeta:
+ pinia:
+ optional: true
+
'@shikijs/core@3.2.1':
resolution: {integrity: sha512-FhsdxMWYu/C11sFisEp7FMGBtX/OSSbnXZDMBhGuUDBNTdsoZlMSgQv5f90rwvzWAdWIW6VobD+G3IrazxA6dQ==}
@@ -4527,8 +4563,8 @@ packages:
'@types/pg@8.6.1':
resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==}
- '@types/prop-types@15.7.5':
- resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
+ '@types/prop-types@15.7.14':
+ resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==}
'@types/pug@2.0.10':
resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==}
@@ -4566,8 +4602,8 @@ packages:
'@types/sanitize-html@2.13.0':
resolution: {integrity: sha512-X31WxbvW9TjIhZZNyNBZ/p5ax4ti7qsNDBDEnH4zAgmEh35YnFD1UiS6z9Cd34kKm0LslFW0KPmTQzu/oGtsqQ==}
- '@types/scheduler@0.16.2':
- resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==}
+ '@types/scheduler@0.23.0':
+ resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==}
'@types/seedrandom@2.4.34':
resolution: {integrity: sha512-ytDiArvrn/3Xk6/vtylys5tlY6eo7Ane0hvcx++TKo6RxQXuVfW0AF/oeWqAj9dN29SyhtawuXstgmPlwNcv/A==}
@@ -8442,6 +8478,10 @@ packages:
resolution: {integrity: sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g==}
engines: {node: '>=10'}
+ node-abi@3.74.0:
+ resolution: {integrity: sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==}
+ engines: {node: '>=10'}
+
node-abort-controller@3.1.1:
resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==}
@@ -9313,6 +9353,9 @@ packages:
pump@3.0.0:
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
+ pump@3.0.2:
+ resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==}
+
punycode.js@2.3.1:
resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
engines: {node: '>=6'}
@@ -9436,6 +9479,10 @@ packages:
resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==}
engines: {node: '>= 6'}
+ readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+ engines: {node: '>= 6'}
+
readable-stream@4.3.0:
resolution: {integrity: sha512-MuEnA0lbSi7JS8XM+WNJlWZkHAAdm7gETHdFK//Q/mChGyj2akEFtdLZh32jSdkWGbRwCW9pn6g3LWDdDeZnBQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -9701,6 +9748,11 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ semver@7.7.1:
+ resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
send@0.19.0:
resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
engines: {node: '>= 0.8.0'}
@@ -11783,8 +11835,6 @@ snapshots:
dependencies:
'@babel/types': 7.25.6
- '@babel/helper-string-parser@7.24.7': {}
-
'@babel/helper-string-parser@7.24.8': {}
'@babel/helper-validator-identifier@7.24.7': {}
@@ -11811,10 +11861,6 @@ snapshots:
js-tokens: 4.0.0
picocolors: 1.1.1
- '@babel/parser@7.24.7':
- dependencies:
- '@babel/types': 7.25.6
-
'@babel/parser@7.25.6':
dependencies:
'@babel/types': 7.25.6
@@ -11920,12 +11966,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/types@7.24.7':
- dependencies:
- '@babel/helper-string-parser': 7.24.7
- '@babel/helper-validator-identifier': 7.24.7
- to-fast-properties: 2.0.0
-
'@babel/types@7.25.6':
dependencies:
'@babel/helper-string-parser': 7.24.8
@@ -12795,12 +12835,12 @@ snapshots:
'@types/yargs': 17.0.19
chalk: 4.1.2
- '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.2)(vite@6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))':
+ '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.2)(vite@6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))':
dependencies:
glob: 10.4.5
magic-string: 0.27.0
react-docgen-typescript: 2.2.2(typescript@5.8.2)
- vite: 6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
+ vite: 6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
optionalDependencies:
typescript: 5.8.2
@@ -13632,8 +13672,36 @@ snapshots:
'@sec-ant/readable-stream@0.4.1': {}
+ '@sentry-internal/browser-utils@9.8.0':
+ dependencies:
+ '@sentry/core': 9.8.0
+
+ '@sentry-internal/feedback@9.8.0':
+ dependencies:
+ '@sentry/core': 9.8.0
+
+ '@sentry-internal/replay-canvas@9.8.0':
+ dependencies:
+ '@sentry-internal/replay': 9.8.0
+ '@sentry/core': 9.8.0
+
+ '@sentry-internal/replay@9.8.0':
+ dependencies:
+ '@sentry-internal/browser-utils': 9.8.0
+ '@sentry/core': 9.8.0
+
+ '@sentry/browser@9.8.0':
+ dependencies:
+ '@sentry-internal/browser-utils': 9.8.0
+ '@sentry-internal/feedback': 9.8.0
+ '@sentry-internal/replay': 9.8.0
+ '@sentry-internal/replay-canvas': 9.8.0
+ '@sentry/core': 9.8.0
+
'@sentry/core@8.55.0': {}
+ '@sentry/core@9.8.0': {}
+
'@sentry/node@8.55.0':
dependencies:
'@opentelemetry/api': 1.9.0
@@ -13693,6 +13761,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@sentry/vue@9.8.0(vue@3.5.13(typescript@5.8.2))':
+ dependencies:
+ '@sentry/browser': 9.8.0
+ '@sentry/core': 9.8.0
+ vue: 3.5.13(typescript@5.8.2)
+
'@shikijs/core@3.2.1':
dependencies:
'@shikijs/types': 3.2.1
@@ -14282,13 +14356,13 @@ snapshots:
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
- '@storybook/builder-vite@8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))':
+ '@storybook/builder-vite@8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))':
dependencies:
'@storybook/csf-plugin': 8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))
browser-assert: 1.2.1
storybook: 8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)
ts-dedent: 2.2.0
- vite: 6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
+ vite: 6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
'@storybook/components@8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))':
dependencies:
@@ -14351,11 +14425,11 @@ snapshots:
react-dom: 19.0.0(react@19.0.0)
storybook: 8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)
- '@storybook/react-vite@8.6.7(@storybook/test@8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.36.0)(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.2)(vite@6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))':
+ '@storybook/react-vite@8.6.7(@storybook/test@8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.36.0)(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.2)(vite@6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))':
dependencies:
- '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.2)(vite@6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))
+ '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.2)(vite@6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))
'@rollup/pluginutils': 5.1.4(rollup@4.36.0)
- '@storybook/builder-vite': 8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))
+ '@storybook/builder-vite': 8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))
'@storybook/react': 8.6.7(@storybook/test@8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.2)
find-up: 5.0.0
magic-string: 0.30.17
@@ -14365,7 +14439,7 @@ snapshots:
resolve: 1.22.8
storybook: 8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)
tsconfig-paths: 4.2.0
- vite: 6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
+ vite: 6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
optionalDependencies:
'@storybook/test': 8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))
transitivePeerDependencies:
@@ -14414,15 +14488,15 @@ snapshots:
dependencies:
storybook: 8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)
- '@storybook/vue3-vite@8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))(vue@3.5.13(typescript@5.8.2))':
+ '@storybook/vue3-vite@8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))(vue@3.5.13(typescript@5.8.2))':
dependencies:
- '@storybook/builder-vite': 8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))
+ '@storybook/builder-vite': 8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))
'@storybook/vue3': 8.6.7(storybook@8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vue@3.5.13(typescript@5.8.2))
find-package-json: 1.2.0
magic-string: 0.30.17
storybook: 8.6.7(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)
typescript: 5.8.2
- vite: 6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
+ vite: 6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
vue-component-meta: 2.0.16(typescript@5.8.2)
vue-docgen-api: 4.75.1(vue@3.5.13(typescript@5.8.2))
transitivePeerDependencies:
@@ -14920,7 +14994,7 @@ snapshots:
pg-protocol: 1.7.1
pg-types: 2.2.0
- '@types/prop-types@15.7.5': {}
+ '@types/prop-types@15.7.14': {}
'@types/pug@2.0.10': {}
@@ -14940,8 +15014,8 @@ snapshots:
'@types/react@18.0.28':
dependencies:
- '@types/prop-types': 15.7.5
- '@types/scheduler': 0.16.2
+ '@types/prop-types': 15.7.14
+ '@types/scheduler': 0.23.0
csstype: 3.1.3
'@types/readdir-glob@1.1.1':
@@ -14956,7 +15030,7 @@ snapshots:
dependencies:
htmlparser2: 8.0.1
- '@types/scheduler@0.16.2': {}
+ '@types/scheduler@0.23.0': {}
'@types/seedrandom@2.4.34': {}
@@ -15263,9 +15337,9 @@ snapshots:
'@ungap/structured-clone@1.2.0': {}
- '@vitejs/plugin-vue@5.2.3(vite@6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))(vue@3.5.13(typescript@5.8.2))':
+ '@vitejs/plugin-vue@5.2.3(vite@6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))(vue@3.5.13(typescript@5.8.2))':
dependencies:
- vite: 6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
+ vite: 6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
vue: 3.5.13(typescript@5.8.2)
'@vitest/coverage-v8@3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.11)(happy-dom@17.4.4)(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.11)(typescript@5.8.2))(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))':
@@ -15300,14 +15374,14 @@ snapshots:
chai: 5.2.0
tinyrainbow: 2.0.0
- '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@22.13.11)(typescript@5.8.2))(vite@6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))':
+ '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@22.13.11)(typescript@5.8.2))(vite@6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))':
dependencies:
'@vitest/spy': 3.0.9
estree-walker: 3.0.3
magic-string: 0.30.17
optionalDependencies:
msw: 2.7.3(@types/node@22.13.11)(typescript@5.8.2)
- vite: 6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
+ vite: 6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
'@vitest/pretty-format@2.0.5':
dependencies:
@@ -16000,7 +16074,7 @@ snapshots:
dependencies:
buffer: 5.7.1
inherits: 2.0.4
- readable-stream: 3.6.0
+ readable-stream: 3.6.2
optional: true
blob-util@2.0.2: {}
@@ -16467,8 +16541,8 @@ snapshots:
constantinople@4.0.1:
dependencies:
- '@babel/parser': 7.24.7
- '@babel/types': 7.24.7
+ '@babel/parser': 7.25.6
+ '@babel/types': 7.25.6
content-disposition@0.5.4:
dependencies:
@@ -19047,7 +19121,7 @@ snapshots:
'@babel/generator': 7.23.5
'@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.5)
'@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.5)
- '@babel/types': 7.24.7
+ '@babel/types': 7.25.6
'@jest/expect-utils': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
@@ -20072,6 +20146,11 @@ snapshots:
dependencies:
semver: 7.7.1
+ node-abi@3.74.0:
+ dependencies:
+ semver: 7.7.1
+ optional: true
+
node-abort-controller@3.1.1: {}
node-addon-api@3.2.1:
@@ -20770,8 +20849,8 @@ snapshots:
minimist: 1.2.8
mkdirp-classic: 0.5.3
napi-build-utils: 2.0.0
- node-abi: 3.62.0
- pump: 3.0.0
+ node-abi: 3.74.0
+ pump: 3.0.2
rc: 1.2.8
simple-get: 4.0.1
tar-fs: 2.1.2
@@ -20949,6 +21028,12 @@ snapshots:
end-of-stream: 1.4.4
once: 1.4.0
+ pump@3.0.2:
+ dependencies:
+ end-of-stream: 1.4.4
+ once: 1.4.0
+ optional: true
+
punycode.js@2.3.1: {}
punycode@2.3.1: {}
@@ -21090,6 +21175,13 @@ snapshots:
string_decoder: 1.3.0
util-deprecate: 1.0.2
+ readable-stream@3.6.2:
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+ optional: true
+
readable-stream@4.3.0:
dependencies:
abort-controller: 3.0.0
@@ -21389,6 +21481,9 @@ snapshots:
semver@7.7.1: {}
+ semver@7.7.1:
+ optional: true
+
send@0.19.0:
dependencies:
debug: 2.6.9
@@ -21965,7 +22060,7 @@ snapshots:
dependencies:
chownr: 1.1.4
mkdirp-classic: 0.5.3
- pump: 3.0.0
+ pump: 3.0.2
tar-stream: 2.2.0
optional: true
@@ -21975,7 +22070,7 @@ snapshots:
end-of-stream: 1.4.4
fs-constants: 1.0.0
inherits: 2.0.4
- readable-stream: 3.6.0
+ readable-stream: 3.6.2
optional: true
tar-stream@3.1.6:
@@ -22472,7 +22567,7 @@ snapshots:
debug: 4.4.0(supports-color@8.1.1)
es-module-lexer: 1.6.0
pathe: 2.0.3
- vite: 6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
+ vite: 6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -22489,7 +22584,7 @@ snapshots:
vite-plugin-turbosnap@1.0.3: {}
- vite@6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3):
+ vite@6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3):
dependencies:
esbuild: 0.25.1
postcss: 8.5.3
@@ -22508,7 +22603,7 @@ snapshots:
vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.11)(happy-dom@17.4.4)(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.11)(typescript@5.8.2))(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3):
dependencies:
'@vitest/expect': 3.0.9
- '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.11)(typescript@5.8.2))(vite@6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))
+ '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.11)(typescript@5.8.2))(vite@6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3))
'@vitest/pretty-format': 3.0.9
'@vitest/runner': 3.0.9
'@vitest/snapshot': 3.0.9
@@ -22524,7 +22619,7 @@ snapshots:
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 2.0.0
- vite: 6.2.4(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
+ vite: 6.2.4(patch_hash=cb4a32b4c98072ee9756b54d2da01411e766907004dac5fb3abc965dac9c6a29)(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
vite-node: 3.0.9(@types/node@22.13.11)(sass@1.86.0)(terser@5.39.0)(tsx@4.19.3)
why-is-node-running: 2.3.0
optionalDependencies:
@@ -22779,7 +22874,7 @@ snapshots:
with@7.0.2:
dependencies:
'@babel/parser': 7.25.6
- '@babel/types': 7.24.7
+ '@babel/types': 7.25.6
assert-never: 1.2.1
babel-walk: 3.0.0-canary-5
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 68e4f0adc1..8d4e0f73eb 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -27,3 +27,4 @@ onlyBuiltDependencies:
- utf-8-validate
- v-code-diff
- vue-demi
+ignorePatchFailures: false
diff --git a/scripts/dependency-patches/vite.patch b/scripts/dependency-patches/vite.patch
new file mode 100644
index 0000000000..3fe28ea67e
--- /dev/null
+++ b/scripts/dependency-patches/vite.patch
@@ -0,0 +1,31 @@
+diff --git a/dist/node/chunks/dep-DrOo5SEf.js b/dist/node/chunks/dep-DrOo5SEf.js
+index 329e68bd27e55a56d815fa6b4de2d615a8c2b343..9d9f58e90ae836f80063b698e307fec436e53e07 100644
+--- a/dist/node/chunks/dep-DrOo5SEf.js
++++ b/dist/node/chunks/dep-DrOo5SEf.js
+@@ -45971,7 +45971,7 @@ function importAnalysisPlugin(config) {
+ let isPartiallySelfAccepting = false;
+ const importedBindings = enablePartialAccept ? /* @__PURE__ */ new Map() : null;
+ const toAbsoluteUrl = (url) => path$d.posix.resolve(path$d.posix.dirname(importerModule.url), url);
+- const normalizeUrl = async (url, pos, forceSkipImportAnalysis = false) => {
++ const normalizeUrl = async (url, pos, forceSkipImportAnalysis = false, stripBase2 = false) => {
+ url = stripBase(url, base);
+ let importerFile = importer;
+ if (depsOptimizer && moduleListContains(depsOptimizer.options.exclude, url)) {
+@@ -46031,7 +46031,7 @@ function importAnalysisPlugin(config) {
+ e.pos = pos;
+ throw e;
+ }
+- if (!ssr) url = joinUrlSegments(base, url);
++ if (!ssr && !stripBase2) url = joinUrlSegments(base, url);
+ return [url, resolved.id];
+ };
+ const orderedImportedUrls = new Array(imports.length);
+@@ -46288,7 +46288,7 @@ See ${colors$1.blue(
+ const pluginImports = this._addedImports;
+ if (pluginImports) {
+ (await Promise.all(
+- [...pluginImports].map((id) => normalizeUrl(id, 0, true))
++ [...pluginImports].map((id) => normalizeUrl(id, 0, true, true))
+ )).forEach(([url]) => importedUrls.add(url));
+ }
+ if (ssr && importerModule.isSelfAccepting) {