From 24e5e65a571e13404daf5642497322ef0f8a9c87 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期三, 06 八月 2025 17:00:58 +0800
Subject: [PATCH] fix: 修改小程序框架

---
 apps/cMiniApp/tsconfig.json                                          |    1 
 config/openapi.json                                                  |    7 
 packages/services/apiV2/dictionary.ts                                |   99 +
 packages/constants/index.ts                                          |    1 
 apps/bMiniApp/config/index.js                                        |    8 
 packages/services/apiV2/role.ts                                      |   99 +
 apps/cMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue |    2 
 apps/cMiniApp/.eslintrc-auto-import.json                             |   42 
 apps/cMiniApp/src/utils/request/index.ts                             |   55 
 packages/services/tsconfig.json                                      |    8 
 apps/bMiniApp/src/constants/app.ts                                   |    6 
 apps/cMiniApp/src/stores/modules/user.ts                             |   71 
 packages/utils/index.ts                                              |    1 
 apps/bMiniApp/project.private.config.json                            |    7 
 pnpm-lock.yaml                                                       | 1908 +++++---------------------
 packages/services/apiV2/index.ts                                     |   20 
 apps/bMiniApp/src/stores/modules/user.ts                             |   45 
 apps/cMiniApp/src/constants/app.ts                                   |    6 
 apps/bMiniApp/src/constants/index.ts                                 |    1 
 apps/bMiniApp/src/utils/storage/auth.ts                              |   17 
 packages/services/apiV2/menu.ts                                      |   93 +
 apps/cMiniApp/config/dev.js                                          |    2 
 apps/cMiniApp/src/utils/storage/auth.ts                              |   17 
 packages/services/apiV2/enterprise.ts                                |   18 
 packages/constants/apiEnum.ts                                        |  106 +
 apps/bMiniApp/src/utils/request/index.ts                             |   55 
 apps/bMiniApp/.eslintrc-auto-import.json                             |   14 
 apps/cMiniApp/src/constants/index.ts                                 |    1 
 packages/utils/common.ts                                             |    1 
 packages/services/apiV2/resource.ts                                  |   33 
 apps/cMiniApp/config/index.js                                        |    8 
 apps/bMiniApp/auto-imports.d.ts                                      |  112 +
 packages/utils/encrypt.ts                                            |   13 
 packages/services/apiV2/auth.ts                                      |   49 
 apps/bMiniApp/project.config.json                                    |    4 
 apps/bMiniApp/tsconfig.json                                          |    1 
 types/api.d.ts                                                       |   12 
 apps/cMiniApp/auto-imports.d.ts                                      |  132 +
 apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue |    2 
 apps/cMiniApp/project.config.json                                    |    4 
 packages/services/apiV2/typings.d.ts                                 | 1101 +++++++++++++++
 apps/bMiniApp/config/dev.js                                          |    2 
 packages/services/apiV2/userInfo.ts                                  |   66 
 43 files changed, 2,512 insertions(+), 1,738 deletions(-)

diff --git a/apps/bMiniApp/.eslintrc-auto-import.json b/apps/bMiniApp/.eslintrc-auto-import.json
index 8841396..e7293cf 100644
--- a/apps/bMiniApp/.eslintrc-auto-import.json
+++ b/apps/bMiniApp/.eslintrc-auto-import.json
@@ -86,6 +86,18 @@
     "onWatcherCleanup": true,
     "useId": true,
     "useModel": true,
-    "useTemplateRef": true
+    "useTemplateRef": true,
+    "AppLocalConfig": true,
+    "BackType": true,
+    "OssAssets": true,
+    "TabBarPageRouter": true,
+    "myClient": true,
+    "useAccessLogin": true,
+    "useAuth": true,
+    "useGoLogin": true,
+    "useIsLogin": true,
+    "useLoginedJump": true,
+    "useSwitchTab": true,
+    "useUser": true
   }
 }
diff --git a/apps/bMiniApp/auto-imports.d.ts b/apps/bMiniApp/auto-imports.d.ts
index e2b40ef..1ce3144 100644
--- a/apps/bMiniApp/auto-imports.d.ts
+++ b/apps/bMiniApp/auto-imports.d.ts
@@ -5,8 +5,12 @@
 // Generated by unplugin-auto-import
 export {}
 declare global {
+  const AppLocalConfig: typeof import('./src/constants/app')['AppLocalConfig']
+  const BackType: typeof import('./src/constants/enum')['BackType']
   const EffectScope: typeof import('vue')['EffectScope']
-  const RouterPath: typeof import('@/constants')['RouterPath']
+  const OssAssets: typeof import('./src/constants/img')['OssAssets']
+  const RouterPath: typeof import('./src/constants/router')['RouterPath']
+  const TabBarPageRouter: typeof import('./src/constants/tabBar')['TabBarPageRouter']
   const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
   const computed: typeof import('vue')['computed']
   const createApp: typeof import('vue')['createApp']
@@ -31,6 +35,7 @@
   const mapStores: typeof import('pinia')['mapStores']
   const mapWritableState: typeof import('pinia')['mapWritableState']
   const markRaw: typeof import('vue')['markRaw']
+  const myClient: typeof import('./src/constants/query')['myClient']
   const nextTick: typeof import('vue')['nextTick']
   const onActivated: typeof import('vue')['onActivated']
   const onBeforeMount: typeof import('vue')['onBeforeMount']
@@ -65,18 +70,25 @@
   const toValue: typeof import('vue')['toValue']
   const triggerRef: typeof import('vue')['triggerRef']
   const unref: typeof import('vue')['unref']
+  const useAccessLogin: typeof import('./src/hooks/access')['useAccessLogin']
   const useAttrs: typeof import('vue')['useAttrs']
+  const useAuth: typeof import('./src/hooks/user')['useAuth']
   const useCssModule: typeof import('vue')['useCssModule']
   const useCssVars: typeof import('vue')['useCssVars']
+  const useGoLogin: typeof import('./src/hooks/user')['useGoLogin']
   const useId: typeof import('vue')['useId']
+  const useIsLogin: typeof import('./src/hooks/user')['useIsLogin']
   const useLink: typeof import('vue-router')['useLink']
+  const useLoginedJump: typeof import('./src/hooks/login')['useLoginedJump']
   const useModel: typeof import('vue')['useModel']
   const useOmitProps: typeof import('@/hooks')['useOmitProps']
   const usePickProps: typeof import('@/hooks')['usePickProps']
   const useRoute: typeof import('vue-router')['useRoute']
   const useRouter: typeof import('vue-router')['useRouter']
   const useSlots: typeof import('vue')['useSlots']
+  const useSwitchTab: typeof import('./src/hooks/router')['useSwitchTab']
   const useTemplateRef: typeof import('vue')['useTemplateRef']
+  const useUser: typeof import('./src/hooks/user')['useUser']
   const watch: typeof import('vue')['watch']
   const watchEffect: typeof import('vue')['watchEffect']
   const watchPostEffect: typeof import('vue')['watchPostEffect']
@@ -87,4 +99,102 @@
   // @ts-ignore
   export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
   import('vue')
+  // @ts-ignore
+  export type { BackType, BackType } from './src/constants/enum'
+  import('./src/constants/enum')
+  // @ts-ignore
+  export type { RouterPath, RouterPath } from './src/constants/router'
+  import('./src/constants/router')
+}
+// for vue template auto import
+import { UnwrapRef } from 'vue'
+declare module 'vue' {
+  interface ComponentCustomProperties {
+    readonly AppLocalConfig: UnwrapRef<typeof import('./src/constants/app')['AppLocalConfig']>
+    readonly BackType: UnwrapRef<typeof import('./src/constants/enum')['BackType']>
+    readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
+    readonly OssAssets: UnwrapRef<typeof import('./src/constants/img')['OssAssets']>
+    readonly RouterPath: UnwrapRef<typeof import('./src/constants/router')['RouterPath']>
+    readonly TabBarPageRouter: UnwrapRef<typeof import('./src/constants/tabBar')['TabBarPageRouter']>
+    readonly acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']>
+    readonly computed: UnwrapRef<typeof import('vue')['computed']>
+    readonly createApp: UnwrapRef<typeof import('vue')['createApp']>
+    readonly createPinia: UnwrapRef<typeof import('pinia')['createPinia']>
+    readonly customRef: UnwrapRef<typeof import('vue')['customRef']>
+    readonly defineAsyncComponent: UnwrapRef<typeof import('vue')['defineAsyncComponent']>
+    readonly defineComponent: UnwrapRef<typeof import('vue')['defineComponent']>
+    readonly defineStore: UnwrapRef<typeof import('pinia')['defineStore']>
+    readonly effectScope: UnwrapRef<typeof import('vue')['effectScope']>
+    readonly getActivePinia: UnwrapRef<typeof import('pinia')['getActivePinia']>
+    readonly getCurrentInstance: UnwrapRef<typeof import('vue')['getCurrentInstance']>
+    readonly getCurrentScope: UnwrapRef<typeof import('vue')['getCurrentScope']>
+    readonly h: UnwrapRef<typeof import('vue')['h']>
+    readonly inject: UnwrapRef<typeof import('vue')['inject']>
+    readonly isProxy: UnwrapRef<typeof import('vue')['isProxy']>
+    readonly isReactive: UnwrapRef<typeof import('vue')['isReactive']>
+    readonly isReadonly: UnwrapRef<typeof import('vue')['isReadonly']>
+    readonly isRef: UnwrapRef<typeof import('vue')['isRef']>
+    readonly mapActions: UnwrapRef<typeof import('pinia')['mapActions']>
+    readonly mapGetters: UnwrapRef<typeof import('pinia')['mapGetters']>
+    readonly mapState: UnwrapRef<typeof import('pinia')['mapState']>
+    readonly mapStores: UnwrapRef<typeof import('pinia')['mapStores']>
+    readonly mapWritableState: UnwrapRef<typeof import('pinia')['mapWritableState']>
+    readonly markRaw: UnwrapRef<typeof import('vue')['markRaw']>
+    readonly myClient: UnwrapRef<typeof import('./src/constants/query')['myClient']>
+    readonly nextTick: UnwrapRef<typeof import('vue')['nextTick']>
+    readonly onActivated: UnwrapRef<typeof import('vue')['onActivated']>
+    readonly onBeforeMount: UnwrapRef<typeof import('vue')['onBeforeMount']>
+    readonly onBeforeRouteLeave: UnwrapRef<typeof import('vue-router')['onBeforeRouteLeave']>
+    readonly onBeforeRouteUpdate: UnwrapRef<typeof import('vue-router')['onBeforeRouteUpdate']>
+    readonly onBeforeUnmount: UnwrapRef<typeof import('vue')['onBeforeUnmount']>
+    readonly onBeforeUpdate: UnwrapRef<typeof import('vue')['onBeforeUpdate']>
+    readonly onDeactivated: UnwrapRef<typeof import('vue')['onDeactivated']>
+    readonly onErrorCaptured: UnwrapRef<typeof import('vue')['onErrorCaptured']>
+    readonly onMounted: UnwrapRef<typeof import('vue')['onMounted']>
+    readonly onRenderTracked: UnwrapRef<typeof import('vue')['onRenderTracked']>
+    readonly onRenderTriggered: UnwrapRef<typeof import('vue')['onRenderTriggered']>
+    readonly onScopeDispose: UnwrapRef<typeof import('vue')['onScopeDispose']>
+    readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']>
+    readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']>
+    readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']>
+    readonly onWatcherCleanup: UnwrapRef<typeof import('vue')['onWatcherCleanup']>
+    readonly provide: UnwrapRef<typeof import('vue')['provide']>
+    readonly reactive: UnwrapRef<typeof import('vue')['reactive']>
+    readonly readonly: UnwrapRef<typeof import('vue')['readonly']>
+    readonly ref: UnwrapRef<typeof import('vue')['ref']>
+    readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
+    readonly setActivePinia: UnwrapRef<typeof import('pinia')['setActivePinia']>
+    readonly setMapStoreSuffix: UnwrapRef<typeof import('pinia')['setMapStoreSuffix']>
+    readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
+    readonly shallowReadonly: UnwrapRef<typeof import('vue')['shallowReadonly']>
+    readonly shallowRef: UnwrapRef<typeof import('vue')['shallowRef']>
+    readonly storeToRefs: UnwrapRef<typeof import('pinia')['storeToRefs']>
+    readonly toRaw: UnwrapRef<typeof import('vue')['toRaw']>
+    readonly toRef: UnwrapRef<typeof import('vue')['toRef']>
+    readonly toRefs: UnwrapRef<typeof import('vue')['toRefs']>
+    readonly toValue: UnwrapRef<typeof import('vue')['toValue']>
+    readonly triggerRef: UnwrapRef<typeof import('vue')['triggerRef']>
+    readonly unref: UnwrapRef<typeof import('vue')['unref']>
+    readonly useAccessLogin: UnwrapRef<typeof import('./src/hooks/access')['useAccessLogin']>
+    readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
+    readonly useAuth: UnwrapRef<typeof import('./src/hooks/user')['useAuth']>
+    readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
+    readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
+    readonly useGoLogin: UnwrapRef<typeof import('./src/hooks/user')['useGoLogin']>
+    readonly useId: UnwrapRef<typeof import('vue')['useId']>
+    readonly useIsLogin: UnwrapRef<typeof import('./src/hooks/user')['useIsLogin']>
+    readonly useLink: UnwrapRef<typeof import('vue-router')['useLink']>
+    readonly useLoginedJump: UnwrapRef<typeof import('./src/hooks/login')['useLoginedJump']>
+    readonly useModel: UnwrapRef<typeof import('vue')['useModel']>
+    readonly useRoute: UnwrapRef<typeof import('vue-router')['useRoute']>
+    readonly useRouter: UnwrapRef<typeof import('vue-router')['useRouter']>
+    readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
+    readonly useSwitchTab: UnwrapRef<typeof import('./src/hooks/router')['useSwitchTab']>
+    readonly useTemplateRef: UnwrapRef<typeof import('vue')['useTemplateRef']>
+    readonly useUser: UnwrapRef<typeof import('./src/hooks/user')['useUser']>
+    readonly watch: UnwrapRef<typeof import('vue')['watch']>
+    readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']>
+    readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']>
+    readonly watchSyncEffect: UnwrapRef<typeof import('vue')['watchSyncEffect']>
+  }
 }
