1
YM
2025-04-10 66f6a6581c90c5339f66c2241665c952b3d22302
1
4个文件已修改
2个文件已添加
918 ■■■■■ 已修改文件
package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/config.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/plugin/axios/index.ts 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Start.vue 690 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yarn.lock 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json
@@ -13,6 +13,7 @@
    "format": "prettier --write src/"
  },
  "dependencies": {
    "axios": "^1.8.4",
    "element-plus": "^2.9.7",
    "vue": "^3.5.13",
    "vue-router": "^4.5.0"
src/assets/js/config.js
New file
@@ -0,0 +1,9 @@
export const requestCtx = 'http://192.168.1.14/v1' // 请求地址
export const requestTimeOut = 300000 // 请求地址
const config = {
  requestCtx,
  requestTimeOut,
}
export default config
src/main.ts
@@ -6,9 +6,11 @@
import zhCn from 'element-plus/es/locale/lang/zh-cn'
import App from './App.vue'
import router from './router'
import request from '@/plugin/axios/index.ts'
const app = createApp(App)
app.use(ElementPlus, {
  locale: zhCn
})
src/plugin/axios/index.ts
New file
@@ -0,0 +1,56 @@
import axios from 'axios'
import myConfig from '@/assets/js/config.js'
// 创建 axios 实例
const service = axios.create({
  baseURL: myConfig.requestCtx,
  timeout: myConfig.requestTimeOut // 请求超时时间
})
// 请求拦截器
// app-6MPX5Fr97eK6BWHpy8g7vddd
service.interceptors.request.use(
  (config) => {
    const token = "app-6MPX5Fr97eK6BWHpy8g7vddd"
    if (token) config.headers['Authorization'] = `Bearer ${token}`
    return config
  },
  (error) => {
    // 发送失败
    Promise.reject(error)
  }
)
// 响应拦截器
service.interceptors.response.use(
  (response) => {
    // dataAxios 是 axios 返回数据中的 data
    const dataAxios = response.data
    if (typeof dataAxios.data === 'boolean') {
      return dataAxios.data
    }
    if (response.config.responseType == 'blob') {
      return dataAxios
    }
    const { success } = dataAxios
    if (dataAxios.currentDate) {
      sessionStorage.currentDate = new Date(dataAxios.currentDate).getTime()
    }
    // 根据 code 进行判断
    if (success) {
      return dataAxios.data ? dataAxios.data : dataAxios
    } else {
      // 提示错误
    }
  },
  (error) => {
    if (error.response && error.response.data && error.response.data.error) {
      console.error(error.response.data.error.msg)
    } else {
      console.error('请求发生错误')
    }
    return Promise.reject(error)
  }
)
export default service
src/views/Start.vue
@@ -52,12 +52,8 @@
          <img src="../assets/images/tianjia2.png" alt="" />
        </div>
        <div class="chat-text">
          <el-input
            type="textarea"
            :autosize="{ minRows: 2, maxRows: 10 }"
            placeholder="请输入您的问题"
            v-model="inputValue"
          />
          <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 10 }" placeholder="请输入您的问题"
            v-model="inputValue" />
        </div>
        <div class="select">
          <div class="select-left">
@@ -75,7 +71,7 @@
              <img src="../assets/images/fujian1.png" alt="" />
            </div>
            <div class="select-item">
              <img src="../assets/images/shangchuan2.png" alt="" />
              <img @click="sendMsg()" src="../assets/images/shangchuan2.png" alt="" />
            </div>
          </div>
        </div>
@@ -84,370 +80,380 @@
  </div>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const inputValue = ref('')
  import { ref } from 'vue'
  const inputValue = ref('')
  const sendMsg = () => {
  }
