mirror of
https://github.com/Megghy/vtsuru.live.git
synced 2025-12-06 18:36:55 +08:00
add tts
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
"@vueuse/router": "^10.1.2",
|
"@vueuse/router": "^10.1.2",
|
||||||
"core-js": "^3.8.3",
|
"core-js": "^3.8.3",
|
||||||
"date-fns": "^2.30.0",
|
"date-fns": "^2.30.0",
|
||||||
|
"easy-speech": "^2.2.0",
|
||||||
"echarts": "^5.4.3",
|
"echarts": "^5.4.3",
|
||||||
"fast-xml-parser": "^4.3.2",
|
"fast-xml-parser": "^4.3.2",
|
||||||
"file-saver": "^2.0.5",
|
"file-saver": "^2.0.5",
|
||||||
@@ -25,6 +26,7 @@
|
|||||||
"linqts": "^1.15.0",
|
"linqts": "^1.15.0",
|
||||||
"mitt": "^3.0.1",
|
"mitt": "^3.0.1",
|
||||||
"qrcode.vue": "^3.4.1",
|
"qrcode.vue": "^3.4.1",
|
||||||
|
"queue-typescript": "^1.0.1",
|
||||||
"universal-cookie": "^4.0.4",
|
"universal-cookie": "^4.0.4",
|
||||||
"vite": "^4.3.9",
|
"vite": "^4.3.9",
|
||||||
"vite-svg-loader": "^4.0.0",
|
"vite-svg-loader": "^4.0.0",
|
||||||
|
|||||||
@@ -422,6 +422,7 @@ export interface EventModel {
|
|||||||
fans_medal_level: number
|
fans_medal_level: number
|
||||||
fans_medal_name: string
|
fans_medal_name: string
|
||||||
fans_medal_wearing_status: boolean
|
fans_medal_wearing_status: boolean
|
||||||
|
emoji?: string
|
||||||
}
|
}
|
||||||
export enum EventDataTypes {
|
export enum EventDataTypes {
|
||||||
Guard,
|
Guard,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { OpenLiveInfo } from '@/api/api-models'
|
import { EventDataTypes, EventModel, OpenLiveInfo } from '@/api/api-models'
|
||||||
import { QueryGetAPI, QueryPostAPI } from '@/api/query'
|
import { QueryGetAPI, QueryPostAPI } from '@/api/query'
|
||||||
import ChatClientDirectOpenLive from '@/data/chat/ChatClientDirectOpenLive.js'
|
import ChatClientDirectOpenLive from '@/data/chat/ChatClientDirectOpenLive.js'
|
||||||
import { OPEN_LIVE_API_URL } from './constants'
|
import { OPEN_LIVE_API_URL } from './constants'
|
||||||
@@ -67,6 +67,22 @@ export interface SCInfo {
|
|||||||
fans_medal_name: string // 对应房间勋章名字 (新增)
|
fans_medal_name: string // 对应房间勋章名字 (新增)
|
||||||
fans_medal_wearing_status: boolean // 该房间粉丝勋章佩戴情况 (新增)
|
fans_medal_wearing_status: boolean // 该房间粉丝勋章佩戴情况 (新增)
|
||||||
}
|
}
|
||||||
|
interface GuardInfo {
|
||||||
|
user_info: {
|
||||||
|
uid: number // 用户uid
|
||||||
|
uname: string // 用户昵称
|
||||||
|
uface: string // 用户头像
|
||||||
|
}
|
||||||
|
guard_level: number // 对应的大航海等级 1总督 2提督 3舰长
|
||||||
|
guard_num: number
|
||||||
|
guard_unit: string // (个月)
|
||||||
|
fans_medal_level: number // 粉丝勋章等级
|
||||||
|
fans_medal_name: string // 粉丝勋章名
|
||||||
|
fans_medal_wearing_status: boolean // 该房间粉丝勋章佩戴情况
|
||||||
|
timestamp: number
|
||||||
|
room_id: number
|
||||||
|
msg_id: string // 消息唯一id
|
||||||
|
}
|
||||||
export interface AuthInfo {
|
export interface AuthInfo {
|
||||||
Timestamp: string
|
Timestamp: string
|
||||||
Code: string
|
Code: string
|
||||||
@@ -137,6 +153,7 @@ interface DanmakuEventsMap {
|
|||||||
danmaku: (arg1: DanmakuInfo, arg2?: any) => void
|
danmaku: (arg1: DanmakuInfo, arg2?: any) => void
|
||||||
gift: (arg1: GiftInfo, arg2?: any) => void
|
gift: (arg1: GiftInfo, arg2?: any) => void
|
||||||
sc: (arg1: SCInfo, arg2?: any) => void
|
sc: (arg1: SCInfo, arg2?: any) => void
|
||||||
|
guard: (arg1: GuardInfo, arg2?: any) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
export default class DanmakuClient {
|
export default class DanmakuClient {
|
||||||
@@ -155,10 +172,23 @@ export default class DanmakuClient {
|
|||||||
danmaku: ((arg1: DanmakuInfo, arg2?: any) => void)[]
|
danmaku: ((arg1: DanmakuInfo, arg2?: any) => void)[]
|
||||||
gift: ((arg1: GiftInfo, arg2?: any) => void)[]
|
gift: ((arg1: GiftInfo, arg2?: any) => void)[]
|
||||||
sc: ((arg1: SCInfo, arg2?: any) => void)[]
|
sc: ((arg1: SCInfo, arg2?: any) => void)[]
|
||||||
|
guard: ((arg1: GuardInfo, arg2?: any) => void)[]
|
||||||
} = {
|
} = {
|
||||||
danmaku: [],
|
danmaku: [],
|
||||||
gift: [],
|
gift: [],
|
||||||
sc: [],
|
sc: [],
|
||||||
|
guard: [],
|
||||||
|
}
|
||||||
|
private eventsAsModel: {
|
||||||
|
danmaku: ((arg1: EventModel, arg2?: any) => void)[]
|
||||||
|
gift: ((arg1: EventModel, arg2?: any) => void)[]
|
||||||
|
sc: ((arg1: EventModel, arg2?: any) => void)[]
|
||||||
|
guard: ((arg1: EventModel, arg2?: any) => void)[]
|
||||||
|
} = {
|
||||||
|
danmaku: [],
|
||||||
|
gift: [],
|
||||||
|
sc: [],
|
||||||
|
guard: [],
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Start(): Promise<{ success: boolean; message: string }> {
|
public async Start(): Promise<{ success: boolean; message: string }> {
|
||||||
@@ -193,6 +223,13 @@ export default class DanmakuClient {
|
|||||||
danmaku: [],
|
danmaku: [],
|
||||||
gift: [],
|
gift: [],
|
||||||
sc: [],
|
sc: [],
|
||||||
|
guard: [],
|
||||||
|
}
|
||||||
|
this.eventsAsModel = {
|
||||||
|
danmaku: [],
|
||||||
|
gift: [],
|
||||||
|
sc: [],
|
||||||
|
guard: [],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private sendHeartbeat() {
|
private sendHeartbeat() {
|
||||||
@@ -210,31 +247,130 @@ export default class DanmakuClient {
|
|||||||
}
|
}
|
||||||
private onDanmaku = (command: any) => {
|
private onDanmaku = (command: any) => {
|
||||||
const data = command.data as DanmakuInfo
|
const data = command.data as DanmakuInfo
|
||||||
if (this.events.danmaku) {
|
|
||||||
this.events.danmaku.forEach((d) => {
|
this.events.danmaku?.forEach((d) => {
|
||||||
d(data, command)
|
d(data, command)
|
||||||
})
|
})
|
||||||
}
|
this.eventsAsModel.danmaku?.forEach((d) => {
|
||||||
|
d(
|
||||||
|
{
|
||||||
|
type: EventDataTypes.Message,
|
||||||
|
name: data.uname,
|
||||||
|
uid: data.uid,
|
||||||
|
msg: data.msg,
|
||||||
|
price: 0,
|
||||||
|
num: 0,
|
||||||
|
time: data.timestamp,
|
||||||
|
guard_level: data.guard_level,
|
||||||
|
fans_medal_level: data.fans_medal_level,
|
||||||
|
fans_medal_name: data.fans_medal_name,
|
||||||
|
fans_medal_wearing_status: data.fans_medal_wearing_status,
|
||||||
|
emoji: data.dm_type == 1 ? data.emoji_img_url : undefined,
|
||||||
|
avatar: data.uface,
|
||||||
|
},
|
||||||
|
command
|
||||||
|
)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
private onGift = (command: any) => {
|
private onGift = (command: any) => {
|
||||||
const data = command.data as GiftInfo
|
const data = command.data as GiftInfo
|
||||||
if (this.events.gift) {
|
const price = (data.price * data.gift_num) / 1000
|
||||||
this.events.gift.forEach((d) => {
|
this.events.gift?.forEach((d) => {
|
||||||
d(data, command)
|
d(data, command)
|
||||||
})
|
})
|
||||||
}
|
this.eventsAsModel.gift?.forEach((d) => {
|
||||||
|
d(
|
||||||
|
{
|
||||||
|
type: EventDataTypes.Gift,
|
||||||
|
name: data.uname,
|
||||||
|
uid: data.uid,
|
||||||
|
msg: data.gift_name,
|
||||||
|
price: data.paid ? price : -price,
|
||||||
|
num: data.gift_num,
|
||||||
|
time: data.timestamp,
|
||||||
|
guard_level: data.guard_level,
|
||||||
|
fans_medal_level: data.fans_medal_level,
|
||||||
|
fans_medal_name: data.fans_medal_name,
|
||||||
|
fans_medal_wearing_status: data.fans_medal_wearing_status,
|
||||||
|
avatar: data.uface,
|
||||||
|
},
|
||||||
|
command
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
private onSC = (command: any) => {
|
||||||
|
const data = command.data as SCInfo
|
||||||
|
this.events.sc?.forEach((d) => {
|
||||||
|
d(data, command)
|
||||||
|
})
|
||||||
|
this.eventsAsModel.sc?.forEach((d) => {
|
||||||
|
d(
|
||||||
|
{
|
||||||
|
type: EventDataTypes.SC,
|
||||||
|
name: data.uname,
|
||||||
|
uid: data.uid,
|
||||||
|
msg: data.message,
|
||||||
|
price: data.rmb,
|
||||||
|
num: 1,
|
||||||
|
time: data.timestamp,
|
||||||
|
guard_level: data.guard_level,
|
||||||
|
fans_medal_level: data.fans_medal_level,
|
||||||
|
fans_medal_name: data.fans_medal_name,
|
||||||
|
fans_medal_wearing_status: data.fans_medal_wearing_status,
|
||||||
|
avatar: data.uface,
|
||||||
|
},
|
||||||
|
command
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
private onGuard = (command: any) => {
|
||||||
|
const data = command.data as GuardInfo
|
||||||
|
this.events.guard?.forEach((d) => {
|
||||||
|
d(data, command)
|
||||||
|
})
|
||||||
|
this.eventsAsModel.guard?.forEach((d) => {
|
||||||
|
d(
|
||||||
|
{
|
||||||
|
type: EventDataTypes.Guard,
|
||||||
|
name: data.user_info.uname,
|
||||||
|
uid: data.user_info.uid,
|
||||||
|
msg: data.guard_level == 1 ? '总督' : data.guard_level == 2 ? '提督' : data.guard_level == 3 ? '舰长' : '',
|
||||||
|
price: 0,
|
||||||
|
num: data.guard_num,
|
||||||
|
time: data.timestamp,
|
||||||
|
guard_level: data.guard_level,
|
||||||
|
fans_medal_level: data.fans_medal_level,
|
||||||
|
fans_medal_name: data.fans_medal_name,
|
||||||
|
fans_medal_wearing_status: data.fans_medal_wearing_status,
|
||||||
|
avatar: data.user_info.uface,
|
||||||
|
},
|
||||||
|
command
|
||||||
|
)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
public on(eventName: 'danmaku', listener: DanmakuEventsMap['danmaku']): this
|
public on(eventName: 'danmaku', listener: DanmakuEventsMap['danmaku']): this
|
||||||
public on(eventName: 'gift', listener: DanmakuEventsMap['gift']): this
|
public on(eventName: 'gift', listener: DanmakuEventsMap['gift']): this
|
||||||
public on(eventName: 'sc', listener: DanmakuEventsMap['sc']): this
|
public on(eventName: 'sc', listener: DanmakuEventsMap['sc']): this
|
||||||
public on(eventName: 'danmaku' | 'gift' | 'sc', listener: (...args: any[]) => void): this {
|
public on(eventName: 'guard', listener: DanmakuEventsMap['guard']): this
|
||||||
|
public on(eventName: 'danmaku' | 'gift' | 'sc' | 'guard', listener: (...args: any[]) => void): this {
|
||||||
if (!this.events[eventName]) {
|
if (!this.events[eventName]) {
|
||||||
this.events[eventName] = []
|
this.events[eventName] = []
|
||||||
}
|
}
|
||||||
this.events[eventName].push(listener)
|
this.events[eventName].push(listener)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
public off(eventName: 'danmaku' | 'gift' | 'sc', listener: (...args: any[]) => void): this {
|
public onEvent(eventName: 'danmaku', listener: (arg1: EventModel, arg2?: any) => void): this
|
||||||
|
public onEvent(eventName: 'gift', listener: (arg1: EventModel, arg2?: any) => void): this
|
||||||
|
public onEvent(eventName: 'sc', listener: (arg1: EventModel, arg2?: any) => void): this
|
||||||
|
public onEvent(eventName: 'guard', listener: (arg1: EventModel, arg2?: any) => void): this
|
||||||
|
public onEvent(eventName: 'danmaku' | 'gift' | 'sc' | 'guard', listener: (...args: any[]) => void): this {
|
||||||
|
if (!this.eventsAsModel[eventName]) {
|
||||||
|
this.eventsAsModel[eventName] = []
|
||||||
|
}
|
||||||
|
this.eventsAsModel[eventName].push(listener)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
public off(eventName: 'danmaku' | 'gift' | 'sc' | 'guard', listener: (...args: any[]) => void): this {
|
||||||
if (this.events[eventName]) {
|
if (this.events[eventName]) {
|
||||||
const index = this.events[eventName].indexOf(listener)
|
const index = this.events[eventName].indexOf(listener)
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
@@ -243,6 +379,15 @@ export default class DanmakuClient {
|
|||||||
}
|
}
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
public offEvent(eventName: 'danmaku' | 'gift' | 'sc' | 'guard', listener: (...args: any[]) => void): this {
|
||||||
|
if (this.eventsAsModel[eventName]) {
|
||||||
|
const index = this.eventsAsModel[eventName].indexOf(listener)
|
||||||
|
if (index > -1) {
|
||||||
|
this.eventsAsModel[eventName].splice(index, 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this
|
||||||
|
}
|
||||||
private async initClient(): Promise<{ success: boolean; message: string }> {
|
private async initClient(): Promise<{ success: boolean; message: string }> {
|
||||||
const auth = await this.getAuthInfo()
|
const auth = await this.getAuthInfo()
|
||||||
if (auth.data) {
|
if (auth.data) {
|
||||||
@@ -291,5 +436,7 @@ export default class DanmakuClient {
|
|||||||
private CMD_CALLBACK_MAP = {
|
private CMD_CALLBACK_MAP = {
|
||||||
LIVE_OPEN_PLATFORM_DM: this.onDanmaku.bind(this),
|
LIVE_OPEN_PLATFORM_DM: this.onDanmaku.bind(this),
|
||||||
LIVE_OPEN_PLATFORM_SEND_GIFT: this.onGift.bind(this),
|
LIVE_OPEN_PLATFORM_SEND_GIFT: this.onGift.bind(this),
|
||||||
|
LIVE_OPEN_PLATFORM_SUPER_CHAT: this.onSC.bind(this),
|
||||||
|
LIVE_OPEN_PLATFORM_GUARD: this.onGuard.bind(this),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2
src/data/Speech.ts
Normal file
2
src/data/Speech.ts
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
import EasySpeech from 'easy-speech'
|
||||||
|
|
||||||
@@ -30,6 +30,7 @@ export const QUEUE_API_URL = { toString: () => `${BASE_API()}queue/` }
|
|||||||
export const EVENT_API_URL = { toString: () => `${BASE_API()}event/` }
|
export const EVENT_API_URL = { toString: () => `${BASE_API()}event/` }
|
||||||
export const LIVE_API_URL = { toString: () => `${BASE_API()}live/` }
|
export const LIVE_API_URL = { toString: () => `${BASE_API()}live/` }
|
||||||
export const FEEDBACK_API_URL = { toString: () => `${BASE_API()}feedback/` }
|
export const FEEDBACK_API_URL = { toString: () => `${BASE_API()}feedback/` }
|
||||||
|
export const VTSURU_API_URL = { toString: () => `${BASE_API()}vtsuru/` }
|
||||||
|
|
||||||
export const ScheduleTemplateMap = {
|
export const ScheduleTemplateMap = {
|
||||||
'': { name: '默认', compoent: defineAsyncComponent(() => import('@/views/view/scheduleTemplate/DefaultScheduleTemplate.vue')) },
|
'': { name: '默认', compoent: defineAsyncComponent(() => import('@/views/view/scheduleTemplate/DefaultScheduleTemplate.vue')) },
|
||||||
|
|||||||
16
src/main.ts
16
src/main.ts
@@ -6,6 +6,7 @@ import router from './router'
|
|||||||
import { GetSelfAccount, UpdateAccountLoop } from './api/account'
|
import { GetSelfAccount, UpdateAccountLoop } from './api/account'
|
||||||
import { GetNotifactions } from './data/notifactions'
|
import { GetNotifactions } from './data/notifactions'
|
||||||
import { NText, createDiscreteApi } from 'naive-ui'
|
import { NText, createDiscreteApi } from 'naive-ui'
|
||||||
|
import EasySpeech from 'easy-speech'
|
||||||
|
|
||||||
createApp(App).use(router).mount('#app')
|
createApp(App).use(router).mount('#app')
|
||||||
|
|
||||||
@@ -39,4 +40,19 @@ QueryGetAPI<string>(BASE_API() + 'vtsuru/version')
|
|||||||
GetSelfAccount()
|
GetSelfAccount()
|
||||||
GetNotifactions()
|
GetNotifactions()
|
||||||
UpdateAccountLoop()
|
UpdateAccountLoop()
|
||||||
|
InitTTS();
|
||||||
})
|
})
|
||||||
|
function InitTTS() {
|
||||||
|
try {
|
||||||
|
const result = EasySpeech.detect()
|
||||||
|
if (result.speechSynthesis) {
|
||||||
|
EasySpeech.init({ maxTimeout: 5000, interval: 250 })
|
||||||
|
.then(() => console.log('[SpeechSynthesis] 已加载tts服务'))
|
||||||
|
.catch((e) => console.error(e))
|
||||||
|
} else {
|
||||||
|
console.log('[SpeechSynthesis] 当前浏览器不支持tts服务')
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log('[SpeechSynthesis] 当前浏览器不支持tts服务')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -210,6 +210,16 @@ const routes: Array<RouteRecordRaw> = [
|
|||||||
danmaku: true,
|
danmaku: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'speech',
|
||||||
|
name: 'manage-speech',
|
||||||
|
component: () => import('@/views/open_live/ReadDanmaku.vue'),
|
||||||
|
meta: {
|
||||||
|
title: '读弹幕',
|
||||||
|
keepAlive: true,
|
||||||
|
danmaku: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: 'live',
|
path: 'live',
|
||||||
name: 'manage-live',
|
name: 'manage-live',
|
||||||
@@ -274,6 +284,14 @@ const routes: Array<RouteRecordRaw> = [
|
|||||||
title: '排队',
|
title: '排队',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'speech',
|
||||||
|
name: 'open-live-speech',
|
||||||
|
component: () => import('@/views/open_live/ReadDanmaku.vue'),
|
||||||
|
meta: {
|
||||||
|
title: '读弹幕',
|
||||||
|
},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import { NButton, NCard, NDivider, NLayoutContent, NSpace, NText, NTimeline, NTi
|
|||||||
</NSpace>
|
</NSpace>
|
||||||
<NDivider title-placement="left"> 更新日志 </NDivider>
|
<NDivider title-placement="left"> 更新日志 </NDivider>
|
||||||
<NTimeline>
|
<NTimeline>
|
||||||
|
<NTimelineItem type="success" title="功能添加" content="读弹幕" time="2023-12-17" />
|
||||||
<NTimelineItem type="success" title="功能添加" content="直播记录" time="2023-12-3" />
|
<NTimelineItem type="success" title="功能添加" content="直播记录" time="2023-12-3" />
|
||||||
<NTimelineItem type="info" title="功能更新" content="歌单添加 '简单' 模板" time="2023-11-30" />
|
<NTimelineItem type="info" title="功能更新" content="歌单添加 '简单' 模板" time="2023-11-30" />
|
||||||
<NTimelineItem type="success" title="功能添加" content="排队" time="2023-11-25" />
|
<NTimelineItem type="success" title="功能添加" content="排队" time="2023-11-25" />
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { NCard, NDivider, NGradientText, NSpace, NText, NIcon, NGrid, NGridItem,
|
|||||||
import vtb from '@/svgs/ic_vtuber.svg'
|
import vtb from '@/svgs/ic_vtuber.svg'
|
||||||
import { AnalyticsSharp, Calendar, Chatbox, ListCircle, MusicalNote } from '@vicons/ionicons5'
|
import { AnalyticsSharp, Calendar, Chatbox, ListCircle, MusicalNote } from '@vicons/ionicons5'
|
||||||
import { useWindowSize } from '@vueuse/core'
|
import { useWindowSize } from '@vueuse/core'
|
||||||
import { Lottery24Filled, MoneyOff24Filled, MoreHorizontal24Filled, VehicleShip24Filled, VideoAdd20Filled } from '@vicons/fluent'
|
import { Lottery24Filled, MoneyOff24Filled, MoreHorizontal24Filled, TabletSpeaker24Filled, VehicleShip24Filled, VideoAdd20Filled } from '@vicons/fluent'
|
||||||
|
|
||||||
const { width } = useWindowSize()
|
const { width } = useWindowSize()
|
||||||
|
|
||||||
@@ -53,6 +53,11 @@ const functions = [
|
|||||||
desc: '通过发送弹幕和礼物加入队列, 允许设置多种条件',
|
desc: '通过发送弹幕和礼物加入队列, 允许设置多种条件',
|
||||||
icon: ListCircle,
|
icon: ListCircle,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: '读弹幕',
|
||||||
|
desc: '通过浏览器自带的tts服务念出弹幕 (此功能需要 Chrome, Edge 等现代浏览器!)',
|
||||||
|
icon: TabletSpeaker24Filled,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: '视频征集',
|
name: '视频征集',
|
||||||
desc: '创建用来收集视频链接的页面, 可以从动态爬取, 也可以提前对视频进行筛选',
|
desc: '创建用来收集视频链接的页面, 可以从动态爬取, 也可以提前对视频进行筛选',
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import {
|
|||||||
} from 'naive-ui'
|
} from 'naive-ui'
|
||||||
import { h, onMounted, ref } from 'vue'
|
import { h, onMounted, ref } from 'vue'
|
||||||
import { BrowsersOutline, Chatbox, Moon, MusicalNote, Sunny, AnalyticsSharp } from '@vicons/ionicons5'
|
import { BrowsersOutline, Chatbox, Moon, MusicalNote, Sunny, AnalyticsSharp } from '@vicons/ionicons5'
|
||||||
import { CalendarClock24Filled, Chat24Filled, Info24Filled, Live24Filled, Lottery24Filled, PeopleQueue24Filled, PersonFeedback24Filled, VehicleShip24Filled, VideoAdd20Filled } from '@vicons/fluent'
|
import { CalendarClock24Filled, Chat24Filled, Info24Filled, Live24Filled, Lottery24Filled, PeopleQueue24Filled, PersonFeedback24Filled, TabletSpeaker24Filled, VehicleShip24Filled, VideoAdd20Filled } from '@vicons/fluent'
|
||||||
import { isLoadingAccount, useAccount } from '@/api/account'
|
import { isLoadingAccount, useAccount } from '@/api/account'
|
||||||
import RegisterAndLogin from '@/components/RegisterAndLogin.vue'
|
import RegisterAndLogin from '@/components/RegisterAndLogin.vue'
|
||||||
import { RouterLink, useRoute } from 'vue-router'
|
import { RouterLink, useRoute } from 'vue-router'
|
||||||
@@ -280,6 +280,21 @@ const menuOptions = [
|
|||||||
icon: renderIcon(PeopleQueue24Filled),
|
icon: renderIcon(PeopleQueue24Filled),
|
||||||
//disabled: accountInfo.value?.isEmailVerified == false,
|
//disabled: accountInfo.value?.isEmailVerified == false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: () =>
|
||||||
|
h(
|
||||||
|
RouterLink,
|
||||||
|
{
|
||||||
|
to: {
|
||||||
|
name: 'manage-speech',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ default: () => '读弹幕' }
|
||||||
|
),
|
||||||
|
key: 'manage-speech',
|
||||||
|
icon: renderIcon(TabletSpeaker24Filled),
|
||||||
|
//disabled: accountInfo.value?.isEmailVerified == false,
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import { isDarkMode } from '@/Utils'
|
import { isDarkMode } from '@/Utils'
|
||||||
import { OpenLiveInfo, ThemeType } from '@/api/api-models'
|
import { OpenLiveInfo, ThemeType } from '@/api/api-models'
|
||||||
import DanmakuClient, { AuthInfo } from '@/data/DanmakuClient'
|
import DanmakuClient, { AuthInfo } from '@/data/DanmakuClient'
|
||||||
import { Lottery24Filled, PeopleQueue24Filled } from '@vicons/fluent'
|
import { Lottery24Filled, PeopleQueue24Filled, TabletSpeaker24Filled } from '@vicons/fluent'
|
||||||
import { Moon, MusicalNote, Sunny } from '@vicons/ionicons5'
|
import { Moon, MusicalNote, Sunny } from '@vicons/ionicons5'
|
||||||
import { useElementSize, useStorage } from '@vueuse/core'
|
import { useElementSize, useStorage } from '@vueuse/core'
|
||||||
import {
|
import {
|
||||||
@@ -74,7 +74,8 @@ const menuOptions = [
|
|||||||
),
|
),
|
||||||
key: 'open-live-song-request',
|
key: 'open-live-song-request',
|
||||||
icon: renderIcon(MusicalNote),
|
icon: renderIcon(MusicalNote),
|
||||||
},{
|
},
|
||||||
|
{
|
||||||
label: () =>
|
label: () =>
|
||||||
h(
|
h(
|
||||||
RouterLink,
|
RouterLink,
|
||||||
@@ -89,6 +90,21 @@ const menuOptions = [
|
|||||||
key: 'open-live-queue',
|
key: 'open-live-queue',
|
||||||
icon: renderIcon(PeopleQueue24Filled),
|
icon: renderIcon(PeopleQueue24Filled),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: () =>
|
||||||
|
h(
|
||||||
|
RouterLink,
|
||||||
|
{
|
||||||
|
to: {
|
||||||
|
name: 'open-live-speech',
|
||||||
|
query: route.query,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ default: () => '读弹幕' }
|
||||||
|
),
|
||||||
|
key: 'open-live-speech',
|
||||||
|
icon: renderIcon(TabletSpeaker24Filled),
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
function renderIcon(icon: unknown) {
|
function renderIcon(icon: unknown) {
|
||||||
|
|||||||
@@ -33,6 +33,13 @@ const accountInfo = useAccount()
|
|||||||
<NButton @click="$router.push({ name: 'open-live-queue', query: $route.query })" type="primary"> 前往使用 </NButton>
|
<NButton @click="$router.push({ name: 'open-live-queue', query: $route.query })" type="primary"> 前往使用 </NButton>
|
||||||
</template>
|
</template>
|
||||||
</NCard>
|
</NCard>
|
||||||
|
|
||||||
|
<NCard hoverable embedded size="small" title="读弹幕" style="width: 300px">
|
||||||
|
通过浏览器自带的tts服务读弹幕 (此功能需要 Chrome, Edge 等现代浏览器!)
|
||||||
|
<template #footer>
|
||||||
|
<NButton @click="$router.push({ name: 'open-live-speech', query: $route.query })" type="primary"> 前往使用 </NButton>
|
||||||
|
</template>
|
||||||
|
</NCard>
|
||||||
</NSpace>
|
</NSpace>
|
||||||
<br />
|
<br />
|
||||||
<NAlert v-if="accountInfo?.eventFetcherOnline != true" type="warning" title="可用性警告" style="max-width: 600px; margin: 0 auto">
|
<NAlert v-if="accountInfo?.eventFetcherOnline != true" type="warning" title="可用性警告" style="max-width: 600px; margin: 0 auto">
|
||||||
|
|||||||
@@ -8,29 +8,20 @@ import {
|
|||||||
QueueGiftFilterType,
|
QueueGiftFilterType,
|
||||||
QueueSortType,
|
QueueSortType,
|
||||||
Setting_Queue,
|
Setting_Queue,
|
||||||
Setting_SongRequest,
|
|
||||||
SongFrom,
|
|
||||||
QueueFrom,
|
QueueFrom,
|
||||||
SongRequestInfo,
|
|
||||||
QueueStatus,
|
QueueStatus,
|
||||||
DanmakuUserInfo,
|
DanmakuUserInfo,
|
||||||
SongsInfo,
|
|
||||||
ResponseQueueModel,
|
ResponseQueueModel,
|
||||||
} from '@/api/api-models'
|
} from '@/api/api-models'
|
||||||
import { QueryGetAPI, QueryPostAPI, QueryPostAPIWithParams } from '@/api/query'
|
import { QueryGetAPI, QueryPostAPI, QueryPostAPIWithParams } from '@/api/query'
|
||||||
import DanmakuClient, { AuthInfo, DanmakuInfo, GiftInfo, RoomAuthInfo, SCInfo } from '@/data/DanmakuClient'
|
import DanmakuClient, { AuthInfo, DanmakuInfo, GiftInfo, RoomAuthInfo, SCInfo } from '@/data/DanmakuClient'
|
||||||
import { OPEN_LIVE_API_URL, SONG_API_URL, QUEUE_API_URL } from '@/data/constants'
|
import { QUEUE_API_URL } from '@/data/constants'
|
||||||
import {
|
import {
|
||||||
Check24Filled,
|
|
||||||
Checkmark12Regular,
|
Checkmark12Regular,
|
||||||
ClipboardTextLtr24Filled,
|
ClipboardTextLtr24Filled,
|
||||||
Delete24Filled,
|
Delete24Filled,
|
||||||
Dismiss12Filled,
|
|
||||||
Dismiss16Filled,
|
Dismiss16Filled,
|
||||||
Info24Filled,
|
|
||||||
Mic24Filled,
|
|
||||||
PeopleQueue24Filled,
|
PeopleQueue24Filled,
|
||||||
Play24Filled,
|
|
||||||
PresenceBlocked16Regular,
|
PresenceBlocked16Regular,
|
||||||
} from '@vicons/fluent'
|
} from '@vicons/fluent'
|
||||||
import { ReloadCircleSharp } from '@vicons/ionicons5'
|
import { ReloadCircleSharp } from '@vicons/ionicons5'
|
||||||
@@ -47,7 +38,6 @@ import {
|
|||||||
NCollapseItem,
|
NCollapseItem,
|
||||||
NDataTable,
|
NDataTable,
|
||||||
NDivider,
|
NDivider,
|
||||||
NEllipsis,
|
|
||||||
NEmpty,
|
NEmpty,
|
||||||
NIcon,
|
NIcon,
|
||||||
NInput,
|
NInput,
|
||||||
@@ -59,7 +49,6 @@ import {
|
|||||||
NListItem,
|
NListItem,
|
||||||
NModal,
|
NModal,
|
||||||
NPopconfirm,
|
NPopconfirm,
|
||||||
NRadio,
|
|
||||||
NRadioButton,
|
NRadioButton,
|
||||||
NRadioGroup,
|
NRadioGroup,
|
||||||
NSelect,
|
NSelect,
|
||||||
@@ -78,7 +67,6 @@ import {
|
|||||||
} from 'naive-ui'
|
} from 'naive-ui'
|
||||||
import { computed, h, onActivated, onDeactivated, onMounted, onUnmounted, ref } from 'vue'
|
import { computed, h, onActivated, onDeactivated, onMounted, onUnmounted, ref } from 'vue'
|
||||||
import { useRoute } from 'vue-router'
|
import { useRoute } from 'vue-router'
|
||||||
import SongRequestOBS from '../obs/SongRequestOBS.vue'
|
|
||||||
import QueueOBS from '../obs/QueueOBS.vue'
|
import QueueOBS from '../obs/QueueOBS.vue'
|
||||||
|
|
||||||
const defaultSettings = {
|
const defaultSettings = {
|
||||||
|
|||||||
438
src/views/open_live/ReadDanmaku.vue
Normal file
438
src/views/open_live/ReadDanmaku.vue
Normal file
@@ -0,0 +1,438 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { computed, onMounted, onUnmounted, ref } from 'vue'
|
||||||
|
import EasySpeech from 'easy-speech'
|
||||||
|
import { NButton, NDivider, NIcon, NInput, NInputGroup, NInputGroupLabel, NPopconfirm, NSelect, NSlider, NSpace, NTag, NText, NTooltip, useMessage } from 'naive-ui'
|
||||||
|
import { useRoute } from 'vue-router'
|
||||||
|
import { useStorage } from '@vueuse/core'
|
||||||
|
import { Queue } from 'queue-typescript'
|
||||||
|
import DanmakuClient, { DanmakuInfo, RoomAuthInfo } from '@/data/DanmakuClient'
|
||||||
|
import { EventDataTypes, EventModel } from '@/api/api-models'
|
||||||
|
import { useAccount } from '@/api/account'
|
||||||
|
import { Mic24Filled } from '@vicons/fluent'
|
||||||
|
import { copyToClipboard } from '@/Utils'
|
||||||
|
import { QueryGetAPI, QueryPostAPI } from '@/api/query'
|
||||||
|
import { VTSURU_API_URL } from '@/data/constants'
|
||||||
|
|
||||||
|
const props = defineProps<{
|
||||||
|
client: DanmakuClient
|
||||||
|
roomInfo: RoomAuthInfo
|
||||||
|
code: string | undefined
|
||||||
|
isOpenLive?: boolean
|
||||||
|
}>()
|
||||||
|
|
||||||
|
type SpeechSettings = {
|
||||||
|
speechInfo: SpeechInfo
|
||||||
|
danmakuTemplate: string
|
||||||
|
scTemplate: string
|
||||||
|
guardTemplate: string
|
||||||
|
giftTemplate: string
|
||||||
|
}
|
||||||
|
type SpeechInfo = {
|
||||||
|
volume: number
|
||||||
|
pitch: number
|
||||||
|
rate: number
|
||||||
|
voice: string
|
||||||
|
}
|
||||||
|
|
||||||
|
const accountInfo = useAccount()
|
||||||
|
const message = useMessage()
|
||||||
|
const route = useRoute()
|
||||||
|
const settings = useStorage<SpeechSettings>('Setting.Speech.Settings', {
|
||||||
|
speechInfo: {
|
||||||
|
volume: 1,
|
||||||
|
pitch: 1,
|
||||||
|
rate: 1,
|
||||||
|
voice: '',
|
||||||
|
},
|
||||||
|
danmakuTemplate: '{name} 说: {message}',
|
||||||
|
scTemplate: '{name} 发送了醒目留言: {message}',
|
||||||
|
guardTemplate: '感谢 {name} 的 {count} 个月 {guard_level}',
|
||||||
|
giftTemplate: '感谢 {name} 赠送的 {count} 个 {gift_name}',
|
||||||
|
})
|
||||||
|
const speechSynthesisInfo = ref<{
|
||||||
|
speechSynthesis: SpeechSynthesis | undefined
|
||||||
|
speechSynthesisUtterance: SpeechSynthesisUtterance | undefined
|
||||||
|
speechSynthesisVoice: SpeechSynthesisVoice | undefined
|
||||||
|
speechSynthesisEvent: SpeechSynthesisEvent | undefined
|
||||||
|
speechSynthesisErrorEvent: SpeechSynthesisErrorEvent | undefined
|
||||||
|
onvoiceschanged: boolean
|
||||||
|
onboundary: boolean
|
||||||
|
onend: boolean
|
||||||
|
onerror: boolean
|
||||||
|
onmark: boolean
|
||||||
|
onpause: boolean
|
||||||
|
onresume: boolean
|
||||||
|
onstart: boolean
|
||||||
|
}>()
|
||||||
|
const languageDisplayName = new Intl.DisplayNames(['zh'], { type: 'language' })
|
||||||
|
const voiceOptions = computed(() => {
|
||||||
|
return EasySpeech.voices().map((v) => {
|
||||||
|
return {
|
||||||
|
label: `[${languageDisplayName.of(v.lang)}] ${v.name}`,
|
||||||
|
value: v.name,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
const isSpeaking = ref(false)
|
||||||
|
const speakQueue = new Queue<string>()
|
||||||
|
|
||||||
|
const canSpeech = ref(false)
|
||||||
|
const readedDanmaku = ref(0)
|
||||||
|
|
||||||
|
const templateConstants = {
|
||||||
|
name: {
|
||||||
|
name: '用户名',
|
||||||
|
words: '{name}',
|
||||||
|
regex: /\{\s*name\s*\}/gi,
|
||||||
|
},
|
||||||
|
message: {
|
||||||
|
name: '弹幕内容',
|
||||||
|
words: '{message}',
|
||||||
|
regex: /\{\s*message\s*\}/gi,
|
||||||
|
},
|
||||||
|
guard_level: {
|
||||||
|
name: '舰长等级',
|
||||||
|
words: '{guard_level}',
|
||||||
|
regex: /\{\s*guard_level\s*\}/gi,
|
||||||
|
},
|
||||||
|
guard_num: {
|
||||||
|
name: '上舰数量',
|
||||||
|
words: '{guard_num}',
|
||||||
|
regex: /\{\s*guard_num\s*\}/gi,
|
||||||
|
},
|
||||||
|
fans_medal_level: {
|
||||||
|
name: '粉丝勋章等级',
|
||||||
|
words: '{fans_medal_level}',
|
||||||
|
regex: /\{\s*fans_medal_level\s*\}/gi,
|
||||||
|
},
|
||||||
|
price: {
|
||||||
|
name: '价格',
|
||||||
|
words: '{price}',
|
||||||
|
regex: /\{\s*price\s*\}/gi,
|
||||||
|
},
|
||||||
|
count: {
|
||||||
|
name: '数量',
|
||||||
|
words: '{count}',
|
||||||
|
regex: /\{\s*count\s*\}/gi,
|
||||||
|
},
|
||||||
|
gift_name: {
|
||||||
|
name: '礼物名称',
|
||||||
|
words: '{gift_name}',
|
||||||
|
regex: /\{\s*gift_name\s*\}/gi,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
const speechCount = ref(0)
|
||||||
|
async function speak() {
|
||||||
|
if (isSpeaking.value) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const text = speakQueue.dequeue()
|
||||||
|
if (text) {
|
||||||
|
isSpeaking.value = true
|
||||||
|
speechCount.value--
|
||||||
|
readedDanmaku.value++
|
||||||
|
console.log(`[TTS] 正在朗读: ${text}`)
|
||||||
|
await EasySpeech.speak({
|
||||||
|
text: text,
|
||||||
|
volume: settings.value.speechInfo.volume,
|
||||||
|
pitch: settings.value.speechInfo.pitch,
|
||||||
|
rate: settings.value.speechInfo.rate,
|
||||||
|
voice: EasySpeech.voices().find((v) => v.name == settings.value.speechInfo.voice) ?? undefined,
|
||||||
|
})
|
||||||
|
.then(() => {})
|
||||||
|
.catch((error) => {
|
||||||
|
if (error.error == 'interrupted') {
|
||||||
|
//被中断
|
||||||
|
return
|
||||||
|
}
|
||||||
|
console.log(error)
|
||||||
|
message.error('无法播放语音: ' + error.error)
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
isSpeaking.value = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function onGetEvent(data: EventModel) {
|
||||||
|
if (!canSpeech.value) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (data.type == EventDataTypes.Message && (data.emoji || /^(?:\[\w+\])+$/.test(data.msg))) {
|
||||||
|
// 不支持表情
|
||||||
|
return
|
||||||
|
}
|
||||||
|
onGetEventInternal(data)
|
||||||
|
}
|
||||||
|
function onGetEventInternal(data: EventModel) {
|
||||||
|
let text: string
|
||||||
|
switch (data.type) {
|
||||||
|
case EventDataTypes.Message:
|
||||||
|
if (!settings.value.danmakuTemplate) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
text = settings.value.danmakuTemplate
|
||||||
|
break
|
||||||
|
case EventDataTypes.SC:
|
||||||
|
if (!settings.value.scTemplate) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
text = settings.value.scTemplate
|
||||||
|
break
|
||||||
|
case EventDataTypes.Guard:
|
||||||
|
if (!settings.value.guardTemplate) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
text = settings.value.guardTemplate
|
||||||
|
break
|
||||||
|
case EventDataTypes.Gift:
|
||||||
|
if (!settings.value.giftTemplate) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
text = settings.value.giftTemplate
|
||||||
|
break
|
||||||
|
}
|
||||||
|
text = text
|
||||||
|
.replace(templateConstants.name.regex, data.name)
|
||||||
|
.replace(templateConstants.count.regex, data.num.toString())
|
||||||
|
.replace(templateConstants.price.regex, data.price.toString())
|
||||||
|
.replace(templateConstants.message.regex, data.msg)
|
||||||
|
.replace(templateConstants.guard_level.regex, data.guard_level == 1 ? '总督' : data.guard_level == 2 ? '提督' : data.guard_level == 3 ? '舰长' : '')
|
||||||
|
.replace(templateConstants.fans_medal_level.regex, data.fans_medal_level.toString())
|
||||||
|
|
||||||
|
if (data.type === EventDataTypes.Message) {
|
||||||
|
text = text.replace(/\[.*?\]/g, ' ') //删除表情
|
||||||
|
} else if (data.type === EventDataTypes.Gift) {
|
||||||
|
text = text.replace(templateConstants.gift_name.regex, data.msg)
|
||||||
|
} else if (data.type === EventDataTypes.Guard) {
|
||||||
|
text = text.replace(templateConstants.guard_num.regex, data.num.toString())
|
||||||
|
}
|
||||||
|
speakQueue.enqueue(text)
|
||||||
|
speechCount.value++
|
||||||
|
}
|
||||||
|
function startSpeech() {
|
||||||
|
canSpeech.value = true
|
||||||
|
message.success('服务已启动')
|
||||||
|
}
|
||||||
|
function stopSpeech() {
|
||||||
|
canSpeech.value = false
|
||||||
|
message.success('已停止监听')
|
||||||
|
}
|
||||||
|
function cancelSpeech() {
|
||||||
|
EasySpeech.cancel()
|
||||||
|
}
|
||||||
|
async function uploadConfig() {
|
||||||
|
await QueryPostAPI(VTSURU_API_URL + 'set-config', {
|
||||||
|
name: 'Speech',
|
||||||
|
json: JSON.stringify(settings.value),
|
||||||
|
})
|
||||||
|
.then((data) => {
|
||||||
|
if (data.code == 200) {
|
||||||
|
message.success('已保存至服务器')
|
||||||
|
} else {
|
||||||
|
message.error('保存失败: ' + data.message)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
message.error('保存失败')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
async function downloadConfig() {
|
||||||
|
await QueryGetAPI<string>(VTSURU_API_URL + 'get-config', {
|
||||||
|
name: 'Speech',
|
||||||
|
})
|
||||||
|
.then((data) => {
|
||||||
|
if (data.code == 200) {
|
||||||
|
settings.value = JSON.parse(data.data)
|
||||||
|
message.success('已获取配置文件')
|
||||||
|
} else if (data.code == 404) {
|
||||||
|
message.error('未上传配置文件')
|
||||||
|
} else {
|
||||||
|
message.error('获取失败: ' + data.message)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
message.error('获取失败')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function test(type: EventDataTypes) {
|
||||||
|
switch (type) {
|
||||||
|
case EventDataTypes.Message:
|
||||||
|
onGetEventInternal({
|
||||||
|
type: EventDataTypes.Message,
|
||||||
|
name: accountInfo.value?.name ?? '未知用户',
|
||||||
|
uid: accountInfo.value?.biliId ?? 0,
|
||||||
|
msg: '测试弹幕',
|
||||||
|
price: 0,
|
||||||
|
num: 0,
|
||||||
|
time: Date.now(),
|
||||||
|
guard_level: 0,
|
||||||
|
fans_medal_level: 1,
|
||||||
|
fans_medal_name: '',
|
||||||
|
fans_medal_wearing_status: false,
|
||||||
|
emoji: undefined,
|
||||||
|
avatar: '',
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case EventDataTypes.SC:
|
||||||
|
onGetEventInternal({
|
||||||
|
type: EventDataTypes.SC,
|
||||||
|
name: accountInfo.value?.name ?? '未知用户',
|
||||||
|
uid: accountInfo.value?.biliId ?? 0,
|
||||||
|
msg: '测试sc',
|
||||||
|
price: 30,
|
||||||
|
num: 1,
|
||||||
|
time: Date.now(),
|
||||||
|
guard_level: 0,
|
||||||
|
fans_medal_level: 1,
|
||||||
|
fans_medal_name: '',
|
||||||
|
fans_medal_wearing_status: false,
|
||||||
|
emoji: undefined,
|
||||||
|
avatar: '',
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case EventDataTypes.Guard:
|
||||||
|
onGetEventInternal({
|
||||||
|
type: EventDataTypes.Guard,
|
||||||
|
name: accountInfo.value?.name ?? '未知用户',
|
||||||
|
uid: accountInfo.value?.biliId ?? 0,
|
||||||
|
msg: '舰长',
|
||||||
|
price: 0,
|
||||||
|
num: 1,
|
||||||
|
time: Date.now(),
|
||||||
|
guard_level: 3,
|
||||||
|
fans_medal_level: 1,
|
||||||
|
fans_medal_name: '',
|
||||||
|
fans_medal_wearing_status: false,
|
||||||
|
emoji: undefined,
|
||||||
|
avatar: '',
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case EventDataTypes.Gift:
|
||||||
|
onGetEventInternal({
|
||||||
|
type: EventDataTypes.Gift,
|
||||||
|
name: accountInfo.value?.name ?? '未知用户',
|
||||||
|
uid: accountInfo.value?.biliId ?? 0,
|
||||||
|
msg: '测试礼物',
|
||||||
|
price: 5,
|
||||||
|
num: 5,
|
||||||
|
time: Date.now(),
|
||||||
|
guard_level: 0,
|
||||||
|
fans_medal_level: 1,
|
||||||
|
fans_medal_name: '',
|
||||||
|
fans_medal_wearing_status: false,
|
||||||
|
emoji: undefined,
|
||||||
|
avatar: '',
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let speechQueueTimer: any
|
||||||
|
onMounted(() => {
|
||||||
|
speechSynthesisInfo.value = EasySpeech.detect()
|
||||||
|
speechQueueTimer = setInterval(() => {
|
||||||
|
speak()
|
||||||
|
}, 100)
|
||||||
|
|
||||||
|
props.client.onEvent('danmaku', onGetEvent)
|
||||||
|
props.client.onEvent('sc', onGetEvent)
|
||||||
|
props.client.onEvent('guard', onGetEvent)
|
||||||
|
props.client.onEvent('gift', onGetEvent)
|
||||||
|
})
|
||||||
|
onUnmounted(() => {
|
||||||
|
clearInterval(speechQueueTimer)
|
||||||
|
props.client.offEvent('danmaku', onGetEvent)
|
||||||
|
props.client.offEvent('sc', onGetEvent)
|
||||||
|
props.client.offEvent('guard', onGetEvent)
|
||||||
|
props.client.offEvent('gift', onGetEvent)
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<NSpace>
|
||||||
|
<NButton @click="canSpeech ? stopSpeech() : startSpeech()" :type="canSpeech ? 'error' : 'primary'"> {{ canSpeech ? '停止监听' : '开始监听' }} </NButton>
|
||||||
|
<NButton @click="uploadConfig" type="primary" secondary> 保存配置到服务器 </NButton>
|
||||||
|
<NPopconfirm @positive-click="downloadConfig">
|
||||||
|
<template #trigger>
|
||||||
|
<NButton type="primary" secondary> 从服务器获取配置 </NButton>
|
||||||
|
</template>
|
||||||
|
这将覆盖当前设置, 确定?
|
||||||
|
</NPopconfirm>
|
||||||
|
</NSpace>
|
||||||
|
<template v-if="canSpeech">
|
||||||
|
<NDivider> 状态 </NDivider>
|
||||||
|
<NSpace vertical align="center">
|
||||||
|
<NTooltip>
|
||||||
|
<template #trigger>
|
||||||
|
<NButton circle :disabled="!isSpeaking" @click="cancelSpeech" :style="`animation: ${isSpeaking ? 'animated-border 2.5s infinite;' : ''}`">
|
||||||
|
<template #icon>
|
||||||
|
<NIcon :component="Mic24Filled" :color="isSpeaking ? 'green' : 'gray'" />
|
||||||
|
</template>
|
||||||
|
</NButton>
|
||||||
|
</template>
|
||||||
|
{{ isSpeaking ? '取消朗读' : '未朗读' }}
|
||||||
|
</NTooltip>
|
||||||
|
<NText depth="3"> 队列: {{ speechCount }} <NDivider vertical /> 已读: {{readedDanmaku }} 条 </NText>
|
||||||
|
</NSpace>
|
||||||
|
</template>
|
||||||
|
<NDivider />
|
||||||
|
<NSpace vertical>
|
||||||
|
<NSelect v-model:value="settings.speechInfo.voice" :options="voiceOptions" :fallback-option="() => ({ label: '未选择, 将使用默认语音', value: '' })" />
|
||||||
|
<span style="width: 100%">
|
||||||
|
<NText> 音量 </NText>
|
||||||
|
<NSlider style="min-width: 200px" v-model:value="settings.speechInfo.volume" :min="0" :max="1" :step="0.01" />
|
||||||
|
</span>
|
||||||
|
<span style="width: 100%">
|
||||||
|
<NText> 音调 </NText>
|
||||||
|
<NSlider style="min-width: 200px" v-model:value="settings.speechInfo.pitch" :min="0" :max="2" :step="0.01" />
|
||||||
|
</span>
|
||||||
|
<span style="width: 100%">
|
||||||
|
<NText> 语速 </NText>
|
||||||
|
<NSlider style="min-width: 200px" v-model:value="settings.speechInfo.rate" :min="0" :max="2" :step="0.01" />
|
||||||
|
</span>
|
||||||
|
</NSpace>
|
||||||
|
<NDivider> 自定义内容 </NDivider>
|
||||||
|
<NSpace vertical>
|
||||||
|
<NSpace>
|
||||||
|
支持的变量:
|
||||||
|
<NButton size="tiny" secondary v-for="item in Object.values(templateConstants)" :key="item.name" @click="copyToClipboard(item.words)"> {{ item.words }} | {{ item.name }} </NButton>
|
||||||
|
</NSpace>
|
||||||
|
<NInputGroup>
|
||||||
|
<NInputGroupLabel> 弹幕模板 </NInputGroupLabel>
|
||||||
|
<NInput v-model:value="settings.danmakuTemplate" placeholder="弹幕消息" />
|
||||||
|
<NButton @click="test(EventDataTypes.Message)" type="info"> 测试 </NButton>
|
||||||
|
</NInputGroup>
|
||||||
|
<NInputGroup>
|
||||||
|
<NInputGroupLabel> 礼物模板 </NInputGroupLabel>
|
||||||
|
<NInput v-model:value="settings.giftTemplate" placeholder="礼物消息" />
|
||||||
|
<NButton @click="test(EventDataTypes.Gift)" type="info"> 测试 </NButton>
|
||||||
|
</NInputGroup>
|
||||||
|
<NInputGroup>
|
||||||
|
<NInputGroupLabel> SC模板 </NInputGroupLabel>
|
||||||
|
<NInput v-model:value="settings.scTemplate" placeholder="SC消息" />
|
||||||
|
<NButton @click="test(EventDataTypes.SC)" type="info"> 测试 </NButton>
|
||||||
|
</NInputGroup>
|
||||||
|
<NInputGroup>
|
||||||
|
<NInputGroupLabel> 上舰模板 </NInputGroupLabel>
|
||||||
|
<NInput v-model:value="settings.guardTemplate" placeholder="上舰消息" />
|
||||||
|
<NButton @click="test(EventDataTypes.Guard)" type="info"> 测试 </NButton>
|
||||||
|
</NInputGroup>
|
||||||
|
</NSpace>
|
||||||
|
<NDivider> 设置 </NDivider>
|
||||||
|
<NText depth="3">
|
||||||
|
没想好需要什么, 有建议的话可以和我说
|
||||||
|
</NText>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@keyframes animated-border {
|
||||||
|
0% {
|
||||||
|
box-shadow: 0 0 0px #589580;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
box-shadow: 0 0 0 4px rgba(255, 255, 255, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
648
yarn.lock
648
yarn.lock
@@ -8,11 +8,11 @@
|
|||||||
integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
|
integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
|
||||||
|
|
||||||
"@babel/code-frame@^7.0.0":
|
"@babel/code-frame@^7.0.0":
|
||||||
version "7.22.13"
|
version "7.23.5"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e"
|
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244"
|
||||||
integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==
|
integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/highlight" "^7.22.13"
|
"@babel/highlight" "^7.23.4"
|
||||||
chalk "^2.4.2"
|
chalk "^2.4.2"
|
||||||
|
|
||||||
"@babel/eslint-parser@^7.21.3":
|
"@babel/eslint-parser@^7.21.3":
|
||||||
@@ -29,31 +29,24 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
|
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
|
||||||
integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
|
integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
|
||||||
|
|
||||||
"@babel/highlight@^7.22.13":
|
"@babel/highlight@^7.23.4":
|
||||||
version "7.22.20"
|
version "7.23.4"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54"
|
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b"
|
||||||
integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==
|
integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-validator-identifier" "^7.22.20"
|
"@babel/helper-validator-identifier" "^7.22.20"
|
||||||
chalk "^2.4.2"
|
chalk "^2.4.2"
|
||||||
js-tokens "^4.0.0"
|
js-tokens "^4.0.0"
|
||||||
|
|
||||||
"@babel/parser@^7.23.0":
|
"@babel/parser@^7.23.5":
|
||||||
version "7.23.3"
|
version "7.23.6"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.3.tgz#0ce0be31a4ca4f1884b5786057cadcb6c3be58f9"
|
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b"
|
||||||
integrity sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==
|
integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==
|
||||||
|
|
||||||
"@babel/runtime@^7.21.0":
|
"@babel/runtime@^7.21.0", "@babel/runtime@^7.23.5", "@babel/runtime@^7.23.6":
|
||||||
version "7.23.2"
|
version "7.23.6"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885"
|
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d"
|
||||||
integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==
|
integrity sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==
|
||||||
dependencies:
|
|
||||||
regenerator-runtime "^0.14.0"
|
|
||||||
|
|
||||||
"@babel/runtime@^7.23.4":
|
|
||||||
version "7.23.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.4.tgz#36fa1d2b36db873d25ec631dcc4923fdc1cf2e2e"
|
|
||||||
integrity sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
regenerator-runtime "^0.14.0"
|
regenerator-runtime "^0.14.0"
|
||||||
|
|
||||||
@@ -194,10 +187,10 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63"
|
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63"
|
||||||
integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==
|
integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==
|
||||||
|
|
||||||
"@eslint/eslintrc@^2.1.3":
|
"@eslint/eslintrc@^2.1.4":
|
||||||
version "2.1.3"
|
version "2.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d"
|
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad"
|
||||||
integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==
|
integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
ajv "^6.12.4"
|
ajv "^6.12.4"
|
||||||
debug "^4.3.2"
|
debug "^4.3.2"
|
||||||
@@ -209,10 +202,10 @@
|
|||||||
minimatch "^3.1.2"
|
minimatch "^3.1.2"
|
||||||
strip-json-comments "^3.1.1"
|
strip-json-comments "^3.1.1"
|
||||||
|
|
||||||
"@eslint/js@8.54.0":
|
"@eslint/js@8.56.0":
|
||||||
version "8.54.0"
|
version "8.56.0"
|
||||||
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf"
|
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b"
|
||||||
integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==
|
integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==
|
||||||
|
|
||||||
"@humanwhocodes/config-array@^0.11.13":
|
"@humanwhocodes/config-array@^0.11.13":
|
||||||
version "0.11.13"
|
version "0.11.13"
|
||||||
@@ -271,116 +264,100 @@
|
|||||||
"@nodelib/fs.scandir" "2.1.5"
|
"@nodelib/fs.scandir" "2.1.5"
|
||||||
fastq "^1.6.0"
|
fastq "^1.6.0"
|
||||||
|
|
||||||
"@octokit/auth-token@^3.0.0":
|
"@octokit/auth-token@^4.0.0":
|
||||||
version "3.0.4"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.4.tgz#70e941ba742bdd2b49bdb7393e821dea8520a3db"
|
resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7"
|
||||||
integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==
|
integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==
|
||||||
|
|
||||||
"@octokit/core@^4.2.1":
|
"@octokit/core@^5.0.0":
|
||||||
version "4.2.4"
|
version "5.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.4.tgz#d8769ec2b43ff37cc3ea89ec4681a20ba58ef907"
|
resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.0.2.tgz#ae7c5d61fdd98ba348a27c3cc510879a130b1234"
|
||||||
integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==
|
integrity sha512-cZUy1gUvd4vttMic7C0lwPed8IYXWYp8kHIMatyhY8t8n3Cpw2ILczkV5pGMPqef7v0bLo0pOHrEHarsau2Ydg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/auth-token" "^3.0.0"
|
"@octokit/auth-token" "^4.0.0"
|
||||||
"@octokit/graphql" "^5.0.0"
|
"@octokit/graphql" "^7.0.0"
|
||||||
"@octokit/request" "^6.0.0"
|
"@octokit/request" "^8.0.2"
|
||||||
"@octokit/request-error" "^3.0.0"
|
"@octokit/request-error" "^5.0.0"
|
||||||
"@octokit/types" "^9.0.0"
|
"@octokit/types" "^12.0.0"
|
||||||
before-after-hook "^2.2.0"
|
before-after-hook "^2.2.0"
|
||||||
universal-user-agent "^6.0.0"
|
universal-user-agent "^6.0.0"
|
||||||
|
|
||||||
"@octokit/endpoint@^7.0.0":
|
"@octokit/endpoint@^9.0.0":
|
||||||
version "7.0.6"
|
version "9.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.6.tgz#791f65d3937555141fb6c08f91d618a7d645f1e2"
|
resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.4.tgz#8afda5ad1ffc3073d08f2b450964c610b821d1ea"
|
||||||
integrity sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==
|
integrity sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/types" "^9.0.0"
|
"@octokit/types" "^12.0.0"
|
||||||
is-plain-object "^5.0.0"
|
|
||||||
universal-user-agent "^6.0.0"
|
universal-user-agent "^6.0.0"
|
||||||
|
|
||||||
"@octokit/graphql@^5.0.0":
|
"@octokit/graphql@^7.0.0":
|
||||||
version "5.0.6"
|
version "7.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.6.tgz#9eac411ac4353ccc5d3fca7d76736e6888c5d248"
|
resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.0.2.tgz#3df14b9968192f9060d94ed9e3aa9780a76e7f99"
|
||||||
integrity sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==
|
integrity sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/request" "^6.0.0"
|
"@octokit/request" "^8.0.1"
|
||||||
"@octokit/types" "^9.0.0"
|
"@octokit/types" "^12.0.0"
|
||||||
universal-user-agent "^6.0.0"
|
universal-user-agent "^6.0.0"
|
||||||
|
|
||||||
"@octokit/openapi-types@^18.0.0":
|
"@octokit/openapi-types@^19.1.0":
|
||||||
version "18.1.1"
|
version "19.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.1.1.tgz#09bdfdabfd8e16d16324326da5148010d765f009"
|
resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-19.1.0.tgz#75ec7e64743870fc73e1ab4bc6ec252ecdd624dc"
|
||||||
integrity sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==
|
integrity sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==
|
||||||
|
|
||||||
"@octokit/plugin-paginate-rest@^6.1.2":
|
"@octokit/plugin-paginate-rest@^9.0.0":
|
||||||
version "6.1.2"
|
version "9.1.5"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz#f86456a7a1fe9e58fec6385a85cf1b34072341f8"
|
resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz#1705bcef4dcde1f4015ee58a63dc61b68648f480"
|
||||||
integrity sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==
|
integrity sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/tsconfig" "^1.0.2"
|
"@octokit/types" "^12.4.0"
|
||||||
"@octokit/types" "^9.2.3"
|
|
||||||
|
|
||||||
"@octokit/plugin-request-log@^1.0.4":
|
"@octokit/plugin-request-log@^4.0.0":
|
||||||
version "1.0.4"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85"
|
resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-4.0.0.tgz#260fa6970aa97bbcbd91f99f3cd812e2b285c9f1"
|
||||||
integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==
|
integrity sha512-2uJI1COtYCq8Z4yNSnM231TgH50bRkheQ9+aH8TnZanB6QilOnx8RMD2qsnamSOXtDj0ilxvevf5fGsBhBBzKA==
|
||||||
|
|
||||||
"@octokit/plugin-rest-endpoint-methods@^7.1.2":
|
"@octokit/plugin-rest-endpoint-methods@^10.0.0":
|
||||||
version "7.2.3"
|
version "10.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz#37a84b171a6cb6658816c82c4082ac3512021797"
|
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.2.0.tgz#eeaa4de97a2ae26404dea30ce3e17b11928e027c"
|
||||||
integrity sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==
|
integrity sha512-ePbgBMYtGoRNXDyKGvr9cyHjQ163PbwD0y1MkDJCpkO2YH4OeXX40c4wYHKikHGZcpGPbcRLuy0unPUuafco8Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/types" "^10.0.0"
|
"@octokit/types" "^12.3.0"
|
||||||
|
|
||||||
"@octokit/request-error@^3.0.0":
|
"@octokit/request-error@^5.0.0":
|
||||||
version "3.0.3"
|
version "5.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.3.tgz#ef3dd08b8e964e53e55d471acfe00baa892b9c69"
|
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.0.1.tgz#277e3ce3b540b41525e07ba24c5ef5e868a72db9"
|
||||||
integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==
|
integrity sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/types" "^9.0.0"
|
"@octokit/types" "^12.0.0"
|
||||||
deprecation "^2.0.0"
|
deprecation "^2.0.0"
|
||||||
once "^1.4.0"
|
once "^1.4.0"
|
||||||
|
|
||||||
"@octokit/request@^6.0.0":
|
"@octokit/request@^8.0.1", "@octokit/request@^8.0.2":
|
||||||
version "6.2.8"
|
version "8.1.6"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.8.tgz#aaf480b32ab2b210e9dadd8271d187c93171d8eb"
|
resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.1.6.tgz#a76a859c30421737a3918b40973c2ff369009571"
|
||||||
integrity sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==
|
integrity sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/endpoint" "^7.0.0"
|
"@octokit/endpoint" "^9.0.0"
|
||||||
"@octokit/request-error" "^3.0.0"
|
"@octokit/request-error" "^5.0.0"
|
||||||
"@octokit/types" "^9.0.0"
|
"@octokit/types" "^12.0.0"
|
||||||
is-plain-object "^5.0.0"
|
|
||||||
node-fetch "^2.6.7"
|
|
||||||
universal-user-agent "^6.0.0"
|
universal-user-agent "^6.0.0"
|
||||||
|
|
||||||
"@octokit/rest@^19.0.5":
|
"@octokit/rest@^20.0.2":
|
||||||
version "19.0.13"
|
version "20.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.13.tgz#e799393264edc6d3c67eeda9e5bd7832dcf974e4"
|
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-20.0.2.tgz#5cc8871ba01b14604439049e5f06c74b45c99594"
|
||||||
integrity sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==
|
integrity sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/core" "^4.2.1"
|
"@octokit/core" "^5.0.0"
|
||||||
"@octokit/plugin-paginate-rest" "^6.1.2"
|
"@octokit/plugin-paginate-rest" "^9.0.0"
|
||||||
"@octokit/plugin-request-log" "^1.0.4"
|
"@octokit/plugin-request-log" "^4.0.0"
|
||||||
"@octokit/plugin-rest-endpoint-methods" "^7.1.2"
|
"@octokit/plugin-rest-endpoint-methods" "^10.0.0"
|
||||||
|
|
||||||
"@octokit/tsconfig@^1.0.2":
|
"@octokit/types@^12.0.0", "@octokit/types@^12.3.0", "@octokit/types@^12.4.0":
|
||||||
version "1.0.2"
|
version "12.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/tsconfig/-/tsconfig-1.0.2.tgz#59b024d6f3c0ed82f00d08ead5b3750469125af7"
|
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-12.4.0.tgz#8f97b601e91ce6b9776ed8152217e77a71be7aac"
|
||||||
integrity sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==
|
integrity sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==
|
||||||
|
|
||||||
"@octokit/types@^10.0.0":
|
|
||||||
version "10.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-10.0.0.tgz#7ee19c464ea4ada306c43f1a45d444000f419a4a"
|
|
||||||
integrity sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/openapi-types" "^18.0.0"
|
"@octokit/openapi-types" "^19.1.0"
|
||||||
|
|
||||||
"@octokit/types@^9.0.0", "@octokit/types@^9.2.3":
|
|
||||||
version "9.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5"
|
|
||||||
integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==
|
|
||||||
dependencies:
|
|
||||||
"@octokit/openapi-types" "^18.0.0"
|
|
||||||
|
|
||||||
"@trysound/sax@0.2.0":
|
"@trysound/sax@0.2.0":
|
||||||
version "0.2.0"
|
version "0.2.0"
|
||||||
@@ -403,26 +380,26 @@
|
|||||||
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
|
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
|
||||||
|
|
||||||
"@types/katex@^0.16.2":
|
"@types/katex@^0.16.2":
|
||||||
version "0.16.6"
|
version "0.16.7"
|
||||||
resolved "https://registry.yarnpkg.com/@types/katex/-/katex-0.16.6.tgz#6dd82f78a1a1d2eceeff6bb97ba98d7c062454cb"
|
resolved "https://registry.yarnpkg.com/@types/katex/-/katex-0.16.7.tgz#03ab680ab4fa4fbc6cb46ecf987ecad5d8019868"
|
||||||
integrity sha512-rZYO1HInM99rAFYNwGqbYPxHZHxu2IwZYKj4bJ4oh6edVrm1UId8mmbHIZLBtG253qU6y3piag0XYe/joNnwzQ==
|
integrity sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==
|
||||||
|
|
||||||
"@types/lodash-es@^4.17.9":
|
"@types/lodash-es@^4.17.9":
|
||||||
version "4.17.11"
|
version "4.17.12"
|
||||||
resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.11.tgz#6ff7878f90371256a6fed0b7b4707d5d940d945b"
|
resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.12.tgz#65f6d1e5f80539aa7cfbfc962de5def0cf4f341b"
|
||||||
integrity sha512-eCw8FYAWHt2DDl77s+AMLLzPn310LKohruumpucZI4oOFJkIgnlaJcy23OKMJxx4r9PeTF13Gv6w+jqjWQaYUg==
|
integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/lodash" "*"
|
"@types/lodash" "*"
|
||||||
|
|
||||||
"@types/lodash@*", "@types/lodash@^4.14.198":
|
"@types/lodash@*", "@types/lodash@^4.14.198":
|
||||||
version "4.14.201"
|
version "4.14.202"
|
||||||
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.201.tgz#76f47cb63124e806824b6c18463daf3e1d480239"
|
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.202.tgz#f09dbd2fb082d507178b2f2a5c7e74bd72ff98f8"
|
||||||
integrity sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ==
|
integrity sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==
|
||||||
|
|
||||||
"@types/node@^20.2.5":
|
"@types/node@^20.2.5":
|
||||||
version "20.9.2"
|
version "20.10.4"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.2.tgz#002815c8e87fe0c9369121c78b52e800fadc0ac6"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.4.tgz#b246fd84d55d5b1b71bf51f964bd514409347198"
|
||||||
integrity sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==
|
integrity sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types "~5.26.4"
|
undici-types "~5.26.4"
|
||||||
|
|
||||||
@@ -432,9 +409,9 @@
|
|||||||
integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==
|
integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==
|
||||||
|
|
||||||
"@types/semver@^7.3.12":
|
"@types/semver@^7.3.12":
|
||||||
version "7.5.5"
|
version "7.5.6"
|
||||||
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.5.tgz#deed5ab7019756c9c90ea86139106b0346223f35"
|
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339"
|
||||||
integrity sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==
|
integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==
|
||||||
|
|
||||||
"@types/web-bluetooth@^0.0.20":
|
"@types/web-bluetooth@^0.0.20":
|
||||||
version "0.0.20"
|
version "0.0.20"
|
||||||
@@ -541,51 +518,51 @@
|
|||||||
integrity sha512-Iy1EUVRpX0WWxeu1VIReR1zsZLMc4fqpt223czR+Rpnrwu7pt46nbnC2ycO7ItI/uqDLJxnbcMC7FujKs9IfFA==
|
integrity sha512-Iy1EUVRpX0WWxeu1VIReR1zsZLMc4fqpt223czR+Rpnrwu7pt46nbnC2ycO7ItI/uqDLJxnbcMC7FujKs9IfFA==
|
||||||
|
|
||||||
"@vitejs/plugin-vue@^4.2.3":
|
"@vitejs/plugin-vue@^4.2.3":
|
||||||
version "4.5.0"
|
version "4.5.2"
|
||||||
resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.5.0.tgz#b4569fcb1faac054eba4f5efc1aaf4d39f4379e5"
|
resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.5.2.tgz#1212d81bc83680e14448fefe55abd9fe1ed49ed1"
|
||||||
integrity sha512-a2WSpP8X8HTEww/U00bU4mX1QpLINNuz/2KMNpLsdu3BzOpak3AGI1CJYBTXcc4SPhaD0eNRUp7IyQK405L5dQ==
|
integrity sha512-UGR3DlzLi/SaVBPX0cnSyE37vqxU3O6chn8l0HJNzQzDia6/Au2A4xKv+iIJW8w2daf80G7TYHhi1pAUjdZ0bQ==
|
||||||
|
|
||||||
"@vue/compiler-core@3.3.8":
|
"@vue/compiler-core@3.3.12":
|
||||||
version "3.3.8"
|
version "3.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.8.tgz#301bb60d0245265a88ed5b30e200fbf223acb313"
|
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.12.tgz#3346c0f55ce0d59e17c21d9eef9154b70c19931b"
|
||||||
integrity sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==
|
integrity sha512-qAtjyG3GBLG0chzp5xGCyRLLe6wFCHmjI82aGzwuGKyznNP+GJJMxjc0wOYWDB2YKfho7niJFdoFpo0CZZQg9w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/parser" "^7.23.0"
|
"@babel/parser" "^7.23.5"
|
||||||
"@vue/shared" "3.3.8"
|
"@vue/shared" "3.3.12"
|
||||||
estree-walker "^2.0.2"
|
estree-walker "^2.0.2"
|
||||||
source-map-js "^1.0.2"
|
source-map-js "^1.0.2"
|
||||||
|
|
||||||
"@vue/compiler-dom@3.3.8":
|
"@vue/compiler-dom@3.3.12":
|
||||||
version "3.3.8"
|
version "3.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz#09d832514b9b8d9415a3816b065d69dbefcc7e9b"
|
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.12.tgz#267c54b388d58f30fc120ea496ebf27d4ea8368b"
|
||||||
integrity sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==
|
integrity sha512-RdJU9oEYaoPKUdGXCy0l+i4clesdDeLmbvRlszoc9iagsnBnMmQtYfCPVQ5BHB6o7K4SCucDdJM2Dh3oXB0D6g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/compiler-core" "3.3.8"
|
"@vue/compiler-core" "3.3.12"
|
||||||
"@vue/shared" "3.3.8"
|
"@vue/shared" "3.3.12"
|
||||||
|
|
||||||
"@vue/compiler-sfc@3.3.8", "@vue/compiler-sfc@^3.2.20":
|
"@vue/compiler-sfc@3.3.12", "@vue/compiler-sfc@^3.2.20":
|
||||||
version "3.3.8"
|
version "3.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.8.tgz#40b18e48aa00260950964d1d72157668521be0e1"
|
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.12.tgz#6ec2c19858f264671457699c1f3a0a6fedf429fe"
|
||||||
integrity sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==
|
integrity sha512-yy5b9e7b79dsGbMmglCe/YnhCQgBkHO7Uf6JfjWPSf2/5XH+MKn18LhzhHyxbHdJgnA4lZCqtXzLaJz8Pd8lMw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/parser" "^7.23.0"
|
"@babel/parser" "^7.23.5"
|
||||||
"@vue/compiler-core" "3.3.8"
|
"@vue/compiler-core" "3.3.12"
|
||||||
"@vue/compiler-dom" "3.3.8"
|
"@vue/compiler-dom" "3.3.12"
|
||||||
"@vue/compiler-ssr" "3.3.8"
|
"@vue/compiler-ssr" "3.3.12"
|
||||||
"@vue/reactivity-transform" "3.3.8"
|
"@vue/reactivity-transform" "3.3.12"
|
||||||
"@vue/shared" "3.3.8"
|
"@vue/shared" "3.3.12"
|
||||||
estree-walker "^2.0.2"
|
estree-walker "^2.0.2"
|
||||||
magic-string "^0.30.5"
|
magic-string "^0.30.5"
|
||||||
postcss "^8.4.31"
|
postcss "^8.4.32"
|
||||||
source-map-js "^1.0.2"
|
source-map-js "^1.0.2"
|
||||||
|
|
||||||
"@vue/compiler-ssr@3.3.8":
|
"@vue/compiler-ssr@3.3.12":
|
||||||
version "3.3.8"
|
version "3.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.8.tgz#136eed54411e4694815d961048a237191063fbce"
|
resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.12.tgz#e62499c6003ccd09acb7190167d08845e3a0eaa5"
|
||||||
integrity sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w==
|
integrity sha512-adCiMJPznfWcQyk/9HSuXGja859IaMV+b8UNSVzDatqv7h0PvT9BEeS22+gjkWofDiSg5d78/ZLls3sLA+cn3A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/compiler-dom" "3.3.8"
|
"@vue/compiler-dom" "3.3.12"
|
||||||
"@vue/shared" "3.3.8"
|
"@vue/shared" "3.3.12"
|
||||||
|
|
||||||
"@vue/devtools-api@^6.0.0-beta.11", "@vue/devtools-api@^6.5.0":
|
"@vue/devtools-api@^6.0.0-beta.11", "@vue/devtools-api@^6.5.0":
|
||||||
version "6.5.1"
|
version "6.5.1"
|
||||||
@@ -609,90 +586,90 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
vue-eslint-parser "^8.0.0"
|
vue-eslint-parser "^8.0.0"
|
||||||
|
|
||||||
"@vue/reactivity-transform@3.3.8":
|
"@vue/reactivity-transform@3.3.12":
|
||||||
version "3.3.8"
|
version "3.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.8.tgz#6d07649013b0be5c670f0ab6cc7ddd3150ad03f2"
|
resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.12.tgz#4cb871b597eb8b321577b4d7f1e93eaebca16128"
|
||||||
integrity sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==
|
integrity sha512-g5TijmML7FyKkLt6QnpqNmA4KD7K/T5SbXa88Bhq+hydNQEkzA8veVXWAQuNqg9rjaFYD0rPf0a9NofKA0ENgg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/parser" "^7.23.0"
|
"@babel/parser" "^7.23.5"
|
||||||
"@vue/compiler-core" "3.3.8"
|
"@vue/compiler-core" "3.3.12"
|
||||||
"@vue/shared" "3.3.8"
|
"@vue/shared" "3.3.12"
|
||||||
estree-walker "^2.0.2"
|
estree-walker "^2.0.2"
|
||||||
magic-string "^0.30.5"
|
magic-string "^0.30.5"
|
||||||
|
|
||||||
"@vue/reactivity@3.3.8":
|
"@vue/reactivity@3.3.12":
|
||||||
version "3.3.8"
|
version "3.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.8.tgz#cce8a03a3fd3539c3eeda53e277ba365d160dd4d"
|
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.12.tgz#b4a62a7678ab20c1ef32f991342ddbb8532417da"
|
||||||
integrity sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw==
|
integrity sha512-vOJORzO8DlIx88cgTnMLIf2GlLYpoXAKsuoQsK6SGdaqODjxO129pVPTd2s/N/Mb6KKZEFIHIEwWGmtN4YPs+g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/shared" "3.3.8"
|
"@vue/shared" "3.3.12"
|
||||||
|
|
||||||
"@vue/runtime-core@3.3.8":
|
"@vue/runtime-core@3.3.12":
|
||||||
version "3.3.8"
|
version "3.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.8.tgz#fba5a632cbf2b5d29e171489570149cb6975dcdb"
|
resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.12.tgz#67ee6cfc2e85d656946975239ea635ec42dde5f6"
|
||||||
integrity sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw==
|
integrity sha512-5iL4w7MZrSGKEZU2wFAYhDZdZmgn+s//73EfgDXW1M+ZUOl36md7tlWp1QFK/ladiq4FvQ82shVjo0KiPDPr0A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/reactivity" "3.3.8"
|
"@vue/reactivity" "3.3.12"
|
||||||
"@vue/shared" "3.3.8"
|
"@vue/shared" "3.3.12"
|
||||||
|
|
||||||
"@vue/runtime-dom@3.3.8":
|
"@vue/runtime-dom@3.3.12":
|
||||||
version "3.3.8"
|
version "3.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.8.tgz#e2d7aa795cf50914dda9a951887765a594b38af4"
|
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.12.tgz#28a239496e589037774cba7c1b27057242eedb11"
|
||||||
integrity sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA==
|
integrity sha512-8mMzqiIdl+IYa/OXwKwk6/4ebLq7cYV1pUcwCSwBK2KerUa6cwGosen5xrCL9f8o2DJ9TfPFwbPEvH7OXzUpoA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/runtime-core" "3.3.8"
|
"@vue/runtime-core" "3.3.12"
|
||||||
"@vue/shared" "3.3.8"
|
"@vue/shared" "3.3.12"
|
||||||
csstype "^3.1.2"
|
csstype "^3.1.3"
|
||||||
|
|
||||||
"@vue/server-renderer@3.3.8":
|
"@vue/server-renderer@3.3.12":
|
||||||
version "3.3.8"
|
version "3.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.8.tgz#9b1779010e75783edeed8fcfb97d9c95fc3ac5d2"
|
resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.12.tgz#f0246aba5d5d6fdfa840ac9e4f32d76f03b20665"
|
||||||
integrity sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg==
|
integrity sha512-OZ0IEK5TU5GXb5J8/wSplyxvGGdIcwEmS8EIO302Vz8K6fGSgSJTU54X0Sb6PaefzZdiN3vHsLXO8XIeF8crQQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/compiler-ssr" "3.3.8"
|
"@vue/compiler-ssr" "3.3.12"
|
||||||
"@vue/shared" "3.3.8"
|
"@vue/shared" "3.3.12"
|
||||||
|
|
||||||
"@vue/shared@3.3.8":
|
"@vue/shared@3.3.12":
|
||||||
version "3.3.8"
|
version "3.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.8.tgz#f044942142e1d3a395f24132e6203a784838542d"
|
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.12.tgz#7c030c4e2f1db8beb638b159cbb86d0ff78c3198"
|
||||||
integrity sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==
|
integrity sha512-6p0Yin0pclvnER7BLNOQuod9Z+cxSYh8pSh7CzHnWNjAIP6zrTlCdHRvSCb1aYEx6i3Q3kvfuWU7nG16CgG1ag==
|
||||||
|
|
||||||
"@vueuse/core@10.6.1", "@vueuse/core@^10.1.2":
|
"@vueuse/core@10.7.0", "@vueuse/core@^10.1.2":
|
||||||
version "10.6.1"
|
version "10.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.6.1.tgz#5b16d8238054c6983b6cb7cd77a78035f098dd89"
|
resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.7.0.tgz#34f2f02f179dc0dcffc2be70d6b1233e011404b9"
|
||||||
integrity sha512-Pc26IJbqgC9VG1u6VY/xrXXfxD33hnvxBnKrLlA2LJlyHII+BSrRoTPJgGYq7qZOu61itITFUnm6QbacwZ4H8Q==
|
integrity sha512-4EUDESCHtwu44ZWK3Gc/hZUVhVo/ysvdtwocB5vcauSV4B7NiGY5972WnsojB3vRNdxvAt7kzJWE2h9h7C9d5w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/web-bluetooth" "^0.0.20"
|
"@types/web-bluetooth" "^0.0.20"
|
||||||
"@vueuse/metadata" "10.6.1"
|
"@vueuse/metadata" "10.7.0"
|
||||||
"@vueuse/shared" "10.6.1"
|
"@vueuse/shared" "10.7.0"
|
||||||
vue-demi ">=0.14.6"
|
vue-demi ">=0.14.6"
|
||||||
|
|
||||||
"@vueuse/integrations@^10.1.2":
|
"@vueuse/integrations@^10.1.2":
|
||||||
version "10.6.1"
|
version "10.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-10.6.1.tgz#8358ced20d1a976422693ae3711ad29b70948504"
|
resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-10.7.0.tgz#80d9608f697bd836a2231b6318700f02504d399c"
|
||||||
integrity sha512-mPDupuofMJ4DPmtX/FfP1MajmWRzYDv8WSaTCo8LQ5kFznjWgmUQ16ApjYqgMquqffNY6+IRMdMgosLDRZOSZA==
|
integrity sha512-rxiMYgS+91n93qXpHZF9NbHhppWY6IJyVTDxt4acyChL0zZVx7P8FAAfpF1qVK8e4wfjerhpEiMJ0IZ1GWUZ2A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vueuse/core" "10.6.1"
|
"@vueuse/core" "10.7.0"
|
||||||
"@vueuse/shared" "10.6.1"
|
"@vueuse/shared" "10.7.0"
|
||||||
vue-demi ">=0.14.6"
|
vue-demi ">=0.14.6"
|
||||||
|
|
||||||
"@vueuse/metadata@10.6.1":
|
"@vueuse/metadata@10.7.0":
|
||||||
version "10.6.1"
|
version "10.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.6.1.tgz#100faa0ced3c0ab4c014fb8e66e781e85e4eb88d"
|
resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.7.0.tgz#7b05e6cfd376aa9bb339a81e16a89c12f3e88c03"
|
||||||
integrity sha512-qhdwPI65Bgcj23e5lpGfQsxcy0bMjCAsUGoXkJ7DsoeDUdasbZ2DBa4dinFCOER3lF4gwUv+UD2AlA11zdzMFw==
|
integrity sha512-GlaH7tKP2iBCZ3bHNZ6b0cl9g0CJK8lttkBNUX156gWvNYhTKEtbweWLm9rxCPIiwzYcr/5xML6T8ZUEt+DkvA==
|
||||||
|
|
||||||
"@vueuse/router@^10.1.2":
|
"@vueuse/router@^10.1.2":
|
||||||
version "10.6.1"
|
version "10.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/@vueuse/router/-/router-10.6.1.tgz#34fccd572d4d679338415ec4b9ba4ce081615c1f"
|
resolved "https://registry.yarnpkg.com/@vueuse/router/-/router-10.7.0.tgz#193ee69345d23429238031fa85654a984acbe05f"
|
||||||
integrity sha512-9EMf30SownmxYKC3h36tl8uALSBGFkz3Dc2n+lQgJuyOYPIO/VotzDdkBxuEoHYKaCWw2JQa/S1q+t8NR26PvQ==
|
integrity sha512-8NQ12V3dtiIEKyd32RzzXLOqU+NC5/9cf7kv5cGOQzJB+Ne8j+1VmRz4ciOhOyHuiBJSfjwSqKDTzvsczZUBlQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vueuse/shared" "10.6.1"
|
"@vueuse/shared" "10.7.0"
|
||||||
vue-demi ">=0.14.6"
|
vue-demi ">=0.14.6"
|
||||||
|
|
||||||
"@vueuse/shared@10.6.1":
|
"@vueuse/shared@10.7.0":
|
||||||
version "10.6.1"
|
version "10.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.6.1.tgz#1d9fc1e3f9083e45b59a693fc372bc50ad62a9e4"
|
resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.7.0.tgz#21e425cc5ede421e0cda38ac59a0beee6da86b1b"
|
||||||
integrity sha512-TECVDTIedFlL0NUfHWncf3zF9Gc4VfdxfQc8JFwoVZQmxpONhLxFrlm0eHQeidHj4rdTPL3KXJa0TZCk1wnc5Q==
|
integrity sha512-kc00uV6CiaTdc3i1CDC4a3lBxzaBE9AgYNtFN87B5OOscqeWElj/uza8qVDmk7/U8JbqoONLbtqiLJ5LGRuqlw==
|
||||||
dependencies:
|
dependencies:
|
||||||
vue-demi ">=0.14.6"
|
vue-demi ">=0.14.6"
|
||||||
|
|
||||||
@@ -870,7 +847,7 @@ available-typed-arrays@^1.0.5:
|
|||||||
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
|
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
|
||||||
integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
|
integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
|
||||||
|
|
||||||
axios@^1.2.2:
|
axios@^1.6.2:
|
||||||
version "1.6.2"
|
version "1.6.2"
|
||||||
resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2"
|
resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2"
|
||||||
integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==
|
integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==
|
||||||
@@ -1037,9 +1014,9 @@ cookie@^0.4.0:
|
|||||||
integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
|
integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
|
||||||
|
|
||||||
core-js@^3.8.3:
|
core-js@^3.8.3:
|
||||||
version "3.33.2"
|
version "3.34.0"
|
||||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.33.2.tgz#312bbf6996a3a517c04c99b9909cdd27138d1ceb"
|
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.34.0.tgz#5705e6ad5982678612e96987d05b27c6c7c274a5"
|
||||||
integrity sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==
|
integrity sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==
|
||||||
|
|
||||||
cosmiconfig@^7.0.1:
|
cosmiconfig@^7.0.1:
|
||||||
version "7.1.0"
|
version "7.1.0"
|
||||||
@@ -1129,10 +1106,10 @@ csso@5.0.5:
|
|||||||
dependencies:
|
dependencies:
|
||||||
css-tree "~2.2.0"
|
css-tree "~2.2.0"
|
||||||
|
|
||||||
csstype@^3.1.2:
|
csstype@^3.1.3:
|
||||||
version "3.1.2"
|
version "3.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
|
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
|
||||||
integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
|
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
|
||||||
|
|
||||||
csstype@~3.0.5:
|
csstype@~3.0.5:
|
||||||
version "3.0.11"
|
version "3.0.11"
|
||||||
@@ -1191,7 +1168,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.1:
|
|||||||
gopd "^1.0.1"
|
gopd "^1.0.1"
|
||||||
has-property-descriptors "^1.0.0"
|
has-property-descriptors "^1.0.0"
|
||||||
|
|
||||||
define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0:
|
define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1:
|
||||||
version "1.2.1"
|
version "1.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
|
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
|
||||||
integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
|
integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
|
||||||
@@ -1266,6 +1243,11 @@ domutils@^3.0.1:
|
|||||||
domelementtype "^2.3.0"
|
domelementtype "^2.3.0"
|
||||||
domhandler "^5.0.3"
|
domhandler "^5.0.3"
|
||||||
|
|
||||||
|
easy-speech@^2.2.0:
|
||||||
|
version "2.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/easy-speech/-/easy-speech-2.2.0.tgz#985a95179e214903c1502fe503d75182d13bca96"
|
||||||
|
integrity sha512-1Ut559OZCVq/oxUG/RaEq+cG6PFxv1whYOurXOaIq/0dab55HDOWLEBz3NKd87tjUaT9AfFnVv3oOHkg5kulpw==
|
||||||
|
|
||||||
echarts@^5.4.3:
|
echarts@^5.4.3:
|
||||||
version "5.4.3"
|
version "5.4.3"
|
||||||
resolved "https://registry.yarnpkg.com/echarts/-/echarts-5.4.3.tgz#f5522ef24419164903eedcfd2b506c6fc91fb20c"
|
resolved "https://registry.yarnpkg.com/echarts/-/echarts-5.4.3.tgz#f5522ef24419164903eedcfd2b506c6fc91fb20c"
|
||||||
@@ -1475,9 +1457,9 @@ eslint-module-utils@^2.8.0:
|
|||||||
debug "^3.2.7"
|
debug "^3.2.7"
|
||||||
|
|
||||||
eslint-plugin-import@^2.25.3:
|
eslint-plugin-import@^2.25.3:
|
||||||
version "2.29.0"
|
version "2.29.1"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643"
|
||||||
integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==
|
integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==
|
||||||
dependencies:
|
dependencies:
|
||||||
array-includes "^3.1.7"
|
array-includes "^3.1.7"
|
||||||
array.prototype.findlastindex "^1.2.3"
|
array.prototype.findlastindex "^1.2.3"
|
||||||
@@ -1495,7 +1477,7 @@ eslint-plugin-import@^2.25.3:
|
|||||||
object.groupby "^1.0.1"
|
object.groupby "^1.0.1"
|
||||||
object.values "^1.1.7"
|
object.values "^1.1.7"
|
||||||
semver "^6.3.1"
|
semver "^6.3.1"
|
||||||
tsconfig-paths "^3.14.2"
|
tsconfig-paths "^3.15.0"
|
||||||
|
|
||||||
eslint-plugin-prettier@^4.2.1:
|
eslint-plugin-prettier@^4.2.1:
|
||||||
version "4.2.1"
|
version "4.2.1"
|
||||||
@@ -1505,9 +1487,9 @@ eslint-plugin-prettier@^4.2.1:
|
|||||||
prettier-linter-helpers "^1.0.0"
|
prettier-linter-helpers "^1.0.0"
|
||||||
|
|
||||||
eslint-plugin-vue@^9.11.0:
|
eslint-plugin-vue@^9.11.0:
|
||||||
version "9.18.1"
|
version "9.19.2"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.18.1.tgz#73cf29df7450ce5913296465f8d1dc545344920c"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz#7ab83a001a1ac8bccae013c5b9cb5d2c644fb376"
|
||||||
integrity sha512-7hZFlrEgg9NIzuVik2I9xSnJA5RsmOfueYgsUGUokEDLJ1LHtxO0Pl4duje1BriZ/jDWb+44tcIlC3yi0tdlZg==
|
integrity sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint-community/eslint-utils" "^4.4.0"
|
"@eslint-community/eslint-utils" "^4.4.0"
|
||||||
natural-compare "^1.4.0"
|
natural-compare "^1.4.0"
|
||||||
@@ -1553,14 +1535,14 @@ eslint-visitor-keys@^3.1.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4
|
|||||||
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
|
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
|
||||||
|
|
||||||
eslint@^8.39.0:
|
eslint@^8.39.0:
|
||||||
version "8.54.0"
|
version "8.56.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537"
|
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15"
|
||||||
integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==
|
integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint-community/eslint-utils" "^4.2.0"
|
"@eslint-community/eslint-utils" "^4.2.0"
|
||||||
"@eslint-community/regexpp" "^4.6.1"
|
"@eslint-community/regexpp" "^4.6.1"
|
||||||
"@eslint/eslintrc" "^2.1.3"
|
"@eslint/eslintrc" "^2.1.4"
|
||||||
"@eslint/js" "8.54.0"
|
"@eslint/js" "8.56.0"
|
||||||
"@humanwhocodes/config-array" "^0.11.13"
|
"@humanwhocodes/config-array" "^0.11.13"
|
||||||
"@humanwhocodes/module-importer" "^1.0.1"
|
"@humanwhocodes/module-importer" "^1.0.1"
|
||||||
"@nodelib/fs.walk" "^1.2.8"
|
"@nodelib/fs.walk" "^1.2.8"
|
||||||
@@ -1690,12 +1672,12 @@ fast-levenshtein@^2.0.6:
|
|||||||
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
||||||
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
|
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
|
||||||
|
|
||||||
fast-unique-numbers@^8.0.11:
|
fast-unique-numbers@^8.0.12:
|
||||||
version "8.0.11"
|
version "8.0.12"
|
||||||
resolved "https://registry.yarnpkg.com/fast-unique-numbers/-/fast-unique-numbers-8.0.11.tgz#e2f2dbd681a87f9058056dfa15a52eacb4eeebcc"
|
resolved "https://registry.yarnpkg.com/fast-unique-numbers/-/fast-unique-numbers-8.0.12.tgz#08b2cde6f41fe3d11645422d17e4a188474e3c4d"
|
||||||
integrity sha512-FmTi6tqMymufGgYEGKWez0I3Ji9ykhHjVzhqhPFOQ3j+IM6Y4PMo+Q17BVCKmCjK6QiFJ+YVINaYScOyFrkzew==
|
integrity sha512-Z4AJueNDnuC/sLxeQqrHP4zgqcBIeQQLbQ0hEx1a7m6Wf7ERrdAyR7CkGfoEFWm9Qla7dpLt0eWPyiO18gqj0A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.23.4"
|
"@babel/runtime" "^7.23.5"
|
||||||
tslib "^2.6.2"
|
tslib "^2.6.2"
|
||||||
|
|
||||||
fast-xml-parser@^4.3.2:
|
fast-xml-parser@^4.3.2:
|
||||||
@@ -1864,9 +1846,9 @@ glob@^7.1.3, glob@^7.1.6:
|
|||||||
path-is-absolute "^1.0.0"
|
path-is-absolute "^1.0.0"
|
||||||
|
|
||||||
globals@^13.19.0:
|
globals@^13.19.0:
|
||||||
version "13.23.0"
|
version "13.24.0"
|
||||||
resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02"
|
resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171"
|
||||||
integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==
|
integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
type-fest "^0.20.2"
|
type-fest "^0.20.2"
|
||||||
|
|
||||||
@@ -2122,11 +2104,6 @@ is-path-inside@^3.0.3:
|
|||||||
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
|
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
|
||||||
integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
|
integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
|
||||||
|
|
||||||
is-plain-object@^5.0.0:
|
|
||||||
version "5.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
|
|
||||||
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
|
|
||||||
|
|
||||||
is-regex@^1.1.4:
|
is-regex@^1.1.4:
|
||||||
version "1.1.4"
|
version "1.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
|
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
|
||||||
@@ -2254,6 +2231,11 @@ lines-and-columns@^1.1.6:
|
|||||||
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
|
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
|
||||||
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
|
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
|
||||||
|
|
||||||
|
linked-list-typescript@^1.0.11:
|
||||||
|
version "1.0.15"
|
||||||
|
resolved "https://registry.yarnpkg.com/linked-list-typescript/-/linked-list-typescript-1.0.15.tgz#faeed93cf9203f102e2158c29edcddda320abe82"
|
||||||
|
integrity sha512-RIyUu9lnJIyIaMe63O7/aFv/T2v3KsMFuXMBbUQCHX+cgtGro86ETDj5ed0a8gQL2+DFjzYYsgVG4I36/cUwgw==
|
||||||
|
|
||||||
linqts@^1.15.0:
|
linqts@^1.15.0:
|
||||||
version "1.15.0"
|
version "1.15.0"
|
||||||
resolved "https://registry.yarnpkg.com/linqts/-/linqts-1.15.0.tgz#99195db380da7c039961c00e637e6ae57d5dee5e"
|
resolved "https://registry.yarnpkg.com/linqts/-/linqts-1.15.0.tgz#99195db380da7c039961c00e637e6ae57d5dee5e"
|
||||||
@@ -2459,7 +2441,7 @@ naive-ui@^2.34.3:
|
|||||||
vooks "^0.2.12"
|
vooks "^0.2.12"
|
||||||
vueuc "^0.4.51"
|
vueuc "^0.4.51"
|
||||||
|
|
||||||
nanoid@^3.3.6:
|
nanoid@^3.3.7:
|
||||||
version "3.3.7"
|
version "3.3.7"
|
||||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
|
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
|
||||||
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
|
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
|
||||||
@@ -2474,13 +2456,6 @@ natural-compare@^1.4.0:
|
|||||||
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
||||||
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
|
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
|
||||||
|
|
||||||
node-fetch@^2.6.7:
|
|
||||||
version "2.7.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
|
|
||||||
integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
|
|
||||||
dependencies:
|
|
||||||
whatwg-url "^5.0.0"
|
|
||||||
|
|
||||||
normalize-path@^3.0.0:
|
normalize-path@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
||||||
@@ -2511,12 +2486,12 @@ object-keys@^1.1.1:
|
|||||||
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
|
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
|
||||||
|
|
||||||
object.assign@^4.1.2, object.assign@^4.1.4:
|
object.assign@^4.1.2, object.assign@^4.1.4:
|
||||||
version "4.1.4"
|
version "4.1.5"
|
||||||
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f"
|
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0"
|
||||||
integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==
|
integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
call-bind "^1.0.2"
|
call-bind "^1.0.5"
|
||||||
define-properties "^1.1.4"
|
define-properties "^1.2.1"
|
||||||
has-symbols "^1.0.3"
|
has-symbols "^1.0.3"
|
||||||
object-keys "^1.1.1"
|
object-keys "^1.1.1"
|
||||||
|
|
||||||
@@ -2671,12 +2646,12 @@ postcss-selector-parser@^6.0.13:
|
|||||||
cssesc "^3.0.0"
|
cssesc "^3.0.0"
|
||||||
util-deprecate "^1.0.2"
|
util-deprecate "^1.0.2"
|
||||||
|
|
||||||
postcss@^8.4.27, postcss@^8.4.31:
|
postcss@^8.4.27, postcss@^8.4.32:
|
||||||
version "8.4.31"
|
version "8.4.32"
|
||||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9"
|
||||||
integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
|
integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==
|
||||||
dependencies:
|
dependencies:
|
||||||
nanoid "^3.3.6"
|
nanoid "^3.3.7"
|
||||||
picocolors "^1.0.0"
|
picocolors "^1.0.0"
|
||||||
source-map-js "^1.0.2"
|
source-map-js "^1.0.2"
|
||||||
|
|
||||||
@@ -2717,10 +2692,17 @@ queue-microtask@^1.2.2:
|
|||||||
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
|
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
|
||||||
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
||||||
|
|
||||||
|
queue-typescript@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/queue-typescript/-/queue-typescript-1.0.1.tgz#2d7842fc3b3e0e3f33d077887a8f2a5bb0baf460"
|
||||||
|
integrity sha512-tkK08uPfmpPl0cX1WRSU3EoNb/T5zSoZPGkkpfGX4E8QayWvEmLS2cI3pFngNPkNTCU5pCDQ1IwlzN0L5gdFPg==
|
||||||
|
dependencies:
|
||||||
|
linked-list-typescript "^1.0.11"
|
||||||
|
|
||||||
regenerator-runtime@^0.14.0:
|
regenerator-runtime@^0.14.0:
|
||||||
version "0.14.0"
|
version "0.14.1"
|
||||||
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45"
|
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
|
||||||
integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==
|
integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
|
||||||
|
|
||||||
regexp.prototype.flags@^1.5.1:
|
regexp.prototype.flags@^1.5.1:
|
||||||
version "1.5.1"
|
version "1.5.1"
|
||||||
@@ -2835,9 +2817,9 @@ sax@~1.2.4:
|
|||||||
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
|
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
|
||||||
|
|
||||||
seemly@^0.3.6:
|
seemly@^0.3.6:
|
||||||
version "0.3.6"
|
version "0.3.8"
|
||||||
resolved "https://registry.yarnpkg.com/seemly/-/seemly-0.3.6.tgz#7ef97e8083dea00804965e2662f572a5df9cb18e"
|
resolved "https://registry.yarnpkg.com/seemly/-/seemly-0.3.8.tgz#42879d8375d73126a04dc16b1bf92a773d2e5974"
|
||||||
integrity sha512-lEV5VB8BUKTo/AfktXJcy+JeXns26ylbMkIUco8CYREsQijuz4mrXres2Q+vMLdwkuLxJdIPQ8IlCIxLYm71Yw==
|
integrity sha512-MW8Qs6vbzo0pHmDpFSYPna+lwpZ6Zk1ancbajw/7E8TKtHdV+1DfZZD+kKJEhG/cAoB/i+LiT+5msZOqj0DwRA==
|
||||||
|
|
||||||
semver-compare@^1.0.0:
|
semver-compare@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
@@ -3070,9 +3052,9 @@ supports-preserve-symlinks-flag@^1.0.0:
|
|||||||
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
|
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
|
||||||
|
|
||||||
svgo@^3.0.2:
|
svgo@^3.0.2:
|
||||||
version "3.0.4"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.0.4.tgz#67b40a710743e358e8d19ec288de8f1e388afbb4"
|
resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.1.0.tgz#7e63855c8da73297d5d5765e968f9679a0f8d24a"
|
||||||
integrity sha512-T+Xul3JwuJ6VGXKo/p2ndqx1ibxNKnLTvRc1ZTWKCfyKS/GgNjRZcYsK84fxTsy/izr91g/Rwx6fGnVgaFSI5g==
|
integrity sha512-R5SnNA89w1dYgNv570591F66v34b3eQShpIBcQtZtM5trJwm1VvxbIoMpRYY3ybTAutcKTLEmTsdnaknOHbiQA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@trysound/sax" "0.2.0"
|
"@trysound/sax" "0.2.0"
|
||||||
commander "^7.2.0"
|
commander "^7.2.0"
|
||||||
@@ -3111,20 +3093,15 @@ to-regex-range@^5.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-number "^7.0.0"
|
is-number "^7.0.0"
|
||||||
|
|
||||||
tr46@~0.0.3:
|
|
||||||
version "0.0.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
|
|
||||||
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
|
|
||||||
|
|
||||||
treemate@^0.3.11:
|
treemate@^0.3.11:
|
||||||
version "0.3.11"
|
version "0.3.11"
|
||||||
resolved "https://registry.yarnpkg.com/treemate/-/treemate-0.3.11.tgz#7d52f8f69ab9ce326f8d139e0a3d1ffb25e48222"
|
resolved "https://registry.yarnpkg.com/treemate/-/treemate-0.3.11.tgz#7d52f8f69ab9ce326f8d139e0a3d1ffb25e48222"
|
||||||
integrity sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==
|
integrity sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==
|
||||||
|
|
||||||
tsconfig-paths@^3.14.2:
|
tsconfig-paths@^3.15.0:
|
||||||
version "3.14.2"
|
version "3.15.0"
|
||||||
resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088"
|
resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4"
|
||||||
integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==
|
integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/json5" "^0.0.29"
|
"@types/json5" "^0.0.29"
|
||||||
json5 "^1.0.2"
|
json5 "^1.0.2"
|
||||||
@@ -3269,12 +3246,12 @@ vdirs@^0.1.4, vdirs@^0.1.8:
|
|||||||
evtd "^0.2.2"
|
evtd "^0.2.2"
|
||||||
|
|
||||||
vite-plugin-mkcert@^1.16.0:
|
vite-plugin-mkcert@^1.16.0:
|
||||||
version "1.16.0"
|
version "1.17.1"
|
||||||
resolved "https://registry.yarnpkg.com/vite-plugin-mkcert/-/vite-plugin-mkcert-1.16.0.tgz#f02cce5747295dd3d8b1958b920bb6b9b7fdace8"
|
resolved "https://registry.yarnpkg.com/vite-plugin-mkcert/-/vite-plugin-mkcert-1.17.1.tgz#3fc6ae8674266565790bb2dbf02d3346bf9ab4d7"
|
||||||
integrity sha512-5r+g8SB9wZzLNUFekGwZo3e0P6QlS6rbxK5p9z/itxNAimsYohgjK/YfVPVxM9EuglP9hjridq0lUejo9v1nVg==
|
integrity sha512-/OxFqPXF3yTuikjn5Lbgt0WWm6Yq0KBWkFj68MZTV/icv3tO+7Y/HS+8+4v9vyx0TDzkSTVyaC/4J7Qtnh/PIw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/rest" "^19.0.5"
|
"@octokit/rest" "^20.0.2"
|
||||||
axios "^1.2.2"
|
axios "^1.6.2"
|
||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
picocolors "^1.0.0"
|
picocolors "^1.0.0"
|
||||||
|
|
||||||
@@ -3287,9 +3264,9 @@ vite-svg-loader@^4.0.0:
|
|||||||
svgo "^3.0.2"
|
svgo "^3.0.2"
|
||||||
|
|
||||||
vite@^4.3.9:
|
vite@^4.3.9:
|
||||||
version "4.5.0"
|
version "4.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.0.tgz#ec406295b4167ac3bc23e26f9c8ff559287cff26"
|
resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.1.tgz#3370986e1ed5dbabbf35a6c2e1fb1e18555b968a"
|
||||||
integrity sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==
|
integrity sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild "^0.18.10"
|
esbuild "^0.18.10"
|
||||||
postcss "^8.4.27"
|
postcss "^8.4.27"
|
||||||
@@ -3315,9 +3292,9 @@ vue-demi@^0.13.11:
|
|||||||
integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==
|
integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==
|
||||||
|
|
||||||
vue-echarts@^6.6.1:
|
vue-echarts@^6.6.1:
|
||||||
version "6.6.1"
|
version "6.6.4"
|
||||||
resolved "https://registry.yarnpkg.com/vue-echarts/-/vue-echarts-6.6.1.tgz#5b0398427ea98ba33175bdc80f34af4ce8f27ee4"
|
resolved "https://registry.yarnpkg.com/vue-echarts/-/vue-echarts-6.6.4.tgz#52f95e92247506683eaf541c85860f6d73b33489"
|
||||||
integrity sha512-EpreTzlNeJ+eaUn0AhXEmKJk98xJGecgTqAdyZovoXWnhTxnlW2HuBM0ei3y8rLw1JCUabf8/sYvxjlr8SzBKQ==
|
integrity sha512-WtTAdwcLgbCsblOlbOfOr9tOHrR6ufEfoZwPbXHp/HVRXCLlh/GaAIXtqdjGSr/YtCEQNkaW0FpR2c9ukzxVmw==
|
||||||
dependencies:
|
dependencies:
|
||||||
resize-detector "^0.3.0"
|
resize-detector "^0.3.0"
|
||||||
vue-demi "^0.13.11"
|
vue-demi "^0.13.11"
|
||||||
@@ -3394,20 +3371,20 @@ vue3-marquee@^4.1.0:
|
|||||||
integrity sha512-AkvpNC6+7CwvIBgiAr8qMs1XvhGhfSS2ahlMEp80YXAmDOP8nDdn/smQ6eWtusf+hLX21yTaSOoKGcill4bCRg==
|
integrity sha512-AkvpNC6+7CwvIBgiAr8qMs1XvhGhfSS2ahlMEp80YXAmDOP8nDdn/smQ6eWtusf+hLX21yTaSOoKGcill4bCRg==
|
||||||
|
|
||||||
vue@^3.2.13:
|
vue@^3.2.13:
|
||||||
version "3.3.8"
|
version "3.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.8.tgz#532ff071af24f6a69e5ecc53a66858a9ee874ffc"
|
resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.12.tgz#4a3a39e79d22e9826ae7c058863316333c838b63"
|
||||||
integrity sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w==
|
integrity sha512-jYNv2QmET2OTHsFzfWHMnqgCfqL4zfo97QwofdET+GBRCHhSCHuMTTvNIgeSn0/xF3JRT5OGah6MDwUFN7MPlg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vue/compiler-dom" "3.3.8"
|
"@vue/compiler-dom" "3.3.12"
|
||||||
"@vue/compiler-sfc" "3.3.8"
|
"@vue/compiler-sfc" "3.3.12"
|
||||||
"@vue/runtime-dom" "3.3.8"
|
"@vue/runtime-dom" "3.3.12"
|
||||||
"@vue/server-renderer" "3.3.8"
|
"@vue/server-renderer" "3.3.12"
|
||||||
"@vue/shared" "3.3.8"
|
"@vue/shared" "3.3.12"
|
||||||
|
|
||||||
vueuc@^0.4.51:
|
vueuc@^0.4.51:
|
||||||
version "0.4.51"
|
version "0.4.54"
|
||||||
resolved "https://registry.yarnpkg.com/vueuc/-/vueuc-0.4.51.tgz#35cd5364db4b71fc791a9823748711b91d910d49"
|
resolved "https://registry.yarnpkg.com/vueuc/-/vueuc-0.4.54.tgz#59bbd272d2b143176278a9bdc1a5c1c74259b9dc"
|
||||||
integrity sha512-pLiMChM4f+W8czlIClGvGBYo656lc2Y0/mXFSCydcSmnCR1izlKPGMgiYBGjbY9FDkFG8a2HEVz7t0DNzBWbDw==
|
integrity sha512-2LED7h1BSnCRPBI6AlSIf+1Yte1shN+Vb2gpspO5wHI7zWzbcq4bAu2f9nFh5yXIUKdzqmLvzRsOXDl4TrDyCw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@css-render/vue3-ssr" "^0.15.10"
|
"@css-render/vue3-ssr" "^0.15.10"
|
||||||
"@juggle/resize-observer" "^3.3.1"
|
"@juggle/resize-observer" "^3.3.1"
|
||||||
@@ -3424,19 +3401,6 @@ vuex@^4.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@vue/devtools-api" "^6.0.0-beta.11"
|
"@vue/devtools-api" "^6.0.0-beta.11"
|
||||||
|
|
||||||
webidl-conversions@^3.0.0:
|
|
||||||
version "3.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
|
|
||||||
integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
|
|
||||||
|
|
||||||
whatwg-url@^5.0.0:
|
|
||||||
version "5.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
|
|
||||||
integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
|
|
||||||
dependencies:
|
|
||||||
tr46 "~0.0.3"
|
|
||||||
webidl-conversions "^3.0.0"
|
|
||||||
|
|
||||||
which-boxed-primitive@^1.0.2:
|
which-boxed-primitive@^1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
|
resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
|
||||||
@@ -3466,33 +3430,33 @@ which@^2.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
isexe "^2.0.0"
|
isexe "^2.0.0"
|
||||||
|
|
||||||
worker-timers-broker@^6.0.98:
|
worker-timers-broker@^6.0.100:
|
||||||
version "6.0.98"
|
version "6.0.100"
|
||||||
resolved "https://registry.yarnpkg.com/worker-timers-broker/-/worker-timers-broker-6.0.98.tgz#d8c062c9304ee55d22b24e610d4f1ffa5dac3798"
|
resolved "https://registry.yarnpkg.com/worker-timers-broker/-/worker-timers-broker-6.0.100.tgz#ed047491eb559c2f6039f507e1d8ea6f582eadb9"
|
||||||
integrity sha512-Kq8dTnHBoBGXdMYHGYAtZ+gbxdsV085PF3QoxFZMDKvqPlyTuRFGQvc70k9fHeGOCFlUv6OUREvYF72aquBOFw==
|
integrity sha512-sXF1NpuT+FlJvONSbdZ6wNB15oNGg/P6PvCZDMHWmI6s7bHEb0zQ7cTnk9k+96/3pd8SpbXFuM0/HcHVc2alDQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.23.4"
|
"@babel/runtime" "^7.23.6"
|
||||||
fast-unique-numbers "^8.0.11"
|
fast-unique-numbers "^8.0.12"
|
||||||
tslib "^2.6.2"
|
tslib "^2.6.2"
|
||||||
worker-timers-worker "^7.0.62"
|
worker-timers-worker "^7.0.64"
|
||||||
|
|
||||||
worker-timers-worker@^7.0.62:
|
worker-timers-worker@^7.0.64:
|
||||||
version "7.0.62"
|
version "7.0.64"
|
||||||
resolved "https://registry.yarnpkg.com/worker-timers-worker/-/worker-timers-worker-7.0.62.tgz#e986532c8ea06b5e80a6e228c572e0561dea31a2"
|
resolved "https://registry.yarnpkg.com/worker-timers-worker/-/worker-timers-worker-7.0.64.tgz#f9deac70ce710e2155ceb20d5817f640633b68e7"
|
||||||
integrity sha512-WuVhWXWEqwcWD2Iy9tNQWQyfl984XF/hoblazHp4KOWiIN50B2PH0l61nBkJUndFhJ9qca0lEZ7SWSqdIMDWDQ==
|
integrity sha512-bzBO7rVibSYFKu5NBYfjKBKHujaA/AJzJTuEEqaOGfzcTdJv15raDuGhtDoMjcNPvt3IylfLph6AK92kuifnXA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.23.4"
|
"@babel/runtime" "^7.23.6"
|
||||||
tslib "^2.6.2"
|
tslib "^2.6.2"
|
||||||
|
|
||||||
worker-timers@^7.0.78:
|
worker-timers@^7.0.78:
|
||||||
version "7.0.78"
|
version "7.0.80"
|
||||||
resolved "https://registry.yarnpkg.com/worker-timers/-/worker-timers-7.0.78.tgz#0e6f243654ca2b43e1cc956c69a9e8c0abba10e1"
|
resolved "https://registry.yarnpkg.com/worker-timers/-/worker-timers-7.0.80.tgz#4f6c5db03f9a439c1b73717640701c699cae0c2e"
|
||||||
integrity sha512-jATkwi6OFe2XwfvoPYl3hr8k19/JgCiFerJ4ZWv5AbMIjsUnayC1C8Dxau/sevqhzCrU4IqXDFDTjNINGNuibQ==
|
integrity sha512-bYSAPNVR0Nrm7hTM3hQOxM3x+D9dXFG6kZ0BBqFyRu0BUGC5+DLLK5Sx281hCaNzOGMNcUMEaoeErx3Yuf7XIw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.23.4"
|
"@babel/runtime" "^7.23.6"
|
||||||
tslib "^2.6.2"
|
tslib "^2.6.2"
|
||||||
worker-timers-broker "^6.0.98"
|
worker-timers-broker "^6.0.100"
|
||||||
worker-timers-worker "^7.0.62"
|
worker-timers-worker "^7.0.64"
|
||||||
|
|
||||||
wrap-ansi@^6.2.0:
|
wrap-ansi@^6.2.0:
|
||||||
version "6.2.0"
|
version "6.2.0"
|
||||||
|
|||||||
Reference in New Issue
Block a user