diff --git a/apps/bMiniApp/config/dev.js b/apps/bMiniApp/config/dev.js
index 15fba34..5b793dc 100644
--- a/apps/bMiniApp/config/dev.js
+++ b/apps/bMiniApp/config/dev.js
@@ -3,7 +3,7 @@
 module.exports = {
   env: {
     NODE_ENV: '"development"',
-    BASE_URL: '"http://localhost:58190"',
+    BASE_URL: '"http://localhost:53780"',
     BASE_URL_JX: '"https://api.jx818.com"',
 
     OSS_URL: '"https://waterdroptest2.oss-cn-hangzhou.aliyuncs.com/"',
diff --git a/apps/bMiniApp/config/index.js b/apps/bMiniApp/config/index.js
index 49d75a1..9ccd923 100644
--- a/apps/bMiniApp/config/index.js
+++ b/apps/bMiniApp/config/index.js
@@ -113,7 +113,13 @@
 
       chain.plugin('unplugin-auto-import').use(
         AutoImport({
-          imports: ['vue', 'pinia', 'vue-router', { '@/constants': ['RouterPath'] }],
+          dirs: ['./src/constants/**', './src/hooks/**'],
+          // dirsScanOptions: {
+          //   fileFilter: (file) => file.endsWith('.ts'), // Filter files
+          //   types: true,
+          // },
+          vueTemplate: true,
+          imports: ['vue', 'pinia', 'vue-router'],
           eslintrc: {
             enabled: true, // Default `false`
             filepath: './.eslintrc-auto-import.json', // Default `./.eslintrc-auto-import.json`
diff --git a/apps/bMiniApp/project.config.json b/apps/bMiniApp/project.config.json
index b1bd9c7..b424d15 100644
--- a/apps/bMiniApp/project.config.json
+++ b/apps/bMiniApp/project.config.json
@@ -3,8 +3,8 @@
     "description": "",
     "setting": {
         "urlCheck": false,
-        "es6": false,
-        "enhance": false,
+        "es6": true,
+        "enhance": true,
         "postcss": false,
         "preloadBackgroundData": false,
         "minified": false,
diff --git a/apps/bMiniApp/project.private.config.json b/apps/bMiniApp/project.private.config.json
index 05123c7..eedae10 100644
--- a/apps/bMiniApp/project.private.config.json
+++ b/apps/bMiniApp/project.private.config.json
@@ -9,6 +9,13 @@
         "miniprogram": {
             "list": [
                 {
+                    "name": "璁剧疆",
+                    "pathName": "subpackages/mine/setting/setting",
+                    "query": "",
+                    "launchMode": "default",
+                    "scene": null
+                },
+                {
                     "name": "瀹夋帓浠诲姟",
                     "pathName": "subpackages/task/batchTaskList/batchTaskList",
                     "query": "id=57a8f533-2a46-7a88-e008-3a1775810dd2",
diff --git a/apps/bMiniApp/src/constants/app.ts b/apps/bMiniApp/src/constants/app.ts
new file mode 100644
index 0000000..bcda41b
--- /dev/null
+++ b/apps/bMiniApp/src/constants/app.ts
@@ -0,0 +1,6 @@
+import { EnumUserType, EnumClientType } from '@12333/constants';
+
+export const AppLocalConfig = {
+  userType: EnumUserType.Operation,
+  clientType: EnumClientType.PcWeb,
+};
diff --git a/apps/bMiniApp/src/constants/index.ts b/apps/bMiniApp/src/constants/index.ts
index c7f2445..461ed07 100644
--- a/apps/bMiniApp/src/constants/index.ts
+++ b/apps/bMiniApp/src/constants/index.ts
@@ -2,3 +2,4 @@
 export * from './tabBar';
 export * from './router';
 export * from './img';
+export * from './app';
diff --git a/apps/bMiniApp/src/stores/modules/user.ts b/apps/bMiniApp/src/stores/modules/user.ts
index a2cf9cf..2643b91 100644
--- a/apps/bMiniApp/src/stores/modules/user.ts
+++ b/apps/bMiniApp/src/stores/modules/user.ts
@@ -8,9 +8,6 @@
   setUserDetail,
   getUserDetail,
   removeUserDetail,
-  removeMatchMakingIdentity,
-  getMatchMakingIdentity,
-  setMatchMakingIdentity,
 } from '@/utils/storage/auth';
 import * as accountServices from '@12333/services/api/Account';
 // import * as userServices from '@12333/services/api/User';
@@ -24,14 +21,17 @@
   setOSSLink,
   getUserCertificationFrontStatusAdapter,
   LocationUtils,
+  md5Encrypt,
 } from '@12333/utils';
 import DefaultAvatar from '@/assets/components/icon-default-avatar.png';
 import { WxMiniAppEnum } from '@12333/constants';
 import { myClient } from '@/constants/query';
 import { globalEventEmitter } from '@12333/hooks';
+import * as authServices from '@12333/services/apiV2/auth';
+import { AppLocalConfig } from '@/constants';
 
 interface UserState {
-  userInfo?: Nullable<API.IdentityModelTokenCacheItem>;
+  userInfo?: Nullable<API.PasswordLoginCommandCallback>;
   token?: Nullable<string>;
   refreshToken?: Nullable<string>;
   userDetail?: Nullable<API.UserInfoV2>;
@@ -80,15 +80,6 @@
     };
   },
   getters: {
-    cacheToken: (state) => {
-      if (!state.token) {
-        const storageToken = getCacheToken() as API.IdentityModelTokenCacheItem;
-
-        state.token = storageToken.accessToken;
-      }
-      return state.token || null;
-    },
-
     cacheRefreshToken: (state) => {
       return state.refreshToken;
     },
@@ -143,11 +134,13 @@
     },
 
     // 鐢ㄦ埛璐﹀彿瀵嗙爜鐧诲叆
-    async loginByPassword(data: API.AccessRequestDto) {
-      let res = await accountServices.passwordLogin(
+    async loginByPassword(params: API.PasswordLoginCommand) {
+      let res = await authServices.passwordLogin(
         {
-          loginName: data.userName,
-          password: data.userPassword,
+          userName: params.userName,
+          password: md5Encrypt(params.password),
+          type: AppLocalConfig.userType,
+          clientType: AppLocalConfig.clientType,
         },
         { showLoading: false }
       );
@@ -234,7 +227,6 @@
       this.userDetail = null;
       removeUserInfo();
       removeUserDetail();
-      removeMatchMakingIdentity();
     },
 
     /**
@@ -268,23 +260,6 @@
         Taro.redirectTo({
           url: `/packageLogin/authLogin/index`,
         });
-      }
-    },
-
-    async getTokenByRefreshToken(params: API.AccessRefreshToken) {
-      try {
-        const res = await accountServices.getTokenByRefreshToken(params, {
-          showLoading: false,
-        });
-        if (res) {
-          this.setTokenAction(res);
-          this.setUserInfoAction(res);
-          return res;
-        } else {
-          throw new Error('鍒锋柊token澶辫触');
-        }
-      } catch (error) {
-        throw new Error('error');
       }
     },
 
diff --git a/apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue b/apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
index be5996e..3499730 100644
--- a/apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
+++ b/apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
@@ -77,7 +77,7 @@
         form.loading = true;
         await userStore.loginByPassword({
           userName: form.userName,
-          userPassword: form.userPassword,
+          password: form.userPassword,
         });
         jump();
       }
diff --git a/apps/bMiniApp/src/utils/request/index.ts b/apps/bMiniApp/src/utils/request/index.ts
index 0693296..339d938 100644
--- a/apps/bMiniApp/src/utils/request/index.ts
+++ b/apps/bMiniApp/src/utils/request/index.ts
@@ -4,7 +4,6 @@
 import Taro from '@tarojs/taro';
 import { getToken } from '@/utils';
 import { tokenIsExpired, Message, SensitiveManage } from '@12333/utils';
-import * as accountServices from '@12333/services/api/Account';
 import { useUserStoreWithOut } from '@/stores/modules/user';
 
 const RefreshTokenUrl = '/gettokenbyrefreshtoken';
@@ -51,9 +50,13 @@
   success: boolean;
   data: any;
   /**
+   * http鐘舵�佸悧
+   */
+  code?: number;
+  /**
    * 閿欒鐮�
    */
-  error?: number;
+  errorCode?: string;
   /**
    * 閿欒淇℃伅
    */
@@ -150,7 +153,7 @@
 
     // 閿欒鎶涘嚭
     errorThrower: (res) => {
-      const { success, data, error: errorCode, msg, showType } = res;
+      const { success, data, errorCode, msg, showType } = res;
       if (!success) {
         const error: any = new Error(msg);
         error.name = 'BizError';
@@ -190,34 +193,9 @@
 
         return new Promise((resolve, reject) => {
           if (userInfo && token && $config.withCredentials) {
-            if (tokenIsExpired(userInfo)) {
-              if (!Request.refreshTokenPending) {
-                Request.refreshTokenPending = true;
-                // token杩囨湡鍒锋柊
-                useUserStoreWithOut()
-                  .getTokenByRefreshToken({
-                    refreshToken: userInfo.refreshToken,
-                    clientId: userStore.accountInfo?.client_id,
-                  })
-                  .then((res) => {
-                    $config.headers['Authorization'] = 'Bearer ' + res.accessToken;
-                    Request.requests.forEach((cb) => cb(res.accessToken));
-                    Request.requests = [];
-                  })
-                  .catch((err) => {
-                    Request.requests.forEach((cb) => cb());
-                    Request.requests = [];
-                    reject(err);
-                  })
-                  .finally(() => {
-                    Request.refreshTokenPending = false;
-                  });
-              }
-              resolve(Request.retryOriginalRequest($config));
-            } else {
-              $config.headers['Authorization'] = 'Bearer ' + token;
-              resolve($config);
-            }
+            $config.headers['Authorization'] = 'Bearer ' + userInfo.accessToken;
+            $config.headers['X-Authorization'] = 'Bearer ' + userInfo.refreshToken;
+            resolve($config);
           } else {
             resolve($config);
           }
@@ -236,11 +214,20 @@
 
         const { needNProcess, getResponse = false } = $config;
 
+        const userStore = useUserStoreWithOut();
+
+        if (response.headers['x-access-token']) {
+          const tokenInfo: API.PasswordLoginCommandCallback = {
+            accessToken: response.headers['access-token'],
+            refreshToken: response.headers['x-access-token'],
+          };
+          userStore.setTokenAction(tokenInfo);
+          userStore.setUserInfoAction(tokenInfo);
+        }
+
         endLoading();
 
-        return getResponse
-          ? response
-          : SensitiveManage.filterSensitiveWord((response.data as any).result);
+        return getResponse ? response : SensitiveManage.filterSensitiveWord(response.data.data);
       },
       (error) => {
         endLoading();
diff --git a/apps/bMiniApp/src/utils/storage/auth.ts b/apps/bMiniApp/src/utils/storage/auth.ts
index b2bbb8f..d7ca87d 100644
--- a/apps/bMiniApp/src/utils/storage/auth.ts
+++ b/apps/bMiniApp/src/utils/storage/auth.ts
@@ -1,6 +1,5 @@
 import { storageLocal } from './storage';
 import { useUserStoreWithOut } from '@/stores/modules/user';
-import { MatchMakingIdentityEnum } from '@12333/constants';
 
 const StorageKey = {
   USER_INFO_KEY: 'USER__INFO__',
@@ -18,10 +17,10 @@
 }
 
 export function getUserInfo() {
-  return storageLocal.getItem<API.IdentityModelTokenCacheItem>(StorageKey.USER_INFO_KEY);
+  return storageLocal.getItem<API.PasswordLoginCommandCallback>(StorageKey.USER_INFO_KEY);
 }
 
-export function setUserInfo(userInfo: API.IdentityModelTokenCacheItem) {
+export function setUserInfo(userInfo: API.PasswordLoginCommandCallback) {
   return storageLocal.setItem(StorageKey.USER_INFO_KEY, userInfo);
 }
 
@@ -39,18 +38,6 @@
 
 export function removeUserDetail() {
   return storageLocal.removeItem(StorageKey.USER_DETAIL_KEY);
-}
-
-export function getMatchMakingIdentity() {
-  return storageLocal.getItem<MatchMakingIdentityEnum>(StorageKey.MatchMakingIdentity_KEY);
-}
-
-export function setMatchMakingIdentity(matchMakingIdentity: MatchMakingIdentityEnum) {
-  return storageLocal.setItem(StorageKey.MatchMakingIdentity_KEY, matchMakingIdentity);
-}
-
-export function removeMatchMakingIdentity() {
-  return storageLocal.removeItem(StorageKey.MatchMakingIdentity_KEY);
 }
 
 type StorageLocation = {
diff --git a/apps/bMiniApp/tsconfig.json b/apps/bMiniApp/tsconfig.json
index dfb771d..85fb544 100644
--- a/apps/bMiniApp/tsconfig.json
+++ b/apps/bMiniApp/tsconfig.json
@@ -11,6 +11,7 @@
     "types": [
       "node",
       "@12333/services/api/typings.d.ts",
+      "@12333/services/apiV2/typings.d.ts",
       "@12333/services/types.d.ts",
       "@12333/services/globalType.d.ts",
       "@tarojs/components/vue3"
diff --git a/apps/cMiniApp/.eslintrc-auto-import.json b/apps/cMiniApp/.eslintrc-auto-import.json
index 8841396..7a65a7d 100644
--- a/apps/cMiniApp/.eslintrc-auto-import.json
+++ b/apps/cMiniApp/.eslintrc-auto-import.json
@@ -3,10 +3,19 @@
     "Component": true,
     "ComponentPublicInstance": true,
     "ComputedRef": true,
+    "DirectiveBinding": true,
     "EffectScope": true,
+    "ExtractDefaultPropTypes": true,
+    "ExtractPropTypes": true,
+    "ExtractPublicPropTypes": true,
     "InjectionKey": true,
+    "MaybeRef": true,
+    "MaybeRefOrGetter": true,
     "PropType": true,
     "Ref": true,
+    "RouterPath": true,
+    "Slot": true,
+    "Slots": true,
     "VNode": true,
     "WritableComputedRef": true,
     "acceptHMRUpdate": true,
@@ -49,6 +58,7 @@
     "onServerPrefetch": true,
     "onUnmounted": true,
     "onUpdated": true,
+    "onWatcherCleanup": true,
     "provide": true,
     "reactive": true,
     "readonly": true,
@@ -69,23 +79,35 @@
     "useAttrs": true,
     "useCssModule": true,
     "useCssVars": true,
+    "useId": true,
     "useLink": true,
+    "useModel": true,
     "useRoute": true,
     "useRouter": true,
     "useSlots": true,
+    "useTemplateRef": true,
     "watch": true,
     "watchEffect": true,
     "watchPostEffect": true,
     "watchSyncEffect": true,
-    "useOmitProps": true,
-    "usePickProps": true,
-    "RouterPath": true,
-    "ExtractDefaultPropTypes": true,
-    "ExtractPropTypes": true,
-    "ExtractPublicPropTypes": true,
-    "onWatcherCleanup": true,
-    "useId": true,
-    "useModel": true,
-    "useTemplateRef": true
+    "AppLocalConfig": true,
+    "BackType": true,
+    "HomeOrderType": true,
+    "OssAssets": true,
+    "TabBarPageRouter": true,
+    "TaskStatus": true,
+    "TaskStatusColor": true,
+    "TaskStatusText": true,
+    "myClient": true,
+    "useAccessLogin": true,
+    "useAccessPersonalInfo": true,
+    "useAuth": true,
+    "useGoLogin": true,
+    "useIsLogin": true,
+    "useLoginedJump": true,
+    "useMyCertificationAuditInfo": true,
+    "useSwitchTab": true,
+    "useTaskList": true,
+    "useUser": true
   }
 }
diff --git a/apps/cMiniApp/auto-imports.d.ts b/apps/cMiniApp/auto-imports.d.ts
index e2b40ef..67da1bf 100644
--- a/apps/cMiniApp/auto-imports.d.ts
+++ b/apps/cMiniApp/auto-imports.d.ts
@@ -5,8 +5,16 @@
 // Generated by unplugin-auto-import
 export {}
 declare global {
+  const AppLocalConfig: typeof import('./src/constants/app')['AppLocalConfig']
+  const BackType: typeof import('./src/constants/enum')['BackType']
   const EffectScope: typeof import('vue')['EffectScope']
-  const RouterPath: typeof import('@/constants')['RouterPath']
+  const HomeOrderType: typeof import('./src/hooks/task')['HomeOrderType']
+  const OssAssets: typeof import('./src/constants/img')['OssAssets']
+  const RouterPath: typeof import('./src/constants/router')['RouterPath']
+  const TabBarPageRouter: typeof import('./src/constants/tabBar')['TabBarPageRouter']
+  const TaskStatus: typeof import('./src/constants/task')['TaskStatus']
+  const TaskStatusColor: typeof import('./src/constants/task')['TaskStatusColor']
+  const TaskStatusText: typeof import('./src/constants/task')['TaskStatusText']
   const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
   const computed: typeof import('vue')['computed']
   const createApp: typeof import('vue')['createApp']
@@ -31,6 +39,7 @@
   const mapStores: typeof import('pinia')['mapStores']
   const mapWritableState: typeof import('pinia')['mapWritableState']
   const markRaw: typeof import('vue')['markRaw']
+  const myClient: typeof import('./src/constants/query')['myClient']
   const nextTick: typeof import('vue')['nextTick']
   const onActivated: typeof import('vue')['onActivated']
   const onBeforeMount: typeof import('vue')['onBeforeMount']
@@ -65,18 +74,28 @@
   const toValue: typeof import('vue')['toValue']
   const triggerRef: typeof import('vue')['triggerRef']
   const unref: typeof import('vue')['unref']
+  const useAccessLogin: typeof import('./src/hooks/access')['useAccessLogin']
+  const useAccessPersonalInfo: typeof import('./src/hooks/access')['useAccessPersonalInfo']
   const useAttrs: typeof import('vue')['useAttrs']
+  const useAuth: typeof import('./src/hooks/user')['useAuth']
   const useCssModule: typeof import('vue')['useCssModule']
   const useCssVars: typeof import('vue')['useCssVars']
+  const useGoLogin: typeof import('./src/hooks/user')['useGoLogin']
   const useId: typeof import('vue')['useId']
+  const useIsLogin: typeof import('./src/hooks/user')['useIsLogin']
   const useLink: typeof import('vue-router')['useLink']
+  const useLoginedJump: typeof import('./src/hooks/login')['useLoginedJump']
   const useModel: typeof import('vue')['useModel']
+  const useMyCertificationAuditInfo: typeof import('./src/hooks/authentication')['useMyCertificationAuditInfo']
   const useOmitProps: typeof import('@/hooks')['useOmitProps']
   const usePickProps: typeof import('@/hooks')['usePickProps']
   const useRoute: typeof import('vue-router')['useRoute']
   const useRouter: typeof import('vue-router')['useRouter']
   const useSlots: typeof import('vue')['useSlots']
+  const useSwitchTab: typeof import('./src/hooks/router')['useSwitchTab']
+  const useTaskList: typeof import('./src/hooks/task')['useTaskList']
   const useTemplateRef: typeof import('vue')['useTemplateRef']
+  const useUser: typeof import('./src/hooks/user')['useUser']
   const watch: typeof import('vue')['watch']
   const watchEffect: typeof import('vue')['watchEffect']
   const watchPostEffect: typeof import('vue')['watchPostEffect']
@@ -87,4 +106,115 @@
   // @ts-ignore
   export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
   import('vue')
+  // @ts-ignore
+  export type { BackType, BackType } from './src/constants/enum'
+  import('./src/constants/enum')
+  // @ts-ignore
+  export type { RouterPath, RouterPath } from './src/constants/router'
+  import('./src/constants/router')
+  // @ts-ignore
+  export type { TaskStatus, TaskStatus } from './src/constants/task'
+  import('./src/constants/task')
+  // @ts-ignore
+  export type { HomeOrderType, HomeOrderType } from './src/hooks/task'
+  import('./src/hooks/task')
+}
+// for vue template auto import
+import { UnwrapRef } from 'vue'
+declare module 'vue' {
+  interface ComponentCustomProperties {
+    readonly AppLocalConfig: UnwrapRef<typeof import('./src/constants/app')['AppLocalConfig']>
+    readonly BackType: UnwrapRef<typeof import('./src/constants/enum')['BackType']>
+    readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
+    readonly HomeOrderType: UnwrapRef<typeof import('./src/hooks/task')['HomeOrderType']>
+    readonly OssAssets: UnwrapRef<typeof import('./src/constants/img')['OssAssets']>
+    readonly RouterPath: UnwrapRef<typeof import('./src/constants/router')['RouterPath']>
+    readonly TabBarPageRouter: UnwrapRef<typeof import('./src/constants/tabBar')['TabBarPageRouter']>
+    readonly TaskStatus: UnwrapRef<typeof import('./src/constants/task')['TaskStatus']>
+    readonly TaskStatusColor: UnwrapRef<typeof import('./src/constants/task')['TaskStatusColor']>
+    readonly TaskStatusText: UnwrapRef<typeof import('./src/constants/task')['TaskStatusText']>
+    readonly acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']>
+    readonly computed: UnwrapRef<typeof import('vue')['computed']>
+    readonly createApp: UnwrapRef<typeof import('vue')['createApp']>
+    readonly createPinia: UnwrapRef<typeof import('pinia')['createPinia']>
+    readonly customRef: UnwrapRef<typeof import('vue')['customRef']>
+    readonly defineAsyncComponent: UnwrapRef<typeof import('vue')['defineAsyncComponent']>
+    readonly defineComponent: UnwrapRef<typeof import('vue')['defineComponent']>
+    readonly defineStore: UnwrapRef<typeof import('pinia')['defineStore']>
+    readonly effectScope: UnwrapRef<typeof import('vue')['effectScope']>
+    readonly getActivePinia: UnwrapRef<typeof import('pinia')['getActivePinia']>
+    readonly getCurrentInstance: UnwrapRef<typeof import('vue')['getCurrentInstance']>
+    readonly getCurrentScope: UnwrapRef<typeof import('vue')['getCurrentScope']>
+    readonly h: UnwrapRef<typeof import('vue')['h']>
+    readonly inject: UnwrapRef<typeof import('vue')['inject']>
+    readonly isProxy: UnwrapRef<typeof import('vue')['isProxy']>
+    readonly isReactive: UnwrapRef<typeof import('vue')['isReactive']>
+    readonly isReadonly: UnwrapRef<typeof import('vue')['isReadonly']>
+    readonly isRef: UnwrapRef<typeof import('vue')['isRef']>
+    readonly mapActions: UnwrapRef<typeof import('pinia')['mapActions']>
+    readonly mapGetters: UnwrapRef<typeof import('pinia')['mapGetters']>
+    readonly mapState: UnwrapRef<typeof import('pinia')['mapState']>
+    readonly mapStores: UnwrapRef<typeof import('pinia')['mapStores']>
+    readonly mapWritableState: UnwrapRef<typeof import('pinia')['mapWritableState']>
+    readonly markRaw: UnwrapRef<typeof import('vue')['markRaw']>
+    readonly myClient: UnwrapRef<typeof import('./src/constants/query')['myClient']>
+    readonly nextTick: UnwrapRef<typeof import('vue')['nextTick']>
+    readonly onActivated: UnwrapRef<typeof import('vue')['onActivated']>
+    readonly onBeforeMount: UnwrapRef<typeof import('vue')['onBeforeMount']>
+    readonly onBeforeRouteLeave: UnwrapRef<typeof import('vue-router')['onBeforeRouteLeave']>
+    readonly onBeforeRouteUpdate: UnwrapRef<typeof import('vue-router')['onBeforeRouteUpdate']>
+    readonly onBeforeUnmount: UnwrapRef<typeof import('vue')['onBeforeUnmount']>
+    readonly onBeforeUpdate: UnwrapRef<typeof import('vue')['onBeforeUpdate']>
+    readonly onDeactivated: UnwrapRef<typeof import('vue')['onDeactivated']>
+    readonly onErrorCaptured: UnwrapRef<typeof import('vue')['onErrorCaptured']>
+    readonly onMounted: UnwrapRef<typeof import('vue')['onMounted']>
+    readonly onRenderTracked: UnwrapRef<typeof import('vue')['onRenderTracked']>
+    readonly onRenderTriggered: UnwrapRef<typeof import('vue')['onRenderTriggered']>
+    readonly onScopeDispose: UnwrapRef<typeof import('vue')['onScopeDispose']>
+    readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']>
+    readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']>
+    readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']>
+    readonly onWatcherCleanup: UnwrapRef<typeof import('vue')['onWatcherCleanup']>
+    readonly provide: UnwrapRef<typeof import('vue')['provide']>
+    readonly reactive: UnwrapRef<typeof import('vue')['reactive']>
+    readonly readonly: UnwrapRef<typeof import('vue')['readonly']>
+    readonly ref: UnwrapRef<typeof import('vue')['ref']>
+    readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
+    readonly setActivePinia: UnwrapRef<typeof import('pinia')['setActivePinia']>
+    readonly setMapStoreSuffix: UnwrapRef<typeof import('pinia')['setMapStoreSuffix']>
+    readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
+    readonly shallowReadonly: UnwrapRef<typeof import('vue')['shallowReadonly']>
+    readonly shallowRef: UnwrapRef<typeof import('vue')['shallowRef']>
+    readonly storeToRefs: UnwrapRef<typeof import('pinia')['storeToRefs']>
+    readonly toRaw: UnwrapRef<typeof import('vue')['toRaw']>
+    readonly toRef: UnwrapRef<typeof import('vue')['toRef']>
+    readonly toRefs: UnwrapRef<typeof import('vue')['toRefs']>
+    readonly toValue: UnwrapRef<typeof import('vue')['toValue']>
+    readonly triggerRef: UnwrapRef<typeof import('vue')['triggerRef']>
+    readonly unref: UnwrapRef<typeof import('vue')['unref']>
+    readonly useAccessLogin: UnwrapRef<typeof import('./src/hooks/access')['useAccessLogin']>
+    readonly useAccessPersonalInfo: UnwrapRef<typeof import('./src/hooks/access')['useAccessPersonalInfo']>
+    readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
+    readonly useAuth: UnwrapRef<typeof import('./src/hooks/user')['useAuth']>
+    readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
+    readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
+    readonly useGoLogin: UnwrapRef<typeof import('./src/hooks/user')['useGoLogin']>
+    readonly useId: UnwrapRef<typeof import('vue')['useId']>
+    readonly useIsLogin: UnwrapRef<typeof import('./src/hooks/user')['useIsLogin']>
+    readonly useLink: UnwrapRef<typeof import('vue-router')['useLink']>
+    readonly useLoginedJump: UnwrapRef<typeof import('./src/hooks/login')['useLoginedJump']>
+    readonly useModel: UnwrapRef<typeof import('vue')['useModel']>
+    readonly useMyCertificationAuditInfo: UnwrapRef<typeof import('./src/hooks/authentication')['useMyCertificationAuditInfo']>
+    readonly useRoute: UnwrapRef<typeof import('vue-router')['useRoute']>
+    readonly useRouter: UnwrapRef<typeof import('vue-router')['useRouter']>
+    readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
+    readonly useSwitchTab: UnwrapRef<typeof import('./src/hooks/router')['useSwitchTab']>
+    readonly useTaskList: UnwrapRef<typeof import('./src/hooks/task')['useTaskList']>
+    readonly useTemplateRef: UnwrapRef<typeof import('vue')['useTemplateRef']>
+    readonly useUser: UnwrapRef<typeof import('./src/hooks/user')['useUser']>
+    readonly watch: UnwrapRef<typeof import('vue')['watch']>
+    readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']>
+    readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']>
+    readonly watchSyncEffect: UnwrapRef<typeof import('vue')['watchSyncEffect']>
+  }
 }
diff --git a/apps/cMiniApp/config/dev.js b/apps/cMiniApp/config/dev.js
index 425d897..90b4816 100644
--- a/apps/cMiniApp/config/dev.js
+++ b/apps/cMiniApp/config/dev.js
@@ -3,7 +3,7 @@
 module.exports = {
   env: {
     NODE_ENV: '"development"',
-    BASE_URL: '"http://localhost:58190"',
+    BASE_URL: '"http://localhost:53780"',
     BASE_URL_JX: '"https://api.jx818.com"',
 
     OSS_URL: '"https://waterdroptest2.oss-cn-hangzhou.aliyuncs.com/"',
diff --git a/apps/cMiniApp/config/index.js b/apps/cMiniApp/config/index.js
index bb4c8db..2b2a217 100644
--- a/apps/cMiniApp/config/index.js
+++ b/apps/cMiniApp/config/index.js
@@ -111,7 +111,13 @@
 
       chain.plugin('unplugin-auto-import').use(
         AutoImport({
-          imports: ['vue', 'pinia', 'vue-router', { '@/constants': ['RouterPath'] }],
+          dirs: ['./src/constants/**', './src/hooks/**'],
+          // dirsScanOptions: {
+          //   fileFilter: (file) => file.endsWith('.ts'), // Filter files
+          //   types: true,
+          // },
+          vueTemplate: true,
+          imports: ['vue', 'pinia', 'vue-router'],
           eslintrc: {
             enabled: true, // Default `false`
             filepath: './.eslintrc-auto-import.json', // Default `./.eslintrc-auto-import.json`
diff --git a/apps/cMiniApp/project.config.json b/apps/cMiniApp/project.config.json
index cc53dd5..1d057ff 100644
--- a/apps/cMiniApp/project.config.json
+++ b/apps/cMiniApp/project.config.json
@@ -3,8 +3,8 @@
     "description": "",
     "setting": {
         "urlCheck": false,
-        "es6": false,
-        "enhance": false,
+        "es6": true,
+        "enhance": true,
         "postcss": false,
         "preloadBackgroundData": false,
         "minified": false,
diff --git a/apps/cMiniApp/src/constants/app.ts b/apps/cMiniApp/src/constants/app.ts
new file mode 100644
index 0000000..bcda41b
--- /dev/null
+++ b/apps/cMiniApp/src/constants/app.ts
@@ -0,0 +1,6 @@
+import { EnumUserType, EnumClientType } from '@12333/constants';
+
+export const AppLocalConfig = {
+  userType: EnumUserType.Operation,
+  clientType: EnumClientType.PcWeb,
+};
diff --git a/apps/cMiniApp/src/constants/index.ts b/apps/cMiniApp/src/constants/index.ts
index 0d96c63..935d9cf 100644
--- a/apps/cMiniApp/src/constants/index.ts
+++ b/apps/cMiniApp/src/constants/index.ts
@@ -3,3 +3,4 @@
 export * from './router';
 export * from './img';
 export * from './task';
+export * from './app';
diff --git a/apps/cMiniApp/src/stores/modules/user.ts b/apps/cMiniApp/src/stores/modules/user.ts
index d79256c..20364b5 100644
--- a/apps/cMiniApp/src/stores/modules/user.ts
+++ b/apps/cMiniApp/src/stores/modules/user.ts
@@ -8,9 +8,6 @@
   setUserDetail,
   getUserDetail,
   removeUserDetail,
-  removeMatchMakingIdentity,
-  getMatchMakingIdentity,
-  setMatchMakingIdentity,
 } from '@/utils/storage/auth';
 import * as accountServices from '@12333/services/api/Account';
 import * as userServices from '@12333/services/api/User';
@@ -24,14 +21,17 @@
   setOSSLink,
   getUserCertificationFrontStatusAdapter,
   LocationUtils,
+  md5Encrypt,
 } from '@12333/utils';
 import DefaultAvatar from '@/assets/components/icon-default-avatar.png';
 import { WxMiniAppEnum } from '@12333/constants';
 import { myClient } from '@/constants/query';
 import { globalEventEmitter } from '@12333/hooks';
+import * as authServices from '@12333/services/apiV2/auth';
+import { AppLocalConfig } from '@/constants';
 
 interface UserState {
-  userInfo?: Nullable<API.IdentityModelTokenCacheItem>;
+  userInfo?: Nullable<API.PasswordLoginCommandCallback>;
   token?: Nullable<string>;
   refreshToken?: Nullable<string>;
   userDetail?: Nullable<API.UserInfoV2>;
@@ -80,15 +80,6 @@
     };
   },
   getters: {
-    cacheToken: (state) => {
-      if (!state.token) {
-        const storageToken = getCacheToken() as API.IdentityModelTokenCacheItem;
-
-        state.token = storageToken.accessToken;
-      }
-      return state.token || null;
-    },
-
     cacheRefreshToken: (state) => {
       return state.refreshToken;
     },
@@ -96,10 +87,6 @@
     accountInfo(): Partial<AccountInfo> {
       return getAccountInfoFromAccessToken(this.userInfo?.accessToken);
     },
-
-    // matchMakingIdentity(state): MatchMakingIdentityEnum {
-
-    // },
   },
   actions: {
     // 鎵嬫満鍙锋巿鏉僀ode鐧诲綍
@@ -143,11 +130,13 @@
     },
 
     // 鐢ㄦ埛璐﹀彿瀵嗙爜鐧诲叆
-    async loginByPassword(data: API.AccessRequestDto) {
-      let res = await accountServices.passwordLogin(
+    async loginByPassword(params: API.PasswordLoginCommand) {
+      let res = await authServices.passwordLogin(
         {
-          loginName: data.userName,
-          password: data.userPassword,
+          userName: params.userName,
+          password: md5Encrypt(params.password),
+          type: AppLocalConfig.userType,
+          clientType: AppLocalConfig.clientType,
         },
         { showLoading: false }
       );
@@ -157,7 +146,7 @@
       return res;
     },
 
-    async loginSuccess(res: API.IdentityModelTokenCacheItem) {
+    async loginSuccess(res: API.PasswordLoginCommandCallback) {
       try {
         this.setUserInfoAction(res);
         this.setTokenAction(res);
@@ -200,24 +189,24 @@
       try {
         let res = await userServices.getUserInfo({ showLoading: false });
         if (res) {
-          res.frontStatus = getUserCertificationFrontStatusAdapter(
-            res.userCertificationStatus,
-            res.userCertificationAuditStatus
-          );
-          res.originalAvatarUrl = res.avatarUrl;
-          res.avatarUrl = res.avatarUrl ? setOSSLink(res.avatarUrl) : DefaultAvatar;
-          this.setUserDetail(res);
-          this.firstGetUserDetail = false;
+          // res.frontStatus = getUserCertificationFrontStatusAdapter(
+          //   res.userCertificationStatus,
+          //   res.userCertificationAuditStatus
+          // );
+          // res.originalAvatarUrl = res.avatarUrl;
+          // res.avatarUrl = res.avatarUrl ? setOSSLink(res.avatarUrl) : DefaultAvatar;
+          // this.setUserDetail(res);
+          // this.firstGetUserDetail = false;
         }
       } catch (error) {}
     },
 
-    setTokenAction(tokenInfo: API.IdentityModelTokenCacheItem) {
+    setTokenAction(tokenInfo: API.PasswordLoginCommandCallback) {
       this.token = tokenInfo?.accessToken;
       this.refreshToken = tokenInfo.refreshToken ?? '';
     },
 
-    setUserInfoAction(info: API.IdentityModelTokenCacheItem) {
+    setUserInfoAction(info: API.PasswordLoginCommandCallback) {
       this.userInfo = info;
       setUserInfo(info);
     },
@@ -234,7 +223,6 @@
       this.userDetail = null;
       removeUserInfo();
       removeUserDetail();
-      removeMatchMakingIdentity();
     },
 
     /**
@@ -268,23 +256,6 @@
         Taro.redirectTo({
           url: `/packageLogin/authLogin/index`,
         });
-      }
-    },
-
-    async getTokenByRefreshToken(params: API.AccessRefreshToken) {
-      try {
-        const res = await accountServices.getTokenByRefreshToken(params, {
-          showLoading: false,
-        });
-        if (res) {
-          this.setTokenAction(res);
-          this.setUserInfoAction(res);
-          return res;
-        } else {
-          throw new Error('鍒锋柊token澶辫触');
-        }
-      } catch (error) {
-        throw new Error('error');
       }
     },
 
diff --git a/apps/cMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue b/apps/cMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
index be5996e..3499730 100644
--- a/apps/cMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
+++ b/apps/cMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
@@ -77,7 +77,7 @@
         form.loading = true;
         await userStore.loginByPassword({
           userName: form.userName,
-          userPassword: form.userPassword,
+          password: form.userPassword,
         });
         jump();
       }
diff --git a/apps/cMiniApp/src/utils/request/index.ts b/apps/cMiniApp/src/utils/request/index.ts
index 0693296..339d938 100644
--- a/apps/cMiniApp/src/utils/request/index.ts
+++ b/apps/cMiniApp/src/utils/request/index.ts
@@ -4,7 +4,6 @@
 import Taro from '@tarojs/taro';
 import { getToken } from '@/utils';
 import { tokenIsExpired, Message, SensitiveManage } from '@12333/utils';
-import * as accountServices from '@12333/services/api/Account';
 import { useUserStoreWithOut } from '@/stores/modules/user';
 
 const RefreshTokenUrl = '/gettokenbyrefreshtoken';
@@ -51,9 +50,13 @@
   success: boolean;
   data: any;
   /**
+   * http鐘舵�佸悧
+   */
+  code?: number;
+  /**
    * 閿欒鐮�
    */
-  error?: number;
+  errorCode?: string;
   /**
    * 閿欒淇℃伅
    */
@@ -150,7 +153,7 @@
 
     // 閿欒鎶涘嚭
     errorThrower: (res) => {
-      const { success, data, error: errorCode, msg, showType } = res;
+      const { success, data, errorCode, msg, showType } = res;
       if (!success) {
         const error: any = new Error(msg);
         error.name = 'BizError';
@@ -190,34 +193,9 @@
 
         return new Promise((resolve, reject) => {
           if (userInfo && token && $config.withCredentials) {
-            if (tokenIsExpired(userInfo)) {
-              if (!Request.refreshTokenPending) {
-                Request.refreshTokenPending = true;
-                // token杩囨湡鍒锋柊
-                useUserStoreWithOut()
-                  .getTokenByRefreshToken({
-                    refreshToken: userInfo.refreshToken,
-                    clientId: userStore.accountInfo?.client_id,
-                  })
-                  .then((res) => {
-                    $config.headers['Authorization'] = 'Bearer ' + res.accessToken;
-                    Request.requests.forEach((cb) => cb(res.accessToken));
-                    Request.requests = [];
-                  })
-                  .catch((err) => {
-                    Request.requests.forEach((cb) => cb());
-                    Request.requests = [];
-                    reject(err);
-                  })
-                  .finally(() => {
-                    Request.refreshTokenPending = false;
-                  });
-              }
-              resolve(Request.retryOriginalRequest($config));
-            } else {
-              $config.headers['Authorization'] = 'Bearer ' + token;
-              resolve($config);
-            }
+            $config.headers['Authorization'] = 'Bearer ' + userInfo.accessToken;
+            $config.headers['X-Authorization'] = 'Bearer ' + userInfo.refreshToken;
+            resolve($config);
           } else {
             resolve($config);
           }
@@ -236,11 +214,20 @@
 
         const { needNProcess, getResponse = false } = $config;
 
+        const userStore = useUserStoreWithOut();
+
+        if (response.headers['x-access-token']) {
+          const tokenInfo: API.PasswordLoginCommandCallback = {
+            accessToken: response.headers['access-token'],
+            refreshToken: response.headers['x-access-token'],
+          };
+          userStore.setTokenAction(tokenInfo);
+          userStore.setUserInfoAction(tokenInfo);
+        }
+
         endLoading();
 
-        return getResponse
-          ? response
-          : SensitiveManage.filterSensitiveWord((response.data as any).result);
+        return getResponse ? response : SensitiveManage.filterSensitiveWord(response.data.data);
       },
       (error) => {
         endLoading();
diff --git a/apps/cMiniApp/src/utils/storage/auth.ts b/apps/cMiniApp/src/utils/storage/auth.ts
index b2bbb8f..d7ca87d 100644
--- a/apps/cMiniApp/src/utils/storage/auth.ts
+++ b/apps/cMiniApp/src/utils/storage/auth.ts
@@ -1,6 +1,5 @@
 import { storageLocal } from './storage';
 import { useUserStoreWithOut } from '@/stores/modules/user';
-import { MatchMakingIdentityEnum } from '@12333/constants';
 
 const StorageKey = {
   USER_INFO_KEY: 'USER__INFO__',
@@ -18,10 +17,10 @@
 }
 
 export function getUserInfo() {
-  return storageLocal.getItem<API.IdentityModelTokenCacheItem>(StorageKey.USER_INFO_KEY);
+  return storageLocal.getItem<API.PasswordLoginCommandCallback>(StorageKey.USER_INFO_KEY);
 }
 
-export function setUserInfo(userInfo: API.IdentityModelTokenCacheItem) {
+export function setUserInfo(userInfo: API.PasswordLoginCommandCallback) {
   return storageLocal.setItem(StorageKey.USER_INFO_KEY, userInfo);
 }
 
@@ -39,18 +38,6 @@
 
 export function removeUserDetail() {
   return storageLocal.removeItem(StorageKey.USER_DETAIL_KEY);
-}
-
-export function getMatchMakingIdentity() {
-  return storageLocal.getItem<MatchMakingIdentityEnum>(StorageKey.MatchMakingIdentity_KEY);
-}
-
-export function setMatchMakingIdentity(matchMakingIdentity: MatchMakingIdentityEnum) {
-  return storageLocal.setItem(StorageKey.MatchMakingIdentity_KEY, matchMakingIdentity);
-}
-
-export function removeMatchMakingIdentity() {
-  return storageLocal.removeItem(StorageKey.MatchMakingIdentity_KEY);
 }
 
 type StorageLocation = {
diff --git a/apps/cMiniApp/tsconfig.json b/apps/cMiniApp/tsconfig.json
index 231b16a..124fefc 100644
--- a/apps/cMiniApp/tsconfig.json
+++ b/apps/cMiniApp/tsconfig.json
@@ -11,6 +11,7 @@
     "types": [
       "node",
       "@12333/services/api/typings.d.ts",
+      "@12333/services/apiV2/typings.d.ts",
       "@12333/services/types.d.ts",
       "@12333/services/globalType.d.ts",
       "@tarojs/components/vue3"
diff --git a/config/openapi.json b/config/openapi.json
index 6cd2151..f155669 100644
--- a/config/openapi.json
+++ b/config/openapi.json
@@ -2,8 +2,11 @@
   "config": [
     {
       "requestLibPath": "import { request } from '@/utils/request'",
-      "schemaPath": "http://localhost:58190/swagger/v1/swagger.json",
-      "serversPath": "./packages/services"
+      "schemaPath": "http://localhost:53780/swagger/Default/swagger.json",
+      "serversPath": "./packages/services",
+      "enumStyle": "enum",
+      "projectName": "apiV2",
+      "enumFilePath": "../../../packages/constants/apiEnum.ts"
     }
   ]
 }
diff --git a/packages/constants/apiEnum.ts b/packages/constants/apiEnum.ts
new file mode 100644
index 0000000..8069622
--- /dev/null
+++ b/packages/constants/apiEnum.ts
@@ -0,0 +1,106 @@
+/* eslint-disable */
+// @ts-ignore
+
+/** 瀹㈡埛绔被鍨� */
+export enum EnumClientType {
+  /**鐢佃剳缃戦〉 */
+  PcWeb = 10,
+  /**寰俊灏忕▼搴� */
+  Wxmp = 20,
+}
+
+/** 鑿滃崟绫诲瀷 */
+export enum EnumMenuType {
+  /**鑿滃崟 */
+  Menu = 10,
+  /**椤甸潰 */
+  Page = 20,
+  /**妯℃�佹 */
+  Modal = 30,
+  /**鎸夐挳 */
+  Button = 40,
+  /**瀛楁 */
+  Field = 50,
+}
+
+/** 鏉冮檺璁块棶绾у埆 */
+export enum EnumMenuVisitLevel {
+  /**鎵�鏈変汉 */
+  Everyone = 10,
+  /**闇�瑕佺櫥褰� */
+  NeedLogin = 20,
+  /**闇�瑕佹潈闄� */
+  NeedPower = 30,
+}
+
+/** 鍒嗛〉鍒楄〃鎺掑簭 */
+export enum EnumPagedListOrder {
+  /**鍗囧簭 */
+  Asc = 0,
+  /**闄嶅簭 */
+  Desc = 1,
+}
+
+/** 璧勬簮鎺у埗鍣� */
+export enum EnumResourceController {
+  /**鏁版嵁瀛楀吀 */
+  Dictionary = 0,
+  /**鐢ㄦ埛璁よ瘉 */
+  Auth = 1,
+  /**鐢ㄦ埛鑿滃崟 */
+  Menu = 2,
+  /**鐢ㄦ埛璧勬簮 */
+  Resource = 3,
+  /**鐢ㄦ埛瑙掕壊 */
+  Role = 4,
+  /**鐢ㄦ埛淇℃伅 */
+  UserInfo = 5,
+  /**浼佷笟淇℃伅 */
+  Enterprise = 6,
+}
+
+/** 璧勬簮璇锋眰鏂瑰紡 */
+export enum EnumResourceMethod {
+  /**鏌ヨ */
+  Get = 10,
+  /**鎻愪氦 */
+  Post = 20,
+  /**淇敼 */
+  Put = 30,
+  /**鍒犻櫎 */
+  Delete = 40,
+}
+
+/** 瑙掕壊鎺ュ彛鏁版嵁鏉冮檺 */
+export enum EnumRoleWebApiDataPower {
+  /**鑷畾涔� */
+  Custom = 1,
+  /**鏌ヨ涓汉鍒涘缓鏁版嵁 */
+  Creator = 10,
+  /**鏌ヨ褰撳墠閮ㄩ棬鏁版嵁 */
+  CurrentDepartment = 20,
+  /**鏌ヨ褰撳墠鍙婁笅绾ч儴闂ㄦ暟鎹� */
+  NestingDepartment = 21,
+  /**鏌ヨ褰撳墠浼佷笟鎵�鏈夋暟鎹� */
+  CurrentEnterprise = 30,
+  /**鏌ヨ鎵�鏈� */
+  All = 999,
+}
+
+/** 鐢ㄦ埛淇℃伅鐘舵�� */
+export enum EnumUserInfoStatus {
+  /**姝e父 */
+  Normal = 10,
+  /**绂佺敤 */
+  Disabled = 100,
+}
+
+/** 鐢ㄦ埛绫诲瀷 */
+export enum EnumUserType {
+  /**涓汉 */
+  Personal = 10,
+  /**浼佷笟 */
+  Enterprise = 20,
+  /**杩愯惀 */
+  Operation = 100,
+}
diff --git a/packages/constants/index.ts b/packages/constants/index.ts
index 4ba4a42..d1151ce 100644
--- a/packages/constants/index.ts
+++ b/packages/constants/index.ts
@@ -12,3 +12,4 @@
 export * from './authenticationV2';
 export * from './parkOrHR';
 export * from './task';
+export * from './apiEnum';
diff --git a/packages/services/apiV2/auth.ts b/packages/services/apiV2/auth.ts
new file mode 100644
index 0000000..db28f67
--- /dev/null
+++ b/packages/services/apiV2/auth.ts
@@ -0,0 +1,49 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 鑾峰彇闃块噷浜慜SS鎺堟潈淇℃伅 GET /api/user/auth/getAliyunOSSAcs */
+export async function getAliyunOSSAcs(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetAliyunOSSAcsParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetAliyunOSSAcsQueryResult>('/api/user/auth/getAliyunOSSAcs', {
+    method: 'GET',
+    params: {
+      ...params,
+      request: undefined,
+      ...params['request'],
+    },
+    ...(options || {}),
+  });
+}
+
+/** 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛鑿滃崟 GET /api/user/auth/getCurrentLogierMenus */
+export async function getCurrentLogierMenus(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetCurrentLogierMenusParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetMenusQueryResultItem[]>('/api/user/auth/getCurrentLogierMenus', {
+    method: 'GET',
+    params: {
+      ...params,
+      request: undefined,
+      ...params['request'],
+    },
+    ...(options || {}),
+  });
+}
+
+/** 瀵嗙爜鐧诲綍 POST /api/user/auth/passwordLogin */
+export async function passwordLogin(body: API.PasswordLoginCommand, options?: API.RequestConfig) {
+  return request<API.PasswordLoginCommandCallback>('/api/user/auth/passwordLogin', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
diff --git a/packages/services/apiV2/dictionary.ts b/packages/services/apiV2/dictionary.ts
new file mode 100644
index 0000000..26f00b9
--- /dev/null
+++ b/packages/services/apiV2/dictionary.ts
@@ -0,0 +1,99 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 鍒犻櫎瀛楀吀绫诲埆 DELETE /api/main/dictionary/deleteDictionaryCategory */
+export async function deleteDictionaryCategory(
+  body: API.DeleteDictionaryCategoryCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/main/dictionary/deleteDictionaryCategory', {
+    method: 'DELETE',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ瀛楀吀绫诲埆鍒嗛〉鍒楄〃鏁版嵁 POST /api/main/dictionary/getDictionaryCategories */
+export async function getDictionaryCategories(
+  body: API.GetDictionaryCategoriesQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.PagedListQueryResultGetDictionaryCategoriesQueryResultItem>(
+    '/api/main/dictionary/getDictionaryCategories',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鑾峰彇瀛楀吀鏁版嵁鍒嗛〉鍒楄〃 POST /api/main/dictionary/getDictionaryDatas */
+export async function getDictionaryDatas(
+  body: API.GetDictionaryDatasQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.PagedListQueryResultGetDictionaryDatasQueryResultItem>(
+    '/api/main/dictionary/getDictionaryDatas',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 淇濆瓨瀛楀吀绫诲埆 POST /api/main/dictionary/saveDictionaryCategory */
+export async function saveDictionaryCategory(
+  body: API.SaveDictionaryCategoryCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/main/dictionary/saveDictionaryCategory', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 淇濆瓨瀛楀吀鏁版嵁 POST /api/main/dictionary/saveDictionaryData */
+export async function saveDictionaryData(
+  body: API.SaveDictionaryDataCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/main/dictionary/saveDictionaryData', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 璁剧疆瀛楀吀鏁版嵁鏄惁绂佺敤 PUT /api/main/dictionary/setDictionaryDataIsDisabled */
+export async function setDictionaryDataIsDisabled(
+  body: API.SetDictionaryDataIsDisabledCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/main/dictionary/setDictionaryDataIsDisabled', {
+    method: 'PUT',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
diff --git a/packages/services/apiV2/enterprise.ts b/packages/services/apiV2/enterprise.ts
new file mode 100644
index 0000000..820738d
--- /dev/null
+++ b/packages/services/apiV2/enterprise.ts
@@ -0,0 +1,18 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 鏌ヨ浼佷笟淇℃伅鍒嗛〉鍒楄〃鏁版嵁 POST /api/user/enterprise/getEnterprises */
+export async function getEnterprises(body: API.GetEnterprisesQuery, options?: API.RequestConfig) {
+  return request<API.PagedListQueryResultGetEnterprisesQueryResultItem>(
+    '/api/user/enterprise/getEnterprises',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
diff --git a/packages/services/apiV2/index.ts b/packages/services/apiV2/index.ts
new file mode 100644
index 0000000..7edc9e1
--- /dev/null
+++ b/packages/services/apiV2/index.ts
@@ -0,0 +1,20 @@
+// @ts-ignore
+/* eslint-disable */
+// API 鏇存柊鏃堕棿锛�
+// API 鍞竴鏍囪瘑锛�
+import * as dictionary from './dictionary';
+import * as auth from './auth';
+import * as enterprise from './enterprise';
+import * as menu from './menu';
+import * as resource from './resource';
+import * as role from './role';
+import * as userInfo from './userInfo';
+export default {
+  dictionary,
+  auth,
+  enterprise,
+  menu,
+  resource,
+  role,
+  userInfo,
+};
diff --git a/packages/services/apiV2/menu.ts b/packages/services/apiV2/menu.ts
new file mode 100644
index 0000000..c0caa44
--- /dev/null
+++ b/packages/services/apiV2/menu.ts
@@ -0,0 +1,93 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 鍒犻櫎鑿滃崟 DELETE /api/user/menu/deleteMenu */
+export async function deleteMenu(body: API.DeleteMenuCommand, options?: API.RequestConfig) {
+  return request<number>('/api/user/menu/deleteMenu', {
+    method: 'DELETE',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ鑿滃崟璇︽儏 GET /api/user/menu/getMenu */
+export async function getMenu(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetMenuParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetMenuQueryResult>('/api/user/menu/getMenu', {
+    method: 'GET',
+    params: {
+      ...params,
+    },
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ鑿滃崟鍒楄〃 GET /api/user/menu/getMenus */
+export async function getMenus(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetMenusParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetMenusQueryResultItem[]>('/api/user/menu/getMenus', {
+    method: 'GET',
+    params: {
+      ...params,
+    },
+    ...(options || {}),
+  });
+}
+
+/** 淇濆瓨鑿滃崟 POST /api/user/menu/saveMenu */
+export async function saveMenu(body: API.SaveMenuCommand, options?: API.RequestConfig) {
+  return request<string>('/api/user/menu/saveMenu', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 淇濆瓨鑿滃崟鎸夐挳 POST /api/user/menu/saveMenuButton */
+export async function saveMenuButton(body: API.SaveMenuButtonCommand, options?: API.RequestConfig) {
+  return request<string>('/api/user/menu/saveMenuButton', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 淇濆瓨鑿滃崟瀛楁 POST /api/user/menu/saveMenuField */
+export async function saveMenuField(body: API.SaveMenuFieldCommand, options?: API.RequestConfig) {
+  return request<string>('/api/user/menu/saveMenuField', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 璁剧疆鑿滃崟鍒囨崲淇℃伅 PUT /api/user/menu/setMenuSwitch */
+export async function setMenuSwitch(body: API.SetMenuSwitchCommand, options?: API.RequestConfig) {
+  return request<number>('/api/user/menu/setMenuSwitch', {
+    method: 'PUT',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
diff --git a/packages/services/apiV2/resource.ts b/packages/services/apiV2/resource.ts
new file mode 100644
index 0000000..dc3ef94
--- /dev/null
+++ b/packages/services/apiV2/resource.ts
@@ -0,0 +1,33 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 鑾峰彇璧勬簮瀛楁 GET /api/user/resource/getResourceFields */
+export async function getResourceFields(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetResourceFieldsParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetResourceFieldsQueryResultItem[]>('/api/user/resource/getResourceFields', {
+    method: 'GET',
+    params: {
+      ...params,
+    },
+    ...(options || {}),
+  });
+}
+
+/** 鑾峰彇璧勬簮鍒楄〃 GET /api/user/resource/getResources */
+export async function getResources(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetResourcesParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetResourcesQueryResultItem[]>('/api/user/resource/getResources', {
+    method: 'GET',
+    params: {
+      ...params,
+    },
+    ...(options || {}),
+  });
+}
diff --git a/packages/services/apiV2/role.ts b/packages/services/apiV2/role.ts
new file mode 100644
index 0000000..1ed081d
--- /dev/null
+++ b/packages/services/apiV2/role.ts
@@ -0,0 +1,99 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 鍒犻櫎瑙掕壊 DELETE /api/user/role/deleteRole */
+export async function deleteRole(body: API.DeleteRoleCommand, options?: API.RequestConfig) {
+  return request<number>('/api/user/role/deleteRole', {
+    method: 'DELETE',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ瑙掕壊璇︽儏 GET /api/user/role/getRole */
+export async function getRole(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetRoleParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetRoleQueryResult>('/api/user/role/getRole', {
+    method: 'GET',
+    params: {
+      ...params,
+    },
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ瑙掕壊鍒嗛〉鍒楄〃 POST /api/user/role/getRoles */
+export async function getRoles(body: API.GetRolesQuery, options?: API.RequestConfig) {
+  return request<API.PagedListQueryResultGetRolesQueryResultItem>('/api/user/role/getRoles', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ瑙掕壊鐢ㄦ埛鍒楄〃 GET /api/user/role/getRoleUserInfos */
+export async function getRoleUserInfos(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetRoleUserInfosParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetRoleUserInfosQueryResultItem[]>('/api/user/role/getRoleUserInfos', {
+    method: 'GET',
+    params: {
+      ...params,
+    },
+    ...(options || {}),
+  });
+}
+
+/** 淇濆瓨瑙掕壊 POST /api/user/role/saveRole */
+export async function saveRole(body: API.SaveRoleCommand, options?: API.RequestConfig) {
+  return request<string>('/api/user/role/saveRole', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 璁剧疆瑙掕壊鏄惁绂佺敤 PUT /api/user/role/setRoleIsDisabled */
+export async function setRoleIsDisabled(
+  body: API.SetRoleIsDisabledCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/user/role/setRoleIsDisabled', {
+    method: 'PUT',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 璁剧疆瑙掕壊鐢ㄦ埛 PUT /api/user/role/setRoleUserInfos */
+export async function setRoleUserInfos(
+  body: API.SetRoleUserInfosCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/user/role/setRoleUserInfos', {
+    method: 'PUT',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts
new file mode 100644
index 0000000..52f8a9d
--- /dev/null
+++ b/packages/services/apiV2/typings.d.ts
@@ -0,0 +1,1101 @@
+declare namespace API {
+  interface RequestConfig {
+    [key: string]: any;
+  }
+
+  interface APIgetAliyunOSSAcsParams {
+    /** 鑾峰彇闃块噷浜慜SS鎺堟潈淇℃伅 */
+    request?: GetAliyunOSSAcsQuery;
+  }
+
+  interface APIgetCurrentLogierMenusParams {
+    /** 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛鑿滃崟 */
+    request?: GetCurrentLogierMenusQuery;
+  }
+
+  interface APIgetMenuParams {
+    /** Id */
+    id?: string;
+    /** 瑙掕壊Id */
+    roleId?: string;
+  }
+
+  interface APIgetMenusParams {
+    /** 鐢ㄦ埛绫诲瀷 */
+    userType?: EnumUserType;
+    /** 瀹㈡埛绔被鍨� */
+    clientType?: EnumClientType;
+    /** 瑙掕壊Id */
+    roleId?: string;
+  }
+
+  interface APIgetResourceFieldsParams {
+    /** Id */
+    id?: string;
+  }
+
+  interface APIgetResourcesParams {
+    /** 璇锋眰鏂瑰紡 */
+    method?: EnumResourceMethod;
+    /** 鍏抽敭瀛� */
+    keywords?: string;
+    /** 瑙掕壊Id */
+    roleId?: string;
+  }
+
+  interface APIgetRoleParams {
+    /** Id */
+    id?: string;
+  }
+
+  interface APIgetRoleUserInfosParams {
+    /** 瑙掕壊Id */
+    roleId?: string;
+  }
+
+  interface APIgetUserInfoRolesParams {
+    /** 鐢ㄦ埛Id */
+    userInfoId?: string;
+    /** 瀹㈡埛绔被鍨� */
+    clientType?: EnumClientType;
+  }
+
+  interface DeleteDictionaryCategoryCommand {
+    ids: string[];
+  }
+
+  interface DeleteMenuCommand {
+    ids: string[];
+  }
+
+  interface DeleteRoleCommand {
+    ids: string[];
+  }
+
+  enum EnumClientType {
+    /**鐢佃剳缃戦〉 */
+    PcWeb = 10,
+    /**寰俊灏忕▼搴� */
+    Wxmp = 20,
+  }
+
+  enum EnumMenuType {
+    /**鑿滃崟 */
+    Menu = 10,
+    /**椤甸潰 */
+    Page = 20,
+    /**妯℃�佹 */
+    Modal = 30,
+    /**鎸夐挳 */
+    Button = 40,
+    /**瀛楁 */
+    Field = 50,
+  }
+
+  enum EnumMenuVisitLevel {
+    /**鎵�鏈変汉 */
+    Everyone = 10,
+    /**闇�瑕佺櫥褰� */
+    NeedLogin = 20,
+    /**闇�瑕佹潈闄� */
+    NeedPower = 30,
+  }
+
+  enum EnumPagedListOrder {
+    /**鍗囧簭 */
+    Asc = 0,
+    /**闄嶅簭 */
+    Desc = 1,
+  }
+
+  enum EnumResourceController {
+    /**鏁版嵁瀛楀吀 */
+    Dictionary = 0,
+    /**鐢ㄦ埛璁よ瘉 */
+    Auth = 1,
+    /**鐢ㄦ埛鑿滃崟 */
+    Menu = 2,
+    /**鐢ㄦ埛璧勬簮 */
+    Resource = 3,
+    /**鐢ㄦ埛瑙掕壊 */
+    Role = 4,
+    /**鐢ㄦ埛淇℃伅 */
+    UserInfo = 5,
+    /**浼佷笟淇℃伅 */
+    Enterprise = 6,
+  }
+
+  enum EnumResourceMethod {
+    /**鏌ヨ */
+    Get = 10,
+    /**鎻愪氦 */
+    Post = 20,
+    /**淇敼 */
+    Put = 30,
+    /**鍒犻櫎 */
+    Delete = 40,
+  }
+
+  enum EnumRoleWebApiDataPower {
+    /**鑷畾涔� */
+    Custom = 1,
+    /**鏌ヨ涓汉鍒涘缓鏁版嵁 */
+    Creator = 10,
+    /**鏌ヨ褰撳墠閮ㄩ棬鏁版嵁 */
+    CurrentDepartment = 20,
+    /**鏌ヨ褰撳墠鍙婁笅绾ч儴闂ㄦ暟鎹� */
+    NestingDepartment = 21,
+    /**鏌ヨ褰撳墠浼佷笟鎵�鏈夋暟鎹� */
+    CurrentEnterprise = 30,
+    /**鏌ヨ鎵�鏈� */
+    All = 999,
+  }
+
+  enum EnumUserInfoStatus {
+    /**姝e父 */
+    Normal = 10,
+    /**绂佺敤 */
+    Disabled = 100,
+  }
+
+  enum EnumUserType {
+    /**涓汉 */
+    Personal = 10,
+    /**浼佷笟 */
+    Enterprise = 20,
+    /**杩愯惀 */
+    Operation = 100,
+  }
+
+  interface FriendlyResultGetAliyunOSSAcsQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetAliyunOSSAcsQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetMenuQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetMenuQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetRoleQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetRoleQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGuid {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    /** 鏁版嵁 */
+    data?: string;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultInt32 {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    /** 鏁版嵁 */
+    data?: number;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultListGetMenusQueryResultItem {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    /** 鏁版嵁 */
+    data?: GetMenusQueryResultItem[];
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultListGetResourceFieldsQueryResultItem {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    /** 鏁版嵁 */
+    data?: GetResourceFieldsQueryResultItem[];
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultListGetResourcesQueryResultItem {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    /** 鏁版嵁 */
+    data?: GetResourcesQueryResultItem[];
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultListGetRoleUserInfosQueryResultItem {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    /** 鏁版嵁 */
+    data?: GetRoleUserInfosQueryResultItem[];
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultListGetUserInfoRolesQueryResultItem {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    /** 鏁版嵁 */
+    data?: GetUserInfoRolesQueryResultItem[];
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultPagedListQueryResultGetDictionaryCategoriesQueryResultItem {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: PagedListQueryResultGetDictionaryCategoriesQueryResultItem;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultPagedListQueryResultGetDictionaryDatasQueryResultItem {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: PagedListQueryResultGetDictionaryDatasQueryResultItem;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultPagedListQueryResultGetEnterprisesQueryResultItem {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: PagedListQueryResultGetEnterprisesQueryResultItem;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultPagedListQueryResultGetOperationUserInfosQueryResultItem {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: PagedListQueryResultGetOperationUserInfosQueryResultItem;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultPagedListQueryResultGetRolesQueryResultItem {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: PagedListQueryResultGetRolesQueryResultItem;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultPasswordLoginCommandCallback {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: PasswordLoginCommandCallback;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  type GetAliyunOSSAcsQuery = Record<string, any>;
+
+  interface GetAliyunOSSAcsQueryResult {
+    expiration?: string;
+    ossAccessSecret?: string;
+    ossAccessKeyId?: string;
+    securityToken?: string;
+    requestId?: string;
+  }
+
+  type GetCurrentLogierMenusQuery = Record<string, any>;
+
+  interface GetDictionaryCategoriesQuery {
+    pageModel?: PagedListQueryPageModel;
+    /** 鍏抽敭瀛� */
+    keywords?: string;
+  }
+
+  interface GetDictionaryCategoriesQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 缂栧彿 */
+    code?: string;
+    /** 鍚嶇О */
+    name?: string;
+    /** 瀛楁鍚嶏紙閫楀彿闅斿紑锛� */
+    fieldNames?: string;
+    /** 鎺掑簭 */
+    sort?: number;
+  }
+
+  interface GetDictionaryDatasQuery {
+    pageModel?: PagedListQueryPageModel;
+    /** 绫诲埆Id */
+    categoryId?: string;
+    /** 鍏抽敭瀛� */
+    keywords?: string;
+  }
+
+  interface GetDictionaryDatasQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 绫诲埆Id */
+    categoryId?: string;
+    /** 涓婄骇Id */
+    parentId?: string;
+    /** 缂栧彿 */
+    code?: string;
+    /** 鏄剧ず鍐呭 */
+    content: string;
+    /** 瀛楁1 */
+    field1?: string;
+    /** 瀛楁2 */
+    field2?: string;
+    /** 瀛楁3 */
+    field3?: string;
+    /** 瀛楁4 */
+    field4?: string;
+    /** 瀛楁5 */
+    field5?: string;
+    /** 鎺掑簭 */
+    sort?: number;
+    /** 鏄惁绂佺敤 */
+    isDisabled?: boolean;
+  }
+
+  interface GetEnterprisesQuery {
+    pageModel?: PagedListQueryPageModel;
+    /** 鍏抽敭瀛� */
+    keywords?: string;
+    /** 鏄惁宸查厤缃� */
+    isConfigured?: boolean;
+  }
+
+  interface GetEnterprisesQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 浼佷笟鍏ㄧО */
+    enterpriseName?: string;
+    /** 娉曚汉濮撳悕 */
+    legalPerson?: string;
+    /** 缁熶竴绀句細淇$敤浠g爜 */
+    societyCreditCode?: string;
+    /** 鑱旂郴浜� */
+    contacts?: string;
+    /** 鑱旂郴鐢佃瘽 */
+    contactNumber?: string;
+  }
+
+  interface GetMenuQueryResult {
+    /** Id */
+    id?: string;
+    /** 鏄惁閫夋嫨锛堢敤鎴疯鑹叉巿鏉冿級 */
+    isChecked?: boolean;
+    userType?: EnumUserType;
+    clientType?: EnumClientType;
+    /** 涓婄骇Id */
+    parentId?: string;
+    /** 鑿滃崟璺緞 */
+    path?: string;
+    /** 缂栧彿 */
+    code?: string;
+    /** 鍚嶇О */
+    name?: string;
+    type?: EnumMenuType;
+    visitLevel?: EnumMenuVisitLevel;
+    /** 鍥炬爣 */
+    icon?: string;
+    /** 閾炬帴鍦板潃 */
+    url?: string;
+    /** 鏄惁绂佺敤 */
+    isDisabled?: boolean;
+    /** 鏄惁缂撳瓨 */
+    isCache?: boolean;
+    /** 鎺掑簭 */
+    sort?: number;
+    /** 澶囨敞 */
+    remark?: string;
+    /** 鍒嗙粍 */
+    groups?: GetMenuQueryResultGroup[];
+  }
+
+  interface GetMenuQueryResultButton {
+    /** Id */
+    id?: string;
+    /** 鏄惁閫夋嫨锛堢敤鎴疯鑹叉巿鏉冿級 */
+    isChecked?: boolean;
+    /** 缂栧彿 */
+    code?: string;
+    /** 鍚嶇О */
+    name?: string;
+    /** 鍥炬爣 */
+    icon?: string;
+    /** 瀹藉害锛堢敤浜庢寜閽�/鍒�/鍏冪礌锛� */
+    width?: string;
+    /** 鎺掑簭 */
+    sort?: number;
+    /** 澶囨敞 */
+    remark?: string;
+  }
+
+  interface GetMenuQueryResultButtonLocation {
+    /** 浣嶇疆锛堢敤浜庢寜閽級 */
+    location?: string;
+    /** 鎸夐挳 */
+    buttons?: GetMenuQueryResultButton[];
+  }
+
+  interface GetMenuQueryResultField {
+    /** Id */
+    id?: string;
+    /** 鏄惁閫夋嫨锛堢敤鎴疯鑹叉巿鏉冿級 */
+    isChecked?: boolean;
+    /** 缂栧彿 */
+    code?: string;
+    /** 鍚嶇О */
+    name?: string;
+    /** 瀹藉害锛堢敤浜庢寜閽�/鍒�/鍏冪礌锛� */
+    width?: string;
+    /** 鎺掑簭 */
+    sort?: number;
+    /** 澶囨敞 */
+    remark?: string;
+  }
+
+  interface GetMenuQueryResultGroup {
+    /** 鍒嗙粍鍚嶇О锛堢敤浜庢寜閽�/瀛楁锛� */
+    group?: string;
+    /** 鎸夐挳浣嶇疆 */
+    buttonLocations?: GetMenuQueryResultButtonLocation[];
+    /** 瀛楁 */
+    fields?: GetMenuQueryResultField[];
+  }
+
+  interface GetMenusQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 鏄惁閫夋嫨锛堢敤鎴疯鑹叉巿鏉冿級 */
+    isChecked?: boolean;
+    /** 涓婄骇Id */
+    parentId?: string;
+    /** 涓嬬骇 */
+    children?: GetMenusQueryResultItem[];
+    /** 缂栧彿 */
+    code?: string;
+    /** 鍚嶇О */
+    name?: string;
+    /** 鑿滃崟璺緞 */
+    path?: string;
+    type?: EnumMenuType;
+    visitLevel?: EnumMenuVisitLevel;
+    /** 鍥炬爣 */
+    icon?: string;
+    /** 閾炬帴鍦板潃 */
+    url?: string;
+    /** 鏄惁绂佺敤 */
+    isDisabled?: boolean;
+    /** 鏄惁缂撳瓨 */
+    isCache?: boolean;
+    /** 鎺掑簭 */
+    sort?: number;
+    /** 澶囨敞 */
+    remark?: string;
+  }
+
+  interface GetOperationUserInfosQuery {
+    pageModel?: PagedListQueryPageModel;
+    /** 鍏抽敭瀛� */
+    keywords?: string;
+  }
+
+  interface GetOperationUserInfosQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 濮撳悕 */
+    name?: string;
+    /** 鐢ㄦ埛鍚� */
+    userName?: string;
+    /** 鎵嬫満鍙� */
+    phoneNumber?: string;
+    /** 澶囨敞 */
+    remark?: string;
+    /** 瑙掕壊 */
+    roles?: GetOperationUserInfosQueryResultItemRole[];
+    status?: EnumUserInfoStatus;
+  }
+
+  interface GetOperationUserInfosQueryResultItemRole {
+    /** 鐢ㄦ埛Id */
+    userInfoId?: string;
+    /** 瑙掕壊Id */
+    id?: string;
+    /** 鍚嶇О */
+    name?: string;
+  }
+
+  interface GetResourceFieldsQueryResultItem {
+    /** 缂栧彿 */
+    code?: string;
+    /** 鍚嶇О */
+    name?: string;
+  }
+
+  interface GetResourcesQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 鏄惁閫変腑锛堢敤浜庤鑹叉巿鏉冿級 */
+    isChecked?: boolean;
+    controller?: EnumResourceController;
+    /** 濮旀墭鍚嶇О */
+    actionName?: string;
+    /** 缂栧彿 */
+    code?: string;
+    /** 鍚嶇О */
+    name?: string;
+    method?: EnumResourceMethod;
+    /** 璺敱 */
+    route?: string;
+    /** 璇锋眰绫诲瀷鍚嶇О */
+    requestTypeName?: string;
+    /** 璇锋眰绫诲瀷鍏ㄥ悕 */
+    requestTypeFullName?: string;
+    /** 鍝嶅簲绫诲瀷鍚嶇О */
+    responseTypeName?: string;
+    /** 鍝嶅簲绫诲瀷鍏ㄥ悕 */
+    responseTypeFullName?: string;
+  }
+
+  interface GetRoleQueryResult {
+    /** Id */
+    id?: string;
+    /** 鍚嶇О */
+    name?: string;
+    userType?: EnumUserType;
+    clientType?: EnumClientType;
+    /** 鏈�浣庣骇鍒� */
+    minLevel?: number;
+    dataPower?: EnumRoleWebApiDataPower;
+    /** 澶囨敞 */
+    remark?: string;
+    /** 鑿滃崟Id */
+    menuIds?: string[];
+    /** 璧勬簮 */
+    resources?: GetRoleQueryResultResource[];
+  }
+
+  interface GetRoleQueryResultResource {
+    /** 璧勬簮Id */
+    resourceId?: string;
+    dataPower?: EnumRoleWebApiDataPower;
+  }
+
+  interface GetRolesQuery {
+    pageModel?: PagedListQueryPageModel;
+    userType?: EnumUserType;
+    clientType?: EnumClientType;
+    /** 鍏抽敭瀛� */
+    keywords?: string;
+  }
+
+  interface GetRolesQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 鍚嶇О */
+    name?: string;
+    userType?: EnumUserType;
+    clientType?: EnumClientType;
+    /** 鏈�浣庣骇鍒� */
+    minLevel?: number;
+    dataPower?: EnumRoleWebApiDataPower;
+    /** 澶囨敞 */
+    remark?: string;
+    /** 鏄惁绂佺敤 */
+    isDisabled?: boolean;
+    /** 鐢ㄦ埛鏁伴噺 */
+    userCount?: number;
+  }
+
+  interface GetRoleUserInfosQueryResultItem {
+    /** 鐢ㄦ埛Id */
+    id?: string;
+    /** 濮撳悕 */
+    name?: string;
+    /** 鐢ㄦ埛鍚� */
+    userName?: string;
+    /** 鏄惁閫変腑 */
+    isChecked?: boolean;
+  }
+
+  interface GetUserInfoRolesQueryResultItem {
+    /** 瑙掕壊Id */
+    id?: string;
+    /** 鍚嶇О */
+    name?: string;
+    /** 澶囨敞 */
+    remark?: string;
+    /** 鏄惁閫変腑 */
+    isChecked?: boolean;
+  }
+
+  interface PagedListQueryPageModel {
+    /** 琛屾暟 */
+    rows?: number;
+    /** 椤电爜 */
+    page?: number;
+    /** 鎺掑簭 */
+    orderInput?: PagedListQueryPageModelOrderInput[];
+  }
+
+  interface PagedListQueryPageModelOrderInput {
+    /** 灞炴�� */
+    property?: string;
+    order?: EnumPagedListOrder;
+  }
+
+  interface PagedListQueryResultGetDictionaryCategoriesQueryResultItem {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetDictionaryCategoriesQueryResultItem[];
+  }
+
+  interface PagedListQueryResultGetDictionaryDatasQueryResultItem {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetDictionaryDatasQueryResultItem[];
+  }
+
+  interface PagedListQueryResultGetEnterprisesQueryResultItem {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetEnterprisesQueryResultItem[];
+  }
+
+  interface PagedListQueryResultGetOperationUserInfosQueryResultItem {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetOperationUserInfosQueryResultItem[];
+  }
+
+  interface PagedListQueryResultGetRolesQueryResultItem {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetRolesQueryResultItem[];
+  }
+
+  interface PagedListQueryResultPageModel {
+    /** 琛屾暟 */
+    rows?: number;
+    /** 椤电爜 */
+    page?: number;
+    /** 鎺掑簭 */
+    orderInput?: PagedListQueryPageModelOrderInput[];
+    /** 鎬绘暟 */
+    totalCount?: number;
+    /** 椤垫暟 */
+    totalPage?: number;
+  }
+
+  interface PasswordLoginCommand {
+    /** 璐﹀彿 */
+    userName: string;
+    /** 瀵嗙爜 */
+    password: string;
+    type?: EnumUserType;
+    clientType?: EnumClientType;
+  }
+
+  interface PasswordLoginCommandCallback {
+    /** 鐢ㄦ埛璁块棶浠ょ墝 */
+    accessToken?: string;
+    /** 鍒锋柊浠ょ墝 */
+    refreshToken?: string;
+  }
+
+  interface SaveDictionaryCategoryCommand {
+    id?: string;
+    /** 缂栧彿 */
+    code: string;
+    /** 鍚嶇О */
+    name: string;
+    /** 瀛楁鍚嶏紙閫楀彿闅斿紑锛� */
+    fieldNames?: string;
+    /** 鎺掑簭 */
+    sort?: number;
+  }
+
+  interface SaveDictionaryDataCommand {
+    id?: string;
+    /** 绫诲埆Id */
+    categoryId?: string;
+    /** 涓婄骇Id */
+    parentId?: string;
+    /** 缂栧彿 */
+    code?: string;
+    /** 鏄剧ず鍐呭 */
+    content: string;
+    /** 瀛楁1 */
+    field1?: string;
+    /** 瀛楁2 */
+    field2?: string;
+    /** 瀛楁3 */
+    field3?: string;
+    /** 瀛楁4 */
+    field4?: string;
+    /** 瀛楁5 */
+    field5?: string;
+    /** 鎺掑簭 */
+    sort?: number;
+    /** 鏄惁绂佺敤 */
+    isDisabled?: boolean;
+  }
+
+  interface SaveMenuButtonCommand {
+    /** Id */
+    id?: string;
+    /** 鑿滃崟Id */
+    parentId?: string;
+    /** 缂栧彿 */
+    code?: string;
+    /** 鍚嶇О */
+    name?: string;
+    /** 鍒嗙粍鍚嶇О锛堢敤浜庢寜閽�/瀛楁锛� */
+    group?: string;
+    /** 浣嶇疆锛堢敤浜庢寜閽級 */
+    location?: string;
+    /** 鍥炬爣 */
+    icon?: string;
+    /** 瀹藉害锛堢敤浜庢寜閽�/鍒�/鍏冪礌锛� */
+    width?: string;
+    /** 鎺掑簭 */
+    sort?: number;
+    /** 澶囨敞 */
+    remark?: string;
+  }
+
+  interface SaveMenuCommand {
+    /** Id */
+    id?: string;
+    userType?: EnumUserType;
+    clientType?: EnumClientType;
+    /** 涓婄骇Id */
+    parentId?: string;
+    /** 缂栧彿 */
+    code?: string;
+    /** 鍚嶇О */
+    name?: string;
+    type?: EnumMenuType;
+    visitLevel?: EnumMenuVisitLevel;
+    /** 鍥炬爣 */
+    icon?: string;
+    /** 閾炬帴鍦板潃 */
+    url?: string;
+    /** 鏄惁绂佺敤 */
+    isDisabled?: boolean;
+    /** 鏄惁缂撳瓨 */
+    isCache?: boolean;
+    /** 鎺掑簭 */
+    sort?: number;
+    /** 澶囨敞 */
+    remark?: string;
+    /** 鍒嗙粍 */
+    groups?: SaveMenuCommandGroup[];
+  }
+
+  interface SaveMenuCommandButton {
+    /** Id */
+    id?: string;
+    /** 缂栧彿 */
+    code?: string;
+    /** 鍚嶇О */
+    name?: string;
+    /** 鍥炬爣 */
+    icon?: string;
+    /** 瀹藉害锛堢敤浜庢寜閽�/鍒�/鍏冪礌锛� */
+    width?: string;
+    /** 鎺掑簭 */
+    sort?: number;
+    /** 澶囨敞 */
+    remark?: string;
+  }
+
+  interface SaveMenuCommandButtonLocation {
+    /** 浣嶇疆锛堢敤浜庢寜閽級 */
+    location?: string;
+    /** 鎸夐挳 */
+    buttons?: SaveMenuCommandButton[];
+  }
+
+  interface SaveMenuCommandField {
+    /** Id */
+    id?: string;
+    /** 缂栧彿 */
+    code?: string;
+    /** 鍚嶇О */
+    name?: string;
+    /** 瀹藉害锛堢敤浜庢寜閽�/鍒�/鍏冪礌锛� */
+    width?: string;
+    /** 鎺掑簭 */
+    sort?: number;
+    /** 澶囨敞 */
+    remark?: string;
+  }
+
+  interface SaveMenuCommandGroup {
+    /** 鍒嗙粍鍚嶇О锛堢敤浜庢寜閽�/瀛楁锛� */
+    group?: string;
+    /** 鎸夐挳浣嶇疆 */
+    buttonLocations?: SaveMenuCommandButtonLocation[];
+    /** 瀛楁 */
+    fields?: SaveMenuCommandField[];
+  }
+
+  interface SaveMenuFieldCommand {
+    /** Id */
+    id?: string;
+    /** 鑿滃崟Id */
+    parentId?: string;
+    /** 缂栧彿 */
+    code?: string;
+    /** 鍚嶇О */
+    name?: string;
+    /** 鍒嗙粍鍚嶇О锛堢敤浜庢寜閽�/瀛楁锛� */
+    group?: string;
+    /** 浣嶇疆锛堢敤浜庢寜閽級 */
+    location?: string;
+    /** 鍥炬爣 */
+    icon?: string;
+    /** 瀹藉害锛堢敤浜庢寜閽�/鍒�/鍏冪礌锛� */
+    width?: string;
+    /** 鎺掑簭 */
+    sort?: number;
+    /** 澶囨敞 */
+    remark?: string;
+  }
+
+  interface SaveRoleCommand {
+    /** Id */
+    id?: string;
+    /** 鍚嶇О */
+    name?: string;
+    userType?: EnumUserType;
+    clientType?: EnumClientType;
+    /** 鏈�浣庣骇鍒� */
+    minLevel?: number;
+    dataPower?: EnumRoleWebApiDataPower;
+    /** 澶囨敞 */
+    remark?: string;
+    /** 鑿滃崟Id */
+    menuIds?: string[];
+    /** 璧勬簮 */
+    resources?: GetRoleQueryResultResource[];
+  }
+
+  interface SetDictionaryDataIsDisabledCommand {
+    /** Id */
+    ids?: string[];
+    /** 鏄惁绂佺敤 */
+    isDisabled?: boolean;
+  }
+
+  interface SetMenuSwitchCommand {
+    /** Id */
+    ids?: string[];
+    type?: EnumMenuType;
+    /** 鏄惁绂佺敤锛坣ull鏃朵笉鏇存柊锛� */
+    isDisabled?: boolean;
+    /** 鏄惁缂撳瓨锛坣ull鏃朵笉鏇存柊锛� */
+    isCache?: boolean;
+  }
+
+  interface SetRoleIsDisabledCommand {
+    /** Id */
+    ids: string[];
+    /** 鏄惁绂佺敤 */
+    isDisabled?: boolean;
+  }
+
+  interface SetRoleUserInfosCommand {
+    /** 瑙掕壊Id */
+    roleId?: string;
+    /** 鐢ㄦ埛Id */
+    userInfoIds?: string[];
+  }
+
+  interface SetUserInfoRolesCommand {
+    /** 鐢ㄦ埛Id */
+    userInfoId?: string;
+    /** 瑙掕壊Id */
+    roleIds?: string[];
+  }
+
+  interface SetUserInfoStatusCommand {
+    /** Id */
+    ids?: string[];
+    status?: EnumUserInfoStatus;
+  }
+}
diff --git a/packages/services/apiV2/userInfo.ts b/packages/services/apiV2/userInfo.ts
new file mode 100644
index 0000000..4367d18
--- /dev/null
+++ b/packages/services/apiV2/userInfo.ts
@@ -0,0 +1,66 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 鏌ヨ杩愯惀绔敤鎴峰垎椤靛垪琛ㄦ暟鎹� POST /api/user/userInfo/getOperationUserInfos */
+export async function getOperationUserInfos(
+  body: API.GetOperationUserInfosQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.PagedListQueryResultGetOperationUserInfosQueryResultItem>(
+    '/api/user/userInfo/getOperationUserInfos',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏌ヨ鐢ㄦ埛瑙掕壊鍒楄〃 GET /api/user/userInfo/getUserInfoRoles */
+export async function getUserInfoRoles(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetUserInfoRolesParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetUserInfoRolesQueryResultItem[]>('/api/user/userInfo/getUserInfoRoles', {
+    method: 'GET',
+    params: {
+      ...params,
+    },
+    ...(options || {}),
+  });
+}
+
+/** 璁剧疆鐢ㄦ埛淇℃伅瑙掕壊 PUT /api/user/userInfo/setUserInfoRoles */
+export async function setUserInfoRoles(
+  body: API.SetUserInfoRolesCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/user/userInfo/setUserInfoRoles', {
+    method: 'PUT',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 璁剧疆鐢ㄦ埛淇℃伅鐘舵�� PUT /api/user/userInfo/setUserInfoStatus */
+export async function setUserInfoStatus(
+  body: API.SetUserInfoStatusCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/user/userInfo/setUserInfoStatus', {
+    method: 'PUT',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
diff --git a/packages/services/tsconfig.json b/packages/services/tsconfig.json
index accc3b3..8bd5728 100644
--- a/packages/services/tsconfig.json
+++ b/packages/services/tsconfig.json
@@ -7,7 +7,13 @@
       "@12333/*": ["../../packages/*"]
     },
     "composite": true,
-    "types": ["node", "./api/typings.d.ts", "./types.d.ts", "./globalType.d.ts"]
+    "types": [
+      "node",
+      "./api/typings.d.ts",
+      "./apiV2/typings.d.ts",
+      "./types.d.ts",
+      "./globalType.d.ts"
+    ]
   },
   "exclude": ["node_modules", "dist"]
 }
diff --git a/packages/utils/common.ts b/packages/utils/common.ts
index c36c689..bd11db4 100644
--- a/packages/utils/common.ts
+++ b/packages/utils/common.ts
@@ -53,6 +53,7 @@
  * @returns
  */
 export function addStarForString(str: string, start = 0, end = 0) {
+  if (!str) return '';
   return str.substring(0, start) + '*'.repeat(end - start) + str.substring(end);
 }
 
diff --git a/packages/utils/encrypt.ts b/packages/utils/encrypt.ts
new file mode 100644
index 0000000..687f958
--- /dev/null
+++ b/packages/utils/encrypt.ts
@@ -0,0 +1,13 @@
+import CryptoJS from 'crypto-js';
+
+/**
+ * MD5鍔犲瘑鍑芥暟
+ * @param {string} data - 闇�瑕佸姞瀵嗙殑鏁版嵁
+ * @returns {string} 鍔犲瘑鍚庣殑16杩涘埗瀛楃涓�
+ */
+export function md5Encrypt(data: string) {
+  // 杩涜MD5鍔犲瘑锛岃繑鍥濿ordArray瀵硅薄
+  const hash = CryptoJS.MD5(data);
+  // 杞崲涓�16杩涘埗瀛楃涓�
+  return hash.toString(CryptoJS.enc.Hex);
+}
diff --git a/packages/utils/index.ts b/packages/utils/index.ts
index 162eb91..da54574 100644
--- a/packages/utils/index.ts
+++ b/packages/utils/index.ts
@@ -13,3 +13,4 @@
 export * from './user';
 export * from './media';
 export * from './location';
+export * from './encrypt';
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c9d1ace..016c735 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,5 +1,9 @@
 lockfileVersion: '6.0'
 
+settings:
+  autoInstallPeers: true
+  excludeLinksFromLockfile: false
+
 overrides:
   vue: 3.5.12
 
@@ -156,7 +160,7 @@
         version: 4.35.3(@vue/composition-api@1.7.2)(vue@3.5.12)
       '@tarojs/components':
         specifier: 3.6.20
-        version: 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+        version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/helper':
         specifier: 3.6.20
         version: 3.6.20
@@ -171,22 +175,22 @@
         version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/plugin-platform-alipay':
         specifier: 3.6.20
-        version: 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+        version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/plugin-platform-jd':
         specifier: 3.6.20
         version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/plugin-platform-qq':
         specifier: 3.6.20
-        version: 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+        version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/plugin-platform-swan':
         specifier: 3.6.20
-        version: 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+        version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/plugin-platform-tt':
         specifier: 3.6.20
-        version: 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+        version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/plugin-platform-weapp':
         specifier: 3.6.20
-        version: 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+        version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/router':
         specifier: 3.6.20
         version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
@@ -201,16 +205,16 @@
         version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/taro-h5':
         specifier: 3.6.20
-        version: 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+        version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tencentcloud/chat-uikit-engine':
         specifier: ^2.0.3
-        version: 2.0.3(react-native@0.77.0)(react@19.0.0)
+        version: 2.0.3
       '@tencentcloud/chat-uikit-uniapp':
         specifier: ^2.0.3
-        version: 2.0.3(@vue/runtime-dom@3.5.12)(react-native@0.77.0)(react@19.0.0)(vue@3.5.12)(webpack@5.78.0)
+        version: 2.0.3(@vue/runtime-dom@3.5.12)(vue@3.5.12)(webpack@5.78.0)
       '@tencentcloud/tui-customer-service-plugin':
         specifier: ^2.0.3
-        version: 2.0.3(@tencentcloud/tui-core@2.4.0)(@vue/composition-api@1.7.2)(vue@3.5.12)
+        version: 2.0.3(@tencentcloud/tui-core@2.5.1)(@vue/composition-api@1.7.2)(vue@3.5.12)
       '@vant/weapp':
         specifier: ^1.11.1
         version: 1.11.1
@@ -277,7 +281,7 @@
         version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/webpack5-runner':
         specifier: 3.6.20
-        version: 3.6.20(@babel/core@7.8.0)(@swc/core@1.3.96)(@vue/compiler-sfc@3.5.12)(cache-loader@4.1.0)(postcss@8.4.19)(prettier@2.7.1)(react@19.0.0)(typescript@5.2.2)(vue@3.5.12)(webpack@5.78.0)
+        version: 3.6.20(@babel/core@7.8.0)(@swc/core@1.3.96)(@vue/compiler-sfc@3.5.12)(cache-loader@4.1.0)(postcss@8.4.19)(prettier@2.7.1)(typescript@5.2.2)(vue@3.5.12)(webpack@5.78.0)
       '@types/crypto-js':
         specifier: ^4.1.1
         version: 4.1.1
@@ -418,7 +422,7 @@
         version: 4.35.3(@vue/composition-api@1.7.2)(vue@3.5.12)
       '@tarojs/components':
         specifier: 3.6.20
-        version: 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+        version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/helper':
         specifier: 3.6.20
         version: 3.6.20
@@ -433,22 +437,22 @@
         version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/plugin-platform-alipay':
         specifier: 3.6.20
-        version: 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+        version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/plugin-platform-jd':
         specifier: 3.6.20
         version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/plugin-platform-qq':
         specifier: 3.6.20
-        version: 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+        version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/plugin-platform-swan':
         specifier: 3.6.20
-        version: 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+        version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/plugin-platform-tt':
         specifier: 3.6.20
-        version: 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+        version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/plugin-platform-weapp':
         specifier: 3.6.20
-        version: 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+        version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/router':
         specifier: 3.6.20
         version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
@@ -463,16 +467,16 @@
         version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/taro-h5':
         specifier: 3.6.20
-        version: 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+        version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tencentcloud/chat-uikit-engine':
         specifier: ^2.0.3
-        version: 2.0.3(react-native@0.77.0)(react@19.0.0)
+        version: 2.0.3
       '@tencentcloud/chat-uikit-uniapp':
         specifier: ^2.0.3
-        version: 2.0.3(@vue/runtime-dom@3.5.12)(react-native@0.77.0)(react@19.0.0)(vue@3.5.12)(webpack@5.78.0)
+        version: 2.0.3(@vue/runtime-dom@3.5.12)(vue@3.5.12)(webpack@5.78.0)
       '@tencentcloud/tui-customer-service-plugin':
         specifier: ^2.0.3
-        version: 2.0.3(@tencentcloud/tui-core@2.4.0)(@vue/composition-api@1.7.2)(vue@3.5.12)
+        version: 2.0.3(@tencentcloud/tui-core@2.5.1)(@vue/composition-api@1.7.2)(vue@3.5.12)
       '@vant/weapp':
         specifier: ^1.11.1
         version: 1.11.1
@@ -539,7 +543,7 @@
         version: 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/webpack5-runner':
         specifier: 3.6.20
-        version: 3.6.20(@babel/core@7.8.0)(@swc/core@1.3.96)(@vue/compiler-sfc@3.5.12)(cache-loader@4.1.0)(postcss@8.4.19)(prettier@2.7.1)(react@19.0.0)(typescript@5.2.2)(vue@3.5.12)(webpack@5.78.0)
+        version: 3.6.20(@babel/core@7.8.0)(@swc/core@1.3.96)(@vue/compiler-sfc@3.5.12)(cache-loader@4.1.0)(postcss@8.4.19)(prettier@2.7.1)(typescript@5.2.2)(vue@3.5.12)(webpack@5.78.0)
       '@types/crypto-js':
         specifier: ^4.1.1
         version: 4.1.1
@@ -749,6 +753,7 @@
       source-map: 0.5.7
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/eslint-parser@7.25.1(@babel/core@7.25.2)(eslint@8.23.1):
     resolution: {integrity: sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==}
@@ -859,6 +864,7 @@
       semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.21.4):
     resolution: {integrity: sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==}
@@ -893,6 +899,7 @@
       '@babel/helper-annotate-as-pure': 7.24.7
       regexpu-core: 5.3.2
       semver: 6.3.1
+    dev: true
 
   /@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.21.4):
     resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==}
@@ -937,6 +944,7 @@
       resolve: 1.22.8
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/helper-environment-visitor@7.24.7:
     resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==}
@@ -1027,6 +1035,7 @@
       '@babel/traverse': 7.25.6
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/helper-optimise-call-expression@7.24.7:
     resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==}
@@ -1077,6 +1086,7 @@
       '@babel/traverse': 7.25.6
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/helper-replace-supers@7.25.0(@babel/core@7.21.4):
     resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==}
@@ -1117,6 +1127,7 @@
       '@babel/traverse': 7.25.6
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/helper-simple-access@7.24.7:
     resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==}
@@ -1230,6 +1241,7 @@
       '@babel/traverse': 7.25.6
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0(@babel/core@7.25.2):
     resolution: {integrity: sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==}
@@ -1248,6 +1260,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0(@babel/core@7.21.4):
     resolution: {integrity: sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==}
@@ -1276,6 +1289,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==}
@@ -1316,6 +1330,7 @@
       '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.8.0)
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0(@babel/core@7.25.2):
     resolution: {integrity: sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==}
@@ -1340,6 +1355,7 @@
       '@babel/traverse': 7.25.6
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==}
@@ -1502,6 +1518,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
       '@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.8.0)
+    dev: true
 
   /@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.21.4):
     resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==}
@@ -1754,6 +1771,7 @@
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.8.0
+    dev: true
 
   /@babel/plugin-proposal-throw-expressions@7.18.6(@babel/core@7.21.4):
     resolution: {integrity: sha512-WHOrJyhGoGrdtW480L79cF7Iq/gZDZ/z6OqK7mVyFR5I37dTpog/wNgb6hmaM3HYZtULEJl++7VaMWkNZsOcHg==}
@@ -1802,15 +1820,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
-
-  /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.8.0):
-    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.8.0
-      '@babel/helper-plugin-utils': 7.26.5
-    dev: false
+    dev: true
 
   /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.21.4):
     resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
@@ -1836,6 +1846,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.21.4):
     resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
@@ -1864,6 +1875,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==}
@@ -1928,6 +1940,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-export-default-from@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-bTPz4/635WQ9WhwsyPdxUJDVpsi/X9BMmy/8Rf/UAlOO4jSql4CxUCjWI5PiM+jG+c4LVPTScoTw80geFj9+Bw==}
@@ -1947,6 +1960,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.21.4):
     resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
@@ -1972,16 +1986,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
-
-  /@babel/plugin-syntax-flow@7.26.0(@babel/core@7.25.2):
-    resolution: {integrity: sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.25.2
-      '@babel/helper-plugin-utils': 7.26.5
-    dev: false
+    dev: true
 
   /@babel/plugin-syntax-flow@7.26.0(@babel/core@7.8.0):
     resolution: {integrity: sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==}
@@ -1991,6 +1996,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-function-bind@7.22.5(@babel/core@7.21.4):
     resolution: {integrity: sha512-Sjy7XIhHF9L++0Mk/3Y4H4439cjI//wc/jE8Ly3+qGPkTUYYEhe4rzMv/JnyZpekfOBL22X6DAq42I7GM/3KzA==}
@@ -2039,6 +2045,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-import-attributes@7.25.6(@babel/core@7.25.2):
     resolution: {integrity: sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==}
@@ -2057,6 +2064,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2):
     resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
@@ -2073,6 +2081,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.21.4):
     resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
@@ -2098,6 +2107,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2):
     resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==}
@@ -2116,6 +2126,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.21.4):
     resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
@@ -2141,6 +2152,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.21.4):
     resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
@@ -2166,6 +2178,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.21.4):
     resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
@@ -2191,6 +2204,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.21.4):
     resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
@@ -2216,6 +2230,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.21.4):
     resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
@@ -2241,6 +2256,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.21.4):
     resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
@@ -2266,6 +2282,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-pipeline-operator@7.22.5(@babel/core@7.21.4):
     resolution: {integrity: sha512-7yuGXd+h8gpR14FnPDTTCd5TfC/1B9njNZJT29GJ7UFF/WVbzkZy7728DynrENqgImqj5xyPTQAo8si9n3QVJQ==}
@@ -2304,6 +2321,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-throw-expressions@7.22.5(@babel/core@7.21.4):
     resolution: {integrity: sha512-oCyfA7rDVcQIydA7ZOmnHCQTzz5JvG9arY++Z+ASL/q5q+mJLblaRNHoK6ggV54X2c14wCK/lQi7z1DujmEmZA==}
@@ -2342,6 +2360,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.21.4):
     resolution: {integrity: sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==}
@@ -2370,6 +2389,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2):
     resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
@@ -2390,6 +2410,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.8.0)
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==}
@@ -2418,6 +2439,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-async-generator-functions@7.25.4(@babel/core@7.25.2):
     resolution: {integrity: sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==}
@@ -2446,6 +2468,7 @@
       '@babel/traverse': 7.25.6
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==}
@@ -2486,6 +2509,7 @@
       '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.8.0)
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==}
@@ -2514,6 +2538,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.21.4):
     resolution: {integrity: sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==}
@@ -2542,6 +2567,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-class-properties@7.25.4(@babel/core@7.25.2):
     resolution: {integrity: sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==}
@@ -2566,6 +2592,7 @@
       '@babel/helper-plugin-utils': 7.26.5
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.2):
     resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==}
@@ -2592,6 +2619,7 @@
       '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.8.0)
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-classes@7.25.4(@babel/core@7.21.4):
     resolution: {integrity: sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==}
@@ -2641,6 +2669,7 @@
       globals: 11.12.0
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==}
@@ -2672,6 +2701,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
       '@babel/template': 7.25.0
+    dev: true
 
   /@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.21.4):
     resolution: {integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==}
@@ -2700,6 +2730,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==}
@@ -2731,6 +2762,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.8.0)
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==}
@@ -2759,6 +2791,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0(@babel/core@7.25.2):
     resolution: {integrity: sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==}
@@ -2779,6 +2812,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.8.0)
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2):
     resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==}
@@ -2799,6 +2833,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
       '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.8.0)
+    dev: true
 
   /@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==}
@@ -2836,6 +2871,7 @@
       '@babel/helper-plugin-utils': 7.26.5
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.2):
     resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==}
@@ -2856,17 +2892,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
       '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.8.0)
-
-  /@babel/plugin-transform-flow-strip-types@7.26.5(@babel/core@7.25.2):
-    resolution: {integrity: sha512-eGK26RsbIkYUns3Y8qKl362juDDYK+wEdPGHGrhzUl6CewZFo55VZ7hg+CyMFU4dd5QQakBN86nBMpRsFpRvbQ==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.25.2
-      '@babel/helper-plugin-utils': 7.26.5
-      '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.25.2)
-    dev: false
+    dev: true
 
   /@babel/plugin-transform-flow-strip-types@7.26.5(@babel/core@7.8.0):
     resolution: {integrity: sha512-eGK26RsbIkYUns3Y8qKl362juDDYK+wEdPGHGrhzUl6CewZFo55VZ7hg+CyMFU4dd5QQakBN86nBMpRsFpRvbQ==}
@@ -2877,6 +2903,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
       '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.8.0)
+    dev: true
 
   /@babel/plugin-transform-for-of@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==}
@@ -2914,6 +2941,7 @@
       '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-function-name@7.25.1(@babel/core@7.21.4):
     resolution: {integrity: sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==}
@@ -2954,6 +2982,7 @@
       '@babel/traverse': 7.25.6
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.2):
     resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==}
@@ -2974,6 +3003,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
       '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.8.0)
+    dev: true
 
   /@babel/plugin-transform-literals@7.25.2(@babel/core@7.21.4):
     resolution: {integrity: sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==}
@@ -3002,6 +3032,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.2):
     resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==}
@@ -3022,6 +3053,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
       '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.8.0)
+    dev: true
 
   /@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==}
@@ -3050,6 +3082,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==}
@@ -3087,6 +3120,7 @@
       '@babel/helper-plugin-utils': 7.26.5
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-modules-commonjs@7.21.2(@babel/core@7.21.4):
     resolution: {integrity: sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==}
@@ -3141,6 +3175,7 @@
       '@babel/helper-simple-access': 7.24.7
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-modules-systemjs@7.25.0(@babel/core@7.21.4):
     resolution: {integrity: sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==}
@@ -3184,6 +3219,7 @@
       '@babel/traverse': 7.25.6
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==}
@@ -3221,6 +3257,7 @@
       '@babel/helper-plugin-utils': 7.26.5
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==}
@@ -3252,6 +3289,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.8.0)
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-new-target@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==}
@@ -3280,6 +3318,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.2):
     resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==}
@@ -3300,6 +3339,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
       '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.8.0)
+    dev: true
 
   /@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.2):
     resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==}
@@ -3320,6 +3360,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
       '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.8.0)
+    dev: true
 
   /@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.2):
     resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==}
@@ -3344,6 +3385,7 @@
       '@babel/helper-plugin-utils': 7.26.5
       '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.8.0)
       '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.8.0)
+    dev: true
 
   /@babel/plugin-transform-object-super@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==}
@@ -3381,6 +3423,7 @@
       '@babel/helper-replace-supers': 7.25.0(@babel/core@7.8.0)
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.2):
     resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==}
@@ -3401,6 +3444,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
       '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.8.0)
+    dev: true
 
   /@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.21.4):
     resolution: {integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==}
@@ -3441,6 +3485,7 @@
       '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.8.0)
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-parameters@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==}
@@ -3469,6 +3514,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-private-methods@7.25.4(@babel/core@7.25.2):
     resolution: {integrity: sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==}
@@ -3493,6 +3539,7 @@
       '@babel/helper-plugin-utils': 7.26.5
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.25.2):
     resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==}
@@ -3521,6 +3568,7 @@
       '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.8.0)
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==}
@@ -3549,6 +3597,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.8.0):
     resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==}
@@ -3558,6 +3607,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.8.0):
     resolution: {integrity: sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==}
@@ -3579,6 +3629,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.8.0):
     resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==}
@@ -3588,6 +3639,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.8.0):
     resolution: {integrity: sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==}
