Merge branch 'settings-search' into settings-search-index
This commit is contained in:
commit
692b0761d6
|
@ -1,4 +1,4 @@
|
|||
## Unreleased
|
||||
## 2025.2.1
|
||||
|
||||
### General
|
||||
- Feat: アクセストークン発行時に通知するように
|
||||
|
@ -12,17 +12,19 @@
|
|||
- Enhance: 開発者モードでメニューからファイルIDをコピー出来るように `#15441'
|
||||
- Enhance: ノートに埋め込まれたメディアのコンテキストメニューから管理者用のファイル管理画面を開けるように ( #15440 )
|
||||
- Enhance: リアクションする際に確認ダイアログを表示できるように
|
||||
- Enhance: CWの注釈で入力済みの文字数を表示
|
||||
- Fix: コンディショナルロールを手動で割り当てできる導線を削除 `#13529`
|
||||
- Fix: 埋め込みプレイヤーから外部ページに移動できない問題を修正
|
||||
- Fix: Play の再読込時に UI が以前の状態を引き継いでしまう問題を修正 `#14378`
|
||||
- Fix: カスタム絵文字管理画面(beta)にてisSensitive/localOnlyの絞り込みが上手くいかない問題の修正 ( #15445 )
|
||||
- Fix: CWの注釈が100文字を超えている場合、ノート投稿ボタンを非アクティブに
|
||||
|
||||
### Server
|
||||
- Fix: `following/invalidate`でフォロワーを解除しようとしているユーザーの情報を返すように
|
||||
- Fix: オブジェクトストレージの設定でPrefixを設定していなかった場合nullまたは空文字になる問題を修正
|
||||
- Fix: pgroongaでの検索時にはじめのキーワードのみが検索に使用される問題を修正
|
||||
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/886)
|
||||
|
||||
- Fix: メールアドレスの形式が正しくなければ以降の処理を行わないように
|
||||
|
||||
## 2025.2.0
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "misskey",
|
||||
"version": "2025.2.0",
|
||||
"version": "2025.2.1-alpha.0",
|
||||
"codename": "nasubi",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
|
@ -103,7 +103,7 @@
|
|||
"bcryptjs": "2.4.3",
|
||||
"blurhash": "2.0.5",
|
||||
"body-parser": "1.20.3",
|
||||
"bullmq": "5.41.0",
|
||||
"bullmq": "5.41.1",
|
||||
"cacheable-lookup": "7.0.0",
|
||||
"cbor": "9.0.2",
|
||||
"chalk": "5.4.1",
|
||||
|
|
|
@ -164,6 +164,13 @@ export class EmailService {
|
|||
available: boolean;
|
||||
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({
|
||||
emailVerified: true,
|
||||
email: emailAddress,
|
||||
|
|
|
@ -38,6 +38,14 @@ export class UtilityService {
|
|||
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
|
||||
public isBlockedHost(blockedHosts: string[], host: string | null): boolean {
|
||||
if (host == null) return false;
|
||||
|
|
|
@ -107,12 +107,12 @@ export class InboxProcessorService implements OnApplicationShutdown {
|
|||
|
||||
// それでもわからなければ終了
|
||||
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 がなくても終了
|
||||
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の検証
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
"punycode.js": "2.3.1",
|
||||
"rollup": "4.34.7",
|
||||
"sass": "1.85.0",
|
||||
"shiki": "2.3.2",
|
||||
"shiki": "2.4.1",
|
||||
"tinycolor2": "1.6.0",
|
||||
"tsc-alias": "1.8.10",
|
||||
"tsconfig-paths": "4.2.0",
|
||||
|
@ -63,8 +63,8 @@
|
|||
"prettier": "3.5.1",
|
||||
"start-server-and-test": "2.0.10",
|
||||
"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-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 のため一時的に無効化
|
||||
// See https://github.com/misskey-dev/misskey/pull/15311
|
||||
'js/i18n.ts',
|
||||
'js-built/',
|
||||
],
|
||||
},
|
||||
];
|
||||
|
|
|
@ -134,7 +134,6 @@ export function scrollToBottom(
|
|||
|
||||
export function isTopVisible(el: HTMLElement, tolerance = 1): boolean {
|
||||
const scrollTop = getScrollPosition(el);
|
||||
if (_DEV_) console.log(scrollTop, tolerance, scrollTop <= tolerance);
|
||||
return scrollTop <= tolerance;
|
||||
}
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
"rollup": "4.34.7",
|
||||
"sanitize-html": "2.14.0",
|
||||
"sass": "1.85.0",
|
||||
"shiki": "2.3.2",
|
||||
"shiki": "2.4.1",
|
||||
"strict-event-emitter-types": "2.0.0",
|
||||
"textarea-caret": "3.1.0",
|
||||
"three": "0.173.0",
|
||||
|
@ -133,8 +133,8 @@
|
|||
"vite-plugin-turbosnap": "1.0.3",
|
||||
"vitest": "3.0.5",
|
||||
"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-tsc": "2.2.0"
|
||||
"vue-tsc": "2.2.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,7 +65,10 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
</div>
|
||||
</div>
|
||||
<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 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"/>
|
||||
|
@ -244,6 +247,12 @@ const maxTextLength = computed((): number => {
|
|||
return instance ? instance.maxNoteTextLength : 1000;
|
||||
});
|
||||
|
||||
const cwTextLength = computed((): number => {
|
||||
return cw.value?.length ?? 0;
|
||||
});
|
||||
|
||||
const maxCwTextLength = 100;
|
||||
|
||||
const canPost = computed((): boolean => {
|
||||
return !props.mock && !posting.value && !posted.value &&
|
||||
(
|
||||
|
@ -254,6 +263,7 @@ const canPost = computed((): boolean => {
|
|||
quoteId.value != null
|
||||
) &&
|
||||
(textLength.value <= maxTextLength.value) &&
|
||||
(cwTextLength.value <= maxCwTextLength) &&
|
||||
(files.value.length <= 16) &&
|
||||
(!poll.value || poll.value.choices.length >= 2);
|
||||
});
|
||||
|
@ -1273,12 +1283,34 @@ html[data-color-scheme=light] .preview {
|
|||
}
|
||||
}
|
||||
|
||||
.cwOuter {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.cw {
|
||||
z-index: 1;
|
||||
padding-bottom: 8px;
|
||||
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 {
|
||||
z-index: 1;
|
||||
padding-top: 8px;
|
||||
|
|
|
@ -15,9 +15,9 @@ export type MkABehavior = 'window' | 'browser' | null;
|
|||
|
||||
<script lang="ts" setup>
|
||||
import { computed, inject, shallowRef } from 'vue';
|
||||
import { url } from '@@/js/config.js';
|
||||
import * as os from '@/os.js';
|
||||
import { copyToClipboard } from '@/scripts/copy-to-clipboard.js';
|
||||
import { url } from '@@/js/config.js';
|
||||
import { i18n } from '@/i18n.js';
|
||||
import { useRouter } from '@/router/supplier.js';
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
// NIRAX --- A lightweight router
|
||||
|
||||
import { onMounted, shallowRef } from 'vue';
|
||||
import type { Component, ShallowRef } from 'vue';
|
||||
import { EventEmitter } from 'eventemitter3';
|
||||
import type { Component, ShallowRef } from 'vue';
|
||||
|
||||
function safeURIDecode(str: string): string {
|
||||
try {
|
||||
|
@ -242,8 +242,6 @@ export class Router extends EventEmitter<RouterEvent> implements IRouter {
|
|||
hash,
|
||||
};
|
||||
|
||||
if (_DEV_) console.log('Routing: ', path, queryString);
|
||||
|
||||
function check(routes: RouteDef[], _parts: string[]): Resolved | null {
|
||||
forEachRouteLoop:
|
||||
for (const route of routes) {
|
||||
|
|
|
@ -4,7 +4,12 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
-->
|
||||
|
||||
<template>
|
||||
<div class="_gaps_m">
|
||||
<MkSearchSection :label="i18n.ts.general" :keywords="['general']" icon="ti ti-adjustments">
|
||||
<div class="_gaps_m">
|
||||
<MkSearchMarker
|
||||
:label="i18n.ts.uiLanguage"
|
||||
:keywords="['language']"
|
||||
>
|
||||
<MkSelect v-model="lang">
|
||||
<template #label>{{ i18n.ts.uiLanguage }}</template>
|
||||
<option v-for="x in langs" :key="x[0]" :value="x[0]">{{ x[1] }}</option>
|
||||
|
@ -16,7 +21,12 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
</I18n>
|
||||
</template>
|
||||
</MkSelect>
|
||||
</MkSearchMarker>
|
||||
|
||||
<MkSearchMarker
|
||||
:label="i18n.ts.overridedDeviceKind"
|
||||
:keywords="['device', 'type', 'kind', 'smartphone', 'tablet', 'desktop']"
|
||||
>
|
||||
<MkRadios v-model="overridedDeviceKind">
|
||||
<template #label>{{ i18n.ts.overridedDeviceKind }}</template>
|
||||
<option :value="null">{{ i18n.ts.auto }}</option>
|
||||
|
@ -24,60 +34,158 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<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>
|
||||
<div class="_gaps_s">
|
||||
<MkSearchMarker
|
||||
:label="i18n.ts.showFixedPostForm"
|
||||
:keywords="['post', 'form', 'timeline']"
|
||||
>
|
||||
<MkSwitch v-model="showFixedPostForm">{{ i18n.ts.showFixedPostForm }}</MkSwitch>
|
||||
</MkSearchMarker>
|
||||
|
||||
<MkSearchMarker
|
||||
:label="i18n.ts.showFixedPostFormInChannel"
|
||||
:keywords="['post', 'form', 'timeline', 'channel']"
|
||||
>
|
||||
<MkSwitch v-model="showFixedPostFormInChannel">{{ i18n.ts.showFixedPostFormInChannel }}</MkSwitch>
|
||||
</MkSearchMarker>
|
||||
|
||||
<MkSearchMarker
|
||||
:label="i18n.ts.pinnedList"
|
||||
:keywords="['pinned', 'list']"
|
||||
>
|
||||
<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>
|
||||
</FormSection>
|
||||
|
||||
<MkSearchSection :label="i18n.ts.displayOfNote" :keywords="['note', 'display']">
|
||||
<FormSection>
|
||||
<template #label>{{ i18n.ts.displayOfNote }}</template>
|
||||
|
||||
<div class="_gaps_m">
|
||||
<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>
|
||||
|
||||
<MkSearchMarker
|
||||
:label="i18n.ts.showNoteActionsOnlyHover"
|
||||
: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>
|
||||
|
||||
<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>
|
||||
|
@ -85,15 +193,27 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<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>
|
||||
|
@ -101,16 +221,23 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<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>
|
||||
|
@ -245,7 +372,8 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<FormLink to="/settings/custom-css"><template #icon><i class="ti ti-code"></i></template>{{ i18n.ts.customCss }}</FormLink>
|
||||
</div>
|
||||
</FormSection>
|
||||
</div>
|
||||
</div>
|
||||
</MkSearchSection>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
|
|
|
@ -4,57 +4,105 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
-->
|
||||
|
||||
<template>
|
||||
<div class="_gaps_m">
|
||||
<MkSearchSection :label="i18n.ts.privacy" :keywords="['privacy']" icon="ti ti-lock-open">
|
||||
<div class="_gaps_m">
|
||||
<MkSearchMarker
|
||||
:locationLabel="[i18n.ts.privacy, i18n.ts.makeFollowManuallyApprove]"
|
||||
icon="ti ti-lock-open"
|
||||
:label="i18n.ts.makeFollowManuallyApprove"
|
||||
:keywords="['follow', 'lock', i18n.ts.lockedAccountInfo]"
|
||||
>
|
||||
<MkSwitch v-model="isLocked" @update:modelValue="save()">{{ i18n.ts.makeFollowManuallyApprove }}<template #caption>{{ i18n.ts.lockedAccountInfo }}</template></MkSwitch>
|
||||
</MkSearchMarker>
|
||||
|
||||
<MkSearchMarker
|
||||
:label="i18n.ts.autoAcceptFollowed"
|
||||
:keywords="['follow', 'auto', 'accept']"
|
||||
>
|
||||
<MkSwitch v-if="isLocked" v-model="autoAcceptFollowed" @update:modelValue="save()">{{ i18n.ts.autoAcceptFollowed }}</MkSwitch>
|
||||
</MkSearchMarker>
|
||||
|
||||
<MkSearchMarker
|
||||
:label="i18n.ts.makeReactionsPublic"
|
||||
:keywords="['reaction', 'public', i18n.ts.makeReactionsPublicDescription]"
|
||||
>
|
||||
<MkSwitch v-model="publicReactions" @update:modelValue="save()">
|
||||
{{ i18n.ts.makeReactionsPublic }}
|
||||
<template #caption>{{ i18n.ts.makeReactionsPublicDescription }}</template>
|
||||
</MkSwitch>
|
||||
</MkSearchMarker>
|
||||
|
||||
<MkSearchMarker
|
||||
: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>
|
||||
|
||||
<MkSearchMarker
|
||||
:label="i18n.ts.followersVisibility"
|
||||
:keywords="['follower', 'visibility']"
|
||||
>
|
||||
<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>
|
||||
</MkSearchMarker>
|
||||
|
||||
<MkSearchMarker
|
||||
:label="i18n.ts.hideOnlineStatus"
|
||||
:keywords="['online', 'status', i18n.ts.hideOnlineStatusDescription]"
|
||||
>
|
||||
<MkSwitch v-model="hideOnlineStatus" @update:modelValue="save()">
|
||||
{{ i18n.ts.hideOnlineStatus }}
|
||||
<template #caption>{{ i18n.ts.hideOnlineStatusDescription }}</template>
|
||||
</MkSwitch>
|
||||
</MkSearchMarker>
|
||||
|
||||
<MkSearchMarker
|
||||
:label="i18n.ts.noCrawle"
|
||||
:keywords="['crawle', 'index', 'search', i18n.ts.noCrawleDescription]"
|
||||
>
|
||||
<MkSwitch v-model="noCrawle" @update:modelValue="save()">
|
||||
{{ i18n.ts.noCrawle }}
|
||||
<template #caption>{{ i18n.ts.noCrawleDescription }}</template>
|
||||
</MkSwitch>
|
||||
</MkSearchMarker>
|
||||
|
||||
<MkSearchMarker
|
||||
:label="i18n.ts.preventAiLearning"
|
||||
:keywords="['crawle', 'ai', i18n.ts.preventAiLearningDescription]"
|
||||
>
|
||||
<MkSwitch v-model="preventAiLearning" @update:modelValue="save()">
|
||||
{{ i18n.ts.preventAiLearning }}
|
||||
<template #caption>{{ i18n.ts.preventAiLearningDescription }}</template>
|
||||
</MkSwitch>
|
||||
</MkSearchMarker>
|
||||
|
||||
<MkSearchMarker
|
||||
: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>
|
||||
|
||||
<MkSearchSection :label="i18n.ts.lockdown" :keywords="['lockdown']">
|
||||
<FormSection>
|
||||
<template #label>{{ i18n.ts.lockdown }}<span class="_beta">{{ i18n.ts.beta }}</span></template>
|
||||
|
||||
<div class="_gaps_m">
|
||||
<MkSearchMarker
|
||||
:label="i18n.ts._accountSettings.requireSigninToViewContents"
|
||||
:keywords="['login', 'signin', i18n.ts._accountSettings.requireSigninToViewContentsDescription1, i18n.ts._accountSettings.requireSigninToViewContentsDescription2, i18n.ts._accountSettings.requireSigninToViewContentsDescription3]"
|
||||
>
|
||||
<MkSwitch :modelValue="requireSigninToViewContents" @update:modelValue="update_requireSigninToViewContents">
|
||||
{{ i18n.ts._accountSettings.requireSigninToViewContents }}
|
||||
<template #caption>
|
||||
|
@ -63,7 +111,12 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<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>
|
||||
</MkSearchMarker>
|
||||
|
||||
<MkSearchMarker
|
||||
:label="i18n.ts._accountSettings.makeNotesFollowersOnlyBefore"
|
||||
:keywords="['follower', i18n.ts._accountSettings.makeNotesFollowersOnlyBeforeDescription]"
|
||||
>
|
||||
<FormSlot>
|
||||
<template #label>{{ i18n.ts._accountSettings.makeNotesFollowersOnlyBefore }}</template>
|
||||
|
||||
|
@ -99,7 +152,12 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<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>
|
||||
|
||||
|
@ -135,12 +193,24 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<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>
|
||||
|
@ -158,11 +228,18 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<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>
|
||||
</div>
|
||||
</MkSearchMarker>
|
||||
</div>
|
||||
</MkSearchSection>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
// PIZZAX --- A lightweight store
|
||||
|
||||
import { onUnmounted, ref, watch } from 'vue';
|
||||
import type { Ref } from 'vue';
|
||||
import { BroadcastChannel } from 'broadcast-channel';
|
||||
import type { Ref } from 'vue';
|
||||
import { $i } from '@/account.js';
|
||||
import { misskeyApi } from '@/scripts/misskey-api.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);
|
||||
} else {
|
||||
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))の代わり)
|
||||
const rawValue = deepClone(value);
|
||||
|
||||
if (_DEV_) console.log('set', key, rawValue, value);
|
||||
|
||||
this.reactiveState[key].value = this.state[key] = rawValue;
|
||||
|
||||
return this.addIdbSetJob(async () => {
|
||||
if (_DEV_) console.log(`set ${String(key)} start`);
|
||||
switch (this.def[key].where) {
|
||||
case 'device': {
|
||||
this.pizzaxChannel.postMessage({
|
||||
|
@ -224,7 +220,6 @@ export class Storage<T extends StateDef> {
|
|||
break;
|
||||
}
|
||||
}
|
||||
if (_DEV_) console.log(`set ${String(key)} complete`);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"type": "module",
|
||||
"name": "misskey-js",
|
||||
"version": "2025.2.0",
|
||||
"version": "2025.2.1-alpha.0",
|
||||
"description": "Misskey SDK for JavaScript",
|
||||
"license": "MIT",
|
||||
"main": "./built/index.js",
|
||||
|
|
344
pnpm-lock.yaml
344
pnpm-lock.yaml
|
@ -192,8 +192,8 @@ importers:
|
|||
specifier: 1.20.3
|
||||
version: 1.20.3
|
||||
bullmq:
|
||||
specifier: 5.41.0
|
||||
version: 5.41.0
|
||||
specifier: 5.41.1
|
||||
version: 5.41.1
|
||||
cacheable-lookup:
|
||||
specifier: 7.0.0
|
||||
version: 7.0.0
|
||||
|
@ -274,7 +274,7 @@ importers:
|
|||
version: 4.1.0
|
||||
jsdom:
|
||||
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:
|
||||
specifier: 2.2.3
|
||||
version: 2.2.3
|
||||
|
@ -818,8 +818,8 @@ importers:
|
|||
specifier: 1.85.0
|
||||
version: 1.85.0
|
||||
shiki:
|
||||
specifier: 2.3.2
|
||||
version: 2.3.2
|
||||
specifier: 2.4.1
|
||||
version: 2.4.1
|
||||
strict-event-emitter-types:
|
||||
specifier: 2.0.0
|
||||
version: 2.0.0
|
||||
|
@ -961,7 +961,7 @@ importers:
|
|||
version: 8.24.0(eslint@9.20.1)(typescript@5.7.3)
|
||||
'@vitest/coverage-v8':
|
||||
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':
|
||||
specifier: 3.5.13
|
||||
version: 3.5.13
|
||||
|
@ -1027,19 +1027,19 @@ importers:
|
|||
version: 1.0.3
|
||||
vitest:
|
||||
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:
|
||||
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:
|
||||
specifier: 2.2.0
|
||||
version: 2.2.0
|
||||
specifier: 2.2.2
|
||||
version: 2.2.2
|
||||
vue-eslint-parser:
|
||||
specifier: 9.4.3
|
||||
version: 9.4.3(eslint@9.20.1)
|
||||
vue-tsc:
|
||||
specifier: 2.2.0
|
||||
version: 2.2.0(typescript@5.7.3)
|
||||
specifier: 2.2.2
|
||||
version: 2.2.2(typescript@5.7.3)
|
||||
|
||||
packages/frontend-embed:
|
||||
dependencies:
|
||||
|
@ -1098,8 +1098,8 @@ importers:
|
|||
specifier: 1.85.0
|
||||
version: 1.85.0
|
||||
shiki:
|
||||
specifier: 2.3.2
|
||||
version: 2.3.2
|
||||
specifier: 2.4.1
|
||||
version: 2.4.1
|
||||
tinycolor2:
|
||||
specifier: 1.6.0
|
||||
version: 1.6.0
|
||||
|
@ -1154,7 +1154,7 @@ importers:
|
|||
version: 8.24.0(eslint@9.20.1)(typescript@5.7.3)
|
||||
'@vitest/coverage-v8':
|
||||
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':
|
||||
specifier: 3.5.13
|
||||
version: 3.5.13
|
||||
|
@ -1198,14 +1198,14 @@ importers:
|
|||
specifier: 1.0.3
|
||||
version: 1.0.3
|
||||
vue-component-type-helpers:
|
||||
specifier: 2.2.0
|
||||
version: 2.2.0
|
||||
specifier: 2.2.2
|
||||
version: 2.2.2
|
||||
vue-eslint-parser:
|
||||
specifier: 9.4.3
|
||||
version: 9.4.3(eslint@9.20.1)
|
||||
vue-tsc:
|
||||
specifier: 2.2.0
|
||||
version: 2.2.0(typescript@5.7.3)
|
||||
specifier: 2.2.2
|
||||
version: 2.2.2(typescript@5.7.3)
|
||||
|
||||
packages/frontend-shared:
|
||||
dependencies:
|
||||
|
@ -3569,26 +3569,26 @@ packages:
|
|||
engines: {node: '>=14.18'}
|
||||
hasBin: true
|
||||
|
||||
'@shikijs/core@2.3.2':
|
||||
resolution: {integrity: sha512-s7vyL3LzUKm3Qwf36zRWlavX9BQMZTIq9B1almM63M5xBuSldnsTHCmsXzoF/Kyw4k7Xgas7yAyJz9VR/vcP1A==}
|
||||
'@shikijs/core@2.4.1':
|
||||
resolution: {integrity: sha512-c7AkRsCpSVjKHsTwuvRVMEAdADq4Z1KoodcS4LaIqMzBTM0+Q572VRk1PIxtzaMtdiHlRPO6mH5iPdJoTV59mQ==}
|
||||
|
||||
'@shikijs/engine-javascript@2.3.2':
|
||||
resolution: {integrity: sha512-w3IEMu5HfL/OaJTsMbIfZ1HRPnWVYRANeDtmsdIIEgUOcLjzFJFQwlnkckGjKHekEzNqlMLbgB/twnfZ/EEAGg==}
|
||||
'@shikijs/engine-javascript@2.4.1':
|
||||
resolution: {integrity: sha512-2DnVilsUCgA81lnxt67dEZf2C6hdRzDYIs7yG33yWQIjljAxlXi3MKt7n0BXKr6uT5sZ0JdtX/+Pq2FN31YVdQ==}
|
||||
|
||||
'@shikijs/engine-oniguruma@2.3.2':
|
||||
resolution: {integrity: sha512-vikMY1TroyZXUHIXbMnvY/mjtOxMn+tavcfAeQPgWS9FHcgFSUoEtywF5B5sOLb9NXb8P2vb7odkh3nj15/00A==}
|
||||
'@shikijs/engine-oniguruma@2.4.1':
|
||||
resolution: {integrity: sha512-PvN76WM2HjmSbNQmLl8Jzm3h8Hsf/g9kKs3jPWKD6uMpCfk+M3HalWONz85zQF4lqrI3lamMTV5pHcOVSswpqg==}
|
||||
|
||||
'@shikijs/langs@2.3.2':
|
||||
resolution: {integrity: sha512-UqI6bSxFzhexIJficZLKeB1L2Sc3xoNiAV0yHpfbg5meck93du+EKQtsGbBv66Ki53XZPhnR/kYkOr85elIuFw==}
|
||||
'@shikijs/langs@2.4.1':
|
||||
resolution: {integrity: sha512-MLpCfw8gqWAgYvkV4Qsh/yjJirGhqwBQqtNgNrYOES7IoMTsthQ2x/8+JEO1hIDyS3qJPSooxCGQpX7EXsiFpQ==}
|
||||
|
||||
'@shikijs/themes@2.3.2':
|
||||
resolution: {integrity: sha512-QAh7D/hhfYKHibkG2tti8vxNt3ekAH5EqkXJeJbTh7FGvTCWEI7BHqNCtMdjFvZ0vav5nvUgdvA7/HI7pfsB4w==}
|
||||
'@shikijs/themes@2.4.1':
|
||||
resolution: {integrity: sha512-U+Yt03Qfy9251BjQkPf9IkbiRypCqLcxfeCkk9cjqAuAhgM6G+v8GRHB+7VR1OQu92sWkhmk+zdbJAhgAnnL8g==}
|
||||
|
||||
'@shikijs/types@2.3.2':
|
||||
resolution: {integrity: sha512-CBaMY+a3pepyC4SETi7+bSzO0f6hxEQJUUuS4uD7zppzjmrN4ZRtBqxaT+wOan26CR9eeJ5iBhc4qvWEwn7Eeg==}
|
||||
'@shikijs/types@2.4.1':
|
||||
resolution: {integrity: sha512-fE73tqCjiHIDUq7SYU8i4d9TyOcJh2u2J8aQGqQs0KkFg6FbBEQoDiBASMM5Vxqag1VS58y+MHLBuSQmwtB4Og==}
|
||||
|
||||
'@shikijs/vscode-textmate@10.0.1':
|
||||
resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==}
|
||||
'@shikijs/vscode-textmate@10.0.2':
|
||||
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
|
||||
|
||||
'@sideway/address@4.1.4':
|
||||
resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==}
|
||||
|
@ -4763,15 +4763,9 @@ packages:
|
|||
'@volar/typescript@2.4.11':
|
||||
resolution: {integrity: sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==}
|
||||
|
||||
'@vue/compiler-core@3.5.12':
|
||||
resolution: {integrity: sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==}
|
||||
|
||||
'@vue/compiler-core@3.5.13':
|
||||
resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==}
|
||||
|
||||
'@vue/compiler-dom@3.5.12':
|
||||
resolution: {integrity: sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==}
|
||||
|
||||
'@vue/compiler-dom@3.5.13':
|
||||
resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==}
|
||||
|
||||
|
@ -4792,8 +4786,8 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
|
||||
'@vue/language-core@2.2.0':
|
||||
resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==}
|
||||
'@vue/language-core@2.2.2':
|
||||
resolution: {integrity: sha512-QotO41kurE5PLf3vrNgGTk3QswO2PdUFjBwNiOi7zMmGhwb25PSTh9hD1MCgKC06AVv+8sZQvlL3Do4TTVHSiQ==}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
peerDependenciesMeta:
|
||||
|
@ -4814,9 +4808,6 @@ packages:
|
|||
peerDependencies:
|
||||
vue: 3.5.13
|
||||
|
||||
'@vue/shared@3.5.12':
|
||||
resolution: {integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==}
|
||||
|
||||
'@vue/shared@3.5.13':
|
||||
resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==}
|
||||
|
||||
|
@ -4971,8 +4962,8 @@ packages:
|
|||
ajv@8.17.1:
|
||||
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
|
||||
|
||||
alien-signals@0.4.14:
|
||||
resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==}
|
||||
alien-signals@1.0.3:
|
||||
resolution: {integrity: sha512-zQOh3wAYK5ujENxvBBR3CFGF/b6afaSzZ/c9yNhJ1ENrGHETvpUuKQsa93Qrclp0+PzTF93MaZ7scVp1uUozhA==}
|
||||
|
||||
ansi-colors@4.1.3:
|
||||
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
|
||||
|
@ -5244,6 +5235,9 @@ packages:
|
|||
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
bl@4.1.0:
|
||||
resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
|
||||
|
||||
blob-util@2.0.2:
|
||||
resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==}
|
||||
|
||||
|
@ -5321,8 +5315,8 @@ packages:
|
|||
resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==}
|
||||
engines: {node: '>=6.14.2'}
|
||||
|
||||
bullmq@5.41.0:
|
||||
resolution: {integrity: sha512-GGfKu2DHGIvbnMtQjR/82wvWsdCaGxN5JGR3pvKd1mkDI9DsWn8r0+pAzZ6Y4ImWXFaetaAqywOhv2Ik0R2m3g==}
|
||||
bullmq@5.41.1:
|
||||
resolution: {integrity: sha512-bVQGR4ARM+wRJSw66114AKwO8SwS2ZF5TIvwQ9NL6Iepq6f8jnG8EjMMXL8J1pyR1eNz5bOikPeED/8ErLU6FQ==}
|
||||
|
||||
buraha@0.0.1:
|
||||
resolution: {integrity: sha512-G563A0mTbzknm2jDaNxfZuNKIdeArs8T+XQN6t+KbmgnOoevXSXhKDkyf8Md/36Jrx99ikwbCag37VGe3myExQ==}
|
||||
|
@ -5404,6 +5398,10 @@ packages:
|
|||
canvas-confetti@1.9.3:
|
||||
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:
|
||||
resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==}
|
||||
|
||||
|
@ -5502,6 +5500,9 @@ packages:
|
|||
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
|
||||
engines: {node: '>= 8.10.0'}
|
||||
|
||||
chownr@1.1.4:
|
||||
resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
|
||||
|
||||
chownr@2.0.0:
|
||||
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
|
||||
engines: {node: '>=10'}
|
||||
|
@ -5956,6 +5957,10 @@ packages:
|
|||
deep-equal@2.2.0:
|
||||
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:
|
||||
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
|
||||
|
||||
|
@ -6455,6 +6460,10 @@ packages:
|
|||
resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
|
||||
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:
|
||||
resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
|
@ -6700,6 +6709,9 @@ packages:
|
|||
from@0.1.7:
|
||||
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:
|
||||
resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==}
|
||||
engines: {node: '>=14.14'}
|
||||
|
@ -6807,6 +6819,9 @@ packages:
|
|||
getpass@0.1.7:
|
||||
resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==}
|
||||
|
||||
github-from-package@0.0.0:
|
||||
resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
|
||||
|
||||
glob-parent@5.1.2:
|
||||
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
|
||||
engines: {node: '>= 6'}
|
||||
|
@ -8229,6 +8244,9 @@ packages:
|
|||
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
|
||||
engines: {node: '>= 8'}
|
||||
|
||||
mkdirp-classic@0.5.3:
|
||||
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
|
||||
|
||||
mkdirp@0.5.6:
|
||||
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
|
||||
hasBin: true
|
||||
|
@ -8319,6 +8337,9 @@ packages:
|
|||
engines: {node: ^18 || >=20}
|
||||
hasBin: true
|
||||
|
||||
napi-build-utils@2.0.0:
|
||||
resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==}
|
||||
|
||||
natural-compare@1.4.0:
|
||||
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
|
||||
|
||||
|
@ -9072,6 +9093,11 @@ packages:
|
|||
postgres-range@1.1.3:
|
||||
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:
|
||||
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
|
@ -9292,6 +9318,10 @@ packages:
|
|||
resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
rc@1.2.8:
|
||||
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
|
||||
hasBin: true
|
||||
|
||||
rdf-canonize@3.4.0:
|
||||
resolution: {integrity: sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -9651,8 +9681,8 @@ packages:
|
|||
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
shiki@2.3.2:
|
||||
resolution: {integrity: sha512-UZhz/gsUz7DHFbQBOJP7eXqvKyYvMGramxQiSDc83M/7OkWm6OdVHAReEc3vMLh6L6TRhgL9dvhXz9XDkCDaaw==}
|
||||
shiki@2.4.1:
|
||||
resolution: {integrity: sha512-1MmgQgSSx04OSUPqTg7deJudOL4vXpkNEJHlzKEoVNOLFUmXPB/vRvJoLxzy/Un+UIp4zryXJcWDUAUTOSbDyw==}
|
||||
|
||||
shimmer@1.2.1:
|
||||
resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==}
|
||||
|
@ -9671,6 +9701,12 @@ packages:
|
|||
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
|
||||
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:
|
||||
resolution: {integrity: sha512-gWDa38Ccm4MwlG5U7AlcJxPv3lvr80dU7ARJWrGdgvOKyzSj1gr3GBPN1rABTedAYvC/LsGYoFuFxwDBPtGEbw==}
|
||||
|
||||
|
@ -10033,6 +10069,10 @@ packages:
|
|||
resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
|
||||
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:
|
||||
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||
engines: {node: '>=8'}
|
||||
|
@ -10088,6 +10128,13 @@ packages:
|
|||
os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android]
|
||||
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:
|
||||
resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==}
|
||||
|
||||
|
@ -10726,8 +10773,8 @@ packages:
|
|||
vue-component-type-helpers@2.0.16:
|
||||
resolution: {integrity: sha512-qisL/iAfdO++7w+SsfYQJVPj6QKvxp4i1MMxvsNO41z/8zu3KuAw9LkhKUfP/kcOWGDxESp+pQObWppXusejCA==}
|
||||
|
||||
vue-component-type-helpers@2.2.0:
|
||||
resolution: {integrity: sha512-cYrAnv2me7bPDcg9kIcGwjJiSB6Qyi08+jLDo9yuvoFQjzHiPTzML7RnkJB1+3P6KMsX/KbCD4QE3Tv/knEllw==}
|
||||
vue-component-type-helpers@2.2.2:
|
||||
resolution: {integrity: sha512-6lLY+n2xz2kCYshl59mL6gy8OUUTmkscmDFMO8i7Lj+QKwgnIFUZmM1i/iTYObtrczZVdw7UakPqDTGwVSGaRg==}
|
||||
|
||||
vue-component-type-helpers@2.2.2:
|
||||
resolution: {integrity: sha512-6lLY+n2xz2kCYshl59mL6gy8OUUTmkscmDFMO8i7Lj+QKwgnIFUZmM1i/iTYObtrczZVdw7UakPqDTGwVSGaRg==}
|
||||
|
@ -10762,8 +10809,8 @@ packages:
|
|||
vue-template-compiler@2.7.14:
|
||||
resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==}
|
||||
|
||||
vue-tsc@2.2.0:
|
||||
resolution: {integrity: sha512-gtmM1sUuJ8aSb0KoAFmK9yMxb8TxjewmxqTJ1aKphD5Cbu0rULFY6+UQT51zW7SpUcenfPUuflKyVwyx9Qdnxg==}
|
||||
vue-tsc@2.2.2:
|
||||
resolution: {integrity: sha512-1icPKkxAA5KTAaSwg0wVWdE48EdsH8fgvcbAiqojP4jXKl6LEM3soiW1aG/zrWrFt8Mw1ncG2vG1PvpZpVfehA==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
typescript: '>=5.0.0'
|
||||
|
@ -13579,40 +13626,40 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@shikijs/core@2.3.2':
|
||||
'@shikijs/core@2.4.1':
|
||||
dependencies:
|
||||
'@shikijs/engine-javascript': 2.3.2
|
||||
'@shikijs/engine-oniguruma': 2.3.2
|
||||
'@shikijs/types': 2.3.2
|
||||
'@shikijs/vscode-textmate': 10.0.1
|
||||
'@shikijs/engine-javascript': 2.4.1
|
||||
'@shikijs/engine-oniguruma': 2.4.1
|
||||
'@shikijs/types': 2.4.1
|
||||
'@shikijs/vscode-textmate': 10.0.2
|
||||
'@types/hast': 3.0.4
|
||||
hast-util-to-html: 9.0.4
|
||||
|
||||
'@shikijs/engine-javascript@2.3.2':
|
||||
'@shikijs/engine-javascript@2.4.1':
|
||||
dependencies:
|
||||
'@shikijs/types': 2.3.2
|
||||
'@shikijs/vscode-textmate': 10.0.1
|
||||
'@shikijs/types': 2.4.1
|
||||
'@shikijs/vscode-textmate': 10.0.2
|
||||
oniguruma-to-es: 3.1.0
|
||||
|
||||
'@shikijs/engine-oniguruma@2.3.2':
|
||||
'@shikijs/engine-oniguruma@2.4.1':
|
||||
dependencies:
|
||||
'@shikijs/types': 2.3.2
|
||||
'@shikijs/vscode-textmate': 10.0.1
|
||||
'@shikijs/types': 2.4.1
|
||||
'@shikijs/vscode-textmate': 10.0.2
|
||||
|
||||
'@shikijs/langs@2.3.2':
|
||||
'@shikijs/langs@2.4.1':
|
||||
dependencies:
|
||||
'@shikijs/types': 2.3.2
|
||||
'@shikijs/types': 2.4.1
|
||||
|
||||
'@shikijs/themes@2.3.2':
|
||||
'@shikijs/themes@2.4.1':
|
||||
dependencies:
|
||||
'@shikijs/types': 2.3.2
|
||||
'@shikijs/types': 2.4.1
|
||||
|
||||
'@shikijs/types@2.3.2':
|
||||
'@shikijs/types@2.4.1':
|
||||
dependencies:
|
||||
'@shikijs/vscode-textmate': 10.0.1
|
||||
'@shikijs/vscode-textmate': 10.0.2
|
||||
'@types/hast': 3.0.4
|
||||
|
||||
'@shikijs/vscode-textmate@10.0.1': {}
|
||||
'@shikijs/vscode-textmate@10.0.2': {}
|
||||
|
||||
'@sideway/address@4.1.4':
|
||||
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)
|
||||
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:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
'@bcoe/v8-coverage': 1.0.2
|
||||
|
@ -15013,7 +15060,7 @@ snapshots:
|
|||
std-env: 3.8.0
|
||||
test-exclude: 7.0.1
|
||||
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:
|
||||
- supports-color
|
||||
|
||||
|
@ -15115,14 +15162,6 @@ snapshots:
|
|||
path-browserify: 1.0.1
|
||||
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':
|
||||
dependencies:
|
||||
'@babel/parser': 7.25.6
|
||||
|
@ -15131,11 +15170,6 @@ snapshots:
|
|||
estree-walker: 2.0.2
|
||||
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':
|
||||
dependencies:
|
||||
'@vue/compiler-core': 3.5.13
|
||||
|
@ -15175,13 +15209,13 @@ snapshots:
|
|||
optionalDependencies:
|
||||
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:
|
||||
'@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/shared': 3.5.12
|
||||
alien-signals: 0.4.14
|
||||
'@vue/shared': 3.5.13
|
||||
alien-signals: 1.0.3
|
||||
minimatch: 9.0.4
|
||||
muggle-string: 0.4.1
|
||||
path-browserify: 1.0.1
|
||||
|
@ -15210,8 +15244,6 @@ snapshots:
|
|||
'@vue/shared': 3.5.13
|
||||
vue: 3.5.13(typescript@5.7.3)
|
||||
|
||||
'@vue/shared@3.5.12': {}
|
||||
|
||||
'@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))':
|
||||
|
@ -15401,7 +15433,7 @@ snapshots:
|
|||
json-schema-traverse: 1.0.0
|
||||
require-from-string: 2.0.2
|
||||
|
||||
alien-signals@0.4.14: {}
|
||||
alien-signals@1.0.3: {}
|
||||
|
||||
ansi-colors@4.1.3: {}
|
||||
|
||||
|
@ -15722,6 +15754,13 @@ snapshots:
|
|||
|
||||
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: {}
|
||||
|
||||
bluebird@3.7.2: {}
|
||||
|
@ -15819,7 +15858,7 @@ snapshots:
|
|||
node-gyp-build: 4.6.0
|
||||
optional: true
|
||||
|
||||
bullmq@5.41.0:
|
||||
bullmq@5.41.1:
|
||||
dependencies:
|
||||
cron-parser: 4.9.0
|
||||
ioredis: 5.5.0
|
||||
|
@ -15927,6 +15966,12 @@ snapshots:
|
|||
|
||||
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: {}
|
||||
|
||||
cbor@9.0.2:
|
||||
|
@ -16047,6 +16092,9 @@ snapshots:
|
|||
optionalDependencies:
|
||||
fsevents: 2.3.3
|
||||
|
||||
chownr@1.1.4:
|
||||
optional: true
|
||||
|
||||
chownr@2.0.0: {}
|
||||
|
||||
chromatic@11.25.2: {}
|
||||
|
@ -16547,6 +16595,9 @@ snapshots:
|
|||
which-collection: 1.0.1
|
||||
which-typed-array: 1.1.11
|
||||
|
||||
deep-extend@0.6.0:
|
||||
optional: true
|
||||
|
||||
deep-is@0.1.4: {}
|
||||
|
||||
deepmerge@4.2.2: {}
|
||||
|
@ -17262,6 +17313,9 @@ snapshots:
|
|||
|
||||
exit@0.1.2: {}
|
||||
|
||||
expand-template@2.0.3:
|
||||
optional: true
|
||||
|
||||
expect-type@1.1.0: {}
|
||||
|
||||
expect@29.7.0:
|
||||
|
@ -17596,6 +17650,9 @@ snapshots:
|
|||
|
||||
from@0.1.7: {}
|
||||
|
||||
fs-constants@1.0.0:
|
||||
optional: true
|
||||
|
||||
fs-extra@11.3.0:
|
||||
dependencies:
|
||||
graceful-fs: 4.2.11
|
||||
|
@ -17729,6 +17786,9 @@ snapshots:
|
|||
dependencies:
|
||||
assert-plus: 1.0.0
|
||||
|
||||
github-from-package@0.0.0:
|
||||
optional: true
|
||||
|
||||
glob-parent@5.1.2:
|
||||
dependencies:
|
||||
is-glob: 4.0.3
|
||||
|
@ -18789,7 +18849,7 @@ snapshots:
|
|||
|
||||
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:
|
||||
cssstyle: 4.2.1
|
||||
data-urls: 5.0.0
|
||||
|
@ -18812,6 +18872,8 @@ snapshots:
|
|||
whatwg-url: 14.1.0
|
||||
ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
xml-name-validator: 5.0.0
|
||||
optionalDependencies:
|
||||
canvas: 3.1.0
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
- supports-color
|
||||
|
@ -19544,6 +19606,9 @@ snapshots:
|
|||
minipass: 3.3.6
|
||||
yallist: 4.0.0
|
||||
|
||||
mkdirp-classic@0.5.3:
|
||||
optional: true
|
||||
|
||||
mkdirp@0.5.6:
|
||||
dependencies:
|
||||
minimist: 1.2.8
|
||||
|
@ -19642,6 +19707,9 @@ snapshots:
|
|||
|
||||
nanoid@5.1.0: {}
|
||||
|
||||
napi-build-utils@2.0.0:
|
||||
optional: true
|
||||
|
||||
natural-compare@1.4.0: {}
|
||||
|
||||
ncp@2.0.0: {}
|
||||
|
@ -20373,6 +20441,22 @@ snapshots:
|
|||
|
||||
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: {}
|
||||
|
||||
prettier@3.5.1: {}
|
||||
|
@ -20606,6 +20690,14 @@ snapshots:
|
|||
iconv-lite: 0.6.3
|
||||
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:
|
||||
dependencies:
|
||||
setimmediate: 1.0.5
|
||||
|
@ -21070,15 +21162,15 @@ snapshots:
|
|||
|
||||
shebang-regex@3.0.0: {}
|
||||
|
||||
shiki@2.3.2:
|
||||
shiki@2.4.1:
|
||||
dependencies:
|
||||
'@shikijs/core': 2.3.2
|
||||
'@shikijs/engine-javascript': 2.3.2
|
||||
'@shikijs/engine-oniguruma': 2.3.2
|
||||
'@shikijs/langs': 2.3.2
|
||||
'@shikijs/themes': 2.3.2
|
||||
'@shikijs/types': 2.3.2
|
||||
'@shikijs/vscode-textmate': 10.0.1
|
||||
'@shikijs/core': 2.4.1
|
||||
'@shikijs/engine-javascript': 2.4.1
|
||||
'@shikijs/engine-oniguruma': 2.4.1
|
||||
'@shikijs/langs': 2.4.1
|
||||
'@shikijs/themes': 2.4.1
|
||||
'@shikijs/types': 2.4.1
|
||||
'@shikijs/vscode-textmate': 10.0.2
|
||||
'@types/hast': 3.0.4
|
||||
|
||||
shimmer@1.2.1: {}
|
||||
|
@ -21096,6 +21188,16 @@ snapshots:
|
|||
|
||||
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:
|
||||
dependencies:
|
||||
'@hapi/hoek': 11.0.4
|
||||
|
@ -21476,6 +21578,9 @@ snapshots:
|
|||
dependencies:
|
||||
min-indent: 1.0.1
|
||||
|
||||
strip-json-comments@2.0.1:
|
||||
optional: true
|
||||
|
||||
strip-json-comments@3.1.1: {}
|
||||
|
||||
strnum@1.0.5: {}
|
||||
|
@ -21526,6 +21631,23 @@ snapshots:
|
|||
|
||||
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:
|
||||
dependencies:
|
||||
b4a: 1.6.4
|
||||
|
@ -22051,11 +22173,11 @@ snapshots:
|
|||
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)(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:
|
||||
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:
|
||||
'@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))
|
||||
|
@ -22081,7 +22203,7 @@ snapshots:
|
|||
'@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)
|
||||
jsdom: 26.0.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5)
|
||||
transitivePeerDependencies:
|
||||
- jiti
|
||||
- less
|
||||
|
@ -22134,7 +22256,7 @@ snapshots:
|
|||
|
||||
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: {}
|
||||
|
||||
|
@ -22179,10 +22301,10 @@ snapshots:
|
|||
de-indent: 1.0.2
|
||||
he: 1.2.0
|
||||
|
||||
vue-tsc@2.2.0(typescript@5.7.3):
|
||||
vue-tsc@2.2.2(typescript@5.7.3):
|
||||
dependencies:
|
||||
'@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
|
||||
|
||||
vue@3.5.13(typescript@5.7.3):
|
||||
|
|
Loading…
Reference in New Issue