xiongzhu 3 år sedan
förälder
incheckning
8a124852fd

+ 2 - 0
package.json

@@ -14,6 +14,7 @@
     "feather-icons": "^4.29.0",
     "pinia": "^2.0.14",
     "qs": "^6.10.5",
+    "sass": "^1.52.3",
     "vue": "^3.2.36",
     "vue-feather": "^2.0.0",
     "vue-lazyload": "^3.0.0-rc.2",
@@ -30,6 +31,7 @@
     "less": "^4.1.3",
     "less-loader": "^11.0.0",
     "prettier": "^2.5.1",
+    "sass-loader": "^13.0.0",
     "vite": "^2.9.9"
   }
 }

+ 35 - 15
src/components/AssetItem.vue

@@ -1,13 +1,18 @@
 <template>
-    <div class="asset">
+    <div class="asset" ref="el">
         <img :src="info.pic[0].thumb || info.pic[0].url" class="cover" />
-        <div class="name">{{ name }}OASISPUNK.EVOOASISPUNK.EVOOASISPUNK.EVO</div>
+        <div class="name">{{ name }}</div>
         <div class="number">{{ number ? '#' : '' }}{{ number }}</div>
-        <div class="price" v-if="info.consignment">¥{{ info.price }}</div>
+        <div style="flex-grow: 1"></div>
+        <div class="opt" v-if="info.consignment">
+            <button>下架</button>
+            <span class="price">¥{{ info.price }}</span>
+        </div>
     </div>
 </template>
 <script setup>