@@ -3603,6 +3655,7 @@
       '@babel/types': 7.25.6
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-react-pure-annotations@7.24.7(@babel/core@7.8.0):
     resolution: {integrity: sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==}
@@ -3645,6 +3698,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
       regenerator-transform: 0.15.2
+    dev: true
 
   /@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==}
@@ -3673,6 +3727,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-runtime@7.21.4(@babel/core@7.21.4):
     resolution: {integrity: sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA==}
@@ -3722,6 +3777,7 @@
       semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==}
@@ -3750,6 +3806,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-spread@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==}
@@ -3787,6 +3844,7 @@
       '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==}
@@ -3815,6 +3873,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==}
@@ -3843,6 +3902,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.21.4):
     resolution: {integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==}
@@ -3871,6 +3931,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-typescript@7.21.3(@babel/core@7.21.4):
     resolution: {integrity: sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==}
@@ -3916,6 +3977,7 @@
       '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.8.0)
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==}
@@ -3944,6 +4006,7 @@
     dependencies:
       '@babel/core': 7.8.0
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.2):
     resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==}
@@ -3964,6 +4027,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.8.0)
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.21.4):
     resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==}
@@ -3995,6 +4059,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.8.0)
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/plugin-transform-unicode-sets-regex@7.25.4(@babel/core@7.25.2):
     resolution: {integrity: sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==}
