This commit is contained in:
底层用户 2023-01-14 19:34:39 +08:00
parent 3463084339
commit 6e416bfec0
20 changed files with 248 additions and 200 deletions

5
.env
View File

@ -16,12 +16,15 @@ VITE_SOCIAL_TELEGRAM = "bottom_user"
VITE_SOCIAL_TWITTER = "iimmsyy"
# 网站链接
## 请在 src\components\Links\index.vue 中设置
## 请在 src/components/Links/index.vue 中设置
# 天气 Key
## 请前往高德开放平台注册 Web服务 Key
## 请各位大佬行行好,别再让我超量了
VITE_WEATHER_KEY = "57eaea5833ff1616cfd1ff2c4cf9b58a"
# 歌曲 API 地址
VITE_SONG_API = "https://api-meting.imsyy.top"
# 歌曲服务器 ( netease-网易云, tencent-qq音乐 )
VITE_SONG_SERVER = "netease"
# 播放类型 ( song-歌曲, playlist-播放列表, album-专辑, search-搜索, artist-艺术家 )

View File

@ -1,5 +1,8 @@
{
"name": "home",
"author": "imsyy",
"github": "https://github.com/imsyy/home",
"home": "https://imsyy.top",
"private": true,
"version": "4.0.0",
"type": "module",
@ -15,6 +18,7 @@
"element-plus": "^2.2.18",
"pinia": "^2.0.23",
"pinia-plugin-persistedstate": "^3.0.0",
"terser": "^5.16.1",
"vue": "^3.2.37",
"vue3-aplayer": "^1.7.3"
},

View File

