登录注册备用

This commit is contained in:
joylink_zhaoerwei 2024-11-12 10:51:32 +08:00
parent 1d2c1c337e
commit b429bf5ce3
9 changed files with 720 additions and 209 deletions

View File

@ -39,7 +39,8 @@
"prettier": "^2.5.1",
"typescript": "~5.5.4",
"vite-plugin-checker": "^0.7.2",
"vue-tsc": "2.0.29"
"vue-tsc": "2.0.29",
"ts-md5": "^1.3.1"
},
"engines": {
"node": "^20 || ^18 || ^16",

View File

@ -7,7 +7,6 @@ import { watch, onMounted } from 'vue';
import { useRoute } from 'vue-router';
import { useAuthStore } from 'src/stores/auth-store';
import { getLoginUserInfo } from 'src/api/UserApi';
import { saveJwtToken } from 'src/configs/TokenManage';
defineOptions({
name: 'App',
});
@ -18,7 +17,6 @@ watch(
() => route.params.token,
async () => {
if (route.params.token) {
saveJwtToken(route.params.token as string);
const res = await getLoginUserInfo();
authStore.setUserId(res.loginUserInfo.id);
}

View File

@ -1,5 +1,118 @@
import { api } from 'src/boot/axios';
import { PageDto } from './ApiCommon';
import { Md5 } from 'ts-md5';
interface RegisterInfo {
username: string;
nickname: string;
password: string;
mobile?: string;
email?: string;
}
const PasswordSult = '4a6d74126bfd06d69406fcccb7e7d5d9'; // 密码加盐
function encryptPassword(password: string): string {
const md5 = new Md5();
return md5.appendStr(`${password}${PasswordSult}`).end() as string;
}
/**
*
* @param info
* @returns
*/
export async function register(registerInfo: RegisterInfo) {
const register = {
...registerInfo,
password: encryptPassword(registerInfo.password),
};
const mutation = `
mutation registerUser($register: RegisterUserDto) {
registerUser(register: $register){
username
}
}
`;
return api.post('', {
query: mutation,
variables: { register },
});
}
/**
*
* @param username
*/
export function usernameExists(username: string) {
const query = `
query usernameExists($username: String) {
usernameExists(username: $username,)
}
`;
return api.post('', {
query,
variables: { username },
});
}
/**
*
* @param email
*/
export function emailExists(email: string) {
const query = `
query emailExists($email: String) {
emailExists(email: $email,)
}
`;
return api.post('', {
query,
variables: { email },
});
}
/**
*
* @param mobile
*/
export function mobileExists(mobile: string) {
const query = `
query mobileExists($mobile: String) {
mobileExists(mobile: $mobile,)
}
`;
return api.post('', {
query,
variables: { mobile },
});
}
interface LoginInfo {
username: string;
password: string;
orgId?: number;
}
/**
*
* @param loginInfo
* @returns
*/
export async function login(userLoginDto: LoginInfo) {
const info = {
...userLoginDto,
password: encryptPassword(userLoginDto.password),
};
const query = `
query userLogin($info: UserLoginDto) {
userLogin(info: $info)
}
`;
return api.post('', {
query,
variables: { info },
});
}
export interface User {
id: string;
@ -18,7 +131,8 @@ export interface PagingQueryParams {
};
query: {
id?: string;
name?: string;
username?: string;
nickname?: string;
mobile?: string;
email?: string;
roles?: [];
@ -38,7 +152,7 @@ export async function userPageQuery(
userPaging(page: $page, query: $query) {
total
items {
id name mobile email roles createdAt updatedAt
id username nickname mobile email roles
}
}
}
@ -67,21 +181,6 @@ export async function getLoginUserInfo() {
return response.data.data;
}
/**
*
*/
export async function syncUsersInfo() {
const mutation = `
mutation syncUser {
syncUser
}
`;
const response = await api.post('', {
query: mutation,
});
return response.data.data;
}
/**
* jwt令牌(mqtt验证)
*/
@ -96,3 +195,108 @@ export async function getJwt() {
});
return response.data.data;
}
/**
*
*/
export async function getDefaultOrg() {
const query = `
query getDefaultOrg {
getDefaultOrg{
id code name creatorId
}
}
`;
const response = await api.post('', {
query: query,
});
return response.data.data.getDefaultOrg;
}
/**
*
* @param id
* @returns
*/
export async function getOrgById(id: number) {
const query = `
query getOrg($id: Int) {
getOrg(id: $id){
id code name creatorId
}
}
`;
const variables = {
id,
};
const response = await api.post('', {
query,
variables,
});
return response.data.data.getOrg;
}
/**
*
* @param code
* @returns
*/
export async function getOrgByCode(code: string) {
const query = `
query getOrgByCode($code: String) {
getOrgByCode(code: $code){
id code name creatorId
}
}
`;
const variables = {
code,
};
const response = await api.post('', {
query,
variables,
});
return response.data.data.getOrg;
}
/**
*
* @param orgId
* @param userId
* @returns
*/
export async function getOrgUserInfo(orgId: number, userId: number) {
const query = `
query orgUserInfo($orgId: Int,$userId: Int) {
orgUserInfo(orgId: $orgId,userId: $userId){
id orgId userId studentId roles
}
}
`;
const variables = {
orgId,
userId,
};
const response = await api.post('', {
query,
variables,
});
return response.data.data;
}
/**
*
*/
export async function loginOrgUserInfo() {
const query = `
query loginOrgUserInfo {
loginOrgUserInfo{
id orgId userId studentId roles
}
}
`;
const response = await api.post('', {
query: query,
});
return response.data.data.getDefaultOrg;
}

View File

@ -126,19 +126,6 @@ import SysMenu from 'src/components/SysMenu.vue';
// import { useRoute } from 'vue-router';
import { clearJwtToken } from 'src/configs/TokenManage';
import { Dialog } from 'quasar';
// import { getLoginUserInfo } from 'src/api/UserApi';
// import { useAuthStore } from 'src/stores/auth-store';
// const route = useRoute();
// const authStore = useAuthStore();
// onMounted(async () => {
// if (route.params.token) {
// saveJwtToken(route.params.token as string);
// const res = await getLoginUserInfo();
// authStore.setUserId(res.loginUserInfo.id);
// }
// });
const leftDrawerOpen = ref(false);
function toggleLeftDrawer() {

116
src/pages/UserLogin.vue Normal file
View File

@ -0,0 +1,116 @@
<template>
<q-layout>
<q-page-container>
<q-page class="flex bg-image flex-center">
<q-page-sticky position="top-left" :offset="[200, 68]">
<div class="logoLeft">
<img src="icons/favicon-96x96.png" />
<div class="logoText">玖链科技</div>
</div>
</q-page-sticky>
<q-card
v-bind:style="$q.screen.lt.sm ? { width: '80%' } : { width: '30%' }"
class="logoCard shadow-24"
>
<q-card-section>
<div class="text-center q-pt-lg">
<div class="col text-h6 ellipsis">欢迎登录</div>
</div>
</q-card-section>
<q-card-section>
<q-form @submit="doLogin" class="q-gutter-md">
<q-input
filled
v-model="loginInfo.username"
label="账号"
lazy-rules
type="tel"
:rules="[(val) => val.length > 0 || '请输入用户名!']"
/>
<q-input
type="password"
filled
v-model="loginInfo.password"
label="密码"
lazy-rules
/>
<div class="text-right">
<q-btn flat label="注册" to="/register" color="primary" />
</div>
<div class="text-center">
<q-btn label="登录" type="submit" color="primary" />
</div>
</q-form>
</q-card-section>
</q-card>
</q-page>
</q-page-container>
<q-inner-loading :showing="visible" />
</q-layout>
</template>
<script setup lang="ts">
import { useQuasar } from 'quasar';
import { getDefaultOrg, getOrgByCode, login } from 'src/api/UserApi';
import { clearJwtToken, saveJwtToken } from 'src/configs/TokenManage';
import { onMounted, reactive, ref } from 'vue';
import { useRoute, useRouter } from 'vue-router';
const $q = useQuasar();
const router = useRouter();
const route = useRoute();
const visible = ref(false);
const loginInfo = reactive({
username: '',
password: '',
});
let orgInfo;
onMounted(async () => {
if (route.query?.org) {
orgInfo = await getOrgByCode(route.query?.org as string);
} else {
orgInfo = await getDefaultOrg();
}
console.log(orgInfo, 6666);
});
async function doLogin() {
clearJwtToken();
const res = await login(loginInfo);
if (res.data?.errors && res.data?.errors.length) {
visible.value = false;
$q.notify({
type: 'negative',
message: res.data.errors[0].message,
});
} else {
visible.value = true;
const token = res.data.data.userLogin;
saveJwtToken(token);
router.push({ name: 'iscsDraft' });
}
}
</script>
<style lang="scss" scoped>
.logoLeft {
display: flex;
font-size: 32px;
.logoText {
display: flex;
justify-content: center;
align-items: center;
margin-left: 5px;
}
}
.bg-image {
background-image: linear-gradient(135deg, #5481fd 0%, #0e02b1 80%);
}
.logoCard {
min-width: 350px;
}
</style>

View File

@ -17,7 +17,7 @@
>
<template v-slot:top-right>
<div class="q-gutter-md q-mt-none row justify-center items-start">
<q-input dense debounce="1000" v-model="filter.name" label="名称" />
<q-input dense debounce="1000" v-model="filter.username" label="名称" />
<q-select
dense
v-model="filter.roles"
@ -29,12 +29,6 @@
label="角色"
style="min-width: 150px"
/>
<q-btn
:disable="operateDisabled"
color="primary"
label="同步"
@click="syncUsersInfoFn"
/>
</div>
</template>
@ -60,11 +54,7 @@
<script setup lang="ts">
import { ref, reactive, onMounted, computed } from 'vue';
import { useQuasar, type QTableColumn } from 'quasar';
import {
PagingQueryParams,
userPageQuery,
syncUsersInfo,
} from '../api/UserApi';
import { PagingQueryParams, userPageQuery } from '../api/UserApi';
import { ApiError } from 'src/boot/axios';
const $q = useQuasar();
@ -128,7 +118,7 @@ const columnDefs: QTableColumn[] = [
const tableRef = ref();
const rows = reactive([]);
const filter = reactive({
name: '',
username: '',
roles: [],
});
const loading = ref(false);
@ -153,8 +143,8 @@ async function onRequest(props: any) {
},
query: {},
};
if (filter.name) {
Object.assign(variables.query, { name: filter.name });
if (filter.username) {
Object.assign(variables.query, { username: filter.username });
}
if (filter.roles) {
Object.assign(variables.query, { roles: filter.roles });
@ -187,14 +177,4 @@ function getRolesName(role: string) {
}
}
}
const operateDisabled = ref(false);
async function syncUsersInfoFn() {
operateDisabled.value = true;
const res = await syncUsersInfo();
operateDisabled.value = false;
if (res.syncUser) {
tableRef.value.requestServerInteraction();
}
}
</script>

195
src/pages/UserRegister.vue Normal file
View File

@ -0,0 +1,195 @@
<template>
<q-layout>
<q-page-container>
<q-page class="flex bg-image flex-center">
<q-page-sticky position="top-left" :offset="[200, 68]">
<div class="logoLeft">
<img src="icons/favicon-96x96.png" />
<div class="logoText">玖链科技</div>
</div>
</q-page-sticky>
<q-card
v-bind:style="$q.screen.lt.sm ? { width: '80%' } : { width: '30%' }"
class="logoCard shadow-24"
>
<q-card-section>
<div class="text-center q-pt-lg">
<div class="col text-h6 ellipsis">注册</div>
</div>
</q-card-section>
<q-card-section>
<q-form ref="myForm" @submit="doRegister" class="q-gutter-md">
<q-input
filled
v-model="registInfo.username"
label="姓名"
lazy-rules
:rules="[(val) => val.length > 0 || '请输入用户名!']"
@blur="checkUsernameName"
/>
<q-input
filled
v-model="registInfo.nickname"
label="昵称"
lazy-rules
:rules="[(val) => val.length > 0 || '请输入用户名!']"
/>
<q-input
type="password"
filled
v-model="registInfo.password"
label="密码"
lazy-rules
:rules="[(val) => val.length > 0 || '请输入用户名!']"
/>
<q-input
filled
v-model="registInfo.mobile"
label="手机号"
lazy-rules
type="tel"
mask="###########"
:error="mobileError"
error-message="请输入有效的手机号"
@blur="checkMobilenameName"
/>
<q-input
filled
v-model="registInfo.email"
label="邮箱"
lazy-rules
:error="emailError"
error-message="请输入正确格式的邮箱!"
@blur="checkEmailName"
/>
<div class="text-center q-gutter-md">
<q-btn label="注册" type="submit" color="primary" />
<q-btn label="取消" to="/login" color="secondary" />
</div>
</q-form>
</q-card-section>
</q-card>
</q-page>
</q-page-container>
</q-layout>
</template>
<script setup lang="ts">
import { QForm, useQuasar } from 'quasar';
import {
emailExists,
mobileExists,
register,
usernameExists,
} from 'src/api/UserApi';
import { reactive, ref } from 'vue';
import { useRouter } from 'vue-router';
const $q = useQuasar();
const router = useRouter();
const registInfo = reactive({
username: '',
nickname: '',
mobile: '',
email: '',
password: '',
});
const myForm = ref<QForm | null>(null);
function doRegister() {
myForm.value?.validate().then(async (res) => {
if (res) {
const params = {
username: registInfo.username,
nickname: registInfo.nickname,
password: registInfo.password,
};
if (registInfo.mobile !== '') {
Object.assign(params, {
mobile: registInfo.mobile,
});
}
if (registInfo.email !== '') {
Object.assign(params, {
email: registInfo.email,
});
}
const res = await register(params);
if (res.data?.errors && res.data?.errors.length) {
$q.notify({
type: 'negative',
message: res.data.errors[0].message,
});
} else {
$q.notify({
type: 'positive',
message: '注册成功',
});
router.push({ name: 'login' });
}
}
});
}
async function checkUsernameName() {
const res = await usernameExists(registInfo.username);
if (res.data.data.usernameExists) {
$q.notify({
type: 'negative',
message: '注册名字已存在,请换一个名字',
});
}
}
const mobileError = ref();
async function checkMobilenameName() {
if (registInfo.mobile == '') return;
const re = /^1[3-9]\d{9}$/;
mobileError.value = !re.test(String(registInfo.mobile));
if (mobileError.value) return;
const res = await mobileExists(registInfo.mobile);
if (res.data.data.mobileExists) {
$q.notify({
type: 'negative',
message: '手机号已存在,请换一个手机号',
});
}
}
const emailError = ref();
async function checkEmailName() {
if (registInfo.email == '') return;
const re =
/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
emailError.value = !re.test(String(registInfo.email).toLowerCase());
if (emailError.value) return;
const res = await emailExists(registInfo.email);
if (res.data.data.emailExists) {
$q.notify({
type: 'negative',
message: '邮箱已存在,请换一个邮箱',
});
}
}
</script>
<style lang="scss" scoped>
.logoLeft {
display: flex;
font-size: 32px;
.logoText {
display: flex;
justify-content: center;
align-items: center;
margin-left: 5px;
}
}
.bg-image {
background-image: linear-gradient(135deg, #5481fd 0%, #0e02b1 80%);
}
.logoCard {
min-width: 350px;
}
</style>

View File

@ -3,18 +3,28 @@ import { RouteRecordRaw } from 'vue-router';
const routes: RouteRecordRaw[] = [
{
path: '/',
redirect: '/home/b82f4bb0398b01263b6ef12764c6eb20',
name: 'home',
redirect: '/login',
meta: {
hidden: true,
},
},
{
path: '/home/:token',
component: () => import('layouts/MainLayout.vue'),
path: '/login',
name: 'login',
component: () => import('pages/UserLogin.vue'),
meta: {
hidden: true,
},
},
{
path: '/register',
name: 'register',
component: () => import('pages/UserRegister.vue'),
meta: {
hidden: true,
},
// children: [{ path: '', component: () => import('pages/IndexPage.vue') }],
},
{

314
yarn.lock
View File

@ -152,7 +152,7 @@
"@nodelib/fs.stat" "2.0.5"
run-parallel "^1.1.9"
"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
version "2.0.5"
resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
@ -376,7 +376,7 @@
"@pixi/settings" "7.4.2"
"@pixi/utils" "7.4.2"
"@pixi/utils@^7.3.2", "@pixi/utils@7.4.2":
"@pixi/utils@7.4.2", "@pixi/utils@^7.3.2":
version "7.4.2"
resolved "https://registry.npmmirror.com/@pixi/utils/-/utils-7.4.2.tgz"
integrity sha512-aU/itcyMC4TxFbmdngmak6ey4kC5c16Y5ntIYob9QnjNAfD/7GTsYIBnP6FqEAyO1eq0MjkAALxdONuay1BG3g==
@ -454,11 +454,6 @@
estree-walker "^2.0.1"
picomatch "^2.2.2"
"@rollup/rollup-win32-x64-msvc@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.2.tgz"
integrity sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==
"@stomp/stompjs@^7.0.0":
version "7.0.0"
resolved "https://registry.npmmirror.com/@stomp/stompjs/-/stompjs-7.0.0.tgz"
@ -509,11 +504,6 @@
resolved "https://registry.npmmirror.com/@types/earcut/-/earcut-2.1.4.tgz"
integrity sha512-qp3m9PPz4gULB9MhjGID7wpo3gJ4bTGXm7ltNDsmOvsPduTeHp8wSW9YckBj3mljeOh4F0m2z/0JKAALRKbmLQ==
"@types/estree@1.0.5":
version "1.0.5"
resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz"
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
"@types/express-serve-static-core@^4.17.33":
version "4.19.5"
resolved "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz"
@ -628,7 +618,7 @@
natural-compare "^1.4.0"
ts-api-utils "^1.3.0"
"@typescript-eslint/parser@^7.0.0", "@typescript-eslint/parser@^7.16.0":
"@typescript-eslint/parser@^7.16.0":
version "7.18.0"
resolved "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-7.18.0.tgz"
integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==
@ -699,12 +689,12 @@
resolved "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz"
integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
"@vitejs/plugin-vue@^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", "@vitejs/plugin-vue@^2.2.0":
"@vitejs/plugin-vue@^2.2.0":
version "2.3.4"
resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-2.3.4.tgz"
integrity sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg==
"@volar/language-core@~2.4.0-alpha.18", "@volar/language-core@2.4.4":
"@volar/language-core@2.4.4", "@volar/language-core@~2.4.0-alpha.18":
version "2.4.4"
resolved "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.4.4.tgz"
integrity sha512-kO9k4kTLfxpg+6lq7/KAIv3m2d62IHuCL6GbVgYZTpfKvIGoAIlDxK7pFcB/eczN2+ydg/vnyaeZ6SGyZrJw2w==
@ -736,7 +726,7 @@
estree-walker "^2.0.2"
source-map-js "^1.2.0"
"@vue/compiler-dom@^3.4.0", "@vue/compiler-dom@3.5.4":
"@vue/compiler-dom@3.5.4", "@vue/compiler-dom@^3.4.0":
version "3.5.4"
resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.4.tgz"
integrity sha512-yP9RRs4BDLOLfldn6ah+AGCNovGjMbL9uHvhDHf5wan4dAHLnFGOkqtfE7PPe4HTXIqE7l/NILdYw53bo1C8jw==
@ -827,7 +817,7 @@
"@vue/compiler-ssr" "3.5.4"
"@vue/shared" "3.5.4"
"@vue/shared@^3.4.0", "@vue/shared@3.5.4":
"@vue/shared@3.5.4", "@vue/shared@^3.4.0":
version "3.5.4"
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.4.tgz"
integrity sha512-L2MCDD8l7yC62Te5UUyPVpmexhL9ipVnYRw9CsWfm/BGRL5FwDX4a25bcJ/OJSD3+Hx+k/a8LDKcG2AFdJV3BA==
@ -852,7 +842,7 @@ acorn-jsx@^5.3.2:
resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.8.2, acorn@^8.9.0:
acorn@^8.8.2, acorn@^8.9.0:
version "8.12.1"
resolved "https://registry.npmmirror.com/acorn/-/acorn-8.12.1.tgz"
integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==
@ -1086,7 +1076,7 @@ braces@^3.0.3, braces@~3.0.2:
dependencies:
fill-range "^7.1.1"
browserslist@^4.23.3, "browserslist@>= 4.21.0":
browserslist@^4.23.3:
version "4.23.3"
resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.3.tgz"
integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==
@ -1183,7 +1173,7 @@ chardet@^0.7.0:
resolved "https://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz"
integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
chokidar@^3.5.1, chokidar@^3.5.3, "chokidar@>=3.0.0 <4.0.0":
"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.1, chokidar@^3.5.3:
version "3.6.0"
resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz"
integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
@ -1264,16 +1254,16 @@ color-convert@^2.0.1:
dependencies:
color-name "~1.1.4"
color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
color-name@1.1.3:
version "1.1.3"
resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz"
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
combined-stream@^1.0.8:
version "1.0.8"
resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz"
@ -1415,13 +1405,6 @@ de-indent@^1.0.2:
resolved "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz"
integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==
debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
version "4.3.7"
resolved "https://registry.npmmirror.com/debug/-/debug-4.3.7.tgz"
integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
dependencies:
ms "^2.1.3"
debug@2.6.9:
version "2.6.9"
resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz"
@ -1429,6 +1412,13 @@ debug@2.6.9:
dependencies:
ms "2.0.0"
debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
version "4.3.7"
resolved "https://registry.npmmirror.com/debug/-/debug-4.3.7.tgz"
integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
dependencies:
ms "^2.1.3"
deep-is@^0.1.3:
version "0.1.4"
resolved "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz"
@ -1565,12 +1555,107 @@ es-errors@^1.3.0:
resolved "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz"
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
esbuild-android-64@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.51.tgz#414a087cb0de8db1e347ecca6c8320513de433db"
integrity sha512-6FOuKTHnC86dtrKDmdSj2CkcKF8PnqkaIXqvgydqfJmqBazCPdw+relrMlhGjkvVdiiGV70rpdnyFmA65ekBCQ==
esbuild-android-arm64@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.51.tgz#55de3bce2aab72bcd2b606da4318ad00fb9c8151"
integrity sha512-vBtp//5VVkZWmYYvHsqBRCMMi1MzKuMIn5XDScmnykMTu9+TD9v0NMEDqQxvtFToeYmojdo5UCV2vzMQWJcJ4A==
esbuild-darwin-64@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.51.tgz#4259f23ed6b4cea2ec8a28d87b7fb9801f093754"
integrity sha512-YFmXPIOvuagDcwCejMRtCDjgPfnDu+bNeh5FU2Ryi68ADDVlWEpbtpAbrtf/lvFTWPexbgyKgzppNgsmLPr8PA==
esbuild-darwin-arm64@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.51.tgz#d77b4366a71d84e530ba019d540b538b295d494a"
integrity sha512-juYD0QnSKwAMfzwKdIF6YbueXzS6N7y4GXPDeDkApz/1RzlT42mvX9jgNmyOlWKN7YzQAYbcUEJmZJYQGdf2ow==
esbuild-freebsd-64@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.51.tgz#27b6587b3639f10519c65e07219d249b01f2ad38"
integrity sha512-cLEI/aXjb6vo5O2Y8rvVSQ7smgLldwYY5xMxqh/dQGfWO+R1NJOFsiax3IS4Ng300SVp7Gz3czxT6d6qf2cw0g==
esbuild-freebsd-arm64@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.51.tgz#63c435917e566808c71fafddc600aca4d78be1ec"
integrity sha512-TcWVw/rCL2F+jUgRkgLa3qltd5gzKjIMGhkVybkjk6PJadYInPtgtUBp1/hG+mxyigaT7ib+od1Xb84b+L+1Mg==
esbuild-linux-32@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.51.tgz#c3da774143a37e7f11559b9369d98f11f997a5d9"
integrity sha512-RFqpyC5ChyWrjx8Xj2K0EC1aN0A37H6OJfmUXIASEqJoHcntuV3j2Efr9RNmUhMfNE6yEj2VpYuDteZLGDMr0w==
esbuild-linux-64@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.51.tgz#5d92b67f674e02ae0b4a9de9a757ba482115c4ae"
integrity sha512-dxjhrqo5i7Rq6DXwz5v+MEHVs9VNFItJmHBe1CxROWNf4miOGoQhqSG8StStbDkQ1Mtobg6ng+4fwByOhoQoeA==
esbuild-linux-arm64@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.51.tgz#dac84740516e859d8b14e1ecc478dd5241b10c93"
integrity sha512-D9rFxGutoqQX3xJPxqd6o+kvYKeIbM0ifW2y0bgKk5HPgQQOo2k9/2Vpto3ybGYaFPCE5qTGtqQta9PoP6ZEzw==
esbuild-linux-arm@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.51.tgz#b3ae7000696cd53ed95b2b458554ff543a60e106"
integrity sha512-LsJynDxYF6Neg7ZC7748yweCDD+N8ByCv22/7IAZglIEniEkqdF4HCaa49JNDLw1UQGlYuhOB8ZT/MmcSWzcWg==
esbuild-linux-mips64le@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.51.tgz#dad10770fac94efa092b5a0643821c955a9dd385"
integrity sha512-vS54wQjy4IinLSlb5EIlLoln8buh1yDgliP4CuEHumrPk4PvvP4kTRIG4SzMXm6t19N0rIfT4bNdAxzJLg2k6A==
esbuild-linux-ppc64le@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.51.tgz#b68c2f8294d012a16a88073d67e976edd4850ae0"
integrity sha512-xcdd62Y3VfGoyphNP/aIV9LP+RzFw5M5Z7ja+zdpQHHvokJM7d0rlDRMN+iSSwvUymQkqZO+G/xjb4/75du8BQ==
esbuild-linux-riscv64@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.51.tgz#608a318b8697123e44c1e185cdf6708e3df50b93"
integrity sha512-syXHGak9wkAnFz0gMmRBoy44JV0rp4kVCEA36P5MCeZcxFq8+fllBC2t6sKI23w3qd8Vwo9pTADCgjTSf3L3rA==
esbuild-linux-s390x@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.51.tgz#c9e7791170a3295dba79b93aa452beb9838a8625"
integrity sha512-kFAJY3dv+Wq8o28K/C7xkZk/X34rgTwhknSsElIqoEo8armCOjMJ6NsMxm48KaWY2h2RUYGtQmr+RGuUPKBhyw==
esbuild-netbsd-64@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.51.tgz#0abd40b8c2e37fda6f5cc41a04cb2b690823d891"
integrity sha512-ZZBI7qrR1FevdPBVHz/1GSk1x5GDL/iy42Zy8+neEm/HA7ma+hH/bwPEjeHXKWUDvM36CZpSL/fn1/y9/Hb+1A==
esbuild-openbsd-64@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.51.tgz#4adba0b7ea7eb1428bb00d8e94c199a949b130e8"
integrity sha512-7R1/p39M+LSVQVgDVlcY1KKm6kFKjERSX1lipMG51NPcspJD1tmiZSmmBXoY5jhHIu6JL1QkFDTx94gMYK6vfA==
esbuild-sunos-64@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.51.tgz#4b8a6d97dfedda30a6e39607393c5c90ebf63891"
integrity sha512-HoHaCswHxLEYN8eBTtyO0bFEWvA3Kdb++hSQ/lLG7TyKF69TeSG0RNoBRAs45x/oCeWaTDntEZlYwAfQlhEtJA==
esbuild-windows-32@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.51.tgz#d31d8ca0c1d314fb1edea163685a423b62e9ac17"
integrity sha512-4rtwSAM35A07CBt1/X8RWieDj3ZUHQqUOaEo5ZBs69rt5WAFjP4aqCIobdqOy4FdhYw1yF8Z0xFBTyc9lgPtEg==
esbuild-windows-64@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.51.tgz"
integrity sha512-HoN/5HGRXJpWODprGCgKbdMvrC3A2gqvzewu2eECRw2sYxOUoh2TV1tS+G7bHNapPGI79woQJGV6pFH7GH7qnA==
esbuild@^0.14.27, esbuild@0.14.51:
esbuild-windows-arm64@0.14.51:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.51.tgz#0220d2304bfdc11bc27e19b2aaf56edf183e4ae9"
integrity sha512-JQDqPjuOH7o+BsKMSddMfmVJXrnYZxXDHsoLHc0xgmAZkOOCflRmC43q31pk79F9xuyWY45jDBPolb5ZgGOf9g==
esbuild@0.14.51, esbuild@^0.14.27:
version "0.14.51"
resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.51.tgz"
integrity sha512-+CvnDitD7Q5sT7F+FM65sWkF8wJRf+j9fPcprxYV4j+ohmzVj2W7caUqH2s5kCaCJAfcAICjSlKhDCcvDpU7nw==
@ -1648,7 +1733,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4
resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
"eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", eslint@^8.11.0, eslint@^8.56.0, eslint@^8.57.0, eslint@>=6.0.0, eslint@>=7, eslint@>=7.0.0:
eslint@^8.57.0:
version "8.57.0"
resolved "https://registry.npmmirror.com/eslint/-/eslint-8.57.0.tgz"
integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==
@ -1801,7 +1886,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
resolved "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@3.2.12:
fast-glob@3.2.12, fast-glob@^3.2.7, fast-glob@^3.2.9:
version "3.2.12"
resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz"
integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==
@ -1951,6 +2036,11 @@ fs.realpath@^1.0.0:
resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
fsevents@~2.3.2:
version "2.3.3"
resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
function-bind@^1.1.2:
version "1.1.2"
resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz"
@ -2107,7 +2197,7 @@ http-errors@2.0.0:
statuses "2.0.1"
toidentifier "1.0.1"
iconv-lite@^0.4.24, iconv-lite@0.4.24:
iconv-lite@0.4.24, iconv-lite@^0.4.24:
version "0.4.24"
resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@ -2150,7 +2240,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2, inherits@2.0.4:
inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@ -2477,16 +2567,16 @@ micromatch@^4.0.4:
braces "^3.0.3"
picomatch "^2.3.1"
"mime-db@>= 1.43.0 < 2":
version "1.53.0"
resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.53.0.tgz"
integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==
mime-db@1.52.0:
version "1.52.0"
resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
"mime-db@>= 1.43.0 < 2":
version "1.53.0"
resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.53.0.tgz"
integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==
mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34:
version "2.1.35"
resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz"
@ -2504,28 +2594,7 @@ mimic-fn@^2.1.0:
resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
minimatch@^3.0.4:
version "3.1.2"
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
dependencies:
brace-expansion "^1.1.7"
minimatch@^3.0.5:
version "3.1.2"
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
dependencies:
brace-expansion "^1.1.7"
minimatch@^3.1.1:
version "3.1.2"
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
dependencies:
brace-expansion "^1.1.7"
minimatch@^3.1.2:
minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
version "3.1.2"
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@ -2582,16 +2651,16 @@ mqtt@^5.2.1:
worker-timers "^7.1.4"
ws "^8.17.1"
ms@^2.1.3, ms@2.1.3:
version "2.1.3"
resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
ms@2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz"
integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
ms@2.1.3, ms@^2.1.3:
version "2.1.3"
resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
muggle-string@^0.4.1:
version "0.4.1"
resolved "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz"
@ -2702,7 +2771,7 @@ open@^8.4.0:
is-docker "^2.1.1"
is-wsl "^2.2.0"
optionator@^0.9.1, optionator@^0.9.3:
optionator@^0.9.3:
version "0.9.4"
resolved "https://registry.npmmirror.com/optionator/-/optionator-0.9.4.tgz"
integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
@ -2821,7 +2890,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1:
resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
pinia@^2.0.0, pinia@^2.0.11:
pinia@^2.0.11:
version "2.2.2"
resolved "https://registry.npmmirror.com/pinia/-/pinia-2.2.2.tgz"
integrity sha512-ja2XqFWZC36mupU4z1ZzxeTApV7DOw44cV4dhQ9sGwun+N89v/XP7+j7q6TanS1u1tdbK4r+1BUx7heMaIdagA==
@ -2883,7 +2952,7 @@ postcss-value-parser@^4.2.0:
resolved "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
postcss@^8.1.0, postcss@^8.4.13, postcss@^8.4.44:
postcss@^8.4.13, postcss@^8.4.44:
version "8.4.45"
resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.45.tgz"
integrity sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==
@ -2935,7 +3004,7 @@ punycode@^2.1.0:
resolved "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz"
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
qs@^6.12.3, qs@6.13.0:
qs@6.13.0, qs@^6.12.3:
version "6.13.0"
resolved "https://registry.npmmirror.com/qs/-/qs-6.13.0.tgz"
integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==
@ -2974,20 +3043,7 @@ raw-body@2.5.2:
iconv-lite "0.4.24"
unpipe "1.0.0"
readable-stream@^2.0.0:
version "2.3.8"
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz"
integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
process-nextick-args "~2.0.0"
safe-buffer "~5.1.1"
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
readable-stream@^2.0.5:
readable-stream@^2.0.0, readable-stream@^2.0.5:
version "2.3.8"
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz"
integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
@ -3009,18 +3065,7 @@ readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
readable-stream@^4.2.0:
version "4.5.2"
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-4.5.2.tgz"
integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==
dependencies:
abort-controller "^3.0.0"
buffer "^6.0.3"
events "^3.3.0"
process "^0.11.10"
string_decoder "^1.3.0"
readable-stream@^4.4.2:
readable-stream@^4.2.0, readable-stream@^4.4.2:
version "4.5.2"
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-4.5.2.tgz"
integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==
@ -3131,31 +3176,6 @@ rollup-plugin-visualizer@^5.5.4:
optionalDependencies:
fsevents "~2.3.2"
"rollup@2.x || 3.x || 4.x":
version "4.21.2"
resolved "https://registry.npmmirror.com/rollup/-/rollup-4.21.2.tgz"
integrity sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==
dependencies:
"@types/estree" "1.0.5"
optionalDependencies:
"@rollup/rollup-android-arm-eabi" "4.21.2"
"@rollup/rollup-android-arm64" "4.21.2"
"@rollup/rollup-darwin-arm64" "4.21.2"
"@rollup/rollup-darwin-x64" "4.21.2"
"@rollup/rollup-linux-arm-gnueabihf" "4.21.2"
"@rollup/rollup-linux-arm-musleabihf" "4.21.2"
"@rollup/rollup-linux-arm64-gnu" "4.21.2"
"@rollup/rollup-linux-arm64-musl" "4.21.2"
"@rollup/rollup-linux-powerpc64le-gnu" "4.21.2"
"@rollup/rollup-linux-riscv64-gnu" "4.21.2"
"@rollup/rollup-linux-s390x-gnu" "4.21.2"
"@rollup/rollup-linux-x64-gnu" "4.21.2"
"@rollup/rollup-linux-x64-musl" "4.21.2"
"@rollup/rollup-win32-arm64-msvc" "4.21.2"
"@rollup/rollup-win32-ia32-msvc" "4.21.2"
"@rollup/rollup-win32-x64-msvc" "4.21.2"
fsevents "~2.3.2"
run-async@^2.4.0:
version "2.4.1"
resolved "https://registry.npmmirror.com/run-async/-/run-async-2.4.1.tgz"
@ -3175,17 +3195,12 @@ rxjs@^7.5.5:
dependencies:
tslib "^2.1.0"
safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1, safe-buffer@5.1.2:
safe-buffer@5.1.2, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
safe-buffer@5.2.1:
safe-buffer@5.2.1, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
@ -3195,7 +3210,7 @@ safe-buffer@5.2.1:
resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sass@*, sass@^1.33.0:
sass@^1.33.0:
version "1.78.0"
resolved "https://registry.npmmirror.com/sass/-/sass-1.78.0.tgz"
integrity sha512-AaIqGSrjo5lA2Yg7RvFZrlXDBCp3nV4XP73GrLGvdRWWwk+8H3l0SDvq/5bA4eF+0RFPLuWUk3E+P1U/YqnpsQ==
@ -3315,7 +3330,7 @@ slice-ansi@^4.0.0:
astral-regex "^2.0.0"
is-fullwidth-code-point "^3.0.0"
source-map-js@^1.2.0, "source-map-js@>=0.6.2 <2.0.0":
"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.0:
version "1.2.1"
resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz"
integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
@ -3353,6 +3368,15 @@ statuses@2.0.1:
resolved "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz"
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
dependencies:
emoji-regex "^8.0.0"
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
string_decoder@^1.1.1, string_decoder@^1.3.0:
version "1.3.0"
resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz"
@ -3367,15 +3391,6 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
dependencies:
emoji-regex "^8.0.0"
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz"
@ -3483,6 +3498,11 @@ ts-api-utils@^1.3.0:
resolved "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz"
integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
ts-md5@^1.3.1:
version "1.3.1"
resolved "https://registry.npmmirror.com/ts-md5/-/ts-md5-1.3.1.tgz#f5b860c0d5241dd9bb4e909dd73991166403f511"
integrity sha512-DiwiXfwvcTeZ5wCE0z+2A9EseZsztaiZtGrtSaY5JOD7ekPnR/GoIVD5gXZAlK9Na9Kvpo9Waz5rW64WKAWApg==
tslib@^2.0.3, tslib@^2.1.0, tslib@^2.6.2:
version "2.7.0"
resolved "https://registry.npmmirror.com/tslib/-/tslib-2.7.0.tgz"
@ -3518,7 +3538,7 @@ typedarray@^0.0.6:
resolved "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz"
integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
typescript@*, typescript@>=4.2.0, typescript@>=4.4.4, typescript@>=5.0.0, typescript@~5.5.4:
typescript@~5.5.4:
version "5.5.4"
resolved "https://registry.npmmirror.com/typescript/-/typescript-5.5.4.tgz"
integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==
@ -3528,7 +3548,7 @@ universalify@^2.0.0:
resolved "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz"
integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
unpipe@~1.0.0, unpipe@1.0.0:
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz"
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
@ -3591,7 +3611,7 @@ vite-plugin-checker@^0.7.2:
vscode-languageserver-textdocument "^1.0.1"
vscode-uri "^3.0.2"
"vite@^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", vite@^2.5.10, vite@^2.9.13, vite@>=2.0.0:
vite@^2.9.13:
version "2.9.18"
resolved "https://registry.npmmirror.com/vite/-/vite-2.9.18.tgz"
integrity sha512-sAOqI5wNM9QvSEE70W3UGMdT8cyEn0+PmJMTFvTB8wB0YbYUWw3gUbY62AOyrXosGieF2htmeLATvNxpv/zNyQ==
@ -3672,7 +3692,7 @@ vue-router@^4.0.12:
dependencies:
"@vue/devtools-api" "^6.6.4"
vue-tsc@>=2.0.0, vue-tsc@2.0.29:
vue-tsc@2.0.29:
version "2.0.29"
resolved "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-2.0.29.tgz"
integrity sha512-MHhsfyxO3mYShZCGYNziSbc63x7cQ5g9kvijV7dRe1TTXBRLxXyL0FnXWpUF1xII2mJ86mwYpYsUmMwkmerq7Q==
@ -3681,7 +3701,7 @@ vue-tsc@>=2.0.0, vue-tsc@2.0.29:
"@vue/language-core" "2.0.29"
semver "^7.5.4"
"vue@^2.6.14 || ^3.3.0", vue@^3.0.0, "vue@^3.0.0-0 || ^2.6.0", vue@^3.2.0, vue@^3.2.25, vue@^3.2.29, vue@^3.4.18, vue@3.5.4:
vue@^3.4.18:
version "3.5.4"
resolved "https://registry.npmmirror.com/vue/-/vue-3.5.4.tgz"
integrity sha512-3yAj2gkmiY+i7+22A1PWM+kjOVXjU74UPINcTiN7grIVPyFFI0lpGwHlV/4xydDmobaBn7/xmi+YG8HeSlCTcg==