@@ -4015,6 +4080,7 @@
       '@babel/core': 7.8.0
       '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.8.0)
       '@babel/helper-plugin-utils': 7.26.5
+    dev: true
 
   /@babel/preset-env@7.21.4(@babel/core@7.21.4):
     resolution: {integrity: sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==}
@@ -4287,18 +4353,7 @@
       semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
-
-  /@babel/preset-flow@7.25.9(@babel/core@7.25.2):
-    resolution: {integrity: sha512-EASHsAhE+SSlEzJ4bzfusnXSHiU+JfAYzj+jbw2vgQKgq5HrUr8qs+vgtiEL5dOH6sEweI+PNt2D7AqrDSHyqQ==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.25.2
-      '@babel/helper-plugin-utils': 7.26.5
-      '@babel/helper-validator-option': 7.25.9
-      '@babel/plugin-transform-flow-strip-types': 7.26.5(@babel/core@7.25.2)
-    dev: false
+    dev: true
 
   /@babel/preset-modules@0.1.6(@babel/core@7.21.4):
     resolution: {integrity: sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==}
@@ -4332,6 +4387,7 @@
       '@babel/helper-plugin-utils': 7.26.5
       '@babel/types': 7.25.6
       esutils: 2.0.3
+    dev: true
 
   /@babel/preset-react@7.24.7(@babel/core@7.8.0):
     resolution: {integrity: sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==}
@@ -4486,9 +4542,9 @@
     peerDependencies:
       '@tencentcloud/chat-uikit-engine': '*'
       lodash: '*'
-      vue: '*'
+      vue: 3.5.12
     dependencies:
-      '@tencentcloud/chat-uikit-engine': 2.0.3(react-native@0.77.0)(react@19.0.0)
+      '@tencentcloud/chat-uikit-engine': 2.0.3
       lodash: 4.17.21
       vue: 3.5.12(typescript@5.2.2)
     dev: false
@@ -5240,86 +5296,6 @@
       wrap-ansi-cjs: /wrap-ansi@7.0.0
     dev: true
 
-  /@isaacs/ttlcache@1.4.1:
-    resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==}
-    engines: {node: '>=12'}
-    dev: false
-
-  /@istanbuljs/load-nyc-config@1.1.0:
-    resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
-    engines: {node: '>=8'}
-    dependencies:
-      camelcase: 5.3.1
-      find-up: 4.1.0
-      get-package-type: 0.1.0
-      js-yaml: 3.14.1
-      resolve-from: 5.0.0
-    dev: false
-
-  /@istanbuljs/schema@0.1.3:
-    resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
-    engines: {node: '>=8'}
-    dev: false
-
-  /@jest/create-cache-key-function@29.7.0:
-    resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/types': 29.6.3
-    dev: false
-
-  /@jest/environment@29.7.0:
-    resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/fake-timers': 29.7.0
-      '@jest/types': 29.6.3
-      '@types/node': 22.5.5
-      jest-mock: 29.7.0
-    dev: false
-
-  /@jest/fake-timers@29.7.0:
-    resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/types': 29.6.3
-      '@sinonjs/fake-timers': 10.3.0
-      '@types/node': 22.5.5
-      jest-message-util: 29.7.0
-      jest-mock: 29.7.0
-      jest-util: 29.7.0
-    dev: false
-
-  /@jest/schemas@29.6.3:
-    resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@sinclair/typebox': 0.27.8
-    dev: false
-
-  /@jest/transform@29.7.0:
-    resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@babel/core': 7.25.2
-      '@jest/types': 29.6.3
-      '@jridgewell/trace-mapping': 0.3.25
-      babel-plugin-istanbul: 6.1.1
-      chalk: 4.1.2
-      convert-source-map: 2.0.0
-      fast-json-stable-stringify: 2.1.0
-      graceful-fs: 4.2.11
-      jest-haste-map: 29.7.0
-      jest-regex-util: 29.6.3
-      jest-util: 29.7.0
-      micromatch: 4.0.8
-      pirates: 4.0.6
-      slash: 3.0.0
-      write-file-atomic: 4.0.2
-    transitivePeerDependencies:
-      - supports-color
-    dev: false
-
   /@jest/types@26.6.2:
     resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==}
     engines: {node: '>= 10.14.2'}
