update eventfetcher info display

This commit is contained in:
2024-01-20 23:51:21 +08:00
parent 6b20366670
commit 8dd85f205d
15 changed files with 783 additions and 294 deletions

View File

@@ -8,50 +8,52 @@
"lint": "vite lint" "lint": "vite lint"
}, },
"dependencies": { "dependencies": {
"@types/node": "^20.10.6", "@types/node": "^20.11.5",
"@typescript-eslint/eslint-plugin": "^6.16.0", "@typescript-eslint/eslint-plugin": "^6.19.0",
"@vicons/fluent": "^0.12.0", "@vicons/fluent": "^0.12.0",
"@vitejs/plugin-vue": "^5.0.1", "@vitejs/plugin-vue": "^5.0.3",
"@vueuse/core": "^10.7.1", "@vueuse/core": "^10.7.2",
"@vueuse/router": "^10.7.1", "@vueuse/router": "^10.7.2",
"date-fns": "^3.0.6", "date-fns": "^3.2.0",
"easy-speech": "^2.2.0", "easy-speech": "^2.3.1",
"echarts": "^5.4.3", "echarts": "^5.4.3",
"eslint": "^8.56.0", "eslint": "^8.56.0",
"eslint-plugin-import": "^2.29.1", "eslint-plugin-import": "^2.29.1",
"eslint-plugin-oxlint": "^0.2.0", "eslint-plugin-oxlint": "^0.2.1",
"eslint-plugin-prettier": "^5.1.2", "eslint-plugin-prettier": "^5.1.3",
"fast-xml-parser": "^4.3.2", "fast-xml-parser": "^4.3.3",
"file-saver": "^2.0.5", "file-saver": "^2.0.5",
"grapheme-splitter": "^1.0.4", "grapheme-splitter": "^1.0.4",
"html2canvas": "^1.4.1", "html2canvas": "^1.4.1",
"linqts": "^1.15.0", "linqts": "^1.15.0",
"mitt": "^3.0.1", "mitt": "^3.0.1",
"pinia": "^2.1.7", "pinia": "^2.1.7",
"prettier": "^3.1.1", "prettier": "^3.2.4",
"qrcode.vue": "^3.4.1", "qrcode.vue": "^3.4.1",
"queue-typescript": "^1.0.1", "queue-typescript": "^1.0.1",
"vite": "^5.0.10", "uuid": "^9.0.1",
"vite": "^5.0.12",
"vite-svg-loader": "^5.1.0", "vite-svg-loader": "^5.1.0",
"vue": "^3.4.1", "vue": "^3.4.15",
"vue-echarts": "^6.6.8", "vue-echarts": "^6.6.8",
"vue-request": "^2.0.4", "vue-request": "^2.0.4",
"vue-router": "^4.2.5", "vue-router": "^4.2.5",
"vue-turnstile": "^1.0.6", "vue-turnstile": "^1.0.7",
"vue3-aplayer": "^1.7.3", "vue3-aplayer": "^1.7.3",
"vue3-marquee": "^4.1.0", "vue3-marquee": "^4.2.0-beta.1",
"vueuc": "^0.4.58", "vueuc": "^0.4.58",
"worker-timers": "^7.0.80" "worker-timers": "^7.1.1"
}, },
"devDependencies": { "devDependencies": {
"@types/eslint": "^8", "@types/eslint": "^8.56.2",
"@typescript-eslint/parser": "^6.16.0", "@types/uuid": "^9",
"@typescript-eslint/parser": "^6.19.0",
"@vicons/ionicons5": "^0.12.0", "@vicons/ionicons5": "^0.12.0",
"@vitejs/plugin-vue-jsx": "^3.1.0", "@vitejs/plugin-vue-jsx": "^3.1.0",
"@vue/eslint-config-typescript": "^12.0.0", "@vue/eslint-config-typescript": "^12.0.0",
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^9.1.0",
"eslint-plugin-vue": "^9.19.2", "eslint-plugin-vue": "^9.20.1",
"naive-ui": "^2.36.0", "naive-ui": "^2.37.3",
"stylus": "^0.62.0", "stylus": "^0.62.0",
"typescript": "^5.3.3" "typescript": "^5.3.3"
}, },

View File

@@ -6,12 +6,14 @@
<Suspense> <Suspense>
<TempComponent> <TempComponent>
<NLayoutContent style="height: 100%" v-if="layout != 'obs'"> <NLayoutContent style="height: 100%" v-if="layout != 'obs'">
<ViewerLayout v-if="layout == 'viewer'" /> <NElement>
<ManageLayout v-else-if="layout == 'manage'" /> <ViewerLayout v-if="layout == 'viewer'" />
<OpenLiveLayout v-else-if="layout == 'open-live'" /> <ManageLayout v-else-if="layout == 'manage'" />
<template v-else-if="layout == ''"> <OpenLiveLayout v-else-if="layout == 'open-live'" />
<RouterView /> <template v-else-if="layout == ''">
</template> <RouterView />
</template>
</NElement>
</NLayoutContent> </NLayoutContent>
<RouterView v-else /> <RouterView v-else />
</TempComponent> </TempComponent>

View File

@@ -71,3 +71,12 @@ export function downloadImage(imageSrc: string, filename: string) {
} }
image.src = imageSrc image.src = imageSrc
} }
export function getBase64(file: File | undefined | null): Promise<string | undefined> {
if (!file) return new Promise((resolve) => resolve(undefined))
return new Promise((resolve, reject) => {
const reader = new FileReader()
reader.readAsDataURL(file)
reader.onload = () => resolve(reader.result?.toString().split(',')[1] || undefined)
reader.onerror = (error) => reject(error)
})
}

View File

@@ -43,6 +43,8 @@ export interface AccountInfo extends UserInfo {
eventFetcherOnline: boolean eventFetcherOnline: boolean
eventFetcherStatus: string eventFetcherStatus: string
eventFetcherStatusV3: { [errorCode: string]: string } eventFetcherStatusV3: { [errorCode: string]: string }
eventFetcherTodayReceive: number
eventFetcherVersion?: string
nextSendEmailTime?: number nextSendEmailTime?: number
isServerFetcherOnline: boolean isServerFetcherOnline: boolean
@@ -525,4 +527,19 @@ export interface ResponsePointGoodModel {
images: string[] images: string[]
status: GoodsStatus status: GoodsStatus
type: GoodsTypes type: GoodsTypes
}
export interface PointGoodsModel {
id?: number
name: string
count: number
price: number
tags: TagInfo[]
coverImageBase64?: string
status: GoodsStatus
type: GoodsTypes
collectUrl?: string
embedCollectUrl?: boolean
description: string
content?: string
} }

View File