</script>
<style lang="less" scoped>
@media screen and (max-width: 750px) {
  .chat-box {
    width: 100%;
    height: auto;
    background-image: url('@/assets/images/beijing2.png');
    background-position: center;
    background-size: cover;
    .chat-box-content {
  @media screen and (max-width: 750px) {
    .chat-box {
      width: 100%;
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
      align-items: flex-start;
      height: auto;
      background-image: url('@/assets/images/beijing2.png');
      background-position: center;
      background-size: cover;
      .chat-date {
        width: 100%;
        text-align: center;
        margin-bottom: 30px;
      }
      .chat-send {
      .chat-box-content {
        width: 100%;
        display: flex;
        justify-content: flex-end;
        margin-bottom: 20px;
        .chat-send-info {
          width: 263px;
          height: 40px;
          background: #af8b56;
          border-radius: 20px;
          line-height: 40px;
          padding: 0 20px;
          color: #fff;
        }
      }
      .chat-back-info {
        margin-bottom: 20px;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        .back-avator {
          margin-right: 10px;
          img {
            width: 40px;
          }
        .chat-date {
          width: 100%;
          text-align: center;
          margin-bottom: 30px;
        }
        .base-book-box {
          width: 300px;
          padding: 20px;
          box-sizing: border-box;
          background-color: #fff;
          border-radius: 20px;
        }
      }
      .back-item {
        width: 300px;
        background: #ffffff;
        border-radius: 20px;
        margin-left: 50px;
        margin-bottom: 20px;
        .back-item-title {
          width: 80%;
          height: 60px;
          display: flex;
          align-items: center;
          padding: 0 10px;
          margin: auto;
          border-bottom: 1px solid #e9d8bf;
        }
        img {
          margin-right: 10px;
        }
        ul {
          padding: 0 25px;
          li {
            list-style: none;
            margin: 10px 0 10px 0;
            display: flex;
            justify-content: flex-start;
            align-items: center;
          }
        }
        .chat-change {
          display: flex;
          justify-content: flex-end;
          align-items: center;
          padding: 10px 20px;
          color: #d2a25b;
          img {
            cursor: pointer;
          }
        }
      }
      .chat-footer {
        width: 300px;
        background-color: #fff;
        border-radius: 20px;
        padding: 20px;
        box-sizing: border-box;
        margin-left: 50px;
        margin-bottom: 20px;
        .icon-list img {
          margin-right: 10px;
          cursor: pointer;
        }
        ::v-deep(.chat-text) {
          margin-bottom: 10px;
          .el-textarea__inner {
            border: none !important;
            outline: none !important;
            box-shadow: none !important;
            background-color: transparent !important;
            resize: none !important;
          }
        }
        .select {
        .chat-send {
          width: 100%;
          display: flex;
          align-items: center;
          justify-content: space-between;
          justify-content: flex-end;
          margin-bottom: 20px;
          .select-left,
          .select-right {
            display: flex;
            align-items: center;
            justify-content: flex-start;
            .select-item {
              display: flex;
              align-items: center;
              box-sizing: border-box;
              border: 1px solid #e9d8bf;
              border-radius: 15px;
              font-size: 12px;
              font-family:
                Microsoft YaHei,
                Microsoft YaHei-Regular;
              font-weight: 400;
              color: #e1c49a;
              img {
                margin-right: 5px;
                cursor: pointer;
              }
            }
          }
          .select-left {
            .select-item {
              min-width: 70px;
              padding: 5px 8px;
            }
          }
          .select-right {
            display: flex;
            align-items: center;
            justify-content: flex-end;
            .select-item {
              border: 0;
            }
          }
        }
      }
    }
  }
}
@media screen and (min-width: 750px) {
  .chat-box {
    width: 100%;
    height: 100%;
    background-image: url('@/assets/images/beijing2.png');
    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    justify-content: center;
    align-items: center;
    .chat-box-content {
      width: 1200px;
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
      align-items: flex-start;
      .chat-date {
        width: 100%;
        text-align: center;
        margin-bottom: 30px;
      }
      .chat-send {
        width: 100%;
        display: flex;
        justify-content: flex-end;
        margin-bottom: 20px;
        .chat-send-info {
          width: 263px;
          height: 40px;
          background: #af8b56;
          border-radius: 20px;
          line-height: 40px;
          padding: 0 20px;
          color: #fff;
        }
      }
      .chat-back-info {
        margin-bottom: 20px;
        display: flex;
        justify-content: flex-start;
        .back-avator {
          margin-right: 37px;
          img {
            width: 60px;
          .chat-send-info {
            width: 263px;
            height: 40px;
            background: #af8b56;
            border-radius: 20px;
            line-height: 40px;
            padding: 0 20px;
            color: #fff;
          }
        }
        .base-book-box {
          width: 800px;
          padding: 20px 47px;
          box-sizing: border-box;
          background-color: #fff;
          border-radius: 20px;
        }
      }
      .back-item {
        width: 349px;
        height: 391px;
        background: #ffffff;
        border-radius: 20px;
        margin-left: 100px;
        margin-bottom: 20px;
        .back-item-title {
          width: 80%;
          height: 60px;
          display: flex;
          align-items: center;
          padding: 0 10px;
          margin: auto;
          border-bottom: 1px solid #e9d8bf;
        }
        img {
          margin-right: 10px;
        }
        ul li {
          list-style: none;
          margin: 20px 0 20px 0;
        .chat-back-info {
          margin-bottom: 20px;
          display: flex;
          justify-content: flex-start;
          align-items: center;
        }
        .chat-change {
          display: flex;
          justify-content: flex-end;
          align-items: center;
          padding: 0 20px;
          color: #d2a25b;
          .back-avator {
            margin-right: 10px;
          img {
            cursor: pointer;
          }
        }
      }
      .chat-footer {
        width: 800px;
        height: 170px;
        background-color: #fff;
        border-radius: 20px;
        padding: 20px;
        box-sizing: border-box;
        margin-left: 103px;
        .icon-list img {
          margin-right: 10px;
          cursor: pointer;
        }
        ::v-deep(.chat-text) {
          margin-bottom: 10px;
          .el-textarea__inner {
            border: none !important;
            outline: none !important;
            box-shadow: none !important;
            background-color: transparent !important;
            resize: none !important;
          }
        }
        .select {
          width: 100%;
          display: flex;
          align-items: center;
          justify-content: space-between;
          .select-left,
          .select-right {
            flex: 1;
            display: flex;
            align-items: center;
            justify-content: flex-start;
            .select-item {
              display: flex;
              align-items: center;
              padding: 2px 10px;
              box-sizing: border-box;
              border: 1px solid #e9d8bf;
              border-radius: 15px;
              margin-right: 10px;
              font-size: 14px;
              font-family:
                Microsoft YaHei,
                Microsoft YaHei-Regular;
              font-weight: 400;
              color: #e1c49a;
              img {
                margin-right: 10px;
                cursor: pointer;
              }
            img {
              width: 40px;
            }
          }
          .select-right {
          .base-book-box {
            width: 300px;
            padding: 20px;
            box-sizing: border-box;
            background-color: #fff;
            border-radius: 20px;
          }
        }
        .back-item {
          width: 300px;
          background: #ffffff;
          border-radius: 20px;
          margin-left: 50px;
          margin-bottom: 20px;
          .back-item-title {
            width: 80%;
            height: 60px;
            display: flex;
            align-items: center;
            justify-content: flex-end;
            padding: 0 10px;
            margin: auto;
            border-bottom: 1px solid #e9d8bf;
          }
            .select-item {
              border: 0;
          img {
            margin-right: 10px;
          }
          ul {
            padding: 0 25px;
            li {
              list-style: none;
              margin: 10px 0 10px 0;
              display: flex;
              justify-content: flex-start;
              align-items: center;
            }
          }
          .chat-change {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            padding: 10px 20px;
            color: #d2a25b;
            img {
              cursor: pointer;
            }
          }
        }
        .chat-footer {
          width: 300px;
          background-color: #fff;
          border-radius: 20px;
          padding: 20px;
          box-sizing: border-box;
          margin-left: 50px;
          margin-bottom: 20px;
          .icon-list img {
            margin-right: 10px;
            cursor: pointer;
          }
          ::v-deep(.chat-text) {
            margin-bottom: 10px;
            .el-textarea__inner {
              border: none !important;
              outline: none !important;
              box-shadow: none !important;
              background-color: transparent !important;
              resize: none !important;
            }
          }
          .select {
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: space-between;
            .select-left,
            .select-right {
              display: flex;
              align-items: center;
              justify-content: flex-start;
              .select-item {
                display: flex;
                align-items: center;
                box-sizing: border-box;
                border: 1px solid #e9d8bf;
                border-radius: 15px;
                font-size: 12px;
                font-family:
                  Microsoft YaHei,
                  Microsoft YaHei-Regular;
                font-weight: 400;
                color: #e1c49a;
                img {
                  margin-right: 5px;
                  cursor: pointer;
                }
              }
            }
            .select-left {
              .select-item {
                min-width: 70px;
                padding: 5px 8px;
              }
            }
            .select-right {
              display: flex;
              align-items: center;
              justify-content: flex-end;
              .select-item {
                border: 0;
              }
            }
          }
        }
      }
    }
  }
}
</style>
  @media screen and (min-width: 750px) {
    .chat-box {
      width: 100%;
      height: 100%;
      background-image: url('@/assets/images/beijing2.png');
      background-size: 100% 100%;
      background-position: center;
      background-repeat: no-repeat;
      display: flex;
      justify-content: center;
      align-items: center;
      .chat-box-content {
        width: 1200px;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        .chat-date {
          width: 100%;
          text-align: center;
          margin-bottom: 30px;
        }
        .chat-send {
          width: 100%;
          display: flex;
          justify-content: flex-end;
          margin-bottom: 20px;
          .chat-send-info {
            width: 263px;
            height: 40px;
            background: #af8b56;
            border-radius: 20px;
            line-height: 40px;
            padding: 0 20px;
            color: #fff;
          }
        }
        .chat-back-info {
          margin-bottom: 20px;
          display: flex;
          justify-content: flex-start;
          .back-avator {
            margin-right: 37px;
            img {
              width: 60px;
            }
          }
          .base-book-box {
            width: 800px;
            padding: 20px 47px;
            box-sizing: border-box;
            background-color: #fff;
            border-radius: 20px;
          }
        }
        .back-item {
          width: 349px;
          height: 391px;
          background: #ffffff;
          border-radius: 20px;
          margin-left: 100px;
          margin-bottom: 20px;
          .back-item-title {
            width: 80%;
            height: 60px;
            display: flex;
            align-items: center;
            padding: 0 10px;
            margin: auto;
            border-bottom: 1px solid #e9d8bf;
          }
          img {
            margin-right: 10px;
          }
          ul li {
            list-style: none;
            margin: 20px 0 20px 0;
            display: flex;
            justify-content: flex-start;
            align-items: center;
          }
          .chat-change {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            padding: 0 20px;
            color: #d2a25b;
            img {
              cursor: pointer;
            }
          }
        }
        .chat-footer {
          width: 800px;
          height: 170px;
          background-color: #fff;
          border-radius: 20px;
          padding: 20px;
          box-sizing: border-box;
          margin-left: 103px;
          .icon-list img {
            margin-right: 10px;
            cursor: pointer;
          }
          ::v-deep(.chat-text) {
            margin-bottom: 10px;
            .el-textarea__inner {
              border: none !important;
              outline: none !important;
              box-shadow: none !important;
              background-color: transparent !important;
              resize: none !important;
            }
          }
          .select {
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: space-between;
            .select-left,
            .select-right {
              flex: 1;
              display: flex;
              align-items: center;
              justify-content: flex-start;
              .select-item {
                display: flex;
                align-items: center;
                padding: 2px 10px;
                box-sizing: border-box;
                border: 1px solid #e9d8bf;
                border-radius: 15px;
                margin-right: 10px;
                font-size: 14px;
                font-family:
                  Microsoft YaHei,
                  Microsoft YaHei-Regular;
                font-weight: 400;
                color: #e1c49a;
                img {
                  margin-right: 10px;
                  cursor: pointer;
                }
              }
            }
            .select-right {
              display: flex;
              align-items: center;
              justify-content: flex-end;
              .select-item {
                border: 0;
              }
            }
          }
        }
      }
    }
  }
</style>
yarn.lock
@@ -1112,6 +1112,20 @@
  resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz#c96ea3332a521699d0afaaceed510a54656c6339"
  integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==
asynckit@^0.4.0:
  version "0.4.0"
  resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
  integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
axios@^1.8.4:
  version "1.8.4"
  resolved "https://registry.npmmirror.com/axios/-/axios-1.8.4.tgz#78990bb4bc63d2cae072952d374835950a82f447"
  integrity sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==
  dependencies:
    follow-redirects "^1.15.6"
    form-data "^4.0.0"
    proxy-from-env "^1.1.0"
balanced-match@^1.0.0:
  version "1.0.2"
  resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
@@ -1166,6 +1180,14 @@
  dependencies:
    run-applescript "^7.0.0"
call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
  version "1.0.2"
  resolved "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
  integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
  dependencies:
    es-errors "^1.3.0"
    function-bind "^1.1.2"
callsites@^3.0.0:
  version "3.1.0"
  resolved "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
@@ -1195,6 +1217,13 @@
  version "1.1.4"
  resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
  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#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
  integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
  dependencies:
    delayed-stream "~1.0.0"
concat-map@0.0.1:
  version "0.0.1"
@@ -1279,6 +1308,20 @@
  resolved "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f"
  integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==
delayed-stream@~1.0.0:
  version "1.0.0"
  resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
  integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
dunder-proto@^1.0.1:
  version "1.0.1"
  resolved "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
  integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
  dependencies:
    call-bind-apply-helpers "^1.0.1"
    es-errors "^1.3.0"
    gopd "^1.2.0"
electron-to-chromium@^1.5.73:
  version "1.5.135"
  resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.135.tgz#6d835020fa0c7f02f30d7608c2f3c0a764236699"
@@ -1321,6 +1364,33 @@
  version "0.1.5"
  resolved "https://registry.npmmirror.com/error-stack-parser-es/-/error-stack-parser-es-0.1.5.tgz#15b50b67bea4b6ed6596976ee07c7867ae25bb1c"
  integrity sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==
es-define-property@^1.0.1:
  version "1.0.1"
  resolved "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa"
  integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
es-errors@^1.3.0:
  version "1.3.0"
  resolved "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
  integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
  version "1.1.1"
  resolved "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
  integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
  dependencies:
    es-errors "^1.3.0"
es-set-tostringtag@^2.1.0:
  version "2.1.0"
  resolved "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d"
  integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==
  dependencies:
    es-errors "^1.3.0"
    get-intrinsic "^1.2.6"
    has-tostringtag "^1.0.2"
    hasown "^2.0.2"
esbuild@^0.25.0:
  version "0.25.2"
@@ -1588,6 +1658,21 @@
  resolved "https://registry.npmmirror.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358"
  integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==
follow-redirects@^1.15.6:
  version "1.15.9"
  resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1"
  integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
form-data@^4.0.0:
  version "4.0.2"
  resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.2.tgz#35cabbdd30c3ce73deb2c42d3c8d3ed9ca51794c"
  integrity sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==
  dependencies:
    asynckit "^0.4.0"
    combined-stream "^1.0.8"
    es-set-tostringtag "^2.1.0"
    mime-types "^2.1.12"
fs-extra@^11.2.0:
  version "11.3.0"
  resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.3.0.tgz#0daced136bbaf65a555a326719af931adc7a314d"
@@ -1602,10 +1687,39 @@
  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#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
  integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
gensync@^1.0.0-beta.2:
  version "1.0.0-beta.2"
  resolved "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
  integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
get-intrinsic@^1.2.6:
  version "1.3.0"
  resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
  integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
  dependencies:
    call-bind-apply-helpers "^1.0.2"
    es-define-property "^1.0.1"
    es-errors "^1.3.0"
    es-object-atoms "^1.1.1"
    function-bind "^1.1.2"
    get-proto "^1.0.1"
    gopd "^1.2.0"
    has-symbols "^1.1.0"
    hasown "^2.0.2"
    math-intrinsics "^1.1.0"
get-proto@^1.0.1:
  version "1.0.1"
  resolved "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
  integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
  dependencies:
    dunder-proto "^1.0.1"
    es-object-atoms "^1.0.0"
get-stream@^9.0.0:
  version "9.0.1"
@@ -1639,6 +1753,11 @@
  resolved "https://registry.npmmirror.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e"
  integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==
gopd@^1.2.0:
  version "1.2.0"
  resolved "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
  integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
  version "4.2.11"
  resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
@@ -1653,6 +1772,25 @@
  version "4.0.0"
  resolved "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
  integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
has-symbols@^1.0.3, has-symbols@^1.1.0:
  version "1.1.0"
  resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
  integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
has-tostringtag@^1.0.2:
  version "1.0.2"
  resolved "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
  integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
  dependencies:
    has-symbols "^1.0.3"
hasown@^2.0.2:
  version "2.0.2"
  resolved "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
  integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
  dependencies:
    function-bind "^1.1.2"
he@^1.2.0:
  version "1.2.0"
@@ -1912,6 +2050,11 @@
    pify "^4.0.1"
    semver "^5.6.0"
math-intrinsics@^1.1.0:
  version "1.1.0"
  resolved "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
  integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
memoize-one@^6.0.0:
  version "6.0.0"
  resolved "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045"
@@ -1934,6 +2077,18 @@
  dependencies:
    braces "^3.0.3"
    picomatch "^2.3.1"
mime-db@1.52.0:
  version "1.52.0"
  resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
  integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
mime-types@^2.1.12:
  version "2.1.35"
  resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
  integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
  dependencies:
    mime-db "1.52.0"
mime@^1.4.1:
  version "1.6.0"
@@ -2190,6 +2345,11 @@
  dependencies:
    parse-ms "^4.0.0"
proxy-from-env@^1.1.0:
  version "1.1.0"
  resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
  integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
prr@~1.0.1:
  version "1.0.1"
  resolved "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"