@@ -5330,18 +5306,6 @@
       '@types/yargs': 15.0.19
       chalk: 4.1.2
     dev: true
-
-  /@jest/types@29.6.3:
-    resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/schemas': 29.6.3
-      '@types/istanbul-lib-coverage': 2.0.6
-      '@types/istanbul-reports': 3.0.4
-      '@types/node': 22.5.5
-      '@types/yargs': 17.0.33
-      chalk: 4.1.2
-    dev: false
 
   /@jimp/bmp@0.22.12(@jimp/custom@0.22.12):
     resolution: {integrity: sha512-aeI64HD0npropd+AR76MCcvvRaa+Qck6loCOS03CkkxGHN5/r336qTM5HPUdHKMDOGzqknuVPA8+kK1t03z12g==}
@@ -6207,7 +6171,7 @@
     resolution: {integrity: sha512-+n8vVZAu92MUX6VEf6gO73Iz3JThjksdb6aSarvciCSydlWWdlQqZwYIGMTG4zOwDfCoQ3HfLa36zVaIJLSn3g==}
     peerDependencies:
       unplugin-vue-components: '>=0.25.1'
-      vue: ^3.0.0
+      vue: 3.5.12
     peerDependenciesMeta:
       unplugin-vue-components:
         optional: true
@@ -6361,195 +6325,6 @@
     resolution: {integrity: sha512-MU0SYgcrBdSVLu7Tfow3VY4z1odzlaTYRjt3WQ0z8XbjDWReuy+EALt2HdjhrwD2HPiW2GY+KTSw4HLv4C/EOA==}
     dev: true
 
-  /@react-native/assets-registry@0.77.0:
-    resolution: {integrity: sha512-Ms4tYYAMScgINAXIhE4riCFJPPL/yltughHS950l0VP5sm5glbimn9n7RFn9Tc8cipX74/ddbk19+ydK2iDMmA==}
-    engines: {node: '>=18'}
-    dev: false
-
-  /@react-native/babel-plugin-codegen@0.77.0(@babel/preset-env@7.25.4):
-    resolution: {integrity: sha512-5TYPn1k+jdDOZJU4EVb1kZ0p9TCVICXK3uplRev5Gul57oWesAaiWGZOzfRS3lonWeuR4ij8v8PFfIHOaq0vmA==}
-    engines: {node: '>=18'}
-    dependencies:
-      '@babel/traverse': 7.25.6
-      '@react-native/codegen': 0.77.0(@babel/preset-env@7.25.4)
-    transitivePeerDependencies:
-      - '@babel/preset-env'
-      - supports-color
-    dev: false
-
-  /@react-native/babel-preset@0.77.0(@babel/core@7.8.0)(@babel/preset-env@7.25.4):
-    resolution: {integrity: sha512-Z4yxE66OvPyQ/iAlaETI1ptRLcDm7Tk6ZLqtCPuUX3AMg+JNgIA86979T4RSk486/JrBUBH5WZe2xjj7eEHXsA==}
-    engines: {node: '>=18'}
-    peerDependencies:
-      '@babel/core': '*'
-    dependencies:
-      '@babel/core': 7.8.0
-      '@babel/plugin-proposal-export-default-from': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.8.0)
-      '@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.8.0)
-      '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.8.0)
-      '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-async-generator-functions': 7.25.4(@babel/core@7.8.0)
-      '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.8.0)
-      '@babel/plugin-transform-class-properties': 7.25.4(@babel/core@7.8.0)
-      '@babel/plugin-transform-classes': 7.25.4(@babel/core@7.8.0)
-      '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.8.0)
-      '@babel/plugin-transform-flow-strip-types': 7.26.5(@babel/core@7.8.0)
-      '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.8.0)
-      '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.8.0)
-      '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.8.0)
-      '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.8.0)
-      '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-private-methods': 7.25.4(@babel/core@7.8.0)
-      '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.8.0)
-      '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-runtime': 7.25.4(@babel/core@7.8.0)
-      '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.8.0)
-      '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.8.0)
-      '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.8.0)
-      '@babel/template': 7.25.0
-      '@react-native/babel-plugin-codegen': 0.77.0(@babel/preset-env@7.25.4)
-      babel-plugin-syntax-hermes-parser: 0.25.1
-      babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.8.0)
-      react-refresh: 0.14.2
-    transitivePeerDependencies:
-      - '@babel/preset-env'
-      - supports-color
-    dev: false
-
-  /@react-native/codegen@0.77.0(@babel/preset-env@7.25.4):
-    resolution: {integrity: sha512-rE9lXx41ZjvE8cG7e62y/yGqzUpxnSvJ6me6axiX+aDewmI4ZrddvRGYyxCnawxy5dIBHSnrpZse3P87/4Lm7w==}
-    engines: {node: '>=18'}
-    peerDependencies:
-      '@babel/preset-env': ^7.1.6
-    dependencies:
-      '@babel/parser': 7.25.6
-      '@babel/preset-env': 7.25.4(@babel/core@7.8.0)
-      glob: 7.2.3
-      hermes-parser: 0.25.1
-      invariant: 2.2.4
-      jscodeshift: 17.1.2(@babel/preset-env@7.25.4)
-      nullthrows: 1.1.1
-      yargs: 17.7.2
-    transitivePeerDependencies:
-      - supports-color
-    dev: false
-
-  /@react-native/community-cli-plugin@0.77.0(@babel/core@7.8.0)(@babel/preset-env@7.25.4):
-    resolution: {integrity: sha512-GRshwhCHhtupa3yyCbel14SlQligV8ffNYN5L1f8HCo2SeGPsBDNjhj2U+JTrMPnoqpwowPGvkCwyqwqYff4MQ==}
-    engines: {node: '>=18'}
-    peerDependencies:
-      '@react-native-community/cli-server-api': '*'
-    peerDependenciesMeta:
-      '@react-native-community/cli-server-api':
-        optional: true
-    dependencies:
-      '@react-native/dev-middleware': 0.77.0
-      '@react-native/metro-babel-transformer': 0.77.0(@babel/core@7.8.0)(@babel/preset-env@7.25.4)
-      chalk: 4.1.2
-      debug: 2.6.9
-      invariant: 2.2.4
-      metro: 0.81.1
-      metro-config: 0.81.1
-      metro-core: 0.81.1
-      readline: 1.3.0
-      semver: 7.6.3
-    transitivePeerDependencies:
-      - '@babel/core'
-      - '@babel/preset-env'
-      - bufferutil
-      - supports-color
-      - utf-8-validate
-    dev: false
-
-  /@react-native/debugger-frontend@0.77.0:
-    resolution: {integrity: sha512-glOvSEjCbVXw+KtfiOAmrq21FuLE1VsmBsyT7qud4KWbXP43aUEhzn70mWyFuiIdxnzVPKe2u8iWTQTdJksR1w==}
-    engines: {node: '>=18'}
-    dev: false
-
-  /@react-native/dev-middleware@0.77.0:
-    resolution: {integrity: sha512-DAlEYujm43O+Dq98KP2XfLSX5c/TEGtt+JBDEIOQewk374uYY52HzRb1+Gj6tNaEj/b33no4GibtdxbO5zmPhg==}
-    engines: {node: '>=18'}
-    dependencies:
-      '@isaacs/ttlcache': 1.4.1
-      '@react-native/debugger-frontend': 0.77.0
-      chrome-launcher: 0.15.2
-      chromium-edge-launcher: 0.2.0
-      connect: 3.7.0
-      debug: 2.6.9
-      nullthrows: 1.1.1
-      open: 7.4.2
-      selfsigned: 2.4.1
-      serve-static: 1.16.2
-      ws: 6.2.3
-    transitivePeerDependencies:
-      - bufferutil
-      - supports-color
-      - utf-8-validate
-    dev: false
-
-  /@react-native/gradle-plugin@0.77.0:
-    resolution: {integrity: sha512-rmfh93jzbndSq7kihYHUQ/EGHTP8CCd3GDCmg5SbxSOHAaAYx2HZ28ZG7AVcGUsWeXp+e/90zGIyfOzDRx0Zaw==}
-    engines: {node: '>=18'}
-    dev: false
-
-  /@react-native/js-polyfills@0.77.0:
-    resolution: {integrity: sha512-kHFcMJVkGb3ptj3yg1soUsMHATqal4dh0QTGAbYihngJ6zy+TnP65J3GJq4UlwqFE9K1RZkeCmTwlmyPFHOGvA==}
-    engines: {node: '>=18'}
-    dev: false
-
-  /@react-native/metro-babel-transformer@0.77.0(@babel/core@7.8.0)(@babel/preset-env@7.25.4):
-    resolution: {integrity: sha512-19GfvhBRKCU3UDWwCnDR4QjIzz3B2ZuwhnxMRwfAgPxz7QY9uKour9RGmBAVUk1Wxi/SP7dLEvWnmnuBO39e2A==}
-    engines: {node: '>=18'}
-    peerDependencies:
-      '@babel/core': '*'
-    dependencies:
-      '@babel/core': 7.8.0
-      '@react-native/babel-preset': 0.77.0(@babel/core@7.8.0)(@babel/preset-env@7.25.4)
-      hermes-parser: 0.25.1
-      nullthrows: 1.1.1
-    transitivePeerDependencies:
-      - '@babel/preset-env'
-      - supports-color
-    dev: false
-
-  /@react-native/normalize-colors@0.77.0:
-    resolution: {integrity: sha512-qjmxW3xRZe4T0ZBEaXZNHtuUbRgyfybWijf1yUuQwjBt24tSapmIslwhCjpKidA0p93ssPcepquhY0ykH25mew==}
-    dev: false
-
-  /@react-native/virtualized-lists@0.77.0(react-native@0.77.0)(react@19.0.0):
-    resolution: {integrity: sha512-ppPtEu9ISO9iuzpA2HBqrfmDpDAnGGduNDVaegadOzbMCPAB3tC9Blxdu9W68LyYlNQILIsP6/FYtLwf7kfNew==}
-    engines: {node: '>=18'}
-    peerDependencies:
-      '@types/react': ^18.2.6
-      react: '*'
-      react-native: '*'
-    peerDependenciesMeta:
-      '@types/react':
-        optional: true
-    dependencies:
-      invariant: 2.2.4
-      nullthrows: 1.1.1
-      react: 19.0.0
-      react-native: 0.77.0(@babel/core@7.8.0)(@babel/preset-env@7.25.4)(react@19.0.0)
-    dev: false
-
   /@release-it/conventional-changelog@8.0.2(release-it@17.6.0):
     resolution: {integrity: sha512-WpnWWRr7O0JeLoiejLrPEWnnwFhCscBn1wBTAXeitiz2/Ifaol0s+t8otf/HYq/OiQOri2iH8d0CnVb72tBdIQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || ^22.0.0}
@@ -6591,10 +6366,6 @@
   /@sideway/pinpoint@2.0.0:
     resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
 
-  /@sinclair/typebox@0.27.8:
-    resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
-    dev: false
-
   /@sindresorhus/is@0.14.0:
     resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==}
     engines: {node: '>=6'}
@@ -6614,18 +6385,6 @@
     resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
     engines: {node: '>=18'}
     dev: true
-
-  /@sinonjs/commons@3.0.1:
-    resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
-    dependencies:
-      type-detect: 4.0.8
-    dev: false
-
-  /@sinonjs/fake-timers@10.3.0:
-    resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
-    dependencies:
-      '@sinonjs/commons': 3.0.1
-    dev: false
 
   /@stencil/core@2.22.3:
     resolution: {integrity: sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==}
@@ -6789,7 +6548,7 @@
     resolution: {integrity: sha512-0uRKL0+m/Wm/rxPxeaf4afi6raJZdTw7LPi32KRnRmXPFT2jWpfwrqO2PW9FYMuAtd0PCsSek0qg/YUgtsKbiQ==}
     peerDependencies:
       '@vue/composition-api': ^1.1.2
-      vue: ^2.5.0 || ^3.0.0
+      vue: 3.5.12
     peerDependenciesMeta:
       '@vue/composition-api':
         optional: true
@@ -6847,7 +6606,7 @@
       - vue
     dev: true
 
-  /@tarojs/components-advanced@3.6.20(react@19.0.0)(vue@3.5.12):
+  /@tarojs/components-advanced@3.6.20(vue@3.5.12):
     resolution: {integrity: sha512-ICWw2rcTDfLWS1BinCDwD7yuxBwMFI4hWE1bs5SdYuJnhTkrXKs3wRpqO8J5+H9sud9GGmL4OhjURySS046T9w==}
     peerDependencies:
       react: '>=17'
@@ -6858,7 +6617,7 @@
       vue:
         optional: true
     dependencies:
-      '@tarojs/components': 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+      '@tarojs/components': 3.6.20(postcss@8.4.47)(vue@3.5.12)
       '@tarojs/runtime': 3.6.20
       '@tarojs/shared': 3.6.20
       '@tarojs/taro': 3.6.20(postcss@8.4.47)(vue@3.5.12)
@@ -6866,7 +6625,6 @@
       csstype: 3.1.3
       memoize-one: 6.0.0
       postcss: 8.4.47
-      react: 19.0.0
       vue: 3.5.12(typescript@5.2.2)
     transitivePeerDependencies:
       - '@types/react'
@@ -6874,7 +6632,7 @@
       - '@types/webpack'
       - '@types/webpack-dev-server'
 
-  /@tarojs/components@3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12):
+  /@tarojs/components@3.6.20(postcss@8.4.19)(vue@3.5.12):
     resolution: {integrity: sha512-4FC3q6BQSJmX8ioTu7t0e/FqjfovpbZkORfQmcbsFtcAKy+4S9W+NRjEfF7ywkfsuVMbF4vizy4VhdYWmuUJNA==}
     peerDependencies:
       '@types/react': '*'
@@ -6889,7 +6647,7 @@
         optional: true
     dependencies:
       '@stencil/core': 2.22.3
-      '@tarojs/components-advanced': 3.6.20(react@19.0.0)(vue@3.5.12)
+      '@tarojs/components-advanced': 3.6.20(vue@3.5.12)
       '@tarojs/router': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/taro': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       classnames: 2.5.1
@@ -6904,6 +6662,36 @@
       - '@types/webpack-dev-server'
       - postcss
       - react
+
+  /@tarojs/components@3.6.20(postcss@8.4.47)(vue@3.5.12):
+    resolution: {integrity: sha512-4FC3q6BQSJmX8ioTu7t0e/FqjfovpbZkORfQmcbsFtcAKy+4S9W+NRjEfF7ywkfsuVMbF4vizy4VhdYWmuUJNA==}
+    peerDependencies:
+      '@types/react': '*'
+      '@types/react-native': '*'
+      vue: '*'
+    peerDependenciesMeta:
+      '@types/react':
+        optional: true
+      '@types/react-native':
+        optional: true
+      vue:
+        optional: true
+    dependencies:
+      '@stencil/core': 2.22.3
+      '@tarojs/components-advanced': 3.6.20(vue@3.5.12)
+      '@tarojs/router': 3.6.20(postcss@8.4.47)(vue@3.5.12)
+      '@tarojs/taro': 3.6.20(postcss@8.4.47)(vue@3.5.12)
+      classnames: 2.5.1
+      hls.js: 1.5.15
+      intersection-observer: 0.7.0
+      resolve-pathname: 3.0.0
+      swiper: 6.8.0
+      vue: 3.5.12(typescript@5.2.2)
+      weui: 1.1.3
+    transitivePeerDependencies:
+      - '@types/webpack'
+      - '@types/webpack-dev-server'
+      - postcss
 
   /@tarojs/helper@3.6.20:
     resolution: {integrity: sha512-sKsvv//FR2rfKfg2P+geMc2f69kSSgLpSr3e0B1CnGdzfI9CROVt2SKGo4jcrDVpDuRMbitfX4HsaMalOdzRfQ==}
@@ -7066,7 +6854,7 @@
   /@tarojs/plugin-framework-vue3@3.6.20(postcss@8.4.19)(vue@3.5.12):
     resolution: {integrity: sha512-F3Cw3BIP/4rv0Whr6oYEiSzJKl2Xvx321FiSDFk/E+IOu2h4Q1mqBJSpQe3ZVdJjvBu/KLUyVm27mAz8hxftNw==}
     peerDependencies:
-      vue: ^3.0.0
+      vue: 3.5.12
     dependencies:
       '@tarojs/helper': 3.6.20
       '@tarojs/runner-utils': 3.6.20
@@ -7166,10 +6954,10 @@
       - supports-color
     dev: true
 
-  /@tarojs/plugin-platform-alipay@3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12):
+  /@tarojs/plugin-platform-alipay@3.6.20(postcss@8.4.19)(vue@3.5.12):
     resolution: {integrity: sha512-mQ5GQfKc+PfuCwkhW8BpXSBx5IGOAFqna/ZphJGM+M38HlPOOPh7z7O4KKfBwK2p2hnIIJF/ny1bXUsBn7YA0A==}
     dependencies:
-      '@tarojs/components': 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+      '@tarojs/components': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/service': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/shared': 3.6.20
     transitivePeerDependencies:
@@ -7197,10 +6985,10 @@
       - supports-color
       - vue
 
-  /@tarojs/plugin-platform-qq@3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12):
+  /@tarojs/plugin-platform-qq@3.6.20(postcss@8.4.19)(vue@3.5.12):
     resolution: {integrity: sha512-xWaMpHWG1nt4IZVD3XSQYqutpwm2FdRp9dV0yMLn9i1ULwMaao2325b+ZftkjLDWxxF+Kq7VNtcGgBK3T/uPTQ==}
     dependencies:
-      '@tarojs/plugin-platform-weapp': 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+      '@tarojs/plugin-platform-weapp': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/service': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/shared': 3.6.20
     transitivePeerDependencies:
@@ -7214,10 +7002,10 @@
       - supports-color
       - vue
 
-  /@tarojs/plugin-platform-swan@3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12):
+  /@tarojs/plugin-platform-swan@3.6.20(postcss@8.4.19)(vue@3.5.12):
     resolution: {integrity: sha512-1PoJR69E0UjOFj3KiETK3qc93LvDCme0inLsyx5/RIoLjBGuBuAclJtGWNjFClj9WNWKNwooh97lpuyD9OcMzw==}
     dependencies:
-      '@tarojs/components': 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+      '@tarojs/components': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/service': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/shared': 3.6.20
     transitivePeerDependencies:
@@ -7231,10 +7019,10 @@
       - supports-color
       - vue
 
-  /@tarojs/plugin-platform-tt@3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12):
+  /@tarojs/plugin-platform-tt@3.6.20(postcss@8.4.19)(vue@3.5.12):
     resolution: {integrity: sha512-/821/9MaMnCy1j6OGI8srVDWqjlaNSH8EuERojBYFCbEaPbfQCZr+85BEHIO/T2Ijq12Wl4IgftgkGLbQFn3LQ==}
     dependencies:
-      '@tarojs/components': 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+      '@tarojs/components': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/service': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/shared': 3.6.20
     transitivePeerDependencies:
@@ -7248,10 +7036,10 @@
       - supports-color
       - vue
 
-  /@tarojs/plugin-platform-weapp@3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12):
+  /@tarojs/plugin-platform-weapp@3.6.20(postcss@8.4.19)(vue@3.5.12):
     resolution: {integrity: sha512-ryxsbsAmULe58+2yZ/qg7tjrKqjhlCxQShmtzXrPRQyO7vUH1L5lgT5gWUdnYbTX8WR3zq9yeimjMUdfE3E+Nw==}
     dependencies:
-      '@tarojs/components': 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+      '@tarojs/components': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/service': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/shared': 3.6.20
     transitivePeerDependencies:
@@ -7304,6 +7092,23 @@
       - postcss
       - vue
 
+  /@tarojs/router@3.6.20(postcss@8.4.47)(vue@3.5.12):
+    resolution: {integrity: sha512-YMMfbYbKyN9OhtCjvBrSgwE9PDlWGwDpqxkrA+IGzyxDgIg5WYGZzgp5K0H0FSPU9c7WjSBTUg33E8v2wXAiHw==}
+    dependencies:
+      '@tarojs/runtime': 3.6.20
+      '@tarojs/taro': 3.6.20(postcss@8.4.47)(vue@3.5.12)
+      dingtalk-jsapi: 2.15.4
+      history: 5.3.0
+      mobile-detect: 1.4.5
+      query-string: 7.1.3
+      universal-router: 8.3.0
+    transitivePeerDependencies:
+      - '@types/react'
+      - '@types/webpack'
+      - '@types/webpack-dev-server'
+      - postcss
+      - vue
+
   /@tarojs/runner-utils@3.6.20:
     resolution: {integrity: sha512-EkQ8dKRGSe+T2Q1SQWS94uKjKA/mCl00Z+ksi+2WPS6wvK6LrrlZDAo6Puzu+d10FaSs9OWoQrul0cnYaa9Rdg==}
     dependencies:
@@ -7343,11 +7148,11 @@
   /@tarojs/shared@3.6.20:
     resolution: {integrity: sha512-JYi4T9T1M8foB7jnrWBW+ssOMNqA1eR30aY463zsxFGaeU5bn4qihvCOAo//03szVPN7h7L7k0c1Q4GSSWgLaQ==}
 
-  /@tarojs/taro-h5@3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12):
+  /@tarojs/taro-h5@3.6.20(postcss@8.4.19)(vue@3.5.12):
     resolution: {integrity: sha512-L1UVwGur81qCBa1TLu1dqffcB7OEybiFy1m7A8kq7DlSS2/sbt5jlXaF9HSs6jZFQvyuH705lpaypqoZ2pIz3w==}
     dependencies:
       '@tarojs/api': 3.6.20
-      '@tarojs/components': 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+      '@tarojs/components': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/router': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/runtime': 3.6.20
       '@tarojs/shared': 3.6.20
@@ -7459,7 +7264,7 @@
       - vue
     dev: true
 
-  /@tarojs/webpack5-runner@3.6.20(@babel/core@7.8.0)(@swc/core@1.3.96)(@vue/compiler-sfc@3.5.12)(cache-loader@4.1.0)(postcss@8.4.19)(prettier@2.7.1)(react@19.0.0)(typescript@5.2.2)(vue@3.5.12)(webpack@5.78.0):
+  /@tarojs/webpack5-runner@3.6.20(@babel/core@7.8.0)(@swc/core@1.3.96)(@vue/compiler-sfc@3.5.12)(cache-loader@4.1.0)(postcss@8.4.19)(prettier@2.7.1)(typescript@5.2.2)(vue@3.5.12)(webpack@5.78.0):
     resolution: {integrity: sha512-yqoyejUUh8Y9EhARRcJ4hfqIQkjoj3K1JlstpNPPsnzeaSOK9hp9sUzost10qAORHLi5je8LDMmbNAaui7xSQg==}
     peerDependencies:
       postcss: ^8.4.18
@@ -7467,12 +7272,12 @@
     dependencies:
       '@parcel/css': 1.14.0
       '@tarojs/helper': 3.6.20
-      '@tarojs/plugin-platform-alipay': 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+      '@tarojs/plugin-platform-alipay': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/plugin-platform-jd': 3.6.20(postcss@8.4.19)(vue@3.5.12)
-      '@tarojs/plugin-platform-qq': 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
-      '@tarojs/plugin-platform-swan': 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
-      '@tarojs/plugin-platform-tt': 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
-      '@tarojs/plugin-platform-weapp': 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+      '@tarojs/plugin-platform-qq': 3.6.20(postcss@8.4.19)(vue@3.5.12)
+      '@tarojs/plugin-platform-swan': 3.6.20(postcss@8.4.19)(vue@3.5.12)
+      '@tarojs/plugin-platform-tt': 3.6.20(postcss@8.4.19)(vue@3.5.12)
+      '@tarojs/plugin-platform-weapp': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/runner-utils': 3.6.20
       '@tarojs/runtime': 3.6.20
       '@tarojs/shared': 3.6.20
@@ -7522,7 +7327,7 @@
       terser-webpack-plugin: 5.3.10(@swc/core@1.3.96)(esbuild@0.19.12)(webpack@5.78.0)
       url-loader: 4.1.0(file-loader@6.0.0)(webpack@5.78.0)
       vm2: 3.9.19
-      vue-loader: 15.11.1(@vue/compiler-sfc@3.5.12)(cache-loader@4.1.0)(css-loader@6.11.0)(lodash@4.17.21)(prettier@2.7.1)(react@19.0.0)(webpack@5.78.0)
+      vue-loader: 15.11.1(@vue/compiler-sfc@3.5.12)(cache-loader@4.1.0)(css-loader@6.11.0)(lodash@4.17.21)(prettier@2.7.1)(webpack@5.78.0)
       webpack: 5.78.0(@swc/core@1.3.96)
       webpack-chain: 6.5.1
       webpack-dev-server: 4.11.1(webpack@5.78.0)
@@ -7607,72 +7412,69 @@
       - whiskers
     dev: true
 
-  /@tencentcloud/call-uikit-vue2.6@3.3.9(react-native@0.77.0)(react@19.0.0)(vue@3.5.12):
-    resolution: {integrity: sha512-EWXc+wqGXlWSmkR/ucKdwPpe+tOXwtYDL2wUD3C/XW4pmKldtxRIIWIzDzo9upPTeojZMfIIoOC/che7wwE9KQ==}
+  /@tencentcloud/call-engine-js@3.2.0:
+    resolution: {integrity: sha512-IcDgkD2IICHkQh9WkeWsfwL9gecok89wIEFJPTVVFhC7fTLe4obOCI42TV4n+1sREm8BdGkAYvOurGf6CpXCng==}
     dependencies:
-      '@tencentcloud/chat': 3.5.2(react-native@0.77.0)(react@19.0.0)
-      '@tencentcloud/tui-core': 2.4.0(react-native@0.77.0)(react@19.0.0)
+      '@tencentcloud/chat': 3.5.7
+      core-js: 3.38.1
+      eventemitter3: 4.0.7
+      rtc-detect: 0.0.5
+      trtc-cloud-js-sdk: 2.9.3
+      tuikit-logger: 0.0.4-beta.1
+    dev: false
+
+  /@tencentcloud/call-uikit-vue2.6@4.0.8(vue@3.5.12):
+    resolution: {integrity: sha512-lRxCQ+V684FahkBWEhHhq1mOXgLJPkt/XEfNayYqQmzP8X01FlxLr+xJshnBbi6Hs6B/R1ak0d5vk8EsniQr1g==}
+    dependencies:
+      '@tencentcloud/call-engine-js': 3.2.0
+      '@tencentcloud/chat': 3.5.7
+      '@tencentcloud/tui-core': 2.5.1
       '@vue/composition-api': 1.7.2(vue@3.5.12)
-      tuicall-engine-webrtc: 3.1.5(react-native@0.77.0)(react@19.0.0)
     transitivePeerDependencies:
