@@ -102,7 +102,7 @@ const headerTabs = computed(() => user.value ? [{
key: 'home',
title: i18n.ts.overview,
icon: 'ti ti-home',
-}, {
+}, ...(!user.value.isBlocked ? [{
key: 'notes',
title: i18n.ts.notes,
icon: 'ti ti-pencil',
@@ -138,7 +138,7 @@ const headerTabs = computed(() => user.value ? [{
key: 'gallery',
title: i18n.ts.gallery,
icon: 'ti ti-icons',
-}, {
+}] : []), {
key: 'raw',
title: 'Raw',
icon: 'ti ti-code',
diff --git a/packages/frontend/src/router/definition.ts b/packages/frontend/src/router/definition.ts
index a0ec1e6e5e..9842793a79 100644
--- a/packages/frontend/src/router/definition.ts
+++ b/packages/frontend/src/router/definition.ts
@@ -620,8 +620,8 @@ const routes: RouteDef[] = [{
path: '/timeline',
component: page(() => import('@/pages/timeline.vue')),
}, {
- path: '/cfm-cheat-sheet',
- component: page(() => import('@/pages/cfm-cheat-sheet.vue')),
+ path: '/mfc-cheat-sheet',
+ component: page(() => import('@/pages/mfc-cheat-sheet.vue')),
}, {
name: 'index',
path: '/',
diff --git a/packages/frontend/src/scripts/detect-language.ts b/packages/frontend/src/scripts/detect-language.ts
index a998d79487..8f74f83c44 100644
--- a/packages/frontend/src/scripts/detect-language.ts
+++ b/packages/frontend/src/scripts/detect-language.ts
@@ -4,7 +4,7 @@
*/
import { detect } from 'tinyld';
-import * as mfm from 'cfm-js';
+import * as mfm from 'mfc-js';
export default function detectLanguage(text: string): string {
const nodes = mfm.parse(text);
diff --git a/packages/frontend/src/scripts/extract-mentions.ts b/packages/frontend/src/scripts/extract-mentions.ts
index 0e6c969016..efa6bea4c3 100644
--- a/packages/frontend/src/scripts/extract-mentions.ts
+++ b/packages/frontend/src/scripts/extract-mentions.ts
@@ -5,7 +5,7 @@
// test is located in test/extract-mentions
-import * as mfm from 'cfm-js';
+import * as mfm from 'mfc-js';
export function extractMentions(nodes: mfm.MfmNode[]): mfm.MfmMention['props'][] {
// TODO: 重複を削除
diff --git a/packages/frontend/src/scripts/extract-url-from-mfm.ts b/packages/frontend/src/scripts/extract-url-from-mfm.ts
index dccd17fd6f..b5f0e274d6 100644
--- a/packages/frontend/src/scripts/extract-url-from-mfm.ts
+++ b/packages/frontend/src/scripts/extract-url-from-mfm.ts
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import * as mfm from 'cfm-js';
+import * as mfm from 'mfc-js';
import { unique } from '@@/js/array.js';
// unique without hash
diff --git a/packages/frontend/src/scripts/get-note-menu.ts b/packages/frontend/src/scripts/get-note-menu.ts
index 5fce5c0c85..7f1c26d9d6 100644
--- a/packages/frontend/src/scripts/get-note-menu.ts
+++ b/packages/frontend/src/scripts/get-note-menu.ts
@@ -405,20 +405,16 @@ export function getNoteMenu(props: {
});
}
- getCopyNoteLinkMenu(appearNote, i18n.ts.copyLink);
-
- menuItems.push({
+ menuItems.push(getCopyNoteLinkMenu(appearNote, i18n.ts.copyLink), {
+ icon: 'ti ti-copy',
+ text: i18n.ts.copyContent,
+ action: copyContent,
+ }, {
icon: 'ti ti-qrcode',
text: i18n.ts.getQRCode,
action: () => {
os.displayQRCode(`${url}/notes/${appearNote.id}`);
},
- });
-
- menuItems.push({
- icon: 'ti ti-copy',
- text: i18n.ts.copyContent,
- action: copyContent,
}, {
icon: 'ti ti-external-link',
text: i18n.ts.openInNewTab,
@@ -625,27 +621,80 @@ export function getNoteMenu(props: {
});
}
} else {
- menuItems.push({
- icon: 'ti ti-info-circle',
- text: i18n.ts.details,
- action: openDetail,
- }, {
+ menuItems.push(getCopyNoteLinkMenu(appearNote, i18n.ts.copyLink), {
icon: 'ti ti-copy',
text: i18n.ts.copyContent,
action: copyContent,
- }, getCopyNoteLinkMenu(appearNote, i18n.ts.copyLink));
+ }, {
+ icon: 'ti ti-qrcode',
+ text: i18n.ts.getQRCode,
+ action: () => {
+ os.displayQRCode(`${url}/notes/${appearNote.id}`);
+ },
+ }, {
+ icon: 'ti ti-external-link',
+ text: i18n.ts.openInNewTab,
+ action: openInNewTab,
+ });
- if (appearNote.url ?? appearNote.uri) {
- menuItems.push({
- icon: 'ti ti-external-link',
- text: i18n.ts.showOnRemote,
- action: () => {
- window.open(appearNote.url ?? appearNote.uri, '_blank', 'noopener');
- },
- });
- } else {
- menuItems.push(getNoteEmbedCodeMenu(appearNote, i18n.ts.genEmbedCode));
- }
+ menuItems.push({
+ type: 'parent',
+ icon: 'ti ti-note',
+ text: i18n.ts.note,
+ children: async () => {
+ const noteChildMenu = [] as MenuItem[];
+
+ noteChildMenu.push({
+ icon: 'ti ti-info-circle',
+ text: i18n.ts.details,
+ action: openDetail,
+ }, {
+ icon: 'ti ti-repeat',
+ text: i18n.ts.renotesList,
+ action: showRenotes,
+ }, {
+ icon: 'ti ti-icons',
+ text: i18n.ts.reactionsList,
+ action: showReactions,
+ });
+
+ if (appearNote.url ?? appearNote.uri) {
+ noteChildMenu.push({
+ icon: 'ti ti-external-link',
+ text: i18n.ts.showOnRemote,
+ action: () => {
+ window.open(appearNote.url ?? appearNote.uri, '_blank', 'noopener');
+ },
+ });
+ } else {
+ noteChildMenu.push(getNoteEmbedCodeMenu(appearNote, i18n.ts.genEmbedCode));
+ }
+
+ noteChildMenu.push({ type: 'divider' });
+
+ noteChildMenu.push({
+ icon: 'ti ti-source-code',
+ text: i18n.ts.viewTextSource,
+ action: showViewTextSource,
+ });
+
+ if (props.noNyaize.value) {
+ noteChildMenu.push({
+ icon: 'ti ti-paw-filled',
+ text: i18n.ts.revertNoNyaization,
+ action: revertNoNyaizeText,
+ });
+ } else {
+ noteChildMenu.push({
+ icon: 'ti ti-paw-off',
+ text: i18n.ts.noNyaization,
+ action: noNyaizeText,
+ });
+ }
+
+ return noteChildMenu;
+ },
+ });
}
if (noteActions.length > 0) {
diff --git a/packages/frontend/src/scripts/get-user-menu.ts b/packages/frontend/src/scripts/get-user-menu.ts
index 2925397b0b..044f3d92d7 100644
--- a/packages/frontend/src/scripts/get-user-menu.ts
+++ b/packages/frontend/src/scripts/get-user-menu.ts
@@ -51,9 +51,11 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
const meta = ref
(null);
const instance = ref(null);
- const isInstanceBlocked = ref(false);
- const isInstanceSilenced = ref(false);
- const isInstanceMediaSilenced = ref(false);
+ const isAdminInstanceBlocked = ref(false);
+ const isAdminInstanceSilenced = ref(false);
+ const isAdminInstanceMediaSilenced = ref(false);
+
+ const isInstanceMuted = ref(false);
async function fetch(): Promise {
if (iAmAdmin) {
@@ -62,25 +64,27 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
instance.value = await misskeyApi('federation/show-instance', {
host: user.host ?? host,
});
- isInstanceBlocked.value = instance.value?.isBlocked ?? false;
- isInstanceSilenced.value = instance.value?.isSilenced ?? false;
- isInstanceMediaSilenced.value = instance.value?.isMediaSilenced ?? false;
+ isAdminInstanceBlocked.value = instance.value?.isBlocked ?? false;
+ isAdminInstanceSilenced.value = instance.value?.isSilenced ?? false;
+ isAdminInstanceMediaSilenced.value = instance.value?.isMediaSilenced ?? false;
+
+ isInstanceMuted.value = $i?.mutedInstances?.some((mutedInstance: string) => mutedInstance === instance.value?.host) ?? false;
}
fetch();
- async function toggleInstanceBlock(): Promise {
+ async function toggleAdminInstanceBlock(): Promise {
if (!iAmAdmin) return;
if (!meta.value) throw new Error('No meta?');
if (!instance.value) throw new Error('No instance?');
// eslint-disable-next-line no-shadow
const { host } = instance.value;
await misskeyApi('admin/update-meta', {
- blockedHosts: isInstanceBlocked.value ? meta.value.blockedHosts.concat([host]) : meta.value.blockedHosts.filter(x => x !== host),
+ blockedHosts: isAdminInstanceBlocked.value ? meta.value.blockedHosts.concat([host]) : meta.value.blockedHosts.filter(x => x !== host),
});
}
- async function toggleInstanceSilenced(): Promise {
+ async function toggleAdminInstanceSilenced(): Promise {
if (!iAmAdmin) return;
if (!meta.value) throw new Error('No meta?');
if (!instance.value) throw new Error('No instance?');
@@ -88,11 +92,11 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
const { host } = instance.value;
const silencedHosts = meta.value.silencedHosts ?? [];
await misskeyApi('admin/update-meta', {
- silencedHosts: isInstanceSilenced.value ? silencedHosts.concat([host]) : silencedHosts.filter(x => x !== host),
+ silencedHosts: isAdminInstanceSilenced.value ? silencedHosts.concat([host]) : silencedHosts.filter(x => x !== host),
});
}
- async function toggleInstanceMediaSilenced(): Promise {
+ async function toggleAdminInstanceMediaSilenced(): Promise {
if (!iAmAdmin) return;
if (!meta.value) throw new Error('No meta?');
if (!instance.value) throw new Error('No instance?');
@@ -100,7 +104,19 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
const { host } = instance.value;
const mediaSilencedHosts = meta.value.mediaSilencedHosts ?? [];
await misskeyApi('admin/update-meta', {
- mediaSilencedHosts: isInstanceMediaSilenced.value ? mediaSilencedHosts.concat([host]) : mediaSilencedHosts.filter(x => x !== host),
+ mediaSilencedHosts: isAdminInstanceMediaSilenced.value ? mediaSilencedHosts.concat([host]) : mediaSilencedHosts.filter(x => x !== host),
+ });
+ }
+
+ async function toggleInstanceMute(): Promise {
+ if (!instance.value) throw new Error('No instance?');
+ // eslint-disable-next-line no-shadow
+ const { host } = instance.value;
+ const mutedInstances = $i?.mutedInstances ?? [];
+ await misskeyApi('i/update', {
+ mutedInstances: isInstanceMuted.value
+ ? [...new Set(mutedInstances.concat([host]))]
+ : mutedInstances.filter(x => x !== host),
});
}
@@ -227,16 +243,20 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
});
}
- watch(isInstanceBlocked, () => {
- toggleInstanceBlock();
+ watch(isAdminInstanceBlocked, () => {
+ toggleAdminInstanceBlock();
});
- watch(isInstanceSilenced, () => {
- toggleInstanceSilenced();
+ watch(isAdminInstanceSilenced, () => {
+ toggleAdminInstanceSilenced();
});
- watch(isInstanceMediaSilenced, () => {
- toggleInstanceMediaSilenced();
+ watch(isAdminInstanceMediaSilenced, () => {
+ toggleAdminInstanceMediaSilenced();
+ });
+
+ watch(isInstanceMuted, () => {
+ toggleInstanceMute();
});
const menuItems: MenuItem[] = [];
@@ -500,25 +520,59 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
menuItems.push({
type: 'parent',
icon: 'ti ti-server-cog',
- text: i18n.ts.instances,
+ text: `${i18n.ts.instances} (${i18n.ts.administrator})`,
children: async () => {
const federationChildMenu = [] as MenuItem[];
federationChildMenu.push({
+ icon: 'ti ti-server',
+ text: i18n.ts.instanceInfo,
+ action: () => {
+ if (user.host == null) return;
+ router.push(`/instance-info/${user.host}`);
+ },
+ }, {
type: 'switch',
text: i18n.ts.blockThisInstance,
- ref: isInstanceBlocked,
- action: toggleInstanceBlock,
+ ref: isAdminInstanceBlocked,
+ action: toggleAdminInstanceBlock,
}, {
type: 'switch',
text: i18n.ts.silenceThisInstance,
- ref: isInstanceSilenced,
- action: toggleInstanceSilenced,
+ ref: isAdminInstanceSilenced,
+ action: toggleAdminInstanceSilenced,
}, {
type: 'switch',
text: i18n.ts.mediaSilenceThisInstance,
- ref: isInstanceMediaSilenced,
- action: toggleInstanceMediaSilenced,
+ ref: isAdminInstanceMediaSilenced,
+ action: toggleAdminInstanceMediaSilenced,
+ });
+
+ return federationChildMenu;
+ },
+ });
+ }
+
+ if (user.host !== null) {
+ menuItems.push({
+ type: 'parent',
+ icon: 'ti ti-server-cog',
+ text: i18n.ts.instances,
+ children: async () => {
+ const federationChildMenu = [] as MenuItem[];
+
+ federationChildMenu.push({
+ icon: 'ti ti-server',
+ text: i18n.ts.instanceInfo,
+ action: () => {
+ if (user.host == null) return;
+ router.push(`/instance-info/${user.host}`);
+ },
+ }, {
+ type: 'switch',
+ text: i18n.ts.instanceMute,
+ ref: isInstanceMuted,
+ action: toggleInstanceMute,
});
return federationChildMenu;
diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts
index 6773f87389..0dcc318f87 100644
--- a/packages/frontend/src/store.ts
+++ b/packages/frontend/src/store.ts
@@ -560,6 +560,10 @@ export const defaultStore = markRaw(new Storage('base', {
where: 'device',
default: false,
},
+ welcomeBackToast: {
+ where: 'device',
+ default: true,
+ },
// - Settings/Appearance
collapseReplies: {
diff --git a/packages/frontend/src/ui/_common_/common.ts b/packages/frontend/src/ui/_common_/common.ts
index 2945d8ff7b..7a4910662f 100644
--- a/packages/frontend/src/ui/_common_/common.ts
+++ b/packages/frontend/src/ui/_common_/common.ts
@@ -153,9 +153,9 @@ export function openInstanceMenu(ev: MouseEvent) {
target: '_blank',
}, {
type: 'link',
- text: i18n.ts._cfm.cheatSheet,
+ text: i18n.ts._mfc.cheatSheet,
icon: 'ti ti-help-circle',
- to: '/cfm-cheat-sheet',
+ to: '/mfc-cheat-sheet',
});
return documentChildMenu;
diff --git a/packages/frontend/src/ui/_common_/upload.vue b/packages/frontend/src/ui/_common_/upload.vue
index 6db7f9cae7..4a7c0cffa0 100644
--- a/packages/frontend/src/ui/_common_/upload.vue
+++ b/packages/frontend/src/ui/_common_/upload.vue
@@ -9,7 +9,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
{{ ctx.name }}
+
{{ ctx.name }}
{{ i18n.ts.waiting }}
{{ String(Math.floor(ctx.progressValue / 1024)).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,') }}KB / {{ String(Math.floor(ctx.progressMax / 1024)).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,') }}KB
diff --git a/packages/frontend/src/ui/friendly/navbar.vue b/packages/frontend/src/ui/friendly/navbar.vue
index 599b498d1a..9458f248e1 100644
--- a/packages/frontend/src/ui/friendly/navbar.vue
+++ b/packages/frontend/src/ui/friendly/navbar.vue
@@ -466,7 +466,7 @@ function openProfile() {
position: sticky;
top: 0;
z-index: 1;
- padding: 20px 0;
+ padding: 20px 0 10px;
background: var(--nav-bg-transparent);
-webkit-backdrop-filter: var(--blur, blur(8px));
backdrop-filter: var(--blur, blur(8px));
@@ -489,8 +489,9 @@ function openProfile() {
.instanceIcon {
display: inline-block;
- width: 30px;
+ width: 35px;
aspect-ratio: 1;
+ border-radius: 18px;
}
.bottom {
diff --git a/packages/sw/src/sw.ts b/packages/sw/src/sw.ts
index e15b162591..eb133a8342 100644
--- a/packages/sw/src/sw.ts
+++ b/packages/sw/src/sw.ts
@@ -36,7 +36,7 @@ async function offlineContentHTML() {
reload: i18n.ts?.reload ?? 'Reload',
};
- return `
${messages.title}${messages.header}
v${_VERSION_}_${_BASEDMISSKEYVERSION_}
`;
+ return `
${messages.title}${messages.header}
v${_VERSION_}_${_BASEDMISSKEYVERSION_}
`;
}
globalThis.addEventListener('fetch', ev => {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b5b4da8530..c7d543483b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -215,9 +215,6 @@ importers:
cbor:
specifier: 9.0.2
version: 9.0.2
- cfm-js:
- specifier: 0.24.0-cherrypick.8
- version: 0.24.0-cherrypick.8
chalk:
specifier: 5.3.0
version: 5.3.0
@@ -311,6 +308,9 @@ importers:
meilisearch:
specifier: 0.42.0
version: 0.42.0(encoding@0.1.13)
+ mfc-js:
+ specifier: 0.24.0-cherrypick.9
+ version: 0.24.0-cherrypick.9
microformats-parser:
specifier: 2.0.2
version: 2.0.2
@@ -863,9 +863,6 @@ importers:
canvas-confetti:
specifier: 1.9.3
version: 1.9.3
- cfm-js:
- specifier: 0.24.0-cherrypick.8
- version: 0.24.0-cherrypick.8
chart.js:
specifier: 4.4.4
version: 4.4.4
@@ -920,6 +917,9 @@ importers:
matter-js:
specifier: 0.19.0
version: 0.19.0
+ mfc-js:
+ specifier: 0.24.0-cherrypick.9
+ version: 0.24.0-cherrypick.9
misskey-bubble-game:
specifier: workspace:*
version: link:../misskey-bubble-game
@@ -957,8 +957,8 @@ importers:
specifier: 2.0.0
version: 2.0.0
temml:
- specifier: 0.10.20
- version: 0.10.20
+ specifier: 0.10.29
+ version: 0.10.29
textarea-caret:
specifier: 3.1.0
version: 3.1.0
@@ -1230,9 +1230,6 @@ importers:
buraha:
specifier: 0.0.1
version: 0.0.1
- cfm-js:
- specifier: 0.24.0-cherrypick.8
- version: 0.24.0-cherrypick.8
cherrypick-js:
specifier: workspace:*
version: link:../cherrypick-js
@@ -1245,6 +1242,9 @@ importers:
json5:
specifier: 2.2.3
version: 2.2.3
+ mfc-js:
+ specifier: 0.24.0-cherrypick.9
+ version: 0.24.0-cherrypick.9
punycode:
specifier: 2.3.1
version: 2.3.1
@@ -1257,6 +1257,9 @@ importers:
shiki:
specifier: 1.12.0
version: 1.12.0
+ temml:
+ specifier: 0.10.29
+ version: 0.10.29
tinycolor2:
specifier: 1.6.0
version: 1.6.0
@@ -5920,9 +5923,6 @@ packages:
ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
- cfm-js@0.24.0-cherrypick.8:
- resolution: {integrity: sha512-QIWgqWW2a1FSrFaZNv7ueWKXXNvjrSIYKUhbIKTkaw3iN8rpjKNXUuSAKKdrn0jPQkb4y+YL7oMolcUjTh/G/A==}
-
chai@4.3.10:
resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==}
engines: {node: '>=4'}
@@ -8805,6 +8805,9 @@ packages:
resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
engines: {node: '>= 0.6'}
+ mfc-js@0.24.0-cherrypick.9:
+ resolution: {integrity: sha512-U2WH3z25CGqJljgumkjhZxgocAIET/x/oVCmFtkatyU3iHdTVO35iXx7Dey/1alZ0b5EPNno5rGtRQhqz5vISA==}
+
microformats-parser@2.0.2:
resolution: {integrity: sha512-tUf9DmN4Jq/tGyp1YH2V6D/Cud+9Uc0WhjjUFirqVeHTRkkfLDacv6BQFT7h7HFsD0Z8wja5eKkRgzZU8bv0Fw==}
engines: {node: '>=18'}
@@ -11144,8 +11147,8 @@ packages:
telejson@7.2.0:
resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==}
- temml@0.10.20:
- resolution: {integrity: sha512-UqT8IbGQnb/IWEqEP6Yh2TCUeS9oKwgP3VO7E/qfKN1jQ2rVr5KCmpFor+hkeRIxIyynvPlkJwGRGRYfO8qhoA==}
+ temml@0.10.29:
+ resolution: {integrity: sha512-JOEYGXYrkXofjzqIU7TcyJXz3Jt1xyIZCCc3OIzkcYdMabdFos7XfedWshdaaSCAQKrNXzf0qejIRZ6Q+x4Hmg==}
engines: {node: '>=18.13.0'}
terser@5.33.0:
@@ -11823,6 +11826,9 @@ packages:
vue-component-type-helpers@2.1.6:
resolution: {integrity: sha512-ng11B8B/ZADUMMOsRbqv0arc442q7lifSubD0v8oDXIFoMg/mXwAPUunrroIDkY+mcD0dHKccdaznSVp8EoX3w==}
+ vue-component-type-helpers@2.1.8:
+ resolution: {integrity: sha512-ii36gDzrYAfOQIkOlo44yceDdT5269gKmNGxf07Qx6seH2U50+tQ2ol02XLhYPmxrh6YabAsOdte8WDrpaO6Tw==}
+
vue-demi@0.14.7:
resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==}
engines: {node: '>=12'}
@@ -15626,7 +15632,7 @@ snapshots:
ts-dedent: 2.2.0
type-fest: 2.19.0
vue: 3.5.10(typescript@5.6.2)
- vue-component-type-helpers: 2.1.6
+ vue-component-type-helpers: 2.1.8
'@swc/cli@0.3.12(@swc/core@1.6.6)(chokidar@3.5.3)':
dependencies:
@@ -17568,10 +17574,6 @@ snapshots:
ccount@2.0.1: {}
- cfm-js@0.24.0-cherrypick.8:
- dependencies:
- '@twemoji/parser': 15.0.0
-
chai@4.3.10:
dependencies:
assertion-error: 1.1.0
@@ -21386,6 +21388,10 @@ snapshots:
methods@1.1.2: {}
+ mfc-js@0.24.0-cherrypick.9:
+ dependencies:
+ '@twemoji/parser': 15.0.0
+
microformats-parser@2.0.2:
dependencies:
parse5: 7.1.2
@@ -24029,7 +24035,7 @@ snapshots:
dependencies:
memoizerific: 1.11.3
- temml@0.10.20: {}
+ temml@0.10.29: {}
terser@5.33.0:
dependencies:
@@ -24652,6 +24658,8 @@ snapshots:
vue-component-type-helpers@2.1.6: {}
+ vue-component-type-helpers@2.1.8: {}
+
vue-demi@0.14.7(vue@3.5.10(typescript@5.6.2)):
dependencies:
vue: 3.5.10(typescript@5.6.2)