-import { ref, defineProps, watchEffect } from 'vue'
+import { ref, watchEffect } from 'vue'
+
 const props = defineProps({
     info: {
         type: Object,
@@ -27,18 +32,21 @@ watchEffect(() => {
 </script>
 <style lang="less" scoped>
 .asset {
-    width: 130px;
-    height: 200px;
+    flex-basis: 130px;
+    flex-grow: 1;
+    height: 210px;
+    box-sizing: border-box;
     border-radius: 8px;
     overflow: hidden;
-    margin: 0 20px 20px 0;
+    margin: 0 10px 20px 10px;
     background-color: var(--el-fill-color);
     display: flex;
     flex-direction: column;
     font-size: 12px;
+    padding-bottom: 8px;
     .cover {
-        width: 130px;
-        height: 130px;
+        width: 100%;
+        height: 140px;
         object-fit: cover;
     }
     .name {
@@ -54,15 +62,27 @@ watchEffect(() => {
         padding: 0 8px;
         margin-top: 4px;
     }
-    .price {
-        flex-grow: 1;
+    .opt {
         display: flex;
-        align-items: flex-end;
-        color: var(--el-color-danger);
-        font-weight: 500;
+        align-items: center;
         justify-content: flex-end;
         padding: 0 8px;
-        margin: 8px 0;
+        button {
+            padding: 0;
+            margin: 0;
+            font-size: 12px;
+            background: none;
+            border: none;
+            cursor: pointer;
+            color: var(--el-color-primary);
+        }
+    }
+    .price {
+        color: var(--el-color-danger);
+        font-size: 13px;
+        font-weight: 500;
+        flex-grow: 1;
+        text-align: right;
     }
 }
 </style>

+ 0 - 1
src/components/ListItem.vue

@@ -14,7 +14,6 @@
     </div>
 </template>
 <script setup>
-import { defineProps } from 'vue'
 import { formatDistance, subDays, parse } from 'date-fns'
 import { zhCN } from 'date-fns/locale'
 const props = defineProps({

+ 3 - 2
src/main.js

@@ -2,9 +2,10 @@ import { createApp } from 'vue'
 import { createPinia } from 'pinia'
 import App from './App.vue'
 import router from './router'
+import './styles/element/index.scss'
 import ElementPlus from 'element-plus'
-import 'element-plus/dist/index.css'
-import 'element-plus/theme-chalk/dark/css-vars.css'
+// import 'element-plus/dist/index.css'
+// import 'element-plus/theme-chalk/dark/css-vars.css'
 import http from '@/plugins/http'
 import * as ElementPlusIconsVue from '@element-plus/icons-vue'
 import VueLazyload from 'vue-lazyload'

+ 7 - 6
src/plugins/http.js

@@ -1,12 +1,13 @@
 import axios from 'axios'
 import qs from 'qs'
+import { useStorage } from '@vueuse/core'
 
 const baseURL = import.meta.env.VITE_BASE_URL
 const axiosInstance = axios.create({ baseURL })
 
-let token = sessionStorage.getItem('token')
-if (token) {
-    axiosInstance.defaults.headers.common['Authorization'] = 'Bearer ' + token
+const token = useStorage('token', '', sessionStorage)
+if (token.value) {
+    axiosInstance.defaults.headers.common['Authorization'] = 'Bearer ' + token.value
 }
 
 axiosInstance.interceptors.response.use(
@@ -32,9 +33,9 @@ axiosInstance.interceptors.response.use(
 )
 
 const http = {
-    setToken(token) {
-        axiosInstance.defaults.headers.common['Authorization'] = 'Bearer ' + token
-        sessionStorage.setItem('token', token)
+    setToken(_token) {
+        axiosInstance.defaults.headers.common['Authorization'] = 'Bearer ' + _token
+        token.value = _token
     },
     async login(phone, password) {
         let { data: token } = await axiosInstance.post('/auth/phonePwdLogin', qs.stringify({ phone, password }))

+ 9 - 0
src/styles/element/dark.scss

@@ -0,0 +1,9 @@
+$--colors: (
+  "primary": (
+    "base": #8965d3,
+  ),
+);
+
+@forward "element-plus/theme-chalk/src/dark/var.scss" with (
+  $colors: $--colors
+);

+ 15 - 0
src/styles/element/index.scss

@@ -0,0 +1,15 @@
+$--colors: (
+    'primary': (
+        'base': #8965d3
+    )
+);
+
+@forward 'element-plus/theme-chalk/src/common/var.scss' with (
+    $colors: $--colors
+);
+@use 'element-plus/theme-chalk/src/index.scss' as *;
+
+// custom dark variables
+@use './dark.scss';
+// import dark theme
+@use 'element-plus/theme-chalk/src/dark/css-vars.scss' as *;

+ 17 - 4
src/views/HomeView.vue

@@ -6,7 +6,7 @@
             </el-select>
             <div style="flex-grow: 1"></div>
             <dark-mode />
-            <vue-feather type="log-out" :size="16" class="logout-icon" title="退出"></vue-feather>
+            <vue-feather type="log-out" :size="16" class="logout-icon" title="退出" @click="logout"></vue-feather>
         </el-header>
         <el-main>
             <el-row :gutter="20" style="margin: 10px" class="card-headers">
@@ -48,7 +48,7 @@
                 <el-col :span="6" key="order" class="list-container">
                     <list-item :info="item" v-for="item in order" :key="item.id"></list-item>
                 </el-col>
-                <el-col :span="12" class="list-container assets-container">
+                <el-col :span="12" class="list-container assets-container" ref="assetListEl">
                     <AssetItem v-for="item in assets" :key="item.id" :info="item"></AssetItem>
                 </el-col>
             </el-row>
@@ -66,6 +66,17 @@ import { http } from '@/plugins/http'
 import ListItem from '@/components/ListItem.vue'
 import AssetItem from '@/components/AssetItem.vue'
 import { useStorage } from '@vueuse/core'
+import { useRouter } from 'vue-router'
+import { store } from '@/stores/store'
+
+const router = useRouter()
+console.log(router)
+const logout = () => {
+    http.setToken(null)
+    store.userInfo = null
+    console.log('logout')
+    router.replace({ name: 'login' })
+}
 
 const sortOptions = [
     { label: '日期', value: 'createdAt,desc' },
@@ -169,13 +180,14 @@ onBeforeRouteLeave(() => {
 }
 .card-headers {
     color: var(--el-text-color-primary);
-    font-weight: 500;
     font-size: 14px;
     .el-col {
         display: flex;
         align-items: center;
     }
     .head-title {
+        color: var(--el-color-primary);
+        font-weight: 500;
     }
     .refresh-icon {
         margin-left: 6px;
@@ -206,7 +218,8 @@ onBeforeRouteLeave(() => {
         display: flex;
         flex-wrap: wrap;
         align-items: center;
-        padding-right: 0;
+        justify-content: space-between;
+        padding: 0px !important;
     }
 }
 </style>

+ 2 - 4
src/views/LoginView.vue

@@ -4,7 +4,7 @@
             <div style="flex-grow: 1"></div>
             <dark-mode />
         </el-header>
-        <el-main class="login">
+        <el-main class="login" @keyup.enter="login">
             <el-form
                 label-position="top"
                 :model="loginForm"
@@ -41,7 +41,7 @@ import { inject, ref } from 'vue'
 import { ElMessage } from 'element-plus'
 import router from '@/router/index'
 import { store } from '@/stores/store'
-const loginForm = ref({ username: '', password: '' })
+const loginForm = ref({ username: 'xiong', password: '123456' })
 const form = ref(null)
 const rules = {
     username: [{ required: true, message: '请输入用户名' }],
@@ -73,6 +73,4 @@ const login = () => {
     align-items: center;
     padding: 0 40px;
 }
-.login {
-}
 </style>

+ 114 - 2
yarn.lock

@@ -249,6 +249,14 @@ ansi-styles@^4.1.0:
   dependencies:
     color-convert "^2.0.1"
 
+anymatch@~3.1.2:
+  version "3.1.2"
+  resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
+  integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
+  dependencies:
+    normalize-path "^3.0.0"
+    picomatch "^2.0.4"
+
 argparse@^2.0.1:
   version "2.0.1"
   resolved "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
@@ -282,6 +290,11 @@ balanced-match@^1.0.0:
   resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
   integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
 
+binary-extensions@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
+  integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+
 boolbase@^1.0.0:
   version "1.0.0"
   resolved "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
@@ -295,6 +308,13 @@ brace-expansion@^1.1.7:
     balanced-match "^1.0.0"
     concat-map "0.0.1"
 
+braces@~3.0.2:
+  version "3.0.2"
+  resolved "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+  integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+  dependencies:
+    fill-range "^7.0.1"
+
 call-bind@^1.0.0:
   version "1.0.2"
   resolved "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
@@ -316,6 +336,21 @@ chalk@^4.0.0:
     ansi-styles "^4.1.0"
     supports-color "^7.1.0"
 
+"chokidar@>=3.0.0 <4.0.0":
+  version "3.5.3"
+  resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
+  integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
+  dependencies:
+    anymatch "~3.1.2"
+    braces "~3.0.2"
+    glob-parent "~5.1.2"
+    is-binary-path "~2.1.0"
+    is-glob "~4.0.1"
+    normalize-path "~3.0.0"
+    readdirp "~3.6.0"
+  optionalDependencies:
+    fsevents "~2.3.2"
+
 classnames@^2.2.5:
   version "2.3.1"
   resolved "https://registry.npmmirror.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e"
@@ -769,6 +804,13 @@ file-entry-cache@^6.0.1:
   dependencies:
     flat-cache "^3.0.4"
 
+fill-range@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+  integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+  dependencies:
+    to-regex-range "^5.0.1"
+
 flat-cache@^3.0.4:
   version "3.0.4"
   resolved "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
@@ -832,6 +874,13 @@ glob-parent@^6.0.1:
   dependencies:
     is-glob "^4.0.3"
 
+glob-parent@~5.1.2:
+  version "5.1.2"
+  resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+  dependencies:
+    is-glob "^4.0.1"
+
 glob@^7.1.3:
   version "7.2.3"
   resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
@@ -890,6 +939,11 @@ image-size@~0.5.0:
   resolved "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
   integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==
 
+immutable@^4.0.0:
+  version "4.1.0"
+  resolved "https://registry.npmmirror.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef"
+  integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==
+
 import-fresh@^3.0.0, import-fresh@^3.2.1:
   version "3.3.0"
   resolved "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
@@ -916,6 +970,13 @@ inherits@2:
   resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
 
+is-binary-path@~2.1.0:
+  version "2.1.0"
+  resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+  integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+  dependencies:
+    binary-extensions "^2.0.0"
+
 is-core-module@^2.8.1:
   version "2.9.0"
   resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69"
@@ -928,13 +989,18 @@ is-extglob@^2.1.1:
   resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
   integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
 
-is-glob@^4.0.0, is-glob@^4.0.3:
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
   version "4.0.3"
   resolved "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
   integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
   dependencies:
     is-extglob "^2.1.1"
 
+is-number@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+  integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
 is-what@^3.14.1:
   version "3.14.1"
   resolved "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1"
@@ -1111,6 +1177,11 @@ needle@^3.1.0:
     iconv-lite "^0.6.3"
     sax "^1.2.4"
 
+neo-async@^2.6.2:
+  version "2.6.2"
+  resolved "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+  integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
 node-fetch@2.6.7:
   version "2.6.7"
   resolved "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
@@ -1118,6 +1189,11 @@ node-fetch@2.6.7:
   dependencies:
     whatwg-url "^5.0.0"
 
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+  integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
 normalize-wheel-es@^1.1.2:
   version "1.1.2"
   resolved "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.1.2.tgz#285e43676a62d687bf145e33452ea6be435162d0"
@@ -1191,6 +1267,11 @@ picocolors@^1.0.0:
   resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
   integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
 
+picomatch@^2.0.4, picomatch@^2.2.1:
+  version "2.3.1"
+  resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+  integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
 pify@^4.0.1:
   version "4.0.1"
   resolved "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
@@ -1262,6 +1343,13 @@ qs@^6.10.5:
   dependencies:
     side-channel "^1.0.4"
 
+readdirp@~3.6.0:
+  version "3.6.0"
+  resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+  integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
+  dependencies:
+    picomatch "^2.2.1"
+
 regexpp@^3.2.0:
   version "3.2.0"
   resolved "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
@@ -1300,6 +1388,23 @@ rollup@^2.59.0:
   resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
   integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
 
+sass-loader@^13.0.0:
+  version "13.0.0"
+  resolved "https://registry.npmmirror.com/sass-loader/-/sass-loader-13.0.0.tgz#0b4bff0289951ed21240bca54453eca3dbda1713"
+  integrity sha512-IHCFecI+rbPvXE2zO/mqdVFe8MU7ElGrwga9hh2H65Ru4iaBJAMRteum1c4Gsxi9Cq1FOtTEDd6+/AEYuQDM4Q==
+  dependencies:
+    klona "^2.0.4"
+    neo-async "^2.6.2"
+
+sass@^1.52.3:
+  version "1.52.3"
+  resolved "https://registry.npmmirror.com/sass/-/sass-1.52.3.tgz#b7cc7ffea2341ccc9a0c4fd372bf1b3f9be1b6cb"
+  integrity sha512-LNNPJ9lafx+j1ArtA7GyEJm9eawXN8KlA1+5dF6IZyoONg1Tyo/g+muOsENWJH/2Q1FHbbV4UwliU0cXMa/VIA==
+  dependencies:
+    chokidar ">=3.0.0 <4.0.0"
+    immutable "^4.0.0"
+    source-map-js ">=0.6.2 <2.0.0"
+
 sax@^1.2.4:
   version "1.2.4"
   resolved "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
@@ -1343,7 +1448,7 @@ side-channel@^1.0.4:
     get-intrinsic "^1.0.2"
     object-inspect "^1.9.0"
 
-source-map-js@^1.0.2:
+"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2:
   version "1.0.2"
   resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
   integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
@@ -1387,6 +1492,13 @@ text-table@^0.2.0:
   resolved "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
   integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
 
+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#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+  integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+  dependencies:
+    is-number "^7.0.0"
+
 tr46@~0.0.3:
   version "0.0.3"
   resolved "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"