-      - react
-      - react-native
       - vue
     dev: false
 
-  /@tencentcloud/call-uikit-vue@3.3.9(react-native@0.77.0)(react@19.0.0):
-    resolution: {integrity: sha512-fFwQSAU+PVqantxbabRZa268BBBcv+hIX265Ag3ogYcrKq/hEo8XyH7nkjZL8wkQ2hFvnkwUgMMLXVeAgyMsng==}
+  /@tencentcloud/call-uikit-vue@4.0.8:
+    resolution: {integrity: sha512-eRq0yfhojCJYpywJ2WhRf0UI+oNM5EPOc3F6wskkvHasoySp0NdxwlusX3LAq0WevnxCJl3xZD6fPMnzpndqjQ==}
     dependencies:
-      '@tencentcloud/chat': 3.5.2(react-native@0.77.0)(react@19.0.0)
-      '@tencentcloud/tui-core': 2.4.0(react-native@0.77.0)(react@19.0.0)
-      tuicall-engine-webrtc: 3.1.5(react-native@0.77.0)(react@19.0.0)
-    transitivePeerDependencies:
-      - react
-      - react-native
+      '@tencentcloud/call-engine-js': 3.2.0
+      '@tencentcloud/chat': 3.5.7
+      '@tencentcloud/tui-core': 2.5.1
     dev: false
 
-  /@tencentcloud/call-uikit-wechat@3.3.9(react-native@0.77.0)(react@19.0.0):
+  /@tencentcloud/call-uikit-wechat@3.3.9:
     resolution: {integrity: sha512-SzEegN2nif7sQakA127AneF0I8Dby905JuE8xfZnm6jOYwb07J/lHN++zoxQ/coRbBpyG4VuuuM/JR87dGPb0w==}
     dependencies:
-      '@tencentcloud/chat': 3.5.2(react-native@0.77.0)(react@19.0.0)
-      '@tencentcloud/tui-core': 2.4.0(react-native@0.77.0)(react@19.0.0)
-      tuicall-engine-wx: 2.2.8(react-native@0.77.0)(react@19.0.0)
-    transitivePeerDependencies:
-      - react
-      - react-native
+      '@tencentcloud/chat': 3.5.7
+      '@tencentcloud/tui-core': 2.5.1
+      tuicall-engine-wx: 2.2.8
     dev: false
 
-  /@tencentcloud/chat-uikit-engine@2.0.3(react-native@0.77.0)(react@19.0.0):
+  /@tencentcloud/chat-uikit-engine@2.0.3:
     resolution: {integrity: sha512-UMAEsXOuZ+cgp97ebWnZRoOCRRzV/y0ONdvTF7bn4X+dVAYTTFxvrS4vGVC+6HNjGs3rZZc74ZmJCEVELSfkLA==}
     dependencies:
-      '@tencentcloud/chat': 3.5.2(react-native@0.77.0)(react@19.0.0)
+      '@tencentcloud/chat': 3.5.7
       tim-profanity-filter-plugin: 1.1.0
-      tim-upload-plugin: 1.4.2
-    transitivePeerDependencies:
-      - react
-      - react-native
+      tim-upload-plugin: 1.4.3
     dev: false
 
-  /@tencentcloud/chat-uikit-engine@2.4.0(react-native@0.77.0)(react@19.0.0):
-    resolution: {integrity: sha512-zE+bygEROaqgeMXXO+X2+2x8JH55mnb9c1sYQVQ507FlFT0maHxEQPOq8/EZBWowUDDlYoWbHh1EBAXEAI3dgA==}
+  /@tencentcloud/chat-uikit-engine@2.5.1:
+    resolution: {integrity: sha512-++6jXbEtc0HxVD4Zdbse1gp1pbMQfco9/NgQBenLwA38FI+v2kmtt5ccc/xHEMxqAqc671E8dB/zYZQTc1074g==}
     dependencies:
-      '@tencentcloud/chat': 3.5.2(react-native@0.77.0)(react@19.0.0)
+      '@tencentcloud/chat': 3.5.7
       tim-profanity-filter-plugin: 1.1.0
-      tim-upload-plugin: 1.4.2
-    transitivePeerDependencies:
-      - react
-      - react-native
+      tim-upload-plugin: 1.4.3
     dev: false
 
-  /@tencentcloud/chat-uikit-uniapp@2.0.3(@vue/runtime-dom@3.5.12)(react-native@0.77.0)(react@19.0.0)(vue@3.5.12)(webpack@5.78.0):
+  /@tencentcloud/chat-uikit-uniapp@2.0.3(@vue/runtime-dom@3.5.12)(vue@3.5.12)(webpack@5.78.0):
     resolution: {integrity: sha512-9zjM6lUN6ZcW+oGRomxOPiMRj1E13H9lMCQiwoLEeo/YS2OozbhNmiHx1C96iwDzL60aXslKtzhRUySmKBOJBg==}
     dependencies:
-      '@tencentcloud/call-uikit-vue': 3.3.9(react-native@0.77.0)(react@19.0.0)
-      '@tencentcloud/call-uikit-vue2.6': 3.3.9(react-native@0.77.0)(react@19.0.0)(vue@3.5.12)
-      '@tencentcloud/call-uikit-wechat': 3.3.9(react-native@0.77.0)(react@19.0.0)
-      '@tencentcloud/chat-uikit-engine': 2.4.0(react-native@0.77.0)(react@19.0.0)
-      '@tencentcloud/tui-core': 2.4.0(react-native@0.77.0)(react@19.0.0)
-      '@tencentcloud/tui-customer-service-plugin': 2.2.6(@tencentcloud/tui-core@2.4.0)(@vue/composition-api@1.7.2)(vue@3.5.12)
+      '@tencentcloud/call-uikit-vue': 4.0.8
+      '@tencentcloud/call-uikit-vue2.6': 4.0.8(vue@3.5.12)
+      '@tencentcloud/call-uikit-wechat': 3.3.9
+      '@tencentcloud/chat-uikit-engine': 2.5.1
+      '@tencentcloud/tui-core': 2.5.1
+      '@tencentcloud/tui-customer-service-plugin': 2.2.6(@tencentcloud/tui-core@2.5.1)(@vue/composition-api@1.7.2)(vue@3.5.12)
       '@types/lodash': 4.17.7
       '@vue/composition-api': 1.7.2(vue@3.5.12)
       dayjs: 1.11.13
@@ -7686,8 +7488,6 @@
       - fibers
       - node-sass
       - pug
-      - react
-      - react-native
       - rollup
       - supports-color
       - vue
@@ -7695,72 +7495,48 @@
       - webpack-sources
     dev: false
 
-  /@tencentcloud/chat@3.5.2(react-native@0.77.0)(react@19.0.0):
-    resolution: {integrity: sha512-UuGswGE3jaPgAFHA5kMDASI4Vq5p3lzeK9YisN5kkl9dcxh7BKbxTp5qtD8Fy7tj4VcWbytCb6ytCufmThbDXA==}
-    dependencies:
-      '@tencentcloud/react-native-push': 1.1.0(react-native@0.77.0)(react@19.0.0)
-      '@tencentcloud/uni-app-push': 1.1.0
-    transitivePeerDependencies:
-      - react
-      - react-native
+  /@tencentcloud/chat@3.5.7:
+    resolution: {integrity: sha512-uxACmaFPqV8jXcORBwVSHc0qgKvnHzRg9kC8kHAqCGbsnsm8525JwFzU6ByckGCNqNWUx/5W70EISYAboLuTvQ==}
     dev: false
 
-  /@tencentcloud/react-native-push@1.1.0(react-native@0.77.0)(react@19.0.0):
-    resolution: {integrity: sha512-6TvPhNnKrBvd6j9dUwFLpkmV9WkdkaQstNvzdK1nIWQgWCTJGFnyiNDEn8zwN2VZkG+MzjYwNqMcVkMMU9Ao2g==}
-    peerDependencies:
-      react: '*'
-      react-native: '>= 0.75'
+  /@tencentcloud/tui-core@2.5.1:
+    resolution: {integrity: sha512-aXZG0INkV9WvFUHgmVQRibCs10r2u/oVb8qAEjW3maytBiLWOJQiK7dzshK9fnfadJAWQ027cpR8lCKz5r5Tlw==}
     dependencies:
-      react: 19.0.0
-      react-native: 0.77.0(@babel/core@7.8.0)(@babel/preset-env@7.25.4)(react@19.0.0)
-    dev: false
-
-  /@tencentcloud/tui-core@2.4.0(react-native@0.77.0)(react@19.0.0):
-    resolution: {integrity: sha512-OFXHoi8CQlPtWvNRLApg0wonWbW79uoTgAqqffqWO1icx3xDYd2RZDHMzpBexOsE3CHpWokrfXrqiXkpOmYWew==}
-    dependencies:
-      '@tencentcloud/chat': 3.5.2(react-native@0.77.0)(react@19.0.0)
+      '@tencentcloud/chat': 3.5.7
       tim-profanity-filter-plugin: 1.1.0
-      tim-upload-plugin: 1.4.2
-    transitivePeerDependencies:
-      - react
-      - react-native
+      tim-upload-plugin: 1.4.3
     dev: false
 
-  /@tencentcloud/tui-customer-service-plugin@2.0.3(@tencentcloud/tui-core@2.4.0)(@vue/composition-api@1.7.2)(vue@3.5.12):
+  /@tencentcloud/tui-customer-service-plugin@2.0.3(@tencentcloud/tui-core@2.5.1)(@vue/composition-api@1.7.2)(vue@3.5.12):
     resolution: {integrity: sha512-rATSTNEBvaZU3cvTh+mEiImJm5UTCcKGa7ORxUVjdHzxjNwViJJ32RspHUSo5G/3cTkt5SB8JN+lD5gKSnfTiw==}
     peerDependencies:
       '@tencentcloud/tui-core': latest
       '@vue/composition-api': ^1.0.0-rc.1
-      vue: ^2.0.0 || >=3.0.0
+      vue: 3.5.12
     peerDependenciesMeta:
       '@vue/composition-api':
         optional: true
     dependencies:
-      '@tencentcloud/tui-core': 2.4.0(react-native@0.77.0)(react@19.0.0)
+      '@tencentcloud/tui-core': 2.5.1
       '@vue/composition-api': 1.7.2(vue@3.5.12)
       vue: 3.5.12(typescript@5.2.2)
     dev: false
 
-  /@tencentcloud/tui-customer-service-plugin@2.2.6(@tencentcloud/tui-core@2.4.0)(@vue/composition-api@1.7.2)(vue@3.5.12):
+  /@tencentcloud/tui-customer-service-plugin@2.2.6(@tencentcloud/tui-core@2.5.1)(@vue/composition-api@1.7.2)(vue@3.5.12):
     resolution: {integrity: sha512-Xc+Eii7qvptMqW3oONhl0UYKTJhotq0ZKdIVKy5fADMR1745aWwOxql5F0AOikuMR4iXEFQtxy7XvyfYp+o6UQ==}
     peerDependencies:
       '@tencentcloud/tui-core': latest
       '@vue/composition-api': ^1.0.0-rc.1
-      vue: ^2.0.0 || >=3.0.0
+      vue: 3.5.12
     peerDependenciesMeta:
       '@vue/composition-api':
         optional: true
     dependencies:
-      '@tencentcloud/tui-core': 2.4.0(react-native@0.77.0)(react@19.0.0)
+      '@tencentcloud/tui-core': 2.5.1
       '@tencentcloud/universal-api': 2.4.0
       '@vue/composition-api': 1.7.2(vue@3.5.12)
       marked: 4.0.0
       vue: 3.5.12(typescript@5.2.2)
-    dev: false
-
-  /@tencentcloud/uni-app-push@1.1.0:
-    resolution: {integrity: sha512-9z8zgAxExwuxzuxq1sFK3jmRJOKG/BNL8i9v+a3jVK/R7XL7ROE5EPWh4gRYABb9DC48NK9hwx2RFqPTlbR/xg==}
-    engines: {HBuilderX: ^3.6.8}
     dev: false
 
   /@tencentcloud/universal-api@2.4.0:
@@ -7803,35 +7579,6 @@
 
   /@types/archy@0.0.31:
     resolution: {integrity: sha512-v+dxizsFVyXgD3EpFuqT9YjdEjbJmPxNf1QIX9ohZOhxh1ZF2yhqv3vYaeum9lg3VghhxS5S0a6yldN9J9lPEQ==}
-
-  /@types/babel__core@7.20.5:
-    resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
-    dependencies:
-      '@babel/parser': 7.25.6
-      '@babel/types': 7.25.6
-      '@types/babel__generator': 7.6.8
-      '@types/babel__template': 7.4.4
-      '@types/babel__traverse': 7.20.6
-    dev: false
-
-  /@types/babel__generator@7.6.8:
-    resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
-    dependencies:
-      '@babel/types': 7.25.6
-    dev: false
-
-  /@types/babel__template@7.4.4:
-    resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
-    dependencies:
-      '@babel/parser': 7.25.6
-      '@babel/types': 7.25.6
-    dev: false
-
-  /@types/babel__traverse@7.20.6:
-    resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
-    dependencies:
-      '@babel/types': 7.25.6
-    dev: false
 
   /@types/body-parser@1.19.5:
     resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
@@ -7919,12 +7666,6 @@
       '@types/minimatch': 5.1.2
       '@types/node': 22.5.5
 
-  /@types/graceful-fs@4.1.9:
-    resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
-    dependencies:
-      '@types/node': 22.5.5
-    dev: false
-
   /@types/html-minifier-terser@6.1.0:
     resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
     dev: true
@@ -7945,16 +7686,19 @@
 
   /@types/istanbul-lib-coverage@2.0.6:
     resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
+    dev: true
 
   /@types/istanbul-lib-report@3.0.3:
     resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
     dependencies:
       '@types/istanbul-lib-coverage': 2.0.6
+    dev: true
 
   /@types/istanbul-reports@3.0.4:
     resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
     dependencies:
       '@types/istanbul-lib-report': 3.0.3
+    dev: true
 
   /@types/json-schema@7.0.15:
     resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
@@ -7999,6 +7743,7 @@
     resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
     dependencies:
       '@types/node': 22.5.5
+    dev: true
 
   /@types/node@12.20.55:
     resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
@@ -8088,10 +7833,6 @@
       '@types/node': 22.5.5
     dev: true
 
-  /@types/stack-utils@2.0.3:
-    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
-    dev: false
-
   /@types/vinyl@2.0.12:
     resolution: {integrity: sha512-Sr2fYMBUVGYq8kj3UthXFAu5UN6ZW+rYr4NACjZQJvHvj+c8lYv0CahmZ2P/r7iUkN44gGUBwqxZkrKXYPb7cw==}
     dependencies:
@@ -8111,18 +7852,13 @@
 
   /@types/yargs-parser@21.0.3:
     resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
+    dev: true
 
   /@types/yargs@15.0.19:
     resolution: {integrity: sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==}
     dependencies:
       '@types/yargs-parser': 21.0.3
     dev: true
-
-  /@types/yargs@17.0.33:
-    resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==}
-    dependencies:
-      '@types/yargs-parser': 21.0.3
-    dev: false
 
   /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.23.1)(typescript@5.2.2):
     resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==}
@@ -8453,10 +8189,10 @@
       '@vue/compiler-dom': 3.5.12
       '@vue/shared': 3.5.12
 
-  /@vue/component-compiler-utils@3.3.0(lodash@4.17.21)(react@19.0.0):
+  /@vue/component-compiler-utils@3.3.0(lodash@4.17.21):
     resolution: {integrity: sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==}
     dependencies:
-      consolidate: 0.15.1(lodash@4.17.21)(react@19.0.0)
+      consolidate: 0.15.1(lodash@4.17.21)
       hash-sum: 1.0.2
       lru-cache: 4.1.5
       merge-source-map: 1.1.0
@@ -8525,7 +8261,7 @@
   /@vue/composition-api@1.7.2(vue@3.5.12):
     resolution: {integrity: sha512-M8jm9J/laYrYT02665HkZ5l2fWTK4dcVg3BsDHm/pfz+MjDYwX+9FUaZyGwEyXEDonQYRCo0H7aLgdklcIELjw==}
     peerDependencies:
-      vue: '>= 2.5 < 2.7'
+      vue: 3.5.12
     dependencies:
       vue: 3.5.12(typescript@5.2.2)
     dev: false
@@ -8747,13 +8483,6 @@
     deprecated: Use your platform's native atob() and btoa() methods instead
     dev: true
 
-  /abort-controller@3.0.0:
-    resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
-    engines: {node: '>=6.5'}
-    dependencies:
-      event-target-shim: 5.0.1
-    dev: false
-
   /abortcontroller-polyfill@1.7.5:
     resolution: {integrity: sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==}
     dev: false
@@ -8764,11 +8493,12 @@
     dependencies:
       mime-types: 2.1.35
       negotiator: 0.6.3
+    dev: true
 
   /acorn-globals@7.0.1:
     resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
     dependencies:
-      acorn: 8.14.0
+      acorn: 8.15.0
       acorn-walk: 8.3.4
     dev: true
 
@@ -8780,19 +8510,19 @@
     dependencies:
       acorn: 8.14.0
 
-  /acorn-jsx@5.3.2(acorn@8.14.0):
+  /acorn-jsx@5.3.2(acorn@8.15.0):
     resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
     peerDependencies:
       acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
     dependencies:
-      acorn: 8.14.0
+      acorn: 8.15.0
     dev: true
 
   /acorn-walk@8.3.4:
     resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
     engines: {node: '>=0.4.0'}
     dependencies:
-      acorn: 8.14.0
+      acorn: 8.15.0
     dev: true
 
   /acorn@6.4.2:
@@ -8803,6 +8533,11 @@
 
   /acorn@8.14.0:
     resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
+    engines: {node: '>=0.4.0'}
+    hasBin: true
+
+  /acorn@8.15.0:
+    resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
     engines: {node: '>=0.4.0'}
     hasBin: true
 
@@ -8914,10 +8649,6 @@
       require-from-string: 2.0.2
     dev: true
 
-  /anser@1.4.10:
-    resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==}
-    dev: false
-
   /ansi-align@3.0.1:
     resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
     dependencies:
@@ -8979,11 +8710,6 @@
     dependencies:
       color-convert: 2.0.1
 
-  /ansi-styles@5.2.0:
-    resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
-    engines: {node: '>=10'}
-    dev: false
-
   /ansi-styles@6.2.1:
     resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
     engines: {node: '>=12'}
@@ -9022,6 +8748,7 @@
     resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
     dependencies:
       sprintf-js: 1.0.3
+    dev: true
 
   /argparse@2.0.1:
     resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
@@ -9066,6 +8793,7 @@
 
   /asap@2.0.6:
     resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
+    dev: true
 
   /asn1@0.2.6:
     resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==}
@@ -9085,21 +8813,10 @@
       tslib: 2.7.0
     dev: true
 
-  /ast-types@0.16.1:
-    resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==}
-    engines: {node: '>=4'}
-    dependencies:
-      tslib: 2.7.0
-    dev: false
-
   /astral-regex@2.0.0:
     resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
     engines: {node: '>=8'}
     dev: true
-
-  /async-limiter@1.0.1:
-    resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==}
-    dev: false
 
   /async-retry@1.3.3:
     resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==}
@@ -9369,24 +9086,6 @@
       - supports-color
     dev: true
 
-  /babel-jest@29.7.0(@babel/core@7.8.0):
-    resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    peerDependencies:
-      '@babel/core': ^7.8.0
-    dependencies:
-      '@babel/core': 7.8.0
-      '@jest/transform': 29.7.0
-      '@types/babel__core': 7.20.5
-      babel-plugin-istanbul: 6.1.1
-      babel-preset-jest: 29.6.3(@babel/core@7.8.0)
-      chalk: 4.1.2
-      graceful-fs: 4.2.11
-      slash: 3.0.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: false
-
   /babel-loader@8.2.1(@babel/core@7.8.0)(webpack@5.78.0):
     resolution: {integrity: sha512-dMF8sb2KQ8kJl21GUjkW1HWmcsL39GOV5vnzjqrCzEPNY0S0UfMLnumidiwIajDSBmKhYf5iRW+HXaM4cvCKBw==}
     engines: {node: '>= 8.9'}
@@ -9428,29 +9127,6 @@
     transitivePeerDependencies:
       - supports-color
     dev: true
-
-  /babel-plugin-istanbul@6.1.1:
-    resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
-    engines: {node: '>=8'}
-    dependencies:
-      '@babel/helper-plugin-utils': 7.26.5
-      '@istanbuljs/load-nyc-config': 1.1.0
-      '@istanbuljs/schema': 0.1.3
-      istanbul-lib-instrument: 5.2.1
-      test-exclude: 6.0.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: false
-
-  /babel-plugin-jest-hoist@29.6.3:
-    resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@babel/template': 7.25.0
-      '@babel/types': 7.25.6
-      '@types/babel__core': 7.20.5
-      '@types/babel__traverse': 7.20.6
-    dev: false
 
   /babel-plugin-lodash@3.3.4:
     resolution: {integrity: sha512-yDZLjK7TCkWl1gpBeBGmuaDIFhZKmkoL+Cu2MUUjv5VxUZx/z7tBGBCBcQs5RI1Bkz5LLmNdjx7paOyQtMovyg==}
@@ -9509,6 +9185,7 @@
       semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.2):
     resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==}
@@ -9531,6 +9208,7 @@
       core-js-compat: 3.38.1
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.21.4):
     resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==}
@@ -9574,6 +9252,7 @@
       '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.8.0)
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /babel-plugin-syntax-async-functions@6.13.0:
     resolution: {integrity: sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw==}
@@ -9614,12 +9293,6 @@
   /babel-plugin-syntax-function-bind@6.13.0:
     resolution: {integrity: sha512-m8yMoh9LIiNyeLdQs5I9G+3YXo4nqVsKQkk7YplrG4qAFbNi9hkZlow8HDHxhH9QOVFPHmy8+03NzRCdyChIKw==}
     dev: true
-
-  /babel-plugin-syntax-hermes-parser@0.25.1:
-    resolution: {integrity: sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ==}
-    dependencies:
-      hermes-parser: 0.25.1
-    dev: false
 
   /babel-plugin-syntax-object-rest-spread@6.13.0:
     resolution: {integrity: sha512-C4Aq+GaAj83pRQ0EFgTvw5YO6T3Qz2KGrNRwIj9mSoNHVvdZY4KO2uA6HNtNXCw993iSZnckY1aLW8nOi8i4+w==}
@@ -9894,14 +9567,6 @@
       babel-runtime: 6.26.0
     dev: true
 
-  /babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.8.0):
-    resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==}
-    dependencies:
-      '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.8.0)
-    transitivePeerDependencies:
-      - '@babel/core'
-    dev: false
-
   /babel-plugin-transform-function-bind@6.22.0:
     resolution: {integrity: sha512-9Ec4KYf1GurT39mlUjDSlN7HWSlB3u3mWRMogQbb+Y88lO0ZM3rJ0ADhPnQwWK9TbO6e/4E+Et1rrfGY9mFimA==}
     dependencies:
@@ -9939,29 +9604,6 @@
       babel-types: 6.26.0
     dev: true
 
-  /babel-preset-current-node-syntax@1.1.0(@babel/core@7.8.0):
-    resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==}
-    peerDependencies:
-      '@babel/core': ^7.0.0
-    dependencies:
-      '@babel/core': 7.8.0
-      '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.8.0)
-      '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.8.0)
-      '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.8.0)
-      '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.8.0)
-      '@babel/plugin-syntax-import-attributes': 7.25.6(@babel/core@7.8.0)
-      '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.8.0)
-      '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.8.0)
-      '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.8.0)
-      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.8.0)
-      '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.8.0)
-      '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.8.0)
-      '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.8.0)
-      '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.8.0)
-      '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.8.0)
-      '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.8.0)
-    dev: false
-
   /babel-preset-es2015@6.24.1:
     resolution: {integrity: sha512-XfwUqG1Ry6R43m4Wfob+vHbIVBIqTg/TJY4Snku1iIzeH7mUnwHA8Vagmv+ZQbPwhS8HgsdQvy28Py3k5zpoFQ==}
     deprecated: '馃檶  Thanks for using Babel: we recommend using babel-preset-env now: please read https://babeljs.io/env to update!'
@@ -9993,17 +9635,6 @@
     transitivePeerDependencies:
       - supports-color
     dev: true
-
-  /babel-preset-jest@29.6.3(@babel/core@7.8.0):
-    resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    peerDependencies:
-      '@babel/core': ^7.0.0
-    dependencies:
-      '@babel/core': 7.8.0
-      babel-plugin-jest-hoist: 29.6.3
-      babel-preset-current-node-syntax: 1.1.0(@babel/core@7.8.0)
-    dev: false
 
   /babel-preset-stage-0@6.24.1:
     resolution: {integrity: sha512-MJD+xBbpsApbKlzAX0sOBF+VeFaUmv5s8FSOO7SSZpes1QgphCjq/UIGRFWSmQ/0i5bqQjLGCTXGGXqcLQ9JDA==}
@@ -10262,6 +9893,7 @@
   /boolean@3.2.0:
     resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==}
     deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
+    requiresBuild: true
     dev: true
     optional: true
 
@@ -10319,12 +9951,6 @@
       electron-to-chromium: 1.5.25
       node-releases: 2.0.18
       update-browserslist-db: 1.1.0(browserslist@4.23.3)
-
-  /bser@2.1.1:
-    resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
-    dependencies:
-      node-int64: 0.4.0
-    dev: false
 
   /buffer-alloc-unsafe@1.1.0:
     resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==}
@@ -10447,20 +10073,6 @@
       get-intrinsic: 1.2.4
       set-function-length: 1.2.2
 
-  /caller-callsite@2.0.0:
-    resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==}
-    engines: {node: '>=4'}
-    dependencies:
-      callsites: 2.0.0
-    dev: false
-
-  /caller-path@2.0.0:
-    resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==}
-    engines: {node: '>=4'}
-    dependencies:
-      caller-callsite: 2.0.0
-    dev: false
-
   /callsite-record@4.1.5:
     resolution: {integrity: sha512-OqeheDucGKifjQRx524URgV4z4NaKjocGhygTptDea+DLROre4ZEecA4KXDq+P7qlGCohYVNOh3qr+y5XH5Ftg==}
     dependencies:
@@ -10476,11 +10088,6 @@
   /callsite@1.0.0:
     resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==}
     dev: true
-
-  /callsites@2.0.0:
-    resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==}
-    engines: {node: '>=4'}
-    dev: false
 
   /callsites@3.1.0:
     resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
@@ -10513,10 +10120,12 @@
   /camelcase@5.3.1:
     resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
     engines: {node: '>=6'}
+    dev: true
 
   /camelcase@6.3.0:
     resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
     engines: {node: '>=10'}
+    dev: true
 
   /camelcase@7.0.1:
     resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
@@ -10623,42 +10232,18 @@
     dependencies:
       readdirp: 4.0.1
 
-  /chrome-launcher@0.15.2:
-    resolution: {integrity: sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==}
-    engines: {node: '>=12.13.0'}
-    hasBin: true
-    dependencies:
-      '@types/node': 22.5.5
-      escape-string-regexp: 4.0.0
-      is-wsl: 2.2.0
-      lighthouse-logger: 1.4.2
-    transitivePeerDependencies:
-      - supports-color
-    dev: false
-
   /chrome-trace-event@1.0.4:
     resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==}
     engines: {node: '>=6.0'}
 
-  /chromium-edge-launcher@0.2.0:
-    resolution: {integrity: sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==}
-    dependencies:
-      '@types/node': 22.5.5
-      escape-string-regexp: 4.0.0
-      is-wsl: 2.2.0
-      lighthouse-logger: 1.4.2
-      mkdirp: 1.0.4
-      rimraf: 3.0.2
-    transitivePeerDependencies:
-      - supports-color
-    dev: false
-
   /ci-info@2.0.0:
     resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==}
+    dev: true
 
   /ci-info@3.9.0:
     resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
     engines: {node: '>=8'}
+    dev: true
 
   /classnames@2.5.1:
     resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==}
@@ -10758,6 +10343,7 @@
       string-width: 4.2.3
       strip-ansi: 6.0.1
       wrap-ansi: 7.0.0
+    dev: true
 
   /clone-buffer@1.0.0:
     resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==}
@@ -10849,6 +10435,7 @@
   /commander@12.1.0:
     resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
     engines: {node: '>=18'}
+    dev: true
 
   /commander@2.11.0:
     resolution: {integrity: sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==}
@@ -11009,23 +10596,11 @@
     engines: {node: '>=0.8'}
     dev: true
 
-  /connect@3.7.0:
-    resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==}
-    engines: {node: '>= 0.10.0'}
-    dependencies:
-      debug: 2.6.9
-      finalhandler: 1.1.2
-      parseurl: 1.3.3
-      utils-merge: 1.0.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: false
-
   /consola@2.15.3:
     resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
     dev: true
 
-  /consolidate@0.15.1(lodash@4.17.21)(react@19.0.0):
+  /consolidate@0.15.1(lodash@4.17.21):
     resolution: {integrity: sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==}
     engines: {node: '>= 0.10.0'}
     deprecated: Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog
@@ -11193,7 +10768,6 @@
     dependencies:
       bluebird: 3.7.2
       lodash: 4.17.21
-      react: 19.0.0
     dev: true
 
   /content-disposition@0.5.4:
@@ -11368,6 +10942,7 @@
 
   /convert-source-map@1.9.0:
     resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
+    dev: true
 
   /convert-source-map@2.0.0:
     resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
@@ -11472,16 +11047,6 @@
       ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.2.2)
       typescript: 5.2.2
     dev: true
-
-  /cosmiconfig@5.2.1:
-    resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==}
-    engines: {node: '>=4'}
-    dependencies:
-      import-fresh: 2.0.0
-      is-directory: 0.3.1
-      js-yaml: 3.14.1
-      parse-json: 4.0.0
-    dev: false
 
   /cosmiconfig@7.1.0:
     resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
@@ -11849,6 +11414,7 @@
         optional: true
     dependencies:
       ms: 2.0.0