@ -3,14 +3,11 @@
<Background />
<main>
<div class="container" v-show="!store.backgroundShow">
<transition name="el-fade-in-linear">
<section class="main" v-show="!store.setOpenState">
<MainLeft />
<MainRight v-show="!store.boxOpenState" />
<Box v-show="store.boxOpenState" />
</section>
</transition>
<transition name="el-fade-in-linear">
<section
class="more"
v-show="store.setOpenState"
@ -18,15 +15,16 @@
>
<MoreSet />
</section>
</transition>
</div>
</main>
<Footer v-show="!store.backgroundShow" />
<Footer v-show="!store.backgroundShow && !store.setOpenState" />
</div>
</template>
<script setup>
import { onMounted, onBeforeUnmount } from "vue";
import { onMounted, onBeforeUnmount, watch } from "vue";
import { helloInit, checkDays } from "@/utils/getTime.js";
import { mainStore } from "@/store";
import MainLeft from "@/views/Main/Left.vue";
import MainRight from "@/views/Main/Right.vue";
import Background from "@/components/Background/index.vue";
@ -34,8 +32,10 @@ import Footer from "@/components/Footer/index.vue";
import Box from "@/views/Box/index.vue";
import MoreSet from "@/views/MoreSet/index.vue";
import cursorInit from "@/utils/cursor.js";
import { helloInit, checkDays } from "@/utils/getTime.js";
import { mainStore } from "@/store";
import config from "@/../package.json";
//
import "@/utils/lantern.js";
const store = mainStore();
//
@ -76,8 +76,38 @@ onMounted(() => {
//
getWidth();
window.addEventListener("resize", getWidth);
//
let styleTitle1 = "font-size: 20px;font-weight: 600;color: rgb(244,167,89);";
let styleTitle2 = "font-size:12px;color: rgb(244,167,89);";
let styleContent = "color: rgb(30,152,255);";
let title1 = "無名の主页";
let title2 = `
_____ __ __ _______ ____ __
|_ _| \\/ |/ ____\\ \\ / /\\ \\ / /
| | | \\ / | (___ \\ \\_/ / \\ \\_/ /
| | | |\\/| |\\___ \\ \\ / \\ /
_| |_| | | |____) | | | | |
|_____|_| |_|_____/ |_| |_|`;
let content = `\n\n版本: ${config.version}\n主页: ${config.home}\nGithub: ${config.github}`;
console.info(
`%c${title1} %c${title2} %c${content}`,
styleTitle1,
styleTitle2,
styleContent
);
});
//
watch(
() => store.innerWidth,
(value) => {
if (value < 990) {
store.boxOpenState = false;
}
}
);
onBeforeUnmount(() => {
window.removeEventListener("resize", getWidth);
});
@ -89,7 +119,7 @@ main {
width: 100%;
height: 100vh;
margin: 0 auto;
padding: 0 2vw;
.main {
width: 100%;
height: 100%;
@ -99,7 +129,6 @@ main {
justify-content: center;
align-items: center;
}
.more {
position: fixed;
top: 0;
@ -109,6 +138,8 @@ main {
background-color: #00000080;
backdrop-filter: blur(20px);
z-index: 2;
animation: fade;
-webkit-animation: fade 0.5s;
}
}
}

View File

@ -6,7 +6,7 @@
// 获取音乐播放列表
export const getPlayerList = async (server, type, id) => {
const res = await fetch(`https://api-meting.imsyy.top/?server=${server}&type=${type}&id=${id}`);
const res = await fetch(`${import.meta.env.VITE_SONG_API}/?server=${server}&type=${type}&id=${id}`);
return await res.json();
}

View File

@ -1,6 +1,5 @@
<template>
<footer>
<Transition name="fade">
<div class="power" v-show="!store.playerState">
<span
>Copyright&nbsp;&copy;&nbsp;{{ fullYear }}
@ -9,30 +8,29 @@
<!-- 以下信息请不要修改哦 -->
<span
>&nbsp;&amp;&nbsp;Made&nbsp;by&nbsp;<a
href="https://github.com/imsyy/home"
:href="config.github"
target="_blank"
>imsyy</a
> </span
>
{{ config.author }}
</a> </span
>&nbsp;&amp;
<!-- 站点备案 -->
<a href="https://beian.miit.gov.cn" target="_blank"
>豫ICP备2022018134号-1</a
>
</div>
</Transition>
<Transition name="fade">
<div class="lrc" v-show="store.playerState">
<music-one theme="filled" size="18" fill="#efefef" />
<span class="lrc-text">{{ store.getPlayerLrc }}</span>
<music-one theme="filled" size="18" fill="#efefef" />
</div>
</Transition>
</footer>
</template>
<script setup>
import { MusicOne } from "@icon-park/vue-next";
import { mainStore } from "@/store";
import config from "@/../package.json";
const store = mainStore();
let fullYear = new Date().getFullYear();
@ -50,11 +48,19 @@ footer {
backdrop-filter: blur(10px);
background: rgb(0 0 0 / 25%);
z-index: 0;
animation: fade;
-webkit-animation: fade 0.5s;
.power {
animation: fade;
-webkit-animation: fade 0.3s;
}
.lrc {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
animation: fade;
-webkit-animation: fade 0.3s;
.lrc-text {
margin: 0 8px;
}

View File

@ -89,6 +89,7 @@ const jumpLink = (url) => {
.title {
margin-left: 8px;
font-size: 1.15rem;
text-shadow: 0 0 5px #00000050;
}
}
.link-all {
@ -100,15 +101,23 @@ const jumpLink = (url) => {
align-items: center;
flex-direction: row;
justify-content: center;
animation: fade;
-webkit-animation: fade 0.5s;
@media (max-width: 820px) {
.name {
font-size: 1.1rem;
margin-left: 8px;
display: none;
}
}
&:hover {
transform: scale(1.02);
background: rgb(0 0 0 / 40%);
transition: 0.3s;
}
.name {
font-size: 1.1rem;
margin-left: 8px;
}
}
}
}

View File

@ -81,6 +81,8 @@ watch(
display: flex;
flex-direction: row;
align-items: center;
animation: fade;
-webkit-animation: fade 0.5s;
.logo-img {
border-radius: 50%;
@ -108,13 +110,15 @@ watch(
padding: 1rem;
margin-top: 3.5rem;
max-width: 460px;
animation: fade;
-webkit-animation: fade 0.5s;
.content {
display: flex;
justify-content: space-between;
.text {
margin: 0.75rem auto;
margin: 0.75rem 1rem;
line-height: 2rem;
margin-right: auto;

View File

@ -39,7 +39,6 @@
/>
</div>
<div class="menu">
<Transition name="fade">
<div class="name" v-show="!volumeShow">
<span>{{
store.getPlayerData.name
@ -47,8 +46,6 @@
: "未播放音乐"
}}</span>
</div>
</Transition>
<Transition name="fade">
<div class="volume" v-show="volumeShow">
<div class="icon">
<volume-mute
@ -73,7 +70,6 @@
:step="0.01"
/>
</div>
</Transition>
</div>
</div>
<!-- 音乐列表弹窗 -->
@ -260,6 +256,8 @@ watch(
overflow-x: hidden;
white-space: nowrap;
// font-size: 1.1rem;
animation: fade;
-webkit-animation: fade 0.3s;
}
.volume {
@ -268,6 +266,8 @@ watch(
display: flex;
align-items: center;
flex-direction: row;
animation: fade;
-webkit-animation: fade 0.3s;
.icon {
margin-right: 12px;
@ -350,20 +350,23 @@ watch(
}
//
.fade-enter-active {
animation: fade 0.3s ease-in-out;
}
.fade-leave-active {
animation: fade 0.3s ease-in-out reverse;
}
.zoom-enter-active {
animation: zoom 0.4s ease-in-out;
}
.zoom-leave-active {
animation: zoom 0.3s ease-in-out reverse;
}
@keyframes zoom {
0% {
opacity: 0;
transform: scale(0) translateY(-600px);
}
100% {
opacity: 1;
transform: scale(1) translateY(0);

View File

@ -197,12 +197,15 @@ onMounted(() => {
});
state.instance.on("timeupdate", () => {
if (playerRef.value) {
playerData.lrc = playerRef.value.getElementsByClassName(
"aplayer-lrc-current"
)[0].innerHTML;
}
});
})
.catch(() => {
store.musicIsOk = false;
ElMessage({
message: "播放器加载失败",
grouping: true,

View File

@ -131,6 +131,20 @@ const leaveTip = () => {
background-color: transparent;
border-radius: 6px;
backdrop-filter: blur(0);
animation: fade;
-webkit-animation: fade 0.5s;
@media (max-width: 840px) {
max-width: 100%;
justify-content: center;
.link {
justify-content: space-evenly !important;
width: 90%;
}
.tip {
display: none !important;
}
}
.link {
display: flex;
align-items: center;

View File

@ -10,7 +10,7 @@
// 首次调用
@include changeWidth;
/* 小于1200px时 */
/* 小于1380px时 */
@media (max-width: 1380px) {
.el-radio-group {
justify-content: center !important;
@ -20,11 +20,6 @@
/* 小于1200px时 */
@media (max-width: 1200px) {
@include changeWidth($maxWidth:1000px);
// 隐藏元素
.sm-hidden {
display: none;
}
}
/* 小于992px时 */

View File

@ -26,13 +26,11 @@ p {
-webkit-user-drag: none;
user-select: none;
text-decoration: none;
transition: .3s;
color: #fff;
box-sizing: border-box;
&:hover {
transition: .3s;
// color: #ffffff90;
}
}
@ -66,19 +64,15 @@ p {
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
transform: scale(1);
transition: 0.5s;
animation: fade;
-webkit-animation: fade 0.5s;
transition: all 0.3s;
}
.cards:hover {
transform: scale(1.01);
transition: 0.5s;
}
.cards:active {
transform: scale(0.98);
transition: 0.5s;
}
// 弹窗样式
@ -143,14 +137,6 @@ p {
}
// 渐入动画
.fade-enter-active {
animation: fade 0.3s ease-in-out;
}
.fade-leave-active {
animation: fade 0.3s ease-in-out reverse;
}
@keyframes fade {
0% {
opacity: 0;
@ -161,6 +147,14 @@ p {
}
}
// 隐藏元素
@media (min-width: 910px) and (max-width: 1200px) {
.sm-hidden {
display: none;
}
}
// 自定义鼠标
#cursor {
position: fixed;
@ -181,7 +175,6 @@ p {
&.active {
opacity: 0.5;
transform: scale(0.5);
}
}

6
src/utils/lantern.js Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,12 +1,28 @@
<template>
<div class="box cards" @mouseenter="closeShow = true" @mouseleave="closeShow = false">
<div
class="box cards"
@mouseenter="closeShow = true"
@mouseleave="closeShow = false"
>
<transition name="el-fade-in-linear">
<close-one class="close" theme="filled" size="28" fill="#ffffff60" v-show="closeShow"
@click="store.boxOpenState = false" />
<close-one
class="close"
theme="filled"
size="28"
fill="#ffffff60"
v-show="closeShow"
@click="store.boxOpenState = false"
/>
</transition>
<transition name="el-fade-in-linear">
<setting-two class="setting" theme="filled" size="28" fill="#ffffff60" v-show="closeShow"
@click="store.setOpenState = true" />
<setting-two
class="setting"
theme="filled"
size="28"
fill="#ffffff60"
v-show="closeShow"
@click="store.setOpenState = true"
/>
</transition>
<div class="content">
<TimeCapsule />
@ -15,24 +31,13 @@
</template>
<script setup>
import { ref, watch } from "vue";
import { ref } from "vue";
import { CloseOne, SettingTwo } from "@icon-park/vue-next";
import TimeCapsule from "@/components/TimeCapsule/index.vue";
import { mainStore } from "@/store";
const store = mainStore();
let closeShow = ref(false);
//
watch(
() => store.innerWidth,
(value) => {
console.log(value);
if (value < 990 && store.boxOpenState) {
store.boxOpenState = false;
}
}
);
</script>
<style lang="scss" scoped>
@ -41,6 +46,8 @@ watch(
margin-left: 0.75rem;
height: 80%;
position: relative;
animation: fade;
-webkit-animation: fade 0.5s;
&:hover {
transform: scale(1);

View File

@ -66,6 +66,17 @@ onBeforeUnmount(() => {
width: 100%;
margin: 0 !important;
.el-col {
@media (max-width: 910px) {
&:nth-of-type(1) {
display: none;
}
&:nth-of-type(2) {
padding: 0 !important;
flex: none;
max-width: none;
width: 100%;
}
}
&:nth-of-type(1) {
padding-left: 0 !important;
}
@ -84,6 +95,8 @@ onBeforeUnmount(() => {
flex-direction: column;
align-items: center;
justify-content: space-between;
animation: fade;
-webkit-animation: fade 0.5s;
.time {
font-size: 1.1rem;
text-align: center;

View File

@ -9,9 +9,9 @@
<script setup>
import { reactive, ref, onMounted } from "vue";
import { mainStore } from "@/store";
import Func from "@/views/Func/index.vue";
import Link from "@/components/Links/index.vue";
import { mainStore } from "@/store";
const store = mainStore();
</script>

View File

@ -13,7 +13,7 @@
<div class="version">
<div class="num">v&nbsp;{{ config.version }}</div>
<el-tooltip content="Github 源代码仓库" placement="right" :show-arrow="false">
<github-one class="github" theme="outline" size="24" @click="jumpTo" />
<github-one class="github" theme="outline" size="24" @click="jumpTo(config.github)" />
</el-tooltip>
</div>
<el-card class="update">
@ -65,8 +65,8 @@ let upData = reactive({
})
//
const jumpTo = () => {
window.open('https://github.com/imsyy/home');
const jumpTo = (url) => {
window.open(url);
};
</script>

View File

@ -54,5 +54,14 @@ export default ({
additionalData: `@import "./src/style/global.scss";`
}
}
}
},
build: {
minify: 'terser',
terserOptions: {
compress: {
// 生产环境时移除 console
pure_funcs: ['console.log'],
},
},
},
})

View File

@ -1,62 +0,0 @@
// vite.config.js
import {
defineConfig,
loadEnv
} from "file:///D:/Html/WorkSpace/Home/node_modules/vite/dist/node/index.js";
import vue from "file:///D:/Html/WorkSpace/Home/node_modules/@vitejs/plugin-vue/dist/index.mjs";
import AutoImport from "file:///D:/Html/WorkSpace/Home/node_modules/unplugin-auto-import/dist/vite.js";
import Components from "file:///D:/Html/WorkSpace/Home/node_modules/unplugin-vue-components/dist/vite.mjs";
import {
ElementPlusResolver
} from "file:///D:/Html/WorkSpace/Home/node_modules/unplugin-vue-components/dist/resolvers.mjs";
import {
createHtmlPlugin
} from "file:///D:/Html/WorkSpace/Home/node_modules/vite-plugin-html/dist/index.mjs";
import {
resolve
} from "path";
var __vite_injected_original_dirname = "D:\\Html\\WorkSpace\\Home";
var vite_config_default = ({
mode
}) => defineConfig({
plugins: [
vue(),
AutoImport({
resolvers: [ElementPlusResolver()]
}),
Components({
resolvers: [ElementPlusResolver()]
}),
createHtmlPlugin({
minify: true,
template: "index.html",
inject: {
data: {
title: loadEnv(mode, process.cwd()).VITE_SITE_NAME
}
}
})
],
server: {
port: "3000",
hmr: true
},
resolve: {
alias: [{
find: "@",
replacement: resolve(__vite_injected_original_dirname, "src")
}]
},
css: {
preprocessorOptions: {
scss: {
charset: false,
additionalData: `@import "./src/style/global.scss";`
}
}
}
});
export {
vite_config_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcuanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFxIdG1sXFxcXFdvcmtTcGFjZVxcXFxIb21lXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJEOlxcXFxIdG1sXFxcXFdvcmtTcGFjZVxcXFxIb21lXFxcXHZpdGUuY29uZmlnLmpzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9EOi9IdG1sL1dvcmtTcGFjZS9Ib21lL3ZpdGUuY29uZmlnLmpzXCI7aW1wb3J0IHtcbiAgZGVmaW5lQ29uZmlnLFxuICBsb2FkRW52XG59IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHZ1ZSBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUnO1xuaW1wb3J0IEF1dG9JbXBvcnQgZnJvbSAndW5wbHVnaW4tYXV0by1pbXBvcnQvdml0ZSdcbmltcG9ydCBDb21wb25lbnRzIGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3ZpdGUnXG5pbXBvcnQge1xuICBFbGVtZW50UGx1c1Jlc29sdmVyXG59IGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3Jlc29sdmVycydcbmltcG9ydCB7XG4gIGNyZWF0ZUh0bWxQbHVnaW5cbn0gZnJvbSAndml0ZS1wbHVnaW4taHRtbCc7XG5pbXBvcnQge1xuICByZXNvbHZlXG59IGZyb20gJ3BhdGgnO1xuXG4vLyBodHRwczovL3ZpdGVqcy5kZXYvY29uZmlnL1xuZXhwb3J0IGRlZmF1bHQgKHtcbiAgbW9kZVxufSkgPT4gZGVmaW5lQ29uZmlnKHtcbiAgcGx1Z2luczogW1xuICAgIHZ1ZSgpLFxuICAgIEF1dG9JbXBvcnQoe1xuICAgICAgcmVzb2x2ZXJzOiBbRWxlbWVudFBsdXNSZXNvbHZlcigpXSxcbiAgICB9KSxcbiAgICBDb21wb25lbnRzKHtcbiAgICAgIHJlc29sdmVyczogW0VsZW1lbnRQbHVzUmVzb2x2ZXIoKV0sXG4gICAgfSksXG4gICAgY3JlYXRlSHRtbFBsdWdpbih7XG4gICAgICBtaW5pZnk6IHRydWUsXG4gICAgICB0ZW1wbGF0ZTogJ2luZGV4Lmh0bWwnLFxuICAgICAgaW5qZWN0OiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0aXRsZTogbG9hZEVudihtb2RlLCBwcm9jZXNzLmN3ZCgpKS5WSVRFX1NJVEVfTkFNRSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gIF0sXG4gIHNlcnZlcjoge1xuICAgIHBvcnQ6IFwiMzAwMFwiLFxuICAgIGhtcjogdHJ1ZSxcbiAgfSxcbiAgcmVzb2x2ZToge1xuICAgIGFsaWFzOiBbe1xuICAgICAgZmluZDogJ0AnLFxuICAgICAgcmVwbGFjZW1lbnQ6IHJlc29sdmUoX19kaXJuYW1lLCBcInNyY1wiKSxcbiAgICB9LCBdXG4gIH0sXG4gIGNzczoge1xuICAgIHByZXByb2Nlc3Nvck9wdGlvbnM6IHtcbiAgICAgIHNjc3M6IHtcbiAgICAgICAgY2hhcnNldDogZmFsc2UsXG4gICAgICAgIGFkZGl0aW9uYWxEYXRhOiBgQGltcG9ydCBcIi4vc3JjL3N0eWxlL2dsb2JhbC5zY3NzXCI7YFxuICAgICAgfVxuICAgIH1cbiAgfVxufSkiXSwKICAibWFwcGluZ3MiOiAiO0FBQTRQO0FBQUEsRUFDMVA7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLE9BQU8sU0FBUztBQUNoQixPQUFPLGdCQUFnQjtBQUN2QixPQUFPLGdCQUFnQjtBQUN2QjtBQUFBLEVBQ0U7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLE9BQ0s7QUFmUCxJQUFNLG1DQUFtQztBQWtCekMsSUFBTyxzQkFBUSxDQUFDO0FBQUEsRUFDZDtBQUNGLE1BQU0sYUFBYTtBQUFBLEVBQ2pCLFNBQVM7QUFBQSxJQUNQLElBQUk7QUFBQSxJQUNKLFdBQVc7QUFBQSxNQUNULFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztBQUFBLElBQ25DLENBQUM7QUFBQSxJQUNELFdBQVc7QUFBQSxNQUNULFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztBQUFBLElBQ25DLENBQUM7QUFBQSxJQUNELGlCQUFpQjtBQUFBLE1BQ2YsUUFBUTtBQUFBLE1BQ1IsVUFBVTtBQUFBLE1BQ1YsUUFBUTtBQUFBLFFBQ04sTUFBTTtBQUFBLFVBQ0osT0FBTyxRQUFRLE1BQU0sUUFBUSxJQUFJLENBQUMsRUFBRTtBQUFBLFFBQ3RDO0FBQUEsTUFDRjtBQUFBLElBQ0YsQ0FBQztBQUFBLEVBQ0g7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLEtBQUs7QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUCxPQUFPLENBQUM7QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLGFBQWEsUUFBUSxrQ0FBVyxLQUFLO0FBQUEsSUFDdkMsQ0FBRztBQUFBLEVBQ0w7QUFBQSxFQUNBLEtBQUs7QUFBQSxJQUNILHFCQUFxQjtBQUFBLE1BQ25CLE1BQU07QUFBQSxRQUNKLFNBQVM7QUFBQSxRQUNULGdCQUFnQjtBQUFBLE1BQ2xCO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo=

View File

@ -1291,6 +1291,16 @@ terser@^5.10.0:
commander "^2.20.0"
source-map-support "~0.5.20"
terser@^5.16.1:
version "5.16.1"
resolved "https://registry.npmmirror.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880"
integrity sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==
dependencies:
"@jridgewell/source-map" "^0.3.2"
acorn "^8.5.0"
commander "^2.20.0"
source-map-support "~0.5.20"
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz"