Merge branch 'settings-search' into settings-search-index
This commit is contained in:
commit
692b0761d6
|
@ -1,4 +1,4 @@
|
||||||
## Unreleased
|
## 2025.2.1
|
||||||
|
|
||||||
### General
|
### General
|
||||||
- Feat: アクセストークン発行時に通知するように
|
- Feat: アクセストークン発行時に通知するように
|
||||||
|
@ -12,17 +12,19 @@
|
||||||
- Enhance: 開発者モードでメニューからファイルIDをコピー出来るように `#15441'
|
- Enhance: 開発者モードでメニューからファイルIDをコピー出来るように `#15441'
|
||||||
- Enhance: ノートに埋め込まれたメディアのコンテキストメニューから管理者用のファイル管理画面を開けるように ( #15440 )
|
- Enhance: ノートに埋め込まれたメディアのコンテキストメニューから管理者用のファイル管理画面を開けるように ( #15440 )
|
||||||
- Enhance: リアクションする際に確認ダイアログを表示できるように
|
- Enhance: リアクションする際に確認ダイアログを表示できるように
|
||||||
|
- Enhance: CWの注釈で入力済みの文字数を表示
|
||||||
- Fix: コンディショナルロールを手動で割り当てできる導線を削除 `#13529`
|
- Fix: コンディショナルロールを手動で割り当てできる導線を削除 `#13529`
|
||||||
- Fix: 埋め込みプレイヤーから外部ページに移動できない問題を修正
|
- Fix: 埋め込みプレイヤーから外部ページに移動できない問題を修正
|
||||||
- Fix: Play の再読込時に UI が以前の状態を引き継いでしまう問題を修正 `#14378`
|
- Fix: Play の再読込時に UI が以前の状態を引き継いでしまう問題を修正 `#14378`
|
||||||
- Fix: カスタム絵文字管理画面(beta)にてisSensitive/localOnlyの絞り込みが上手くいかない問題の修正 ( #15445 )
|
- Fix: カスタム絵文字管理画面(beta)にてisSensitive/localOnlyの絞り込みが上手くいかない問題の修正 ( #15445 )
|
||||||
|
- Fix: CWの注釈が100文字を超えている場合、ノート投稿ボタンを非アクティブに
|
||||||
|
|
||||||
### Server
|
### Server
|
||||||
- Fix: `following/invalidate`でフォロワーを解除しようとしているユーザーの情報を返すように
|
- Fix: `following/invalidate`でフォロワーを解除しようとしているユーザーの情報を返すように
|
||||||
- Fix: オブジェクトストレージの設定でPrefixを設定していなかった場合nullまたは空文字になる問題を修正
|
- Fix: オブジェクトストレージの設定でPrefixを設定していなかった場合nullまたは空文字になる問題を修正
|
||||||
- Fix: pgroongaでの検索時にはじめのキーワードのみが検索に使用される問題を修正
|
- Fix: pgroongaでの検索時にはじめのキーワードのみが検索に使用される問題を修正
|
||||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/886)
|
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/886)
|
||||||
|
- Fix: メールアドレスの形式が正しくなければ以降の処理を行わないように
|
||||||
|
|
||||||
## 2025.2.0
|
## 2025.2.0
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "misskey",
|
"name": "misskey",
|
||||||
"version": "2025.2.0",
|
"version": "2025.2.1-alpha.0",
|
||||||
"codename": "nasubi",
|
"codename": "nasubi",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|
|
@ -103,7 +103,7 @@
|
||||||
"bcryptjs": "2.4.3",
|
"bcryptjs": "2.4.3",
|
||||||
"blurhash": "2.0.5",
|
"blurhash": "2.0.5",
|
||||||
"body-parser": "1.20.3",
|
"body-parser": "1.20.3",
|
||||||
"bullmq": "5.41.0",
|
"bullmq": "5.41.1",
|
||||||
"cacheable-lookup": "7.0.0",
|
"cacheable-lookup": "7.0.0",
|
||||||
"cbor": "9.0.2",
|
"cbor": "9.0.2",
|
||||||
"chalk": "5.4.1",
|
"chalk": "5.4.1",
|
||||||
|
|
|
@ -164,6 +164,13 @@ export class EmailService {
|
||||||
available: boolean;
|
available: boolean;
|
||||||
reason: null | 'used' | 'format' | 'disposable' | 'mx' | 'smtp' | 'banned' | 'network' | 'blacklist';
|
reason: null | 'used' | 'format' | 'disposable' | 'mx' | 'smtp' | 'banned' | 'network' | 'blacklist';
|
||||||
}> {
|
}> {
|
||||||
|
if (!this.utilityService.validateEmailFormat(emailAddress)) {
|
||||||
|
return {
|
||||||
|
available: false,
|
||||||
|
reason: 'format',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
const exist = await this.userProfilesRepository.countBy({
|
const exist = await this.userProfilesRepository.countBy({
|
||||||
emailVerified: true,
|
emailVerified: true,
|
||||||
email: emailAddress,
|
email: emailAddress,
|
||||||
|
|
|
@ -38,6 +38,14 @@ export class UtilityService {
|
||||||
return this.punyHost(uri) === this.toPuny(this.config.host);
|
return this.punyHost(uri) === this.toPuny(this.config.host);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// メールアドレスのバリデーションを行う
|
||||||
|
// https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address
|
||||||
|
@bindThis
|
||||||
|
public validateEmailFormat(email: string): boolean {
|
||||||
|
const regexp = /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
|
||||||
|
return regexp.test(email);
|
||||||
|
}
|
||||||
|
|
||||||
@bindThis
|
@bindThis
|
||||||
public isBlockedHost(blockedHosts: string[], host: string | null): boolean {
|
public isBlockedHost(blockedHosts: string[], host: string | null): boolean {
|
||||||
if (host == null) return false;
|
if (host == null) return false;
|
||||||
|
|
|
@ -107,12 +107,12 @@ export class InboxProcessorService implements OnApplicationShutdown {
|
||||||
|
|
||||||
// それでもわからなければ終了
|
// それでもわからなければ終了
|
||||||
if (authUser == null) {
|
if (authUser == null) {
|
||||||
throw new Bull.UnrecoverableError('skip: failed to resolve user');
|
throw new Bull.UnrecoverableError(`skip: failed to resolve user ${getApId(activity.actor)}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
// publicKey がなくても終了
|
// publicKey がなくても終了
|
||||||
if (authUser.key == null) {
|
if (authUser.key == null) {
|
||||||
throw new Bull.UnrecoverableError('skip: failed to resolve user publicKey');
|
throw new Bull.UnrecoverableError(`skip: failed to resolve user publicKey ${getApId(activity.actor)}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
// HTTP-Signatureの検証
|
// HTTP-Signatureの検証
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
"punycode.js": "2.3.1",
|
"punycode.js": "2.3.1",
|
||||||
"rollup": "4.34.7",
|
"rollup": "4.34.7",
|
||||||
"sass": "1.85.0",
|
"sass": "1.85.0",
|
||||||
"shiki": "2.3.2",
|
"shiki": "2.4.1",
|
||||||
"tinycolor2": "1.6.0",
|
"tinycolor2": "1.6.0",
|
||||||
"tsc-alias": "1.8.10",
|
"tsc-alias": "1.8.10",
|
||||||
"tsconfig-paths": "4.2.0",
|
"tsconfig-paths": "4.2.0",
|
||||||
|
@ -63,8 +63,8 @@
|
||||||
"prettier": "3.5.1",
|
"prettier": "3.5.1",
|
||||||
"start-server-and-test": "2.0.10",
|
"start-server-and-test": "2.0.10",
|
||||||
"vite-plugin-turbosnap": "1.0.3",
|
"vite-plugin-turbosnap": "1.0.3",
|
||||||
"vue-component-type-helpers": "2.2.0",
|
"vue-component-type-helpers": "2.2.2",
|
||||||
"vue-eslint-parser": "9.4.3",
|
"vue-eslint-parser": "9.4.3",
|
||||||
"vue-tsc": "2.2.0"
|
"vue-tsc": "2.2.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,6 +103,7 @@ export default [
|
||||||
// TODO: Error while loading rule '@typescript-eslint/naming-convention': Cannot use 'in' operator to search for 'type' in undefined のため一時的に無効化
|
// TODO: Error while loading rule '@typescript-eslint/naming-convention': Cannot use 'in' operator to search for 'type' in undefined のため一時的に無効化
|
||||||
// See https://github.com/misskey-dev/misskey/pull/15311
|
// See https://github.com/misskey-dev/misskey/pull/15311
|
||||||
'js/i18n.ts',
|
'js/i18n.ts',
|
||||||
|
'js-built/',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -134,7 +134,6 @@ export function scrollToBottom(
|
||||||
|
|
||||||
export function isTopVisible(el: HTMLElement, tolerance = 1): boolean {
|
export function isTopVisible(el: HTMLElement, tolerance = 1): boolean {
|
||||||
const scrollTop = getScrollPosition(el);
|
const scrollTop = getScrollPosition(el);
|
||||||
if (_DEV_) console.log(scrollTop, tolerance, scrollTop <= tolerance);
|
|
||||||
return scrollTop <= tolerance;
|
return scrollTop <= tolerance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
"rollup": "4.34.7",
|
"rollup": "4.34.7",
|
||||||
"sanitize-html": "2.14.0",
|
"sanitize-html": "2.14.0",
|
||||||
"sass": "1.85.0",
|
"sass": "1.85.0",
|
||||||
"shiki": "2.3.2",
|
"shiki": "2.4.1",
|
||||||
"strict-event-emitter-types": "2.0.0",
|
"strict-event-emitter-types": "2.0.0",
|
||||||
"textarea-caret": "3.1.0",
|
"textarea-caret": "3.1.0",
|
||||||
"three": "0.173.0",
|
"three": "0.173.0",
|
||||||
|
@ -133,8 +133,8 @@
|
||||||
"vite-plugin-turbosnap": "1.0.3",
|
"vite-plugin-turbosnap": "1.0.3",
|
||||||
"vitest": "3.0.5",
|
"vitest": "3.0.5",
|
||||||
"vitest-fetch-mock": "0.4.3",
|
"vitest-fetch-mock": "0.4.3",
|
||||||
"vue-component-type-helpers": "2.2.0",
|
"vue-component-type-helpers": "2.2.2",
|
||||||
"vue-eslint-parser": "9.4.3",
|
"vue-eslint-parser": "9.4.3",
|
||||||
"vue-tsc": "2.2.0"
|
"vue-tsc": "2.2.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,7 +65,10 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<MkInfo v-if="hasNotSpecifiedMentions" warn :class="$style.hasNotSpecifiedMentions">{{ i18n.ts.notSpecifiedMentionWarning }} - <button class="_textButton" @click="addMissingMention()">{{ i18n.ts.add }}</button></MkInfo>
|
<MkInfo v-if="hasNotSpecifiedMentions" warn :class="$style.hasNotSpecifiedMentions">{{ i18n.ts.notSpecifiedMentionWarning }} - <button class="_textButton" @click="addMissingMention()">{{ i18n.ts.add }}</button></MkInfo>
|
||||||
<input v-show="useCw" ref="cwInputEl" v-model="cw" :class="$style.cw" :placeholder="i18n.ts.annotation" @keydown="onKeydown" @keyup="onKeyup" @compositionend="onCompositionEnd">
|
<div v-show="useCw" :class="$style.cwOuter">
|
||||||
|
<input ref="cwInputEl" v-model="cw" :class="$style.cw" :placeholder="i18n.ts.annotation" @keydown="onKeydown" @keyup="onKeyup" @compositionend="onCompositionEnd">
|
||||||
|
<div v-if="maxCwTextLength - cwTextLength < 20" :class="['_acrylic', $style.cwTextCount, { [$style.cwTextOver]: cwTextLength > maxCwTextLength }]">{{ maxCwTextLength - cwTextLength }}</div>
|
||||||
|
</div>
|
||||||
<div :class="[$style.textOuter, { [$style.withCw]: useCw }]">
|
<div :class="[$style.textOuter, { [$style.withCw]: useCw }]">
|
||||||
<div v-if="channel" :class="$style.colorBar" :style="{ background: channel.color }"></div>
|
<div v-if="channel" :class="$style.colorBar" :style="{ background: channel.color }"></div>
|
||||||
<textarea ref="textareaEl" v-model="text" :class="[$style.text]" :disabled="posting || posted" :readonly="textAreaReadOnly" :placeholder="placeholder" data-cy-post-form-text @keydown="onKeydown" @keyup="onKeyup" @paste="onPaste" @compositionupdate="onCompositionUpdate" @compositionend="onCompositionEnd"/>
|
<textarea ref="textareaEl" v-model="text" :class="[$style.text]" :disabled="posting || posted" :readonly="textAreaReadOnly" :placeholder="placeholder" data-cy-post-form-text @keydown="onKeydown" @keyup="onKeyup" @paste="onPaste" @compositionupdate="onCompositionUpdate" @compositionend="onCompositionEnd"/>
|
||||||
|
@ -244,6 +247,12 @@ const maxTextLength = computed((): number => {
|
||||||
return instance ? instance.maxNoteTextLength : 1000;
|
return instance ? instance.maxNoteTextLength : 1000;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const cwTextLength = computed((): number => {
|
||||||
|
return cw.value?.length ?? 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
const maxCwTextLength = 100;
|
||||||
|
|
||||||
const canPost = computed((): boolean => {
|
const canPost = computed((): boolean => {
|
||||||
return !props.mock && !posting.value && !posted.value &&
|
return !props.mock && !posting.value && !posted.value &&
|
||||||
(
|
(
|
||||||
|
@ -254,6 +263,7 @@ const canPost = computed((): boolean => {
|
||||||
quoteId.value != null
|
quoteId.value != null
|
||||||
) &&
|
) &&
|
||||||
(textLength.value <= maxTextLength.value) &&
|
(textLength.value <= maxTextLength.value) &&
|
||||||
|
(cwTextLength.value <= maxCwTextLength) &&
|
||||||
(files.value.length <= 16) &&
|
(files.value.length <= 16) &&
|
||||||
(!poll.value || poll.value.choices.length >= 2);
|
(!poll.value || poll.value.choices.length >= 2);
|
||||||
});
|
});
|
||||||
|
@ -1273,12 +1283,34 @@ html[data-color-scheme=light] .preview {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cwOuter {
|
||||||
|
width: 100%;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
.cw {
|
.cw {
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
padding-bottom: 8px;
|
padding-bottom: 8px;
|
||||||
border-bottom: solid 0.5px var(--MI_THEME-divider);
|
border-bottom: solid 0.5px var(--MI_THEME-divider);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cwTextCount {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 2px;
|
||||||
|
padding: 2px 6px;
|
||||||
|
font-size: .9em;
|
||||||
|
color: var(--MI_THEME-warn);
|
||||||
|
border-radius: 6px;
|
||||||
|
max-width: 100%;
|
||||||
|
min-width: 1.6em;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
&.cwTextOver {
|
||||||
|
color: #ff2a2a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.hashtags {
|
.hashtags {
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
padding-top: 8px;
|
padding-top: 8px;
|
||||||
|
|
|
@ -15,9 +15,9 @@ export type MkABehavior = 'window' | 'browser' | null;
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed, inject, shallowRef } from 'vue';
|
import { computed, inject, shallowRef } from 'vue';
|
||||||
|
import { url } from '@@/js/config.js';
|
||||||
import * as os from '@/os.js';
|
import * as os from '@/os.js';
|
||||||
import { copyToClipboard } from '@/scripts/copy-to-clipboard.js';
|
import { copyToClipboard } from '@/scripts/copy-to-clipboard.js';
|
||||||
import { url } from '@@/js/config.js';
|
|
||||||
import { i18n } from '@/i18n.js';
|
import { i18n } from '@/i18n.js';
|
||||||
import { useRouter } from '@/router/supplier.js';
|
import { useRouter } from '@/router/supplier.js';
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
// NIRAX --- A lightweight router
|
// NIRAX --- A lightweight router
|
||||||
|
|
||||||
import { onMounted, shallowRef } from 'vue';
|
import { onMounted, shallowRef } from 'vue';
|
||||||
import type { Component, ShallowRef } from 'vue';
|
|
||||||
import { EventEmitter } from 'eventemitter3';
|
import { EventEmitter } from 'eventemitter3';
|
||||||
|
import type { Component, ShallowRef } from 'vue';
|
||||||
|
|
||||||
function safeURIDecode(str: string): string {
|
function safeURIDecode(str: string): string {
|
||||||
try {
|
try {
|
||||||
|
@ -242,8 +242,6 @@ export class Router extends EventEmitter<RouterEvent> implements IRouter {
|
||||||
hash,
|
hash,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_DEV_) console.log('Routing: ', path, queryString);
|
|
||||||
|
|
||||||
function check(routes: RouteDef[], _parts: string[]): Resolved | null {
|
function check(routes: RouteDef[], _parts: string[]): Resolved | null {
|
||||||
forEachRouteLoop:
|
forEachRouteLoop:
|
||||||
for (const route of routes) {
|
for (const route of routes) {
|
||||||
|
|
|
@ -4,248 +4,376 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="_gaps_m">
|
<MkSearchSection :label="i18n.ts.general" :keywords="['general']" icon="ti ti-adjustments">
|
||||||
<MkSelect v-model="lang">
|
<div class="_gaps_m">
|
||||||
<template #label>{{ i18n.ts.uiLanguage }}</template>
|
<MkSearchMarker
|
||||||
<option v-for="x in langs" :key="x[0]" :value="x[0]">{{ x[1] }}</option>
|
:label="i18n.ts.uiLanguage"
|
||||||
<template #caption>
|
:keywords="['language']"
|
||||||
<I18n :src="i18n.ts.i18nInfo" tag="span">
|
>
|
||||||
<template #link>
|
<MkSelect v-model="lang">
|
||||||
<MkLink url="https://crowdin.com/project/misskey">Crowdin</MkLink>
|
<template #label>{{ i18n.ts.uiLanguage }}</template>
|
||||||
|
<option v-for="x in langs" :key="x[0]" :value="x[0]">{{ x[1] }}</option>
|
||||||
|
<template #caption>
|
||||||
|
<I18n :src="i18n.ts.i18nInfo" tag="span">
|
||||||
|
<template #link>
|
||||||
|
<MkLink url="https://crowdin.com/project/misskey">Crowdin</MkLink>
|
||||||
|
</template>
|
||||||
|
</I18n>
|
||||||
</template>
|
</template>
|
||||||
</I18n>
|
</MkSelect>
|
||||||
</template>
|
</MkSearchMarker>
|
||||||
</MkSelect>
|
|
||||||
|
|
||||||
<MkRadios v-model="overridedDeviceKind">
|
<MkSearchMarker
|
||||||
<template #label>{{ i18n.ts.overridedDeviceKind }}</template>
|
:label="i18n.ts.overridedDeviceKind"
|
||||||
<option :value="null">{{ i18n.ts.auto }}</option>
|
:keywords="['device', 'type', 'kind', 'smartphone', 'tablet', 'desktop']"
|
||||||
<option value="smartphone"><i class="ti ti-device-mobile"/> {{ i18n.ts.smartphone }}</option>
|
>
|
||||||
<option value="tablet"><i class="ti ti-device-tablet"/> {{ i18n.ts.tablet }}</option>
|
<MkRadios v-model="overridedDeviceKind">
|
||||||
<option value="desktop"><i class="ti ti-device-desktop"/> {{ i18n.ts.desktop }}</option>
|
<template #label>{{ i18n.ts.overridedDeviceKind }}</template>
|
||||||
</MkRadios>
|
<option :value="null">{{ i18n.ts.auto }}</option>
|
||||||
|
<option value="smartphone"><i class="ti ti-device-mobile"/> {{ i18n.ts.smartphone }}</option>
|
||||||
|
<option value="tablet"><i class="ti ti-device-tablet"/> {{ i18n.ts.tablet }}</option>
|
||||||
|
<option value="desktop"><i class="ti ti-device-desktop"/> {{ i18n.ts.desktop }}</option>
|
||||||
|
</MkRadios>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<div class="_gaps_s">
|
|
||||||
<MkSwitch v-model="showFixedPostForm">{{ i18n.ts.showFixedPostForm }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="showFixedPostFormInChannel">{{ i18n.ts.showFixedPostFormInChannel }}</MkSwitch>
|
|
||||||
<MkFolder>
|
|
||||||
<template #label>{{ i18n.ts.pinnedList }}</template>
|
|
||||||
<!-- 複数ピン止め管理できるようにしたいけどめんどいので一旦ひとつのみ -->
|
|
||||||
<MkButton v-if="defaultStore.reactiveState.pinnedUserLists.value.length === 0" @click="setPinnedList()">{{ i18n.ts.add }}</MkButton>
|
|
||||||
<MkButton v-else danger @click="removePinnedList()"><i class="ti ti-trash"></i> {{ i18n.ts.remove }}</MkButton>
|
|
||||||
</MkFolder>
|
|
||||||
</div>
|
|
||||||
</FormSection>
|
|
||||||
|
|
||||||
<FormSection>
|
|
||||||
<template #label>{{ i18n.ts.displayOfNote }}</template>
|
|
||||||
|
|
||||||
<div class="_gaps_m">
|
|
||||||
<div class="_gaps_s">
|
<div class="_gaps_s">
|
||||||
<MkSwitch v-model="collapseRenotes">
|
<MkSearchMarker
|
||||||
<template #label>{{ i18n.ts.collapseRenotes }}</template>
|
:label="i18n.ts.showFixedPostForm"
|
||||||
<template #caption>{{ i18n.ts.collapseRenotesDescription }}</template>
|
:keywords="['post', 'form', 'timeline']"
|
||||||
</MkSwitch>
|
>
|
||||||
<MkSwitch v-model="showNoteActionsOnlyHover">{{ i18n.ts.showNoteActionsOnlyHover }}</MkSwitch>
|
<MkSwitch v-model="showFixedPostForm">{{ i18n.ts.showFixedPostForm }}</MkSwitch>
|
||||||
<MkSwitch v-model="showClipButtonInNoteFooter">{{ i18n.ts.showClipButtonInNoteFooter }}</MkSwitch>
|
</MkSearchMarker>
|
||||||
<MkSwitch v-model="advancedMfm">{{ i18n.ts.enableAdvancedMfm }}</MkSwitch>
|
|
||||||
<MkSwitch v-if="advancedMfm" v-model="animatedMfm">{{ i18n.ts.enableAnimatedMfm }}</MkSwitch>
|
<MkSearchMarker
|
||||||
<MkSwitch v-if="advancedMfm" v-model="enableQuickAddMfmFunction">{{ i18n.ts.enableQuickAddMfmFunction }}</MkSwitch>
|
:label="i18n.ts.showFixedPostFormInChannel"
|
||||||
<MkSwitch v-model="showReactionsCount">{{ i18n.ts.showReactionsCount }}</MkSwitch>
|
:keywords="['post', 'form', 'timeline', 'channel']"
|
||||||
<MkSwitch v-model="showGapBetweenNotesInTimeline">{{ i18n.ts.showGapBetweenNotesInTimeline }}</MkSwitch>
|
>
|
||||||
<MkSwitch v-model="loadRawImages">{{ i18n.ts.loadRawImages }}</MkSwitch>
|
<MkSwitch v-model="showFixedPostFormInChannel">{{ i18n.ts.showFixedPostFormInChannel }}</MkSwitch>
|
||||||
<MkRadios v-model="reactionsDisplaySize">
|
</MkSearchMarker>
|
||||||
<template #label>{{ i18n.ts.reactionsDisplaySize }}</template>
|
|
||||||
<option value="small">{{ i18n.ts.small }}</option>
|
<MkSearchMarker
|
||||||
<option value="medium">{{ i18n.ts.medium }}</option>
|
:label="i18n.ts.pinnedList"
|
||||||
<option value="large">{{ i18n.ts.large }}</option>
|
:keywords="['pinned', 'list']"
|
||||||
</MkRadios>
|
>
|
||||||
<MkSwitch v-model="limitWidthOfReaction">{{ i18n.ts.limitWidthOfReaction }}</MkSwitch>
|
<MkFolder>
|
||||||
|
<template #label>{{ i18n.ts.pinnedList }}</template>
|
||||||
|
<!-- 複数ピン止め管理できるようにしたいけどめんどいので一旦ひとつのみ -->
|
||||||
|
<MkButton v-if="defaultStore.reactiveState.pinnedUserLists.value.length === 0" @click="setPinnedList()">{{ i18n.ts.add }}</MkButton>
|
||||||
|
<MkButton v-else danger @click="removePinnedList()"><i class="ti ti-trash"></i> {{ i18n.ts.remove }}</MkButton>
|
||||||
|
</MkFolder>
|
||||||
|
</MkSearchMarker>
|
||||||
</div>
|
</div>
|
||||||
|
</FormSection>
|
||||||
|
|
||||||
<MkSelect v-if="instance.federation !== 'none'" v-model="instanceTicker">
|
<MkSearchSection :label="i18n.ts.displayOfNote" :keywords="['note', 'display']">
|
||||||
<template #label>{{ i18n.ts.instanceTicker }}</template>
|
<FormSection>
|
||||||
<option value="none">{{ i18n.ts._instanceTicker.none }}</option>
|
<template #label>{{ i18n.ts.displayOfNote }}</template>
|
||||||
<option value="remote">{{ i18n.ts._instanceTicker.remote }}</option>
|
|
||||||
<option value="always">{{ i18n.ts._instanceTicker.always }}</option>
|
|
||||||
</MkSelect>
|
|
||||||
|
|
||||||
<MkSelect v-model="nsfw">
|
|
||||||
<template #label>{{ i18n.ts.displayOfSensitiveMedia }}</template>
|
|
||||||
<option value="respect">{{ i18n.ts._displayOfSensitiveMedia.respect }}</option>
|
|
||||||
<option value="ignore">{{ i18n.ts._displayOfSensitiveMedia.ignore }}</option>
|
|
||||||
<option value="force">{{ i18n.ts._displayOfSensitiveMedia.force }}</option>
|
|
||||||
</MkSelect>
|
|
||||||
|
|
||||||
<MkRadios v-model="mediaListWithOneImageAppearance">
|
|
||||||
<template #label>{{ i18n.ts.mediaListWithOneImageAppearance }}</template>
|
|
||||||
<option value="expand">{{ i18n.ts.default }}</option>
|
|
||||||
<option value="16_9">{{ i18n.tsx.limitTo({ x: '16:9' }) }}</option>
|
|
||||||
<option value="1_1">{{ i18n.tsx.limitTo({ x: '1:1' }) }}</option>
|
|
||||||
<option value="2_3">{{ i18n.tsx.limitTo({ x: '2:3' }) }}</option>
|
|
||||||
</MkRadios>
|
|
||||||
</div>
|
|
||||||
</FormSection>
|
|
||||||
|
|
||||||
<FormSection>
|
|
||||||
<template #label>{{ i18n.ts.notificationDisplay }}</template>
|
|
||||||
|
|
||||||
<div class="_gaps_m">
|
|
||||||
<MkSwitch v-model="useGroupedNotifications">{{ i18n.ts.useGroupedNotifications }}</MkSwitch>
|
|
||||||
|
|
||||||
<MkRadios v-model="notificationPosition">
|
|
||||||
<template #label>{{ i18n.ts.position }}</template>
|
|
||||||
<option value="leftTop"><i class="ti ti-align-box-left-top"></i> {{ i18n.ts.leftTop }}</option>
|
|
||||||
<option value="rightTop"><i class="ti ti-align-box-right-top"></i> {{ i18n.ts.rightTop }}</option>
|
|
||||||
<option value="leftBottom"><i class="ti ti-align-box-left-bottom"></i> {{ i18n.ts.leftBottom }}</option>
|
|
||||||
<option value="rightBottom"><i class="ti ti-align-box-right-bottom"></i> {{ i18n.ts.rightBottom }}</option>
|
|
||||||
</MkRadios>
|
|
||||||
|
|
||||||
<MkRadios v-model="notificationStackAxis">
|
|
||||||
<template #label>{{ i18n.ts.stackAxis }}</template>
|
|
||||||
<option value="vertical"><i class="ti ti-carousel-vertical"></i> {{ i18n.ts.vertical }}</option>
|
|
||||||
<option value="horizontal"><i class="ti ti-carousel-horizontal"></i> {{ i18n.ts.horizontal }}</option>
|
|
||||||
</MkRadios>
|
|
||||||
|
|
||||||
<MkButton @click="testNotification">{{ i18n.ts._notification.checkNotificationBehavior }}</MkButton>
|
|
||||||
</div>
|
|
||||||
</FormSection>
|
|
||||||
|
|
||||||
<FormSection>
|
|
||||||
<template #label>{{ i18n.ts.appearance }}</template>
|
|
||||||
|
|
||||||
<div class="_gaps_m">
|
|
||||||
<div class="_gaps_s">
|
|
||||||
<MkSwitch v-model="reduceAnimation">{{ i18n.ts.reduceUiAnimation }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="useBlurEffect">{{ i18n.ts.useBlurEffect }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="useBlurEffectForModal">{{ i18n.ts.useBlurEffectForModal }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="disableShowingAnimatedImages">{{ i18n.ts.disableShowingAnimatedImages }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="highlightSensitiveMedia">{{ i18n.ts.highlightSensitiveMedia }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="squareAvatars">{{ i18n.ts.squareAvatars }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="showAvatarDecorations">{{ i18n.ts.showAvatarDecorations }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="useSystemFont">{{ i18n.ts.useSystemFont }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="forceShowAds">{{ i18n.ts.forceShowAds }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="enableSeasonalScreenEffect">{{ i18n.ts.seasonalScreenEffect }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="useNativeUIForVideoAudioPlayer">{{ i18n.ts.useNativeUIForVideoAudioPlayer }}</MkSwitch>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<MkSelect v-model="menuStyle">
|
|
||||||
<template #label>{{ i18n.ts.menuStyle }}</template>
|
|
||||||
<option value="auto">{{ i18n.ts.auto }}</option>
|
|
||||||
<option value="popup">{{ i18n.ts.popup }}</option>
|
|
||||||
<option value="drawer">{{ i18n.ts.drawer }}</option>
|
|
||||||
</MkSelect>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<MkRadios v-model="emojiStyle">
|
|
||||||
<template #label>{{ i18n.ts.emojiStyle }}</template>
|
|
||||||
<option value="native">{{ i18n.ts.native }}</option>
|
|
||||||
<option value="fluentEmoji">Fluent Emoji</option>
|
|
||||||
<option value="twemoji">Twemoji</option>
|
|
||||||
</MkRadios>
|
|
||||||
<div style="margin: 8px 0 0 0; font-size: 1.5em;"><Mfm :key="emojiStyle" text="🍮🍦🍭🍩🍰🍫🍬🥞🍪"/></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<MkRadios v-model="fontSize">
|
|
||||||
<template #label>{{ i18n.ts.fontSize }}</template>
|
|
||||||
<option :value="null"><span style="font-size: 14px;">Aa</span></option>
|
|
||||||
<option value="1"><span style="font-size: 15px;">Aa</span></option>
|
|
||||||
<option value="2"><span style="font-size: 16px;">Aa</span></option>
|
|
||||||
<option value="3"><span style="font-size: 17px;">Aa</span></option>
|
|
||||||
</MkRadios>
|
|
||||||
</div>
|
|
||||||
</FormSection>
|
|
||||||
|
|
||||||
<FormSection>
|
|
||||||
<template #label>{{ i18n.ts.behavior }}</template>
|
|
||||||
|
|
||||||
<div class="_gaps_m">
|
|
||||||
<div class="_gaps_s">
|
|
||||||
<MkSwitch v-model="imageNewTab">{{ i18n.ts.openImageInNewTab }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="useReactionPickerForContextMenu">{{ i18n.ts.useReactionPickerForContextMenu }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="enableInfiniteScroll">{{ i18n.ts.enableInfiniteScroll }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="keepScreenOn">{{ i18n.ts.keepScreenOn }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="disableStreamingTimeline">{{ i18n.ts.disableStreamingTimeline }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="enableHorizontalSwipe">{{ i18n.ts.enableHorizontalSwipe }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="alwaysConfirmFollow">{{ i18n.ts.alwaysConfirmFollow }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="confirmWhenRevealingSensitiveMedia">{{ i18n.ts.confirmWhenRevealingSensitiveMedia }}</MkSwitch>
|
|
||||||
<MkSwitch v-model="confirmOnReact">{{ i18n.ts.confirmOnReact }}</MkSwitch>
|
|
||||||
</div>
|
|
||||||
<MkSelect v-model="serverDisconnectedBehavior">
|
|
||||||
<template #label>{{ i18n.ts.whenServerDisconnected }}</template>
|
|
||||||
<option value="reload">{{ i18n.ts._serverDisconnectedBehavior.reload }}</option>
|
|
||||||
<option value="dialog">{{ i18n.ts._serverDisconnectedBehavior.dialog }}</option>
|
|
||||||
<option value="quiet">{{ i18n.ts._serverDisconnectedBehavior.quiet }}</option>
|
|
||||||
</MkSelect>
|
|
||||||
<MkSelect v-model="contextMenu">
|
|
||||||
<template #label>{{ i18n.ts._contextMenu.title }}</template>
|
|
||||||
<option value="app">{{ i18n.ts._contextMenu.app }}</option>
|
|
||||||
<option value="appWithShift">{{ i18n.ts._contextMenu.appWithShift }}</option>
|
|
||||||
<option value="native">{{ i18n.ts._contextMenu.native }}</option>
|
|
||||||
</MkSelect>
|
|
||||||
<MkRange v-model="numberOfPageCache" :min="1" :max="10" :step="1" easing>
|
|
||||||
<template #label>{{ i18n.ts.numberOfPageCache }}</template>
|
|
||||||
<template #caption>{{ i18n.ts.numberOfPageCacheDescription }}</template>
|
|
||||||
</MkRange>
|
|
||||||
|
|
||||||
<MkFolder>
|
|
||||||
<template #label>{{ i18n.ts.dataSaver }}</template>
|
|
||||||
|
|
||||||
<div class="_gaps_m">
|
<div class="_gaps_m">
|
||||||
<MkInfo>{{ i18n.ts.reloadRequiredToApplySettings }}</MkInfo>
|
<div class="_gaps_s">
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.collapseRenotes"
|
||||||
|
:keywords="['renote', i18n.ts.collapseRenotesDescription]"
|
||||||
|
>
|
||||||
|
<MkSwitch v-model="collapseRenotes">
|
||||||
|
<template #label>{{ i18n.ts.collapseRenotes }}</template>
|
||||||
|
<template #caption>{{ i18n.ts.collapseRenotesDescription }}</template>
|
||||||
|
</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
<div class="_buttons">
|
<MkSearchMarker
|
||||||
<MkButton inline @click="enableAllDataSaver">{{ i18n.ts.enableAll }}</MkButton>
|
:label="i18n.ts.showNoteActionsOnlyHover"
|
||||||
<MkButton inline @click="disableAllDataSaver">{{ i18n.ts.disableAll }}</MkButton>
|
:keywords="['hover', 'show', 'footer', 'action']"
|
||||||
|
>
|
||||||
|
<MkSwitch v-model="showNoteActionsOnlyHover">{{ i18n.ts.showNoteActionsOnlyHover }}</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.showClipButtonInNoteFooter"
|
||||||
|
:keywords="['footer', 'action', 'clip', 'show']"
|
||||||
|
>
|
||||||
|
<MkSwitch v-model="showClipButtonInNoteFooter">{{ i18n.ts.showClipButtonInNoteFooter }}</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.enableAdvancedMfm"
|
||||||
|
:keywords="['mfm', 'enable', 'show', 'advanced']"
|
||||||
|
>
|
||||||
|
<MkSwitch v-model="advancedMfm">{{ i18n.ts.enableAdvancedMfm }}</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.enableAnimatedMfm"
|
||||||
|
:keywords="['mfm', 'enable', 'show', 'animated']"
|
||||||
|
>
|
||||||
|
<MkSwitch v-if="advancedMfm" v-model="animatedMfm">{{ i18n.ts.enableAnimatedMfm }}</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.enableQuickAddMfmFunction"
|
||||||
|
:keywords="['mfm', 'enable', 'show', 'advanced', 'picker', 'form', 'function', 'fn']"
|
||||||
|
>
|
||||||
|
<MkSwitch v-if="advancedMfm" v-model="enableQuickAddMfmFunction">{{ i18n.ts.enableQuickAddMfmFunction }}</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.showReactionsCount"
|
||||||
|
:keywords="['reaction', 'count', 'show']"
|
||||||
|
>
|
||||||
|
<MkSwitch v-model="showReactionsCount">{{ i18n.ts.showReactionsCount }}</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.showGapBetweenNotesInTimeline"
|
||||||
|
:keywords="['note', 'timeline', 'gap']"
|
||||||
|
>
|
||||||
|
<MkSwitch v-model="showGapBetweenNotesInTimeline">{{ i18n.ts.showGapBetweenNotesInTimeline }}</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.loadRawImages"
|
||||||
|
:keywords="['image', 'photo', 'picture', 'media', 'thumbnail', 'quality', 'raw', 'attachment']"
|
||||||
|
>
|
||||||
|
<MkSwitch v-model="loadRawImages">{{ i18n.ts.loadRawImages }}</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.reactionsDisplaySize"
|
||||||
|
:keywords="['reaction', 'size', 'scale', 'display']"
|
||||||
|
>
|
||||||
|
<MkRadios v-model="reactionsDisplaySize">
|
||||||
|
<template #label>{{ i18n.ts.reactionsDisplaySize }}</template>
|
||||||
|
<option value="small">{{ i18n.ts.small }}</option>
|
||||||
|
<option value="medium">{{ i18n.ts.medium }}</option>
|
||||||
|
<option value="large">{{ i18n.ts.large }}</option>
|
||||||
|
</MkRadios>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.limitWidthOfReaction"
|
||||||
|
:keywords="['reaction', 'size', 'scale', 'display', 'width', 'limit']"
|
||||||
|
>
|
||||||
|
<MkSwitch v-model="limitWidthOfReaction">{{ i18n.ts.limitWidthOfReaction }}</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.instanceTicker"
|
||||||
|
:keywords="['ticker', 'information', 'label', 'instance', 'server', 'host', 'federation']"
|
||||||
|
>
|
||||||
|
<MkSelect v-if="instance.federation !== 'none'" v-model="instanceTicker">
|
||||||
|
<template #label>{{ i18n.ts.instanceTicker }}</template>
|
||||||
|
<option value="none">{{ i18n.ts._instanceTicker.none }}</option>
|
||||||
|
<option value="remote">{{ i18n.ts._instanceTicker.remote }}</option>
|
||||||
|
<option value="always">{{ i18n.ts._instanceTicker.always }}</option>
|
||||||
|
</MkSelect>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.displayOfSensitiveMedia"
|
||||||
|
:keywords="['attachment', 'image', 'photo', 'picture', 'media', 'thumbnail', 'nsfw', 'sensitive', 'display', 'show', 'hide', 'visibility']"
|
||||||
|
>
|
||||||
|
<MkSelect v-model="nsfw">
|
||||||
|
<template #label>{{ i18n.ts.displayOfSensitiveMedia }}</template>
|
||||||
|
<option value="respect">{{ i18n.ts._displayOfSensitiveMedia.respect }}</option>
|
||||||
|
<option value="ignore">{{ i18n.ts._displayOfSensitiveMedia.ignore }}</option>
|
||||||
|
<option value="force">{{ i18n.ts._displayOfSensitiveMedia.force }}</option>
|
||||||
|
</MkSelect>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.mediaListWithOneImageAppearance"
|
||||||
|
:keywords="['attachment', 'image', 'photo', 'picture', 'media', 'thumbnail', 'list', 'size', 'height']"
|
||||||
|
>
|
||||||
|
<MkRadios v-model="mediaListWithOneImageAppearance">
|
||||||
|
<template #label>{{ i18n.ts.mediaListWithOneImageAppearance }}</template>
|
||||||
|
<option value="expand">{{ i18n.ts.default }}</option>
|
||||||
|
<option value="16_9">{{ i18n.tsx.limitTo({ x: '16:9' }) }}</option>
|
||||||
|
<option value="1_1">{{ i18n.tsx.limitTo({ x: '1:1' }) }}</option>
|
||||||
|
<option value="2_3">{{ i18n.tsx.limitTo({ x: '2:3' }) }}</option>
|
||||||
|
</MkRadios>
|
||||||
|
</MkSearchMarker>
|
||||||
|
</div>
|
||||||
|
</FormSection>
|
||||||
|
</MkSearchSection>
|
||||||
|
|
||||||
|
<MkSearchSection :label="i18n.ts.notificationDisplay" :keywords="['notification', 'display']">
|
||||||
|
<FormSection>
|
||||||
|
<template #label>{{ i18n.ts.notificationDisplay }}</template>
|
||||||
|
|
||||||
|
<div class="_gaps_m">
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.useGroupedNotifications"
|
||||||
|
:keywords="['group']"
|
||||||
|
>
|
||||||
|
<MkSwitch v-model="useGroupedNotifications">{{ i18n.ts.useGroupedNotifications }}</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.position"
|
||||||
|
:keywords="['position']"
|
||||||
|
>
|
||||||
|
<MkRadios v-model="notificationPosition">
|
||||||
|
<template #label>{{ i18n.ts.position }}</template>
|
||||||
|
<option value="leftTop"><i class="ti ti-align-box-left-top"></i> {{ i18n.ts.leftTop }}</option>
|
||||||
|
<option value="rightTop"><i class="ti ti-align-box-right-top"></i> {{ i18n.ts.rightTop }}</option>
|
||||||
|
<option value="leftBottom"><i class="ti ti-align-box-left-bottom"></i> {{ i18n.ts.leftBottom }}</option>
|
||||||
|
<option value="rightBottom"><i class="ti ti-align-box-right-bottom"></i> {{ i18n.ts.rightBottom }}</option>
|
||||||
|
</MkRadios>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.stackAxis"
|
||||||
|
:keywords="['stack', 'axis', 'direction']"
|
||||||
|
>
|
||||||
|
<MkRadios v-model="notificationStackAxis">
|
||||||
|
<template #label>{{ i18n.ts.stackAxis }}</template>
|
||||||
|
<option value="vertical"><i class="ti ti-carousel-vertical"></i> {{ i18n.ts.vertical }}</option>
|
||||||
|
<option value="horizontal"><i class="ti ti-carousel-horizontal"></i> {{ i18n.ts.horizontal }}</option>
|
||||||
|
</MkRadios>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
|
<MkButton @click="testNotification">{{ i18n.ts._notification.checkNotificationBehavior }}</MkButton>
|
||||||
|
</div>
|
||||||
|
</FormSection>
|
||||||
|
</MkSearchSection>
|
||||||
|
|
||||||
|
<FormSection>
|
||||||
|
<template #label>{{ i18n.ts.appearance }}</template>
|
||||||
|
|
||||||
|
<div class="_gaps_m">
|
||||||
|
<div class="_gaps_s">
|
||||||
|
<MkSwitch v-model="reduceAnimation">{{ i18n.ts.reduceUiAnimation }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="useBlurEffect">{{ i18n.ts.useBlurEffect }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="useBlurEffectForModal">{{ i18n.ts.useBlurEffectForModal }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="disableShowingAnimatedImages">{{ i18n.ts.disableShowingAnimatedImages }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="highlightSensitiveMedia">{{ i18n.ts.highlightSensitiveMedia }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="squareAvatars">{{ i18n.ts.squareAvatars }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="showAvatarDecorations">{{ i18n.ts.showAvatarDecorations }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="useSystemFont">{{ i18n.ts.useSystemFont }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="forceShowAds">{{ i18n.ts.forceShowAds }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="enableSeasonalScreenEffect">{{ i18n.ts.seasonalScreenEffect }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="useNativeUIForVideoAudioPlayer">{{ i18n.ts.useNativeUIForVideoAudioPlayer }}</MkSwitch>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<MkSelect v-model="menuStyle">
|
||||||
|
<template #label>{{ i18n.ts.menuStyle }}</template>
|
||||||
|
<option value="auto">{{ i18n.ts.auto }}</option>
|
||||||
|
<option value="popup">{{ i18n.ts.popup }}</option>
|
||||||
|
<option value="drawer">{{ i18n.ts.drawer }}</option>
|
||||||
|
</MkSelect>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<MkRadios v-model="emojiStyle">
|
||||||
|
<template #label>{{ i18n.ts.emojiStyle }}</template>
|
||||||
|
<option value="native">{{ i18n.ts.native }}</option>
|
||||||
|
<option value="fluentEmoji">Fluent Emoji</option>
|
||||||
|
<option value="twemoji">Twemoji</option>
|
||||||
|
</MkRadios>
|
||||||
|
<div style="margin: 8px 0 0 0; font-size: 1.5em;"><Mfm :key="emojiStyle" text="🍮🍦🍭🍩🍰🍫🍬🥞🍪"/></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<MkRadios v-model="fontSize">
|
||||||
|
<template #label>{{ i18n.ts.fontSize }}</template>
|
||||||
|
<option :value="null"><span style="font-size: 14px;">Aa</span></option>
|
||||||
|
<option value="1"><span style="font-size: 15px;">Aa</span></option>
|
||||||
|
<option value="2"><span style="font-size: 16px;">Aa</span></option>
|
||||||
|
<option value="3"><span style="font-size: 17px;">Aa</span></option>
|
||||||
|
</MkRadios>
|
||||||
|
</div>
|
||||||
|
</FormSection>
|
||||||
|
|
||||||
|
<FormSection>
|
||||||
|
<template #label>{{ i18n.ts.behavior }}</template>
|
||||||
|
|
||||||
|
<div class="_gaps_m">
|
||||||
|
<div class="_gaps_s">
|
||||||
|
<MkSwitch v-model="imageNewTab">{{ i18n.ts.openImageInNewTab }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="useReactionPickerForContextMenu">{{ i18n.ts.useReactionPickerForContextMenu }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="enableInfiniteScroll">{{ i18n.ts.enableInfiniteScroll }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="keepScreenOn">{{ i18n.ts.keepScreenOn }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="disableStreamingTimeline">{{ i18n.ts.disableStreamingTimeline }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="enableHorizontalSwipe">{{ i18n.ts.enableHorizontalSwipe }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="alwaysConfirmFollow">{{ i18n.ts.alwaysConfirmFollow }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="confirmWhenRevealingSensitiveMedia">{{ i18n.ts.confirmWhenRevealingSensitiveMedia }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="confirmOnReact">{{ i18n.ts.confirmOnReact }}</MkSwitch>
|
||||||
|
</div>
|
||||||
|
<MkSelect v-model="serverDisconnectedBehavior">
|
||||||
|
<template #label>{{ i18n.ts.whenServerDisconnected }}</template>
|
||||||
|
<option value="reload">{{ i18n.ts._serverDisconnectedBehavior.reload }}</option>
|
||||||
|
<option value="dialog">{{ i18n.ts._serverDisconnectedBehavior.dialog }}</option>
|
||||||
|
<option value="quiet">{{ i18n.ts._serverDisconnectedBehavior.quiet }}</option>
|
||||||
|
</MkSelect>
|
||||||
|
<MkSelect v-model="contextMenu">
|
||||||
|
<template #label>{{ i18n.ts._contextMenu.title }}</template>
|
||||||
|
<option value="app">{{ i18n.ts._contextMenu.app }}</option>
|
||||||
|
<option value="appWithShift">{{ i18n.ts._contextMenu.appWithShift }}</option>
|
||||||
|
<option value="native">{{ i18n.ts._contextMenu.native }}</option>
|
||||||
|
</MkSelect>
|
||||||
|
<MkRange v-model="numberOfPageCache" :min="1" :max="10" :step="1" easing>
|
||||||
|
<template #label>{{ i18n.ts.numberOfPageCache }}</template>
|
||||||
|
<template #caption>{{ i18n.ts.numberOfPageCacheDescription }}</template>
|
||||||
|
</MkRange>
|
||||||
|
|
||||||
|
<MkFolder>
|
||||||
|
<template #label>{{ i18n.ts.dataSaver }}</template>
|
||||||
|
|
||||||
<div class="_gaps_m">
|
<div class="_gaps_m">
|
||||||
<MkSwitch v-model="dataSaver.media">
|
<MkInfo>{{ i18n.ts.reloadRequiredToApplySettings }}</MkInfo>
|
||||||
{{ i18n.ts._dataSaver._media.title }}
|
|
||||||
<template #caption>{{ i18n.ts._dataSaver._media.description }}</template>
|
<div class="_buttons">
|
||||||
</MkSwitch>
|
<MkButton inline @click="enableAllDataSaver">{{ i18n.ts.enableAll }}</MkButton>
|
||||||
<MkSwitch v-model="dataSaver.avatar">
|
<MkButton inline @click="disableAllDataSaver">{{ i18n.ts.disableAll }}</MkButton>
|
||||||
{{ i18n.ts._dataSaver._avatar.title }}
|
</div>
|
||||||
<template #caption>{{ i18n.ts._dataSaver._avatar.description }}</template>
|
<div class="_gaps_m">
|
||||||
</MkSwitch>
|
<MkSwitch v-model="dataSaver.media">
|
||||||
<MkSwitch v-model="dataSaver.urlPreview">
|
{{ i18n.ts._dataSaver._media.title }}
|
||||||
{{ i18n.ts._dataSaver._urlPreview.title }}
|
<template #caption>{{ i18n.ts._dataSaver._media.description }}</template>
|
||||||
<template #caption>{{ i18n.ts._dataSaver._urlPreview.description }}</template>
|
</MkSwitch>
|
||||||
</MkSwitch>
|
<MkSwitch v-model="dataSaver.avatar">
|
||||||
<MkSwitch v-model="dataSaver.code">
|
{{ i18n.ts._dataSaver._avatar.title }}
|
||||||
{{ i18n.ts._dataSaver._code.title }}
|
<template #caption>{{ i18n.ts._dataSaver._avatar.description }}</template>
|
||||||
<template #caption>{{ i18n.ts._dataSaver._code.description }}</template>
|
</MkSwitch>
|
||||||
</MkSwitch>
|
<MkSwitch v-model="dataSaver.urlPreview">
|
||||||
|
{{ i18n.ts._dataSaver._urlPreview.title }}
|
||||||
|
<template #caption>{{ i18n.ts._dataSaver._urlPreview.description }}</template>
|
||||||
|
</MkSwitch>
|
||||||
|
<MkSwitch v-model="dataSaver.code">
|
||||||
|
{{ i18n.ts._dataSaver._code.title }}
|
||||||
|
<template #caption>{{ i18n.ts._dataSaver._code.description }}</template>
|
||||||
|
</MkSwitch>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</MkFolder>
|
||||||
</MkFolder>
|
</div>
|
||||||
</div>
|
</FormSection>
|
||||||
</FormSection>
|
|
||||||
|
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>{{ i18n.ts.other }}</template>
|
<template #label>{{ i18n.ts.other }}</template>
|
||||||
|
|
||||||
<div class="_gaps">
|
<div class="_gaps">
|
||||||
<MkRadios v-model="hemisphere">
|
<MkRadios v-model="hemisphere">
|
||||||
<template #label>{{ i18n.ts.hemisphere }}</template>
|
<template #label>{{ i18n.ts.hemisphere }}</template>
|
||||||
<option value="N">{{ i18n.ts._hemisphere.N }}</option>
|
<option value="N">{{ i18n.ts._hemisphere.N }}</option>
|
||||||
<option value="S">{{ i18n.ts._hemisphere.S }}</option>
|
<option value="S">{{ i18n.ts._hemisphere.S }}</option>
|
||||||
<template #caption>{{ i18n.ts._hemisphere.caption }}</template>
|
<template #caption>{{ i18n.ts._hemisphere.caption }}</template>
|
||||||
</MkRadios>
|
</MkRadios>
|
||||||
<MkFolder>
|
<MkFolder>
|
||||||
<template #label>{{ i18n.ts.additionalEmojiDictionary }}</template>
|
<template #label>{{ i18n.ts.additionalEmojiDictionary }}</template>
|
||||||
<div class="_buttons">
|
<div class="_buttons">
|
||||||
<template v-for="lang in emojiIndexLangs" :key="lang">
|
<template v-for="lang in emojiIndexLangs" :key="lang">
|
||||||
<MkButton v-if="defaultStore.reactiveState.additionalUnicodeEmojiIndexes.value[lang]" danger @click="removeEmojiIndex(lang)"><i class="ti ti-trash"></i> {{ i18n.ts.remove }} ({{ getEmojiIndexLangName(lang) }})</MkButton>
|
<MkButton v-if="defaultStore.reactiveState.additionalUnicodeEmojiIndexes.value[lang]" danger @click="removeEmojiIndex(lang)"><i class="ti ti-trash"></i> {{ i18n.ts.remove }} ({{ getEmojiIndexLangName(lang) }})</MkButton>
|
||||||
<MkButton v-else @click="downloadEmojiIndex(lang)"><i class="ti ti-download"></i> {{ getEmojiIndexLangName(lang) }}{{ defaultStore.reactiveState.additionalUnicodeEmojiIndexes.value[lang] ? ` (${ i18n.ts.installed })` : '' }}</MkButton>
|
<MkButton v-else @click="downloadEmojiIndex(lang)"><i class="ti ti-download"></i> {{ getEmojiIndexLangName(lang) }}{{ defaultStore.reactiveState.additionalUnicodeEmojiIndexes.value[lang] ? ` (${ i18n.ts.installed })` : '' }}</MkButton>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</MkFolder>
|
</MkFolder>
|
||||||
<FormLink to="/settings/deck">{{ i18n.ts.deck }}</FormLink>
|
<FormLink to="/settings/deck">{{ i18n.ts.deck }}</FormLink>
|
||||||
<FormLink to="/settings/custom-css"><template #icon><i class="ti ti-code"></i></template>{{ i18n.ts.customCss }}</FormLink>
|
<FormLink to="/settings/custom-css"><template #icon><i class="ti ti-code"></i></template>{{ i18n.ts.customCss }}</FormLink>
|
||||||
</div>
|
</div>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
</div>
|
</div>
|
||||||
|
</MkSearchSection>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
|
|
@ -4,165 +4,242 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="_gaps_m">
|
<MkSearchSection :label="i18n.ts.privacy" :keywords="['privacy']" icon="ti ti-lock-open">
|
||||||
<MkSearchMarker
|
<div class="_gaps_m">
|
||||||
:locationLabel="[i18n.ts.privacy, i18n.ts.makeFollowManuallyApprove]"
|
<MkSearchMarker
|
||||||
icon="ti ti-lock-open"
|
:label="i18n.ts.makeFollowManuallyApprove"
|
||||||
:keywords="['follow', 'lock', i18n.ts.lockedAccountInfo]"
|
:keywords="['follow', 'lock', i18n.ts.lockedAccountInfo]"
|
||||||
>
|
>
|
||||||
<MkSwitch v-model="isLocked" @update:modelValue="save()">{{ i18n.ts.makeFollowManuallyApprove }}<template #caption>{{ i18n.ts.lockedAccountInfo }}</template></MkSwitch>
|
<MkSwitch v-model="isLocked" @update:modelValue="save()">{{ i18n.ts.makeFollowManuallyApprove }}<template #caption>{{ i18n.ts.lockedAccountInfo }}</template></MkSwitch>
|
||||||
</MkSearchMarker>
|
</MkSearchMarker>
|
||||||
|
|
||||||
<MkSwitch v-if="isLocked" v-model="autoAcceptFollowed" @update:modelValue="save()">{{ i18n.ts.autoAcceptFollowed }}</MkSwitch>
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.autoAcceptFollowed"
|
||||||
|
:keywords="['follow', 'auto', 'accept']"
|
||||||
|
>
|
||||||
|
<MkSwitch v-if="isLocked" v-model="autoAcceptFollowed" @update:modelValue="save()">{{ i18n.ts.autoAcceptFollowed }}</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
<MkSwitch v-model="publicReactions" @update:modelValue="save()">
|
<MkSearchMarker
|
||||||
{{ i18n.ts.makeReactionsPublic }}
|
:label="i18n.ts.makeReactionsPublic"
|
||||||
<template #caption>{{ i18n.ts.makeReactionsPublicDescription }}</template>
|
:keywords="['reaction', 'public', i18n.ts.makeReactionsPublicDescription]"
|
||||||
</MkSwitch>
|
>
|
||||||
|
<MkSwitch v-model="publicReactions" @update:modelValue="save()">
|
||||||
<MkSelect v-model="followingVisibility" @update:modelValue="save()">
|
{{ i18n.ts.makeReactionsPublic }}
|
||||||
<template #label>{{ i18n.ts.followingVisibility }}</template>
|
<template #caption>{{ i18n.ts.makeReactionsPublicDescription }}</template>
|
||||||
<option value="public">{{ i18n.ts._ffVisibility.public }}</option>
|
|
||||||
<option value="followers">{{ i18n.ts._ffVisibility.followers }}</option>
|
|
||||||
<option value="private">{{ i18n.ts._ffVisibility.private }}</option>
|
|
||||||
</MkSelect>
|
|
||||||
|
|
||||||
<MkSelect v-model="followersVisibility" @update:modelValue="save()">
|
|
||||||
<template #label>{{ i18n.ts.followersVisibility }}</template>
|
|
||||||
<option value="public">{{ i18n.ts._ffVisibility.public }}</option>
|
|
||||||
<option value="followers">{{ i18n.ts._ffVisibility.followers }}</option>
|
|
||||||
<option value="private">{{ i18n.ts._ffVisibility.private }}</option>
|
|
||||||
</MkSelect>
|
|
||||||
|
|
||||||
<MkSwitch v-model="hideOnlineStatus" @update:modelValue="save()">
|
|
||||||
{{ i18n.ts.hideOnlineStatus }}
|
|
||||||
<template #caption>{{ i18n.ts.hideOnlineStatusDescription }}</template>
|
|
||||||
</MkSwitch>
|
|
||||||
<MkSwitch v-model="noCrawle" @update:modelValue="save()">
|
|
||||||
{{ i18n.ts.noCrawle }}
|
|
||||||
<template #caption>{{ i18n.ts.noCrawleDescription }}</template>
|
|
||||||
</MkSwitch>
|
|
||||||
<MkSwitch v-model="preventAiLearning" @update:modelValue="save()">
|
|
||||||
{{ i18n.ts.preventAiLearning }}
|
|
||||||
<template #caption>{{ i18n.ts.preventAiLearningDescription }}</template>
|
|
||||||
</MkSwitch>
|
|
||||||
<MkSwitch v-model="isExplorable" @update:modelValue="save()">
|
|
||||||
{{ i18n.ts.makeExplorable }}
|
|
||||||
<template #caption>{{ i18n.ts.makeExplorableDescription }}</template>
|
|
||||||
</MkSwitch>
|
|
||||||
|
|
||||||
<FormSection>
|
|
||||||
<template #label>{{ i18n.ts.lockdown }}<span class="_beta">{{ i18n.ts.beta }}</span></template>
|
|
||||||
|
|
||||||
<div class="_gaps_m">
|
|
||||||
<MkSwitch :modelValue="requireSigninToViewContents" @update:modelValue="update_requireSigninToViewContents">
|
|
||||||
{{ i18n.ts._accountSettings.requireSigninToViewContents }}
|
|
||||||
<template #caption>
|
|
||||||
<div>{{ i18n.ts._accountSettings.requireSigninToViewContentsDescription1 }}</div>
|
|
||||||
<div><i class="ti ti-alert-triangle" style="color: var(--MI_THEME-warn);"></i> {{ i18n.ts._accountSettings.requireSigninToViewContentsDescription2 }}</div>
|
|
||||||
<div v-if="instance.federation !== 'none'"><i class="ti ti-alert-triangle" style="color: var(--MI_THEME-warn);"></i> {{ i18n.ts._accountSettings.requireSigninToViewContentsDescription3 }}</div>
|
|
||||||
</template>
|
|
||||||
</MkSwitch>
|
</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
<FormSlot>
|
<MkSearchMarker
|
||||||
<template #label>{{ i18n.ts._accountSettings.makeNotesFollowersOnlyBefore }}</template>
|
:label="i18n.ts.followingVisibility"
|
||||||
|
:keywords="['following', 'visibility']"
|
||||||
|
>
|
||||||
|
<MkSelect v-model="followingVisibility" @update:modelValue="save()">
|
||||||
|
<template #label>{{ i18n.ts.followingVisibility }}</template>
|
||||||
|
<option value="public">{{ i18n.ts._ffVisibility.public }}</option>
|
||||||
|
<option value="followers">{{ i18n.ts._ffVisibility.followers }}</option>
|
||||||
|
<option value="private">{{ i18n.ts._ffVisibility.private }}</option>
|
||||||
|
</MkSelect>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
<div class="_gaps_s">
|
<MkSearchMarker
|
||||||
<MkSelect :modelValue="makeNotesFollowersOnlyBefore_type" @update:modelValue="makeNotesFollowersOnlyBefore = $event === 'relative' ? -604800 : $event === 'absolute' ? Math.floor(Date.now() / 1000) : null">
|
:label="i18n.ts.followersVisibility"
|
||||||
<option :value="null">{{ i18n.ts.none }}</option>
|
:keywords="['follower', 'visibility']"
|
||||||
<option value="relative">{{ i18n.ts._accountSettings.notesHavePassedSpecifiedPeriod }}</option>
|
>
|
||||||
<option value="absolute">{{ i18n.ts._accountSettings.notesOlderThanSpecifiedDateAndTime }}</option>
|
<MkSelect v-model="followersVisibility" @update:modelValue="save()">
|
||||||
</MkSelect>
|
<template #label>{{ i18n.ts.followersVisibility }}</template>
|
||||||
|
<option value="public">{{ i18n.ts._ffVisibility.public }}</option>
|
||||||
|
<option value="followers">{{ i18n.ts._ffVisibility.followers }}</option>
|
||||||
|
<option value="private">{{ i18n.ts._ffVisibility.private }}</option>
|
||||||
|
</MkSelect>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
<MkSelect v-if="makeNotesFollowersOnlyBefore_type === 'relative'" v-model="makeNotesFollowersOnlyBefore">
|
<MkSearchMarker
|
||||||
<option :value="-3600">{{ i18n.ts.oneHour }}</option>
|
:label="i18n.ts.hideOnlineStatus"
|
||||||
<option :value="-86400">{{ i18n.ts.oneDay }}</option>
|
:keywords="['online', 'status', i18n.ts.hideOnlineStatusDescription]"
|
||||||
<option :value="-259200">{{ i18n.ts.threeDays }}</option>
|
>
|
||||||
<option :value="-604800">{{ i18n.ts.oneWeek }}</option>
|
<MkSwitch v-model="hideOnlineStatus" @update:modelValue="save()">
|
||||||
<option :value="-2592000">{{ i18n.ts.oneMonth }}</option>
|
{{ i18n.ts.hideOnlineStatus }}
|
||||||
<option :value="-7776000">{{ i18n.ts.threeMonths }}</option>
|
<template #caption>{{ i18n.ts.hideOnlineStatusDescription }}</template>
|
||||||
<option :value="-31104000">{{ i18n.ts.oneYear }}</option>
|
</MkSwitch>
|
||||||
</MkSelect>
|
</MkSearchMarker>
|
||||||
|
|
||||||
<MkInput
|
<MkSearchMarker
|
||||||
v-if="makeNotesFollowersOnlyBefore_type === 'absolute'"
|
:label="i18n.ts.noCrawle"
|
||||||
:modelValue="formatDateTimeString(new Date(makeNotesFollowersOnlyBefore * 1000), 'yyyy-MM-dd')"
|
:keywords="['crawle', 'index', 'search', i18n.ts.noCrawleDescription]"
|
||||||
type="date"
|
>
|
||||||
:manualSave="true"
|
<MkSwitch v-model="noCrawle" @update:modelValue="save()">
|
||||||
@update:modelValue="makeNotesFollowersOnlyBefore = Math.floor(new Date($event).getTime() / 1000)"
|
{{ i18n.ts.noCrawle }}
|
||||||
>
|
<template #caption>{{ i18n.ts.noCrawleDescription }}</template>
|
||||||
</MkInput>
|
</MkSwitch>
|
||||||
</div>
|
</MkSearchMarker>
|
||||||
|
|
||||||
<template #caption>
|
<MkSearchMarker
|
||||||
<div>{{ i18n.ts._accountSettings.makeNotesFollowersOnlyBeforeDescription }}</div>
|
:label="i18n.ts.preventAiLearning"
|
||||||
<div v-if="instance.federation !== 'none'"><i class="ti ti-alert-triangle" style="color: var(--MI_THEME-warn);"></i> {{ i18n.ts._accountSettings.mayNotEffectForFederatedNotes }}</div>
|
:keywords="['crawle', 'ai', i18n.ts.preventAiLearningDescription]"
|
||||||
</template>
|
>
|
||||||
</FormSlot>
|
<MkSwitch v-model="preventAiLearning" @update:modelValue="save()">
|
||||||
|
{{ i18n.ts.preventAiLearning }}
|
||||||
|
<template #caption>{{ i18n.ts.preventAiLearningDescription }}</template>
|
||||||
|
</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
<FormSlot>
|
<MkSearchMarker
|
||||||
<template #label>{{ i18n.ts._accountSettings.makeNotesHiddenBefore }}</template>
|
:label="i18n.ts.makeExplorable"
|
||||||
|
:keywords="['explore', i18n.ts.makeExplorableDescription]"
|
||||||
|
>
|
||||||
|
<MkSwitch v-model="isExplorable" @update:modelValue="save()">
|
||||||
|
{{ i18n.ts.makeExplorable }}
|
||||||
|
<template #caption>{{ i18n.ts.makeExplorableDescription }}</template>
|
||||||
|
</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
<div class="_gaps_s">
|
<MkSearchSection :label="i18n.ts.lockdown" :keywords="['lockdown']">
|
||||||
<MkSelect :modelValue="makeNotesHiddenBefore_type" @update:modelValue="makeNotesHiddenBefore = $event === 'relative' ? -604800 : $event === 'absolute' ? Math.floor(Date.now() / 1000) : null">
|
<FormSection>
|
||||||
<option :value="null">{{ i18n.ts.none }}</option>
|
<template #label>{{ i18n.ts.lockdown }}<span class="_beta">{{ i18n.ts.beta }}</span></template>
|
||||||
<option value="relative">{{ i18n.ts._accountSettings.notesHavePassedSpecifiedPeriod }}</option>
|
|
||||||
<option value="absolute">{{ i18n.ts._accountSettings.notesOlderThanSpecifiedDateAndTime }}</option>
|
|
||||||
</MkSelect>
|
|
||||||
|
|
||||||
<MkSelect v-if="makeNotesHiddenBefore_type === 'relative'" v-model="makeNotesHiddenBefore">
|
|
||||||
<option :value="-3600">{{ i18n.ts.oneHour }}</option>
|
|
||||||
<option :value="-86400">{{ i18n.ts.oneDay }}</option>
|
|
||||||
<option :value="-259200">{{ i18n.ts.threeDays }}</option>
|
|
||||||
<option :value="-604800">{{ i18n.ts.oneWeek }}</option>
|
|
||||||
<option :value="-2592000">{{ i18n.ts.oneMonth }}</option>
|
|
||||||
<option :value="-7776000">{{ i18n.ts.threeMonths }}</option>
|
|
||||||
<option :value="-31104000">{{ i18n.ts.oneYear }}</option>
|
|
||||||
</MkSelect>
|
|
||||||
|
|
||||||
<MkInput
|
|
||||||
v-if="makeNotesHiddenBefore_type === 'absolute'"
|
|
||||||
:modelValue="formatDateTimeString(new Date(makeNotesHiddenBefore * 1000), 'yyyy-MM-dd')"
|
|
||||||
type="date"
|
|
||||||
:manualSave="true"
|
|
||||||
@update:modelValue="makeNotesHiddenBefore = Math.floor(new Date($event).getTime() / 1000)"
|
|
||||||
>
|
|
||||||
</MkInput>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<template #caption>
|
|
||||||
<div>{{ i18n.ts._accountSettings.makeNotesHiddenBeforeDescription }}</div>
|
|
||||||
<div v-if="instance.federation !== 'none'"><i class="ti ti-alert-triangle" style="color: var(--MI_THEME-warn);"></i> {{ i18n.ts._accountSettings.mayNotEffectForFederatedNotes }}</div>
|
|
||||||
</template>
|
|
||||||
</FormSlot>
|
|
||||||
</div>
|
|
||||||
</FormSection>
|
|
||||||
|
|
||||||
<FormSection>
|
|
||||||
<div class="_gaps_m">
|
|
||||||
<MkSwitch v-model="rememberNoteVisibility" @update:modelValue="save()">{{ i18n.ts.rememberNoteVisibility }}</MkSwitch>
|
|
||||||
<MkFolder v-if="!rememberNoteVisibility">
|
|
||||||
<template #label>{{ i18n.ts.defaultNoteVisibility }}</template>
|
|
||||||
<template v-if="defaultNoteVisibility === 'public'" #suffix>{{ i18n.ts._visibility.public }}</template>
|
|
||||||
<template v-else-if="defaultNoteVisibility === 'home'" #suffix>{{ i18n.ts._visibility.home }}</template>
|
|
||||||
<template v-else-if="defaultNoteVisibility === 'followers'" #suffix>{{ i18n.ts._visibility.followers }}</template>
|
|
||||||
<template v-else-if="defaultNoteVisibility === 'specified'" #suffix>{{ i18n.ts._visibility.specified }}</template>
|
|
||||||
|
|
||||||
<div class="_gaps_m">
|
<div class="_gaps_m">
|
||||||
<MkSelect v-model="defaultNoteVisibility">
|
<MkSearchMarker
|
||||||
<option value="public">{{ i18n.ts._visibility.public }}</option>
|
:label="i18n.ts._accountSettings.requireSigninToViewContents"
|
||||||
<option value="home">{{ i18n.ts._visibility.home }}</option>
|
:keywords="['login', 'signin', i18n.ts._accountSettings.requireSigninToViewContentsDescription1, i18n.ts._accountSettings.requireSigninToViewContentsDescription2, i18n.ts._accountSettings.requireSigninToViewContentsDescription3]"
|
||||||
<option value="followers">{{ i18n.ts._visibility.followers }}</option>
|
>
|
||||||
<option value="specified">{{ i18n.ts._visibility.specified }}</option>
|
<MkSwitch :modelValue="requireSigninToViewContents" @update:modelValue="update_requireSigninToViewContents">
|
||||||
</MkSelect>
|
{{ i18n.ts._accountSettings.requireSigninToViewContents }}
|
||||||
<MkSwitch v-model="defaultNoteLocalOnly">{{ i18n.ts._visibility.disableFederation }}</MkSwitch>
|
<template #caption>
|
||||||
</div>
|
<div>{{ i18n.ts._accountSettings.requireSigninToViewContentsDescription1 }}</div>
|
||||||
</MkFolder>
|
<div><i class="ti ti-alert-triangle" style="color: var(--MI_THEME-warn);"></i> {{ i18n.ts._accountSettings.requireSigninToViewContentsDescription2 }}</div>
|
||||||
</div>
|
<div v-if="instance.federation !== 'none'"><i class="ti ti-alert-triangle" style="color: var(--MI_THEME-warn);"></i> {{ i18n.ts._accountSettings.requireSigninToViewContentsDescription3 }}</div>
|
||||||
</FormSection>
|
</template>
|
||||||
|
</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
<MkSwitch v-model="keepCw" @update:modelValue="save()">{{ i18n.ts.keepCw }}</MkSwitch>
|
<MkSearchMarker
|
||||||
</div>
|
:label="i18n.ts._accountSettings.makeNotesFollowersOnlyBefore"
|
||||||
|
:keywords="['follower', i18n.ts._accountSettings.makeNotesFollowersOnlyBeforeDescription]"
|
||||||
|
>
|
||||||
|
<FormSlot>
|
||||||
|
<template #label>{{ i18n.ts._accountSettings.makeNotesFollowersOnlyBefore }}</template>
|
||||||
|
|
||||||
|
<div class="_gaps_s">
|
||||||
|
<MkSelect :modelValue="makeNotesFollowersOnlyBefore_type" @update:modelValue="makeNotesFollowersOnlyBefore = $event === 'relative' ? -604800 : $event === 'absolute' ? Math.floor(Date.now() / 1000) : null">
|
||||||
|
<option :value="null">{{ i18n.ts.none }}</option>
|
||||||
|
<option value="relative">{{ i18n.ts._accountSettings.notesHavePassedSpecifiedPeriod }}</option>
|
||||||
|
<option value="absolute">{{ i18n.ts._accountSettings.notesOlderThanSpecifiedDateAndTime }}</option>
|
||||||
|
</MkSelect>
|
||||||
|
|
||||||
|
<MkSelect v-if="makeNotesFollowersOnlyBefore_type === 'relative'" v-model="makeNotesFollowersOnlyBefore">
|
||||||
|
<option :value="-3600">{{ i18n.ts.oneHour }}</option>
|
||||||
|
<option :value="-86400">{{ i18n.ts.oneDay }}</option>
|
||||||
|
<option :value="-259200">{{ i18n.ts.threeDays }}</option>
|
||||||
|
<option :value="-604800">{{ i18n.ts.oneWeek }}</option>
|
||||||
|
<option :value="-2592000">{{ i18n.ts.oneMonth }}</option>
|
||||||
|
<option :value="-7776000">{{ i18n.ts.threeMonths }}</option>
|
||||||
|
<option :value="-31104000">{{ i18n.ts.oneYear }}</option>
|
||||||
|
</MkSelect>
|
||||||
|
|
||||||
|
<MkInput
|
||||||
|
v-if="makeNotesFollowersOnlyBefore_type === 'absolute'"
|
||||||
|
:modelValue="formatDateTimeString(new Date(makeNotesFollowersOnlyBefore * 1000), 'yyyy-MM-dd')"
|
||||||
|
type="date"
|
||||||
|
:manualSave="true"
|
||||||
|
@update:modelValue="makeNotesFollowersOnlyBefore = Math.floor(new Date($event).getTime() / 1000)"
|
||||||
|
>
|
||||||
|
</MkInput>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<template #caption>
|
||||||
|
<div>{{ i18n.ts._accountSettings.makeNotesFollowersOnlyBeforeDescription }}</div>
|
||||||
|
<div v-if="instance.federation !== 'none'"><i class="ti ti-alert-triangle" style="color: var(--MI_THEME-warn);"></i> {{ i18n.ts._accountSettings.mayNotEffectForFederatedNotes }}</div>
|
||||||
|
</template>
|
||||||
|
</FormSlot>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts._accountSettings.makeNotesHiddenBefore"
|
||||||
|
:keywords="['hidden', i18n.ts._accountSettings.makeNotesHiddenBeforeDescription]"
|
||||||
|
>
|
||||||
|
<FormSlot>
|
||||||
|
<template #label>{{ i18n.ts._accountSettings.makeNotesHiddenBefore }}</template>
|
||||||
|
|
||||||
|
<div class="_gaps_s">
|
||||||
|
<MkSelect :modelValue="makeNotesHiddenBefore_type" @update:modelValue="makeNotesHiddenBefore = $event === 'relative' ? -604800 : $event === 'absolute' ? Math.floor(Date.now() / 1000) : null">
|
||||||
|
<option :value="null">{{ i18n.ts.none }}</option>
|
||||||
|
<option value="relative">{{ i18n.ts._accountSettings.notesHavePassedSpecifiedPeriod }}</option>
|
||||||
|
<option value="absolute">{{ i18n.ts._accountSettings.notesOlderThanSpecifiedDateAndTime }}</option>
|
||||||
|
</MkSelect>
|
||||||
|
|
||||||
|
<MkSelect v-if="makeNotesHiddenBefore_type === 'relative'" v-model="makeNotesHiddenBefore">
|
||||||
|
<option :value="-3600">{{ i18n.ts.oneHour }}</option>
|
||||||
|
<option :value="-86400">{{ i18n.ts.oneDay }}</option>
|
||||||
|
<option :value="-259200">{{ i18n.ts.threeDays }}</option>
|
||||||
|
<option :value="-604800">{{ i18n.ts.oneWeek }}</option>
|
||||||
|
<option :value="-2592000">{{ i18n.ts.oneMonth }}</option>
|
||||||
|
<option :value="-7776000">{{ i18n.ts.threeMonths }}</option>
|
||||||
|
<option :value="-31104000">{{ i18n.ts.oneYear }}</option>
|
||||||
|
</MkSelect>
|
||||||
|
|
||||||
|
<MkInput
|
||||||
|
v-if="makeNotesHiddenBefore_type === 'absolute'"
|
||||||
|
:modelValue="formatDateTimeString(new Date(makeNotesHiddenBefore * 1000), 'yyyy-MM-dd')"
|
||||||
|
type="date"
|
||||||
|
:manualSave="true"
|
||||||
|
@update:modelValue="makeNotesHiddenBefore = Math.floor(new Date($event).getTime() / 1000)"
|
||||||
|
>
|
||||||
|
</MkInput>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<template #caption>
|
||||||
|
<div>{{ i18n.ts._accountSettings.makeNotesHiddenBeforeDescription }}</div>
|
||||||
|
<div v-if="instance.federation !== 'none'"><i class="ti ti-alert-triangle" style="color: var(--MI_THEME-warn);"></i> {{ i18n.ts._accountSettings.mayNotEffectForFederatedNotes }}</div>
|
||||||
|
</template>
|
||||||
|
</FormSlot>
|
||||||
|
</MkSearchMarker>
|
||||||
|
</div>
|
||||||
|
</FormSection>
|
||||||
|
</MkSearchSection>
|
||||||
|
|
||||||
|
<FormSection>
|
||||||
|
<div class="_gaps_m">
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.rememberNoteVisibility"
|
||||||
|
:keywords="['remember', 'keep', 'note', 'visibility']"
|
||||||
|
>
|
||||||
|
<MkSwitch v-model="rememberNoteVisibility" @update:modelValue="save()">{{ i18n.ts.rememberNoteVisibility }}</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.defaultNoteVisibility"
|
||||||
|
:keywords="['default', 'note', 'visibility']"
|
||||||
|
>
|
||||||
|
<MkFolder v-if="!rememberNoteVisibility">
|
||||||
|
<template #label>{{ i18n.ts.defaultNoteVisibility }}</template>
|
||||||
|
<template v-if="defaultNoteVisibility === 'public'" #suffix>{{ i18n.ts._visibility.public }}</template>
|
||||||
|
<template v-else-if="defaultNoteVisibility === 'home'" #suffix>{{ i18n.ts._visibility.home }}</template>
|
||||||
|
<template v-else-if="defaultNoteVisibility === 'followers'" #suffix>{{ i18n.ts._visibility.followers }}</template>
|
||||||
|
<template v-else-if="defaultNoteVisibility === 'specified'" #suffix>{{ i18n.ts._visibility.specified }}</template>
|
||||||
|
|
||||||
|
<div class="_gaps_m">
|
||||||
|
<MkSelect v-model="defaultNoteVisibility">
|
||||||
|
<option value="public">{{ i18n.ts._visibility.public }}</option>
|
||||||
|
<option value="home">{{ i18n.ts._visibility.home }}</option>
|
||||||
|
<option value="followers">{{ i18n.ts._visibility.followers }}</option>
|
||||||
|
<option value="specified">{{ i18n.ts._visibility.specified }}</option>
|
||||||
|
</MkSelect>
|
||||||
|
<MkSwitch v-model="defaultNoteLocalOnly">{{ i18n.ts._visibility.disableFederation }}</MkSwitch>
|
||||||
|
</div>
|
||||||
|
</MkFolder>
|
||||||
|
</MkSearchMarker>
|
||||||
|
</div>
|
||||||
|
</FormSection>
|
||||||
|
|
||||||
|
<MkSearchMarker
|
||||||
|
:label="i18n.ts.keepCw"
|
||||||
|
:keywords="['remember', 'keep', 'note', 'cw']"
|
||||||
|
>
|
||||||
|
<MkSwitch v-model="keepCw" @update:modelValue="save()">{{ i18n.ts.keepCw }}</MkSwitch>
|
||||||
|
</MkSearchMarker>
|
||||||
|
</div>
|
||||||
|
</MkSearchSection>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
// PIZZAX --- A lightweight store
|
// PIZZAX --- A lightweight store
|
||||||
|
|
||||||
import { onUnmounted, ref, watch } from 'vue';
|
import { onUnmounted, ref, watch } from 'vue';
|
||||||
import type { Ref } from 'vue';
|
|
||||||
import { BroadcastChannel } from 'broadcast-channel';
|
import { BroadcastChannel } from 'broadcast-channel';
|
||||||
|
import type { Ref } from 'vue';
|
||||||
import { $i } from '@/account.js';
|
import { $i } from '@/account.js';
|
||||||
import { misskeyApi } from '@/scripts/misskey-api.js';
|
import { misskeyApi } from '@/scripts/misskey-api.js';
|
||||||
import { get, set } from '@/scripts/idb-proxy.js';
|
import { get, set } from '@/scripts/idb-proxy.js';
|
||||||
|
@ -113,7 +113,6 @@ export class Storage<T extends StateDef> {
|
||||||
this.reactiveState[k].value = this.state[k] = this.mergeState<T[keyof T]['default']>(deviceAccountState[k], v.default);
|
this.reactiveState[k].value = this.state[k] = this.mergeState<T[keyof T]['default']>(deviceAccountState[k], v.default);
|
||||||
} else {
|
} else {
|
||||||
this.reactiveState[k].value = this.state[k] = v.default;
|
this.reactiveState[k].value = this.state[k] = v.default;
|
||||||
if (_DEV_) console.log('Use default value', k, v.default);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -180,12 +179,9 @@ export class Storage<T extends StateDef> {
|
||||||
// (JSON.parse(JSON.stringify(value))の代わり)
|
// (JSON.parse(JSON.stringify(value))の代わり)
|
||||||
const rawValue = deepClone(value);
|
const rawValue = deepClone(value);
|
||||||
|
|
||||||
if (_DEV_) console.log('set', key, rawValue, value);
|
|
||||||
|
|
||||||
this.reactiveState[key].value = this.state[key] = rawValue;
|
this.reactiveState[key].value = this.state[key] = rawValue;
|
||||||
|
|
||||||
return this.addIdbSetJob(async () => {
|
return this.addIdbSetJob(async () => {
|
||||||
if (_DEV_) console.log(`set ${String(key)} start`);
|
|
||||||
switch (this.def[key].where) {
|
switch (this.def[key].where) {
|
||||||
case 'device': {
|
case 'device': {
|
||||||
this.pizzaxChannel.postMessage({
|
this.pizzaxChannel.postMessage({
|
||||||
|
@ -224,7 +220,6 @@ export class Storage<T extends StateDef> {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (_DEV_) console.log(`set ${String(key)} complete`);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -247,9 +242,9 @@ export class Storage<T extends StateDef> {
|
||||||
getter?: (v: T[K]['default']) => R,
|
getter?: (v: T[K]['default']) => R,
|
||||||
setter?: (v: R) => T[K]['default'],
|
setter?: (v: R) => T[K]['default'],
|
||||||
): {
|
): {
|
||||||
get: () => R;
|
get: () => R;
|
||||||
set: (value: R) => void;
|
set: (value: R) => void;
|
||||||
} {
|
} {
|
||||||
const valueRef = ref(this.state[key]);
|
const valueRef = ref(this.state[key]);
|
||||||
|
|
||||||
const stop = watch(this.reactiveState[key], val => {
|
const stop = watch(this.reactiveState[key], val => {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"name": "misskey-js",
|
"name": "misskey-js",
|
||||||
"version": "2025.2.0",
|
"version": "2025.2.1-alpha.0",
|
||||||
"description": "Misskey SDK for JavaScript",
|
"description": "Misskey SDK for JavaScript",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"main": "./built/index.js",
|
"main": "./built/index.js",
|
||||||
|
|
344
pnpm-lock.yaml
344
pnpm-lock.yaml
|
@ -192,8 +192,8 @@ importers:
|
||||||
specifier: 1.20.3
|
specifier: 1.20.3
|
||||||
version: 1.20.3
|
version: 1.20.3
|
||||||
bullmq:
|
bullmq:
|
||||||
specifier: 5.41.0
|
specifier: 5.41.1
|
||||||
version: 5.41.0
|
version: 5.41.1
|
||||||
cacheable-lookup:
|
cacheable-lookup:
|
||||||
specifier: 7.0.0
|
specifier: 7.0.0
|
||||||
version: 7.0.0
|
version: 7.0.0
|
||||||
|
@ -274,7 +274,7 @@ importers:
|
||||||
version: 4.1.0
|
version: 4.1.0
|
||||||
jsdom:
|
jsdom:
|
||||||
specifier: 26.0.0
|
specifier: 26.0.0
|
||||||
version: 26.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
version: 26.0.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5)
|
||||||
json5:
|
json5:
|
||||||
specifier: 2.2.3
|
specifier: 2.2.3
|
||||||
version: 2.2.3
|
version: 2.2.3
|
||||||
|
@ -818,8 +818,8 @@ importers:
|
||||||
specifier: 1.85.0
|
specifier: 1.85.0
|
||||||
version: 1.85.0
|
version: 1.85.0
|
||||||
shiki:
|
shiki:
|
||||||
specifier: 2.3.2
|
specifier: 2.4.1
|
||||||
version: 2.3.2
|
version: 2.4.1
|
||||||
strict-event-emitter-types:
|
strict-event-emitter-types:
|
||||||
specifier: 2.0.0
|
specifier: 2.0.0
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
|
@ -961,7 +961,7 @@ importers:
|
||||||
version: 8.24.0(eslint@9.20.1)(typescript@5.7.3)
|
version: 8.24.0(eslint@9.20.1)(typescript@5.7.3)
|
||||||
'@vitest/coverage-v8':
|
'@vitest/coverage-v8':
|
||||||
specifier: 3.0.5
|
specifier: 3.0.5
|
||||||
version: 3.0.5(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2))
|
version: 3.0.5(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2))
|
||||||
'@vue/runtime-core':
|
'@vue/runtime-core':
|
||||||
specifier: 3.5.13
|
specifier: 3.5.13
|
||||||
version: 3.5.13
|
version: 3.5.13
|
||||||
|
@ -1027,19 +1027,19 @@ importers:
|
||||||
version: 1.0.3
|
version: 1.0.3
|
||||||
vitest:
|
vitest:
|
||||||
specifier: 3.0.5
|
specifier: 3.0.5
|
||||||
version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2)
|
version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2)
|
||||||
vitest-fetch-mock:
|
vitest-fetch-mock:
|
||||||
specifier: 0.4.3
|
specifier: 0.4.3
|
||||||
version: 0.4.3(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2))
|
version: 0.4.3(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2))
|
||||||
vue-component-type-helpers:
|
vue-component-type-helpers:
|
||||||
specifier: 2.2.0
|
specifier: 2.2.2
|
||||||
version: 2.2.0
|
version: 2.2.2
|
||||||
vue-eslint-parser:
|
vue-eslint-parser:
|
||||||
specifier: 9.4.3
|
specifier: 9.4.3
|
||||||
version: 9.4.3(eslint@9.20.1)
|
version: 9.4.3(eslint@9.20.1)
|
||||||
vue-tsc:
|
vue-tsc:
|
||||||
specifier: 2.2.0
|
specifier: 2.2.2
|
||||||
version: 2.2.0(typescript@5.7.3)
|
version: 2.2.2(typescript@5.7.3)
|
||||||
|
|
||||||
packages/frontend-embed:
|
packages/frontend-embed:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -1098,8 +1098,8 @@ importers:
|
||||||
specifier: 1.85.0
|
specifier: 1.85.0
|
||||||
version: 1.85.0
|
version: 1.85.0
|
||||||
shiki:
|
shiki:
|
||||||
specifier: 2.3.2
|
specifier: 2.4.1
|
||||||
version: 2.3.2
|
version: 2.4.1
|
||||||
tinycolor2:
|
tinycolor2:
|
||||||
specifier: 1.6.0
|
specifier: 1.6.0
|
||||||
version: 1.6.0
|
version: 1.6.0
|
||||||
|
@ -1154,7 +1154,7 @@ importers:
|
||||||
version: 8.24.0(eslint@9.20.1)(typescript@5.7.3)
|
version: 8.24.0(eslint@9.20.1)(typescript@5.7.3)
|
||||||
'@vitest/coverage-v8':
|
'@vitest/coverage-v8':
|
||||||
specifier: 3.0.5
|
specifier: 3.0.5
|
||||||
version: 3.0.5(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2))
|
version: 3.0.5(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2))
|
||||||
'@vue/runtime-core':
|
'@vue/runtime-core':
|
||||||
specifier: 3.5.13
|
specifier: 3.5.13
|
||||||
version: 3.5.13
|
version: 3.5.13
|
||||||
|
@ -1198,14 +1198,14 @@ importers:
|
||||||
specifier: 1.0.3
|
specifier: 1.0.3
|
||||||
version: 1.0.3
|
version: 1.0.3
|
||||||
vue-component-type-helpers:
|
vue-component-type-helpers:
|
||||||
specifier: 2.2.0
|
specifier: 2.2.2
|
||||||
version: 2.2.0
|
version: 2.2.2
|
||||||
vue-eslint-parser:
|
vue-eslint-parser:
|
||||||
specifier: 9.4.3
|
specifier: 9.4.3
|
||||||
version: 9.4.3(eslint@9.20.1)
|
version: 9.4.3(eslint@9.20.1)
|
||||||
vue-tsc:
|
vue-tsc:
|
||||||
specifier: 2.2.0
|
specifier: 2.2.2
|
||||||
version: 2.2.0(typescript@5.7.3)
|
version: 2.2.2(typescript@5.7.3)
|
||||||
|
|
||||||
packages/frontend-shared:
|
packages/frontend-shared:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -3569,26 +3569,26 @@ packages:
|
||||||
engines: {node: '>=14.18'}
|
engines: {node: '>=14.18'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
'@shikijs/core@2.3.2':
|
'@shikijs/core@2.4.1':
|
||||||
resolution: {integrity: sha512-s7vyL3LzUKm3Qwf36zRWlavX9BQMZTIq9B1almM63M5xBuSldnsTHCmsXzoF/Kyw4k7Xgas7yAyJz9VR/vcP1A==}
|
resolution: {integrity: sha512-c7AkRsCpSVjKHsTwuvRVMEAdADq4Z1KoodcS4LaIqMzBTM0+Q572VRk1PIxtzaMtdiHlRPO6mH5iPdJoTV59mQ==}
|
||||||
|
|
||||||
'@shikijs/engine-javascript@2.3.2':
|
'@shikijs/engine-javascript@2.4.1':
|
||||||
resolution: {integrity: sha512-w3IEMu5HfL/OaJTsMbIfZ1HRPnWVYRANeDtmsdIIEgUOcLjzFJFQwlnkckGjKHekEzNqlMLbgB/twnfZ/EEAGg==}
|
resolution: {integrity: sha512-2DnVilsUCgA81lnxt67dEZf2C6hdRzDYIs7yG33yWQIjljAxlXi3MKt7n0BXKr6uT5sZ0JdtX/+Pq2FN31YVdQ==}
|
||||||
|
|
||||||
'@shikijs/engine-oniguruma@2.3.2':
|
'@shikijs/engine-oniguruma@2.4.1':
|
||||||
resolution: {integrity: sha512-vikMY1TroyZXUHIXbMnvY/mjtOxMn+tavcfAeQPgWS9FHcgFSUoEtywF5B5sOLb9NXb8P2vb7odkh3nj15/00A==}
|
resolution: {integrity: sha512-PvN76WM2HjmSbNQmLl8Jzm3h8Hsf/g9kKs3jPWKD6uMpCfk+M3HalWONz85zQF4lqrI3lamMTV5pHcOVSswpqg==}
|
||||||
|
|
||||||
'@shikijs/langs@2.3.2':
|
'@shikijs/langs@2.4.1':
|
||||||
resolution: {integrity: sha512-UqI6bSxFzhexIJficZLKeB1L2Sc3xoNiAV0yHpfbg5meck93du+EKQtsGbBv66Ki53XZPhnR/kYkOr85elIuFw==}
|
resolution: {integrity: sha512-MLpCfw8gqWAgYvkV4Qsh/yjJirGhqwBQqtNgNrYOES7IoMTsthQ2x/8+JEO1hIDyS3qJPSooxCGQpX7EXsiFpQ==}
|
||||||
|
|
||||||
'@shikijs/themes@2.3.2':
|
'@shikijs/themes@2.4.1':
|
||||||
resolution: {integrity: sha512-QAh7D/hhfYKHibkG2tti8vxNt3ekAH5EqkXJeJbTh7FGvTCWEI7BHqNCtMdjFvZ0vav5nvUgdvA7/HI7pfsB4w==}
|
resolution: {integrity: sha512-U+Yt03Qfy9251BjQkPf9IkbiRypCqLcxfeCkk9cjqAuAhgM6G+v8GRHB+7VR1OQu92sWkhmk+zdbJAhgAnnL8g==}
|
||||||
|
|
||||||
'@shikijs/types@2.3.2':
|
'@shikijs/types@2.4.1':
|
||||||
resolution: {integrity: sha512-CBaMY+a3pepyC4SETi7+bSzO0f6hxEQJUUuS4uD7zppzjmrN4ZRtBqxaT+wOan26CR9eeJ5iBhc4qvWEwn7Eeg==}
|
resolution: {integrity: sha512-fE73tqCjiHIDUq7SYU8i4d9TyOcJh2u2J8aQGqQs0KkFg6FbBEQoDiBASMM5Vxqag1VS58y+MHLBuSQmwtB4Og==}
|
||||||
|
|
||||||
'@shikijs/vscode-textmate@10.0.1':
|
'@shikijs/vscode-textmate@10.0.2':
|
||||||
resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==}
|
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
|
||||||
|
|
||||||
'@sideway/address@4.1.4':
|
'@sideway/address@4.1.4':
|
||||||
resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==}
|
resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==}
|
||||||
|
@ -4763,15 +4763,9 @@ packages:
|
||||||
'@volar/typescript@2.4.11':
|
'@volar/typescript@2.4.11':
|
||||||
resolution: {integrity: sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==}
|
resolution: {integrity: sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==}
|
||||||
|
|
||||||
'@vue/compiler-core@3.5.12':
|
|
||||||
resolution: {integrity: sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==}
|
|
||||||
|
|
||||||
'@vue/compiler-core@3.5.13':
|
'@vue/compiler-core@3.5.13':
|
||||||
resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==}
|
resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==}
|
||||||
|
|
||||||
'@vue/compiler-dom@3.5.12':
|
|
||||||
resolution: {integrity: sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==}
|
|
||||||
|
|
||||||
'@vue/compiler-dom@3.5.13':
|
'@vue/compiler-dom@3.5.13':
|
||||||
resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==}
|
resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==}
|
||||||
|
|
||||||
|
@ -4792,8 +4786,8 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@vue/language-core@2.2.0':
|
'@vue/language-core@2.2.2':
|
||||||
resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==}
|
resolution: {integrity: sha512-QotO41kurE5PLf3vrNgGTk3QswO2PdUFjBwNiOi7zMmGhwb25PSTh9hD1MCgKC06AVv+8sZQvlL3Do4TTVHSiQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '*'
|
typescript: '*'
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
|
@ -4814,9 +4808,6 @@ packages:
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vue: 3.5.13
|
vue: 3.5.13
|
||||||
|
|
||||||
'@vue/shared@3.5.12':
|
|
||||||
resolution: {integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==}
|
|
||||||
|
|
||||||
'@vue/shared@3.5.13':
|
'@vue/shared@3.5.13':
|
||||||
resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==}
|
resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==}
|
||||||
|
|
||||||
|
@ -4971,8 +4962,8 @@ packages:
|
||||||
ajv@8.17.1:
|
ajv@8.17.1:
|
||||||
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
|
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
|
||||||
|
|
||||||
alien-signals@0.4.14:
|
alien-signals@1.0.3:
|
||||||
resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==}
|
resolution: {integrity: sha512-zQOh3wAYK5ujENxvBBR3CFGF/b6afaSzZ/c9yNhJ1ENrGHETvpUuKQsa93Qrclp0+PzTF93MaZ7scVp1uUozhA==}
|
||||||
|
|
||||||
ansi-colors@4.1.3:
|
ansi-colors@4.1.3:
|
||||||
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
|
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
|
||||||
|
@ -5244,6 +5235,9 @@ packages:
|
||||||
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
|
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
bl@4.1.0:
|
||||||
|
resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
|
||||||
|
|
||||||
blob-util@2.0.2:
|
blob-util@2.0.2:
|
||||||
resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==}
|
resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==}
|
||||||
|
|
||||||
|
@ -5321,8 +5315,8 @@ packages:
|
||||||
resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==}
|
resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==}
|
||||||
engines: {node: '>=6.14.2'}
|
engines: {node: '>=6.14.2'}
|
||||||
|
|
||||||
bullmq@5.41.0:
|
bullmq@5.41.1:
|
||||||
resolution: {integrity: sha512-GGfKu2DHGIvbnMtQjR/82wvWsdCaGxN5JGR3pvKd1mkDI9DsWn8r0+pAzZ6Y4ImWXFaetaAqywOhv2Ik0R2m3g==}
|
resolution: {integrity: sha512-bVQGR4ARM+wRJSw66114AKwO8SwS2ZF5TIvwQ9NL6Iepq6f8jnG8EjMMXL8J1pyR1eNz5bOikPeED/8ErLU6FQ==}
|
||||||
|
|
||||||
buraha@0.0.1:
|
buraha@0.0.1:
|
||||||
resolution: {integrity: sha512-G563A0mTbzknm2jDaNxfZuNKIdeArs8T+XQN6t+KbmgnOoevXSXhKDkyf8Md/36Jrx99ikwbCag37VGe3myExQ==}
|
resolution: {integrity: sha512-G563A0mTbzknm2jDaNxfZuNKIdeArs8T+XQN6t+KbmgnOoevXSXhKDkyf8Md/36Jrx99ikwbCag37VGe3myExQ==}
|
||||||
|
@ -5404,6 +5398,10 @@ packages:
|
||||||
canvas-confetti@1.9.3:
|
canvas-confetti@1.9.3:
|
||||||
resolution: {integrity: sha512-rFfTURMvmVEX1gyXFgn5QMn81bYk70qa0HLzcIOSVEyl57n6o9ItHeBtUSWdvKAPY0xlvBHno4/v3QPrT83q9g==}
|
resolution: {integrity: sha512-rFfTURMvmVEX1gyXFgn5QMn81bYk70qa0HLzcIOSVEyl57n6o9ItHeBtUSWdvKAPY0xlvBHno4/v3QPrT83q9g==}
|
||||||
|
|
||||||
|
canvas@3.1.0:
|
||||||
|
resolution: {integrity: sha512-tTj3CqqukVJ9NgSahykNwtGda7V33VLObwrHfzT0vqJXu7J4d4C/7kQQW3fOEGDfZZoILPut5H00gOjyttPGyg==}
|
||||||
|
engines: {node: ^18.12.0 || >= 20.9.0}
|
||||||
|
|
||||||
caseless@0.12.0:
|
caseless@0.12.0:
|
||||||
resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==}
|
resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==}
|
||||||
|
|
||||||
|
@ -5502,6 +5500,9 @@ packages:
|
||||||
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
|
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
|
||||||
engines: {node: '>= 8.10.0'}
|
engines: {node: '>= 8.10.0'}
|
||||||
|
|
||||||
|
chownr@1.1.4:
|
||||||
|
resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
|
||||||
|
|
||||||
chownr@2.0.0:
|
chownr@2.0.0:
|
||||||
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
|
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
@ -5956,6 +5957,10 @@ packages:
|
||||||
deep-equal@2.2.0:
|
deep-equal@2.2.0:
|
||||||
resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==}
|
resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==}
|
||||||
|
|
||||||
|
deep-extend@0.6.0:
|
||||||
|
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
|
||||||
|
engines: {node: '>=4.0.0'}
|
||||||
|
|
||||||
deep-is@0.1.4:
|
deep-is@0.1.4:
|
||||||
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
|
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
|
||||||
|
|
||||||
|
@ -6455,6 +6460,10 @@ packages:
|
||||||
resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
|
resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
|
||||||
engines: {node: '>= 0.8.0'}
|
engines: {node: '>= 0.8.0'}
|
||||||
|
|
||||||
|
expand-template@2.0.3:
|
||||||
|
resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
|
||||||
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
expect-type@1.1.0:
|
expect-type@1.1.0:
|
||||||
resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==}
|
resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==}
|
||||||
engines: {node: '>=12.0.0'}
|
engines: {node: '>=12.0.0'}
|
||||||
|
@ -6700,6 +6709,9 @@ packages:
|
||||||
from@0.1.7:
|
from@0.1.7:
|
||||||
resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==}
|
resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==}
|
||||||
|
|
||||||
|
fs-constants@1.0.0:
|
||||||
|
resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
|
||||||
|
|
||||||
fs-extra@11.3.0:
|
fs-extra@11.3.0:
|
||||||
resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==}
|
resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==}
|
||||||
engines: {node: '>=14.14'}
|
engines: {node: '>=14.14'}
|
||||||
|
@ -6807,6 +6819,9 @@ packages:
|
||||||
getpass@0.1.7:
|
getpass@0.1.7:
|
||||||
resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==}
|
resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==}
|
||||||
|
|
||||||
|
github-from-package@0.0.0:
|
||||||
|
resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
|
||||||
|
|
||||||
glob-parent@5.1.2:
|
glob-parent@5.1.2:
|
||||||
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
|
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
|
@ -8229,6 +8244,9 @@ packages:
|
||||||
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
|
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
|
||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
|
|
||||||
|
mkdirp-classic@0.5.3:
|
||||||
|
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
|
||||||
|
|
||||||
mkdirp@0.5.6:
|
mkdirp@0.5.6:
|
||||||
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
|
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
@ -8319,6 +8337,9 @@ packages:
|
||||||
engines: {node: ^18 || >=20}
|
engines: {node: ^18 || >=20}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
napi-build-utils@2.0.0:
|
||||||
|
resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==}
|
||||||
|
|
||||||
natural-compare@1.4.0:
|
natural-compare@1.4.0:
|
||||||
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
|
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
|
||||||
|
|
||||||
|
@ -9072,6 +9093,11 @@ packages:
|
||||||
postgres-range@1.1.3:
|
postgres-range@1.1.3:
|
||||||
resolution: {integrity: sha512-VdlZoocy5lCP0c/t66xAfclglEapXPCIVhqqJRncYpvbCgImF0w67aPKfbqUMr72tO2k5q0TdTZwCLjPTI6C9g==}
|
resolution: {integrity: sha512-VdlZoocy5lCP0c/t66xAfclglEapXPCIVhqqJRncYpvbCgImF0w67aPKfbqUMr72tO2k5q0TdTZwCLjPTI6C9g==}
|
||||||
|
|
||||||
|
prebuild-install@7.1.3:
|
||||||
|
resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
prelude-ls@1.2.1:
|
prelude-ls@1.2.1:
|
||||||
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
|
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
|
||||||
engines: {node: '>= 0.8.0'}
|
engines: {node: '>= 0.8.0'}
|
||||||
|
@ -9292,6 +9318,10 @@ packages:
|
||||||
resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==}
|
resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==}
|
||||||
engines: {node: '>= 0.8'}
|
engines: {node: '>= 0.8'}
|
||||||
|
|
||||||
|
rc@1.2.8:
|
||||||
|
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
rdf-canonize@3.4.0:
|
rdf-canonize@3.4.0:
|
||||||
resolution: {integrity: sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA==}
|
resolution: {integrity: sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
@ -9651,8 +9681,8 @@ packages:
|
||||||
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
|
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
shiki@2.3.2:
|
shiki@2.4.1:
|
||||||
resolution: {integrity: sha512-UZhz/gsUz7DHFbQBOJP7eXqvKyYvMGramxQiSDc83M/7OkWm6OdVHAReEc3vMLh6L6TRhgL9dvhXz9XDkCDaaw==}
|
resolution: {integrity: sha512-1MmgQgSSx04OSUPqTg7deJudOL4vXpkNEJHlzKEoVNOLFUmXPB/vRvJoLxzy/Un+UIp4zryXJcWDUAUTOSbDyw==}
|
||||||
|
|
||||||
shimmer@1.2.1:
|
shimmer@1.2.1:
|
||||||
resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==}
|
resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==}
|
||||||
|
@ -9671,6 +9701,12 @@ packages:
|
||||||
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
|
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
|
|
||||||
|
simple-concat@1.0.1:
|
||||||
|
resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
|
||||||
|
|
||||||
|
simple-get@4.0.1:
|
||||||
|
resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
|
||||||
|
|
||||||
simple-oauth2@5.1.0:
|
simple-oauth2@5.1.0:
|
||||||
resolution: {integrity: sha512-gWDa38Ccm4MwlG5U7AlcJxPv3lvr80dU7ARJWrGdgvOKyzSj1gr3GBPN1rABTedAYvC/LsGYoFuFxwDBPtGEbw==}
|
resolution: {integrity: sha512-gWDa38Ccm4MwlG5U7AlcJxPv3lvr80dU7ARJWrGdgvOKyzSj1gr3GBPN1rABTedAYvC/LsGYoFuFxwDBPtGEbw==}
|
||||||
|
|
||||||
|
@ -10033,6 +10069,10 @@ packages:
|
||||||
resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
|
resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
|
strip-json-comments@2.0.1:
|
||||||
|
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
strip-json-comments@3.1.1:
|
strip-json-comments@3.1.1:
|
||||||
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
@ -10088,6 +10128,13 @@ packages:
|
||||||
os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android]
|
os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android]
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
tar-fs@2.1.2:
|
||||||
|
resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==}
|
||||||
|
|
||||||
|
tar-stream@2.2.0:
|
||||||
|
resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
|
||||||
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
tar-stream@3.1.6:
|
tar-stream@3.1.6:
|
||||||
resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==}
|
resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==}
|
||||||
|
|
||||||
|
@ -10726,8 +10773,8 @@ packages:
|
||||||
vue-component-type-helpers@2.0.16:
|
vue-component-type-helpers@2.0.16:
|
||||||
resolution: {integrity: sha512-qisL/iAfdO++7w+SsfYQJVPj6QKvxp4i1MMxvsNO41z/8zu3KuAw9LkhKUfP/kcOWGDxESp+pQObWppXusejCA==}
|
resolution: {integrity: sha512-qisL/iAfdO++7w+SsfYQJVPj6QKvxp4i1MMxvsNO41z/8zu3KuAw9LkhKUfP/kcOWGDxESp+pQObWppXusejCA==}
|
||||||
|
|
||||||
vue-component-type-helpers@2.2.0:
|
vue-component-type-helpers@2.2.2:
|
||||||
resolution: {integrity: sha512-cYrAnv2me7bPDcg9kIcGwjJiSB6Qyi08+jLDo9yuvoFQjzHiPTzML7RnkJB1+3P6KMsX/KbCD4QE3Tv/knEllw==}
|
resolution: {integrity: sha512-6lLY+n2xz2kCYshl59mL6gy8OUUTmkscmDFMO8i7Lj+QKwgnIFUZmM1i/iTYObtrczZVdw7UakPqDTGwVSGaRg==}
|
||||||
|
|
||||||
vue-component-type-helpers@2.2.2:
|
vue-component-type-helpers@2.2.2:
|
||||||
resolution: {integrity: sha512-6lLY+n2xz2kCYshl59mL6gy8OUUTmkscmDFMO8i7Lj+QKwgnIFUZmM1i/iTYObtrczZVdw7UakPqDTGwVSGaRg==}
|
resolution: {integrity: sha512-6lLY+n2xz2kCYshl59mL6gy8OUUTmkscmDFMO8i7Lj+QKwgnIFUZmM1i/iTYObtrczZVdw7UakPqDTGwVSGaRg==}
|
||||||
|
@ -10762,8 +10809,8 @@ packages:
|
||||||
vue-template-compiler@2.7.14:
|
vue-template-compiler@2.7.14:
|
||||||
resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==}
|
resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==}
|
||||||
|
|
||||||
vue-tsc@2.2.0:
|
vue-tsc@2.2.2:
|
||||||
resolution: {integrity: sha512-gtmM1sUuJ8aSb0KoAFmK9yMxb8TxjewmxqTJ1aKphD5Cbu0rULFY6+UQT51zW7SpUcenfPUuflKyVwyx9Qdnxg==}
|
resolution: {integrity: sha512-1icPKkxAA5KTAaSwg0wVWdE48EdsH8fgvcbAiqojP4jXKl6LEM3soiW1aG/zrWrFt8Mw1ncG2vG1PvpZpVfehA==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '>=5.0.0'
|
typescript: '>=5.0.0'
|
||||||
|
@ -13579,40 +13626,40 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@shikijs/core@2.3.2':
|
'@shikijs/core@2.4.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@shikijs/engine-javascript': 2.3.2
|
'@shikijs/engine-javascript': 2.4.1
|
||||||
'@shikijs/engine-oniguruma': 2.3.2
|
'@shikijs/engine-oniguruma': 2.4.1
|
||||||
'@shikijs/types': 2.3.2
|
'@shikijs/types': 2.4.1
|
||||||
'@shikijs/vscode-textmate': 10.0.1
|
'@shikijs/vscode-textmate': 10.0.2
|
||||||
'@types/hast': 3.0.4
|
'@types/hast': 3.0.4
|
||||||
hast-util-to-html: 9.0.4
|
hast-util-to-html: 9.0.4
|
||||||
|
|
||||||
'@shikijs/engine-javascript@2.3.2':
|
'@shikijs/engine-javascript@2.4.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@shikijs/types': 2.3.2
|
'@shikijs/types': 2.4.1
|
||||||
'@shikijs/vscode-textmate': 10.0.1
|
'@shikijs/vscode-textmate': 10.0.2
|
||||||
oniguruma-to-es: 3.1.0
|
oniguruma-to-es: 3.1.0
|
||||||
|
|
||||||
'@shikijs/engine-oniguruma@2.3.2':
|
'@shikijs/engine-oniguruma@2.4.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@shikijs/types': 2.3.2
|
'@shikijs/types': 2.4.1
|
||||||
'@shikijs/vscode-textmate': 10.0.1
|
'@shikijs/vscode-textmate': 10.0.2
|
||||||
|
|
||||||
'@shikijs/langs@2.3.2':
|
'@shikijs/langs@2.4.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@shikijs/types': 2.3.2
|
'@shikijs/types': 2.4.1
|
||||||
|
|
||||||
'@shikijs/themes@2.3.2':
|
'@shikijs/themes@2.4.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@shikijs/types': 2.3.2
|
'@shikijs/types': 2.4.1
|
||||||
|
|
||||||
'@shikijs/types@2.3.2':
|
'@shikijs/types@2.4.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@shikijs/vscode-textmate': 10.0.1
|
'@shikijs/vscode-textmate': 10.0.2
|
||||||
'@types/hast': 3.0.4
|
'@types/hast': 3.0.4
|
||||||
|
|
||||||
'@shikijs/vscode-textmate@10.0.1': {}
|
'@shikijs/vscode-textmate@10.0.2': {}
|
||||||
|
|
||||||
'@sideway/address@4.1.4':
|
'@sideway/address@4.1.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -14999,7 +15046,7 @@ snapshots:
|
||||||
vite: 6.1.0(@types/node@22.13.4)(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2)
|
vite: 6.1.0(@types/node@22.13.4)(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2)
|
||||||
vue: 3.5.13(typescript@5.7.3)
|
vue: 3.5.13(typescript@5.7.3)
|
||||||
|
|
||||||
'@vitest/coverage-v8@3.0.5(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2))':
|
'@vitest/coverage-v8@3.0.5(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@ampproject/remapping': 2.3.0
|
'@ampproject/remapping': 2.3.0
|
||||||
'@bcoe/v8-coverage': 1.0.2
|
'@bcoe/v8-coverage': 1.0.2
|
||||||
|
@ -15013,7 +15060,7 @@ snapshots:
|
||||||
std-env: 3.8.0
|
std-env: 3.8.0
|
||||||
test-exclude: 7.0.1
|
test-exclude: 7.0.1
|
||||||
tinyrainbow: 2.0.0
|
tinyrainbow: 2.0.0
|
||||||
vitest: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2)
|
vitest: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
@ -15115,14 +15162,6 @@ snapshots:
|
||||||
path-browserify: 1.0.1
|
path-browserify: 1.0.1
|
||||||
vscode-uri: 3.0.8
|
vscode-uri: 3.0.8
|
||||||
|
|
||||||
'@vue/compiler-core@3.5.12':
|
|
||||||
dependencies:
|
|
||||||
'@babel/parser': 7.25.6
|
|
||||||
'@vue/shared': 3.5.12
|
|
||||||
entities: 4.5.0
|
|
||||||
estree-walker: 2.0.2
|
|
||||||
source-map-js: 1.2.1
|
|
||||||
|
|
||||||
'@vue/compiler-core@3.5.13':
|
'@vue/compiler-core@3.5.13':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.25.6
|
'@babel/parser': 7.25.6
|
||||||
|
@ -15131,11 +15170,6 @@ snapshots:
|
||||||
estree-walker: 2.0.2
|
estree-walker: 2.0.2
|
||||||
source-map-js: 1.2.1
|
source-map-js: 1.2.1
|
||||||
|
|
||||||
'@vue/compiler-dom@3.5.12':
|
|
||||||
dependencies:
|
|
||||||
'@vue/compiler-core': 3.5.12
|
|
||||||
'@vue/shared': 3.5.12
|
|
||||||
|
|
||||||
'@vue/compiler-dom@3.5.13':
|
'@vue/compiler-dom@3.5.13':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vue/compiler-core': 3.5.13
|
'@vue/compiler-core': 3.5.13
|
||||||
|
@ -15175,13 +15209,13 @@ snapshots:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.7.3
|
typescript: 5.7.3
|
||||||
|
|
||||||
'@vue/language-core@2.2.0(typescript@5.7.3)':
|
'@vue/language-core@2.2.2(typescript@5.7.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@volar/language-core': 2.4.11
|
'@volar/language-core': 2.4.11
|
||||||
'@vue/compiler-dom': 3.5.12
|
'@vue/compiler-dom': 3.5.13
|
||||||
'@vue/compiler-vue2': 2.7.16
|
'@vue/compiler-vue2': 2.7.16
|
||||||
'@vue/shared': 3.5.12
|
'@vue/shared': 3.5.13
|
||||||
alien-signals: 0.4.14
|
alien-signals: 1.0.3
|
||||||
minimatch: 9.0.4
|
minimatch: 9.0.4
|
||||||
muggle-string: 0.4.1
|
muggle-string: 0.4.1
|
||||||
path-browserify: 1.0.1
|
path-browserify: 1.0.1
|
||||||
|
@ -15210,8 +15244,6 @@ snapshots:
|
||||||
'@vue/shared': 3.5.13
|
'@vue/shared': 3.5.13
|
||||||
vue: 3.5.13(typescript@5.7.3)
|
vue: 3.5.13(typescript@5.7.3)
|
||||||
|
|
||||||
'@vue/shared@3.5.12': {}
|
|
||||||
|
|
||||||
'@vue/shared@3.5.13': {}
|
'@vue/shared@3.5.13': {}
|
||||||
|
|
||||||
'@vue/test-utils@2.4.1(@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3))':
|
'@vue/test-utils@2.4.1(@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3))':
|
||||||
|
@ -15401,7 +15433,7 @@ snapshots:
|
||||||
json-schema-traverse: 1.0.0
|
json-schema-traverse: 1.0.0
|
||||||
require-from-string: 2.0.2
|
require-from-string: 2.0.2
|
||||||
|
|
||||||
alien-signals@0.4.14: {}
|
alien-signals@1.0.3: {}
|
||||||
|
|
||||||
ansi-colors@4.1.3: {}
|
ansi-colors@4.1.3: {}
|
||||||
|
|
||||||
|
@ -15722,6 +15754,13 @@ snapshots:
|
||||||
|
|
||||||
binary-extensions@2.2.0: {}
|
binary-extensions@2.2.0: {}
|
||||||
|
|
||||||
|
bl@4.1.0:
|
||||||
|
dependencies:
|
||||||
|
buffer: 5.7.1
|
||||||
|
inherits: 2.0.4
|
||||||
|
readable-stream: 3.6.0
|
||||||
|
optional: true
|
||||||
|
|
||||||
blob-util@2.0.2: {}
|
blob-util@2.0.2: {}
|
||||||
|
|
||||||
bluebird@3.7.2: {}
|
bluebird@3.7.2: {}
|
||||||
|
@ -15819,7 +15858,7 @@ snapshots:
|
||||||
node-gyp-build: 4.6.0
|
node-gyp-build: 4.6.0
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
bullmq@5.41.0:
|
bullmq@5.41.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
cron-parser: 4.9.0
|
cron-parser: 4.9.0
|
||||||
ioredis: 5.5.0
|
ioredis: 5.5.0
|
||||||
|
@ -15927,6 +15966,12 @@ snapshots:
|
||||||
|
|
||||||
canvas-confetti@1.9.3: {}
|
canvas-confetti@1.9.3: {}
|
||||||
|
|
||||||
|
canvas@3.1.0:
|
||||||
|
dependencies:
|
||||||
|
node-addon-api: 7.1.1
|
||||||
|
prebuild-install: 7.1.3
|
||||||
|
optional: true
|
||||||
|
|
||||||
caseless@0.12.0: {}
|
caseless@0.12.0: {}
|
||||||
|
|
||||||
cbor@9.0.2:
|
cbor@9.0.2:
|
||||||
|
@ -16047,6 +16092,9 @@ snapshots:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
|
|
||||||
|
chownr@1.1.4:
|
||||||
|
optional: true
|
||||||
|
|
||||||
chownr@2.0.0: {}
|
chownr@2.0.0: {}
|
||||||
|
|
||||||
chromatic@11.25.2: {}
|
chromatic@11.25.2: {}
|
||||||
|
@ -16547,6 +16595,9 @@ snapshots:
|
||||||
which-collection: 1.0.1
|
which-collection: 1.0.1
|
||||||
which-typed-array: 1.1.11
|
which-typed-array: 1.1.11
|
||||||
|
|
||||||
|
deep-extend@0.6.0:
|
||||||
|
optional: true
|
||||||
|
|
||||||
deep-is@0.1.4: {}
|
deep-is@0.1.4: {}
|
||||||
|
|
||||||
deepmerge@4.2.2: {}
|
deepmerge@4.2.2: {}
|
||||||
|
@ -17262,6 +17313,9 @@ snapshots:
|
||||||
|
|
||||||
exit@0.1.2: {}
|
exit@0.1.2: {}
|
||||||
|
|
||||||
|
expand-template@2.0.3:
|
||||||
|
optional: true
|
||||||
|
|
||||||
expect-type@1.1.0: {}
|
expect-type@1.1.0: {}
|
||||||
|
|
||||||
expect@29.7.0:
|
expect@29.7.0:
|
||||||
|
@ -17596,6 +17650,9 @@ snapshots:
|
||||||
|
|
||||||
from@0.1.7: {}
|
from@0.1.7: {}
|
||||||
|
|
||||||
|
fs-constants@1.0.0:
|
||||||
|
optional: true
|
||||||
|
|
||||||
fs-extra@11.3.0:
|
fs-extra@11.3.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
graceful-fs: 4.2.11
|
graceful-fs: 4.2.11
|
||||||
|
@ -17729,6 +17786,9 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
assert-plus: 1.0.0
|
assert-plus: 1.0.0
|
||||||
|
|
||||||
|
github-from-package@0.0.0:
|
||||||
|
optional: true
|
||||||
|
|
||||||
glob-parent@5.1.2:
|
glob-parent@5.1.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
|
@ -18789,7 +18849,7 @@ snapshots:
|
||||||
|
|
||||||
jsdoc-type-pratt-parser@4.1.0: {}
|
jsdoc-type-pratt-parser@4.1.0: {}
|
||||||
|
|
||||||
jsdom@26.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5):
|
jsdom@26.0.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5):
|
||||||
dependencies:
|
dependencies:
|
||||||
cssstyle: 4.2.1
|
cssstyle: 4.2.1
|
||||||
data-urls: 5.0.0
|
data-urls: 5.0.0
|
||||||
|
@ -18812,6 +18872,8 @@ snapshots:
|
||||||
whatwg-url: 14.1.0
|
whatwg-url: 14.1.0
|
||||||
ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||||
xml-name-validator: 5.0.0
|
xml-name-validator: 5.0.0
|
||||||
|
optionalDependencies:
|
||||||
|
canvas: 3.1.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- bufferutil
|
- bufferutil
|
||||||
- supports-color
|
- supports-color
|
||||||
|
@ -19544,6 +19606,9 @@ snapshots:
|
||||||
minipass: 3.3.6
|
minipass: 3.3.6
|
||||||
yallist: 4.0.0
|
yallist: 4.0.0
|
||||||
|
|
||||||
|
mkdirp-classic@0.5.3:
|
||||||
|
optional: true
|
||||||
|
|
||||||
mkdirp@0.5.6:
|
mkdirp@0.5.6:
|
||||||
dependencies:
|
dependencies:
|
||||||
minimist: 1.2.8
|
minimist: 1.2.8
|
||||||
|
@ -19642,6 +19707,9 @@ snapshots:
|
||||||
|
|
||||||
nanoid@5.1.0: {}
|
nanoid@5.1.0: {}
|
||||||
|
|
||||||
|
napi-build-utils@2.0.0:
|
||||||
|
optional: true
|
||||||
|
|
||||||
natural-compare@1.4.0: {}
|
natural-compare@1.4.0: {}
|
||||||
|
|
||||||
ncp@2.0.0: {}
|
ncp@2.0.0: {}
|
||||||
|
@ -20373,6 +20441,22 @@ snapshots:
|
||||||
|
|
||||||
postgres-range@1.1.3: {}
|
postgres-range@1.1.3: {}
|
||||||
|
|
||||||
|
prebuild-install@7.1.3:
|
||||||
|
dependencies:
|
||||||
|
detect-libc: 2.0.3
|
||||||
|
expand-template: 2.0.3
|
||||||
|
github-from-package: 0.0.0
|
||||||
|
minimist: 1.2.8
|
||||||
|
mkdirp-classic: 0.5.3
|
||||||
|
napi-build-utils: 2.0.0
|
||||||
|
node-abi: 3.62.0
|
||||||
|
pump: 3.0.0
|
||||||
|
rc: 1.2.8
|
||||||
|
simple-get: 4.0.1
|
||||||
|
tar-fs: 2.1.2
|
||||||
|
tunnel-agent: 0.6.0
|
||||||
|
optional: true
|
||||||
|
|
||||||
prelude-ls@1.2.1: {}
|
prelude-ls@1.2.1: {}
|
||||||
|
|
||||||
prettier@3.5.1: {}
|
prettier@3.5.1: {}
|
||||||
|
@ -20606,6 +20690,14 @@ snapshots:
|
||||||
iconv-lite: 0.6.3
|
iconv-lite: 0.6.3
|
||||||
unpipe: 1.0.0
|
unpipe: 1.0.0
|
||||||
|
|
||||||
|
rc@1.2.8:
|
||||||
|
dependencies:
|
||||||
|
deep-extend: 0.6.0
|
||||||
|
ini: 1.3.8
|
||||||
|
minimist: 1.2.8
|
||||||
|
strip-json-comments: 2.0.1
|
||||||
|
optional: true
|
||||||
|
|
||||||
rdf-canonize@3.4.0:
|
rdf-canonize@3.4.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
setimmediate: 1.0.5
|
setimmediate: 1.0.5
|
||||||
|
@ -21070,15 +21162,15 @@ snapshots:
|
||||||
|
|
||||||
shebang-regex@3.0.0: {}
|
shebang-regex@3.0.0: {}
|
||||||
|
|
||||||
shiki@2.3.2:
|
shiki@2.4.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@shikijs/core': 2.3.2
|
'@shikijs/core': 2.4.1
|
||||||
'@shikijs/engine-javascript': 2.3.2
|
'@shikijs/engine-javascript': 2.4.1
|
||||||
'@shikijs/engine-oniguruma': 2.3.2
|
'@shikijs/engine-oniguruma': 2.4.1
|
||||||
'@shikijs/langs': 2.3.2
|
'@shikijs/langs': 2.4.1
|
||||||
'@shikijs/themes': 2.3.2
|
'@shikijs/themes': 2.4.1
|
||||||
'@shikijs/types': 2.3.2
|
'@shikijs/types': 2.4.1
|
||||||
'@shikijs/vscode-textmate': 10.0.1
|
'@shikijs/vscode-textmate': 10.0.2
|
||||||
'@types/hast': 3.0.4
|
'@types/hast': 3.0.4
|
||||||
|
|
||||||
shimmer@1.2.1: {}
|
shimmer@1.2.1: {}
|
||||||
|
@ -21096,6 +21188,16 @@ snapshots:
|
||||||
|
|
||||||
signal-exit@4.1.0: {}
|
signal-exit@4.1.0: {}
|
||||||
|
|
||||||
|
simple-concat@1.0.1:
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
simple-get@4.0.1:
|
||||||
|
dependencies:
|
||||||
|
decompress-response: 6.0.0
|
||||||
|
once: 1.4.0
|
||||||
|
simple-concat: 1.0.1
|
||||||
|
optional: true
|
||||||
|
|
||||||
simple-oauth2@5.1.0:
|
simple-oauth2@5.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@hapi/hoek': 11.0.4
|
'@hapi/hoek': 11.0.4
|
||||||
|
@ -21476,6 +21578,9 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
min-indent: 1.0.1
|
min-indent: 1.0.1
|
||||||
|
|
||||||
|
strip-json-comments@2.0.1:
|
||||||
|
optional: true
|
||||||
|
|
||||||
strip-json-comments@3.1.1: {}
|
strip-json-comments@3.1.1: {}
|
||||||
|
|
||||||
strnum@1.0.5: {}
|
strnum@1.0.5: {}
|
||||||
|
@ -21526,6 +21631,23 @@ snapshots:
|
||||||
|
|
||||||
systeminformation@5.25.11: {}
|
systeminformation@5.25.11: {}
|
||||||
|
|
||||||
|
tar-fs@2.1.2:
|
||||||
|
dependencies:
|
||||||
|
chownr: 1.1.4
|
||||||
|
mkdirp-classic: 0.5.3
|
||||||
|
pump: 3.0.0
|
||||||
|
tar-stream: 2.2.0
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
tar-stream@2.2.0:
|
||||||
|
dependencies:
|
||||||
|
bl: 4.1.0
|
||||||
|
end-of-stream: 1.4.4
|
||||||
|
fs-constants: 1.0.0
|
||||||
|
inherits: 2.0.4
|
||||||
|
readable-stream: 3.6.0
|
||||||
|
optional: true
|
||||||
|
|
||||||
tar-stream@3.1.6:
|
tar-stream@3.1.6:
|
||||||
dependencies:
|
dependencies:
|
||||||
b4a: 1.6.4
|
b4a: 1.6.4
|
||||||
|
@ -22051,11 +22173,11 @@ snapshots:
|
||||||
terser: 5.39.0
|
terser: 5.39.0
|
||||||
tsx: 4.19.2
|
tsx: 4.19.2
|
||||||
|
|
||||||
vitest-fetch-mock@0.4.3(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2)):
|
vitest-fetch-mock@0.4.3(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
vitest: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2)
|
vitest: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2)
|
||||||
|
|
||||||
vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2):
|
vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.0)(jsdom@26.0.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/expect': 3.0.5
|
'@vitest/expect': 3.0.5
|
||||||
'@vitest/mocker': 3.0.5(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(vite@6.1.0(@types/node@22.13.4)(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2))
|
'@vitest/mocker': 3.0.5(msw@2.7.0(@types/node@22.13.4)(typescript@5.7.3))(vite@6.1.0(@types/node@22.13.4)(sass@1.85.0)(terser@5.39.0)(tsx@4.19.2))
|
||||||
|
@ -22081,7 +22203,7 @@ snapshots:
|
||||||
'@types/debug': 4.1.12
|
'@types/debug': 4.1.12
|
||||||
'@types/node': 22.13.4
|
'@types/node': 22.13.4
|
||||||
happy-dom: 17.1.0
|
happy-dom: 17.1.0
|
||||||
jsdom: 26.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
jsdom: 26.0.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- jiti
|
- jiti
|
||||||
- less
|
- less
|
||||||
|
@ -22134,7 +22256,7 @@ snapshots:
|
||||||
|
|
||||||
vue-component-type-helpers@2.0.16: {}
|
vue-component-type-helpers@2.0.16: {}
|
||||||
|
|
||||||
vue-component-type-helpers@2.2.0: {}
|
vue-component-type-helpers@2.2.2: {}
|
||||||
|
|
||||||
vue-component-type-helpers@2.2.2: {}
|
vue-component-type-helpers@2.2.2: {}
|
||||||
|
|
||||||
|
@ -22179,10 +22301,10 @@ snapshots:
|
||||||
de-indent: 1.0.2
|
de-indent: 1.0.2
|
||||||
he: 1.2.0
|
he: 1.2.0
|
||||||
|
|
||||||
vue-tsc@2.2.0(typescript@5.7.3):
|
vue-tsc@2.2.2(typescript@5.7.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@volar/typescript': 2.4.11
|
'@volar/typescript': 2.4.11
|
||||||
'@vue/language-core': 2.2.0(typescript@5.7.3)
|
'@vue/language-core': 2.2.2(typescript@5.7.3)
|
||||||
typescript: 5.7.3
|
typescript: 5.7.3
|
||||||
|
|
||||||
vue@3.5.13(typescript@5.7.3):
|
vue@3.5.13(typescript@5.7.3):
|
||||||
|
|
Loading…
Reference in New Issue