+    dev: true
 
   /debug@3.1.0:
     resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==}
@@ -12132,6 +11698,7 @@
   /depd@2.0.0:
     resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
     engines: {node: '>= 0.8'}
+    dev: true
 
   /deprecation@2.3.1:
     resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
@@ -12144,6 +11711,7 @@
   /destroy@1.2.0:
     resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
     engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+    dev: true
 
   /detect-file@1.0.0:
     resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==}
@@ -12374,6 +11942,7 @@
 
   /ee-first@1.1.1:
     resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+    dev: true
 
   /ejs@3.1.10:
     resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
@@ -12405,6 +11974,7 @@
 
   /emoji-regex@8.0.0:
     resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+    dev: true
 
   /emoji-regex@9.2.2:
     resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
@@ -12417,10 +11987,12 @@
   /encodeurl@1.0.2:
     resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
     engines: {node: '>= 0.8'}
+    dev: true
 
   /encodeurl@2.0.0:
     resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
     engines: {node: '>= 0.8'}
+    dev: true
 
   /end-of-stream@1.4.4:
     resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
@@ -12520,12 +12092,7 @@
     resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
     dependencies:
       is-arrayish: 0.2.1
-
-  /error-stack-parser@2.1.4:
-    resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
-    dependencies:
-      stackframe: 1.3.4
-    dev: false
+    dev: true
 
   /es-define-property@1.0.0:
     resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
@@ -12546,6 +12113,7 @@
 
   /es6-error@4.1.1:
     resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==}
+    requiresBuild: true
     dev: true
     optional: true
 
@@ -12818,19 +12386,16 @@
 
   /escape-html@1.0.3:
     resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+    dev: true
 
   /escape-string-regexp@1.0.5:
     resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
     engines: {node: '>=0.8.0'}
 
-  /escape-string-regexp@2.0.0:
-    resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
-    engines: {node: '>=8'}
-    dev: false
-
   /escape-string-regexp@4.0.0:
     resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
     engines: {node: '>=10'}
+    dev: true
 
   /escape-string-regexp@5.0.0:
     resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
@@ -13043,8 +12608,8 @@
     resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dependencies:
-      acorn: 8.14.0
-      acorn-jsx: 5.3.2(acorn@8.14.0)
+      acorn: 8.15.0
+      acorn-jsx: 5.3.2(acorn@8.15.0)
       eslint-visitor-keys: 3.4.3
     dev: true
 
@@ -13052,6 +12617,7 @@
     resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
     engines: {node: '>=4'}
     hasBin: true
+    dev: true
 
   /esquery@1.6.0:
     resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
@@ -13090,15 +12656,10 @@
   /etag@1.8.1:
     resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
     engines: {node: '>= 0.6'}
-
-  /event-target-shim@5.0.1:
-    resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
-    engines: {node: '>=6'}
-    dev: false
+    dev: true
 
   /eventemitter3@4.0.7:
     resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
-    dev: true
 
   /eventemitter3@5.0.1:
     resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
@@ -13163,10 +12724,6 @@
     dependencies:
       homedir-polyfill: 1.0.3
     dev: true
-
-  /exponential-backoff@3.1.2:
-    resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==}
-    dev: false
 
   /expr-parser@1.0.0:
     resolution: {integrity: sha512-ncuWTCWH0M5KbaYikXxZ3FG3Q+FTYIEXeXAbxYscdZLFNnR5Le5gRU2r/a/JUZHnxwBDZcxWEWzCoPQlW9Engg==}
@@ -13312,12 +12869,6 @@
       websocket-driver: 0.7.4
     dev: true
 
-  /fb-watchman@2.0.2:
-    resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
-    dependencies:
-      bser: 2.1.1
-    dev: false
-
   /fd-slicer@1.1.0:
     resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
     dependencies:
@@ -13425,21 +12976,6 @@
     resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==}
     engines: {node: '>=0.10.0'}
 
-  /finalhandler@1.1.2:
-    resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==}
-    engines: {node: '>= 0.8'}
-    dependencies:
-      debug: 2.6.9
-      encodeurl: 1.0.2
-      escape-html: 1.0.3
-      on-finished: 2.3.0
-      parseurl: 1.3.3
-      statuses: 1.5.0
-      unpipe: 1.0.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: false
-
   /finalhandler@1.3.1:
     resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==}
     engines: {node: '>= 0.8'}
@@ -13484,6 +13020,7 @@
     dependencies:
       locate-path: 5.0.0
       path-exists: 4.0.0
+    dev: true
 
   /find-up@5.0.0:
     resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
@@ -13542,15 +13079,6 @@
   /flatted@3.3.1:
     resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
     dev: true
-
-  /flow-enums-runtime@0.0.6:
-    resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==}
-    dev: false
-
-  /flow-parser@0.259.1:
-    resolution: {integrity: sha512-xiXLmMH2Z7OmdE9Q+MjljUMr/rbemFqZIRxaeZieVScG4HzQrKKhNcCYZbWTGpoN7ZPi7z8ClQbeVPq6t5AszQ==}
-    engines: {node: '>=0.4.0'}
-    dev: false
 
   /follow-redirects@1.15.9:
     resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
@@ -13614,6 +13142,7 @@
   /fresh@0.5.2:
     resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
     engines: {node: '>= 0.6'}
+    dev: true
 
   /from2@2.3.0:
     resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==}
@@ -13676,6 +13205,7 @@
   /get-caller-file@2.0.5:
     resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
     engines: {node: 6.* || 8.* || >= 10.*}
+    dev: true
 
   /get-east-asian-width@1.2.0:
     resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==}
@@ -13691,11 +13221,6 @@
       has-proto: 1.0.3
       has-symbols: 1.0.3
       hasown: 2.0.2
-
-  /get-package-type@0.1.0:
-    resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
-    engines: {node: '>=8.0.0'}
-    dev: false
 
   /get-port@5.1.1:
     resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==}
@@ -13996,6 +13521,7 @@
   /globalthis@1.0.4:
     resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
     engines: {node: '>= 0.4'}
+    requiresBuild: true
     dependencies:
       define-properties: 1.2.1
       gopd: 1.0.1
@@ -14243,16 +13769,6 @@
     hasBin: true
     dev: true
 
-  /hermes-estree@0.25.1:
-    resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==}
-    dev: false
-
-  /hermes-parser@0.25.1:
-    resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==}
-    dependencies:
-      hermes-estree: 0.25.1
-    dev: false
-
   /highlight-es@1.0.3:
     resolution: {integrity: sha512-s/SIX6yp/5S1p8aC/NRDC1fwEb+myGIfp8/TzZz0rtAv8fzsdX7vGl3Q1TrXCsczFq8DI3CBFBCySPClfBSdbg==}
     dependencies:
@@ -14422,6 +13938,7 @@
       setprototypeof: 1.2.0
       statuses: 2.0.1
       toidentifier: 1.0.1
+    dev: true
 
   /http-parser-js@0.5.8:
     resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
@@ -14606,28 +14123,12 @@
     dev: true
     optional: true
 
-  /image-size@1.2.0:
-    resolution: {integrity: sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w==}
-    engines: {node: '>=16.x'}
-    hasBin: true
-    dependencies:
-      queue: 6.0.2
-    dev: false
-
   /immediate@3.0.6:
     resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
     dev: true
 
   /immutable@4.3.7:
     resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==}
-
-  /import-fresh@2.0.0:
-    resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==}
-    engines: {node: '>=4'}
-    dependencies:
-      caller-path: 2.0.0
-      resolve-from: 3.0.0
-    dev: false
 
   /import-fresh@3.3.0:
     resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
@@ -14650,6 +14151,7 @@
   /imurmurhash@0.1.4:
     resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
     engines: {node: '>=0.8.19'}
+    dev: true
 
   /indent-string@4.0.0:
     resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
@@ -14766,6 +14268,7 @@
     resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
     dependencies:
       loose-envify: 1.4.0
+    dev: true
 
   /ip-address@9.0.5:
     resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
@@ -14791,6 +14294,7 @@
 
   /is-arrayish@0.2.1:
     resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+    dev: true
 
   /is-binary-path@2.1.0:
     resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
@@ -14822,15 +14326,11 @@
     dependencies:
       hasown: 2.0.2
 
-  /is-directory@0.3.1:
-    resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==}
-    engines: {node: '>=0.10.0'}
-    dev: false
-
   /is-docker@2.2.1:
     resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
     engines: {node: '>=8'}
     hasBin: true
+    dev: true
 
   /is-docker@3.0.0:
     resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
@@ -14854,6 +14354,7 @@
   /is-fullwidth-code-point@3.0.0:
     resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
     engines: {node: '>=8'}
+    dev: true
 
   /is-fullwidth-code-point@4.0.0:
     resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
@@ -15059,6 +14560,7 @@
     engines: {node: '>=8'}
     dependencies:
       is-docker: 2.2.1
+    dev: true
 
   /is-wsl@3.1.0:
     resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
@@ -15115,24 +14617,6 @@
       lodash.uniqby: 4.7.0
     dev: true
 
-  /istanbul-lib-coverage@3.2.2:
-    resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
-    engines: {node: '>=8'}
-    dev: false
-
-  /istanbul-lib-instrument@5.2.1:
-    resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
-    engines: {node: '>=8'}
-    dependencies:
-      '@babel/core': 7.25.2
-      '@babel/parser': 7.25.6
-      '@istanbuljs/schema': 0.1.3
-      istanbul-lib-coverage: 3.2.2
-      semver: 6.3.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: false
-
   /isurl@1.0.0:
     resolution: {integrity: sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==}
     engines: {node: '>= 4'}
@@ -15173,95 +14657,6 @@
     resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==}
     dev: true
 
-  /jest-environment-node@29.7.0:
-    resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/environment': 29.7.0
-      '@jest/fake-timers': 29.7.0
-      '@jest/types': 29.6.3
-      '@types/node': 22.5.5
-      jest-mock: 29.7.0
-      jest-util: 29.7.0
-    dev: false
-
-  /jest-get-type@29.6.3:
-    resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dev: false
-
-  /jest-haste-map@29.7.0:
-    resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/types': 29.6.3
-      '@types/graceful-fs': 4.1.9
-      '@types/node': 22.5.5
-      anymatch: 3.1.3
-      fb-watchman: 2.0.2
-      graceful-fs: 4.2.11
-      jest-regex-util: 29.6.3
-      jest-util: 29.7.0
-      jest-worker: 29.7.0
-      micromatch: 4.0.8
-      walker: 1.0.8
-    optionalDependencies:
-      fsevents: 2.3.3
-    dev: false
-
-  /jest-message-util@29.7.0:
-    resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@babel/code-frame': 7.24.7
-      '@jest/types': 29.6.3
-      '@types/stack-utils': 2.0.3
-      chalk: 4.1.2
-      graceful-fs: 4.2.11
-      micromatch: 4.0.8
-      pretty-format: 29.7.0
-      slash: 3.0.0
-      stack-utils: 2.0.6
-    dev: false
-
-  /jest-mock@29.7.0:
-    resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/types': 29.6.3
-      '@types/node': 22.5.5
-      jest-util: 29.7.0
-    dev: false
-
-  /jest-regex-util@29.6.3:
-    resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dev: false
-
-  /jest-util@29.7.0:
-    resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/types': 29.6.3
-      '@types/node': 22.5.5
-      chalk: 4.1.2
-      ci-info: 3.9.0
-      graceful-fs: 4.2.11
-      picomatch: 2.3.1
-    dev: false
-
-  /jest-validate@29.7.0:
-    resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/types': 29.6.3
-      camelcase: 6.3.0
-      chalk: 4.1.2
-      jest-get-type: 29.6.3
-      leven: 3.1.0
-      pretty-format: 29.7.0
-    dev: false
-
   /jest-worker@27.5.1:
     resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
     engines: {node: '>= 10.13.0'}
@@ -15269,16 +14664,6 @@
       '@types/node': 22.5.5
       merge-stream: 2.0.0
       supports-color: 8.1.1
-
-  /jest-worker@29.7.0:
-    resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@types/node': 22.5.5
-      jest-util: 29.7.0
-      merge-stream: 2.0.0
-      supports-color: 8.1.1
-    dev: false
 
   /jimp@0.22.12:
     resolution: {integrity: sha512-R5jZaYDnfkxKJy1dwLpj/7cvyjxiclxU3F4TrI/J4j2rS0niq6YDUMoPn5hs8GDpO+OZGo7Ky057CRtWesyhfg==}
@@ -15351,8 +14736,8 @@
     resolution: {integrity: sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==}
     dev: true
 
-  /js-tokens@9.0.0:
-    resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==}
+  /js-tokens@9.0.1:
+    resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
     dev: true
 
   /js-yaml@3.14.1:
@@ -15361,6 +14746,7 @@
     dependencies:
       argparse: 1.0.10
       esprima: 4.0.1
+    dev: true
 
   /js-yaml@4.1.0:
     resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
@@ -15377,47 +14763,6 @@
     resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
     dev: true
 
-  /jsc-android@250231.0.0:
-    resolution: {integrity: sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==}
-    dev: false
-
-  /jsc-safe-url@0.2.4:
-    resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==}
-    dev: false
-
-  /jscodeshift@17.1.2(@babel/preset-env@7.25.4):
-    resolution: {integrity: sha512-uime4vFOiZ1o3ICT4Sm/AbItHEVw2oCxQ3a0egYVy3JMMOctxe07H3SKL1v175YqjMt27jn1N+3+Bj9SKDNgdQ==}
-    engines: {node: '>=16'}
-    hasBin: true
-    peerDependencies:
-      '@babel/preset-env': ^7.1.6
-    peerDependenciesMeta:
-      '@babel/preset-env':
-        optional: true
-    dependencies:
-      '@babel/core': 7.25.2
-      '@babel/parser': 7.25.6
-      '@babel/plugin-transform-class-properties': 7.25.4(@babel/core@7.25.2)
-      '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2)
-      '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2)
-      '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2)
-      '@babel/plugin-transform-private-methods': 7.25.4(@babel/core@7.25.2)
-      '@babel/preset-env': 7.25.4(@babel/core@7.8.0)
-      '@babel/preset-flow': 7.25.9(@babel/core@7.25.2)
-      '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2)
-      '@babel/register': 7.24.6(@babel/core@7.25.2)
-      flow-parser: 0.259.1
-      graceful-fs: 4.2.11
-      micromatch: 4.0.8
-      neo-async: 2.6.2
-      picocolors: 1.1.0
-      recast: 0.23.9
-      tmp: 0.2.3
-      write-file-atomic: 5.0.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: false
-
   /jsdom@21.1.2:
     resolution: {integrity: sha512-sCpFmK2jv+1sjff4u7fzft+pUh2KSUbUrEHYHyfSIbGTIcmnjyp83qg6qLwdJ/I3LpTXx33ACxeRL7Lsyc6lGQ==}
     engines: {node: '>=14'}
@@ -15428,7 +14773,7 @@
         optional: true
     dependencies:
       abab: 2.0.6
-      acorn: 8.14.0
+      acorn: 8.15.0
       acorn-globals: 7.0.1
       cssstyle: 3.0.0
       data-urls: 4.0.0
@@ -15483,6 +14828,7 @@
 
   /json-parse-better-errors@1.0.2:
     resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
+    dev: true
 
   /json-parse-even-better-errors@2.3.1:
     resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
@@ -15684,11 +15030,6 @@
       source-map: 0.6.1
     dev: true
 
-  /leven@3.1.0:
-    resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
-    engines: {node: '>=6'}
-    dev: false
-
   /levn@0.4.1:
     resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
     engines: {node: '>= 0.8.0'}
@@ -15706,15 +15047,6 @@
     dependencies:
       immediate: 3.0.6
     dev: true
-
-  /lighthouse-logger@1.4.2:
-    resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==}
-    dependencies:
-      debug: 2.6.9
-      marky: 1.2.5
-    transitivePeerDependencies:
-      - supports-color
-    dev: false
 
   /lightningcss-darwin-arm64@1.27.0:
     resolution: {integrity: sha512-Gl/lqIXY+d+ySmMbgDf0pgaWSqrWYxVHoc88q+Vhf2YNzZ8DwoRzGt5NZDVqqIW5ScpSnmmjcgXP87Dn2ylSSQ==}
@@ -15949,6 +15281,7 @@
     engines: {node: '>=8'}
     dependencies:
       p-locate: 4.1.0
+    dev: true
 
   /locate-path@6.0.0:
     resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
@@ -16021,10 +15354,6 @@
     resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
     dev: true
 
-  /lodash.throttle@4.1.1:
-    resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
-    dev: false
-
   /lodash.truncate@4.4.2:
     resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==}
     dev: true
@@ -16082,6 +15411,7 @@
     hasBin: true
     dependencies:
       js-tokens: 4.0.0
+    dev: true
 
   /lower-case@1.1.4:
     resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==}
@@ -16176,12 +15506,6 @@
     resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
     dev: true
 
-  /makeerror@1.0.12:
-    resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
-    dependencies:
-      tmpl: 1.0.5
-    dev: false
-
   /map-obj@1.0.1:
     resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
     engines: {node: '>=0.10.0'}
@@ -16198,13 +15522,10 @@
     hasBin: true
     dev: false
 
-  /marky@1.2.5:
-    resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==}
-    dev: false
-
   /matcher@3.0.0:
     resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==}
     engines: {node: '>=10'}
+    requiresBuild: true
     dependencies:
       escape-string-regexp: 4.0.0
     dev: true
@@ -16277,10 +15598,6 @@
     dependencies:
       fs-monkey: 1.0.6
     dev: true
-
-  /memoize-one@5.2.1:
-    resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
-    dev: false
 
   /memoize-one@6.0.0:
     resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
@@ -16360,86 +15677,6 @@
     engines: {node: '>= 0.6'}
     dev: true
 
-  /metro-babel-transformer@0.81.1:
-    resolution: {integrity: sha512-JECKDrQaUnDmj0x/Q/c8c5YwsatVx38Lu+BfCwX9fR8bWipAzkvJocBpq5rOAJRDXRgDcPv2VO4Q4nFYrpYNQg==}
-    engines: {node: '>=18.18'}
-    dependencies:
-      '@babel/core': 7.25.2
-      flow-enums-runtime: 0.0.6
-      hermes-parser: 0.25.1
-      nullthrows: 1.1.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: false
-
-  /metro-cache-key@0.81.1:
-    resolution: {integrity: sha512-5fDaHR1yTvpaQuwMAeEoZGsVyvjrkw9IFAS7WixSPvaNY5YfleqoJICPc6hbXFJjvwCCpwmIYFkjqzR/qJ6yqA==}
-    engines: {node: '>=18.18'}
-    dependencies:
-      flow-enums-runtime: 0.0.6
-    dev: false
-
-  /metro-cache@0.81.1:
-    resolution: {integrity: sha512-Uqcmn6sZ+Y0VJHM88VrG5xCvSeU7RnuvmjPmSOpEcyJJBe02QkfHL05MX2ZyGDTyZdbKCzaX0IijrTe4hN3F0Q==}
-    engines: {node: '>=18.18'}
-    dependencies:
-      exponential-backoff: 3.1.2
-      flow-enums-runtime: 0.0.6
-      metro-core: 0.81.1
-    dev: false
-
-  /metro-config@0.81.1:
-    resolution: {integrity: sha512-VAAJmxsKIZ+Fz5/z1LVgxa32gE6+2TvrDSSx45g85WoX4EtLmdBGP3DSlpQW3DqFUfNHJCGwMLGXpJnxifd08g==}
-    engines: {node: '>=18.18'}
-    dependencies:
-      connect: 3.7.0
-      cosmiconfig: 5.2.1
-      flow-enums-runtime: 0.0.6
-      jest-validate: 29.7.0
-      metro: 0.81.1
-      metro-cache: 0.81.1
-      metro-core: 0.81.1
-      metro-runtime: 0.81.1
-    transitivePeerDependencies:
-      - bufferutil
-      - supports-color
-      - utf-8-validate
-    dev: false
-
-  /metro-core@0.81.1:
-    resolution: {integrity: sha512-4d2/+02IYqOwJs4dmM0dC8hIZqTzgnx2nzN4GTCaXb3Dhtmi/SJ3v6744zZRnithhN4lxf8TTJSHnQV75M7SSA==}
-    engines: {node: '>=18.18'}
-    dependencies:
-      flow-enums-runtime: 0.0.6
-      lodash.throttle: 4.1.1
-      metro-resolver: 0.81.1
-    dev: false
-
-  /metro-file-map@0.81.1:
-    resolution: {integrity: sha512-aY72H2ujmRfFxcsbyh83JgqFF+uQ4HFN1VhV2FmcfQG4s1bGKf2Vbkk+vtZ1+EswcBwDZFbkpvAjN49oqwGzAA==}
-    engines: {node: '>=18.18'}
-    dependencies:
-      debug: 2.6.9
-      fb-watchman: 2.0.2
-      flow-enums-runtime: 0.0.6
-      graceful-fs: 4.2.11
-      invariant: 2.2.4
-      jest-worker: 29.7.0
-      micromatch: 4.0.8
-      nullthrows: 1.1.1
-      walker: 1.0.8
-    transitivePeerDependencies:
-      - supports-color
-    dev: false
-
-  /metro-minify-terser@0.81.1:
-    resolution: {integrity: sha512-p/Qz3NNh1nebSqMlxlUALAnESo6heQrnvgHtAuxufRPtKvghnVDq9hGGex8H7z7YYLsqe42PWdt4JxTA3mgkvg==}
-    engines: {node: '>=18.18'}
-    dependencies:
-      flow-enums-runtime: 0.0.6
-      terser: 5.33.0
-    dev: false
-
   /metro-react-native-babel-preset@0.72.4(@babel/core@7.8.0):
     resolution: {integrity: sha512-YGCVaYe1H5fOFktdDdL9IwAyiXjPh1t2eZZFp3KFJak6fxKpN+q5PPhe1kzMa77dbCAqgImv43zkfGa6i27eyA==}
     peerDependencies:
@@ -16488,142 +15725,6 @@
       - supports-color
     dev: true
 
-  /metro-resolver@0.81.1:
-    resolution: {integrity: sha512-E61t6fxRoYRkl6Zo3iUfCKW4DYfum/bLjcejXBMt1y3I7LFkK84TCR/Rs9OAwsMCY/7GOPB4+CREYZOtCC7CNA==}
-    engines: {node: '>=18.18'}
-    dependencies:
-      flow-enums-runtime: 0.0.6
-    dev: false
-
-  /metro-runtime@0.81.1:
-    resolution: {integrity: sha512-pqu5j5d01rjF85V/K8SDDJ0NR3dRp6bE3z5bKVVb5O2Rx0nbR9KreUxYALQCRCcQHaYySqCg5fYbGKBHC295YQ==}
-    engines: {node: '>=18.18'}
-    dependencies:
-      '@babel/runtime': 7.25.6
-      flow-enums-runtime: 0.0.6
-    dev: false
-
-  /metro-source-map@0.81.1:
-    resolution: {integrity: sha512-1i8ROpNNiga43F0ZixAXoFE/SS3RqcRDCCslpynb+ytym0VI7pkTH1woAN2HI9pczYtPrp3Nq0AjRpsuY35ieA==}
-    engines: {node: '>=18.18'}
-    dependencies:
-      '@babel/traverse': 7.25.6
-      '@babel/traverse--for-generate-function-map': /@babel/traverse@7.25.6
-      '@babel/types': 7.25.6
-      flow-enums-runtime: 0.0.6
-      invariant: 2.2.4
-      metro-symbolicate: 0.81.1
-      nullthrows: 1.1.1
-      ob1: 0.81.1
-      source-map: 0.5.7
-      vlq: 1.0.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: false
-
-  /metro-symbolicate@0.81.1:
-    resolution: {integrity: sha512-Lgk0qjEigtFtsM7C0miXITbcV47E1ZYIfB+m/hCraihiwRWkNUQEPCWvqZmwXKSwVE5mXA0EzQtghAvQSjZDxw==}
-    engines: {node: '>=18.18'}
-    hasBin: true
-    dependencies:
-      flow-enums-runtime: 0.0.6
-      invariant: 2.2.4
-      metro-source-map: 0.81.1
-      nullthrows: 1.1.1
-      source-map: 0.5.7
-      vlq: 1.0.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: false
-
-  /metro-transform-plugins@0.81.1:
-    resolution: {integrity: sha512-7L1lI44/CyjIoBaORhY9fVkoNe8hrzgxjSCQ/lQlcfrV31cZb7u0RGOQrKmUX7Bw4FpejrB70ArQ7Mse9mk7+Q==}
-    engines: {node: '>=18.18'}
-    dependencies:
-      '@babel/core': 7.25.2
-      '@babel/generator': 7.25.6
-      '@babel/template': 7.25.0
-      '@babel/traverse': 7.25.6
-      flow-enums-runtime: 0.0.6
-      nullthrows: 1.1.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: false
-
-  /metro-transform-worker@0.81.1:
-    resolution: {integrity: sha512-M+2hVT3rEy5K7PBmGDgQNq3Zx53TjScOcO/CieyLnCRFtBGWZiSJ2+bLAXXOKyKa/y3bI3i0owxtyxuPGDwbZg==}
-    engines: {node: '>=18.18'}
-    dependencies:
-      '@babel/core': 7.25.2
-      '@babel/generator': 7.25.6
-      '@babel/parser': 7.25.6
-      '@babel/types': 7.25.6
-      flow-enums-runtime: 0.0.6
-      metro: 0.81.1
-      metro-babel-transformer: 0.81.1
-      metro-cache: 0.81.1
-      metro-cache-key: 0.81.1
-      metro-minify-terser: 0.81.1
-      metro-source-map: 0.81.1
-      metro-transform-plugins: 0.81.1
-      nullthrows: 1.1.1
-    transitivePeerDependencies:
-      - bufferutil
-      - supports-color
-      - utf-8-validate
-    dev: false
-
-  /metro@0.81.1:
-    resolution: {integrity: sha512-fqRu4fg8ONW7VfqWFMGgKAcOuMzyoQah2azv9Y3VyFXAmG+AoTU6YIFWqAADESCGVWuWEIvxTJhMf3jxU6jwjA==}
-    engines: {node: '>=18.18'}
-    hasBin: true
-    dependencies:
-      '@babel/code-frame': 7.24.7
-      '@babel/core': 7.25.2
-      '@babel/generator': 7.25.6
-      '@babel/parser': 7.25.6
-      '@babel/template': 7.25.0
-      '@babel/traverse': 7.25.6
-      '@babel/types': 7.25.6
-      accepts: 1.3.8
-      chalk: 4.1.2
-      ci-info: 2.0.0
-      connect: 3.7.0
-      debug: 2.6.9
-      error-stack-parser: 2.1.4
-      flow-enums-runtime: 0.0.6
-      graceful-fs: 4.2.11
-      hermes-parser: 0.25.1
-      image-size: 1.2.0
-      invariant: 2.2.4
-      jest-worker: 29.7.0
-      jsc-safe-url: 0.2.4
-      lodash.throttle: 4.1.1
-      metro-babel-transformer: 0.81.1
-      metro-cache: 0.81.1
-      metro-cache-key: 0.81.1
-      metro-config: 0.81.1
-      metro-core: 0.81.1
-      metro-file-map: 0.81.1
-      metro-resolver: 0.81.1
-      metro-runtime: 0.81.1
-      metro-source-map: 0.81.1
-      metro-symbolicate: 0.81.1
-      metro-transform-plugins: 0.81.1
-      metro-transform-worker: 0.81.1
-      mime-types: 2.1.35
-      nullthrows: 1.1.1
-      serialize-error: 2.1.0
-      source-map: 0.5.7
-      throat: 5.0.0
-      ws: 7.5.10
-      yargs: 17.7.2
-    transitivePeerDependencies:
-      - bufferutil
-      - supports-color
-      - utf-8-validate
-    dev: false
-
   /micromatch@4.0.5:
     resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
     engines: {node: '>=8.6'}
@@ -16658,6 +15759,7 @@
     resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
     engines: {node: '>=4'}
     hasBin: true
+    dev: true
 
   /mime@2.5.2:
     resolution: {integrity: sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==}
@@ -16879,12 +15981,13 @@
     resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
     engines: {node: '>=10'}
     hasBin: true
+    dev: true
 
   /mlly@1.7.4:
     resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==}
     dependencies:
-      acorn: 8.14.0
-      pathe: 2.0.2
+      acorn: 8.15.0
+      pathe: 2.0.3
       pkg-types: 1.3.1
       ufo: 1.5.4
 
@@ -16920,6 +16023,7 @@
 
   /ms@2.0.0:
     resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
+    dev: true
 
   /ms@2.1.2:
     resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
@@ -17000,6 +16104,7 @@
   /negotiator@0.6.3:
     resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
     engines: {node: '>= 0.6'}
+    dev: true
 
   /neo-async@2.6.2:
     resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
@@ -17064,10 +16169,7 @@
   /node-forge@1.3.1:
     resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
     engines: {node: '>= 6.13.0'}
-
-  /node-int64@0.4.0:
-    resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
-    dev: false
+    dev: true
 
   /node-releases@2.0.18:
     resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
@@ -17201,10 +16303,6 @@
       boolbase: 1.0.0
     dev: true
 
-  /nullthrows@1.1.1:
-    resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==}
-    dev: false
-
   /num2fraction@1.2.2:
     resolution: {integrity: sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==}
     dev: true
@@ -17216,13 +16314,6 @@
   /oauth-sign@0.9.0:
     resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==}
     dev: true
-
-  /ob1@0.81.1:
-    resolution: {integrity: sha512-1PEbvI+AFvOcgdNcO79FtDI1TUO8S3lhiKOyAiyWQF3sFDDKS+aw2/BZvGlArFnSmqckwOOB9chQuIX0/OahoQ==}
-    engines: {node: '>=18.18'}
-    dependencies:
-      flow-enums-runtime: 0.0.6
-    dev: false
 
   /object-assign@4.1.1:
     resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
@@ -17255,18 +16346,12 @@
     resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==}
     dev: true
 