@@ -1,7 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { useAccount } from '@/api/account' import { useAccount } from '@/api/account'
import { Info24Filled } from '@vicons/fluent' import { FlashCheckmark16Filled, Info24Filled } from '@vicons/fluent'
import { NAlert, NButton, NDivider, NIcon, NTag, NTooltip } from 'naive-ui' import { NAlert, NButton, NDivider, NIcon, NTag, NText, NTooltip } from 'naive-ui'
import { computed } from 'vue' import { computed } from 'vue'
const accountInfo = useAccount() const accountInfo = useAccount()
@@ -37,8 +37,18 @@ const status = computed(() => {
<NButton type="info" size="small" tag="a" href="https://www.yuque.com/megghy/dez70g/vfvcyv3024xvaa1p" target="_blank"> 关于 EVENT-FETCHER </NButton> <NButton type="info" size="small" tag="a" href="https://www.yuque.com/megghy/dez70g/vfvcyv3024xvaa1p" target="_blank"> 关于 EVENT-FETCHER </NButton>
</NTooltip> </NTooltip>
</template> </template>
<NTooltip v-if="status != 'info'">
<template #trigger>
<NTag size="small" :color="{ borderColor: 'white', textColor: 'white', color: '#4b6159' }">
<NIcon :component="FlashCheckmark16Filled" />
{{ accountInfo?.eventFetcherVersion ?? '未知' }}
</NTag>
</template>
你所使用的版本
</NTooltip>
<NDivider vertical/>
<NTag :type="status"> <NTag :type="status">
<template v-if="accountInfo?.eventFetcherStatus"> <template v-if="accountInfo?.eventFetcherOnline == true && accountInfo?.eventFetcherStatus">
此版本已过期, 请更新 此版本已过期, 请更新
<NTooltip trigger="click"> <NTooltip trigger="click">
<template #trigger> <template #trigger>
@@ -48,7 +58,13 @@ const status = computed(() => {
</NTooltip> </NTooltip>
</template> </template>
<template v-else> <template v-else>
<template v-if="status == 'success'"> 运行中 </template> <template v-if="status == 'success'">
运行中 | 今日已接收
<NText color="white" strong>
{{ accountInfo?.eventFetcherTodayReceive }}
</NText>
</template>
<template v-else-if="status == 'warning'"> <template v-else-if="status == 'warning'">
<template v-if="accountInfo?.eventFetcherStatusV3"> 异常: {{ Object.values(accountInfo.eventFetcherStatusV3).join('; ') }} </template> <template v-if="accountInfo?.eventFetcherStatusV3"> 异常: {{ Object.values(accountInfo.eventFetcherStatusV3).join('; ') }} </template>
</template> </template>

View File

@@ -34,6 +34,11 @@ function onClick() {
<NText depth="3" style="font-size: 13px"> <NText depth="3" style="font-size: 13px">
<NTime :time="item.createAt" /> <NTime :time="item.createAt" />
</NText> </NText>
<br/>
<NText depth="3" style="font-size: 13px">
结束:
<NTime :time="item.endAt" />
</NText>
<br /> <br />
<NText depth="3"> <NText depth="3">
<NEllipsis> <NEllipsis>

View File

@@ -0,0 +1,20 @@
<script setup lang="ts">
import { ResponsePointGoodModel } from '@/api/api-models'
import { NCard } from 'naive-ui'
import { ref } from 'vue'
const props = defineProps<{
goods: ResponsePointGoodModel
}>()
</script>
<template>
<NCard>
<template #cover>
<img :src="goods.cover" />
</template>
<template #header>
{{ goods.name }}
</template>
</NCard>
</template>

View File

@@ -34,6 +34,7 @@ export const FEEDBACK_API_URL = { toString: () => `${BASE_API()}feedback/` }
export const MUSIC_REQUEST_API_URL = { toString: () => `${BASE_API()}music-request/` } export const MUSIC_REQUEST_API_URL = { toString: () => `${BASE_API()}music-request/` }
export const VTSURU_API_URL = { toString: () => `${BASE_API()}vtsuru/` } export const VTSURU_API_URL = { toString: () => `${BASE_API()}vtsuru/` }
export const POINT_API_URL = { toString: () => `${BASE_API()}point/` } export const POINT_API_URL = { toString: () => `${BASE_API()}point/` }
export const BILI_AUTH_API_URL = { toString: () => `${BASE_API()}bili-auth/` }
export const ScheduleTemplateMap = { export const ScheduleTemplateMap = {
'': { name: '默认', compoent: defineAsyncComponent(() => import('@/views/view/scheduleTemplate/DefaultScheduleTemplate.vue')) }, '': { name: '默认', compoent: defineAsyncComponent(() => import('@/views/view/scheduleTemplate/DefaultScheduleTemplate.vue')) },

View File

@@ -66,6 +66,15 @@ const routes: Array<RouteRecordRaw> = [
keepAlive: true, keepAlive: true,
}, },
}, },
{
path: '/bili-auth',
name: 'bili-auth',
component: () => import('@/views/BiliAuthView.vue'),
meta: {
title: 'Bilibili 账户认证',
keepAlive: true,
},
},
manage, manage,
user, user,
obs, obs,

165
src/views/BiliAuthView.vue Normal file
View File

@@ -0,0 +1,165 @@
<script setup lang="ts">
import { GetSelfAccount, useAccount } from '@/api/account'
import { QueryGetAPI } from '@/api/query'
import { BILI_API_URL, BILI_AUTH_API_URL } from '@/data/constants'
import { useStorage } from '@vueuse/core'
import { randomUUID } from 'crypto'
import { NFlex, NAlert, NButton, NCard, NCountdown, NInput, NInputGroup, NInputNumber, NSpace, NSpin, NText, useMessage, NTimeline, NTimelineItem, NSteps, NStep } from 'naive-ui'
import { computed, onMounted, ref } from 'vue'
import { v4 as uuidv4 } from 'uuid'
type AuthStartModel = {
code: string
endAt: number
startAt: number
targetRoomId: number
}
const message = useMessage()
const guidKey = useStorage('Bili.Auth.Key', uuidv4())
const biliToken = useStorage<string>('Bili.Auth.Token', null)
const startModel = ref<AuthStartModel>()
const currentStep = ref(biliToken.value ? 2 : 0)
const isStart = computed(() => {
return currentStep.value > 0
})
const timeLeft = ref(0)
const timeOut = ref(false)
const timer = ref()
function onStartVerify() {
QueryGetAPI<AuthStartModel>(BILI_AUTH_API_URL + 'start', {
key: guidKey.value,
}).then((data) => {
if (data.code == 200) {
message.info('已开始认证流程, 请前往直播间发送认证码')
checkStatus()
currentStep.value = 1
timer.value = setInterval(checkStatus, 2500)
startModel.value = data.data
}
})
}
async function checkStatus() {
const data = await QueryGetAPI(BILI_AUTH_API_URL + 'status', {
key: guidKey.value,
})
if (data.code == 201) {
startModel.value = data.data as AuthStartModel
checkTimeLeft()
return true
} else if (data.code == 200) {
clearInterval(timer.value)
message.success('认证成功')
biliToken.value = data.data as string
currentStep.value = 2
return true
} else if (data.code == 400 && isStart.value) {
timeOut.value = true
clearInterval(timer.value)
message.error('认证超时')
return false
}
return false
}
function checkTimeLeft() {
if (startModel.value) {
timeLeft.value = startModel.value.endAt - Date.now()
if (timeLeft.value <= 0) {
timeOut.value = true
}
}
}
function copyCode() {
if (navigator.clipboard) {
navigator.clipboard.writeText(startModel.value?.code ?? '')
message.success('已复制认证码到剪切板')
} else {
message.warning('当前环境不支持自动复制, 请手动选择并复制')
}
}
onMounted(async () => {
if (!biliToken.value) {
if (await checkStatus()) {
currentStep.value = 1
timer.value = setInterval(checkStatus, 5000)
}
}
})
</script>
<template>
<NFlex justify="center" align="center" style="height: 100vh">
<NCard embedded style="margin: 20px">
<template #header> Bilibili 身份验证 </template>
<NFlex :wrap="false">
<NSteps :current="currentStep + 1" vertical style="max-width: 300px">
<NStep title="准备认证" description="就是开始认证前的一个步骤" />
<NStep title="进行认证" description="你需要在指定直播间输入一串验证码来证明自己的身份" />
<NStep title="认证完成" description="现在就已经通过了认证!" />
</NSteps>
<template v-if="currentStep == 1">
<NSpace vertical justify="center" align="center" style="width: 100%">
<template v-if="!timeOut">
<NSpin />
<span> 剩余 <NCountdown :duration="timeLeft - Date.now()" /> </span>
<NInputGroup>
<NInput :value="startModel?.code" :allow-input="() => false" />
<NButton @click="copyCode"> 复制认证码 </NButton>
</NInputGroup>
<NButton type="primary" tag="a" :href="'https://live.bilibili.com/' + startModel?.targetRoomId" target="_blank"> 前往直播间 </NButton>
</template>
<NAlert v-else type="error">
认证超时
<NButton
@click="
() => {
currentStep = 0
timeOut = false
}
"
type="error"
>
重新开始
</NButton>
</NAlert>
</NSpace>
</template>
<template v-else-if="currentStep == 0">
<NSpace vertical justify="center" align="center" style="width: 100%">
<NAlert type="info">
<NText>
点击
<NText type="primary" strong> 开始认证 </NText>
后请在 2 分钟之内使用
<NText strong type="primary"> 需要认证的账户 </NText>
在指定的直播间直播间内发送给出的验证码
</NText>
</NAlert>
<NText depth="3" style="font-size: 15px"> 准备好了吗? </NText>
<NButton size="large" type="primary" @click="onStartVerify"> 开始认证 </NButton>
</NSpace>
</template>
<template v-else-if="currentStep == 2">
<NFlex justify="center" align="center" vertical style="width: 100%">
<NAlert type="success"> 你已完成验证! 请妥善保存你的登陆链接, 请勿让其他人获取. 丢失后可以再次通过认证流程获得 </NAlert>
<NText> 你的登陆链接为: </NText>
<NInputGroup>
<NInput :value="`https://vtsuru.live/point?auth=${biliToken}`" type="textarea" :allow-input="() => false" />
<NButton @click="copyCode" type="info" style="height: 100%;"> 复制登陆链接 </NButton>
</NInputGroup>
<NButton @click="" type="primary"> 前往个人中心 </NButton>
</NFlex>
</template>
</NFlex>
</NCard>
</NFlex>
</template>

View File

@@ -550,7 +550,7 @@ onMounted(() => {
<RegisterAndLogin style="max-width: 500px; min-width: 350px" /> <RegisterAndLogin style="max-width: 500px; min-width: 350px" />
</template> </template>
<template v-else> <template v-else>
<NSpin :loading="isLoadingAccount"> 正在请求账户数据... </NSpin> <NSpin :loading="isLoadingAccount" style="overflow: hidden;"> 正在请求账户数据... </NSpin>
</template> </template>
</NLayoutContent> </NLayoutContent>
</template> </template>

View File

@@ -1,19 +1,100 @@
<script setup lang="ts"> <script setup lang="ts">
import { getBase64 } from '@/Utils'
import { DisableFunction, EnableFunction, useAccount } from '@/api/account' import { DisableFunction, EnableFunction, useAccount } from '@/api/account'
import { ResponsePointGoodModel, FunctionTypes } from '@/api/api-models' import { ResponsePointGoodModel, FunctionTypes, PointGoodsModel, GoodsTypes, GoodsStatus, TagInfo } from '@/api/api-models'
import { QueryGetAPI } from '@/api/query' import { QueryGetAPI, QueryPostAPI } from '@/api/query'
import { POINT_API_URL } from '@/data/constants' import { POINT_API_URL } from '@/data/constants'
import { NAlert, NButton, NDivider, NModal, NSwitch, NTabPane, NTabs, NText, useMessage } from 'naive-ui' import { Info24Filled } from '@vicons/fluent'
import { ref } from 'vue' import { List } from 'linqts'
import {
NAlert,
NButton,
NDivider,
NForm,
NFormItem,
NInput,
NModal,
NSwitch,
NTabPane,
NTabs,
NText,
useMessage,
NFlex,
NInputNumber,
NRadioGroup,
NRadio,
NTooltip,
NIcon,
NCheckbox,
NRadioButton,
NUpload,
UploadFileInfo,
FormItemRule,
NScrollbar,
FormValidationError,
NSelect,
} from 'naive-ui'
import { computed, ref } from 'vue'
const message = useMessage() const message = useMessage()
const accountInfo = useAccount() const accountInfo = useAccount()
const goods = ref<ResponsePointGoodModel[]>(await getGoods()) const goods = ref<ResponsePointGoodModel[]>(await getGoods())
const addGoodsModel = ref<PointGoodsModel>({
type: GoodsTypes.Virtual,
status: GoodsStatus.Normal,
} as PointGoodsModel)
const showAddGoodsModal = ref(false)
const isAllowedPrivacyPolicy = ref(false)
const fileList = ref<UploadFileInfo[]>([])
const rules = {
name: {
required: true,
message: '请输入礼物名称',
},
price: {
required: true,
message: '请输入礼物价格',
},
content: {
required: true,
message: '请输入虚拟礼物的具体内容',
validator: (rule: FormItemRule, value: string) => {
return addGoodsModel.value.type != GoodsTypes.Virtual || (value?.length ?? 0) > 0
},
},
privacy: {
required: true,
message: '需要阅读并同意本站隐私政策',
validator: (rule: FormItemRule, value: boolean) => {
return (addGoodsModel.value.type != GoodsTypes.Physical && addGoodsModel.value.collectUrl != undefined) || isAllowedPrivacyPolicy.value
},
},
}
const formRef = ref()
const existTags = computed(() => {
//获取所有已存在商品的tags并去重
const tempSet = new Set<TagInfo>()
for (let i = 0; i < goods.value.length; i++) {
for (let j = 0; j < goods.value[i].tags.length; j++) {
tempSet.add(goods.value[i].tags[j])
}
}
return Array.from(tempSet).map((item) => {
return { label: item.name, value: item.id }
})
})
async function getGoods() { async function getGoods() {
try { try {
var resp = await QueryGetAPI<ResponsePointGoodModel[]>(POINT_API_URL + 'get-goods') var resp = await QueryGetAPI<ResponsePointGoodModel[]>(POINT_API_URL + 'get-goods', {
id: accountInfo.value?.id,
})
if (resp.code == 200) { if (resp.code == 200) {
return resp.data return resp.data
} else { } else {
@@ -37,6 +118,42 @@ async function setFunctionEnable(enable: boolean) {
message.error('无法' + (enable ? '启用' : '禁用') + '积分系统') message.error('无法' + (enable ? '启用' : '禁用') + '积分系统')
} }
} }
async function updateGoods(e: MouseEvent) {
e.preventDefault()
if (!formRef.value) return
await formRef.value
.validate()
.then(async () => {
if (fileList.value.length > 0) {
addGoodsModel.value.coverImageBase64 = await getBase64(fileList.value[0].file)
}
await QueryPostAPI<ResponsePointGoodModel>(POINT_API_URL + 'update-goods', addGoodsModel.value)
.then((data) => {
if (data.code == 200) {
message.success('成功')
} else {
message.error('失败: ' + data.message)
}
})
.catch((err) => {
message.error('失败: ' + err)
console.error(err)
})
})
.catch((err: unknown) => {
console.log(err)
message.error('表单验证失败')
})
}
function OnFileListChange(files: UploadFileInfo[]) {
if (files.length == 1) {
var file = files[0]
if ((file.file?.size ?? 0) > 10 * 1024 * 1024) {
message.error('文件大小不能超过10MB')
fileList.value = []
}
}
}
</script> </script>
<template> <template>
@@ -50,10 +167,94 @@ async function setFunctionEnable(enable: boolean) {
</NText> </NText>
</NAlert> </NAlert>
<NTabs> <NTabs>
<NTabPane name="goods" tab="商品"> <NTabPane name="goods" tab="礼物">
<NFlex>
<NButton type="primary" @click="showAddGoodsModal = true"> 添加礼物 </NButton>
</NFlex>
<NDivider /> <NDivider />
</NTabPane> </NTabPane>
</NTabs> </NTabs>
<NModal> </NModal> <NModal v-model:show="showAddGoodsModal" preset="card" style="width: 600px; max-width: 90%" title="添加礼物">
<NScrollbar style="max-height: 80vh">
<NForm ref="formRef" :model="addGoodsModel" :rules="rules">
<NFormItem path="name" label="名称" required>
<NInput v-model:value="addGoodsModel.name" placeholder="填写礼物名称" />
</NFormItem>
<NFormItem path="price" label="所需积分" required>
<NInputNumber v-model:value="addGoodsModel.price" placeholder="填写需要的积分" min="0" />
</NFormItem>
<NFormItem path="description" label="描述" type="textarea">
<NInput v-model:value="addGoodsModel.description" placeholder="填写礼物描述" />
</NFormItem>
<NFormItem path="tags" label="标签">
<NSelect v-model:value="addGoodsModel.tags" filterable multiple clearable tag placeholder="可选,按回车确认" :options="existTags" />
</NFormItem>
<NFormItem path="cover" label="封面" type="textarea">
<NUpload
:max="1"
accept=".png,.jpg,.jpeg,.gif,.svg,.webp,.ico,.bmp,.tif,.tiff,.jfif,.jpe,.jp,.psd,."
list-type="image-card"
:default-upload="false"
v-model:file-list="fileList"
@update:file-list="OnFileListChange"
>
+ 上传图片
</NUpload>
</NFormItem>
<NFormItem path="type" label="类型">
<NRadioGroup v-model:value="addGoodsModel.type">
<NRadioButton :value="GoodsTypes.Virtual">虚拟礼物</NRadioButton>
<NRadioButton :value="GoodsTypes.Physical">实体礼物</NRadioButton>
</NRadioGroup>
</NFormItem>
<template v-if="addGoodsModel.type == GoodsTypes.Physical">
<NFormItem path="collectUrl" label="收货地址">
<NFlex vertical>
<NRadioGroup :value="addGoodsModel.collectUrl == undefined ? 0 : 1" @update:value="(v) => (addGoodsModel.collectUrl = v == 1 ? '' : undefined)">
<NRadioButton :value="0">通过本站收集收货地址</NRadioButton>
<NRadioButton :value="1">
使用站外链接收集地址
<NTooltip>
<template #trigger>
<NIcon :component="Info24Filled" />
</template>
用腾讯文档等工具收集收货地址
</NTooltip>
</NRadioButton>
</NRadioGroup>
</NFlex>
</NFormItem>
<template v-if="addGoodsModel.collectUrl != undefined">
<NFormItem path="url" label="收集链接">
<NInput v-model:value="addGoodsModel.collectUrl" placeholder="用于给用户填写自己收货地址的表格的分享链接" />
</NFormItem>
<NFormItem label="内嵌收集链接">
<NCheckbox v-model:checked="addGoodsModel.embedCollectUrl"> 尝试将收集链接嵌入到网页中 </NCheckbox>
</NFormItem>
</template>
<template v-else>
<NFormItem path="privacy" label="隐私策略" required>
<NCheckbox v-model:checked="isAllowedPrivacyPolicy"> 同意本站隐私策略 </NCheckbox>
</NFormItem>
</template>
</template>
<template v-else>
<NFormItem path="content" label="礼物内容" required>
<NInput
v-model:value="addGoodsModel.content"
style="min-height: 100px"
type="textarea"
placeholder="虚拟礼物的具体内容, 网盘链接什么之类的"
maxlength="10000"
show-count
autosize
clearable
/>
</NFormItem>
</template>
<NButton @click="updateGoods" type="primary"> 添加 </NButton>
</NForm>
</NScrollbar>
</NModal>
</template> </template>

View File

@@ -153,7 +153,7 @@ const gridRender = (type: 'padding' | 'reject' | 'accept') => {
cover: () => cover: () =>
h('div', { style: 'position: relative;height: 150px;' }, [ h('div', { style: 'position: relative;height: 150px;' }, [
h('img', { h('img', {
src: v.video.cover, src: v.video.cover.replace('http://', 'https://'),
referrerpolicy: 'no-referrer', referrerpolicy: 'no-referrer',
style: 'max-height: 100%; object-fit: contain;cursor: pointer', style: 'max-height: 100%; object-fit: contain;cursor: pointer',
onClick: () => window.open('https://www.bilibili.com/video/' + v.info.bvid, '_blank'), onClick: () => window.open('https://www.bilibili.com/video/' + v.info.bvid, '_blank'),
@@ -307,7 +307,7 @@ function saveQRCode() {
<NButton type="success" size="small" @click="shareModalVisiable = true"> 分享 </NButton> <NButton type="success" size="small" @click="shareModalVisiable = true"> 分享 </NButton>
<NButton type="info" size="small" @click="editModalVisiable = true"> 更新 </NButton> <NButton type="info" size="small" @click="editModalVisiable = true"> 更新 </NButton>
<NButton type="warning" size="small" @click="closeTable"> {{ videoDetail.table.isFinish ? '开启表' : '关闭表' }} </NButton> <NButton type="warning" size="small" @click="closeTable"> {{ videoDetail.table.isFinish ? '开启表' : '关闭表' }} </NButton>
<NButton size="small" @click="$router.push({ name: 'video-collect-list', params: { id: videoDetail.table.id } })"> 结果 </NButton> <NButton size="small" @click="$router.push({ name: 'video-collect-list', params: { id: videoDetail.table.id } })"> 结果页面 </NButton>
<NPopconfirm :on-positive-click="deleteTable"> <NPopconfirm :on-positive-click="deleteTable">
<template #trigger> <template #trigger>
<NButton type="error" size="small"> 删除 </NButton> <NButton type="error" size="small"> 删除 </NButton>

View File

@@ -1,9 +1,9 @@
// vite.config.ts // vite.config.ts
import vue from '@vitejs/plugin-vue'; import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'; import vueJsx from '@vitejs/plugin-vue-jsx'
import path from 'path'; import path from 'path'
import { defineConfig } from 'vite'; import { defineConfig } from 'vite'
import svgLoader from 'vite-svg-loader'; import svgLoader from 'vite-svg-loader'
export default defineConfig({ export default defineConfig({
plugins: [ plugins: [
@@ -24,4 +24,7 @@ export default defineConfig({
define: { define: {
'process.env': {}, 'process.env': {},
}, },
optimizeDeps: {
include: ['@vicons/fluent', '@vicons/ionicons5', 'vue', 'vue-router'],
},
}) })

537
yarn.lock
View File

@@ -325,7 +325,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.5, @babel/runtime@npm:^7.23.6": "@babel/runtime@npm:^7.21.0":
version: 7.23.6 version: 7.23.6
resolution: "@babel/runtime@npm:7.23.6" resolution: "@babel/runtime@npm:7.23.6"
dependencies: dependencies:
@@ -334,6 +334,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/runtime@npm:^7.23.8":
version: 7.23.8
resolution: "@babel/runtime@npm:7.23.8"
dependencies:
regenerator-runtime: "npm:^0.14.0"
checksum: ba5e8fbb32ef04f6cab5e89c54a0497c2fde7b730595cc1af93496270314f13ff2c6a9360fdb2f0bdd4d6b376752ce3cf85642bd6b876969a6a62954934c2df8
languageName: node
linkType: hard
"@babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5": "@babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5":
version: 7.22.15 version: 7.22.15
resolution: "@babel/template@npm:7.22.15" resolution: "@babel/template@npm:7.22.15"
@@ -851,7 +860,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/eslint@npm:^8": "@types/eslint@npm:^8.56.2":
version: 8.56.2 version: 8.56.2
resolution: "@types/eslint@npm:8.56.2" resolution: "@types/eslint@npm:8.56.2"
dependencies: dependencies:
@@ -905,12 +914,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/node@npm:^20.10.6": "@types/node@npm:^20.11.5":
version: 20.10.6 version: 20.11.5
resolution: "@types/node@npm:20.10.6" resolution: "@types/node@npm:20.11.5"
dependencies: dependencies:
undici-types: "npm:~5.26.4" undici-types: "npm:~5.26.4"
checksum: 6692ccfa8552ef60c4069fda3c8de726c23e8d403cdf788e3c7efa769987e80fbda5f02723dd857f9de7df24a5fa40b3ed4580ec3c5cbac04eba44cf7b2ab1dc checksum: 6d18cec852f5cfbed3ec42b5c01c026e7a3f9da540d6e3d6738d4cee9979fb308cf27b6df7ba40a6553e7bc82e678f0ef53ba6e6ad52e5b86bd97b7783c2a42c
languageName: node languageName: node
linkType: hard linkType: hard
@@ -921,6 +930,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/uuid@npm:^9":
version: 9.0.7
resolution: "@types/uuid@npm:9.0.7"
checksum: b329ebd4f9d1d8e08d4f2cc211be4922d70d1149f73d5772630e4a3acfb5170c6d37b3d7a39a0412f1a56e86e8a844c7f297c798b082f90380608bf766688787
languageName: node
linkType: hard
"@types/web-bluetooth@npm:^0.0.20": "@types/web-bluetooth@npm:^0.0.20":
version: 0.0.20 version: 0.0.20
resolution: "@types/web-bluetooth@npm:0.0.20" resolution: "@types/web-bluetooth@npm:0.0.20"
@@ -928,15 +944,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/eslint-plugin@npm:^6.16.0": "@typescript-eslint/eslint-plugin@npm:^6.19.0":
version: 6.16.0 version: 6.19.0
resolution: "@typescript-eslint/eslint-plugin@npm:6.16.0" resolution: "@typescript-eslint/eslint-plugin@npm:6.19.0"
dependencies: dependencies:
"@eslint-community/regexpp": "npm:^4.5.1" "@eslint-community/regexpp": "npm:^4.5.1"
"@typescript-eslint/scope-manager": "npm:6.16.0" "@typescript-eslint/scope-manager": "npm:6.19.0"
"@typescript-eslint/type-utils": "npm:6.16.0" "@typescript-eslint/type-utils": "npm:6.19.0"
"@typescript-eslint/utils": "npm:6.16.0" "@typescript-eslint/utils": "npm:6.19.0"
"@typescript-eslint/visitor-keys": "npm:6.16.0" "@typescript-eslint/visitor-keys": "npm:6.19.0"
debug: "npm:^4.3.4" debug: "npm:^4.3.4"
graphemer: "npm:^1.4.0" graphemer: "npm:^1.4.0"
ignore: "npm:^5.2.4" ignore: "npm:^5.2.4"
@@ -949,7 +965,7 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: c8a68e0953d8b94f6b85d3a82090e61e670bcb0945cbee4d741321c56db727429ad47c48b8403ad1dab3b0842689bd2d4b85c99b76c51ac4f5be7f5f61c4c314 checksum: ab1a5ace6663b0c6d2418e321328fa28aa4bdc4b5fae257addec01346fb3a9c2d3a2960ade0f7114e6974c513a28632c9e8e602333cc0fab3135c445babdef59
languageName: node languageName: node
linkType: hard linkType: hard
@@ -978,21 +994,21 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/parser@npm:^6.16.0": "@typescript-eslint/parser@npm:^6.19.0":
version: 6.16.0 version: 6.19.0
resolution: "@typescript-eslint/parser@npm:6.16.0" resolution: "@typescript-eslint/parser@npm:6.19.0"
dependencies: dependencies:
"@typescript-eslint/scope-manager": "npm:6.16.0" "@typescript-eslint/scope-manager": "npm:6.19.0"
"@typescript-eslint/types": "npm:6.16.0" "@typescript-eslint/types": "npm:6.19.0"
"@typescript-eslint/typescript-estree": "npm:6.16.0" "@typescript-eslint/typescript-estree": "npm:6.19.0"
"@typescript-eslint/visitor-keys": "npm:6.16.0" "@typescript-eslint/visitor-keys": "npm:6.19.0"
debug: "npm:^4.3.4" debug: "npm:^4.3.4"
peerDependencies: peerDependencies:
eslint: ^7.0.0 || ^8.0.0 eslint: ^7.0.0 || ^8.0.0
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: 9d573d14df4ec661dccaca785223a8a330d64f50a9279ff9170b1da22198ff91b9afa3ee7d3d7127c0cbc148c86831e76b33fc5b47d630799e98940ef666bfe0 checksum: d547bfb1aaed112cfc0f9f0be8506a280952ba3b61be42b749352139361bd94e4a47fa043d819e19c6a498cacbd8bb36a46e3628c436a7e2009e7ac27afc8861
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1024,13 +1040,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/scope-manager@npm:6.16.0": "@typescript-eslint/scope-manager@npm:6.19.0":
version: 6.16.0 version: 6.19.0
resolution: "@typescript-eslint/scope-manager@npm:6.16.0" resolution: "@typescript-eslint/scope-manager@npm:6.19.0"
dependencies: dependencies:
"@typescript-eslint/types": "npm:6.16.0" "@typescript-eslint/types": "npm:6.19.0"
"@typescript-eslint/visitor-keys": "npm:6.16.0" "@typescript-eslint/visitor-keys": "npm:6.19.0"
checksum: 3b275e528d19f4f36c4acd6cb872b5f004175512dce30cef0ac7a9121bb23d21e5e0f4b62658dbfea2b15851e7fa930372696f25a6c87492f863171ab56f5364 checksum: 1ec7b9dedca7975f0aa4543c1c382f7d6131411bd443a5f9b96f137acb6adb450888ed13c95f6d26546b682b2e0579ce8a1c883fdbe2255dc0b61052193b8243
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1051,12 +1067,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/type-utils@npm:6.16.0": "@typescript-eslint/type-utils@npm:6.19.0":
version: 6.16.0 version: 6.19.0
resolution: "@typescript-eslint/type-utils@npm:6.16.0" resolution: "@typescript-eslint/type-utils@npm:6.19.0"
dependencies: dependencies:
"@typescript-eslint/typescript-estree": "npm:6.16.0" "@typescript-eslint/typescript-estree": "npm:6.19.0"
"@typescript-eslint/utils": "npm:6.16.0" "@typescript-eslint/utils": "npm:6.19.0"
debug: "npm:^4.3.4" debug: "npm:^4.3.4"
ts-api-utils: "npm:^1.0.1" ts-api-utils: "npm:^1.0.1"
peerDependencies: peerDependencies:
@@ -1064,7 +1080,7 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: a5339cc1375d12411fcb242249143b28401fb18890bb2a1cff5275ba946affb4a2066cd8203e83ac383bd9d791a79ea6ee1cbf7a30deed5c832ed002897bbf82 checksum: 5b146b985481e587122026c703ac9f537ad7e90eee1dca814971bca0d7e4a5d4ff9861fb4bf749014c28c6a4fbb4a01a4527355961315eb9501f3569f8e8dd38
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1075,10 +1091,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/types@npm:6.16.0": "@typescript-eslint/types@npm:6.19.0":
version: 6.16.0 version: 6.19.0
resolution: "@typescript-eslint/types@npm:6.16.0" resolution: "@typescript-eslint/types@npm:6.19.0"
checksum: 74d9a8b7fd1b85fd1824295c92bc2f506148e450c9897f65ddaa089091017df4e25676c5b098b75c8f00529b84492f303a6b1870bb0ffee83997081325891d53 checksum: 6f81860a3c14df55232c2e6dec21fb166867b9f30b3c3369b325aef5ee1c7e41e827c0504654daa49c8ff1a3a9ca9d9bfe76786882b6212a7c1b58991a9c80b9
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1100,12 +1116,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/typescript-estree@npm:6.16.0": "@typescript-eslint/typescript-estree@npm:6.19.0":
version: 6.16.0 version: 6.19.0
resolution: "@typescript-eslint/typescript-estree@npm:6.16.0" resolution: "@typescript-eslint/typescript-estree@npm:6.19.0"
dependencies: dependencies:
"@typescript-eslint/types": "npm:6.16.0" "@typescript-eslint/types": "npm:6.19.0"
"@typescript-eslint/visitor-keys": "npm:6.16.0" "@typescript-eslint/visitor-keys": "npm:6.19.0"
debug: "npm:^4.3.4" debug: "npm:^4.3.4"
globby: "npm:^11.1.0" globby: "npm:^11.1.0"
is-glob: "npm:^4.0.3" is-glob: "npm:^4.0.3"
@@ -1115,7 +1131,7 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: c7109e90b40b3c8f1042beb7f1a7a97eeba3b6a903acd82df4947900d68bd31d04b530a190c099666c5ca4886efc162de7b42de754a44b189e41237210797d9e checksum: 5b365f009e43c7beafdbb7d8ecad78ee1087b0a4338cd9ec695eed514b7b4c1089e56239761139ddae629ec0ce8d428840c6ebfeea3618d2efe00c84f8794da5
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1136,20 +1152,20 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/utils@npm:6.16.0": "@typescript-eslint/utils@npm:6.19.0":
version: 6.16.0 version: 6.19.0
resolution: "@typescript-eslint/utils@npm:6.16.0" resolution: "@typescript-eslint/utils@npm:6.19.0"
dependencies: dependencies:
"@eslint-community/eslint-utils": "npm:^4.4.0" "@eslint-community/eslint-utils": "npm:^4.4.0"
"@types/json-schema": "npm:^7.0.12" "@types/json-schema": "npm:^7.0.12"
"@types/semver": "npm:^7.5.0" "@types/semver": "npm:^7.5.0"
"@typescript-eslint/scope-manager": "npm:6.16.0" "@typescript-eslint/scope-manager": "npm:6.19.0"
"@typescript-eslint/types": "npm:6.16.0" "@typescript-eslint/types": "npm:6.19.0"
"@typescript-eslint/typescript-estree": "npm:6.16.0" "@typescript-eslint/typescript-estree": "npm:6.19.0"
semver: "npm:^7.5.4" semver: "npm:^7.5.4"
peerDependencies: peerDependencies:
eslint: ^7.0.0 || ^8.0.0 eslint: ^7.0.0 || ^8.0.0
checksum: 586c4c0e1ca249daf9958f0d88df3af010a7592a19db1a7dc198754542b584314896536fe56ea9c93dd0ddd531154e7697002643d46e24a8d3a459721a626e91 checksum: 343ff4cd4f7e102df8c46b41254d017a33d95df76455531fda679fdb92aebb9c111df8ee9ab54972e73c1e8fad9dd7e421001233f0aee8115384462b0821852e
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1163,13 +1179,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/visitor-keys@npm:6.16.0": "@typescript-eslint/visitor-keys@npm:6.19.0":
version: 6.16.0 version: 6.19.0
resolution: "@typescript-eslint/visitor-keys@npm:6.16.0" resolution: "@typescript-eslint/visitor-keys@npm:6.19.0"
dependencies: dependencies:
"@typescript-eslint/types": "npm:6.16.0" "@typescript-eslint/types": "npm:6.19.0"
eslint-visitor-keys: "npm:^3.4.1" eslint-visitor-keys: "npm:^3.4.1"
checksum: 13c4d90355e288eac432d2845e37bb2acc03dab6d8568564558c1914a9aa44352f2a7ff29d0f50e0b3e68d66cca5f27b2732af5ff193b82571b4366309842880 checksum: bb34e922e018aadf34866995ea5949d6623f184cc4f6470ab05767dd208ffabb003b7dc3872199714574b7f10afe89d49c6f89a4e8d086edea82be73e189f1bb
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1208,13 +1224,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@vitejs/plugin-vue@npm:^5.0.1": "@vitejs/plugin-vue@npm:^5.0.3":
version: 5.0.1 version: 5.0.3
resolution: "@vitejs/plugin-vue@npm:5.0.1" resolution: "@vitejs/plugin-vue@npm:5.0.3"
peerDependencies: peerDependencies:
vite: ^5.0.0 vite: ^5.0.0
vue: ^3.2.25 vue: ^3.2.25
checksum: 93a28a3f7b16b5e060237a4bdda4e67d80cdfd7fb818d6f7f73e500c848914b0042b369e01d3fc46f089254b8540d07020451ad9c338142f0ab4f668007d27d8 checksum: b03f9bd0bb5f75f133ec25599802c4563f85860fb5cd2774372988ae18727150d7aa2f7de97aa3f2100e362013942a95cbed5b53a0c0e31b84e7c85b6944a65b
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1244,53 +1260,53 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@vue/compiler-core@npm:3.4.1": "@vue/compiler-core@npm:3.4.15":
version: 3.4.1 version: 3.4.15
resolution: "@vue/compiler-core@npm:3.4.1" resolution: "@vue/compiler-core@npm:3.4.15"
dependencies: dependencies:
"@babel/parser": "npm:^7.23.6" "@babel/parser": "npm:^7.23.6"
"@vue/shared": "npm:3.4.1" "@vue/shared": "npm:3.4.15"
entities: "npm:^4.5.0" entities: "npm:^4.5.0"
estree-walker: "npm:^2.0.2" estree-walker: "npm:^2.0.2"
source-map-js: "npm:^1.0.2" source-map-js: "npm:^1.0.2"
checksum: 99c7e774a6bd5b6e96aae0cf4e803e0718741f7e295009d3777ec517f0bef06e03ba3d1196cf67b479e84ed53df9129fc1c54bfcef0e95fe1329829e236a5abb checksum: 151dd9c1a4fae826c53ec60536d14298266baf81f8ed1729b1cbcd082d06410234ee951336c5f43aeaf00febafc0fdd7f82934d747a052b7435be0c2e89b8f2e
languageName: node languageName: node
linkType: hard linkType: hard
"@vue/compiler-dom@npm:3.4.1": "@vue/compiler-dom@npm:3.4.15":
version: 3.4.1 version: 3.4.15
resolution: "@vue/compiler-dom@npm:3.4.1" resolution: "@vue/compiler-dom@npm:3.4.15"
dependencies: dependencies:
"@vue/compiler-core": "npm:3.4.1" "@vue/compiler-core": "npm:3.4.15"
"@vue/shared": "npm:3.4.1" "@vue/shared": "npm:3.4.15"
checksum: 96545322c9f1dc5004c646ed759b9d17619aaaa66a32a3adb97e390fa5fec1135dc456bc7a7c81dc68f70a13a8256e8668680393fd92b709735625e252765e4c checksum: d9339ca83f4e2e8fe21435c278e28b8551650d6ab09f0df1ba4afe983b4d692e07d753e70738dffee71e0d04af000eaafd7efebb8c4de5981b2e756ce03c3719
languageName: node languageName: node
linkType: hard linkType: hard
"@vue/compiler-sfc@npm:3.4.1": "@vue/compiler-sfc@npm:3.4.15":
version: 3.4.1 version: 3.4.15
resolution: "@vue/compiler-sfc@npm:3.4.1" resolution: "@vue/compiler-sfc@npm:3.4.15"
dependencies: dependencies:
"@babel/parser": "npm:^7.23.6" "@babel/parser": "npm:^7.23.6"
"@vue/compiler-core": "npm:3.4.1" "@vue/compiler-core": "npm:3.4.15"
"@vue/compiler-dom": "npm:3.4.1" "@vue/compiler-dom": "npm:3.4.15"
"@vue/compiler-ssr": "npm:3.4.1" "@vue/compiler-ssr": "npm:3.4.15"
"@vue/shared": "npm:3.4.1" "@vue/shared": "npm:3.4.15"
estree-walker: "npm:^2.0.2" estree-walker: "npm:^2.0.2"
magic-string: "npm:^0.30.5" magic-string: "npm:^0.30.5"
postcss: "npm:^8.4.32" postcss: "npm:^8.4.33"
source-map-js: "npm:^1.0.2" source-map-js: "npm:^1.0.2"
checksum: a3bd342b49cc588c96a21f930f96a355faf0ccba9780d12c52ac5a322fd446f88d16572ed9ec55ef414426b789ab8f8bb480e5f3ea487f28543c7b1da55d7595 checksum: 8643f2b6114927034195c06e13b872d186e3b5ae8e84041ea697932613cdd6e848e9253ecf4cfb13302b81a120906e0673b0adf97d07a5e1a731b96aa43f3f75
languageName: node languageName: node
linkType: hard linkType: hard
"@vue/compiler-ssr@npm:3.4.1": "@vue/compiler-ssr@npm:3.4.15":
version: 3.4.1 version: 3.4.15
resolution: "@vue/compiler-ssr@npm:3.4.1" resolution: "@vue/compiler-ssr@npm:3.4.15"
dependencies: dependencies:
"@vue/compiler-dom": "npm:3.4.1" "@vue/compiler-dom": "npm:3.4.15"
"@vue/shared": "npm:3.4.1" "@vue/shared": "npm:3.4.15"
checksum: 313acb00b4351755b751e2b6d91311fae038ce40b865ab217335883b4e11f781a53c693db596ab3af0319cb8db49f81873e05195a9dde9a53783f3db766ab88f checksum: c71c4df64c1df81f0b0e0e99236135a3e3989ba5d6204eb3c0fac804f7a927a0eb6f6ea67f96df63263ba3667f3a833adb20d76866236124befdf7652ca7a8cd
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1319,92 +1335,92 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@vue/reactivity@npm:3.4.1": "@vue/reactivity@npm:3.4.15":
version: 3.4.1 version: 3.4.15
resolution: "@vue/reactivity@npm:3.4.1" resolution: "@vue/reactivity@npm:3.4.15"
dependencies: dependencies:
"@vue/shared": "npm:3.4.1" "@vue/shared": "npm:3.4.15"
checksum: 379e584c5949a000933363adc073d55839fc5ae15c2e982179509169974eb9afdca6553f6d8714e0519e5a8443fdc4d05438c06df1f5b72b0674eaa4709ab0e7 checksum: 2eb51e6f642817d5078ebc36ae5b0f94712403448f26794bedbefd05ec23f229dcf7b2512e609170b9d31e1c80bd17c5ff40cc9f82e50d6f0d41c3d542955d01
languageName: node languageName: node
linkType: hard linkType: hard
"@vue/runtime-core@npm:3.4.1": "@vue/runtime-core@npm:3.4.15":
version: 3.4.1 version: 3.4.15
resolution: "@vue/runtime-core@npm:3.4.1" resolution: "@vue/runtime-core@npm:3.4.15"
dependencies: dependencies:
"@vue/reactivity": "npm:3.4.1" "@vue/reactivity": "npm:3.4.15"
"@vue/shared": "npm:3.4.1" "@vue/shared": "npm:3.4.15"
checksum: 84778625a75f7e5e100a2b2cb7f4197955fa80243c562c647e192f816c430092ce161e88a41facd0086225f42b334120962dc6164ce1b688af9e4d97c23c0a37 checksum: f8784c2b65bb8bec705a0e1723f7b47079604c1d1c075497af6f303f81fa5e228d3ca56da2fac3e6e303a42ab26febfcc7a3be5b932a3c0a2f588f1256b9af38
languageName: node languageName: node
linkType: hard linkType: hard
"@vue/runtime-dom@npm:3.4.1": "@vue/runtime-dom@npm:3.4.15":
version: 3.4.1 version: 3.4.15
resolution: "@vue/runtime-dom@npm:3.4.1" resolution: "@vue/runtime-dom@npm:3.4.15"
dependencies: dependencies:
"@vue/runtime-core": "npm:3.4.1" "@vue/runtime-core": "npm:3.4.15"
"@vue/shared": "npm:3.4.1" "@vue/shared": "npm:3.4.15"
csstype: "npm:^3.1.3" csstype: "npm:^3.1.3"
checksum: 57e39934f1c742d64eede4d419ca1a10e2fcead4dc3e1491c701161538867aa707788b8e5b3fa2da2d9e8d6429c879fbfc756d64bca2e490640fc034caddeb2a checksum: e9202ca15481e72dce4f2dce2c29401afc82ee89e7f01f2989cee2a94d7689b75139e900717e3c8bfb59b741f403051a02664b5784e5389a49d639f919e234c4
languageName: node languageName: node
linkType: hard linkType: hard
"@vue/server-renderer@npm:3.4.1": "@vue/server-renderer@npm:3.4.15":
version: 3.4.1 version: 3.4.15
resolution: "@vue/server-renderer@npm:3.4.1" resolution: "@vue/server-renderer@npm:3.4.15"
dependencies: dependencies:
"@vue/compiler-ssr": "npm:3.4.1" "@vue/compiler-ssr": "npm:3.4.15"
"@vue/shared": "npm:3.4.1" "@vue/shared": "npm:3.4.15"
peerDependencies: peerDependencies:
vue: 3.4.1 vue: 3.4.15
checksum: 6dda9537d4582d48323d0132d69bfc433346429b8b1677624e4c5ebd588b850fd4686fa07a98e802c24b48a52edff6b4c8b4a8350b218ba8c90d467ebd6f2bde checksum: 43f86060774b8fa7331c672c564402ec58363642f0457147492b7b69c44fb1c26515968dc72d2ca0be053e838e9c2cf8f274356f982bb2bf9e886b1f4916ecaf
languageName: node languageName: node
linkType: hard linkType: hard
"@vue/shared@npm:3.4.1": "@vue/shared@npm:3.4.15":
version: 3.4.1 version: 3.4.15
resolution: "@vue/shared@npm:3.4.1" resolution: "@vue/shared@npm:3.4.15"
checksum: 7dd1c253527197909434db04d350fddaff8a9bd6cb3df11975e68f4aab6c88ff7b4e833e892a451787ceeb43ef68efdc56c166d8a7df1bff59f8671a8920d6d6 checksum: eddcc1c82e8e550d9f3d622e33fd841c0c3b5c6f04f21f1cb10d3415068daabac0746279c88031861183d75d7a082fb599eec9201757d457de177d86989a9bc7
languageName: node languageName: node
linkType: hard linkType: hard
"@vueuse/core@npm:^10.7.1": "@vueuse/core@npm:^10.7.2":
version: 10.7.1 version: 10.7.2
resolution: "@vueuse/core@npm:10.7.1" resolution: "@vueuse/core@npm:10.7.2"
dependencies: dependencies:
"@types/web-bluetooth": "npm:^0.0.20" "@types/web-bluetooth": "npm:^0.0.20"
"@vueuse/metadata": "npm:10.7.1" "@vueuse/metadata": "npm:10.7.2"
"@vueuse/shared": "npm:10.7.1" "@vueuse/shared": "npm:10.7.2"
vue-demi: "npm:>=0.14.6" vue-demi: "npm:>=0.14.6"
checksum: 789d1f641d28533ee756d2b0f98fd9a9df1fa7fb1b6940fe2f27cf3dd94cbf1ea96fdc91b829e53e1e78bdf104367e5586adb53879aa6913891cb9e32bcc3df7 checksum: ec9f0f4980058ced484c047db2a6c88c051bb0f3081588390269f2be14c42cd8cae842188d38b7294195d84f93d98c7c62d3822550010279c5eb4c4bdafdd2f2
languageName: node languageName: node
linkType: hard linkType: hard
"@vueuse/metadata@npm:10.7.1": "@vueuse/metadata@npm:10.7.2":
version: 10.7.1 version: 10.7.2
resolution: "@vueuse/metadata@npm:10.7.1" resolution: "@vueuse/metadata@npm:10.7.2"
checksum: ccd2d66d99bcfd9f02f9cae012b3c369fa8760b79aadc2c39e44f6bafe87eb995f044c8381bc4c147a01b99e3f466f703572341643d866559b9980a51332b318 checksum: 091301ca9730fdab20a962f9774f066bbf92ebffd46097fab923efe50883306b94f6f33599cad6df25d18127100da135613a65cf214867d5eec9d907e87ba217
languageName: node languageName: node
linkType: hard linkType: hard
"@vueuse/router@npm:^10.7.1": "@vueuse/router@npm:^10.7.2":
version: 10.7.1 version: 10.7.2
resolution: "@vueuse/router@npm:10.7.1" resolution: "@vueuse/router@npm:10.7.2"
dependencies: dependencies:
"@vueuse/shared": "npm:10.7.1" "@vueuse/shared": "npm:10.7.2"
vue-demi: "npm:>=0.14.6" vue-demi: "npm:>=0.14.6"
peerDependencies: peerDependencies:
vue-router: ">=4.0.0-rc.1" vue-router: ">=4.0.0-rc.1"
checksum: 12a1f515611db6f28f6a49ef00e65593bbbd21433abcb34d0f0157dbafb106218f01a074f05b11e3fb1522c7f5d1f4b978cd71be15469b06149e77648fac0b58 checksum: 1caddae08255a629e44b7fef0f94c60d2e0d9f4dfa2145ac6caf5b1a7086fe9707cbb9afeed661a0c0aefe589fcdfdc0ba9c8a0790929935b8b57f7b9653a671
languageName: node languageName: node
linkType: hard linkType: hard
"@vueuse/shared@npm:10.7.1": "@vueuse/shared@npm:10.7.2":
version: 10.7.1 version: 10.7.2
resolution: "@vueuse/shared@npm:10.7.1" resolution: "@vueuse/shared@npm:10.7.2"
dependencies: dependencies:
vue-demi: "npm:>=0.14.6" vue-demi: "npm:>=0.14.6"
checksum: 3f7e8499b6a9749c01eb8cc965b6154bbef49405066bbed6cdc770230a347eb3065351f50af00e5731cde8952e022387aac251b8d37986d0f51f9bf0b6b2efbd checksum: 293984b39fa616f6cd0ae958bd1a2a792071a23015309f6342788134aa053da56b301832ddb605d7155fe73803f3e18bd13c3a2f38ad1fcf1b1230c81bae4360
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1936,10 +1952,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"date-fns@npm:^3.0.6": "date-fns@npm:^3.2.0":
version: 3.0.6 version: 3.2.0
resolution: "date-fns@npm:3.0.6" resolution: "date-fns@npm:3.2.0"
checksum: ca6ac81aca623fd6d12a43da59cc216e13a75a2eecf7fac692654524fca625e073f5cd36951ef0deac9621ead564eb06b4c3723f77b34e86f21ca3c0c3b32ff7 checksum: f93e987f785d7f2b7349986d150b014ce21fa6425e2e1edea6f0e01731dceef68deabf0f723689c28604e857648ac708a52b924cb7584e4321835686aa665371
languageName: node languageName: node
linkType: hard linkType: hard
@@ -2065,10 +2081,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"easy-speech@npm:^2.2.0": "easy-speech@npm:^2.3.1":
version: 2.2.0 version: 2.3.1
resolution: "easy-speech@npm:2.2.0" resolution: "easy-speech@npm:2.3.1"
checksum: 944a174d5372e497b27ab201824d25d015ee93492e1b6258d29adf7b2f97ad8927aa53e2a889f671b40308a0af6bafa00a4e3b4606dc1005a3e06cd65b6a94a2 checksum: 4affdd443c4bc5b80748745b913380d9e7a1b2645942996f49d5eec4019f83ae6636824f3347e9decd3ff0e128701dc8a4a24649553e7da08ea0df8ebb61fa54
languageName: node languageName: node
linkType: hard linkType: hard
@@ -2380,16 +2396,16 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"eslint-plugin-oxlint@npm:^0.2.0": "eslint-plugin-oxlint@npm:^0.2.1":
version: 0.2.0 version: 0.2.1
resolution: "eslint-plugin-oxlint@npm:0.2.0" resolution: "eslint-plugin-oxlint@npm:0.2.1"
checksum: fc0d6b56e9e93129b16f46f5ddfd2bf7233292b6a643efeda4c421d2796ee009333ca3bada4241b14dcd14b21eb757ead4aaa84671af73da925042eabed425d8 checksum: 45821ae3a3e847d8200c99d415552746b2b1b61ec0329fd4fbb6cde96edc71fb918c4ee8e169496c998c472a927a819b0a5833580538dc67935d72689bf3b8c0
languageName: node languageName: node
linkType: hard linkType: hard
"eslint-plugin-prettier@npm:^5.1.2": "eslint-plugin-prettier@npm:^5.1.3":
version: 5.1.2 version: 5.1.3
resolution: "eslint-plugin-prettier@npm:5.1.2" resolution: "eslint-plugin-prettier@npm:5.1.3"
dependencies: dependencies:
prettier-linter-helpers: "npm:^1.0.0" prettier-linter-helpers: "npm:^1.0.0"
synckit: "npm:^0.8.6" synckit: "npm:^0.8.6"
@@ -2403,24 +2419,24 @@ __metadata:
optional: true optional: true
eslint-config-prettier: eslint-config-prettier:
optional: true optional: true
checksum: e16c9fbb0e9f8da45bdbb1cf6e4a190266235c3686deede3815196d2604bbe2bac531d1fc9adc3c0b9a03d88b55bd3bfaa4f9d85e34e73dc040d545a1931fab9 checksum: f45d5fc1fcfec6b0cf038a7a65ddd10a25df4fe3f9e1f6b7f0d5100e66f046a26a2492e69ee765dddf461b93c114cf2e1eb18d4970aafa6f385448985c136e09
languageName: node languageName: node
linkType: hard linkType: hard
"eslint-plugin-vue@npm:^9.19.2": "eslint-plugin-vue@npm:^9.20.1":
version: 9.19.2 version: 9.20.1
resolution: "eslint-plugin-vue@npm:9.19.2" resolution: "eslint-plugin-vue@npm:9.20.1"
dependencies: dependencies:
"@eslint-community/eslint-utils": "npm:^4.4.0" "@eslint-community/eslint-utils": "npm:^4.4.0"
natural-compare: "npm:^1.4.0" natural-compare: "npm:^1.4.0"
nth-check: "npm:^2.1.1" nth-check: "npm:^2.1.1"
postcss-selector-parser: "npm:^6.0.13" postcss-selector-parser: "npm:^6.0.13"
semver: "npm:^7.5.4" semver: "npm:^7.5.4"
vue-eslint-parser: "npm:^9.3.1" vue-eslint-parser: "npm:^9.4.0"
xml-name-validator: "npm:^4.0.0" xml-name-validator: "npm:^4.0.0"
peerDependencies: peerDependencies:
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
checksum: b48c24c6aedcc690b4cf2432df08da62fba6f7f24f3a561d7a2592329c2c947d01ba51b49b2a256f65735dcea4f73b44cbffc0c373fec461f49f5a02a078561e checksum: 97c75d8ac0351c6e7d7edb364af176ab1890e5bf8eeb525b9379f0ed88205d889c4297b107d1b196dc45ed14c1b9ccdb7fe9890c6fccd33d9b5aa00502882afa
languageName: node languageName: node
linkType: hard linkType: hard
@@ -2594,24 +2610,24 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"fast-unique-numbers@npm:^8.0.12": "fast-unique-numbers@npm:^8.0.13":
version: 8.0.12 version: 8.0.13
resolution: "fast-unique-numbers@npm:8.0.12" resolution: "fast-unique-numbers@npm:8.0.13"
dependencies: dependencies:
"@babel/runtime": "npm:^7.23.5" "@babel/runtime": "npm:^7.23.8"
tslib: "npm:^2.6.2" tslib: "npm:^2.6.2"
checksum: d7ba9dbbe85704fcef47277df6f182db48937bce1846801e17c1176eda02ee089be06ebf2c55c8c78c0f9d2dfc4be546595c9feb165a302f24c6e3b9813cd5cb checksum: bf826d92345083c3146debf44e7dc93414d428eb81bd095dd46fcc6654f77977e0d04a2f65bccfcf0b9fc495a4276259afe99dbee009f463d19a1503f4e9bfac
languageName: node languageName: node
linkType: hard linkType: hard
"fast-xml-parser@npm:^4.3.2": "fast-xml-parser@npm:^4.3.3":
version: 4.3.2 version: 4.3.3
resolution: "fast-xml-parser@npm:4.3.2" resolution: "fast-xml-parser@npm:4.3.3"
dependencies: dependencies:
strnum: "npm:^1.0.5" strnum: "npm:^1.0.5"
bin: bin:
fxparser: src/cli/cli.js fxparser: src/cli/cli.js
checksum: 7c1611349384656ec4faa9802fbc8cf8c01206a1b79193d5cd54586307801562509007f6cf16e5da7d43da4fa4639770f38959a285b9466aa98dab0a9b8ca171 checksum: 420d15f315dbafac68be8a6bfa6a26c42d3e846c336a4d0c9a901f0a0903b0ab642379766fe7574d1602da2914c5d7481f78edf47c0712ab9078871e26cab296
languageName: node languageName: node
linkType: hard linkType: hard
@@ -3675,9 +3691,9 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"naive-ui@npm:^2.36.0": "naive-ui@npm:^2.37.3":
version: 2.36.0 version: 2.37.3
resolution: "naive-ui@npm:2.36.0" resolution: "naive-ui@npm:2.37.3"
dependencies: dependencies:
"@css-render/plugin-bem": "npm:^0.15.12" "@css-render/plugin-bem": "npm:^0.15.12"
"@css-render/vue3-ssr": "npm:^0.15.12" "@css-render/vue3-ssr": "npm:^0.15.12"
@@ -3686,6 +3702,7 @@ __metadata:
"@types/lodash-es": "npm:^4.17.9" "@types/lodash-es": "npm:^4.17.9"
async-validator: "npm:^4.2.5" async-validator: "npm:^4.2.5"
css-render: "npm:^0.15.12" css-render: "npm:^0.15.12"
csstype: "npm:^3.1.3"
date-fns: "npm:^2.30.0" date-fns: "npm:^2.30.0"
date-fns-tz: "npm:^2.0.0" date-fns-tz: "npm:^2.0.0"
evtd: "npm:^0.2.4" evtd: "npm:^0.2.4"
@@ -3696,10 +3713,10 @@ __metadata:
treemate: "npm:^0.3.11" treemate: "npm:^0.3.11"
vdirs: "npm:^0.1.8" vdirs: "npm:^0.1.8"
vooks: "npm:^0.2.12" vooks: "npm:^0.2.12"
vueuc: "npm:^0.4.54" vueuc: "npm:^0.4.58"
peerDependencies: peerDependencies:
vue: ^3.0.0 vue: ^3.0.0
checksum: 7040d38e47c43c76296f187aebc46ac28b69e583a31d594757413d3f1a0ade77ba6e784d7f7ec0c64abeeeb9e01dbb8b170965eaa00aaa49fd65b376419496dd checksum: 9c8fec1ba18e61c91a3ef24e3f387796449a510fdf92030de0cd4a9acf11f3e98f070e9c8e09f87bf29de95f5fb2ee09c2676ce177484a36946097e3a3654861
languageName: node languageName: node
linkType: hard linkType: hard
@@ -3991,6 +4008,17 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"postcss@npm:^8.4.33":
version: 8.4.33
resolution: "postcss@npm:8.4.33"
dependencies:
nanoid: "npm:^3.3.7"
picocolors: "npm:^1.0.0"
source-map-js: "npm:^1.0.2"
checksum: 16eda83458fcd8a91bece287b5920c7f57164c3ea293e6c80d0ea71ce7843007bcd8592260a5160b9a7f02693e6ac93e2495b02d8c7596d3f3f72c1447e3ba79
languageName: node
linkType: hard
"prelude-ls@npm:^1.2.1": "prelude-ls@npm:^1.2.1":
version: 1.2.1 version: 1.2.1
resolution: "prelude-ls@npm:1.2.1" resolution: "prelude-ls@npm:1.2.1"
@@ -4007,12 +4035,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"prettier@npm:^3.1.1": "prettier@npm:^3.2.4":
version: 3.1.1 version: 3.2.4
resolution: "prettier@npm:3.1.1" resolution: "prettier@npm:3.2.4"
bin: bin:
prettier: bin/prettier.cjs prettier: bin/prettier.cjs
checksum: facc944ba20e194ff4db765e830ffbcb642803381f0d2033ed397e79904fa4ccc877dc25ad68f42d36985c01d051c990ca1b905fb83d2d7d65fe69e4386fa1a3 checksum: 88dfeb78ac6096522c9a5b81f1413d875f568420d9bb6a5e5103527912519b993f2bcdcac311fcff5718d5869671d44e4f85827d3626f3a6ce32b9abc65d88e0
languageName: node languageName: node
linkType: hard linkType: hard
@@ -4804,6 +4832,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"uuid@npm:^9.0.1":
version: 9.0.1
resolution: "uuid@npm:9.0.1"
bin:
uuid: dist/bin/uuid
checksum: 1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b
languageName: node
linkType: hard
"vdirs@npm:^0.1.4, vdirs@npm:^0.1.8": "vdirs@npm:^0.1.4, vdirs@npm:^0.1.8":
version: 0.1.8 version: 0.1.8
resolution: "vdirs@npm:0.1.8" resolution: "vdirs@npm:0.1.8"
@@ -4826,9 +4863,9 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"vite@npm:^5.0.10": "vite@npm:^5.0.12":
version: 5.0.10 version: 5.0.12
resolution: "vite@npm:5.0.10" resolution: "vite@npm:5.0.12"
dependencies: dependencies:
esbuild: "npm:^0.19.3" esbuild: "npm:^0.19.3"
fsevents: "npm:~2.3.3" fsevents: "npm:~2.3.3"
@@ -4862,7 +4899,7 @@ __metadata:
optional: true optional: true
bin: bin:
vite: bin/vite.js vite: bin/vite.js
checksum: d666b2760d2a7ea1d0d35f67c042053e562144f80554be4e4dc58e607fd5f62193cd203d73ab2e315df66830d8b9d9a2e3509d0208bdef1b2e92e0a5c364df84 checksum: c51b8e458851943c903fddde6973e720099ef8a5f364fb107cddade59c9e90f6d9ad98b61a7419cdfa0c6374236e10bff965d0c2d9e7b1790c68b874e5e7950c
languageName: node languageName: node
linkType: hard linkType: hard
@@ -4881,50 +4918,52 @@ __metadata:
version: 0.0.0-use.local version: 0.0.0-use.local
resolution: "vtsuru.live@workspace:." resolution: "vtsuru.live@workspace:."
dependencies: dependencies:
"@types/eslint": "npm:^8" "@types/eslint": "npm:^8.56.2"
"@types/node": "npm:^20.10.6" "@types/node": "npm:^20.11.5"
"@typescript-eslint/eslint-plugin": "npm:^6.16.0" "@types/uuid": "npm:^9"
"@typescript-eslint/parser": "npm:^6.16.0" "@typescript-eslint/eslint-plugin": "npm:^6.19.0"
"@typescript-eslint/parser": "npm:^6.19.0"
"@vicons/fluent": "npm:^0.12.0" "@vicons/fluent": "npm:^0.12.0"
"@vicons/ionicons5": "npm:^0.12.0" "@vicons/ionicons5": "npm:^0.12.0"
"@vitejs/plugin-vue": "npm:^5.0.1" "@vitejs/plugin-vue": "npm:^5.0.3"
"@vitejs/plugin-vue-jsx": "npm:^3.1.0" "@vitejs/plugin-vue-jsx": "npm:^3.1.0"
"@vue/eslint-config-typescript": "npm:^12.0.0" "@vue/eslint-config-typescript": "npm:^12.0.0"
"@vueuse/core": "npm:^10.7.1" "@vueuse/core": "npm:^10.7.2"
"@vueuse/router": "npm:^10.7.1" "@vueuse/router": "npm:^10.7.2"
date-fns: "npm:^3.0.6" date-fns: "npm:^3.2.0"
easy-speech: "npm:^2.2.0" easy-speech: "npm:^2.3.1"
echarts: "npm:^5.4.3" echarts: "npm:^5.4.3"
eslint: "npm:^8.56.0" eslint: "npm:^8.56.0"
eslint-config-prettier: "npm:^9.1.0" eslint-config-prettier: "npm:^9.1.0"
eslint-plugin-import: "npm:^2.29.1" eslint-plugin-import: "npm:^2.29.1"
eslint-plugin-oxlint: "npm:^0.2.0" eslint-plugin-oxlint: "npm:^0.2.1"
eslint-plugin-prettier: "npm:^5.1.2" eslint-plugin-prettier: "npm:^5.1.3"
eslint-plugin-vue: "npm:^9.19.2" eslint-plugin-vue: "npm:^9.20.1"
fast-xml-parser: "npm:^4.3.2" fast-xml-parser: "npm:^4.3.3"
file-saver: "npm:^2.0.5" file-saver: "npm:^2.0.5"
grapheme-splitter: "npm:^1.0.4" grapheme-splitter: "npm:^1.0.4"
html2canvas: "npm:^1.4.1" html2canvas: "npm:^1.4.1"
linqts: "npm:^1.15.0" linqts: "npm:^1.15.0"
mitt: "npm:^3.0.1" mitt: "npm:^3.0.1"
naive-ui: "npm:^2.36.0" naive-ui: "npm:^2.37.3"
pinia: "npm:^2.1.7" pinia: "npm:^2.1.7"
prettier: "npm:^3.1.1" prettier: "npm:^3.2.4"
qrcode.vue: "npm:^3.4.1" qrcode.vue: "npm:^3.4.1"
queue-typescript: "npm:^1.0.1" queue-typescript: "npm:^1.0.1"
stylus: "npm:^0.62.0" stylus: "npm:^0.62.0"
typescript: "npm:^5.3.3" typescript: "npm:^5.3.3"
vite: "npm:^5.0.10" uuid: "npm:^9.0.1"
vite: "npm:^5.0.12"
vite-svg-loader: "npm:^5.1.0" vite-svg-loader: "npm:^5.1.0"
vue: "npm:^3.4.1" vue: "npm:^3.4.15"
vue-echarts: "npm:^6.6.8" vue-echarts: "npm:^6.6.8"
vue-request: "npm:^2.0.4" vue-request: "npm:^2.0.4"
vue-router: "npm:^4.2.5" vue-router: "npm:^4.2.5"
vue-turnstile: "npm:^1.0.6" vue-turnstile: "npm:^1.0.7"
vue3-aplayer: "npm:^1.7.3" vue3-aplayer: "npm:^1.7.3"
vue3-marquee: "npm:^4.1.0" vue3-marquee: "npm:^4.2.0-beta.1"
vueuc: "npm:^0.4.58" vueuc: "npm:^0.4.58"
worker-timers: "npm:^7.0.80" worker-timers: "npm:^7.1.1"
languageName: unknown languageName: unknown
linkType: soft linkType: soft
@@ -4997,6 +5036,23 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"vue-eslint-parser@npm:^9.4.0":
version: 9.4.0
resolution: "vue-eslint-parser@npm:9.4.0"
dependencies:
debug: "npm:^4.3.4"
eslint-scope: "npm:^7.1.1"
eslint-visitor-keys: "npm:^3.3.0"
espree: "npm:^9.3.1"
esquery: "npm:^1.4.0"
lodash: "npm:^4.17.21"
semver: "npm:^7.3.6"
peerDependencies:
eslint: ">=6.0.0"
checksum: c77ddaf69ef076f69164cb52fd1295cc73b002f99bf5bcde25dcbce2c3bba66decdc2abd29ce73434720dd3fca20323073b6044f84fec219c629f7b9276abce6
languageName: node
linkType: hard
"vue-loader@npm:^16.1.2": "vue-loader@npm:^16.1.2":
version: 16.8.3 version: 16.8.3
resolution: "vue-loader@npm:16.8.3" resolution: "vue-loader@npm:16.8.3"
@@ -5036,12 +5092,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"vue-turnstile@npm:^1.0.6": "vue-turnstile@npm:^1.0.7":
version: 1.0.6 version: 1.0.7
resolution: "vue-turnstile@npm:1.0.6" resolution: "vue-turnstile@npm:1.0.7"
peerDependencies: peerDependencies:
vue: ^3.2.45 vue: ^3.2.45
checksum: 7d8f705885ac4572ff0261aa48f8f3e8bdaaa7dbcda965673e9950f409fcb2b575f48fa404ec43fd9e3be8a414b0e154f130ee33b62e44254e00eda8c09b940c checksum: e4c1f8c28e7b7e9e20e856a9deeb5589b48098d9c880b81d0d3f8236f1a92d8f3d4d552d51aaf26fd1cc2bf5de848d26e9b1bac88b91179f3cf810c87659a3a1
languageName: node languageName: node
linkType: hard linkType: hard
@@ -5056,47 +5112,30 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"vue3-marquee@npm:^4.1.0": "vue3-marquee@npm:^4.2.0-beta.1":
version: 4.1.0 version: 4.2.0-beta.1
resolution: "vue3-marquee@npm:4.1.0" resolution: "vue3-marquee@npm:4.2.0-beta.1"
peerDependencies: peerDependencies:
vue: ^3.2 vue: ^3.2
checksum: 8ea39d0c01268353fe5cfe0fea47aba18f602248c81ff28576fde978c275bb1363e3eaf6b1c11b6fb1bd05c2520f96ff00f40046ba2c4ac8d8abd889fabae403 checksum: 053d0d9c5e2edc07e6bcb6feca27c026b196d1c802e010ce3f983a6dbfd13abd25588f0e7686fd0cc766183a089a0aa7efac92f55af266a0fb92751db3a36f83
languageName: node languageName: node
linkType: hard linkType: hard
"vue@npm:^3.4.1": "vue@npm:^3.4.15":
version: 3.4.1 version: 3.4.15
resolution: "vue@npm:3.4.1" resolution: "vue@npm:3.4.15"
dependencies: dependencies:
"@vue/compiler-dom": "npm:3.4.1" "@vue/compiler-dom": "npm:3.4.15"
"@vue/compiler-sfc": "npm:3.4.1" "@vue/compiler-sfc": "npm:3.4.15"
"@vue/runtime-dom": "npm:3.4.1" "@vue/runtime-dom": "npm:3.4.15"
"@vue/server-renderer": "npm:3.4.1" "@vue/server-renderer": "npm:3.4.15"
"@vue/shared": "npm:3.4.1" "@vue/shared": "npm:3.4.15"
peerDependencies: peerDependencies:
typescript: "*" typescript: "*"
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: bb638915ded71671233c7585793d876c0f6c8956a5d72c01b18f3c3000176ff52e769b539f9aedc6a162eb71546b766c4c56c40b0e89f8f3a7451db35c555626 checksum: 7410135553f38d390ece3d5edcb6e2c158c3717e002a4e0766a95f6054f0ab7a8ce69000f5e29ff41f631f3cc7211123fbe34ab591b43b14f4af77c4ac01d116
languageName: node
linkType: hard
"vueuc@npm:^0.4.54":
version: 0.4.56
resolution: "vueuc@npm:0.4.56"
dependencies:
"@css-render/vue3-ssr": "npm:^0.15.10"
"@juggle/resize-observer": "npm:^3.3.1"
css-render: "npm:^0.15.10"
evtd: "npm:^0.2.4"
seemly: "npm:^0.3.6"
vdirs: "npm:^0.1.4"
vooks: "npm:^0.2.4"
peerDependencies:
vue: ^3.0.11
checksum: 6dcbd8f638a398d02c66e3791e56f576a9a8e1b7549f8d85410a6b2b87b6e49a12cb2803414a497112d7e55c9d36e6a27f0eb2da24573eb2f8ff00c168eba228
languageName: node languageName: node
linkType: hard linkType: hard
@@ -5165,37 +5204,37 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"worker-timers-broker@npm:^6.0.100": "worker-timers-broker@npm:^6.1.1":
version: 6.0.100 version: 6.1.1
resolution: "worker-timers-broker@npm:6.0.100" resolution: "worker-timers-broker@npm:6.1.1"
dependencies: dependencies:
"@babel/runtime": "npm:^7.23.6" "@babel/runtime": "npm:^7.23.8"
fast-unique-numbers: "npm:^8.0.12" fast-unique-numbers: "npm:^8.0.13"
tslib: "npm:^2.6.2" tslib: "npm:^2.6.2"
worker-timers-worker: "npm:^7.0.64" worker-timers-worker: "npm:^7.0.65"
checksum: 2503ad4cf55ffee9aa6366d6463c84eae0c1a89ebbc0a9ad3089063e899dbea5bdd830b573e928141e9e553f14ca1f67ef693b2e790a19b54c8b05e2a145fa61 checksum: 619698e5860840c9a6e9971c72a7b0d59fd2291b4d571bd5de01488bd9ede5f45b9cbc3606b98290fa2baee01aab90aa5620dd9098c96b5e7300c398c11c01b1
languageName: node languageName: node
linkType: hard linkType: hard
"worker-timers-worker@npm:^7.0.64": "worker-timers-worker@npm:^7.0.65":
version: 7.0.64 version: 7.0.65
resolution: "worker-timers-worker@npm:7.0.64" resolution: "worker-timers-worker@npm:7.0.65"
dependencies: dependencies:
"@babel/runtime": "npm:^7.23.6" "@babel/runtime": "npm:^7.23.8"
tslib: "npm:^2.6.2" tslib: "npm:^2.6.2"
checksum: ec44679f60c183573ac2777d2c2db9a046fa8a11dd0ca413ea478c85e99557775d784774ba44c4e7e75b5b9bea6bcc919824d55fe44efd95417ea069ac615f06 checksum: 3599287cce1f578c7e710181b95e5a83273acdcc737f40fadc707e9d894b8938153b45ae1057b08a43c9d1cecbeb085e6cef621edb4bd9e046ab9e93050965a6
languageName: node languageName: node
linkType: hard linkType: hard
"worker-timers@npm:^7.0.80": "worker-timers@npm:^7.1.1":
version: 7.0.80 version: 7.1.1
resolution: "worker-timers@npm:7.0.80" resolution: "worker-timers@npm:7.1.1"
dependencies: dependencies:
"@babel/runtime": "npm:^7.23.6" "@babel/runtime": "npm:^7.23.8"
tslib: "npm:^2.6.2" tslib: "npm:^2.6.2"
worker-timers-broker: "npm:^6.0.100" worker-timers-broker: "npm:^6.1.1"
worker-timers-worker: "npm:^7.0.64" worker-timers-worker: "npm:^7.0.65"
checksum: 24a8f015374f0c14c1c2ba88de0cde6d92ec9a6daa250e8e843c5a7bc1832cf894904496e8be1fef2ac17adb56a29db7ed5c9171ec70e4d3fdbce7de46db7f7f checksum: cbc3dd073d5244ed0accc8a1252f5a5134a1df07982bb277f298771ff934975bd4e7db0c6bce3d051983384ed0988fa0c151d5b703266802fcbf38f922875e59
languageName: node languageName: node
linkType: hard linkType: hard