-  /on-finished@2.3.0:
-    resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==}
-    engines: {node: '>= 0.8'}
-    dependencies:
-      ee-first: 1.1.1
-    dev: false
-
   /on-finished@2.4.1:
     resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
     engines: {node: '>= 0.8'}
     dependencies:
       ee-first: 1.1.1
+    dev: true
 
   /on-headers@1.0.2:
     resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
@@ -17300,14 +16385,6 @@
       is-inside-container: 1.0.0
       is-wsl: 3.1.0
     dev: true
-
-  /open@7.4.2:
-    resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==}
-    engines: {node: '>=8'}
-    dependencies:
-      is-docker: 2.2.1
-      is-wsl: 2.2.0
-    dev: false
 
   /open@8.4.2:
     resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
@@ -17456,6 +16533,7 @@
     engines: {node: '>=8'}
     dependencies:
       p-limit: 2.3.0
+    dev: true
 
   /p-locate@5.0.0:
     resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
@@ -17586,14 +16664,6 @@
     resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==}
     dev: true
 
-  /parse-json@4.0.0:
-    resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==}
-    engines: {node: '>=4'}
-    dependencies:
-      error-ex: 1.3.2
-      json-parse-better-errors: 1.0.2
-    dev: false
-
   /parse-json@5.2.0:
     resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
     engines: {node: '>=8'}
@@ -17668,6 +16738,7 @@
   /parseurl@1.3.3:
     resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
     engines: {node: '>= 0.8'}
+    dev: true
 
   /pascal-case@3.1.2:
     resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
@@ -17683,6 +16754,7 @@
   /path-exists@4.0.0:
     resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
     engines: {node: '>=8'}
+    dev: true
 
   /path-exists@5.0.0:
     resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
@@ -17738,8 +16810,8 @@
     resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
     dev: true
 
-  /pathe@2.0.2:
-    resolution: {integrity: sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==}
+  /pathe@2.0.3:
+    resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
 
   /peek-readable@4.1.0:
     resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==}
@@ -17807,7 +16879,7 @@
     peerDependencies:
       '@vue/composition-api': ^1.4.0
       typescript: '>=4.4.4'
-      vue: ^2.6.14 || ^3.3.0
+      vue: 3.5.12
     peerDependenciesMeta:
       '@vue/composition-api':
         optional: true
@@ -17869,7 +16941,7 @@
     dependencies:
       confbox: 0.1.8
       mlly: 1.7.4
-      pathe: 2.0.2
+      pathe: 2.0.3
 
   /pkg-up@3.1.0:
     resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
@@ -18430,15 +17502,6 @@
       react-is: 17.0.2
     dev: true
 
-  /pretty-format@29.7.0:
-    resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/schemas': 29.6.3
-      ansi-styles: 5.2.0
-      react-is: 18.3.1
-    dev: false
-
   /pretty-time@1.1.0:
     resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
     engines: {node: '>=4'}
@@ -18465,12 +17528,6 @@
 
   /promise-polyfill@7.1.2:
     resolution: {integrity: sha512-FuEc12/eKqqoRYIGBrUptCBRhobL19PS2U31vMNTfyck1FxPyMfgsXyW4Mav85y/ZN1hop3hOwRlUDok23oYfQ==}
-
-  /promise@8.3.0:
-    resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==}
-    dependencies:
-      asap: 2.0.6
-    dev: false
 
   /property-expr@2.0.6:
     resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==}
@@ -18513,6 +17570,7 @@
 
   /prr@1.0.1:
     resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
+    requiresBuild: true
     dev: true
 
   /pseudomap@1.0.2:
@@ -18620,12 +17678,6 @@
   /queue-microtask@1.2.3:
     resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
 
-  /queue@6.0.2:
-    resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
-    dependencies:
-      inherits: 2.0.4
-    dev: false
-
   /quick-lru@4.0.1:
     resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
     engines: {node: '>=8'}
@@ -18644,6 +17696,7 @@
   /range-parser@1.2.1:
     resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
     engines: {node: '>= 0.6'}
+    dev: true
 
   /raw-body@2.5.2:
     resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
@@ -18676,100 +17729,19 @@
       strip-json-comments: 2.0.1
     dev: true
 
-  /react-devtools-core@6.1.1:
-    resolution: {integrity: sha512-TFo1MEnkqE6hzAbaztnyR5uLTMoz6wnEWwWBsCUzNt+sVXJycuRJdDqvL078M4/h65BI/YO5XWTaxZDWVsW0fw==}
-    dependencies:
-      shell-quote: 1.8.2
-      ws: 7.5.10
-    transitivePeerDependencies:
-      - bufferutil
-      - utf-8-validate
-    dev: false
-
   /react-is@17.0.2:
     resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
     dev: true
-
-  /react-is@18.3.1:
-    resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
-    dev: false
-
-  /react-native@0.77.0(@babel/core@7.8.0)(@babel/preset-env@7.25.4)(react@19.0.0):
-    resolution: {integrity: sha512-oCgHLGHFIp6F5UbyHSedyUXrZg6/GPe727freGFvlT7BjPJ3K6yvvdlsp7OEXSAHz6Fe7BI2n5cpUyqmP9Zn+Q==}
-    engines: {node: '>=18'}
-    hasBin: true
-    peerDependencies:
-      '@types/react': ^18.2.6
-      react: ^18.2.0
-    peerDependenciesMeta:
-      '@types/react':
-        optional: true
-    dependencies:
-      '@jest/create-cache-key-function': 29.7.0
-      '@react-native/assets-registry': 0.77.0
-      '@react-native/codegen': 0.77.0(@babel/preset-env@7.25.4)
-      '@react-native/community-cli-plugin': 0.77.0(@babel/core@7.8.0)(@babel/preset-env@7.25.4)
-      '@react-native/gradle-plugin': 0.77.0
-      '@react-native/js-polyfills': 0.77.0
-      '@react-native/normalize-colors': 0.77.0
-      '@react-native/virtualized-lists': 0.77.0(react-native@0.77.0)(react@19.0.0)
-      abort-controller: 3.0.0
-      anser: 1.4.10
-      ansi-regex: 5.0.1
-      babel-jest: 29.7.0(@babel/core@7.8.0)
-      babel-plugin-syntax-hermes-parser: 0.25.1
-      base64-js: 1.5.1
-      chalk: 4.1.2
-      commander: 12.1.0
-      event-target-shim: 5.0.1
-      flow-enums-runtime: 0.0.6
-      glob: 7.2.3
-      invariant: 2.2.4
-      jest-environment-node: 29.7.0
-      jsc-android: 250231.0.0
-      memoize-one: 5.2.1
-      metro-runtime: 0.81.1
-      metro-source-map: 0.81.1
-      nullthrows: 1.1.1
-      pretty-format: 29.7.0
-      promise: 8.3.0
-      react: 19.0.0
-      react-devtools-core: 6.1.1
-      react-refresh: 0.14.2
-      regenerator-runtime: 0.13.11
-      scheduler: 0.24.0-canary-efb381bbf-20230505
-      semver: 7.6.3
-      stacktrace-parser: 0.1.10
-      whatwg-fetch: 3.6.20
-      ws: 6.2.3
-      yargs: 17.7.2
-    transitivePeerDependencies:
-      - '@babel/core'
-      - '@babel/preset-env'
-      - '@react-native-community/cli-server-api'
-      - bufferutil
-      - supports-color
-      - utf-8-validate
-    dev: false
 
   /react-refresh@0.11.0:
     resolution: {integrity: sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==}
     engines: {node: '>=0.10.0'}
     dev: true
 
-  /react-refresh@0.14.2:
-    resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
-    engines: {node: '>=0.10.0'}
-    dev: false
-
   /react-refresh@0.4.3:
     resolution: {integrity: sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==}
     engines: {node: '>=0.10.0'}
     dev: true
-
-  /react@19.0.0:
-    resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==}
-    engines: {node: '>=0.10.0'}
 
   /read-cache@1.0.0:
     resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
@@ -18892,21 +17864,6 @@
   /readdirp@4.0.1:
     resolution: {integrity: sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==}
     engines: {node: '>= 14.16.0'}
-
-  /readline@1.3.0:
-    resolution: {integrity: sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==}
-    dev: false
-
-  /recast@0.23.9:
-    resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==}
-    engines: {node: '>= 4'}
-    dependencies:
-      ast-types: 0.16.1
-      esprima: 4.0.1
-      source-map: 0.6.1
-      tiny-invariant: 1.3.3
-      tslib: 2.7.0
-    dev: false
 
   /rechoir@0.6.2:
     resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
@@ -19129,6 +18086,7 @@
   /require-directory@2.1.1:
     resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
     engines: {node: '>=0.10.0'}
+    dev: true
 
   /require-from-string@2.0.2:
     resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
@@ -19158,11 +18116,6 @@
       global-modules: 1.0.0
     dev: true
 
-  /resolve-from@3.0.0:
-    resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==}
-    engines: {node: '>=4'}
-    dev: false
-
   /resolve-from@4.0.0:
     resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
     engines: {node: '>=4'}
@@ -19171,6 +18124,7 @@
   /resolve-from@5.0.0:
     resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
     engines: {node: '>=8'}
+    dev: true
 
   /resolve-global@1.0.0:
     resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==}
@@ -19256,10 +18210,12 @@
     hasBin: true
     dependencies:
       glob: 7.2.3
+    dev: true
 
   /roarr@2.15.4:
     resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==}
     engines: {node: '>=8.0'}
+    requiresBuild: true
     dependencies:
       boolean: 3.2.0
       detect-node: 2.1.0
@@ -19274,8 +18230,8 @@
     resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==}
     dev: true
 
-  /rtc-ai-denoiser@1.1.7:
-    resolution: {integrity: sha512-53e/4a4lT96K004mqDnLDE+upNSpBLRMfFgYCeIw3Gvuw9F17nxLP5v8MOVLly4/Epomxkx4SXrOFJJMxD2pIw==}
+  /rtc-detect@0.0.5:
+    resolution: {integrity: sha512-VANIELbaoIkZRj4gyiCCbTM+/ASy0eNgF35jCs+rrGxzYvD7YIBajEbGGZeh+5ZCNAX8/rT8IVRdpuallf174Q==}
     dev: false
 
   /run-applescript@7.0.0:
@@ -19407,12 +18363,6 @@
       xmlchars: 2.2.0
     dev: true
 
-  /scheduler@0.24.0-canary-efb381bbf-20230505:
-    resolution: {integrity: sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==}
-    dependencies:
-      loose-envify: 1.4.0
-    dev: false
-
   /schema-utils@2.7.1:
     resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==}
     engines: {node: '>= 8.9.0'}
@@ -19487,6 +18437,7 @@
     dependencies:
       '@types/node-forge': 1.3.11
       node-forge: 1.3.1
+    dev: true
 
   /semver-compare@1.0.0:
     resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==}
@@ -19532,6 +18483,7 @@
     resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
     engines: {node: '>=10'}
     hasBin: true
+    dev: true
 
   /send@0.19.0:
     resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
@@ -19552,6 +18504,7 @@
       statuses: 2.0.1
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /senin-mini@1.0.10(@nutui/icons-vue-taro@0.0.9)(@nutui/nutui-taro@4.3.13)(@tanstack/vue-query@4.35.3)(@tarojs/components@3.6.20)(@tarojs/taro@3.6.20)(axios@1.4.0)(dayjs@1.11.6)(lodash@4.17.21)(vue@3.5.12):
     resolution: {integrity: sha512-iGA/p2p1EWU/4R9nmPBkj09wFoBupVaxJReFNRdHovydU4qt0OR3x5pLqI2TGsg+Bn2rvgp4aMCy9Ksb8rhzfw==}
@@ -19564,12 +18517,12 @@
       axios: '*'
       dayjs: '*'
       lodash: '*'
-      vue: '*'
+      vue: 3.5.12
     dependencies:
       '@nutui/icons-vue-taro': 0.0.9
       '@nutui/nutui-taro': 4.3.13(patch_hash=lbmiuhnkw3qnhgejnhbuepf6iq)(unplugin-vue-components@0.27.4)(vue@3.5.12)
       '@tanstack/vue-query': 4.35.3(@vue/composition-api@1.7.2)(vue@3.5.12)
-      '@tarojs/components': 3.6.20(postcss@8.4.19)(react@19.0.0)(vue@3.5.12)
+      '@tarojs/components': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       '@tarojs/taro': 3.6.20(postcss@8.4.19)(vue@3.5.12)
       axios: 1.4.0
       dayjs: 1.11.6
@@ -19593,14 +18546,10 @@
       axios: 1.4.0
     dev: false
 
-  /serialize-error@2.1.0:
-    resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==}
-    engines: {node: '>=0.10.0'}
-    dev: false
-
   /serialize-error@7.0.1:
     resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==}
     engines: {node: '>=10'}
+    requiresBuild: true
     dependencies:
       type-fest: 0.13.1
     dev: true
@@ -19636,6 +18585,7 @@
       send: 0.19.0
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /set-blocking@2.0.0:
     resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
@@ -19662,6 +18612,7 @@
 
   /setprototypeof@1.2.0:
     resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
+    dev: true
 
   /shallow-clone@3.0.1:
     resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
@@ -19691,11 +18642,6 @@
     resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
     engines: {node: '>=8'}
 
-  /shell-quote@1.8.2:
-    resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==}
-    engines: {node: '>= 0.4'}
-    dev: false
-
   /shelljs@0.8.5:
     resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
     engines: {node: '>=4'}
@@ -19721,6 +18667,7 @@
   /signal-exit@4.1.0:
     resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
     engines: {node: '>=14'}
+    dev: true
 
   /sirv@1.0.19:
     resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==}
@@ -19739,6 +18686,7 @@
   /slash@3.0.0:
     resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
     engines: {node: '>=8'}
+    dev: true
 
   /slash@4.0.0:
     resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
@@ -19911,6 +18859,7 @@
   /source-map@0.5.7:
     resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
     engines: {node: '>=0.10.0'}
+    dev: true
 
   /source-map@0.6.1:
     resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
@@ -19993,6 +18942,7 @@
 
   /sprintf-js@1.0.3:
     resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+    dev: true
 
   /sprintf-js@1.1.3:
     resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
@@ -20022,30 +18972,19 @@
     deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
     dev: true
 
-  /stack-utils@2.0.6:
-    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
-    engines: {node: '>=10'}
-    dependencies:
-      escape-string-regexp: 2.0.0
-    dev: false
-
   /stackframe@1.3.4:
     resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
-
-  /stacktrace-parser@0.1.10:
-    resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==}
-    engines: {node: '>=6'}
-    dependencies:
-      type-fest: 0.7.1
-    dev: false
+    dev: true
 
   /statuses@1.5.0:
     resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
     engines: {node: '>= 0.6'}
+    dev: true
 
   /statuses@2.0.1:
     resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
     engines: {node: '>= 0.8'}
+    dev: true
 
   /std-env@3.7.0:
     resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
@@ -20081,6 +19020,7 @@
       emoji-regex: 8.0.0
       is-fullwidth-code-point: 3.0.0
       strip-ansi: 6.0.1
+    dev: true
 
   /string-width@5.1.2:
     resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
@@ -20198,7 +19138,7 @@
   /strip-literal@2.1.0:
     resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==}
     dependencies:
-      js-tokens: 9.0.0
+      js-tokens: 9.0.1
     dev: true
 
   /strip-outer@1.0.1:
@@ -20601,7 +19541,7 @@
     engines: {node: '>=6.0.0'}
     hasBin: true
     dependencies:
-      acorn: 8.14.0
+      acorn: 8.15.0
       commander: 2.20.3
       source-map: 0.6.1
       source-map-support: 0.5.21
@@ -20613,18 +19553,9 @@
     hasBin: true
     dependencies:
       '@jridgewell/source-map': 0.3.6
-      acorn: 8.14.0
+      acorn: 8.15.0
       commander: 2.20.3
       source-map-support: 0.5.21
-
-  /test-exclude@6.0.0:
-    resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
-    engines: {node: '>=8'}
-    dependencies:
-      '@istanbuljs/schema': 0.1.3
-      glob: 7.2.3
-      minimatch: 3.1.2
-    dev: false
 
   /text-extensions@1.9.0:
     resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==}
@@ -20671,10 +19602,6 @@
       webpack: 5.78.0(@swc/core@1.3.96)
     dev: true
 
-  /throat@5.0.0:
-    resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==}
-    dev: false
-
   /throat@6.0.2:
     resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==}
     dev: true
@@ -20697,8 +19624,8 @@
     resolution: {integrity: sha512-+49p+n5LJs18rSPBvJFyq/m6ib8wiXvPEx2/Sz3M7hhDXAz69WuZ8cB/painNrN0MKAETf6G5cWa6xtVZfAK7A==}
     dev: false
 
-  /tim-upload-plugin@1.4.2:
-    resolution: {integrity: sha512-ERhcRcSxr6YV4Ri1LBTclcruWVW2Z+tOLTaBkJ9FEoUzo1XNGxT5esl3NENEthBTWwqSlCwb6vK7Ef91uJ7ZLw==}
+  /tim-upload-plugin@1.4.3:
+    resolution: {integrity: sha512-3ZmbA36dr3eG9YGDon9MLBUtbNawYWkL+TBa+VS0Uviguc7PlVSOIVRG2C4irXX16slDT2Kj+HAZapp+Xqp2xg==}
     dev: false
 
   /timed-out@4.0.1:
@@ -20714,10 +19641,6 @@
     resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==}
     dev: false
 
-  /tiny-invariant@1.3.3:
-    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
-    dev: false
-
   /tinycolor2@1.6.0:
     resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
     dev: true
@@ -20728,15 +19651,6 @@
     dependencies:
       os-tmpdir: 1.0.2
     dev: true
-
-  /tmp@0.2.3:
-    resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==}
-    engines: {node: '>=14.14'}
-    dev: false
-
-  /tmpl@1.0.5:
-    resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
-    dev: false
 
   /to-array@0.1.4:
     resolution: {integrity: sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==}
@@ -20769,6 +19683,7 @@
   /toidentifier@1.0.1:
     resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
     engines: {node: '>=0.6'}
+    dev: true
 
   /token-types@4.2.1:
     resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==}
@@ -20833,20 +19748,20 @@
     engines: {node: '>=0.10.0'}
     dev: true
 
-  /trtc-cloud-js-sdk@2.7.0:
-    resolution: {integrity: sha512-43eVDi2j7WHfoq98Peo+Icm2m2tycFzYIvMFvE4Q7FEZNUZqvBZEaAfe8Mn2VQgGdxgqqNmJ/FhhSwqtrtvAxQ==}
+  /trtc-cloud-js-sdk@2.9.3:
+    resolution: {integrity: sha512-4pZmNNoD1RjmhCIEA1HVRe/NIWDO8+w9hBpy8fJYa2B07la4Xc7QzCHnVZb7JgNoa6f3MVfUuOrtyrMsUMnt/Q==}
     dependencies:
-      trtc-sdk-v5: 5.8.0
+      trtc-sdk-v5: 5.11.1
     dev: false
 
-  /trtc-sdk-v5@5.8.0:
-    resolution: {integrity: sha512-beNWdmAuWo66qT/H1/nVJxiS9X2krIwiySGCdJR7VJellUh9E6mhFXoE5wjPmNcuKxcY8HwDDoJYBP7Rl2YARA==}
+  /trtc-sdk-v5@5.11.1:
+    resolution: {integrity: sha512-7EPZx3UUrvBAU9HynXsIcgI91wYWTYKbEkYUp186EDwgVEzc+v4uDL0427AY1PBI8tgf2ednO4qFk/C8crTSPQ==}
     dependencies:
       webrtc-adapter: 8.2.3
     dev: false
 
-  /trtc-wx-sdk@1.1.12:
-    resolution: {integrity: sha512-yG/FBUUh5sZ34Xb8WkFq9q50XBFgHInQD8BFWGNGeCjRuNBHdmawcefqoTjrwt6zBWJjqQAXPsMmNpYLv0kU2g==}
+  /trtc-wx-sdk@1.1.14:
+    resolution: {integrity: sha512-QYV2j5pDlhbM0zykYq8OYaSpjyTn0/YbsK180iNwCLEA61m2KWm2wb1veRBVsTP9Lq0iqbSMU17cOW963vcraA==}
     dev: false
 
   /ts-api-utils@1.3.0(typescript@5.2.2):
@@ -20878,7 +19793,7 @@
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.4
       '@types/node': 20.5.1
-      acorn: 8.14.0
+      acorn: 8.15.0
       acorn-walk: 8.3.4
       arg: 4.1.3
       create-require: 1.1.1
@@ -20898,6 +19813,7 @@
 
   /tslib@2.7.0:
     resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==}
+    dev: true
 
   /tsutils@3.21.0(typescript@5.2.2):
     resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
@@ -20909,25 +19825,15 @@
       typescript: 5.2.2
     dev: true
 
-  /tuicall-engine-webrtc@3.1.5(react-native@0.77.0)(react@19.0.0):
-    resolution: {integrity: sha512-9N1zMmjnjT4di69aKbT9B1Wx0+UTiqajqJX3BUvt0nHYj+nnocyhEaFvcGfKXwbGE2lOZcV+0pEoRL9F1yRmgA==}
-    dependencies:
-      '@tencentcloud/chat': 3.5.2(react-native@0.77.0)(react@19.0.0)
-      rtc-ai-denoiser: 1.1.7
-      trtc-cloud-js-sdk: 2.7.0
-    transitivePeerDependencies:
-      - react
-      - react-native
-    dev: false
-
-  /tuicall-engine-wx@2.2.8(react-native@0.77.0)(react@19.0.0):
+  /tuicall-engine-wx@2.2.8:
     resolution: {integrity: sha512-TPipPfE4J7axm0Z/GsAB/kVe4PVggUF5DkAqI8NIc3IhzuweSNZTtKv7I7xuu6JSrI2XR+XsU7/T3VibhLt66g==}
     dependencies:
-      '@tencentcloud/chat': 3.5.2(react-native@0.77.0)(react@19.0.0)
-      trtc-wx-sdk: 1.1.12
-    transitivePeerDependencies:
-      - react
-      - react-native
+      '@tencentcloud/chat': 3.5.7
+      trtc-wx-sdk: 1.1.14
+    dev: false
+
+  /tuikit-logger@0.0.4-beta.1:
+    resolution: {integrity: sha512-Ky83B1p88xakmfZ2f92cU0YxfolyxnQBv14tQpvnuHcMTnVR2Rjy8tityDGwF+pnxrAhJ7H7OPB/4rFdWVncIw==}
     dev: false
 
   /tunnel-agent@0.6.0:
@@ -20939,6 +19845,7 @@
   /tunnel@0.0.6:
     resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==}
     engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'}
+    requiresBuild: true
     dev: true
     optional: true
 
@@ -20953,14 +19860,10 @@
       prelude-ls: 1.2.1
     dev: true
 
-  /type-detect@4.0.8:
-    resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
-    engines: {node: '>=4'}
-    dev: false
-
   /type-fest@0.13.1:
     resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==}
     engines: {node: '>=10'}
+    requiresBuild: true
     dev: true
     optional: true
 
@@ -20982,11 +19885,6 @@
     resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
     engines: {node: '>=8'}
     dev: true
-
-  /type-fest@0.7.1:
-    resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==}
-    engines: {node: '>=8'}
-    dev: false
 
   /type-fest@0.8.1:
     resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
@@ -21103,7 +20001,7 @@
     resolution: {integrity: sha512-5y8dSvNvyevsnw4TBQkIQR1Rjdbb+XjVSwQwxltpnVZrStBvvPkMPcZrh1kg5kY77kpx6+D4Ztd3W6FOBH/y2Q==}
     dependencies:
       '@rollup/pluginutils': 5.1.4
-      acorn: 8.14.0
+      acorn: 8.15.0
       escape-string-regexp: 5.0.0
       estree-walker: 3.0.3
       fast-glob: 3.3.3
@@ -21160,6 +20058,7 @@
   /unpipe@1.0.0:
     resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
     engines: {node: '>= 0.8'}
+    dev: true
 
   /unplugin-auto-import@0.16.6:
     resolution: {integrity: sha512-M+YIITkx3C/Hg38hp8HmswP5mShUUyJOzpifv7RTlAbeFlO2Tyw0pwrogSSxnipHDPTtI8VHFBpkYkNKzYSuyA==}
@@ -21192,7 +20091,7 @@
     peerDependencies:
       '@babel/parser': ^7.15.8
       '@nuxt/kit': ^3.2.2
-      vue: 2 || 3
+      vue: 3.5.12
     peerDependenciesMeta:
       '@babel/parser':
         optional: true
@@ -21256,7 +20155,7 @@
       webpack-sources:
         optional: true
     dependencies:
-      acorn: 8.14.0
+      acorn: 8.15.0
       webpack-virtual-modules: 0.6.2
 
   /update-browserslist-db@1.1.0(browserslist@4.23.3):
@@ -21379,6 +20278,7 @@
   /utils-merge@1.0.1:
     resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
     engines: {node: '>= 0.4.0'}
+    dev: true
 
   /uuid@3.4.0:
     resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==}
@@ -21457,17 +20357,13 @@
       replace-ext: 1.0.1
     dev: true
 
-  /vlq@1.0.1:
-    resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==}
-    dev: false
-
   /vm2@3.9.19:
     resolution: {integrity: sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg==}
     engines: {node: '>=6.0'}
     deprecated: The library contains critical security issues and should not be used for production! The maintenance of the project has been discontinued. Consider migrating your code to isolated-vm.
     hasBin: true
     dependencies:
-      acorn: 8.14.0
+      acorn: 8.15.0
       acorn-walk: 8.3.4
     dev: true
 
@@ -21482,7 +20378,7 @@
     requiresBuild: true
     peerDependencies:
       '@vue/composition-api': ^1.0.0-rc.1
-      vue: ^3.0.0-0 || ^2.6.0
+      vue: 3.5.12
     peerDependenciesMeta:
       '@vue/composition-api':
         optional: true
@@ -21498,7 +20394,7 @@
     requiresBuild: true
     peerDependencies:
       '@vue/composition-api': ^1.0.0-rc.1
-      vue: ^3.0.0-0 || ^2.6.0
+      vue: 3.5.12
     peerDependenciesMeta:
       '@vue/composition-api':
         optional: true
@@ -21547,7 +20443,7 @@
     resolution: {integrity: sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==}
     dev: true
 
-  /vue-loader@15.11.1(@vue/compiler-sfc@3.5.12)(cache-loader@4.1.0)(css-loader@6.11.0)(lodash@4.17.21)(prettier@2.7.1)(react@19.0.0)(webpack@5.78.0):
+  /vue-loader@15.11.1(@vue/compiler-sfc@3.5.12)(cache-loader@4.1.0)(css-loader@6.11.0)(lodash@4.17.21)(prettier@2.7.1)(webpack@5.78.0):
     resolution: {integrity: sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==}
     peerDependencies:
       '@vue/compiler-sfc': ^3.0.8
@@ -21567,7 +20463,7 @@
         optional: true
     dependencies:
       '@vue/compiler-sfc': 3.5.12
-      '@vue/component-compiler-utils': 3.3.0(lodash@4.17.21)(react@19.0.0)
+      '@vue/component-compiler-utils': 3.3.0(lodash@4.17.21)
       cache-loader: 4.1.0(webpack@5.78.0)
       css-loader: 6.11.0(webpack@5.78.0)
       hash-sum: 1.0.2
@@ -21675,12 +20571,6 @@
     dependencies:
       xml-name-validator: 4.0.0
     dev: true
-
-  /walker@1.0.8:
-    resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
-    dependencies:
-      makeerror: 1.0.12
-    dev: false
 
   /watchpack@2.4.2:
     resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==}
@@ -22017,6 +20907,7 @@
       ansi-styles: 4.3.0
       string-width: 4.2.3
       strip-ansi: 6.0.1
+    dev: true
 
   /wrap-ansi@8.1.0:
     resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
@@ -22045,28 +20936,7 @@
     dependencies:
       imurmurhash: 0.1.4
       signal-exit: 3.0.7
-
-  /write-file-atomic@5.0.1:
-    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
-    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-    dependencies:
-      imurmurhash: 0.1.4
-      signal-exit: 4.1.0
-    dev: false
-
-  /ws@6.2.3:
-    resolution: {integrity: sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==}
-    peerDependencies:
-      bufferutil: ^4.0.1
-      utf-8-validate: ^5.0.2
-    peerDependenciesMeta:
-      bufferutil:
-        optional: true
-      utf-8-validate:
-        optional: true
-    dependencies:
-      async-limiter: 1.0.1
-    dev: false
+    dev: true
 
   /ws@7.5.10:
     resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
@@ -22079,6 +20949,7 @@
         optional: true
       utf-8-validate:
         optional: true
+    dev: true
 
   /ws@8.18.0:
     resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==}
@@ -22167,6 +21038,7 @@
   /y18n@5.0.8:
     resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
     engines: {node: '>=10'}
+    dev: true
 
   /yallist@2.1.2:
     resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==}
@@ -22205,6 +21077,7 @@
   /yargs-parser@21.1.1:
     resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
     engines: {node: '>=12'}
+    dev: true
 
   /yargs@15.4.1:
     resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}
@@ -22247,6 +21120,7 @@
       string-width: 4.2.3
       y18n: 5.0.8
       yargs-parser: 21.1.1
+    dev: true
 
   /yauzl@2.10.0:
     resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
diff --git a/types/api.d.ts b/types/api.d.ts
index 3241ace..5c23d31 100644
--- a/types/api.d.ts
+++ b/types/api.d.ts
@@ -6,18 +6,6 @@
     customErrorHandler?: (error: any) => boolean;
   }
 
-  interface AreaTreeNode extends AreaInfo {
-    children?: AreaTreeNode[];
-  }
-
-  type PriceVersionInfoItem = Omit<API.PriceVersionInfo, 'price'> & {
-    price: string;
-  };
-
-  interface CategoryMenu {
-    type?: number;
-  }
-
   interface MyCertificationAuditDto {
     /**
      * 鍓嶇鐢ㄤ簬鍒ゆ柇鐘舵�佺殑status

--
Gitblit v1.9.1