From 0a4c30f6b0b63b9556203cc17767048cad899831 Mon Sep 17 00:00:00 2001 From: kirk Date: Wed, 21 Aug 2024 10:31:43 +0800 Subject: [PATCH 01/42] =?UTF-8?q?feat:=20=E5=A4=84=E7=90=86authroutes?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/index.tsx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/router/index.tsx b/src/router/index.tsx index b870334..f4f373c 100644 --- a/src/router/index.tsx +++ b/src/router/index.tsx @@ -6,12 +6,15 @@ import Login from '@/views/login/index' import { RouteObject } from './interface' import i18n from '@/language' import { getAuthRoutes } from '@/api/user' -import store from '@/store' const rootLoader = async () => { - const { data } = await getAuthRoutes() - store.dispatch - return data + try { + const { data } = await getAuthRoutes() + return data + } catch (error) { + console.log(error) + return [] + } } // * 导入所有router const metaRouters = import.meta.glob('./modules/*.tsx', { From af8c73765f1dcad9cfc656db9123a377623e5f92 Mon Sep 17 00:00:00 2001 From: kirk Date: Wed, 21 Aug 2024 11:16:48 +0800 Subject: [PATCH 02/42] =?UTF-8?q?feat:=20=E7=99=BB=E5=BD=95&=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E9=A6=96=E9=A1=B5=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 2 +- src/api/user.ts | 2 +- src/layout/components/MainMenu.tsx | 17 ++++++++++++++++- src/types/global.d.ts | 1 + vite.config.ts | 14 ++++++++++++++ 5 files changed, 33 insertions(+), 3 deletions(-) diff --git a/.env.development b/.env.development index a5bf5fc..49c81d3 100644 --- a/.env.development +++ b/.env.development @@ -3,4 +3,4 @@ VITE_PRE="dev" VITE_PORT=8888 VITE_DROP_CONSOLE=false VITE_BUILD_GZIP=false -VITE_MOCK=true \ No newline at end of file +VITE_MOCK=false \ No newline at end of file diff --git a/src/api/user.ts b/src/api/user.ts index 0dfcb6b..e78866b 100644 --- a/src/api/user.ts +++ b/src/api/user.ts @@ -22,7 +22,7 @@ export const getUserInfo = () => { } export const login = (userInfo: ReqLoginForm) => { - return http.post('/login', userInfo, { + return http.post('/auth/login', userInfo, { notAllowCancel: true }) } diff --git a/src/layout/components/MainMenu.tsx b/src/layout/components/MainMenu.tsx index cc4817d..a81aac5 100644 --- a/src/layout/components/MainMenu.tsx +++ b/src/layout/components/MainMenu.tsx @@ -39,7 +39,22 @@ const MainMenu = (props: any) => { } } const getMenuData = async () => { - const { data } = await getMenus() + let data: Menu.MenuOptions[] = [] + try { + const res = await getMenus() + data = res.data! + } catch (error) { + console.log(error) + } + const homeRoute = data?.find((t) => t.path === '/home') + if (!homeRoute) { + data?.unshift({ + path: '/home', + title: '首页', + icon: 'PieChartOutlined', + code: 'home' + }) + } if (!data) return setMenuList(deepLoopFloat(data)) dispatch(setBreadcrumbs(findAllBreadcrumb(data))) diff --git a/src/types/global.d.ts b/src/types/global.d.ts index f8dc195..b3da093 100644 --- a/src/types/global.d.ts +++ b/src/types/global.d.ts @@ -20,6 +20,7 @@ declare global { icon?: string close?: boolean children?: MenuOptions[] + code: string } } export interface SetAction { diff --git a/vite.config.ts b/vite.config.ts index 5aa3683..2674ea7 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -37,6 +37,20 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { esbuild: { pure: viteEnv.VITE_DROP_CONSOLE ? ['console.log', 'debugger'] : [] }, + server: { + host: '0.0.0.0', // 服务器主机名,如果允许外部访问,可设置为"0.0.0.0" + port: viteEnv.VITE_PORT, + cors: true, + // https: false, + // 代理跨域(mock 不需要配置,这里只是个事列) + proxy: { + '/api': { + target: 'http://localhost:8081', + changeOrigin: true, + rewrite: (path) => path.replace(/^\/api/, '/api') + } + } + }, build: { outDir: 'dist', // esbuild 打包更快,但是不能去除 console.log,去除 console 使用 terser 模式 From af8d9c25a0ffcf2c59a82f5b03e7b6a0f0abc557 Mon Sep 17 00:00:00 2001 From: kirk Date: Wed, 21 Aug 2024 15:54:49 +0800 Subject: [PATCH 03/42] =?UTF-8?q?feat:=20=E6=8E=A5=E5=85=A5backend?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dump.rdb | Bin 0 -> 88 bytes src/api/user.ts | 6 +-- src/layout/components/MainMenu.tsx | 18 ++++++--- src/router/RouterGuard.tsx | 6 +-- src/router/index.tsx | 11 +----- src/router/modules/perm.tsx | 58 ++++++++++++++++++++++++++++ src/store/modules/user/userSlice.ts | 3 ++ src/types/global.d.ts | 11 +++++- src/utils/http/index.ts | 2 +- src/utils/system.ts | 45 +++++++++++++++++---- src/views/perm/depts/index.tsx | 3 ++ src/views/perm/posts/index.tsx | 3 ++ src/views/perm/roles/index.tsx | 3 ++ src/views/perm/users/index.tsx | 3 ++ 14 files changed, 140 insertions(+), 32 deletions(-) create mode 100644 dump.rdb create mode 100644 src/router/modules/perm.tsx create mode 100644 src/views/perm/depts/index.tsx create mode 100644 src/views/perm/posts/index.tsx create mode 100644 src/views/perm/roles/index.tsx create mode 100644 src/views/perm/users/index.tsx diff --git a/dump.rdb b/dump.rdb new file mode 100644 index 0000000000000000000000000000000000000000..689af26c63b61eedd1ede811fe730f7ffb5e2bfc GIT binary patch literal 88 zcmWG?b@2=~FfcUy#aWb^l3A=1kd#?ce8AxsYjR0uZt9^&$w$+E pag-LPrs(FT<{nZwD!}lIBQZZsHz~0=^#H^Ft6z_=y2v@#7y!ccB!d6| literal 0 HcmV?d00001 diff --git a/src/api/user.ts b/src/api/user.ts index e78866b..d995539 100644 --- a/src/api/user.ts +++ b/src/api/user.ts @@ -13,7 +13,7 @@ export interface ResLogin { } export const getUserInfo = () => { return http.get( - '/userInfo', + '/user/one/info', {}, { notAllowCancel: true @@ -29,7 +29,7 @@ export const login = (userInfo: ReqLoginForm) => { export const getMenus = () => { return http.get( - '/menus', + '/perm/menu', {}, { notAllowCancel: true @@ -39,7 +39,7 @@ export const getMenus = () => { export const getAuthRoutes = () => { return http.get( - '/authRoutes', + '/perm/authRoutes', {}, { notAllowCancel: true diff --git a/src/layout/components/MainMenu.tsx b/src/layout/components/MainMenu.tsx index a81aac5..a543f4a 100644 --- a/src/layout/components/MainMenu.tsx +++ b/src/layout/components/MainMenu.tsx @@ -1,7 +1,12 @@ import { useEffect, useState } from 'react' import { Menu, MenuProps } from 'antd' import { useNavigate, useLocation } from 'react-router-dom' -import { deepLoopFloat, findAllBreadcrumb, getOpenKeys } from '@/utils/system' +import { + deepLoopFloat, + findAllBreadcrumb, + getOpenKeys, + buildMenuTree +} from '@/utils/system' import { getMenus } from '@/api/user' import { setAuthRouter, setAuthMenus } from '@/store/modules/user/userSlice' import { useAppDispatch, useAppSelector } from '@/hooks/redux.hooks' @@ -50,13 +55,16 @@ const MainMenu = (props: any) => { if (!homeRoute) { data?.unshift({ path: '/home', - title: '首页', + name: '首页', icon: 'PieChartOutlined', - code: 'home' + code: 'home', + type: 1, + parentId: '0', + id: '1' }) } - if (!data) return - setMenuList(deepLoopFloat(data)) + const menuTree: Menu.MenuTreeOptions[] = buildMenuTree(data) + setMenuList(deepLoopFloat(menuTree)) dispatch(setBreadcrumbs(findAllBreadcrumb(data))) dispatch(setAuthMenus(data)) } diff --git a/src/router/RouterGuard.tsx b/src/router/RouterGuard.tsx index bfe799a..81839ad 100644 --- a/src/router/RouterGuard.tsx +++ b/src/router/RouterGuard.tsx @@ -13,8 +13,9 @@ interface IProps { /** * @description 路由守卫组件 * */ + const RouterGuard = (props: IProps) => { - const loaderData = useRouteLoaderData('root') as string[] + const { accessToken, authRouter } = useAppSelector((state) => state.user) useEffect(() => { // 添加tab props?.meta?.title && addTab(props.meta.title) @@ -22,12 +23,11 @@ const RouterGuard = (props: IProps) => { const { addTab } = useTabs() // * 在跳转路由之前,清除所有的请求 axiosCanceler.removeAllPending() - const { accessToken } = useAppSelector((state) => state.user) const { meta } = props if (!meta?.requiredAuth) return props.children if (!accessToken) return const staticRouter = ['/', 'home', '404', '403'] - const routerList = loaderData.concat(staticRouter) + const routerList = authRouter.concat(staticRouter) if (!routerList.includes(meta.code)) return return <>{props.children} } diff --git a/src/router/index.tsx b/src/router/index.tsx index f4f373c..5951e6b 100644 --- a/src/router/index.tsx +++ b/src/router/index.tsx @@ -7,15 +7,6 @@ import { RouteObject } from './interface' import i18n from '@/language' import { getAuthRoutes } from '@/api/user' -const rootLoader = async () => { - try { - const { data } = await getAuthRoutes() - return data - } catch (error) { - console.log(error) - return [] - } -} // * 导入所有router const metaRouters = import.meta.glob('./modules/*.tsx', { eager: true @@ -39,7 +30,7 @@ export const routes: RouteObject[] = [ }, { path: '/', - loader: rootLoader, + // loader: rootLoader, id: 'root', children: [ { diff --git a/src/router/modules/perm.tsx b/src/router/modules/perm.tsx new file mode 100644 index 0000000..cf2854b --- /dev/null +++ b/src/router/modules/perm.tsx @@ -0,0 +1,58 @@ +import { lazy } from 'react' +import lazyLoad from '../lazyLoad' +import { RouteObject } from '../interface' +import LayoutContainer from '@/layout' +// 常用组件 +const permRoutes: Array = [ + { + element: , + children: [ + { + path: '/perm/users', + element: lazyLoad( + lazy(() => import('@/views/perm/users/index')), + { + requiredAuth: true, + title: '用户管理', + code: 'perm_users' + } + ) + }, + { + path: '/perm/roles', + element: lazyLoad( + lazy(() => import('@/views/perm/roles/index')), + { + requiredAuth: true, + title: '角色管理', + code: 'perm_roles' + } + ) + }, + { + path: '/perm/depts', + element: lazyLoad( + lazy(() => import('@/views/perm/depts/index')), + { + requiredAuth: true, + title: '部门管理', + code: 'perm_depts' + } + ) + }, + { + path: '/perm/posts', + element: lazyLoad( + lazy(() => import('@/views/perm/posts/index')), + { + requiredAuth: true, + title: '岗位管理', + code: 'perm_posts' + } + ) + } + ] + } +] + +export default permRoutes diff --git a/src/store/modules/user/userSlice.ts b/src/store/modules/user/userSlice.ts index c2347e0..1a7054b 100644 --- a/src/store/modules/user/userSlice.ts +++ b/src/store/modules/user/userSlice.ts @@ -31,6 +31,9 @@ const userSlice = createSlice({ }, setAuthMenus: (state, action: SetAction) => { state.authMenus = action.payload + state.authRouter = action.payload + .filter((menu) => menu.type === 1) + .map((t) => t.code) }, setAuthRouter: (state, action: SetAction) => { state.authRouter = action.payload diff --git a/src/types/global.d.ts b/src/types/global.d.ts index b3da093..cdfb14e 100644 --- a/src/types/global.d.ts +++ b/src/types/global.d.ts @@ -12,15 +12,22 @@ declare global { browserLanguage: string } export type { RootState } from '@/store' + // * Menu export namespace Menu { + type MenuType = 1 | 2 | 3 interface MenuOptions { path: string - title: string + name: string icon?: string close?: boolean - children?: MenuOptions[] code: string + parentId: string + id: string + type: MenuType + } + type MenuTreeOptions = MenuOptions & { + children?: MenuTreeOptions[] } } export interface SetAction { diff --git a/src/utils/http/index.ts b/src/utils/http/index.ts index 7a2dace..a59e4de 100644 --- a/src/utils/http/index.ts +++ b/src/utils/http/index.ts @@ -67,7 +67,7 @@ export class CommonService extends HttpService { // * 如果当前请求不需要显示 loading,在api服务中通过指定的第三个参数: { headers: { noLoading: true } }来控制不显示loading,参见loginApi config.noLoading || showFullScreenLoading() const token: string = store.getState().user.accessToken - config.headers['token'] = token // token,需要改成store + config.headers['Authorization'] = token // token,需要改成store return config }, (error: AxiosError) => { diff --git a/src/utils/system.ts b/src/utils/system.ts index d54e63b..931df69 100644 --- a/src/utils/system.ts +++ b/src/utils/system.ts @@ -45,15 +45,15 @@ export const getItem = ( } // 处理后台返回菜单 key 值为 antd 菜单需要的 key 值 export const deepLoopFloat = ( - menuList: Menu.MenuOptions[], + menuList: Menu.MenuTreeOptions[], newArr: MenuItem[] = [] ) => { - menuList.forEach((item: Menu.MenuOptions) => { + menuList.forEach((item: Menu.MenuTreeOptions) => { if (!item?.children?.length) - return newArr.push(getItem(item.title, item.path, getAntIcon(item.icon!))) + return newArr.push(getItem(item.name, item.path, getAntIcon(item.icon!))) newArr.push( getItem( - item.title, + item.name, item.path, getAntIcon(item.icon!), deepLoopFloat(item.children) @@ -69,10 +69,10 @@ export const deepLoopFloat = ( * @returns object */ export const findAllBreadcrumb = ( - menuList: Menu.MenuOptions[] + menuList: Menu.MenuTreeOptions[] ): { [key: string]: any } => { let handleBreadcrumbList: any = {} - const loop = (menuItem: Menu.MenuOptions) => { + const loop = (menuItem: Menu.MenuTreeOptions) => { // 下面判断代码解释 *** !item?.children?.length ==> (item.children && item.children.length > 0) if (menuItem?.children?.length) menuItem.children.forEach((item) => loop(item)) @@ -94,11 +94,11 @@ export const findAllBreadcrumb = ( */ export const getBreadcrumbList = ( path: string, - menuList: Menu.MenuOptions[] + menuList: Menu.MenuTreeOptions[] ) => { let tempPath: any[] = [] try { - const getNodePath = (node: Menu.MenuOptions) => { + const getNodePath = (node: Menu.MenuTreeOptions) => { tempPath.push(node) // 找到符合条件的节点,通过throw终止掉递归 if (node.path === path) { @@ -127,3 +127,32 @@ export const logout = () => { store.dispatch(setLogout()) window.location.href = '/login' } + +export function buildMenuTree( + menuList: Menu.MenuOptions[] +): Menu.MenuOptions[] { + const menuMap: { + [k: string]: { + children: Menu.MenuTreeOptions[] + path: string + name: string + icon?: string + close?: boolean + code: string + parentId: string + id: string + type: Menu.MenuType + } + } = Object.fromEntries( + menuList + .filter((menu) => menu.type === 1) + .map((menu) => [menu.id, { ...menu, children: [] }]) + ) + return Object.values(menuMap).filter((menu) => { + if (menu.parentId !== '0') { + menuMap[menu.parentId]?.children.push(menu) + return false + } + return true + }) +} diff --git a/src/views/perm/depts/index.tsx b/src/views/perm/depts/index.tsx new file mode 100644 index 0000000..6e8ced6 --- /dev/null +++ b/src/views/perm/depts/index.tsx @@ -0,0 +1,3 @@ +export default function DeptsPage() { + return
部门管理
+} diff --git a/src/views/perm/posts/index.tsx b/src/views/perm/posts/index.tsx new file mode 100644 index 0000000..439c5cd --- /dev/null +++ b/src/views/perm/posts/index.tsx @@ -0,0 +1,3 @@ +export default function PostsPage() { + return
岗位管理
+} diff --git a/src/views/perm/roles/index.tsx b/src/views/perm/roles/index.tsx new file mode 100644 index 0000000..be8d910 --- /dev/null +++ b/src/views/perm/roles/index.tsx @@ -0,0 +1,3 @@ +export default function RolesPage() { + return
角色管理
+} diff --git a/src/views/perm/users/index.tsx b/src/views/perm/users/index.tsx new file mode 100644 index 0000000..0cd4715 --- /dev/null +++ b/src/views/perm/users/index.tsx @@ -0,0 +1,3 @@ +export default function UsersPage() { + return
用户管理
+} From c74e8aa6fd223f11ba1468e1546394dd1b6d3dd0 Mon Sep 17 00:00:00 2001 From: kirk Date: Wed, 21 Aug 2024 18:05:01 +0800 Subject: [PATCH 04/42] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0refreshToken?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/enums/httpEnum.ts | 1 + src/layout/components/MainMenu.tsx | 1 + src/layout/header/components/AvatarIcon.tsx | 2 +- src/layout/header/components/InfoModal.tsx | 4 ++-- src/router/index.tsx | 2 ++ src/utils/http/index.ts | 16 +++++++++++++--- src/utils/http/refresher.ts | 20 +++++++++----------- 7 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/enums/httpEnum.ts b/src/enums/httpEnum.ts index 83bda6d..8c85263 100644 --- a/src/enums/httpEnum.ts +++ b/src/enums/httpEnum.ts @@ -6,6 +6,7 @@ export enum ResultEnum { SUCCESS = 200, ERROR = 500, OVERDUE = 599, + Unauthorized = 401, TIMEOUT = 10000, TYPE = 'success' } diff --git a/src/layout/components/MainMenu.tsx b/src/layout/components/MainMenu.tsx index a543f4a..edba81f 100644 --- a/src/layout/components/MainMenu.tsx +++ b/src/layout/components/MainMenu.tsx @@ -51,6 +51,7 @@ const MainMenu = (props: any) => { } catch (error) { console.log(error) } + const homeRoute = data?.find((t) => t.path === '/home') if (!homeRoute) { data?.unshift({ diff --git a/src/layout/header/components/AvatarIcon.tsx b/src/layout/header/components/AvatarIcon.tsx index 85855d4..bfe9c26 100644 --- a/src/layout/header/components/AvatarIcon.tsx +++ b/src/layout/header/components/AvatarIcon.tsx @@ -75,7 +75,7 @@ const AvatarIcon = () => { trigger={['click']} > -
{userInfo.username}
+
{userInfo?.username}
diff --git a/src/layout/header/components/InfoModal.tsx b/src/layout/header/components/InfoModal.tsx index ad001c8..63d605f 100644 --- a/src/layout/header/components/InfoModal.tsx +++ b/src/layout/header/components/InfoModal.tsx @@ -33,8 +33,8 @@ const InfoModal = (props: Props) => { onCancel={handleCancel} destroyOnClose={true} > -

UserName: {props.userInfo.username}

-

Phone: {props.userInfo.phone}

+

UserName: {props.userInfo?.username}

+

Phone: {props.userInfo?.phone}

) diff --git a/src/router/index.tsx b/src/router/index.tsx index 5951e6b..a64e555 100644 --- a/src/router/index.tsx +++ b/src/router/index.tsx @@ -62,4 +62,6 @@ export const routes: RouteObject[] = [ } ] export const browserRouter = createBrowserRouter(routes) +console.log(browserRouter) + export default browserRouter diff --git a/src/utils/http/index.ts b/src/utils/http/index.ts index a59e4de..358f7eb 100644 --- a/src/utils/http/index.ts +++ b/src/utils/http/index.ts @@ -84,7 +84,7 @@ export class CommonService extends HttpService { axiosCanceler.removePending(config) config.noLoading || tryHideFullScreenLoading() // * 登录失效(code == 599) - if (data.code === ResultEnum.OVERDUE) { + if (data.code === ResultEnum.Unauthorized) { const token: string = store.getState().user.accessToken if (!token) { logout() @@ -108,6 +108,16 @@ export class CommonService extends HttpService { error.config.noLoading || tryHideFullScreenLoading() axiosCanceler.removePending(error.config) } + if (error.response?.status === ResultEnum.Unauthorized) { + const token: string = store.getState().user.accessToken + if (!token) { + logout() + message.error(i18n.t('notification.pleaseLogin')) + return Promise.resolve() + } + const refresher = Refresher.getInstance() + return refresher.predict(error.response.config) + } if (error.code != 'ERR_CANCELED') { message.error(error.message) } @@ -120,8 +130,8 @@ export class RefresherService extends HttpService { useRequestInterceptors() { this.service.interceptors.request.use( (config: InternalAxiosRequestConfig) => { - const token: string = store.getState().user.accessToken - config.headers['token'] = token // token,需要改成store + const token: string = store.getState().user.refreshToken + config.headers['Authorization'] = 'Bearer ' + token // token,需要改成store return config }, (error: AxiosError) => { diff --git a/src/utils/http/refresher.ts b/src/utils/http/refresher.ts index ac7f103..a6a1052 100644 --- a/src/utils/http/refresher.ts +++ b/src/utils/http/refresher.ts @@ -2,6 +2,8 @@ import { AxiosRequestConfig } from 'axios' import { CommonService, RefresherService } from './index' import Queue from 'queue' import { ResLogin } from '@/api/user' +import store from '@/store' +import { setTokens } from '@/store/modules/user/userSlice' class Refresher { private static instance: Refresher queue: Queue @@ -22,7 +24,7 @@ class Refresher { } static getInstance() { if (!Refresher.instance) { - return new Refresher() + return (Refresher.instance = new Refresher()) } return Refresher.instance } @@ -33,7 +35,7 @@ class Refresher { */ successHandle(e: any) { console.log('task success >>>>>>') - e.detail.job.resolve(e.detail.result) + e.detail.job.resolve(e.detail.result[0]) } /** * task 失败 @@ -51,8 +53,8 @@ class Refresher { */ predict(request: AxiosRequestConfig): Promise { const task = async (): Promise => { - const token = localStorage.getItem('token') || '' - const headerJwt = request.headers?.token || '' + const headerJwt = request.headers?.Authorization || '' + const token: string = store.getState().user.accessToken if (token && headerJwt === token) { await this.refreshToken() } @@ -80,18 +82,14 @@ class Refresher { * @returns */ async refreshToken() { - const refreshToken = localStorage.getItem('refreshToken') || '' return this.refreshService .request({ - url: '/refreshToken', + url: '/auth/update/token', method: 'POST', - data: { - refresh_jwt: refreshToken // refresh token所需参数,自行处理 - } + data: {} }) .then(({ data }) => { - localStorage.setItem('token', data!.accessToken) - localStorage.setItem('refreshToken', data!.refreshToken) + store.dispatch(setTokens(data!)) return Promise.resolve() }) } From 7a17c04a0a3359fc4dadbeac6753f7647a4a6ec3 Mon Sep 17 00:00:00 2001 From: kirk Date: Fri, 23 Aug 2024 12:01:12 +0800 Subject: [PATCH 05/42] =?UTF-8?q?feat:=20=E5=88=9D=E6=AD=A5=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 8 ++-- src/layout/components/MainMenu.tsx | 2 +- src/router/RouterGuard.tsx | 9 ++-- src/router/index.tsx | 49 +++++++++++---------- src/router/useLoadRoutes.tsx | 68 +++++++++++++++++++++++++++++ src/store/interface/index.ts | 4 +- src/store/modules/user/userSlice.ts | 11 ++--- src/types/global.d.ts | 2 + src/views/test1/index.tsx | 3 ++ 9 files changed, 116 insertions(+), 40 deletions(-) create mode 100644 src/router/useLoadRoutes.tsx create mode 100644 src/views/test1/index.tsx diff --git a/src/App.tsx b/src/App.tsx index 6072975..cb9a289 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,8 +2,8 @@ import useTheme from '@/hooks/theme.hooks' import { ConfigProvider } from 'antd' import AppProvider from './components/AppProvider' import useLanguage from './hooks/language.hooks' -import { RouterProvider } from 'react-router-dom' -import browserRouter from '@/router' +import { BrowserRouter } from 'react-router-dom' +import Router from '@/router' function App() { const { themeAlgorithm, componentSize, primary } = useTheme() @@ -22,7 +22,9 @@ function App() { {/* 提供带有上下文的全局消息api */}
- + + +
diff --git a/src/layout/components/MainMenu.tsx b/src/layout/components/MainMenu.tsx index edba81f..95a7177 100644 --- a/src/layout/components/MainMenu.tsx +++ b/src/layout/components/MainMenu.tsx @@ -8,7 +8,7 @@ import { buildMenuTree } from '@/utils/system' import { getMenus } from '@/api/user' -import { setAuthRouter, setAuthMenus } from '@/store/modules/user/userSlice' +import { setAuthMenus } from '@/store/modules/user/userSlice' import { useAppDispatch, useAppSelector } from '@/hooks/redux.hooks' import { setBreadcrumbs } from '@/store/modules/breadcrumb/breadcrumbSlice' import { isLink } from '@/utils/is' diff --git a/src/router/RouterGuard.tsx b/src/router/RouterGuard.tsx index 81839ad..9b8abb2 100644 --- a/src/router/RouterGuard.tsx +++ b/src/router/RouterGuard.tsx @@ -15,7 +15,10 @@ interface IProps { * */ const RouterGuard = (props: IProps) => { - const { accessToken, authRouter } = useAppSelector((state) => state.user) + const { accessToken, authRouterCode = [] } = useAppSelector( + (state) => state.user + ) + useEffect(() => { // 添加tab props?.meta?.title && addTab(props.meta.title) @@ -26,8 +29,8 @@ const RouterGuard = (props: IProps) => { const { meta } = props if (!meta?.requiredAuth) return props.children if (!accessToken) return - const staticRouter = ['/', 'home', '404', '403'] - const routerList = authRouter.concat(staticRouter) + const staticRouter = ['/', 'home', '404', '403', 'test1'] + const routerList = authRouterCode.concat(staticRouter) if (!routerList.includes(meta.code)) return return <>{props.children} } diff --git a/src/router/index.tsx b/src/router/index.tsx index a64e555..eb164fd 100644 --- a/src/router/index.tsx +++ b/src/router/index.tsx @@ -1,11 +1,11 @@ -import { Navigate, createBrowserRouter } from 'react-router-dom' -import { lazy } from 'react' +import { Navigate, useRoutes } from 'react-router-dom' +import { lazy, useEffect, useState } from 'react' import lazyLoad from '@/router/lazyLoad' import LayoutContainer from '@/layout' import Login from '@/views/login/index' import { RouteObject } from './interface' import i18n from '@/language' -import { getAuthRoutes } from '@/api/user' +import useLoadRoutes from './useLoadRoutes' // * 导入所有router const metaRouters = import.meta.glob('./modules/*.tsx', { @@ -16,6 +16,7 @@ const metaRouters = import.meta.glob('./modules/*.tsx', { [key: string]: any } > + // * 处理路由 export const routerArray: RouteObject[] = [] Object.keys(metaRouters).forEach((item) => { @@ -23,33 +24,26 @@ Object.keys(metaRouters).forEach((item) => { routerArray.push(...metaRouters[item][key]) }) }) -export const routes: RouteObject[] = [ +export const staticRoutes: RouteObject[] = [ { path: '/', element: }, { path: '/', - // loader: rootLoader, - id: 'root', + element: , children: [ { - element: , - children: [ + path: '/home', + element: lazyLoad( + lazy(() => import('@/views/Home')), { - path: '/home', - element: lazyLoad( - lazy(() => import('@/views/Home')), - { - title: i18n.t('home.title'), - requiredAuth: true, - code: 'home' - } - ) + title: i18n.t('home.title'), + requiredAuth: true, + code: 'home' } - ] - }, - ...routerArray + ) + } ] }, { @@ -61,7 +55,16 @@ export const routes: RouteObject[] = [ element: } ] -export const browserRouter = createBrowserRouter(routes) -console.log(browserRouter) +const Router = () => { + const { dynamicRoutes } = useLoadRoutes() + const [routes, setRoutes] = useState([] as RouteObject[]) + useEffect(() => { + dynamicRoutes.forEach((route) => { + staticRoutes[1].children!.push(route) + }) + setRoutes(staticRoutes) + }, [dynamicRoutes]) -export default browserRouter + return useRoutes(routes) +} +export default Router diff --git a/src/router/useLoadRoutes.tsx b/src/router/useLoadRoutes.tsx new file mode 100644 index 0000000..e00dbee --- /dev/null +++ b/src/router/useLoadRoutes.tsx @@ -0,0 +1,68 @@ +import { useAppSelector } from '@/hooks/redux.hooks' +import { useState, useEffect, lazy, ComponentType } from 'react' +import { RouteObject } from './interface' +import { buildMenuTree } from '@/utils/system' +import lazyLoad from './lazyLoad' + +// * 导入所有router +const viewModules = import.meta.glob('../views/**/*.tsx', { + eager: true +}) as Record< + string, + { + default: ComponentType<{}> + } +> +console.log(viewModules) + +export default function useLoadRoutes() { + const { authMenus } = useAppSelector((store) => store.user) + const [routes, setRoutes] = useState([] as RouteObject[]) + + useEffect(() => { + const dynamicRoutes = createDynamicRoutes(authMenus) + setRoutes(dynamicRoutes) + }, [authMenus]) + + return { + dynamicRoutes: routes + } +} + +export function createDynamicRoutes(menus: Menu.MenuOptions[]): RouteObject[] { + const routeMenus = menus.filter((menu) => menu.type === 1 && menu.path) + const menuTree: Menu.MenuTreeOptions[] = buildMenuTree(routeMenus) + function getDynamicRoutes(menus: Menu.MenuTreeOptions[]): RouteObject[] { + const dynamicRoutes: RouteObject[] = [] + menus.forEach((item) => { + const route = buildDynamicRoute(item) + if (item.children && item.children.length > 0) { + route.children = getDynamicRoutes(item.children) + } + dynamicRoutes.push(route) + }) + return dynamicRoutes + } + return getDynamicRoutes(menuTree) +} + +function buildDynamicRoute(menu: Menu.MenuTreeOptions): RouteObject { + if (menu?.children && menu.children.length) { + return { + path: menu.path + } + } + return { + path: menu.path, + element: lazyLoad( + lazy(() => + Promise.resolve(viewModules[`../views${menu.path}/index.tsx`]) + ), + { + title: menu.name, + requiredAuth: true, + code: menu.code + } + ) + } +} diff --git a/src/store/interface/index.ts b/src/store/interface/index.ts index 6328f3b..f920edb 100644 --- a/src/store/interface/index.ts +++ b/src/store/interface/index.ts @@ -1,7 +1,7 @@ import { languageEnums } from '@/enums/languageEnum' +import { MetaProps, RouteObject } from '@/router/interface' import { MappingAlgorithm } from 'antd' import { SizeType } from 'antd/es/config-provider/SizeContext' - export interface UserInfo { username?: string phone?: string @@ -11,7 +11,7 @@ export interface UserState { accessToken: string refreshToken: string authMenus: Menu.MenuOptions[] - authRouter: string[] + authRouterCode: string[] } export type GlobalTheme = 'light' | 'dark' diff --git a/src/store/modules/user/userSlice.ts b/src/store/modules/user/userSlice.ts index 1a7054b..52a884b 100644 --- a/src/store/modules/user/userSlice.ts +++ b/src/store/modules/user/userSlice.ts @@ -7,7 +7,7 @@ const initialState: UserState = { accessToken: '', refreshToken: '', authMenus: [], // 所有授权的菜单 - authRouter: [] // 授权的一维路由表 + authRouterCode: [] // 授权的一维路由表 } const userSlice = createSlice({ name: 'user', @@ -27,16 +27,12 @@ const userSlice = createSlice({ state.accessToken = '' state.refreshToken = '' state.userInfo = {} - state.authMenus = state.authRouter = [] }, setAuthMenus: (state, action: SetAction) => { state.authMenus = action.payload - state.authRouter = action.payload + state.authRouterCode = action.payload .filter((menu) => menu.type === 1) .map((t) => t.code) - }, - setAuthRouter: (state, action: SetAction) => { - state.authRouter = action.payload } }, extraReducers: (builder) => { @@ -51,6 +47,5 @@ export const setUserInfo = createAsyncThunk('user/getUserInfo', async () => { const res = await getUserInfo() return res.data }) -export const { setTokens, setAuthMenus, setAuthRouter, setLogout } = - userSlice.actions +export const { setTokens, setAuthMenus, setLogout } = userSlice.actions export default userSlice.reducer diff --git a/src/types/global.d.ts b/src/types/global.d.ts index cdfb14e..b970043 100644 --- a/src/types/global.d.ts +++ b/src/types/global.d.ts @@ -1,3 +1,4 @@ +import { MetaProps } from '@/router/interface' import '@/store' declare global { import { MessageInstance, HookAPI, NotificationInstance } from 'antd' @@ -25,6 +26,7 @@ declare global { parentId: string id: string type: MenuType + meta?: MetaProps } type MenuTreeOptions = MenuOptions & { children?: MenuTreeOptions[] diff --git a/src/views/test1/index.tsx b/src/views/test1/index.tsx new file mode 100644 index 0000000..e6db1e4 --- /dev/null +++ b/src/views/test1/index.tsx @@ -0,0 +1,3 @@ +export default function Test1() { + return
test1
+} From 5142c9156003602cb1ec13746aafefb6815e2d56 Mon Sep 17 00:00:00 2001 From: kirk Date: Fri, 23 Aug 2024 14:05:44 +0800 Subject: [PATCH 06/42] =?UTF-8?q?feat:=20=E5=BE=85=E8=A7=A3=E5=86=B3404?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 186 ++++++++++++------------- src/components/Loading/FullLoading.tsx | 16 +++ src/router/index.tsx | 14 +- src/router/useLoadRoutes.tsx | 1 - src/store/modules/user/userSlice.ts | 2 + 5 files changed, 119 insertions(+), 100 deletions(-) create mode 100644 src/components/Loading/FullLoading.tsx diff --git a/index.html b/index.html index e50444a..2a36aea 100644 --- a/index.html +++ b/index.html @@ -1,112 +1,110 @@ + + + + + <%- title %> + - - - - - <%- title %> - - - -
- -
-
- + +
+
+ +
-
- - - - \ No newline at end of file + + + diff --git a/src/components/Loading/FullLoading.tsx b/src/components/Loading/FullLoading.tsx new file mode 100644 index 0000000..12362ec --- /dev/null +++ b/src/components/Loading/FullLoading.tsx @@ -0,0 +1,16 @@ +import { Spin } from 'antd' +import './index.scss' + +const FullLoading = ({ tip = 'Loading' }: { tip?: string }) => { + return ( +
+
+ +
+ +
+
+ ) +} + +export default FullLoading diff --git a/src/router/index.tsx b/src/router/index.tsx index eb164fd..bbb0e07 100644 --- a/src/router/index.tsx +++ b/src/router/index.tsx @@ -6,6 +6,7 @@ import Login from '@/views/login/index' import { RouteObject } from './interface' import i18n from '@/language' import useLoadRoutes from './useLoadRoutes' +import FullLoading from '@/components/Loading/FullLoading' // * 导入所有router const metaRouters = import.meta.glob('./modules/*.tsx', { @@ -57,12 +58,15 @@ export const staticRoutes: RouteObject[] = [ ] const Router = () => { const { dynamicRoutes } = useLoadRoutes() - const [routes, setRoutes] = useState([] as RouteObject[]) + const [routes, setRoutes] = useState(staticRoutes) useEffect(() => { - dynamicRoutes.forEach((route) => { - staticRoutes[1].children!.push(route) - }) - setRoutes(staticRoutes) + if (dynamicRoutes.length > 0) { + const newRoutes = [...staticRoutes] + dynamicRoutes.forEach((route) => { + newRoutes[1].children!.push(route) + }) + setRoutes(newRoutes) + } }, [dynamicRoutes]) return useRoutes(routes) diff --git a/src/router/useLoadRoutes.tsx b/src/router/useLoadRoutes.tsx index e00dbee..5d0f6e7 100644 --- a/src/router/useLoadRoutes.tsx +++ b/src/router/useLoadRoutes.tsx @@ -13,7 +13,6 @@ const viewModules = import.meta.glob('../views/**/*.tsx', { default: ComponentType<{}> } > -console.log(viewModules) export default function useLoadRoutes() { const { authMenus } = useAppSelector((store) => store.user) diff --git a/src/store/modules/user/userSlice.ts b/src/store/modules/user/userSlice.ts index 52a884b..aaa6e93 100644 --- a/src/store/modules/user/userSlice.ts +++ b/src/store/modules/user/userSlice.ts @@ -27,6 +27,8 @@ const userSlice = createSlice({ state.accessToken = '' state.refreshToken = '' state.userInfo = {} + state.authRouterCode = [] + state.authMenus = [] }, setAuthMenus: (state, action: SetAction) => { state.authMenus = action.payload From a6b3a362b35c49e0091b04327b37864f9a99cd4f Mon Sep 17 00:00:00 2001 From: kirk Date: Fri, 23 Aug 2024 16:17:46 +0800 Subject: [PATCH 07/42] =?UTF-8?q?feat:=20=E5=8A=A8=E6=80=81=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E5=9F=BA=E6=9C=AC=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/menu.hooks.ts | 40 ++++++++++++++++++++++++++++++ src/layout/components/MainMenu.tsx | 31 ++++------------------- src/router/index.tsx | 10 ++++++++ 3 files changed, 55 insertions(+), 26 deletions(-) create mode 100644 src/hooks/menu.hooks.ts diff --git a/src/hooks/menu.hooks.ts b/src/hooks/menu.hooks.ts new file mode 100644 index 0000000..dd5ff14 --- /dev/null +++ b/src/hooks/menu.hooks.ts @@ -0,0 +1,40 @@ +import { useEffect } from 'react' +import { useAppDispatch, useAppSelector } from './redux.hooks' +import { setBreadcrumbs } from '@/store/modules/breadcrumb/breadcrumbSlice' +import { findAllBreadcrumb } from '@/utils/system' +import { setAuthMenus } from '@/store/modules/user/userSlice' +import { getMenus } from '@/api/user' + +const useMenu = () => { + const { accessToken } = useAppSelector((store) => store.user) + const dispatch = useAppDispatch() + useEffect(() => { + getMenuData() + }, [accessToken]) + + async function getMenuData() { + let data: Menu.MenuOptions[] = [] + try { + const res = await getMenus() + data = res.data! + } catch (error) { + console.log(error) + } + const homeRoute = data?.find((t) => t.path === '/home') + if (!homeRoute) { + data?.unshift({ + path: '/home', + name: '首页', + icon: 'PieChartOutlined', + code: 'home', + type: 1, + parentId: '0', + id: '1' + }) + } + dispatch(setBreadcrumbs(findAllBreadcrumb(data))) + dispatch(setAuthMenus(data)) + } +} + +export default useMenu diff --git a/src/layout/components/MainMenu.tsx b/src/layout/components/MainMenu.tsx index 95a7177..71ce83c 100644 --- a/src/layout/components/MainMenu.tsx +++ b/src/layout/components/MainMenu.tsx @@ -16,8 +16,9 @@ type MenuItem = Required['items'][number] const MainMenu = (props: any) => { const navigateTo = useNavigate() - const { collapsed } = useAppSelector((state) => ({ - collapsed: state.global.collapsed + const { collapsed, authMenus } = useAppSelector((state) => ({ + collapsed: state.global.collapsed, + authMenus: state.user.authMenus })) const dispatch = useAppDispatch() const { pathname } = useLocation() @@ -44,34 +45,12 @@ const MainMenu = (props: any) => { } } const getMenuData = async () => { - let data: Menu.MenuOptions[] = [] - try { - const res = await getMenus() - data = res.data! - } catch (error) { - console.log(error) - } - - const homeRoute = data?.find((t) => t.path === '/home') - if (!homeRoute) { - data?.unshift({ - path: '/home', - name: '首页', - icon: 'PieChartOutlined', - code: 'home', - type: 1, - parentId: '0', - id: '1' - }) - } - const menuTree: Menu.MenuTreeOptions[] = buildMenuTree(data) + const menuTree: Menu.MenuTreeOptions[] = buildMenuTree(authMenus) setMenuList(deepLoopFloat(menuTree)) - dispatch(setBreadcrumbs(findAllBreadcrumb(data))) - dispatch(setAuthMenus(data)) } useEffect(() => { getMenuData() - }, []) + }, [authMenus]) return ( { + useMenu() // 请求菜单 const { dynamicRoutes } = useLoadRoutes() + const [isLoaded, setIsLoaded] = useState(false) + const { accessToken } = useAppSelector((store) => store.user) + const [routes, setRoutes] = useState(staticRoutes) useEffect(() => { if (dynamicRoutes.length > 0) { @@ -66,9 +72,13 @@ const Router = () => { newRoutes[1].children!.push(route) }) setRoutes(newRoutes) + setIsLoaded(true) } }, [dynamicRoutes]) + if (accessToken && !isLoaded) { + return useRoutes([{ path: '*', element: }]) + } return useRoutes(routes) } export default Router From fb859c24d9da84c3b3fe6ab8f4b8b46bdd2203a0 Mon Sep 17 00:00:00 2001 From: kirk Date: Fri, 23 Aug 2024 16:33:28 +0800 Subject: [PATCH 08/42] =?UTF-8?q?feat:=20=E4=BF=AE=E5=A4=8Dbg=E7=9B=91?= =?UTF-8?q?=E5=90=ACbgu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/login/index.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/views/login/index.tsx b/src/views/login/index.tsx index b9bc652..410658c 100644 --- a/src/views/login/index.tsx +++ b/src/views/login/index.tsx @@ -54,13 +54,17 @@ const LoginView = () => { }) }) } + function initBg() { + initBackground(theme) + } const onFinishFailed = (errorInfo: any) => {} useEffect(() => { const stop = initBackground(theme) - window.onresize = function () { - initBackground(theme) + window.addEventListener('resize', initBg) + return () => { + stop() + window.removeEventListener('resize', initBg) } - return () => stop() }, [theme]) return ( <> From b474babb5188c7ea018b2599fe708b5f627ef4c3 Mon Sep 17 00:00:00 2001 From: kirk Date: Fri, 23 Aug 2024 17:10:05 +0800 Subject: [PATCH 09/42] =?UTF-8?q?feat:=20=E5=BC=82=E5=B8=B8=E5=A4=84?= =?UTF-8?q?=E7=90=86.=E6=B7=BB=E5=8A=A0=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/menu.hooks.ts | 22 +++++++++++----------- src/router/index.tsx | 2 +- src/router/modules/perm.tsx | 2 +- src/router/useLoadRoutes.tsx | 8 +++++--- src/views/{Home.tsx => home/index.tsx} | 0 src/views/system/menus/index.tsx | 3 +++ src/views/system/oss/index.tsx | 3 +++ 7 files changed, 24 insertions(+), 16 deletions(-) rename src/views/{Home.tsx => home/index.tsx} (100%) create mode 100644 src/views/system/menus/index.tsx create mode 100644 src/views/system/oss/index.tsx diff --git a/src/hooks/menu.hooks.ts b/src/hooks/menu.hooks.ts index dd5ff14..4bccddd 100644 --- a/src/hooks/menu.hooks.ts +++ b/src/hooks/menu.hooks.ts @@ -21,17 +21,17 @@ const useMenu = () => { console.log(error) } const homeRoute = data?.find((t) => t.path === '/home') - if (!homeRoute) { - data?.unshift({ - path: '/home', - name: '首页', - icon: 'PieChartOutlined', - code: 'home', - type: 1, - parentId: '0', - id: '1' - }) - } + // if (!homeRoute) { + // data?.unshift({ + // path: '/home', + // name: '首页', + // icon: 'PieChartOutlined', + // code: 'home', + // type: 1, + // parentId: '0', + // id: '1' + // }) + // } dispatch(setBreadcrumbs(findAllBreadcrumb(data))) dispatch(setAuthMenus(data)) } diff --git a/src/router/index.tsx b/src/router/index.tsx index d02f3ad..a28efaf 100644 --- a/src/router/index.tsx +++ b/src/router/index.tsx @@ -39,7 +39,7 @@ export const staticRoutes: RouteObject[] = [ { path: '/home', element: lazyLoad( - lazy(() => import('@/views/Home')), + lazy(() => import('@/views/home')), { title: i18n.t('home.title'), requiredAuth: true, diff --git a/src/router/modules/perm.tsx b/src/router/modules/perm.tsx index cf2854b..ff4b3ba 100644 --- a/src/router/modules/perm.tsx +++ b/src/router/modules/perm.tsx @@ -32,7 +32,7 @@ const permRoutes: Array = [ { path: '/perm/depts', element: lazyLoad( - lazy(() => import('@/views/perm/depts/index')), + lazy(() => import('@/views/perm/depts2/index')), { requiredAuth: true, title: '部门管理', diff --git a/src/router/useLoadRoutes.tsx b/src/router/useLoadRoutes.tsx index 5d0f6e7..2540408 100644 --- a/src/router/useLoadRoutes.tsx +++ b/src/router/useLoadRoutes.tsx @@ -51,12 +51,14 @@ function buildDynamicRoute(menu: Menu.MenuTreeOptions): RouteObject { path: menu.path } } + const element = viewModules[`../views${menu.path}/index.tsx`] + if (!element) { + throw new Error(`找不到 ${menu.path} 对应的路由文件`) + } return { path: menu.path, element: lazyLoad( - lazy(() => - Promise.resolve(viewModules[`../views${menu.path}/index.tsx`]) - ), + lazy(() => Promise.resolve(element)), { title: menu.name, requiredAuth: true, diff --git a/src/views/Home.tsx b/src/views/home/index.tsx similarity index 100% rename from src/views/Home.tsx rename to src/views/home/index.tsx diff --git a/src/views/system/menus/index.tsx b/src/views/system/menus/index.tsx new file mode 100644 index 0000000..25c52ae --- /dev/null +++ b/src/views/system/menus/index.tsx @@ -0,0 +1,3 @@ +export default function MenusPage() { + return
菜单管理
+} diff --git a/src/views/system/oss/index.tsx b/src/views/system/oss/index.tsx new file mode 100644 index 0000000..cee500b --- /dev/null +++ b/src/views/system/oss/index.tsx @@ -0,0 +1,3 @@ +export default function OssPage() { + return
资源管理
+} From 15ae8e1b1f4deaac5cd619bc4259bf3189feae0e Mon Sep 17 00:00:00 2001 From: kirk Date: Fri, 23 Aug 2024 17:14:44 +0800 Subject: [PATCH 10/42] feat: loading --- src/components/Loading/FullLoading.tsx | 2 +- src/components/Loading/index.scss | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/Loading/FullLoading.tsx b/src/components/Loading/FullLoading.tsx index 12362ec..8f94d6f 100644 --- a/src/components/Loading/FullLoading.tsx +++ b/src/components/Loading/FullLoading.tsx @@ -3,7 +3,7 @@ import './index.scss' const FullLoading = ({ tip = 'Loading' }: { tip?: string }) => { return ( -
+
diff --git a/src/components/Loading/index.scss b/src/components/Loading/index.scss index 6eb254b..ce95238 100644 --- a/src/components/Loading/index.scss +++ b/src/components/Loading/index.scss @@ -14,7 +14,8 @@ } /* 请求 Loading 遮罩层样式 */ -#loading { +#loading, +#full-loading { position: fixed; inset: 0; z-index: 9998; From aebe314401f854ed337430c2d7114db805ee81f6 Mon Sep 17 00:00:00 2001 From: kirk Date: Fri, 23 Aug 2024 17:19:03 +0800 Subject: [PATCH 11/42] =?UTF-8?q?feat:=20errorPage=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E9=9D=99=E6=80=81=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/index.tsx | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/router/index.tsx b/src/router/index.tsx index a28efaf..f7cdfc4 100644 --- a/src/router/index.tsx +++ b/src/router/index.tsx @@ -46,6 +46,28 @@ export const staticRoutes: RouteObject[] = [ code: 'home' } ) + }, + { + path: '/404', + element: lazyLoad( + lazy(() => import('@/views/error/404')), + { + requiredAuth: true, + title: 'Not Found', + code: '404' + } + ) + }, + { + path: '/403', + element: lazyLoad( + lazy(() => import('@/views/error/403')), + { + requiredAuth: true, + title: 'Not Authorized', + code: '403' + } + ) } ] }, From fe0848b315da0dbd4cf5cf86f0d5f4699ea794f0 Mon Sep 17 00:00:00 2001 From: kirk Date: Mon, 26 Aug 2024 09:38:22 +0800 Subject: [PATCH 12/42] feat: localRoutes --- src/hooks/menu.hooks.ts | 4 +++- src/router/index.tsx | 27 +++------------------------ 2 files changed, 6 insertions(+), 25 deletions(-) diff --git a/src/hooks/menu.hooks.ts b/src/hooks/menu.hooks.ts index 4bccddd..658a166 100644 --- a/src/hooks/menu.hooks.ts +++ b/src/hooks/menu.hooks.ts @@ -9,7 +9,9 @@ const useMenu = () => { const { accessToken } = useAppSelector((store) => store.user) const dispatch = useAppDispatch() useEffect(() => { - getMenuData() + if (accessToken) { + getMenuData() + } }, [accessToken]) async function getMenuData() { diff --git a/src/router/index.tsx b/src/router/index.tsx index f7cdfc4..d2c20fe 100644 --- a/src/router/index.tsx +++ b/src/router/index.tsx @@ -21,10 +21,10 @@ const metaRouters = import.meta.glob('./modules/*.tsx', { > // * 处理路由 -export const routerArray: RouteObject[] = [] +export const localRoutes: RouteObject[] = [] Object.keys(metaRouters).forEach((item) => { Object.keys(metaRouters[item]).forEach((key: any) => { - routerArray.push(...metaRouters[item][key]) + localRoutes.push(...metaRouters[item][key]) }) }) export const staticRoutes: RouteObject[] = [ @@ -46,31 +46,10 @@ export const staticRoutes: RouteObject[] = [ code: 'home' } ) - }, - { - path: '/404', - element: lazyLoad( - lazy(() => import('@/views/error/404')), - { - requiredAuth: true, - title: 'Not Found', - code: '404' - } - ) - }, - { - path: '/403', - element: lazyLoad( - lazy(() => import('@/views/error/403')), - { - requiredAuth: true, - title: 'Not Authorized', - code: '403' - } - ) } ] }, + ...localRoutes, { path: '/login', element: From a216ea2389e6eaa4e365d102d6fcda9cf4c38f00 Mon Sep 17 00:00:00 2001 From: kirk Date: Mon, 26 Aug 2024 12:19:10 +0800 Subject: [PATCH 13/42] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E8=B7=AF?= =?UTF-8?q?=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 6 +++--- src/layout/tabs/index.tsx | 2 +- src/router/RouterGuard.tsx | 8 ++++---- src/router/index.tsx | 18 +++++++++++++----- src/router/modules/perm.tsx | 2 +- 5 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index cb9a289..cb74043 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -22,9 +22,9 @@ function App() { {/* 提供带有上下文的全局消息api */}
- - - + {/* */} + + {/* */}
diff --git a/src/layout/tabs/index.tsx b/src/layout/tabs/index.tsx index 0112457..11e7e3e 100644 --- a/src/layout/tabs/index.tsx +++ b/src/layout/tabs/index.tsx @@ -28,7 +28,7 @@ const LayoutTabs = () => { label: ( {item.path == HOME_URL ? : ''} - {item.title} + {item.name} ), closeIcon: item.path == HOME_URL ? false : diff --git a/src/router/RouterGuard.tsx b/src/router/RouterGuard.tsx index 9b8abb2..d06d17e 100644 --- a/src/router/RouterGuard.tsx +++ b/src/router/RouterGuard.tsx @@ -18,7 +18,6 @@ const RouterGuard = (props: IProps) => { const { accessToken, authRouterCode = [] } = useAppSelector( (state) => state.user ) - useEffect(() => { // 添加tab props?.meta?.title && addTab(props.meta.title) @@ -29,9 +28,10 @@ const RouterGuard = (props: IProps) => { const { meta } = props if (!meta?.requiredAuth) return props.children if (!accessToken) return - const staticRouter = ['/', 'home', '404', '403', 'test1'] - const routerList = authRouterCode.concat(staticRouter) - if (!routerList.includes(meta.code)) return + // 动态路由不再校验code + // const staticRouter = ['/', 'home', '404', '403', 'test1'] + // const routerList = authRouterCode.concat(staticRouter) + // if (!routerList.includes(meta.code)) return return <>{props.children} } diff --git a/src/router/index.tsx b/src/router/index.tsx index d2c20fe..b0197d4 100644 --- a/src/router/index.tsx +++ b/src/router/index.tsx @@ -1,4 +1,9 @@ -import { Navigate, useRoutes } from 'react-router-dom' +import { + createBrowserRouter, + Navigate, + RouterProvider, + useRoutes +} from 'react-router-dom' import { lazy, useEffect, useState } from 'react' import lazyLoad from '@/router/lazyLoad' import LayoutContainer from '@/layout' @@ -9,7 +14,6 @@ import useLoadRoutes from './useLoadRoutes' import FullLoading from '@/components/Loading/FullLoading' import { useAppSelector } from '@/hooks/redux.hooks' import useMenu from '@/hooks/menu.hooks' - // * 导入所有router const metaRouters = import.meta.glob('./modules/*.tsx', { eager: true @@ -76,10 +80,14 @@ const Router = () => { setIsLoaded(true) } }, [dynamicRoutes]) - if (accessToken && !isLoaded) { - return useRoutes([{ path: '*', element: }]) + // setRoutes([{ path: '*', element: }]) + const routeMatch = createBrowserRouter([ + { path: '*', element: } + ]) + return } - return useRoutes(routes) + const router = createBrowserRouter(routes) + return } export default Router diff --git a/src/router/modules/perm.tsx b/src/router/modules/perm.tsx index ff4b3ba..cf2854b 100644 --- a/src/router/modules/perm.tsx +++ b/src/router/modules/perm.tsx @@ -32,7 +32,7 @@ const permRoutes: Array = [ { path: '/perm/depts', element: lazyLoad( - lazy(() => import('@/views/perm/depts2/index')), + lazy(() => import('@/views/perm/depts/index')), { requiredAuth: true, title: '部门管理', From 7f67eb53438e78be7457910cb6831afb56b8932b Mon Sep 17 00:00:00 2001 From: kirk Date: Mon, 26 Aug 2024 14:47:19 +0800 Subject: [PATCH 14/42] =?UTF-8?q?feat:=20tab=E7=B1=BB=E5=9E=8B=20TabItem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/tabs.hooks.ts | 9 ++++----- src/layout/tabs/index.tsx | 5 +++-- src/store/interface/index.ts | 6 +++++- src/store/modules/tab/tabSlice.ts | 4 ++-- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/hooks/tabs.hooks.ts b/src/hooks/tabs.hooks.ts index 98bfe15..04c2157 100644 --- a/src/hooks/tabs.hooks.ts +++ b/src/hooks/tabs.hooks.ts @@ -2,6 +2,7 @@ import { useLocation, useNavigate } from 'react-router-dom' import { useAppDispatch, useAppSelector } from './redux.hooks' import { setTabActive, setTabList } from '@/store/modules/tab/tabSlice' import { HOME_URL } from '@/config/config' +import { TabItem } from '@/store/interface' export function useTabs() { const tabList = useAppSelector((state) => state.tab.tabList) @@ -18,13 +19,11 @@ export function useTabs() { navigate(nextTab.path) } dispatch( - setTabList( - tabList.filter((item: Menu.MenuOptions) => item.path !== tabPath) - ) + setTabList(tabList.filter((item: TabItem) => item.path !== tabPath)) ) } const closeMultipleTab = (tabPath?: string) => { - const handleTabsList = tabList.filter((item: Menu.MenuOptions) => { + const handleTabsList = tabList.filter((item: TabItem) => { return item.path === tabPath || item.path === HOME_URL }) dispatch(setTabList(handleTabsList)) @@ -32,7 +31,7 @@ export function useTabs() { } const addTab = (title: string) => { let newTabList = JSON.parse(JSON.stringify(tabList)) - if (tabList.every((item: Menu.MenuOptions) => item.path !== pathname)) { + if (tabList.every((item: TabItem) => item.path !== pathname)) { newTabList.push({ title: title, path: pathname diff --git a/src/layout/tabs/index.tsx b/src/layout/tabs/index.tsx index 11e7e3e..e0b85d2 100644 --- a/src/layout/tabs/index.tsx +++ b/src/layout/tabs/index.tsx @@ -7,6 +7,7 @@ import './index.scss' import MoreBtn from './MoreBtn' import { useAppSelector } from '@/hooks/redux.hooks' import { useTabs } from '@/hooks/tabs.hooks' +import { TabItem } from '@/store/interface' const LayoutTabs = () => { const { tabList, themeConfig } = useAppSelector((state) => ({ @@ -22,13 +23,13 @@ const LayoutTabs = () => { const { delTab, closeMultipleTab } = useTabs() const items = useMemo(() => { - return tabList.map((item: Menu.MenuOptions) => { + return tabList.map((item: TabItem) => { return { key: item.path, label: ( {item.path == HOME_URL ? : ''} - {item.name} + {item.title} ), closeIcon: item.path == HOME_URL ? false : diff --git a/src/store/interface/index.ts b/src/store/interface/index.ts index f920edb..e8d55f5 100644 --- a/src/store/interface/index.ts +++ b/src/store/interface/index.ts @@ -43,8 +43,12 @@ export interface BreadcrumbState { [propName: string]: any } } +export interface TabItem { + path: string + title: string +} export interface TabState { tabActive: string - tabList: Menu.MenuOptions[] + tabList: TabItem[] } diff --git a/src/store/modules/tab/tabSlice.ts b/src/store/modules/tab/tabSlice.ts index d730aba..02ce47c 100644 --- a/src/store/modules/tab/tabSlice.ts +++ b/src/store/modules/tab/tabSlice.ts @@ -1,5 +1,5 @@ import { HOME_URL } from '@/config/config' -import { TabState } from '@/store/interface' +import { TabItem, TabState } from '@/store/interface' import { createSlice } from '@reduxjs/toolkit' const initialState: TabState = { @@ -13,7 +13,7 @@ const tabSlice = createSlice({ setTabActive: (state, action: SetAction) => { state.tabActive = action.payload }, - setTabList: (state, action: SetAction) => { + setTabList: (state, action: SetAction) => { state.tabList = action.payload } } From bf69fa7d16e256f86415be65f8d6ac3520d8392c Mon Sep 17 00:00:00 2001 From: kirk Date: Tue, 27 Aug 2024 17:56:52 +0800 Subject: [PATCH 15/42] =?UTF-8?q?feat:=20=E9=9D=A2=E5=8C=85=E5=B1=91?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E5=92=8C=E8=8F=9C=E5=8D=95=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 5 + pnpm-lock.yaml | 7891 +++++++++++++++----------- src/App.tsx | 8 + src/api/system.ts | 5 + src/components/AppProvider/index.tsx | 8 +- src/components/Iconfont/icons.ts | 52 + src/components/Table/index.tsx | 7 + src/layout/components/MainMenu.tsx | 10 +- src/utils/system.ts | 2 +- src/views/system/menus/index.tsx | 68 +- src/views/system/menus/index.type.ts | 0 11 files changed, 4713 insertions(+), 3343 deletions(-) create mode 100644 src/api/system.ts create mode 100644 src/components/Iconfont/icons.ts create mode 100644 src/components/Table/index.tsx create mode 100644 src/views/system/menus/index.type.ts diff --git a/package.json b/package.json index 790b9fc..4a89b4b 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "gsap": "^3.12.2", "i18next": "^23.4.6", "less": "^4.2.0", + "lodash": "^4.17.21", "normalize.css": "^8.0.1", "nprogress": "^0.2.0", "qs": "^6.11.2", @@ -37,17 +38,21 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-i18next": "^13.2.0", + "react-query": "^3.39.3", "react-redux": "^7.2.8", "react-router-dom": "6.15.0", + "react-use": "^17.5.1", "redux": "4.2.1", "redux-persist": "^6.0.0", "screenfull": "^6.0.2", + "styled-components": "^6.1.12", "three": "^0.157.0", "vite": "^4.4.5" }, "devDependencies": { "@commitlint/cli": "^17.3.0", "@commitlint/config-conventional": "^17.3.0", + "@types/lodash": "^4.17.7", "@types/mockjs": "^1.0.7", "@types/node": "20.4.6", "@types/qs": "^6.9.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d3e092..d54ceeb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,1080 +1,700 @@ -lockfileVersion: '6.0' - -dependencies: - '@ant-design/icons': - specifier: ^5.2.5 - version: 5.2.5(react-dom@18.2.0)(react@18.2.0) - '@reduxjs/toolkit': - specifier: ^1.9.5 - version: 1.9.5(react-redux@7.2.8)(react@18.2.0) - '@types/gsap': - specifier: ^3.0.0 - version: 3.0.0 - '@types/nprogress': - specifier: ^0.2.0 - version: 0.2.0 - '@types/three': - specifier: ^0.157.2 - version: 0.157.2 - '@vitejs/plugin-react': - specifier: ^4.0.3 - version: 4.0.3(vite@4.4.5) - antd: - specifier: ^5.8.6 - version: 5.8.6(react-dom@18.2.0)(react@18.2.0) - axios: - specifier: ^1.4.0 - version: 1.4.0 - copy-to-clipboard: - specifier: ^3.3.3 - version: 3.3.3 - drauu: - specifier: ^0.3.5 - version: 0.3.5 - driver.js: - specifier: ^1.2.1 - version: 1.2.1 - gasp: - specifier: ^0.0.2 - version: 0.0.2 - gsap: - specifier: ^3.12.2 - version: 3.12.2 - i18next: - specifier: ^23.4.6 - version: 23.4.6 - less: - specifier: ^4.2.0 - version: 4.2.0 - normalize.css: - specifier: ^8.0.1 - version: 8.0.1 - nprogress: - specifier: ^0.2.0 - version: 0.2.0 - qs: - specifier: ^6.11.2 - version: 6.11.2 - queue: - specifier: ^7.0.0 - version: 7.0.0 - react: - specifier: ^18.2.0 - version: 18.2.0 - react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) - react-i18next: - specifier: ^13.2.0 - version: 13.2.0(i18next@23.4.6)(react-dom@18.2.0)(react@18.2.0) - react-redux: - specifier: ^7.2.8 - version: 7.2.8(react-dom@18.2.0)(react@18.2.0) - react-router-dom: - specifier: 6.15.0 - version: 6.15.0(react-dom@18.2.0)(react@18.2.0) - redux: - specifier: 4.2.1 - version: 4.2.1 - redux-persist: - specifier: ^6.0.0 - version: 6.0.0(react@18.2.0)(redux@4.2.1) - screenfull: - specifier: ^6.0.2 - version: 6.0.2 - three: - specifier: ^0.157.0 - version: 0.157.0 - vite: - specifier: ^4.4.5 - version: 4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1) - -devDependencies: - '@commitlint/cli': - specifier: ^17.3.0 - version: 17.3.0 - '@commitlint/config-conventional': - specifier: ^17.3.0 - version: 17.3.0 - '@types/mockjs': - specifier: ^1.0.7 - version: 1.0.7 - '@types/node': - specifier: 20.4.6 - version: 20.4.6 - '@types/qs': - specifier: ^6.9.7 - version: 6.9.7 - '@types/react': - specifier: ^18.2.15 - version: 18.2.15 - '@types/react-dom': - specifier: ^18.2.7 - version: 18.2.7 - '@types/react-redux': - specifier: ^7.1.25 - version: 7.1.25 - '@typescript-eslint/eslint-plugin': - specifier: ^6.4.1 - version: 6.4.1(@typescript-eslint/parser@6.4.1)(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/parser': - specifier: ^6.4.1 - version: 6.4.1(eslint@8.45.0)(typescript@5.1.6) - cross-env: - specifier: ^7.0.3 - version: 7.0.3 - dotenv: - specifier: ^16.3.1 - version: 16.3.1 - eslint: - specifier: ^8.45.0 - version: 8.45.0 - eslint-plugin-react: - specifier: ^7.33.2 - version: 7.33.2(eslint@8.45.0) - eslint-plugin-react-hooks: - specifier: ^4.6.0 - version: 4.6.0(eslint@8.45.0) - eslint-plugin-react-refresh: - specifier: ^0.4.3 - version: 0.4.3(eslint@8.45.0) - husky: - specifier: ^8.0.2 - version: 8.0.2 - lint-staged: - specifier: ^13.1.0 - version: 13.1.0 - mockjs: - specifier: ^1.1.0 - version: 1.1.0 - prettier: - specifier: ^2.7.1 - version: 2.7.1 - sass: - specifier: ^1.65.1 - version: 1.65.1 - stylelint: - specifier: ^15.10.3 - version: 15.10.3(typescript@5.1.6) - stylelint-config-standard: - specifier: ^34.0.0 - version: 34.0.0(stylelint@15.10.3) - typescript: - specifier: ~5.1.6 - version: 5.1.6 - vite-plugin-compression: - specifier: ^0.5.1 - version: 0.5.1(vite@4.4.5) - vite-plugin-html: - specifier: ^3.2.0 - version: 3.2.0(vite@4.4.5) +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@ant-design/icons': + specifier: ^5.2.5 + version: 5.2.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@reduxjs/toolkit': + specifier: ^1.9.5 + version: 1.9.5(react-redux@7.2.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) + '@types/gsap': + specifier: ^3.0.0 + version: 3.0.0 + '@types/nprogress': + specifier: ^0.2.0 + version: 0.2.0 + '@types/three': + specifier: ^0.157.2 + version: 0.157.2 + '@vitejs/plugin-react': + specifier: ^4.0.3 + version: 4.0.3(vite@4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1)(terser@5.19.4)) + antd: + specifier: ^5.8.6 + version: 5.8.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + axios: + specifier: ^1.4.0 + version: 1.4.0 + copy-to-clipboard: + specifier: ^3.3.3 + version: 3.3.3 + drauu: + specifier: ^0.3.5 + version: 0.3.5 + driver.js: + specifier: ^1.2.1 + version: 1.2.1 + gasp: + specifier: ^0.0.2 + version: 0.0.2 + gsap: + specifier: ^3.12.2 + version: 3.12.2 + i18next: + specifier: ^23.4.6 + version: 23.4.6 + less: + specifier: ^4.2.0 + version: 4.2.0 + lodash: + specifier: ^4.17.21 + version: 4.17.21 + normalize.css: + specifier: ^8.0.1 + version: 8.0.1 + nprogress: + specifier: ^0.2.0 + version: 0.2.0 + qs: + specifier: ^6.11.2 + version: 6.11.2 + queue: + specifier: ^7.0.0 + version: 7.0.0 + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + react-i18next: + specifier: ^13.2.0 + version: 13.2.0(i18next@23.4.6)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-query: + specifier: ^3.39.3 + version: 3.39.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-redux: + specifier: ^7.2.8 + version: 7.2.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-router-dom: + specifier: 6.15.0 + version: 6.15.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-use: + specifier: ^17.5.1 + version: 17.5.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + redux: + specifier: 4.2.1 + version: 4.2.1 + redux-persist: + specifier: ^6.0.0 + version: 6.0.0(react@18.2.0)(redux@4.2.1) + screenfull: + specifier: ^6.0.2 + version: 6.0.2 + styled-components: + specifier: ^6.1.12 + version: 6.1.12(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + three: + specifier: ^0.157.0 + version: 0.157.0 + vite: + specifier: ^4.4.5 + version: 4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1)(terser@5.19.4) + devDependencies: + '@commitlint/cli': + specifier: ^17.3.0 + version: 17.3.0 + '@commitlint/config-conventional': + specifier: ^17.3.0 + version: 17.3.0 + '@types/lodash': + specifier: ^4.17.7 + version: 4.17.7 + '@types/mockjs': + specifier: ^1.0.7 + version: 1.0.7 + '@types/node': + specifier: 20.4.6 + version: 20.4.6 + '@types/qs': + specifier: ^6.9.7 + version: 6.9.7 + '@types/react': + specifier: ^18.2.15 + version: 18.2.15 + '@types/react-dom': + specifier: ^18.2.7 + version: 18.2.7 + '@types/react-redux': + specifier: ^7.1.25 + version: 7.1.25 + '@typescript-eslint/eslint-plugin': + specifier: ^6.4.1 + version: 6.4.1(@typescript-eslint/parser@6.4.1(eslint@8.45.0)(typescript@5.1.6))(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/parser': + specifier: ^6.4.1 + version: 6.4.1(eslint@8.45.0)(typescript@5.1.6) + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + dotenv: + specifier: ^16.3.1 + version: 16.3.1 + eslint: + specifier: ^8.45.0 + version: 8.45.0 + eslint-plugin-react: + specifier: ^7.33.2 + version: 7.33.2(eslint@8.45.0) + eslint-plugin-react-hooks: + specifier: ^4.6.0 + version: 4.6.0(eslint@8.45.0) + eslint-plugin-react-refresh: + specifier: ^0.4.3 + version: 0.4.3(eslint@8.45.0) + husky: + specifier: ^8.0.2 + version: 8.0.2 + lint-staged: + specifier: ^13.1.0 + version: 13.1.0 + mockjs: + specifier: ^1.1.0 + version: 1.1.0 + prettier: + specifier: ^2.7.1 + version: 2.7.1 + sass: + specifier: ^1.65.1 + version: 1.65.1 + stylelint: + specifier: ^15.10.3 + version: 15.10.3(typescript@5.1.6) + stylelint-config-standard: + specifier: ^34.0.0 + version: 34.0.0(stylelint@15.10.3(typescript@5.1.6)) + typescript: + specifier: ~5.1.6 + version: 5.1.6 + vite-plugin-compression: + specifier: ^0.5.1 + version: 0.5.1(vite@4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1)(terser@5.19.4)) + vite-plugin-html: + specifier: ^3.2.0 + version: 3.2.0(vite@4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1)(terser@5.19.4)) packages: - /@aashutoshrathi/word-wrap@1.2.6: + '@aashutoshrathi/word-wrap@1.2.6': resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} - dev: true - /@ampproject/remapping@2.2.1: + '@ampproject/remapping@2.2.1': resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 - dev: false - /@ant-design/colors@7.0.0: + '@ant-design/colors@7.0.0': resolution: {integrity: sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==} - dependencies: - '@ctrl/tinycolor': 3.6.1 - dev: false - /@ant-design/cssinjs@1.17.0(react-dom@18.2.0)(react@18.2.0): + '@ant-design/cssinjs@1.17.0': resolution: {integrity: sha512-MgGCZ6sfD3yQB0XW0hN4jgixMxApTlDYyct+pc7fRZNO4CaqWWm/9iXkkljNR27lyWLZmm+XiDfcIOo1bnrnMA==} peerDependencies: react: '>=16.0.0' react-dom: '>=16.0.0' - dependencies: - '@babel/runtime': 7.22.15 - '@emotion/hash': 0.8.0 - '@emotion/unitless': 0.7.5 - classnames: 2.3.2 - csstype: 3.1.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - stylis: 4.3.0 - dev: false - /@ant-design/icons-svg@4.3.1: + '@ant-design/icons-svg@4.3.1': resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==} - dev: false - /@ant-design/icons@5.2.5(react-dom@18.2.0)(react@18.2.0): + '@ant-design/icons@5.2.5': resolution: {integrity: sha512-9Jc59v5fl5dzmxqLWtRev3dJwU7Ya9ZheoI6XmZjZiQ7PRtk77rC+Rbt7GJzAPPg43RQ4YO53RE1u8n+Et97vQ==} engines: {node: '>=8'} peerDependencies: react: '>=16.0.0' react-dom: '>=16.0.0' - dependencies: - '@ant-design/colors': 7.0.0 - '@ant-design/icons-svg': 4.3.1 - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - lodash.camelcase: 4.3.0 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@ant-design/react-slick@1.0.2(react@18.2.0): + '@ant-design/react-slick@1.0.2': resolution: {integrity: sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==} peerDependencies: react: '>=16.9.0' - dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - json2mq: 0.2.0 - react: 18.2.0 - resize-observer-polyfill: 1.5.1 - throttle-debounce: 5.0.0 - dev: false - /@babel/code-frame@7.22.13: + '@babel/code-frame@7.22.13': resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.22.13 - chalk: 2.4.2 - /@babel/compat-data@7.22.9: + '@babel/compat-data@7.22.9': resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} engines: {node: '>=6.9.0'} - dev: false - /@babel/core@7.22.17: + '@babel/core@7.22.17': resolution: {integrity: sha512-2EENLmhpwplDux5PSsZnSbnSkB3tZ6QTksgO25xwEL7pIDcNOMhF5v/s6RzwjMZzZzw9Ofc30gHv5ChCC8pifQ==} engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.22.15 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.22.17(@babel/core@7.22.17) - '@babel/helpers': 7.22.15 - '@babel/parser': 7.22.16 - '@babel/template': 7.22.15 - '@babel/traverse': 7.22.17 - '@babel/types': 7.22.17 - convert-source-map: 1.9.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/generator@7.22.15: + '@babel/generator@7.22.15': resolution: {integrity: sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.17 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 - jsesc: 2.5.2 - dev: false - /@babel/helper-compilation-targets@7.22.15: + '@babel/helper-compilation-targets@7.22.15': resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.22.9 - '@babel/helper-validator-option': 7.22.15 - browserslist: 4.21.10 - lru-cache: 5.1.1 - semver: 6.3.1 - dev: false - /@babel/helper-environment-visitor@7.22.5: + '@babel/helper-environment-visitor@7.22.5': resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} engines: {node: '>=6.9.0'} - dev: false - /@babel/helper-function-name@7.22.5: + '@babel/helper-function-name@7.22.5': resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.22.17 - dev: false - /@babel/helper-hoist-variables@7.22.5: + '@babel/helper-hoist-variables@7.22.5': resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.17 - dev: false - /@babel/helper-module-imports@7.22.15: + '@babel/helper-module-imports@7.22.15': resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.17 - dev: false - /@babel/helper-module-transforms@7.22.17(@babel/core@7.22.17): + '@babel/helper-module-transforms@7.22.17': resolution: {integrity: sha512-XouDDhQESrLHTpnBtCKExJdyY4gJCdrvH2Pyv8r8kovX2U8G0dRUOT45T9XlbLtuu9CLXP15eusnkprhoPV5iQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.22.17 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.15 - dev: false - /@babel/helper-plugin-utils@7.22.5: + '@babel/helper-plugin-utils@7.22.5': resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} - dev: false - /@babel/helper-simple-access@7.22.5: + '@babel/helper-simple-access@7.22.5': resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.17 - dev: false - /@babel/helper-split-export-declaration@7.22.6: + '@babel/helper-split-export-declaration@7.22.6': resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.17 - dev: false - /@babel/helper-string-parser@7.22.5: + '@babel/helper-string-parser@7.22.5': resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} - dev: false - /@babel/helper-validator-identifier@7.22.15: + '@babel/helper-validator-identifier@7.22.15': resolution: {integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.22.15: + '@babel/helper-validator-option@7.22.15': resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} engines: {node: '>=6.9.0'} - dev: false - /@babel/helpers@7.22.15: + '@babel/helpers@7.22.15': resolution: {integrity: sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.22.17 - '@babel/types': 7.22.17 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/highlight@7.22.13: + '@babel/highlight@7.22.13': resolution: {integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.15 - chalk: 2.4.2 - js-tokens: 4.0.0 - /@babel/parser@7.22.16: + '@babel/parser@7.22.16': resolution: {integrity: sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==} engines: {node: '>=6.0.0'} hasBin: true - dependencies: - '@babel/types': 7.22.17 - dev: false - /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.17): + '@babel/plugin-transform-react-jsx-self@7.22.5': resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.17 - '@babel/helper-plugin-utils': 7.22.5 - dev: false - /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.22.17): + '@babel/plugin-transform-react-jsx-source@7.22.5': resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.17 - '@babel/helper-plugin-utils': 7.22.5 - dev: false - /@babel/runtime@7.22.15: + '@babel/runtime@7.22.15': resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==} engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.14.0 - /@babel/template@7.22.15: + '@babel/runtime@7.25.4': + resolution: {integrity: sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.22.15': resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.22.13 - '@babel/parser': 7.22.16 - '@babel/types': 7.22.17 - dev: false - /@babel/traverse@7.22.17: + '@babel/traverse@7.22.17': resolution: {integrity: sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.22.15 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.22.16 - '@babel/types': 7.22.17 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/types@7.22.17: + '@babel/types@7.22.17': resolution: {integrity: sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.15 - to-fast-properties: 2.0.0 - dev: false - /@commitlint/cli@17.3.0: + '@commitlint/cli@17.3.0': resolution: {integrity: sha512-/H0md7TsKflKzVPz226VfXzVafJFO1f9+r2KcFvmBu08V0T56lZU1s8WL7/xlxqLMqBTVaBf7Ixtc4bskdEEZg==} engines: {node: '>=v14'} hasBin: true - dependencies: - '@commitlint/format': 17.4.4 - '@commitlint/lint': 17.7.0 - '@commitlint/load': 17.7.1 - '@commitlint/read': 17.5.1 - '@commitlint/types': 17.4.4 - execa: 5.1.1 - lodash.isfunction: 3.0.9 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - dev: true - /@commitlint/config-conventional@17.3.0: + '@commitlint/config-conventional@17.3.0': resolution: {integrity: sha512-hgI+fN5xF8nhS9uG/V06xyT0nlcyvHHMkq0kwRSr96vl5BFlRGaL2C0/YY4kQagfU087tmj01bJkG9Ek98Wllw==} engines: {node: '>=v14'} - dependencies: - conventional-changelog-conventionalcommits: 5.0.0 - dev: true - /@commitlint/config-validator@17.6.7: + '@commitlint/config-validator@17.6.7': resolution: {integrity: sha512-vJSncmnzwMvpr3lIcm0I8YVVDJTzyjy7NZAeXbTXy+MPUdAr9pKyyg7Tx/ebOQ9kqzE6O9WT6jg2164br5UdsQ==} engines: {node: '>=v14'} - dependencies: - '@commitlint/types': 17.4.4 - ajv: 8.12.0 - dev: true - /@commitlint/ensure@17.6.7: + '@commitlint/ensure@17.6.7': resolution: {integrity: sha512-mfDJOd1/O/eIb/h4qwXzUxkmskXDL9vNPnZ4AKYKiZALz4vHzwMxBSYtyL2mUIDeU9DRSpEUins8SeKtFkYHSw==} engines: {node: '>=v14'} - dependencies: - '@commitlint/types': 17.4.4 - lodash.camelcase: 4.3.0 - lodash.kebabcase: 4.1.1 - lodash.snakecase: 4.1.1 - lodash.startcase: 4.4.0 - lodash.upperfirst: 4.3.1 - dev: true - /@commitlint/execute-rule@17.4.0: + '@commitlint/execute-rule@17.4.0': resolution: {integrity: sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==} engines: {node: '>=v14'} - dev: true - /@commitlint/format@17.4.4: + '@commitlint/format@17.4.4': resolution: {integrity: sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ==} engines: {node: '>=v14'} - dependencies: - '@commitlint/types': 17.4.4 - chalk: 4.1.2 - dev: true - /@commitlint/is-ignored@17.7.0: + '@commitlint/is-ignored@17.7.0': resolution: {integrity: sha512-043rA7m45tyEfW7Zv2vZHF++176MLHH9h70fnPoYlB1slKBeKl8BwNIlnPg4xBdRBVNPaCqvXxWswx2GR4c9Hw==} engines: {node: '>=v14'} - dependencies: - '@commitlint/types': 17.4.4 - semver: 7.5.4 - dev: true - /@commitlint/lint@17.7.0: + '@commitlint/lint@17.7.0': resolution: {integrity: sha512-TCQihm7/uszA5z1Ux1vw+Nf3yHTgicus/+9HiUQk+kRSQawByxZNESeQoX9ujfVd3r4Sa+3fn0JQAguG4xvvbA==} engines: {node: '>=v14'} - dependencies: - '@commitlint/is-ignored': 17.7.0 - '@commitlint/parse': 17.7.0 - '@commitlint/rules': 17.7.0 - '@commitlint/types': 17.4.4 - dev: true - /@commitlint/load@17.7.1: + '@commitlint/load@17.7.1': resolution: {integrity: sha512-S/QSOjE1ztdogYj61p6n3UbkUvweR17FQ0zDbNtoTLc+Hz7vvfS7ehoTMQ27hPSjVBpp7SzEcOQu081RLjKHJQ==} engines: {node: '>=v14'} - dependencies: - '@commitlint/config-validator': 17.6.7 - '@commitlint/execute-rule': 17.4.0 - '@commitlint/resolve-extends': 17.6.7 - '@commitlint/types': 17.4.4 - '@types/node': 20.4.7 - chalk: 4.1.2 - cosmiconfig: 8.3.5(typescript@5.1.6) - cosmiconfig-typescript-loader: 4.4.0(@types/node@20.4.7)(cosmiconfig@8.3.5)(ts-node@10.9.1)(typescript@5.1.6) - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 - lodash.uniq: 4.5.0 - resolve-from: 5.0.0 - ts-node: 10.9.1(@types/node@20.4.6)(typescript@5.1.6) - typescript: 5.1.6 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - dev: true - /@commitlint/message@17.4.2: + '@commitlint/message@17.4.2': resolution: {integrity: sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q==} engines: {node: '>=v14'} - dev: true - /@commitlint/parse@17.7.0: + '@commitlint/parse@17.7.0': resolution: {integrity: sha512-dIvFNUMCUHqq5Abv80mIEjLVfw8QNuA4DS7OWip4pcK/3h5wggmjVnlwGCDvDChkw2TjK1K6O+tAEV78oxjxag==} engines: {node: '>=v14'} - dependencies: - '@commitlint/types': 17.4.4 - conventional-changelog-angular: 6.0.0 - conventional-commits-parser: 4.0.0 - dev: true - /@commitlint/read@17.5.1: + '@commitlint/read@17.5.1': resolution: {integrity: sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg==} engines: {node: '>=v14'} - dependencies: - '@commitlint/top-level': 17.4.0 - '@commitlint/types': 17.4.4 - fs-extra: 11.1.1 - git-raw-commits: 2.0.11 - minimist: 1.2.8 - dev: true - /@commitlint/resolve-extends@17.6.7: + '@commitlint/resolve-extends@17.6.7': resolution: {integrity: sha512-PfeoAwLHtbOaC9bGn/FADN156CqkFz6ZKiVDMjuC2N5N0740Ke56rKU7Wxdwya8R8xzLK9vZzHgNbuGhaOVKIg==} engines: {node: '>=v14'} - dependencies: - '@commitlint/config-validator': 17.6.7 - '@commitlint/types': 17.4.4 - import-fresh: 3.3.0 - lodash.mergewith: 4.6.2 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - dev: true - /@commitlint/rules@17.7.0: + '@commitlint/rules@17.7.0': resolution: {integrity: sha512-J3qTh0+ilUE5folSaoK91ByOb8XeQjiGcdIdiB/8UT1/Rd1itKo0ju/eQVGyFzgTMYt8HrDJnGTmNWwcMR1rmA==} engines: {node: '>=v14'} - dependencies: - '@commitlint/ensure': 17.6.7 - '@commitlint/message': 17.4.2 - '@commitlint/to-lines': 17.4.0 - '@commitlint/types': 17.4.4 - execa: 5.1.1 - dev: true - /@commitlint/to-lines@17.4.0: + '@commitlint/to-lines@17.4.0': resolution: {integrity: sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg==} engines: {node: '>=v14'} - dev: true - /@commitlint/top-level@17.4.0: + '@commitlint/top-level@17.4.0': resolution: {integrity: sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g==} engines: {node: '>=v14'} - dependencies: - find-up: 5.0.0 - dev: true - /@commitlint/types@17.4.4: + '@commitlint/types@17.4.4': resolution: {integrity: sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==} engines: {node: '>=v14'} - dependencies: - chalk: 4.1.2 - dev: true - /@cspotcode/source-map-support@0.8.1: + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - dev: true - /@csstools/css-parser-algorithms@2.3.1(@csstools/css-tokenizer@2.2.0): + '@csstools/css-parser-algorithms@2.3.1': resolution: {integrity: sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: '@csstools/css-tokenizer': ^2.2.0 - dependencies: - '@csstools/css-tokenizer': 2.2.0 - dev: true - /@csstools/css-tokenizer@2.2.0: + '@csstools/css-tokenizer@2.2.0': resolution: {integrity: sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA==} engines: {node: ^14 || ^16 || >=18} - dev: true - /@csstools/media-query-list-parser@2.1.4(@csstools/css-parser-algorithms@2.3.1)(@csstools/css-tokenizer@2.2.0): + '@csstools/media-query-list-parser@2.1.4': resolution: {integrity: sha512-V/OUXYX91tAC1CDsiY+HotIcJR+vPtzrX8pCplCpT++i8ThZZsq5F5dzZh/bDM3WUOjrvC1ljed1oSJxMfjqhw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: '@csstools/css-parser-algorithms': ^2.3.1 '@csstools/css-tokenizer': ^2.2.0 - dependencies: - '@csstools/css-parser-algorithms': 2.3.1(@csstools/css-tokenizer@2.2.0) - '@csstools/css-tokenizer': 2.2.0 - dev: true - /@csstools/selector-specificity@3.0.0(postcss-selector-parser@6.0.13): + '@csstools/selector-specificity@3.0.0': resolution: {integrity: sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss-selector-parser: ^6.0.13 - dependencies: - postcss-selector-parser: 6.0.13 - dev: true - /@ctrl/tinycolor@3.6.1: + '@ctrl/tinycolor@3.6.1': resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} engines: {node: '>=10'} - dev: false - /@drauu/core@0.3.5: + '@drauu/core@0.3.5': resolution: {integrity: sha512-jljs4zEjiPqoqacpfxd2fCDAs5Z7ZOGWpjj3i8HZlvA+wMgAihqDySxO9PIWpTZcpDJio2Pk1GnwcPAV6NPlkQ==} - dev: false - /@emotion/hash@0.8.0: + '@emotion/hash@0.8.0': resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - dev: false - /@emotion/unitless@0.7.5: + '@emotion/is-prop-valid@1.2.2': + resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==} + + '@emotion/memoize@0.8.1': + resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} + + '@emotion/unitless@0.7.5': resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} - dev: false - /@esbuild/android-arm64@0.18.20: + '@emotion/unitless@0.8.1': + resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} + + '@esbuild/android-arm64@0.18.20': resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] - requiresBuild: true - optional: true - /@esbuild/android-arm@0.18.20: + '@esbuild/android-arm@0.18.20': resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} engines: {node: '>=12'} cpu: [arm] os: [android] - requiresBuild: true - optional: true - /@esbuild/android-x64@0.18.20: + '@esbuild/android-x64@0.18.20': resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} engines: {node: '>=12'} cpu: [x64] os: [android] - requiresBuild: true - optional: true - /@esbuild/darwin-arm64@0.18.20: + '@esbuild/darwin-arm64@0.18.20': resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - requiresBuild: true - optional: true - /@esbuild/darwin-x64@0.18.20: + '@esbuild/darwin-x64@0.18.20': resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - requiresBuild: true - optional: true - /@esbuild/freebsd-arm64@0.18.20: + '@esbuild/freebsd-arm64@0.18.20': resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - requiresBuild: true - optional: true - /@esbuild/freebsd-x64@0.18.20: + '@esbuild/freebsd-x64@0.18.20': resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - requiresBuild: true - optional: true - /@esbuild/linux-arm64@0.18.20: + '@esbuild/linux-arm64@0.18.20': resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-arm@0.18.20: + '@esbuild/linux-arm@0.18.20': resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} engines: {node: '>=12'} cpu: [arm] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-ia32@0.18.20: + '@esbuild/linux-ia32@0.18.20': resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-loong64@0.18.20: + '@esbuild/linux-loong64@0.18.20': resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-mips64el@0.18.20: + '@esbuild/linux-mips64el@0.18.20': resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-ppc64@0.18.20: + '@esbuild/linux-ppc64@0.18.20': resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-riscv64@0.18.20: + '@esbuild/linux-riscv64@0.18.20': resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-s390x@0.18.20: + '@esbuild/linux-s390x@0.18.20': resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-x64@0.18.20: + '@esbuild/linux-x64@0.18.20': resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} engines: {node: '>=12'} cpu: [x64] os: [linux] - requiresBuild: true - optional: true - /@esbuild/netbsd-x64@0.18.20: + '@esbuild/netbsd-x64@0.18.20': resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - requiresBuild: true - optional: true - /@esbuild/openbsd-x64@0.18.20: + '@esbuild/openbsd-x64@0.18.20': resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - requiresBuild: true - optional: true - /@esbuild/sunos-x64@0.18.20: + '@esbuild/sunos-x64@0.18.20': resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - requiresBuild: true - optional: true - /@esbuild/win32-arm64@0.18.20: + '@esbuild/win32-arm64@0.18.20': resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - requiresBuild: true - optional: true - /@esbuild/win32-ia32@0.18.20: + '@esbuild/win32-ia32@0.18.20': resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - requiresBuild: true - optional: true - /@esbuild/win32-x64@0.18.20: + '@esbuild/win32-x64@0.18.20': resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] - requiresBuild: true - optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.45.0): + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.45.0 - eslint-visitor-keys: 3.4.3 - dev: true - /@eslint-community/regexpp@4.8.1: + '@eslint-community/regexpp@4.8.1': resolution: {integrity: sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true - /@eslint/eslintrc@2.1.2: + '@eslint/eslintrc@2.1.2': resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.21.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /@eslint/js@8.44.0: + '@eslint/js@8.44.0': resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - /@humanwhocodes/config-array@0.11.11: + '@humanwhocodes/config-array@0.11.11': resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: true - /@humanwhocodes/module-importer@1.0.1: + '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - dev: true - /@humanwhocodes/object-schema@1.2.1: + '@humanwhocodes/object-schema@1.2.1': resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - dev: true - /@jridgewell/gen-mapping@0.3.3: + '@jridgewell/gen-mapping@0.3.3': resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.19 - /@jridgewell/resolve-uri@3.1.1: + '@jridgewell/resolve-uri@3.1.1': resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} - /@jridgewell/set-array@1.1.2: + '@jridgewell/set-array@1.1.2': resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} - /@jridgewell/source-map@0.3.5: + '@jridgewell/source-map@0.3.5': resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 - dev: true - /@jridgewell/sourcemap-codec@1.4.15: + '@jridgewell/sourcemap-codec@1.4.15': resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - /@jridgewell/trace-mapping@0.3.19: + '@jridgewell/trace-mapping@0.3.19': resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - /@jridgewell/trace-mapping@0.3.9: + '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /@nodelib/fs.scandir@2.1.5: + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - /@nodelib/fs.stat@2.0.5: + '@nodelib/fs.stat@2.0.5': resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - dev: true - /@nodelib/fs.walk@1.2.8: + '@nodelib/fs.walk@1.2.8': resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 - dev: true - /@rc-component/color-picker@1.4.1(react-dom@18.2.0)(react@18.2.0): + '@rc-component/color-picker@1.4.1': resolution: {integrity: sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.22.15 - '@ctrl/tinycolor': 3.6.1 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@rc-component/context@1.4.0(react-dom@18.2.0)(react@18.2.0): + '@rc-component/context@1.4.0': resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.22.15 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@rc-component/mini-decimal@1.1.0: + '@rc-component/mini-decimal@1.1.0': resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==} engines: {node: '>=8.x'} - dependencies: - '@babel/runtime': 7.22.15 - dev: false - /@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0): + '@rc-component/mutate-observer@1.1.0': resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0): + '@rc-component/portal@1.1.2': resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@rc-component/tour@1.8.1(react-dom@18.2.0)(react@18.2.0): + '@rc-component/tour@1.8.1': resolution: {integrity: sha512-CsrQnfKgNArxx2j1RNHVLZgVA+rLrEj06lIsl4KSynMqADsqz8eKvVkr0F3p9PA10948M6WEEZt5a/FGAbGR2A==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.22.15 - '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - '@rc-component/trigger': 1.15.6(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@rc-component/trigger@1.15.6(react-dom@18.2.0)(react@18.2.0): + '@rc-component/trigger@1.15.6': resolution: {integrity: sha512-Tl19KaGsShf4yzqxumsXVT4c7j0l20Dxe5hgP5S0HmxyhCg3oKen28ntGavRCIPW7cl7wgsGotntqcIokgDHzg==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.22.15 - '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 - rc-align: 4.0.15(react-dom@18.2.0)(react@18.2.0) - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@reduxjs/toolkit@1.9.5(react-redux@7.2.8)(react@18.2.0): + '@reduxjs/toolkit@1.9.5': resolution: {integrity: sha512-Rt97jHmfTeaxL4swLRNPD/zV4OxTes4la07Xc4hetpUW/vc75t5m1ANyxG6ymnEQ2FsLQsoMlYB2vV1sO3m8tQ==} peerDependencies: react: ^16.9.0 || ^17.0.0 || ^18 @@ -1084,137 +704,95 @@ packages: optional: true react-redux: optional: true - dependencies: - immer: 9.0.21 - react: 18.2.0 - react-redux: 7.2.8(react-dom@18.2.0)(react@18.2.0) - redux: 4.2.1 - redux-thunk: 2.4.2(redux@4.2.1) - reselect: 4.1.8 - dev: false - /@remix-run/router@1.8.0: + '@remix-run/router@1.8.0': resolution: {integrity: sha512-mrfKqIHnSZRyIzBcanNJmVQELTnX+qagEDlcKO90RgRBVOZGSGvZKeDihTRfWcqoDn5N/NkUcwWTccnpN18Tfg==} engines: {node: '>=14.0.0'} - dev: false - /@rollup/pluginutils@4.2.1: + '@rollup/pluginutils@4.2.1': resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: true - /@tsconfig/node10@1.0.9: + '@tsconfig/node10@1.0.9': resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} - dev: true - /@tsconfig/node12@1.0.11: + '@tsconfig/node12@1.0.11': resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - dev: true - /@tsconfig/node14@1.0.3: + '@tsconfig/node14@1.0.3': resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - dev: true - /@tsconfig/node16@1.0.4: + '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - dev: true - /@types/gsap@3.0.0: + '@types/gsap@3.0.0': resolution: {integrity: sha512-BbWLi4WRHGze4C8NV7U7yRevuBFiPkPZZyGa0rryanvh/9HPUFXTNBXsGQxJZJq7Ix7j4RXMYodP3s+OsqCErg==} deprecated: This is a stub types definition. gsap provides its own type definitions, so you do not need this installed. - dependencies: - gsap: 3.12.2 - dev: false - /@types/hoist-non-react-statics@3.3.1: + '@types/hoist-non-react-statics@3.3.1': resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} - dependencies: - '@types/react': 18.2.15 - hoist-non-react-statics: 3.3.2 - /@types/json-schema@7.0.12: + '@types/js-cookie@2.2.7': + resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} + + '@types/json-schema@7.0.12': resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} - dev: true - /@types/minimist@1.2.2: + '@types/lodash@4.17.7': + resolution: {integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==} + + '@types/minimist@1.2.2': resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - dev: true - /@types/mockjs@1.0.7: + '@types/mockjs@1.0.7': resolution: {integrity: sha512-OCxXz6hEaJOVpRwuJMiVY5a6LtJcih+br9gwB/Q8ooOBikvk5FpBQ31OlNimXo3EqKha1Z7PFBni+q9m+8NCWg==} - dev: true - /@types/node@20.4.6: + '@types/node@20.4.6': resolution: {integrity: sha512-q0RkvNgMweWWIvSMDiXhflGUKMdIxBo2M2tYM/0kEGDueQByFzK4KZAgu5YHGFNxziTlppNpTIBcqHQAxlfHdA==} - /@types/node@20.4.7: + '@types/node@20.4.7': resolution: {integrity: sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==} - dev: true - /@types/normalize-package-data@2.4.1: + '@types/normalize-package-data@2.4.1': resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} - dev: true - /@types/nprogress@0.2.0: + '@types/nprogress@0.2.0': resolution: {integrity: sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A==} - dev: false - /@types/prop-types@15.7.5: + '@types/prop-types@15.7.5': resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - /@types/qs@6.9.7: + '@types/qs@6.9.7': resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} - dev: true - /@types/react-dom@18.2.7: + '@types/react-dom@18.2.7': resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} - dependencies: - '@types/react': 18.2.15 - dev: true - /@types/react-redux@7.1.25: + '@types/react-redux@7.1.25': resolution: {integrity: sha512-bAGh4e+w5D8dajd6InASVIyCo4pZLJ66oLb80F9OBLO1gKESbZcRCJpTT6uLXX+HAB57zw1WTdwJdAsewuTweg==} - dependencies: - '@types/hoist-non-react-statics': 3.3.1 - '@types/react': 18.2.15 - hoist-non-react-statics: 3.3.2 - redux: 4.2.1 - /@types/react@18.2.15: + '@types/react@18.2.15': resolution: {integrity: sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA==} - dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.3 - csstype: 3.1.2 - /@types/scheduler@0.16.3: + '@types/scheduler@0.16.3': resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} - /@types/semver@7.5.1: + '@types/semver@7.5.1': resolution: {integrity: sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==} - dev: true - /@types/stats.js@0.17.2: + '@types/stats.js@0.17.2': resolution: {integrity: sha512-j1oI+BOPiAAAKFysNNutE9aAIjvHqqILubCs2EeHKc19pi4uybaGAgBfLXsCgJYcyKWkiilEvl8CkFF/SL+baA==} - dev: false - /@types/three@0.157.2: + '@types/stylis@4.2.5': + resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} + + '@types/three@0.157.2': resolution: {integrity: sha512-2kykrMgvO5LTAiahadM6ijoER+GcbEJ61pQVOyGxIJTCASoUnzwJvfhilsLxvEw4+glzhLYUDvvTvNjx+58Vzw==} - dependencies: - '@types/stats.js': 0.17.2 - '@types/webxr': 0.5.7 - fflate: 0.6.10 - meshoptimizer: 0.18.1 - dev: false - /@types/webxr@0.5.7: + '@types/webxr@0.5.7': resolution: {integrity: sha512-Rcgs5c2eNFnHp53YOjgtKfl/zWX1Y+uFGUwlSXrWcZWu3yhANRezmph4MninmqybUYT6g9ZE0aQ9QIdPkLR3Kg==} - dev: false - /@typescript-eslint/eslint-plugin@6.4.1(@typescript-eslint/parser@6.4.1)(eslint@8.45.0)(typescript@5.1.6): + '@typescript-eslint/eslint-plugin@6.4.1': resolution: {integrity: sha512-3F5PtBzUW0dYlq77Lcqo13fv+58KDwUib3BddilE8ajPJT+faGgxmI9Sw+I8ZS22BYwoir9ZhNXcLi+S+I2bkw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1224,26 +802,8 @@ packages: peerDependenciesMeta: typescript: optional: true - dependencies: - '@eslint-community/regexpp': 4.8.1 - '@typescript-eslint/parser': 6.4.1(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/scope-manager': 6.4.1 - '@typescript-eslint/type-utils': 6.4.1(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/utils': 6.4.1(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.4.1 - debug: 4.3.4 - eslint: 8.45.0 - graphemer: 1.4.0 - ignore: 5.2.4 - natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.1.6) - typescript: 5.1.6 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/parser@6.4.1(eslint@8.45.0)(typescript@5.1.6): + '@typescript-eslint/parser@6.4.1': resolution: {integrity: sha512-610G6KHymg9V7EqOaNBMtD1GgpAmGROsmfHJPXNLCU9bfIuLrkdOygltK784F6Crboyd5tBFayPB7Sf0McrQwg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1252,27 +812,12 @@ packages: peerDependenciesMeta: typescript: optional: true - dependencies: - '@typescript-eslint/scope-manager': 6.4.1 - '@typescript-eslint/types': 6.4.1 - '@typescript-eslint/typescript-estree': 6.4.1(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.4.1 - debug: 4.3.4 - eslint: 8.45.0 - typescript: 5.1.6 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/scope-manager@6.4.1: + '@typescript-eslint/scope-manager@6.4.1': resolution: {integrity: sha512-p/OavqOQfm4/Hdrr7kvacOSFjwQ2rrDVJRPxt/o0TOWdFnjJptnjnZ+sYDR7fi4OimvIuKp+2LCkc+rt9fIW+A==} engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.4.1 - '@typescript-eslint/visitor-keys': 6.4.1 - dev: true - /@typescript-eslint/type-utils@6.4.1(eslint@8.45.0)(typescript@5.1.6): + '@typescript-eslint/type-utils@6.4.1': resolution: {integrity: sha512-7ON8M8NXh73SGZ5XvIqWHjgX2f+vvaOarNliGhjrJnv1vdjG0LVIz+ToYfPirOoBi56jxAKLfsLm40+RvxVVXA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1281,23 +826,12 @@ packages: peerDependenciesMeta: typescript: optional: true - dependencies: - '@typescript-eslint/typescript-estree': 6.4.1(typescript@5.1.6) - '@typescript-eslint/utils': 6.4.1(eslint@8.45.0)(typescript@5.1.6) - debug: 4.3.4 - eslint: 8.45.0 - ts-api-utils: 1.0.3(typescript@5.1.6) - typescript: 5.1.6 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/types@6.4.1: + '@typescript-eslint/types@6.4.1': resolution: {integrity: sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg==} engines: {node: ^16.0.0 || >=18.0.0} - dev: true - /@typescript-eslint/typescript-estree@6.4.1(typescript@5.1.6): + '@typescript-eslint/typescript-estree@6.4.1': resolution: {integrity: sha512-xF6Y7SatVE/OyV93h1xGgfOkHr2iXuo8ip0gbfzaKeGGuKiAnzS+HtVhSPx8Www243bwlW8IF7X0/B62SzFftg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1305,463 +839,3585 @@ packages: peerDependenciesMeta: typescript: optional: true - dependencies: - '@typescript-eslint/types': 6.4.1 - '@typescript-eslint/visitor-keys': 6.4.1 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.1.6) - typescript: 5.1.6 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/utils@6.4.1(eslint@8.45.0)(typescript@5.1.6): + '@typescript-eslint/utils@6.4.1': resolution: {integrity: sha512-F/6r2RieNeorU0zhqZNv89s9bDZSovv3bZQpUNOmmQK1L80/cV4KEu95YUJWi75u5PhboFoKUJBnZ4FQcoqhDw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) - '@types/json-schema': 7.0.12 - '@types/semver': 7.5.1 - '@typescript-eslint/scope-manager': 6.4.1 - '@typescript-eslint/types': 6.4.1 - '@typescript-eslint/typescript-estree': 6.4.1(typescript@5.1.6) - eslint: 8.45.0 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - /@typescript-eslint/visitor-keys@6.4.1: + '@typescript-eslint/visitor-keys@6.4.1': resolution: {integrity: sha512-y/TyRJsbZPkJIZQXrHfdnxVnxyKegnpEvnRGNam7s3TRR2ykGefEWOhaef00/UUN3IZxizS7BTO3svd3lCOJRQ==} engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.4.1 - eslint-visitor-keys: 3.4.3 - dev: true - /@vitejs/plugin-react@4.0.3(vite@4.4.5): + '@vitejs/plugin-react@4.0.3': resolution: {integrity: sha512-pwXDog5nwwvSIzwrvYYmA2Ljcd/ZNlcsSG2Q9CNDBwnsd55UGAyr2doXtB5j+2uymRCnCfExlznzzSFbBRcoCg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 - dependencies: - '@babel/core': 7.22.17 - '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.17) - '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.17) - react-refresh: 0.14.0 - vite: 4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1) - transitivePeerDependencies: - - supports-color - dev: false - /JSONStream@1.3.5: + '@xobotyi/scrollbar-width@1.9.5': + resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} + + JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - dev: true - /acorn-jsx@5.3.2(acorn@8.10.0): + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.10.0 - dev: true - /acorn-walk@8.2.0: + acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} - dev: true - /acorn@8.10.0: + acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true - dev: true - /aggregate-error@3.1.0: + aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - dev: true - /ajv@6.12.6: + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - dev: true - /ajv@8.12.0: + ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - dev: true - /ansi-escapes@4.3.2: + ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - dev: true - /ansi-regex@5.0.1: + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - dev: true - /ansi-regex@6.0.1: + ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - dev: true - /ansi-styles@3.2.1: + ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - /ansi-styles@4.3.0: + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: true - /ansi-styles@6.2.1: + ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - dev: true - /antd@5.8.6(react-dom@18.2.0)(react@18.2.0): + antd@5.8.6: resolution: {integrity: sha512-DQdHJSq7AH303NgAUZcMRrWqwRYLT9LjesrfhB9xwwi3ooWTMAnS0LrL2NIYHvXZQy1kV0C4mMSiSbBqEKatLA==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - dependencies: - '@ant-design/colors': 7.0.0 - '@ant-design/cssinjs': 1.17.0(react-dom@18.2.0)(react@18.2.0) - '@ant-design/icons': 5.2.5(react-dom@18.2.0)(react@18.2.0) - '@ant-design/react-slick': 1.0.2(react@18.2.0) - '@babel/runtime': 7.22.15 - '@ctrl/tinycolor': 3.6.1 - '@rc-component/color-picker': 1.4.1(react-dom@18.2.0)(react@18.2.0) - '@rc-component/mutate-observer': 1.1.0(react-dom@18.2.0)(react@18.2.0) - '@rc-component/tour': 1.8.1(react-dom@18.2.0)(react@18.2.0) - '@rc-component/trigger': 1.15.6(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 - copy-to-clipboard: 3.3.3 - dayjs: 1.11.9 - qrcode.react: 3.1.0(react@18.2.0) - rc-cascader: 3.14.1(react-dom@18.2.0)(react@18.2.0) - rc-checkbox: 3.1.0(react-dom@18.2.0)(react@18.2.0) - rc-collapse: 3.7.1(react-dom@18.2.0)(react@18.2.0) - rc-dialog: 9.1.0(react-dom@18.2.0)(react@18.2.0) - rc-drawer: 6.2.0(react-dom@18.2.0)(react@18.2.0) - rc-dropdown: 4.1.0(react-dom@18.2.0)(react@18.2.0) - rc-field-form: 1.36.2(react-dom@18.2.0)(react@18.2.0) - rc-image: 7.1.3(react-dom@18.2.0)(react@18.2.0) - rc-input: 1.1.1(react-dom@18.2.0)(react@18.2.0) - rc-input-number: 8.0.4(react-dom@18.2.0)(react@18.2.0) - rc-mentions: 2.5.0(react-dom@18.2.0)(react@18.2.0) - rc-menu: 9.10.0(react-dom@18.2.0)(react@18.2.0) - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-notification: 5.1.1(react-dom@18.2.0)(react@18.2.0) - rc-pagination: 3.6.1(react-dom@18.2.0)(react@18.2.0) - rc-picker: 3.13.2(dayjs@1.11.9)(react-dom@18.2.0)(react@18.2.0) - rc-progress: 3.4.2(react-dom@18.2.0)(react@18.2.0) - rc-rate: 2.12.0(react-dom@18.2.0)(react@18.2.0) - rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0) - rc-segmented: 2.2.2(react-dom@18.2.0)(react@18.2.0) - rc-select: 14.7.4(react-dom@18.2.0)(react@18.2.0) - rc-slider: 10.2.1(react-dom@18.2.0)(react@18.2.0) - rc-steps: 6.0.1(react-dom@18.2.0)(react@18.2.0) - rc-switch: 4.1.0(react-dom@18.2.0)(react@18.2.0) - rc-table: 7.32.3(react-dom@18.2.0)(react@18.2.0) - rc-tabs: 12.9.0(react-dom@18.2.0)(react@18.2.0) - rc-textarea: 1.3.4(react-dom@18.2.0)(react@18.2.0) - rc-tooltip: 6.0.1(react-dom@18.2.0)(react@18.2.0) - rc-tree: 5.7.10(react-dom@18.2.0)(react@18.2.0) - rc-tree-select: 5.11.2(react-dom@18.2.0)(react@18.2.0) - rc-upload: 4.3.4(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - scroll-into-view-if-needed: 3.0.10 - throttle-debounce: 5.0.0 - transitivePeerDependencies: - - date-fns - - luxon - - moment - dev: false - /anymatch@3.1.3: + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - /arg@4.1.3: + arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: true - /argparse@2.0.1: + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: true - /array-buffer-byte-length@1.0.0: + array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - dependencies: - call-bind: 1.0.2 - is-array-buffer: 3.0.2 - dev: true - /array-ify@1.0.0: + array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - dev: true - /array-includes@3.1.7: + array-includes@3.1.7: resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - get-intrinsic: 1.2.1 - is-string: 1.0.7 - dev: true - /array-tree-filter@2.1.0: + array-tree-filter@2.1.0: resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==} - dev: false - /array-union@2.1.0: + array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - dev: true - /array.prototype.flat@1.3.2: + array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 - dev: true - /array.prototype.flatmap@1.3.2: + array.prototype.flatmap@1.3.2: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 - dev: true - /array.prototype.tosorted@1.1.2: + array.prototype.tosorted@1.1.2: resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.1 - dev: true - /arraybuffer.prototype.slice@1.0.2: + arraybuffer.prototype.slice@1.0.2: resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - get-intrinsic: 1.2.1 - is-array-buffer: 3.0.2 - is-shared-array-buffer: 1.0.2 - dev: true - /arrify@1.0.1: + arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} - dev: true - /astral-regex@2.0.0: + astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} - dev: true - /async-validator@4.2.5: + async-validator@4.2.5: resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} - dev: false - /async@3.2.4: + async@3.2.4: resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} - dev: true - /asynciterator.prototype@1.0.0: + asynciterator.prototype@1.0.0: resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} - dependencies: - has-symbols: 1.0.3 - dev: true - /asynckit@0.4.0: + asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: false - /available-typed-arrays@1.0.5: + available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - dev: true - /axios@1.4.0: + axios@1.4.0: resolution: {integrity: sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==} - dependencies: - follow-redirects: 1.15.2 - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - dev: false - /balanced-match@1.0.2: + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true - /balanced-match@2.0.0: + balanced-match@2.0.0: resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} - dev: true - /binary-extensions@2.2.0: + big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + + binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - /boolbase@1.0.0: + boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - dev: true - /brace-expansion@1.1.11: + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: true - /brace-expansion@2.0.1: + brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: + + braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + + broadcast-channel@3.7.0: + resolution: {integrity: sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==} + + browserslist@4.21.10: + resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + + camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + + camelcase-keys@7.0.2: + resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} + engines: {node: '>=12'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + camelize@1.0.1: + resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} + + caniuse-lite@1.0.30001533: + resolution: {integrity: sha512-9aY/b05NKU4Yl2sbcJhn4A7MsGwR1EPfW/nrqsnqVA0Oq50wpmPaGI+R1Z0UKlUl96oxUkGEOILWtOHck0eCWw==} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + + classnames@2.3.2: + resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} + + clean-css@5.3.2: + resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==} + engines: {node: '>= 10.0'} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + + cli-truncate@3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@11.0.0: + resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + engines: {node: '>=16'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + + commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + + compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + + compute-scroll-into-view@3.0.3: + resolution: {integrity: sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + connect-history-api-fallback@1.6.0: + resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==} + engines: {node: '>=0.8'} + + consola@2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + + conventional-changelog-angular@6.0.0: + resolution: {integrity: sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==} + engines: {node: '>=14'} + + conventional-changelog-conventionalcommits@5.0.0: + resolution: {integrity: sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==} + engines: {node: '>=10'} + + conventional-commits-parser@4.0.0: + resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} + engines: {node: '>=14'} + hasBin: true + + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + + copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + + cosmiconfig-typescript-loader@4.4.0: + resolution: {integrity: sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==} + engines: {node: '>=v14.21.3'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=7' + ts-node: '>=10' + typescript: '>=4' + + cosmiconfig@8.3.5: + resolution: {integrity: sha512-A5Xry3xfS96wy2qbiLkQLAg4JUrR2wvfybxj6yqLmrUfMAvhS3MZxIP2oQn0grgYIvJqzpeTEWu4vK0t+12NNw==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + css-color-keywords@1.0.0: + resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} + engines: {node: '>=4'} + + css-functions-list@3.2.0: + resolution: {integrity: sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==} + engines: {node: '>=12.22'} + + css-in-js-utils@3.1.0: + resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} + + css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + + css-to-react-native@3.2.0: + resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} + + css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + + dayjs@1.11.9: + resolution: {integrity: sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decamelize@5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-align@1.12.4: + resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==} + + dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + + domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + + dotenv-expand@8.0.3: + resolution: {integrity: sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==} + engines: {node: '>=12'} + + dotenv@16.3.1: + resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} + engines: {node: '>=12'} + + drauu@0.3.5: + resolution: {integrity: sha512-smn9WrphMEz/umneTqeyxBEYH8WotkDFX658717HCcax4TWFDsfkvktdfH6aXXy1BP2WXbVc5msHPEzkYFHBFw==} + + driver.js@1.2.1: + resolution: {integrity: sha512-6nDbVnZdjRgTsJOOmGRmMf/t6cHnMyyZK/wLSbdLZp33I7odPglw1cVlX3TMaPnMDYIJUq7h8a0buejOLqM7XQ==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ejs@3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + electron-to-chromium@1.4.515: + resolution: {integrity: sha512-VTq6vjk3kCfG2qdzQRd/i9dIyVVm0dbtZIgFzrLgfB73mXDQT2HPKVRc1EoZcAVUv9XhXAu08DWqJuababdGGg==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + + errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + + es-abstract@1.22.1: + resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} + engines: {node: '>= 0.4'} + + es-iterator-helpers@1.0.14: + resolution: {integrity: sha512-JgtVnwiuoRuzLvqelrvN3Xu7H9bu2ap/kQ2CrM62iidP8SKuD99rWU3CJy++s7IVL2qb/AjXPGR/E7i9ngd/Cw==} + + es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + + esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-plugin-react-hooks@4.6.0: + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + + eslint-plugin-react-refresh@0.4.3: + resolution: {integrity: sha512-Hh0wv8bUNY877+sI0BlCUlsS0TYYQqvzEwJsJJPM2WF4RnTStSnSR3zdJYa2nPOJgg3UghXi54lVyMSmpCalzA==} + peerDependencies: + eslint: '>=7' + + eslint-plugin-react@7.33.2: + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.45.0: + resolution: {integrity: sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + execa@6.1.0: + resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-shallow-equal@1.0.0: + resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} + + fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + + fastest-stable-stringify@2.0.2: + resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} + + fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + + fflate@0.6.10: + resolution: {integrity: sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@3.1.0: + resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} + engines: {node: '>=12.0.0'} + + flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + + follow-redirects@1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gasp@0.0.2: + resolution: {integrity: sha512-cJGS8HkASZXLtYnS7CHDUCutYdeV2OXW/P+SU03+allNY26GiYOfstziPjnsMW8bbdf6hoQ3caVHYNZ0YLuFCA==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + + git-raw-commits@2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} + engines: {node: '>=10'} + hasBin: true + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + + global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + + global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + + global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.21.0: + resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} + engines: {node: '>=8'} + + globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + globjoin@0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + gsap@3.12.2: + resolution: {integrity: sha512-EkYnpG8qHgYBFAwsgsGEqvT1WUidX0tt/ijepx7z8EUJHElykg91RvW1XbkT59T0gZzzszOpjQv7SE41XuIXyQ==} + + hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + + has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + + has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + + html-minifier-terser@6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} + engines: {node: '>=12'} + hasBin: true + + html-parse-stringify@3.0.1: + resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} + + html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + human-signals@3.0.1: + resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} + engines: {node: '>=12.20.0'} + + husky@8.0.2: + resolution: {integrity: sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==} + engines: {node: '>=14'} + hasBin: true + + hyphenate-style-name@1.1.0: + resolution: {integrity: sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==} + + i18next@23.4.6: + resolution: {integrity: sha512-jBE8bui969Ygv7TVYp0pwDZB7+he0qsU+nz7EcfdqSh+QvKjEfl9YPRQd/KrGiMhTYFGkeuPaeITenKK/bSFDg==} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + + image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + + immutable@4.3.4: + resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + inline-style-prefixer@7.0.1: + resolution: {integrity: sha512-lhYo5qNTQp3EvSSp3sRvXMbVQTLrvGV6DycRMJ5dm2BLMiJ30wpXKdDdgX+GmJZ5uQMucwRKHamXSst3Sj/Giw==} + + internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + + is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + + is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + + is-text-path@1.0.1: + resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} + engines: {node: '>=0.10.0'} + + is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + + is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + + is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + + is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + iterator.prototype@1.1.1: + resolution: {integrity: sha512-9E+nePc8C9cnQldmNl6bgpTY6zI4OPRZd97fhJ/iVZ1GifIUDVV5F6x1nEDqpe8KaMEZGT4xgrwKQDxXnjOIZQ==} + + jake@10.8.7: + resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + engines: {node: '>=10'} + hasBin: true + + js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} + + js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json2mq@0.2.0: + resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + keyv@4.5.3: + resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + known-css-properties@0.28.0: + resolution: {integrity: sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==} + + less@4.2.0: + resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==} + engines: {node: '>=6'} + hasBin: true + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lilconfig@2.0.6: + resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} + engines: {node: '>=10'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + lint-staged@13.1.0: + resolution: {integrity: sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + + listr2@5.0.8: + resolution: {integrity: sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==} + engines: {node: ^14.13.1 || >=16.0.0} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.isfunction@3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + + lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + + lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-update@4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + match-sorter@6.3.4: + resolution: {integrity: sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==} + + mathml-tag-names@2.1.3: + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + + mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + meow@10.1.5: + resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + meow@8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + meshoptimizer@0.18.1: + resolution: {integrity: sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==} + + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + + microseconds@0.2.0: + resolution: {integrity: sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + mockjs@1.1.0: + resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} + hasBin: true + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nano-css@5.6.2: + resolution: {integrity: sha512-+6bHaC8dSDGALM1HJjOHVXpuastdu2xFoZlC77Jh4cg+33Zcgm+Gxd+1xsnpZK14eyHObSp82+ll5y3SX75liw==} + peerDependencies: + react: '*' + react-dom: '*' + + nano-time@1.0.0: + resolution: {integrity: sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==} + + nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + needle@3.2.0: + resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==} + engines: {node: '>= 4.4.x'} + hasBin: true + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-html-parser@5.4.2: + resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==} + + node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize.css@8.0.1: + resolution: {integrity: sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + + object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + + object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + + object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + + oblivious-set@1.0.0: + resolution: {integrity: sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@0.2.0: + resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} + + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + postcss-resolve-nested-selector@0.1.1: + resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} + + postcss-safe-parser@6.0.0: + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + + postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.29: + resolution: {integrity: sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@2.7.1: + resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} + engines: {node: '>=10.13.0'} + hasBin: true + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + + punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + + q@1.5.1: + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + + qrcode.react@3.1.0: + resolution: {integrity: sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + qs@6.11.2: + resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + engines: {node: '>=0.6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + queue@7.0.0: + resolution: {integrity: sha512-sphwS7HdfQnvrJAXUNAUgpf9H/546IE3p/5Lf2jr71O4udEYlqAhkevykumas2FYuMkX/29JMOgrRdRoYZ/X9w==} + + quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + rc-align@4.0.15: + resolution: {integrity: sha512-wqJtVH60pka/nOX7/IspElA8gjPNQKIx/ZqJ6heATCkXpe1Zg4cPVrMD2vC96wjsFFL8WsmhPbx9tdMo1qqlIA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-cascader@3.14.1: + resolution: {integrity: sha512-fCsgjLIQqYZMhFj9UT+x2ZW4uobx7OP5yivcn6Xto5fuxHaldphsryzCeUVmreQOHEo0RP+032Ip9RDzrKVKJA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-checkbox@3.1.0: + resolution: {integrity: sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-collapse@3.7.1: + resolution: {integrity: sha512-N/7ejyiTf3XElNJBBpxqnZBUuMsQWEOPjB2QkfNvZ/Ca54eAvJXuOD1EGbCWCk2m7v/MSxku7mRpdeaLOCd4Gg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-dialog@9.1.0: + resolution: {integrity: sha512-5ry+JABAWEbaKyYsmITtrJbZbJys8CtMyzV8Xn4LYuXMeUx5XVHNyJRoqLFE4AzBuXXzOWeaC49cg+XkxK6kHA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-drawer@6.2.0: + resolution: {integrity: sha512-spPkZ3WvP0U0vy5dyzSwlUJ/+vLFtjP/cTwSwejhQRoDBaexSZHsBhELoCZcEggI7LQ7typmtG30lAue2HEhvA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-dropdown@4.1.0: + resolution: {integrity: sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==} + peerDependencies: + react: '>=16.11.0' + react-dom: '>=16.11.0' + + rc-field-form@1.36.2: + resolution: {integrity: sha512-tCF/JjUsnxW80Gk4E4ZH74ONsaQMxVTRtui6XhQB8DJc4FHWLLa5pP8zwhxtPKC5NaO0QZ0Cv79JggDubn6n2g==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-image@7.1.3: + resolution: {integrity: sha512-foMl1rcit1F0+vgxE5kf0c8TygQcHhILsOohQUL+JMUbzOo3OBFRcehJudYbqbCTArzCecS8nA1irUU9vvgQbg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-input-number@8.0.4: + resolution: {integrity: sha512-TP+G5b7mZtbwXJ/YEZXF/OgbEZ6iqD4+RSuxZJ8VGKGXDcdt0FKIvpFoNQr/knspdFC4OxA0OfsWfFWfN4XSyA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-input@1.1.1: + resolution: {integrity: sha512-NTR1Z4em681L8/ewb2KR80RykSmN8I2mzqzJDCoUmTrV1BB9Hk5d7ha4TnfgdEPPL148N+603sW2LExSXk1IbA==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + + rc-mentions@2.5.0: + resolution: {integrity: sha512-rERXsbUTNVrb5T/iDC0ki/SRGWJnOVraDy6O25Us3FSpuUZ3uq2TPZB4fRk0Hss5kyiEPzz2sprhkI4b+F4jUw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-menu@9.10.0: + resolution: {integrity: sha512-g27kpXaAoJh/fkPZF65/d4V+w4DhDeqomBdPcGnkFAcJnEM4o21TnVccrBUoDedLKzC7wJRw1Q7VTqEsfEufmw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-motion@2.9.0: + resolution: {integrity: sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-notification@5.1.1: + resolution: {integrity: sha512-BPnded/WmWFE57ubqhVCgRSuedfQQNeSOYqdwppyr2B/Wt909gYFKyWAkFJVXuppAjsOGop05a93UaxjmUFdkg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-overflow@1.3.2: + resolution: {integrity: sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-pagination@3.6.1: + resolution: {integrity: sha512-R/sUnKKXx1Nm4kZfUKS3YKa7yEPF1ZkVB/AynQaHt+nMER7h9wPTfliDJFdYo+RM/nk2JD4Yc5QpUq8fIQHeug==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-picker@3.13.2: + resolution: {integrity: sha512-jvmmwo9d2/rUJXx8dydmcReAGF7f2wzbR7GDUgZXymbw0cqxNqXen5GGQIsX0x92JJROKyKb+J/E7bn967Ok9A==} + engines: {node: '>=8.x'} + peerDependencies: + date-fns: '>= 2.x' + dayjs: '>= 1.x' + luxon: '>= 3.x' + moment: '>= 2.x' + react: '>=16.9.0' + react-dom: '>=16.9.0' + peerDependenciesMeta: + date-fns: + optional: true + dayjs: + optional: true + luxon: + optional: true + moment: + optional: true + + rc-progress@3.4.2: + resolution: {integrity: sha512-iAGhwWU+tsayP+Jkl9T4+6rHeQTG9kDz8JAHZk4XtQOcYN5fj9H34NXNEdRdZx94VUDHMqCb1yOIvi8eJRh67w==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-rate@2.12.0: + resolution: {integrity: sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-resize-observer@1.3.1: + resolution: {integrity: sha512-iFUdt3NNhflbY3mwySv5CA1TC06zdJ+pfo0oc27xpf4PIOvfZwZGtD9Kz41wGYqC4SLio93RVAirSSpYlV/uYg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-segmented@2.2.2: + resolution: {integrity: sha512-Mq52M96QdHMsNdE/042ibT5vkcGcD5jxKp7HgPC2SRofpia99P5fkfHy1pEaajLMF/kj0+2Lkq1UZRvqzo9mSA==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + + rc-select@14.7.4: + resolution: {integrity: sha512-qRUpvMVXFy6rdHe+qzHXAqyQAfhErC/oY8dcRtoRjoz0lz2Nx3J+lLL5AnEbjnwlS+/kQTJUZ/65WyCwWwcLwQ==} + engines: {node: '>=8.x'} + peerDependencies: + react: '*' + react-dom: '*' + + rc-slider@10.2.1: + resolution: {integrity: sha512-l355C/65iV4UFp7mXq5xBTNX2/tF2g74VWiTVlTpNp+6vjE/xaHHNiQq5Af+Uu28uUiqCuH/QXs5HfADL9KJ/A==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-steps@6.0.1: + resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-switch@4.1.0: + resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-table@7.32.3: + resolution: {integrity: sha512-MqjrI/ibuGg7NEyFsux0dM5GK+3er1gTiZofAkifr2bHf/Sa1nUqXXFmSrYXSOjwpx0xyBnJ3GrHFCIqC/eOzw==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-tabs@12.9.0: + resolution: {integrity: sha512-2HnVowgMVrq0DfQtyu4mCd9E6pXlWNdM6VaDvOOHMsLYqPmpY+7zBqUC6YrrQ9xYXHciTS0e7TtjOHIvpVCHLQ==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-textarea@1.3.4: + resolution: {integrity: sha512-wn0YjTpvcVolcfXa0HtzL+jgV2QcwtfB29RwNAKj8hMgZOju1V24M3TfEDjABeQEAQbUGbjMbISREOX/YSVKhg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-tooltip@6.0.1: + resolution: {integrity: sha512-MdvPlsD1fDSxKp9+HjXrc/CxLmA/s11QYIh1R7aExxfodKP7CZA++DG1AjrW80F8IUdHYcR43HAm0Y2BYPelHA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-tree-select@5.11.2: + resolution: {integrity: sha512-ujRFO3pcjSg8R4ndXX2oiNcCu+RgO9ZPcd23CZy18Khm+nRsfWWS3Su7qB0iuoJgzAJ5LK7b6Dio0t7IQDGs9g==} + peerDependencies: + react: '*' + react-dom: '*' + + rc-tree@5.7.10: + resolution: {integrity: sha512-n4UkMQY3bzvJUNnbw6e3YI7sy2kE9c9vAYbSt94qAhcPKtMOThONNr1LIaFB/M5XeFYYrWVbvRVoT8k38eFuSQ==} + engines: {node: '>=10.x'} + peerDependencies: + react: '*' + react-dom: '*' + + rc-upload@4.3.4: + resolution: {integrity: sha512-uVbtHFGNjHG/RyAfm9fluXB6pvArAGyAx8z7XzXXyorEgVIWj6mOlriuDm0XowDHYz4ycNK0nE0oP3cbFnzxiQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-util@5.37.0: + resolution: {integrity: sha512-cPMV8DzaHI1KDaS7XPRXAf4J7mtBqjvjikLpQieaeOO7+cEbqY2j7Kso/T0R0OiEZTNcLS/8Zl9YrlXiO9UbjQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-virtual-list@3.10.6: + resolution: {integrity: sha512-GZNrR78idlrRCfejtbSzftO+rkYF13kcule6tVB2V++S3CoghMko4BUR5bv6aJWNCX7rMb3B2SsWRSj6tn1IdQ==} + engines: {node: '>=8.x'} + peerDependencies: + react: '*' + react-dom: '*' + + react-dom@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + + react-i18next@13.2.0: + resolution: {integrity: sha512-YD8xMc+I0jkHHLotd8ERMzZ53hMaCBVLCndbcbBveJn3FbppRP4jyYOAkmR8XItN01sTD9ilAjoEjpH1i42IgA==} + peerDependencies: + i18next: '>= 23.2.3' + react: '>= 16.8.0' + react-dom: '*' + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + + react-query@3.39.3: + resolution: {integrity: sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: '*' + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + + react-redux@7.2.8: + resolution: {integrity: sha512-6+uDjhs3PSIclqoCk0kd6iX74gzrGc3W5zcAjbrFgEdIjRSQObdIwfx80unTkVUYvbQ95Y8Av3OvFHq1w5EOUw==} + peerDependencies: + react: ^16.8.3 || ^17 || ^18 + react-dom: '*' + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + + react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + + react-router-dom@6.15.0: + resolution: {integrity: sha512-aR42t0fs7brintwBGAv2+mGlCtgtFQeOzK0BM1/OiqEzRejOZtpMZepvgkscpMUnKb8YO84G7s3LsHnnDNonbQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + react-router@6.15.0: + resolution: {integrity: sha512-NIytlzvzLwJkCQj2HLefmeakxxWHWAP+02EGqWEZy+DgfHHKQMUoBBjUQLOtFInBMhWtb3hiUy6MfFgwLjXhqg==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + + react-universal-interface@0.6.2: + resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} + peerDependencies: + react: '*' + tslib: '*' + + react-use@17.5.1: + resolution: {integrity: sha512-LG/uPEVRflLWMwi3j/sZqR00nF6JGqTTDblkXK2nzXsIvij06hXl1V/MZIlwj1OKIQUtlh1l9jK8gLsRyCQxMg==} + peerDependencies: + react: '*' + react-dom: '*' + + react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg-up@8.0.0: + resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} + engines: {node: '>=12'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + read-pkg@6.0.0: + resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} + engines: {node: '>=12'} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + + redent@4.0.0: + resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} + engines: {node: '>=12'} + + redux-persist@6.0.0: + resolution: {integrity: sha512-71LLMbUq2r02ng2We9S215LtPu3fY0KgaGE0k8WRgl6RkqxtGfl7HUozz1Dftwsb0D/5mZ8dwAaPbtnzfvbEwQ==} + peerDependencies: + react: '>=16' + redux: '>4.0.0' + peerDependenciesMeta: + react: + optional: true + + redux-thunk@2.4.2: + resolution: {integrity: sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==} + peerDependencies: + redux: ^4 + + redux@4.2.1: + resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==} + + reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + engines: {node: '>= 0.4'} + + regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + + regexp.prototype.flags@1.5.0: + resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + engines: {node: '>= 0.4'} + + relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + + remove-accents@0.5.0: + resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + reselect@4.1.8: + resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==} + + resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-global@1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + + resolve@1.22.4: + resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} + hasBin: true + + resolve@2.0.0-next.4: + resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + hasBin: true + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + + rollup@3.29.1: + resolution: {integrity: sha512-c+ebvQz0VIH4KhhCpDsI+Bik0eT8ZFEVZEYw0cGMVqIP8zc+gnwl7iXCamTw7vzv2MeuZFZfdx5JJIq+ehzDlg==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + + rtl-css-js@1.16.1: + resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sass@1.65.1: + resolution: {integrity: sha512-9DINwtHmA41SEd36eVPQ9BJKpn7eKDQmUHmpI0y5Zv2Rcorrh0zS+cFrt050hdNbmmCNKTW3hV5mWfuegNRsEA==} + engines: {node: '>=14.0.0'} + hasBin: true + + sax@1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + + scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + + screenfull@5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} + engines: {node: '>=0.10.0'} + + screenfull@6.0.2: + resolution: {integrity: sha512-AQdy8s4WhNvUZ6P8F6PB21tSPIYKniic+Ogx0AacBMjKP1GUHN2E9URxQHtCusiwxudnCKkdy4GrHXPPJSkCCw==} + engines: {node: ^14.13.1 || >=16.0.0} + + scroll-into-view-if-needed@3.0.10: + resolution: {integrity: sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg==} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + + set-harmonic-interval@1.0.1: + resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} + engines: {node: '>=6.9'} + + shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + + slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.5.6: + resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.13: + resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} + + split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + + stack-generator@2.0.10: + resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} + + stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + + stacktrace-gps@3.1.2: + resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==} + + stacktrace-js@2.0.2: + resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-convert@0.2.1: + resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.matchall@4.0.9: + resolution: {integrity: sha512-6i5hL3MqG/K2G43mWXWgP+qizFW/QH/7kCNN13JrJS5q48FN5IKksLDscexKP3dnmB6cdm9jlNgAsWNLpSykmA==} + + string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + + string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-indent@4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + style-search@0.1.0: + resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} + + styled-components@6.1.12: + resolution: {integrity: sha512-n/O4PzRPhbYI0k1vKKayfti3C/IGcPf+DqcrOB7O/ab9x4u/zjqraneT5N45+sIe87cxrCApXM8Bna7NYxwoTA==} + engines: {node: '>= 16'} + peerDependencies: + react: '>= 16.8.0' + react-dom: '>= 16.8.0' + + stylelint-config-recommended@13.0.0: + resolution: {integrity: sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==} + engines: {node: ^14.13.1 || >=16.0.0} + peerDependencies: + stylelint: ^15.10.0 + + stylelint-config-standard@34.0.0: + resolution: {integrity: sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ==} + engines: {node: ^14.13.1 || >=16.0.0} + peerDependencies: + stylelint: ^15.10.0 + + stylelint@15.10.3: + resolution: {integrity: sha512-aBQMMxYvFzJJwkmg+BUUg3YfPyeuCuKo2f+LOw7yYbU8AZMblibwzp9OV4srHVeQldxvSFdz0/Xu8blq2AesiA==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + + stylis@4.3.0: + resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==} + + stylis@4.3.2: + resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-hyperlinks@3.0.0: + resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} + engines: {node: '>=14.18'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + + table@6.8.1: + resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} + engines: {node: '>=10.0.0'} + + terser@5.19.4: + resolution: {integrity: sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==} + engines: {node: '>=10'} + hasBin: true + + text-extensions@1.9.0: + resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} + engines: {node: '>=0.10'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + three@0.157.0: + resolution: {integrity: sha512-CeAwQrf4x3z0/e+MC4F+nXLW5t0gh3pw+L6CCBqpHvOq3bGYIgRYub7Pv0j/9wR+d++OiEglyZzWyuSYbwWGOA==} + + throttle-debounce@3.0.1: + resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} + engines: {node: '>=10'} + + throttle-debounce@5.0.0: + resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==} + engines: {node: '>=12.22'} + + through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + + trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + + trim-newlines@4.1.1: + resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} + engines: {node: '>=12'} + + ts-api-utils@1.0.3: + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + + ts-easing@0.2.0: + resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} + + ts-node@10.9.1: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + + typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + + typescript@5.1.6: + resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} + engines: {node: '>=14.17'} + hasBin: true + + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + + universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + + unload@2.2.0: + resolution: {integrity: sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==} + + update-browserslist-db@1.0.11: + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + vite-plugin-compression@0.5.1: + resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} + peerDependencies: + vite: '>=2.0.0' + + vite-plugin-html@3.2.0: + resolution: {integrity: sha512-2VLCeDiHmV/BqqNn5h2V+4280KRgQzCFN47cst3WiNK848klESPQnzuC3okH5XHtgwHH/6s1Ho/YV6yIO0pgoQ==} + peerDependencies: + vite: '>=2.0.0' + + vite@4.4.5: + resolution: {integrity: sha512-4m5kEtAWHYr0O1Fu7rZp64CfO1PsRGZlD3TAB32UmQlpd7qg15VF7ROqGN5CyqN7HFuwr7ICNM2+fDWRqFEKaA==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + void-elements@3.1.0: + resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} + engines: {node: '>=0.10.0'} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + + which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + + which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + engines: {node: '>= 0.4'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@2.3.2: + resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} + engines: {node: '>= 14'} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + +snapshots: + + '@aashutoshrathi/word-wrap@1.2.6': {} + + '@ampproject/remapping@2.2.1': + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + + '@ant-design/colors@7.0.0': + dependencies: + '@ctrl/tinycolor': 3.6.1 + + '@ant-design/cssinjs@1.17.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.22.15 + '@emotion/hash': 0.8.0 + '@emotion/unitless': 0.7.5 + classnames: 2.3.2 + csstype: 3.1.2 + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + stylis: 4.3.0 + + '@ant-design/icons-svg@4.3.1': {} + + '@ant-design/icons@5.2.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@ant-design/colors': 7.0.0 + '@ant-design/icons-svg': 4.3.1 + '@babel/runtime': 7.22.15 + classnames: 2.3.2 + lodash.camelcase: 4.3.0 + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@ant-design/react-slick@1.0.2(react@18.2.0)': + dependencies: + '@babel/runtime': 7.22.15 + classnames: 2.3.2 + json2mq: 0.2.0 + react: 18.2.0 + resize-observer-polyfill: 1.5.1 + throttle-debounce: 5.0.0 + + '@babel/code-frame@7.22.13': + dependencies: + '@babel/highlight': 7.22.13 + chalk: 2.4.2 + + '@babel/compat-data@7.22.9': {} + + '@babel/core@7.22.17': + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.22.15 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.22.17(@babel/core@7.22.17) + '@babel/helpers': 7.22.15 + '@babel/parser': 7.22.16 + '@babel/template': 7.22.15 + '@babel/traverse': 7.22.17 + '@babel/types': 7.22.17 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.22.15': + dependencies: + '@babel/types': 7.22.17 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + jsesc: 2.5.2 + + '@babel/helper-compilation-targets@7.22.15': + dependencies: + '@babel/compat-data': 7.22.9 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.21.10 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-environment-visitor@7.22.5': {} + + '@babel/helper-function-name@7.22.5': + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.22.17 + + '@babel/helper-hoist-variables@7.22.5': + dependencies: + '@babel/types': 7.22.17 + + '@babel/helper-module-imports@7.22.15': + dependencies: + '@babel/types': 7.22.17 + + '@babel/helper-module-transforms@7.22.17(@babel/core@7.22.17)': + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.15 + + '@babel/helper-plugin-utils@7.22.5': {} + + '@babel/helper-simple-access@7.22.5': + dependencies: + '@babel/types': 7.22.17 + + '@babel/helper-split-export-declaration@7.22.6': + dependencies: + '@babel/types': 7.22.17 + + '@babel/helper-string-parser@7.22.5': {} + + '@babel/helper-validator-identifier@7.22.15': {} + + '@babel/helper-validator-option@7.22.15': {} + + '@babel/helpers@7.22.15': + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.22.17 + '@babel/types': 7.22.17 + transitivePeerDependencies: + - supports-color + + '@babel/highlight@7.22.13': + dependencies: + '@babel/helper-validator-identifier': 7.22.15 + chalk: 2.4.2 + js-tokens: 4.0.0 + + '@babel/parser@7.22.16': + dependencies: + '@babel/types': 7.22.17 + + '@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.17)': + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.22.17)': + dependencies: + '@babel/core': 7.22.17 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/runtime@7.22.15': + dependencies: + regenerator-runtime: 0.14.0 + + '@babel/runtime@7.25.4': + dependencies: + regenerator-runtime: 0.14.0 + + '@babel/template@7.22.15': + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.22.16 + '@babel/types': 7.22.17 + + '@babel/traverse@7.22.17': + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.22.15 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.22.16 + '@babel/types': 7.22.17 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.22.17': + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.15 + to-fast-properties: 2.0.0 + + '@commitlint/cli@17.3.0': + dependencies: + '@commitlint/format': 17.4.4 + '@commitlint/lint': 17.7.0 + '@commitlint/load': 17.7.1 + '@commitlint/read': 17.5.1 + '@commitlint/types': 17.4.4 + execa: 5.1.1 + lodash.isfunction: 3.0.9 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + + '@commitlint/config-conventional@17.3.0': + dependencies: + conventional-changelog-conventionalcommits: 5.0.0 + + '@commitlint/config-validator@17.6.7': + dependencies: + '@commitlint/types': 17.4.4 + ajv: 8.12.0 + + '@commitlint/ensure@17.6.7': + dependencies: + '@commitlint/types': 17.4.4 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 + + '@commitlint/execute-rule@17.4.0': {} + + '@commitlint/format@17.4.4': + dependencies: + '@commitlint/types': 17.4.4 + chalk: 4.1.2 + + '@commitlint/is-ignored@17.7.0': + dependencies: + '@commitlint/types': 17.4.4 + semver: 7.5.4 + + '@commitlint/lint@17.7.0': + dependencies: + '@commitlint/is-ignored': 17.7.0 + '@commitlint/parse': 17.7.0 + '@commitlint/rules': 17.7.0 + '@commitlint/types': 17.4.4 + + '@commitlint/load@17.7.1': + dependencies: + '@commitlint/config-validator': 17.6.7 + '@commitlint/execute-rule': 17.4.0 + '@commitlint/resolve-extends': 17.6.7 + '@commitlint/types': 17.4.4 + '@types/node': 20.4.7 + chalk: 4.1.2 + cosmiconfig: 8.3.5(typescript@5.1.6) + cosmiconfig-typescript-loader: 4.4.0(@types/node@20.4.7)(cosmiconfig@8.3.5(typescript@5.1.6))(ts-node@10.9.1(@types/node@20.4.7)(typescript@5.1.6))(typescript@5.1.6) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + resolve-from: 5.0.0 + ts-node: 10.9.1(@types/node@20.4.7)(typescript@5.1.6) + typescript: 5.1.6 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + + '@commitlint/message@17.4.2': {} + + '@commitlint/parse@17.7.0': + dependencies: + '@commitlint/types': 17.4.4 + conventional-changelog-angular: 6.0.0 + conventional-commits-parser: 4.0.0 + + '@commitlint/read@17.5.1': + dependencies: + '@commitlint/top-level': 17.4.0 + '@commitlint/types': 17.4.4 + fs-extra: 11.1.1 + git-raw-commits: 2.0.11 + minimist: 1.2.8 + + '@commitlint/resolve-extends@17.6.7': + dependencies: + '@commitlint/config-validator': 17.6.7 + '@commitlint/types': 17.4.4 + import-fresh: 3.3.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + + '@commitlint/rules@17.7.0': + dependencies: + '@commitlint/ensure': 17.6.7 + '@commitlint/message': 17.4.2 + '@commitlint/to-lines': 17.4.0 + '@commitlint/types': 17.4.4 + execa: 5.1.1 + + '@commitlint/to-lines@17.4.0': {} + + '@commitlint/top-level@17.4.0': + dependencies: + find-up: 5.0.0 + + '@commitlint/types@17.4.4': + dependencies: + chalk: 4.1.2 + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@csstools/css-parser-algorithms@2.3.1(@csstools/css-tokenizer@2.2.0)': + dependencies: + '@csstools/css-tokenizer': 2.2.0 + + '@csstools/css-tokenizer@2.2.0': {} + + '@csstools/media-query-list-parser@2.1.4(@csstools/css-parser-algorithms@2.3.1(@csstools/css-tokenizer@2.2.0))(@csstools/css-tokenizer@2.2.0)': + dependencies: + '@csstools/css-parser-algorithms': 2.3.1(@csstools/css-tokenizer@2.2.0) + '@csstools/css-tokenizer': 2.2.0 + + '@csstools/selector-specificity@3.0.0(postcss-selector-parser@6.0.13)': + dependencies: + postcss-selector-parser: 6.0.13 + + '@ctrl/tinycolor@3.6.1': {} + + '@drauu/core@0.3.5': {} + + '@emotion/hash@0.8.0': {} + + '@emotion/is-prop-valid@1.2.2': + dependencies: + '@emotion/memoize': 0.8.1 + + '@emotion/memoize@0.8.1': {} + + '@emotion/unitless@0.7.5': {} + + '@emotion/unitless@0.8.1': {} + + '@esbuild/android-arm64@0.18.20': + optional: true + + '@esbuild/android-arm@0.18.20': + optional: true + + '@esbuild/android-x64@0.18.20': + optional: true + + '@esbuild/darwin-arm64@0.18.20': + optional: true + + '@esbuild/darwin-x64@0.18.20': + optional: true + + '@esbuild/freebsd-arm64@0.18.20': + optional: true + + '@esbuild/freebsd-x64@0.18.20': + optional: true + + '@esbuild/linux-arm64@0.18.20': + optional: true + + '@esbuild/linux-arm@0.18.20': + optional: true + + '@esbuild/linux-ia32@0.18.20': + optional: true + + '@esbuild/linux-loong64@0.18.20': + optional: true + + '@esbuild/linux-mips64el@0.18.20': + optional: true + + '@esbuild/linux-ppc64@0.18.20': + optional: true + + '@esbuild/linux-riscv64@0.18.20': + optional: true + + '@esbuild/linux-s390x@0.18.20': + optional: true + + '@esbuild/linux-x64@0.18.20': + optional: true + + '@esbuild/netbsd-x64@0.18.20': + optional: true + + '@esbuild/openbsd-x64@0.18.20': + optional: true + + '@esbuild/sunos-x64@0.18.20': + optional: true + + '@esbuild/win32-arm64@0.18.20': + optional: true + + '@esbuild/win32-ia32@0.18.20': + optional: true + + '@esbuild/win32-x64@0.18.20': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@8.45.0)': + dependencies: + eslint: 8.45.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.8.1': {} + + '@eslint/eslintrc@2.1.2': + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.21.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.44.0': {} + + '@humanwhocodes/config-array@0.11.11': + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@1.2.1': {} + + '@jridgewell/gen-mapping@0.3.3': + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.19 + + '@jridgewell/resolve-uri@3.1.1': {} + + '@jridgewell/set-array@1.1.2': {} + + '@jridgewell/source-map@0.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + + '@jridgewell/sourcemap-codec@1.4.15': {} + + '@jridgewell/trace-mapping@0.3.19': + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + + '@rc-component/color-picker@1.4.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.22.15 + '@ctrl/tinycolor': 3.6.1 + classnames: 2.3.2 + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@rc-component/context@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.22.15 + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@rc-component/mini-decimal@1.1.0': + dependencies: + '@babel/runtime': 7.22.15 + + '@rc-component/mutate-observer@1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.22.15 + classnames: 2.3.2 + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@rc-component/portal@1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.22.15 + classnames: 2.3.2 + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@rc-component/tour@1.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.22.15 + '@rc-component/portal': 1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@rc-component/trigger': 1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.3.2 + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@rc-component/trigger@1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.22.15 + '@rc-component/portal': 1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.3.2 + rc-align: 4.0.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-resize-observer: 1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@reduxjs/toolkit@1.9.5(react-redux@7.2.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)': + dependencies: + immer: 9.0.21 + redux: 4.2.1 + redux-thunk: 2.4.2(redux@4.2.1) + reselect: 4.1.8 + optionalDependencies: + react: 18.2.0 + react-redux: 7.2.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + + '@remix-run/router@1.8.0': {} + + '@rollup/pluginutils@4.2.1': + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + + '@tsconfig/node10@1.0.9': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@types/gsap@3.0.0': + dependencies: + gsap: 3.12.2 + + '@types/hoist-non-react-statics@3.3.1': + dependencies: + '@types/react': 18.2.15 + hoist-non-react-statics: 3.3.2 + + '@types/js-cookie@2.2.7': {} + + '@types/json-schema@7.0.12': {} + + '@types/lodash@4.17.7': {} + + '@types/minimist@1.2.2': {} + + '@types/mockjs@1.0.7': {} + + '@types/node@20.4.6': {} + + '@types/node@20.4.7': {} + + '@types/normalize-package-data@2.4.1': {} + + '@types/nprogress@0.2.0': {} + + '@types/prop-types@15.7.5': {} + + '@types/qs@6.9.7': {} + + '@types/react-dom@18.2.7': + dependencies: + '@types/react': 18.2.15 + + '@types/react-redux@7.1.25': + dependencies: + '@types/hoist-non-react-statics': 3.3.1 + '@types/react': 18.2.15 + hoist-non-react-statics: 3.3.2 + redux: 4.2.1 + + '@types/react@18.2.15': + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.3 + csstype: 3.1.2 + + '@types/scheduler@0.16.3': {} + + '@types/semver@7.5.1': {} + + '@types/stats.js@0.17.2': {} + + '@types/stylis@4.2.5': {} + + '@types/three@0.157.2': + dependencies: + '@types/stats.js': 0.17.2 + '@types/webxr': 0.5.7 + fflate: 0.6.10 + meshoptimizer: 0.18.1 + + '@types/webxr@0.5.7': {} + + '@typescript-eslint/eslint-plugin@6.4.1(@typescript-eslint/parser@6.4.1(eslint@8.45.0)(typescript@5.1.6))(eslint@8.45.0)(typescript@5.1.6)': + dependencies: + '@eslint-community/regexpp': 4.8.1 + '@typescript-eslint/parser': 6.4.1(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.4.1 + '@typescript-eslint/type-utils': 6.4.1(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.4.1(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.4.1 + debug: 4.3.4 + eslint: 8.45.0 + graphemer: 1.4.0 + ignore: 5.2.4 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.1.6) + optionalDependencies: + typescript: 5.1.6 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@6.4.1(eslint@8.45.0)(typescript@5.1.6)': + dependencies: + '@typescript-eslint/scope-manager': 6.4.1 + '@typescript-eslint/types': 6.4.1 + '@typescript-eslint/typescript-estree': 6.4.1(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.4.1 + debug: 4.3.4 + eslint: 8.45.0 + optionalDependencies: + typescript: 5.1.6 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@6.4.1': + dependencies: + '@typescript-eslint/types': 6.4.1 + '@typescript-eslint/visitor-keys': 6.4.1 + + '@typescript-eslint/type-utils@6.4.1(eslint@8.45.0)(typescript@5.1.6)': + dependencies: + '@typescript-eslint/typescript-estree': 6.4.1(typescript@5.1.6) + '@typescript-eslint/utils': 6.4.1(eslint@8.45.0)(typescript@5.1.6) + debug: 4.3.4 + eslint: 8.45.0 + ts-api-utils: 1.0.3(typescript@5.1.6) + optionalDependencies: + typescript: 5.1.6 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@6.4.1': {} + + '@typescript-eslint/typescript-estree@6.4.1(typescript@5.1.6)': + dependencies: + '@typescript-eslint/types': 6.4.1 + '@typescript-eslint/visitor-keys': 6.4.1 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.1.6) + optionalDependencies: + typescript: 5.1.6 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@6.4.1(eslint@8.45.0)(typescript@5.1.6)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + '@types/json-schema': 7.0.12 + '@types/semver': 7.5.1 + '@typescript-eslint/scope-manager': 6.4.1 + '@typescript-eslint/types': 6.4.1 + '@typescript-eslint/typescript-estree': 6.4.1(typescript@5.1.6) + eslint: 8.45.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@6.4.1': + dependencies: + '@typescript-eslint/types': 6.4.1 + eslint-visitor-keys: 3.4.3 + + '@vitejs/plugin-react@4.0.3(vite@4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1)(terser@5.19.4))': + dependencies: + '@babel/core': 7.22.17 + '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.17) + '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.17) + react-refresh: 0.14.0 + vite: 4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1)(terser@5.19.4) + transitivePeerDependencies: + - supports-color + + '@xobotyi/scrollbar-width@1.9.5': {} + + JSONStream@1.3.5: + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + + acorn-jsx@5.3.2(acorn@8.10.0): + dependencies: + acorn: 8.10.0 + + acorn-walk@8.2.0: {} + + acorn@8.10.0: {} + + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.12.0: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + antd@5.8.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + '@ant-design/colors': 7.0.0 + '@ant-design/cssinjs': 1.17.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@ant-design/icons': 5.2.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@ant-design/react-slick': 1.0.2(react@18.2.0) + '@babel/runtime': 7.22.15 + '@ctrl/tinycolor': 3.6.1 + '@rc-component/color-picker': 1.4.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@rc-component/mutate-observer': 1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@rc-component/tour': 1.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@rc-component/trigger': 1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.3.2 + copy-to-clipboard: 3.3.3 + dayjs: 1.11.9 + qrcode.react: 3.1.0(react@18.2.0) + rc-cascader: 3.14.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-checkbox: 3.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-collapse: 3.7.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-dialog: 9.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-drawer: 6.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-dropdown: 4.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-field-form: 1.36.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-image: 7.1.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-input: 1.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-input-number: 8.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-mentions: 2.5.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-menu: 9.10.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-notification: 5.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-pagination: 3.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-picker: 3.13.2(dayjs@1.11.9)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-progress: 3.4.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-rate: 2.12.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-resize-observer: 1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-segmented: 2.2.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-select: 14.7.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-slider: 10.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-steps: 6.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-switch: 4.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-table: 7.32.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-tabs: 12.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-textarea: 1.3.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-tooltip: 6.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-tree: 5.7.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-tree-select: 5.11.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-upload: 4.3.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + scroll-into-view-if-needed: 3.0.10 + throttle-debounce: 5.0.0 + transitivePeerDependencies: + - date-fns + - luxon + - moment + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@4.1.3: {} + + argparse@2.0.1: {} + + array-buffer-byte-length@1.0.0: + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + + array-ify@1.0.0: {} + + array-includes@3.1.7: + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + get-intrinsic: 1.2.1 + is-string: 1.0.7 + + array-tree-filter@2.1.0: {} + + array-union@2.1.0: {} + + array.prototype.flat@1.3.2: + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 + + array.prototype.flatmap@1.3.2: + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 + + array.prototype.tosorted@1.1.2: + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + + arraybuffer.prototype.slice@1.0.2: + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + + arrify@1.0.1: {} + + astral-regex@2.0.0: {} + + async-validator@4.2.5: {} + + async@3.2.4: {} + + asynciterator.prototype@1.0.0: + dependencies: + has-symbols: 1.0.3 + + asynckit@0.4.0: {} + + available-typed-arrays@1.0.5: {} + + axios@1.4.0: + dependencies: + follow-redirects: 1.15.2 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + balanced-match@1.0.2: {} + + balanced-match@2.0.0: {} + + big-integer@1.6.52: {} + + binary-extensions@2.2.0: {} + + boolbase@1.0.0: {} + + brace-expansion@1.1.11: + dependencies: balanced-match: 1.0.2 - dev: true + concat-map: 0.0.1 - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.2: dependencies: fill-range: 7.0.1 - /browserslist@4.21.10: - resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + broadcast-channel@3.7.0: + dependencies: + '@babel/runtime': 7.22.15 + detect-node: 2.1.0 + js-sha3: 0.8.0 + microseconds: 0.2.0 + nano-time: 1.0.0 + oblivious-set: 1.0.0 + rimraf: 3.0.2 + unload: 2.2.0 + + browserslist@4.21.10: dependencies: caniuse-lite: 1.0.30001533 electron-to-chromium: 1.4.515 node-releases: 2.0.13 update-browserslist-db: 1.0.11(browserslist@4.21.10) - dev: false - /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - dev: true + buffer-from@1.1.2: {} - /call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + call-bind@1.0.2: dependencies: function-bind: 1.1.1 get-intrinsic: 1.2.1 - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: true + callsites@3.1.0: {} - /camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + camel-case@4.1.2: dependencies: pascal-case: 3.1.2 tslib: 2.6.2 - dev: true - /camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} + camelcase-keys@6.2.2: dependencies: camelcase: 5.3.1 map-obj: 4.3.0 quick-lru: 4.0.1 - dev: true - /camelcase-keys@7.0.2: - resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} - engines: {node: '>=12'} + camelcase-keys@7.0.2: dependencies: camelcase: 6.3.0 map-obj: 4.3.0 quick-lru: 5.1.1 type-fest: 1.4.0 - dev: true - /camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: true + camelcase@5.3.1: {} - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: true + camelcase@6.3.0: {} - /caniuse-lite@1.0.30001533: - resolution: {integrity: sha512-9aY/b05NKU4Yl2sbcJhn4A7MsGwR1EPfW/nrqsnqVA0Oq50wpmPaGI+R1Z0UKlUl96oxUkGEOILWtOHck0eCWw==} - dev: false + camelize@1.0.1: {} - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + caniuse-lite@1.0.30001533: {} + + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - dev: true - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} + chokidar@3.5.3: dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -1773,464 +4429,284 @@ packages: optionalDependencies: fsevents: 2.3.3 - /classnames@2.3.2: - resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} - dev: false + classnames@2.3.2: {} - /clean-css@5.3.2: - resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==} - engines: {node: '>= 10.0'} + clean-css@5.3.2: dependencies: source-map: 0.6.1 - dev: true - /clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - dev: true + clean-stack@2.2.0: {} - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 - dev: true - /cli-truncate@2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} - engines: {node: '>=8'} + cli-truncate@2.1.0: dependencies: slice-ansi: 3.0.0 string-width: 4.2.3 - dev: true - /cli-truncate@3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cli-truncate@3.1.0: dependencies: slice-ansi: 5.0.0 string-width: 5.1.2 - dev: true - /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@1.9.3: dependencies: color-name: 1.1.3 - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + color-convert@2.0.1: dependencies: color-name: 1.1.4 - dev: true - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + color-name@1.1.3: {} - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true + color-name@1.1.4: {} - /colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - dev: true + colord@2.9.3: {} - /colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - dev: true + colorette@2.0.20: {} - /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 - dev: false - /commander@11.0.0: - resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} - engines: {node: '>=16'} - dev: true + commander@11.0.0: {} - /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: true + commander@2.20.3: {} - /commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - dev: true + commander@8.3.0: {} - /commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - dev: true + commander@9.5.0: {} - /compare-func@2.0.0: - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + compare-func@2.0.0: dependencies: array-ify: 1.0.0 dot-prop: 5.3.0 - dev: true - /compute-scroll-into-view@3.0.3: - resolution: {integrity: sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A==} - dev: false + compute-scroll-into-view@3.0.3: {} - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true + concat-map@0.0.1: {} - /connect-history-api-fallback@1.6.0: - resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==} - engines: {node: '>=0.8'} - dev: true + connect-history-api-fallback@1.6.0: {} - /consola@2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - dev: true + consola@2.15.3: {} - /conventional-changelog-angular@6.0.0: - resolution: {integrity: sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==} - engines: {node: '>=14'} + conventional-changelog-angular@6.0.0: dependencies: compare-func: 2.0.0 - dev: true - /conventional-changelog-conventionalcommits@5.0.0: - resolution: {integrity: sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==} - engines: {node: '>=10'} + conventional-changelog-conventionalcommits@5.0.0: dependencies: compare-func: 2.0.0 lodash: 4.17.21 q: 1.5.1 - dev: true - /conventional-commits-parser@4.0.0: - resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} - engines: {node: '>=14'} - hasBin: true + conventional-commits-parser@4.0.0: dependencies: JSONStream: 1.3.5 is-text-path: 1.0.1 meow: 8.1.2 split2: 3.2.2 - dev: true - /convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - dev: false + convert-source-map@1.9.0: {} - /copy-anything@2.0.6: - resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + copy-anything@2.0.6: dependencies: is-what: 3.14.1 - /copy-to-clipboard@3.3.3: - resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + copy-to-clipboard@3.3.3: dependencies: toggle-selection: 1.0.6 - dev: false - /cosmiconfig-typescript-loader@4.4.0(@types/node@20.4.7)(cosmiconfig@8.3.5)(ts-node@10.9.1)(typescript@5.1.6): - resolution: {integrity: sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==} - engines: {node: '>=v14.21.3'} - peerDependencies: - '@types/node': '*' - cosmiconfig: '>=7' - ts-node: '>=10' - typescript: '>=4' + cosmiconfig-typescript-loader@4.4.0(@types/node@20.4.7)(cosmiconfig@8.3.5(typescript@5.1.6))(ts-node@10.9.1(@types/node@20.4.7)(typescript@5.1.6))(typescript@5.1.6): dependencies: '@types/node': 20.4.7 cosmiconfig: 8.3.5(typescript@5.1.6) - ts-node: 10.9.1(@types/node@20.4.6)(typescript@5.1.6) + ts-node: 10.9.1(@types/node@20.4.7)(typescript@5.1.6) typescript: 5.1.6 - dev: true - /cosmiconfig@8.3.5(typescript@5.1.6): - resolution: {integrity: sha512-A5Xry3xfS96wy2qbiLkQLAg4JUrR2wvfybxj6yqLmrUfMAvhS3MZxIP2oQn0grgYIvJqzpeTEWu4vK0t+12NNw==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true + cosmiconfig@8.3.5(typescript@5.1.6): dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 + optionalDependencies: typescript: 5.1.6 - dev: true - /create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: true + create-require@1.1.1: {} - /cross-env@7.0.3: - resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} - engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} - hasBin: true + cross-env@7.0.3: dependencies: cross-spawn: 7.0.3 - dev: true - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - dev: true - /css-functions-list@3.2.0: - resolution: {integrity: sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==} - engines: {node: '>=12.22'} - dev: true + css-color-keywords@1.0.0: {} - /css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + css-functions-list@3.2.0: {} + + css-in-js-utils@3.1.0: + dependencies: + hyphenate-style-name: 1.1.0 + + css-select@4.3.0: dependencies: boolbase: 1.0.0 css-what: 6.1.0 domhandler: 4.3.1 domutils: 2.8.0 nth-check: 2.1.1 - dev: true - /css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-to-react-native@3.2.0: + dependencies: + camelize: 1.0.1 + css-color-keywords: 1.0.0 + postcss-value-parser: 4.2.0 + + css-tree@1.1.3: + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + + css-tree@2.3.1: dependencies: mdn-data: 2.0.30 source-map-js: 1.0.2 - dev: true - /css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - dev: true + css-what@6.1.0: {} - /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - dev: true + cssesc@3.0.0: {} - /csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + csstype@3.1.2: {} - /dargs@7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} - dev: true + csstype@3.1.3: {} - /dayjs@1.11.9: - resolution: {integrity: sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==} - dev: false + dargs@7.0.0: {} - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + dayjs@1.11.9: {} + + debug@3.2.7: dependencies: ms: 2.1.3 optional: true - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@4.3.4: dependencies: ms: 2.1.2 - /decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} + decamelize-keys@1.1.1: dependencies: decamelize: 1.2.0 map-obj: 1.0.1 - dev: true - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: true + decamelize@1.2.0: {} - /decamelize@5.0.1: - resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} - engines: {node: '>=10'} - dev: true + decamelize@5.0.1: {} - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true + deep-is@0.1.4: {} - /define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} - engines: {node: '>= 0.4'} + define-properties@1.2.0: dependencies: has-property-descriptors: 1.0.0 object-keys: 1.1.1 - dev: true - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: false + delayed-stream@1.0.0: {} - /diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - dev: true + detect-node@2.1.0: {} - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + diff@4.0.2: {} + + dir-glob@3.0.1: dependencies: path-type: 4.0.0 - dev: true - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} + doctrine@2.1.0: dependencies: esutils: 2.0.3 - dev: true - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + doctrine@3.0.0: dependencies: esutils: 2.0.3 - dev: true - /dom-align@1.12.4: - resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==} - dev: false + dom-align@1.12.4: {} - /dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dom-serializer@1.4.1: dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 entities: 2.2.0 - dev: true - /domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - dev: true + domelementtype@2.3.0: {} - /domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} + domhandler@4.3.1: dependencies: domelementtype: 2.3.0 - dev: true - /domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + domutils@2.8.0: dependencies: dom-serializer: 1.4.1 domelementtype: 2.3.0 domhandler: 4.3.1 - dev: true - /dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dot-case@3.0.4: dependencies: no-case: 3.0.4 tslib: 2.6.2 - dev: true - /dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} + dot-prop@5.3.0: dependencies: is-obj: 2.0.0 - dev: true - /dotenv-expand@8.0.3: - resolution: {integrity: sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==} - engines: {node: '>=12'} - dev: true + dotenv-expand@8.0.3: {} - /dotenv@16.3.1: - resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} - engines: {node: '>=12'} - dev: true + dotenv@16.3.1: {} - /drauu@0.3.5: - resolution: {integrity: sha512-smn9WrphMEz/umneTqeyxBEYH8WotkDFX658717HCcax4TWFDsfkvktdfH6aXXy1BP2WXbVc5msHPEzkYFHBFw==} + drauu@0.3.5: dependencies: '@drauu/core': 0.3.5 - dev: false - /driver.js@1.2.1: - resolution: {integrity: sha512-6nDbVnZdjRgTsJOOmGRmMf/t6cHnMyyZK/wLSbdLZp33I7odPglw1cVlX3TMaPnMDYIJUq7h8a0buejOLqM7XQ==} - dev: false + driver.js@1.2.1: {} - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true + eastasianwidth@0.2.0: {} - /ejs@3.1.9: - resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} - engines: {node: '>=0.10.0'} - hasBin: true + ejs@3.1.9: dependencies: jake: 10.8.7 - dev: true - /electron-to-chromium@1.4.515: - resolution: {integrity: sha512-VTq6vjk3kCfG2qdzQRd/i9dIyVVm0dbtZIgFzrLgfB73mXDQT2HPKVRc1EoZcAVUv9XhXAu08DWqJuababdGGg==} - dev: false + electron-to-chromium@1.4.515: {} - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true + emoji-regex@8.0.0: {} - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true + emoji-regex@9.2.2: {} - /entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - dev: true + entities@2.2.0: {} - /errno@0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} - hasBin: true - requiresBuild: true + errno@0.1.8: dependencies: prr: 1.0.1 optional: true - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - dev: true - /es-abstract@1.22.1: - resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} - engines: {node: '>= 0.4'} + error-stack-parser@2.1.4: + dependencies: + stackframe: 1.3.4 + + es-abstract@1.22.1: dependencies: array-buffer-byte-length: 1.0.0 arraybuffer.prototype.slice: 1.0.2 @@ -2271,10 +4747,8 @@ packages: typed-array-length: 1.0.4 unbox-primitive: 1.0.2 which-typed-array: 1.1.11 - dev: true - /es-iterator-helpers@1.0.14: - resolution: {integrity: sha512-JgtVnwiuoRuzLvqelrvN3Xu7H9bu2ap/kQ2CrM62iidP8SKuD99rWU3CJy++s7IVL2qb/AjXPGR/E7i9ngd/Cw==} + es-iterator-helpers@1.0.14: dependencies: asynciterator.prototype: 1.0.0 call-bind: 1.0.2 @@ -2290,37 +4764,24 @@ packages: internal-slot: 1.0.5 iterator.prototype: 1.1.1 safe-array-concat: 1.0.1 - dev: true - /es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} - engines: {node: '>= 0.4'} + es-set-tostringtag@2.0.1: dependencies: get-intrinsic: 1.2.1 has: 1.0.3 has-tostringtag: 1.0.0 - dev: true - /es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + es-shim-unscopables@1.0.0: dependencies: has: 1.0.3 - dev: true - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} + es-to-primitive@1.2.1: dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 - dev: true - /esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true + esbuild@0.18.20: optionalDependencies: '@esbuild/android-arm': 0.18.20 '@esbuild/android-arm64': 0.18.20 @@ -2345,41 +4806,21 @@ packages: '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} + escalade@3.1.1: {} - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + escape-string-regexp@1.0.5: {} - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - dev: true + escape-string-regexp@4.0.0: {} - /eslint-plugin-react-hooks@4.6.0(eslint@8.45.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + eslint-plugin-react-hooks@4.6.0(eslint@8.45.0): dependencies: eslint: 8.45.0 - dev: true - /eslint-plugin-react-refresh@0.4.3(eslint@8.45.0): - resolution: {integrity: sha512-Hh0wv8bUNY877+sI0BlCUlsS0TYYQqvzEwJsJJPM2WF4RnTStSnSR3zdJYa2nPOJgg3UghXi54lVyMSmpCalzA==} - peerDependencies: - eslint: '>=7' + eslint-plugin-react-refresh@0.4.3(eslint@8.45.0): dependencies: eslint: 8.45.0 - dev: true - /eslint-plugin-react@7.33.2(eslint@8.45.0): - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint-plugin-react@7.33.2(eslint@8.45.0): dependencies: array-includes: 3.1.7 array.prototype.flatmap: 1.3.2 @@ -2398,25 +4839,15 @@ packages: resolve: 2.0.0-next.4 semver: 6.3.1 string.prototype.matchall: 4.0.9 - dev: true - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - dev: true - /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true + eslint-visitor-keys@3.4.3: {} - /eslint@8.45.0: - resolution: {integrity: sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true + eslint@8.45.0: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) '@eslint-community/regexpp': 4.8.1 @@ -2457,48 +4888,28 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - supports-color - dev: true - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@9.6.1: dependencies: acorn: 8.10.0 acorn-jsx: 5.3.2(acorn@8.10.0) eslint-visitor-keys: 3.4.3 - dev: true - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} + esquery@1.5.0: dependencies: estraverse: 5.3.0 - dev: true - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 - dev: true - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - dev: true + estraverse@5.3.0: {} - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: true + estree-walker@2.0.2: {} - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - dev: true + esutils@2.0.3: {} - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + execa@5.1.1: dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -2509,11 +4920,8 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 - dev: true - /execa@6.1.0: - resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + execa@6.1.0: dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -2524,229 +4932,142 @@ packages: onetime: 6.0.0 signal-exit: 3.0.7 strip-final-newline: 3.0.0 - dev: true - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true + fast-deep-equal@3.1.3: {} - /fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} - engines: {node: '>=8.6.0'} + fast-glob@3.3.1: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 - dev: true - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true + fast-json-stable-stringify@2.1.0: {} - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true + fast-levenshtein@2.0.6: {} - /fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} - dev: true + fast-shallow-equal@1.0.0: {} - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + fastest-levenshtein@1.0.16: {} + + fastest-stable-stringify@2.0.2: {} + + fastq@1.15.0: dependencies: reusify: 1.0.4 - dev: true - /fflate@0.6.10: - resolution: {integrity: sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==} - dev: false + fflate@0.6.10: {} - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@6.0.1: dependencies: flat-cache: 3.1.0 - dev: true - /filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + filelist@1.0.4: dependencies: minimatch: 5.1.6 - dev: true - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} + fill-range@7.0.1: dependencies: to-regex-range: 5.0.1 - /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + find-up@4.1.0: 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==} - engines: {node: '>=10'} + find-up@5.0.0: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - dev: true - /flat-cache@3.1.0: - resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} - engines: {node: '>=12.0.0'} + flat-cache@3.1.0: dependencies: flatted: 3.2.7 keyv: 4.5.3 rimraf: 3.0.2 - dev: true - /flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} - dev: true + flatted@3.2.7: {} - /follow-redirects@1.15.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: false + follow-redirects@1.15.2: {} - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + for-each@0.3.3: dependencies: is-callable: 1.2.7 - dev: true - /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} + form-data@4.0.0: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - dev: false - /fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} + fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.0 - dev: true - /fs-extra@11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} - engines: {node: '>=14.14'} + fs-extra@11.1.1: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.0 - dev: true - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true + fs.realpath@1.0.0: {} - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true + fsevents@2.3.3: optional: true - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + function-bind@1.1.1: {} - /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} + function.prototype.name@1.1.6: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 functions-have-names: 1.2.3 - dev: true - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true + functions-have-names@1.2.3: {} - /gasp@0.0.2: - resolution: {integrity: sha512-cJGS8HkASZXLtYnS7CHDUCutYdeV2OXW/P+SU03+allNY26GiYOfstziPjnsMW8bbdf6hoQ3caVHYNZ0YLuFCA==} + gasp@0.0.2: dependencies: q: 1.5.1 - dev: false - /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - dev: false + gensync@1.0.0-beta.2: {} - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true + get-caller-file@2.0.5: {} - /get-intrinsic@1.2.1: - resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + get-intrinsic@1.2.1: dependencies: function-bind: 1.1.1 has: 1.0.3 has-proto: 1.0.1 has-symbols: 1.0.3 - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: true + get-stream@6.0.1: {} - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} + get-symbol-description@1.0.0: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 - dev: true - /git-raw-commits@2.0.11: - resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} - engines: {node: '>=10'} - hasBin: true + git-raw-commits@2.0.11: dependencies: dargs: 7.0.0 lodash: 4.17.21 meow: 8.1.2 split2: 3.2.2 through2: 4.0.2 - dev: true - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + glob-parent@6.0.2: dependencies: is-glob: 4.0.3 - dev: true - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + glob@7.2.3: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -2754,53 +5075,32 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true - /global-dirs@0.1.1: - resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} - engines: {node: '>=4'} + global-dirs@0.1.1: dependencies: ini: 1.3.8 - dev: true - /global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} + global-modules@2.0.0: dependencies: global-prefix: 3.0.0 - dev: true - /global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} + global-prefix@3.0.0: dependencies: ini: 1.3.8 kind-of: 6.0.3 which: 1.3.1 - dev: true - /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: false + globals@11.12.0: {} - /globals@13.21.0: - resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} - engines: {node: '>=8'} + globals@13.21.0: dependencies: type-fest: 0.20.2 - dev: true - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} + globalthis@1.0.3: dependencies: define-properties: 1.2.0 - dev: true - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -2808,99 +5108,56 @@ packages: ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 - dev: true - /globjoin@0.1.4: - resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} - dev: true + globjoin@0.1.4: {} - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.0.1: dependencies: get-intrinsic: 1.2.1 - dev: true - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graceful-fs@4.2.11: {} - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - dev: true + graphemer@1.4.0: {} - /gsap@3.12.2: - resolution: {integrity: sha512-EkYnpG8qHgYBFAwsgsGEqvT1WUidX0tt/ijepx7z8EUJHElykg91RvW1XbkT59T0gZzzszOpjQv7SE41XuIXyQ==} - dev: false + gsap@3.12.2: {} - /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: true + hard-rejection@2.1.0: {} - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true + has-bigints@1.0.2: {} - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + has-flag@3.0.0: {} - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: true + has-flag@4.0.0: {} - /has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + has-property-descriptors@1.0.0: dependencies: get-intrinsic: 1.2.1 - dev: true - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} + has-proto@1.0.1: {} - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} + has-symbols@1.0.3: {} - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} + has-tostringtag@1.0.0: dependencies: has-symbols: 1.0.3 - dev: true - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} + has@1.0.3: dependencies: function-bind: 1.1.1 - /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - dev: true + he@1.2.0: {} - /hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + hoist-non-react-statics@3.3.2: dependencies: react-is: 16.13.1 - /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: true + hosted-git-info@2.8.9: {} - /hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} + hosted-git-info@4.1.0: dependencies: lru-cache: 6.0.0 - dev: true - /html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true + html-minifier-terser@6.1.0: dependencies: camel-case: 4.1.2 clean-css: 5.3.2 @@ -2909,443 +5166,256 @@ packages: param-case: 3.0.4 relateurl: 0.2.7 terser: 5.19.4 - dev: true - /html-parse-stringify@3.0.1: - resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} + html-parse-stringify@3.0.1: dependencies: void-elements: 3.1.0 - dev: false - /html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} - dev: true + html-tags@3.3.1: {} - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: true + human-signals@2.1.0: {} - /human-signals@3.0.1: - resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} - engines: {node: '>=12.20.0'} - dev: true + human-signals@3.0.1: {} - /husky@8.0.2: - resolution: {integrity: sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==} - engines: {node: '>=14'} - hasBin: true - dev: true + husky@8.0.2: {} - /i18next@23.4.6: - resolution: {integrity: sha512-jBE8bui969Ygv7TVYp0pwDZB7+he0qsU+nz7EcfdqSh+QvKjEfl9YPRQd/KrGiMhTYFGkeuPaeITenKK/bSFDg==} + hyphenate-style-name@1.1.0: {} + + i18next@23.4.6: dependencies: '@babel/runtime': 7.22.15 - dev: false - /iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 optional: true - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} - dev: true + ignore@5.2.4: {} - /image-size@0.5.5: - resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} - engines: {node: '>=0.10.0'} - hasBin: true - requiresBuild: true + image-size@0.5.5: optional: true - /immer@9.0.21: - resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} - dev: false + immer@9.0.21: {} - /immutable@4.3.4: - resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} + immutable@4.3.4: {} - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - dev: true - /import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - dev: true + import-lazy@4.0.0: {} - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - dev: true + imurmurhash@0.1.4: {} - /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - dev: true + indent-string@4.0.0: {} - /indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - dev: true + indent-string@5.0.0: {} - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + inflight@1.0.6: dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true + inherits@2.0.4: {} - /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true + ini@1.3.8: {} - /internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} - engines: {node: '>= 0.4'} + inline-style-prefixer@7.0.1: + dependencies: + css-in-js-utils: 3.1.0 + + internal-slot@1.0.5: dependencies: get-intrinsic: 1.2.1 has: 1.0.3 side-channel: 1.0.4 - dev: true - /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + is-array-buffer@3.0.2: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 is-typed-array: 1.1.12 - dev: true - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true + is-arrayish@0.2.1: {} - /is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} + is-async-function@2.0.0: dependencies: has-tostringtag: 1.0.0 - dev: true - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 - dev: true - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + is-binary-path@2.1.0: dependencies: binary-extensions: 2.2.0 - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + is-boolean-object@1.1.2: dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 - dev: true - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: true + is-callable@1.2.7: {} - /is-core-module@2.13.0: - resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + is-core-module@2.13.0: dependencies: has: 1.0.3 - dev: true - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} + is-date-object@1.0.5: dependencies: has-tostringtag: 1.0.0 - dev: true - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + is-extglob@2.1.1: {} - /is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + is-finalizationregistry@1.0.2: dependencies: call-bind: 1.0.2 - dev: true - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true + is-fullwidth-code-point@3.0.0: {} - /is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - dev: true + is-fullwidth-code-point@4.0.0: {} - /is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} + is-generator-function@1.0.10: dependencies: has-tostringtag: 1.0.0 - dev: true - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - /is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} - dev: true + is-map@2.0.2: {} - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - dev: true + is-negative-zero@2.0.2: {} - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} + is-number-object@1.0.7: dependencies: has-tostringtag: 1.0.0 - dev: true - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + is-number@7.0.0: {} - /is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - dev: true + is-obj@2.0.0: {} - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: true + is-path-inside@3.0.3: {} - /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: true + is-plain-obj@1.1.0: {} - /is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - dev: true + is-plain-object@5.0.0: {} - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} + is-regex@1.1.4: dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 - dev: true - /is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} - dev: true + is-set@2.0.2: {} - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + is-shared-array-buffer@1.0.2: dependencies: call-bind: 1.0.2 - dev: true - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: true + is-stream@2.0.1: {} - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + is-stream@3.0.0: {} - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} + is-string@1.0.7: dependencies: has-tostringtag: 1.0.0 - dev: true - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} + is-symbol@1.0.4: dependencies: has-symbols: 1.0.3 - dev: true - /is-text-path@1.0.1: - resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} - engines: {node: '>=0.10.0'} + is-text-path@1.0.1: dependencies: text-extensions: 1.9.0 - dev: true - /is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} + is-typed-array@1.1.12: dependencies: which-typed-array: 1.1.11 - dev: true - /is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} - dev: true + is-weakmap@2.0.1: {} - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-weakref@1.0.2: dependencies: call-bind: 1.0.2 - dev: true - /is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + is-weakset@2.0.2: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 - dev: true - /is-what@3.14.1: - resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + is-what@3.14.1: {} - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true + isarray@2.0.5: {} - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true + isexe@2.0.0: {} - /iterator.prototype@1.1.1: - resolution: {integrity: sha512-9E+nePc8C9cnQldmNl6bgpTY6zI4OPRZd97fhJ/iVZ1GifIUDVV5F6x1nEDqpe8KaMEZGT4xgrwKQDxXnjOIZQ==} + iterator.prototype@1.1.1: dependencies: define-properties: 1.2.0 get-intrinsic: 1.2.1 has-symbols: 1.0.3 reflect.getprototypeof: 1.0.4 - dev: true - /jake@10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} - engines: {node: '>=10'} - hasBin: true + jake@10.8.7: dependencies: async: 3.2.4 chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 - dev: true - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-cookie@2.2.1: {} - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true + js-sha3@0.8.0: {} + + js-tokens@4.0.0: {} + + js-yaml@4.1.0: dependencies: argparse: 2.0.1 - dev: true - /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - dev: false + jsesc@2.5.2: {} - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: true + json-buffer@3.0.1: {} - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true + json-parse-even-better-errors@2.3.1: {} - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true + json-schema-traverse@0.4.1: {} - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true + json-schema-traverse@1.0.0: {} - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true + json-stable-stringify-without-jsonify@1.0.1: {} - /json2mq@0.2.0: - resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==} + json2mq@0.2.0: dependencies: string-convert: 0.2.1 - dev: false - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - dev: false + json5@2.2.3: {} - /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonfile@6.1.0: dependencies: universalify: 2.0.0 optionalDependencies: graceful-fs: 4.2.11 - dev: true - /jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} - dev: true + jsonparse@1.3.1: {} - /jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} + jsx-ast-utils@3.3.5: dependencies: array-includes: 3.1.7 array.prototype.flat: 1.3.2 object.assign: 4.1.4 object.values: 1.1.7 - dev: true - /keyv@4.5.3: - resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} + keyv@4.5.3: dependencies: json-buffer: 3.0.1 - dev: true - /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - dev: true + kind-of@6.0.3: {} - /known-css-properties@0.28.0: - resolution: {integrity: sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==} - dev: true + known-css-properties@0.28.0: {} - /less@4.2.0: - resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==} - engines: {node: '>=6'} - hasBin: true + less@4.2.0: dependencies: copy-anything: 2.0.6 parse-node-version: 1.0.1 @@ -3361,27 +5431,16 @@ packages: transitivePeerDependencies: - supports-color - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - dev: true - /lilconfig@2.0.6: - resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} - engines: {node: '>=10'} - dev: true + lilconfig@2.0.6: {} - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true + lines-and-columns@1.2.4: {} - /lint-staged@13.1.0: - resolution: {integrity: sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ==} - engines: {node: ^14.13.1 || >=16.0.0} - hasBin: true + lint-staged@13.1.0: dependencies: cli-truncate: 3.1.0 colorette: 2.0.20 @@ -3399,16 +5458,8 @@ packages: transitivePeerDependencies: - enquirer - supports-color - dev: true - /listr2@5.0.8: - resolution: {integrity: sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==} - engines: {node: ^14.13.1 || >=16.0.0} - peerDependencies: - enquirer: '>= 2.3.0 < 3' - peerDependenciesMeta: - enquirer: - optional: true + listr2@5.0.8: dependencies: cli-truncate: 2.1.0 colorette: 2.0.20 @@ -3418,138 +5469,86 @@ packages: rxjs: 7.8.1 through: 2.3.8 wrap-ansi: 7.0.0 - dev: true - /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + locate-path@5.0.0: dependencies: p-locate: 4.1.0 - dev: true - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + locate-path@6.0.0: dependencies: p-locate: 5.0.0 - dev: true - /lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + lodash.camelcase@4.3.0: {} - /lodash.isfunction@3.0.9: - resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} - dev: true + lodash.isfunction@3.0.9: {} - /lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - dev: true + lodash.isplainobject@4.0.6: {} - /lodash.kebabcase@4.1.1: - resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} - dev: true + lodash.kebabcase@4.1.1: {} - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true + lodash.merge@4.6.2: {} - /lodash.mergewith@4.6.2: - resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} - dev: true + lodash.mergewith@4.6.2: {} - /lodash.snakecase@4.1.1: - resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} - dev: true + lodash.snakecase@4.1.1: {} - /lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - dev: true + lodash.startcase@4.4.0: {} - /lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - dev: true + lodash.truncate@4.4.2: {} - /lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - dev: true + lodash.uniq@4.5.0: {} - /lodash.upperfirst@4.3.1: - resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} - dev: true + lodash.upperfirst@4.3.1: {} - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true + lodash@4.17.21: {} - /log-update@4.0.0: - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} - engines: {node: '>=10'} + log-update@4.0.0: dependencies: ansi-escapes: 4.3.2 cli-cursor: 3.1.0 slice-ansi: 4.0.0 wrap-ansi: 6.2.0 - dev: true - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - /lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lower-case@2.0.2: dependencies: tslib: 2.6.2 - dev: true - /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 - dev: false - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + lru-cache@6.0.0: dependencies: yallist: 4.0.0 - dev: true - /make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} - requiresBuild: true + make-dir@2.1.0: dependencies: pify: 4.0.1 semver: 5.7.2 optional: true - /make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: true + make-error@1.3.6: {} - /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: true + map-obj@1.0.1: {} - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: true + map-obj@4.3.0: {} - /mathml-tag-names@2.1.3: - resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} - dev: true + match-sorter@6.3.4: + dependencies: + '@babel/runtime': 7.25.4 + remove-accents: 0.5.0 - /mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - dev: true + mathml-tag-names@2.1.3: {} - /meow@10.1.5: - resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + mdn-data@2.0.14: {} + + mdn-data@2.0.30: {} + + meow@10.1.5: dependencies: '@types/minimist': 1.2.2 camelcase-keys: 7.0.2 @@ -3563,11 +5562,8 @@ packages: trim-newlines: 4.1.1 type-fest: 1.4.0 yargs-parser: 20.2.9 - dev: true - /meow@8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} - engines: {node: '>=10'} + meow@8.1.2: dependencies: '@types/minimist': 1.2.2 camelcase-keys: 6.2.2 @@ -3580,117 +5576,84 @@ packages: trim-newlines: 3.0.1 type-fest: 0.18.1 yargs-parser: 20.2.9 - dev: true - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true + merge-stream@2.0.0: {} - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true + merge2@1.4.1: {} - /meshoptimizer@0.18.1: - resolution: {integrity: sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==} - dev: false + meshoptimizer@0.18.1: {} - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + micromatch@4.0.5: dependencies: braces: 3.0.2 picomatch: 2.3.1 - dev: true - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - dev: false + microseconds@0.2.0: {} - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + mime-db@1.52.0: {} + + mime-types@2.1.35: dependencies: mime-db: 1.52.0 - dev: false - /mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - requiresBuild: true + mime@1.6.0: optional: true - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: true + mimic-fn@2.1.0: {} - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - dev: true + mimic-fn@4.0.0: {} - /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true + min-indent@1.0.1: {} - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 - dev: true - /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + minimatch@5.1.6: dependencies: brace-expansion: 2.0.1 - dev: true - /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} + minimist-options@4.1.0: dependencies: arrify: 1.0.1 is-plain-obj: 1.1.0 kind-of: 6.0.3 - dev: true - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true + minimist@1.2.8: {} - /mockjs@1.1.0: - resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} - hasBin: true + mockjs@1.1.0: dependencies: commander: 11.0.0 - dev: true - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + ms@2.1.2: {} - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + ms@2.1.3: optional: true - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + nano-css@5.6.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + css-tree: 1.1.3 + csstype: 3.1.2 + fastest-stable-stringify: 2.0.2 + inline-style-prefixer: 7.0.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + rtl-css-js: 1.16.1 + stacktrace-js: 2.0.2 + stylis: 4.3.0 - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true + nano-time@1.0.0: + dependencies: + big-integer: 1.6.52 - /needle@3.2.0: - resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==} - engines: {node: '>= 4.4.x'} - hasBin: true - requiresBuild: true + nanoid@3.3.6: {} + + nanoid@3.3.7: {} + + natural-compare@1.4.0: {} + + needle@3.2.0: dependencies: debug: 3.2.7 iconv-lite: 0.6.3 @@ -3699,154 +5662,101 @@ packages: - supports-color optional: true - /no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + no-case@3.0.4: dependencies: lower-case: 2.0.2 tslib: 2.6.2 - dev: true - /node-html-parser@5.4.2: - resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==} + node-html-parser@5.4.2: dependencies: css-select: 4.3.0 he: 1.2.0 - dev: true - /node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - dev: false + node-releases@2.0.13: {} - /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 resolve: 1.22.4 semver: 5.7.2 validate-npm-package-license: 3.0.4 - dev: true - /normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} + normalize-package-data@3.0.3: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.13.0 semver: 7.5.4 validate-npm-package-license: 3.0.4 - dev: true - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + normalize-path@3.0.0: {} - /normalize.css@8.0.1: - resolution: {integrity: sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==} - dev: false + normalize.css@8.0.1: {} - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 - dev: true - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + npm-run-path@5.1.0: dependencies: path-key: 4.0.0 - dev: true - /nprogress@0.2.0: - resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} - dev: false + nprogress@0.2.0: {} - /nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nth-check@2.1.1: dependencies: boolbase: 1.0.0 - dev: true - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + object-assign@4.1.1: {} - /object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + object-inspect@1.12.3: {} - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - dev: true + object-keys@1.1.1: {} - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} - engines: {node: '>= 0.4'} + object.assign@4.1.4: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 has-symbols: 1.0.3 object-keys: 1.1.1 - dev: true - /object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} - engines: {node: '>= 0.4'} + object.entries@1.1.7: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 - dev: true - /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} - engines: {node: '>= 0.4'} + object.fromentries@2.0.7: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 - dev: true - /object.hasown@1.1.3: - resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + object.hasown@1.1.3: dependencies: define-properties: 1.2.0 es-abstract: 1.22.1 - dev: true - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} - engines: {node: '>= 0.4'} + object.values@1.1.7: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 - dev: true - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + oblivious-set@1.0.0: {} + + once@1.4.0: dependencies: wrappy: 1.0.2 - dev: true - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + onetime@5.1.2: dependencies: mimic-fn: 2.1.0 - dev: true - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + onetime@6.0.0: dependencies: mimic-fn: 4.0.0 - dev: true - /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} + optionator@0.9.3: dependencies: '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 @@ -3854,807 +5764,490 @@ packages: levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - dev: true - /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + p-limit@2.3.0: dependencies: p-try: 2.2.0 - dev: true - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 - dev: true - /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + p-locate@4.1.0: dependencies: p-limit: 2.3.0 - dev: true - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + p-locate@5.0.0: dependencies: p-limit: 3.1.0 - dev: true - /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} + p-map@4.0.0: dependencies: aggregate-error: 3.1.0 - dev: true - /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: true + p-try@2.2.0: {} - /param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + param-case@3.0.4: dependencies: dot-case: 3.0.4 tslib: 2.6.2 - dev: true - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + parent-module@1.0.1: dependencies: callsites: 3.1.0 - dev: true - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + parse-json@5.2.0: dependencies: '@babel/code-frame': 7.22.13 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - dev: true - /parse-node-version@1.0.1: - resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} - engines: {node: '>= 0.10'} + parse-node-version@1.0.1: {} - /pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + pascal-case@3.1.2: dependencies: no-case: 3.0.4 tslib: 2.6.2 - dev: true - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: true + path-exists@4.0.0: {} - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - dev: true + path-is-absolute@1.0.1: {} - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true + path-key@3.1.1: {} - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - dev: true + path-key@4.0.0: {} - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true + path-parse@1.0.7: {} - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true + path-type@4.0.0: {} - /pathe@0.2.0: - resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} - dev: true + pathe@0.2.0: {} - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.0: {} - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + picomatch@2.3.1: {} - /pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - dev: true + pidtree@0.6.0: {} - /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} + pify@4.0.1: optional: true - /postcss-resolve-nested-selector@0.1.1: - resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} - dev: true + postcss-resolve-nested-selector@0.1.1: {} - /postcss-safe-parser@6.0.0(postcss@8.4.29): - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.3.3 + postcss-safe-parser@6.0.0(postcss@8.4.29): dependencies: postcss: 8.4.29 - dev: true - /postcss-selector-parser@6.0.13: - resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} - engines: {node: '>=4'} + postcss-selector-parser@6.0.13: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - dev: true - /postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: true + postcss-value-parser@4.2.0: {} - /postcss@8.4.29: - resolution: {integrity: sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==} - engines: {node: ^10 || ^12 || >=14} + postcss@8.4.29: dependencies: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - dev: true + postcss@8.4.38: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.2.0 - /prettier@2.7.1: - resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} - engines: {node: '>=10.13.0'} - hasBin: true - dev: true + prelude-ls@1.2.1: {} - /prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + prettier@2.7.1: {} + + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - /proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - dev: false + proxy-from-env@1.1.0: {} - /prr@1.0.1: - resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + prr@1.0.1: optional: true - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} - dev: true + punycode@2.3.0: {} - /q@1.5.1: - resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} - engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + q@1.5.1: {} - /qrcode.react@3.1.0(react@18.2.0): - resolution: {integrity: sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + qrcode.react@3.1.0(react@18.2.0): dependencies: react: 18.2.0 - dev: false - /qs@6.11.2: - resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} - engines: {node: '>=0.6'} + qs@6.11.2: dependencies: side-channel: 1.0.4 - dev: false - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true + queue-microtask@1.2.3: {} - /queue@7.0.0: - resolution: {integrity: sha512-sphwS7HdfQnvrJAXUNAUgpf9H/546IE3p/5Lf2jr71O4udEYlqAhkevykumas2FYuMkX/29JMOgrRdRoYZ/X9w==} - dev: false + queue@7.0.0: {} - /quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - dev: true + quick-lru@4.0.1: {} - /quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - dev: true + quick-lru@5.1.1: {} - /rc-align@4.0.15(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-wqJtVH60pka/nOX7/IspElA8gjPNQKIx/ZqJ6heATCkXpe1Zg4cPVrMD2vC96wjsFFL8WsmhPbx9tdMo1qqlIA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-align@4.0.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 dom-align: 1.12.4 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) resize-observer-polyfill: 1.5.1 - dev: false - /rc-cascader@3.14.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-fCsgjLIQqYZMhFj9UT+x2ZW4uobx7OP5yivcn6Xto5fuxHaldphsryzCeUVmreQOHEo0RP+032Ip9RDzrKVKJA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-cascader@3.14.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 array-tree-filter: 2.1.0 classnames: 2.3.2 - rc-select: 14.7.4(react-dom@18.2.0)(react@18.2.0) - rc-tree: 5.7.10(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-select: 14.7.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-tree: 5.7.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-checkbox@3.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-checkbox@3.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-collapse@3.7.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-N/7ejyiTf3XElNJBBpxqnZBUuMsQWEOPjB2QkfNvZ/Ca54eAvJXuOD1EGbCWCk2m7v/MSxku7mRpdeaLOCd4Gg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-collapse@3.7.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-dialog@9.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-5ry+JABAWEbaKyYsmITtrJbZbJys8CtMyzV8Xn4LYuXMeUx5XVHNyJRoqLFE4AzBuXXzOWeaC49cg+XkxK6kHA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-dialog@9.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 - '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) + '@rc-component/portal': 1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-drawer@6.2.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-spPkZ3WvP0U0vy5dyzSwlUJ/+vLFtjP/cTwSwejhQRoDBaexSZHsBhELoCZcEggI7LQ7typmtG30lAue2HEhvA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-drawer@6.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 - '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) + '@rc-component/portal': 1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==} - peerDependencies: - react: '>=16.11.0' - react-dom: '>=16.11.0' + rc-dropdown@4.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 - '@rc-component/trigger': 1.15.6(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': 1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-field-form@1.36.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-tCF/JjUsnxW80Gk4E4ZH74ONsaQMxVTRtui6XhQB8DJc4FHWLLa5pP8zwhxtPKC5NaO0QZ0Cv79JggDubn6n2g==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-field-form@1.36.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 async-validator: 4.2.5 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-image@7.1.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-foMl1rcit1F0+vgxE5kf0c8TygQcHhILsOohQUL+JMUbzOo3OBFRcehJudYbqbCTArzCecS8nA1irUU9vvgQbg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-image@7.1.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 - '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) + '@rc-component/portal': 1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.3.2 - rc-dialog: 9.1.0(react-dom@18.2.0)(react@18.2.0) - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-dialog: 9.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-input-number@8.0.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-TP+G5b7mZtbwXJ/YEZXF/OgbEZ6iqD4+RSuxZJ8VGKGXDcdt0FKIvpFoNQr/knspdFC4OxA0OfsWfFWfN4XSyA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-input-number@8.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 '@rc-component/mini-decimal': 1.1.0 classnames: 2.3.2 - rc-input: 1.1.1(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-input: 1.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-input@1.1.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-NTR1Z4em681L8/ewb2KR80RykSmN8I2mzqzJDCoUmTrV1BB9Hk5d7ha4TnfgdEPPL148N+603sW2LExSXk1IbA==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' + rc-input@1.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-mentions@2.5.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-rERXsbUTNVrb5T/iDC0ki/SRGWJnOVraDy6O25Us3FSpuUZ3uq2TPZB4fRk0Hss5kyiEPzz2sprhkI4b+F4jUw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-mentions@2.5.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 - '@rc-component/trigger': 1.15.6(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': 1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.3.2 - rc-input: 1.1.1(react-dom@18.2.0)(react@18.2.0) - rc-menu: 9.10.0(react-dom@18.2.0)(react@18.2.0) - rc-textarea: 1.3.4(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-input: 1.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-menu: 9.10.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-textarea: 1.3.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-menu@9.10.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-g27kpXaAoJh/fkPZF65/d4V+w4DhDeqomBdPcGnkFAcJnEM4o21TnVccrBUoDedLKzC7wJRw1Q7VTqEsfEufmw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-menu@9.10.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 - '@rc-component/trigger': 1.15.6(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': 1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-overflow: 1.3.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + rc-motion@2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-notification@5.1.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-BPnded/WmWFE57ubqhVCgRSuedfQQNeSOYqdwppyr2B/Wt909gYFKyWAkFJVXuppAjsOGop05a93UaxjmUFdkg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-notification@5.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-overflow@1.3.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: 1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-pagination@3.6.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-R/sUnKKXx1Nm4kZfUKS3YKa7yEPF1ZkVB/AynQaHt+nMER7h9wPTfliDJFdYo+RM/nk2JD4Yc5QpUq8fIQHeug==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-pagination@3.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-picker@3.13.2(dayjs@1.11.9)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-jvmmwo9d2/rUJXx8dydmcReAGF7f2wzbR7GDUgZXymbw0cqxNqXen5GGQIsX0x92JJROKyKb+J/E7bn967Ok9A==} - engines: {node: '>=8.x'} - peerDependencies: - date-fns: '>= 2.x' - dayjs: '>= 1.x' - luxon: '>= 3.x' - moment: '>= 2.x' - react: '>=16.9.0' - react-dom: '>=16.9.0' - peerDependenciesMeta: - date-fns: - optional: true - dayjs: - optional: true - luxon: - optional: true - moment: - optional: true + rc-picker@3.13.2(dayjs@1.11.9)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 - '@rc-component/trigger': 1.15.6(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': 1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.3.2 - dayjs: 1.11.9 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false + optionalDependencies: + dayjs: 1.11.9 - /rc-progress@3.4.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-iAGhwWU+tsayP+Jkl9T4+6rHeQTG9kDz8JAHZk4XtQOcYN5fj9H34NXNEdRdZx94VUDHMqCb1yOIvi8eJRh67w==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-progress@3.4.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-rate@2.12.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-rate@2.12.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-resize-observer@1.3.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-iFUdt3NNhflbY3mwySv5CA1TC06zdJ+pfo0oc27xpf4PIOvfZwZGtD9Kz41wGYqC4SLio93RVAirSSpYlV/uYg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-resize-observer@1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) resize-observer-polyfill: 1.5.1 - dev: false - /rc-segmented@2.2.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Mq52M96QdHMsNdE/042ibT5vkcGcD5jxKp7HgPC2SRofpia99P5fkfHy1pEaajLMF/kj0+2Lkq1UZRvqzo9mSA==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' + rc-segmented@2.2.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-select@14.7.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-qRUpvMVXFy6rdHe+qzHXAqyQAfhErC/oY8dcRtoRjoz0lz2Nx3J+lLL5AnEbjnwlS+/kQTJUZ/65WyCwWwcLwQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '*' - react-dom: '*' + rc-select@14.7.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 - '@rc-component/trigger': 1.15.6(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': 1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) - rc-virtual-list: 3.10.6(react-dom@18.2.0)(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-overflow: 1.3.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-virtual-list: 3.10.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-slider@10.2.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-l355C/65iV4UFp7mXq5xBTNX2/tF2g74VWiTVlTpNp+6vjE/xaHHNiQq5Af+Uu28uUiqCuH/QXs5HfADL9KJ/A==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-slider@10.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-steps@6.0.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-steps@6.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-switch@4.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-switch@4.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-table@7.32.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-MqjrI/ibuGg7NEyFsux0dM5GK+3er1gTiZofAkifr2bHf/Sa1nUqXXFmSrYXSOjwpx0xyBnJ3GrHFCIqC/eOzw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-table@7.32.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 - '@rc-component/context': 1.4.0(react-dom@18.2.0)(react@18.2.0) + '@rc-component/context': 1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.3.2 - rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: 1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-tabs@12.9.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-2HnVowgMVrq0DfQtyu4mCd9E6pXlWNdM6VaDvOOHMsLYqPmpY+7zBqUC6YrrQ9xYXHciTS0e7TtjOHIvpVCHLQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-tabs@12.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-dropdown: 4.1.0(react-dom@18.2.0)(react@18.2.0) - rc-menu: 9.10.0(react-dom@18.2.0)(react@18.2.0) - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-dropdown: 4.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-menu: 9.10.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-resize-observer: 1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-textarea@1.3.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-wn0YjTpvcVolcfXa0HtzL+jgV2QcwtfB29RwNAKj8hMgZOju1V24M3TfEDjABeQEAQbUGbjMbISREOX/YSVKhg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-textarea@1.3.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-input: 1.1.1(react-dom@18.2.0)(react@18.2.0) - rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-input: 1.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-resize-observer: 1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-tooltip@6.0.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-MdvPlsD1fDSxKp9+HjXrc/CxLmA/s11QYIh1R7aExxfodKP7CZA++DG1AjrW80F8IUdHYcR43HAm0Y2BYPelHA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-tooltip@6.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 - '@rc-component/trigger': 1.15.6(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': 1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.3.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-tree-select@5.11.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-ujRFO3pcjSg8R4ndXX2oiNcCu+RgO9ZPcd23CZy18Khm+nRsfWWS3Su7qB0iuoJgzAJ5LK7b6Dio0t7IQDGs9g==} - peerDependencies: - react: '*' - react-dom: '*' + rc-tree-select@5.11.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-select: 14.7.4(react-dom@18.2.0)(react@18.2.0) - rc-tree: 5.7.10(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-select: 14.7.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-tree: 5.7.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-tree@5.7.10(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-n4UkMQY3bzvJUNnbw6e3YI7sy2kE9c9vAYbSt94qAhcPKtMOThONNr1LIaFB/M5XeFYYrWVbvRVoT8k38eFuSQ==} - engines: {node: '>=10.x'} - peerDependencies: - react: '*' - react-dom: '*' + rc-tree@5.7.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) - rc-virtual-list: 3.10.6(react-dom@18.2.0)(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-virtual-list: 3.10.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-upload@4.3.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-uVbtHFGNjHG/RyAfm9fluXB6pvArAGyAx8z7XzXXyorEgVIWj6mOlriuDm0XowDHYz4ycNK0nE0oP3cbFnzxiQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-upload@4.3.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /rc-util@5.37.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-cPMV8DzaHI1KDaS7XPRXAf4J7mtBqjvjikLpQieaeOO7+cEbqY2j7Kso/T0R0OiEZTNcLS/8Zl9YrlXiO9UbjQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + rc-util@5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-is: 16.13.1 - dev: false - /rc-virtual-list@3.10.6(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-GZNrR78idlrRCfejtbSzftO+rkYF13kcule6tVB2V++S3CoghMko4BUR5bv6aJWNCX7rMb3B2SsWRSj6tn1IdQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '*' - react-dom: '*' + rc-virtual-list@3.10.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 classnames: 2.3.2 - rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: 1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /react-dom@18.2.0(react@18.2.0): - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 + react-dom@18.2.0(react@18.2.0): dependencies: loose-envify: 1.4.0 react: 18.2.0 scheduler: 0.23.0 - dev: false - /react-i18next@13.2.0(i18next@23.4.6)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-YD8xMc+I0jkHHLotd8ERMzZ53hMaCBVLCndbcbBveJn3FbppRP4jyYOAkmR8XItN01sTD9ilAjoEjpH1i42IgA==} - peerDependencies: - i18next: '>= 23.2.3' - react: '>= 16.8.0' - react-dom: '*' - react-native: '*' - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true + react-i18next@13.2.0(i18next@23.4.6)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 html-parse-stringify: 3.0.1 i18next: 23.4.6 react: 18.2.0 + optionalDependencies: react-dom: 18.2.0(react@18.2.0) - dev: false - /react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + react-is@16.13.1: {} - /react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - dev: false + react-is@17.0.2: {} - /react-redux@7.2.8(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-6+uDjhs3PSIclqoCk0kd6iX74gzrGc3W5zcAjbrFgEdIjRSQObdIwfx80unTkVUYvbQ95Y8Av3OvFHq1w5EOUw==} - peerDependencies: - react: ^16.8.3 || ^17 || ^18 - react-dom: '*' - react-native: '*' - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true + react-query@3.39.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + '@babel/runtime': 7.22.15 + broadcast-channel: 3.7.0 + match-sorter: 6.3.4 + react: 18.2.0 + optionalDependencies: + react-dom: 18.2.0(react@18.2.0) + + react-redux@7.2.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 '@types/react-redux': 7.1.25 @@ -4662,143 +6255,113 @@ packages: loose-envify: 1.4.0 prop-types: 15.8.1 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) react-is: 17.0.2 - dev: false + optionalDependencies: + react-dom: 18.2.0(react@18.2.0) - /react-refresh@0.14.0: - resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} - engines: {node: '>=0.10.0'} - dev: false + react-refresh@0.14.0: {} - /react-router-dom@6.15.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-aR42t0fs7brintwBGAv2+mGlCtgtFQeOzK0BM1/OiqEzRejOZtpMZepvgkscpMUnKb8YO84G7s3LsHnnDNonbQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' + react-router-dom@6.15.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@remix-run/router': 1.8.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-router: 6.15.0(react@18.2.0) - dev: false - /react-router@6.15.0(react@18.2.0): - resolution: {integrity: sha512-NIytlzvzLwJkCQj2HLefmeakxxWHWAP+02EGqWEZy+DgfHHKQMUoBBjUQLOtFInBMhWtb3hiUy6MfFgwLjXhqg==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' + react-router@6.15.0(react@18.2.0): dependencies: '@remix-run/router': 1.8.0 react: 18.2.0 - dev: false - /react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} + react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2): + dependencies: + react: 18.2.0 + tslib: 2.6.2 + + react-use@17.5.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + '@types/js-cookie': 2.2.7 + '@xobotyi/scrollbar-width': 1.9.5 + copy-to-clipboard: 3.3.3 + fast-deep-equal: 3.1.3 + fast-shallow-equal: 1.0.0 + js-cookie: 2.2.1 + nano-css: 5.6.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-universal-interface: 0.6.2(react@18.2.0)(tslib@2.6.2) + resize-observer-polyfill: 1.5.1 + screenfull: 5.2.0 + set-harmonic-interval: 1.0.1 + throttle-debounce: 3.0.1 + ts-easing: 0.2.0 + tslib: 2.6.2 + + react@18.2.0: dependencies: loose-envify: 1.4.0 - dev: false - /read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} + read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 - dev: true - /read-pkg-up@8.0.0: - resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} - engines: {node: '>=12'} + read-pkg-up@8.0.0: dependencies: find-up: 5.0.0 read-pkg: 6.0.0 type-fest: 1.4.0 - dev: true - /read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} + read-pkg@5.2.0: dependencies: '@types/normalize-package-data': 2.4.1 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 - dev: true - /read-pkg@6.0.0: - resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} - engines: {node: '>=12'} + read-pkg@6.0.0: dependencies: '@types/normalize-package-data': 2.4.1 normalize-package-data: 3.0.3 parse-json: 5.2.0 type-fest: 1.4.0 - dev: true - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - dev: true - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + readdirp@3.6.0: dependencies: picomatch: 2.3.1 - /redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} + redent@3.0.0: dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 - dev: true - /redent@4.0.0: - resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} - engines: {node: '>=12'} + redent@4.0.0: dependencies: indent-string: 5.0.0 strip-indent: 4.0.0 - dev: true - /redux-persist@6.0.0(react@18.2.0)(redux@4.2.1): - resolution: {integrity: sha512-71LLMbUq2r02ng2We9S215LtPu3fY0KgaGE0k8WRgl6RkqxtGfl7HUozz1Dftwsb0D/5mZ8dwAaPbtnzfvbEwQ==} - peerDependencies: - react: '>=16' - redux: '>4.0.0' - peerDependenciesMeta: - react: - optional: true + redux-persist@6.0.0(react@18.2.0)(redux@4.2.1): dependencies: - react: 18.2.0 redux: 4.2.1 - dev: false + optionalDependencies: + react: 18.2.0 - /redux-thunk@2.4.2(redux@4.2.1): - resolution: {integrity: sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==} - peerDependencies: - redux: ^4 + redux-thunk@2.4.2(redux@4.2.1): dependencies: redux: 4.2.1 - dev: false - /redux@4.2.1: - resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==} + redux@4.2.1: dependencies: '@babel/runtime': 7.22.15 - /reflect.getprototypeof@1.0.4: - resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} - engines: {node: '>= 0.4'} + reflect.getprototypeof@1.0.4: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -4806,324 +6369,227 @@ packages: get-intrinsic: 1.2.1 globalthis: 1.0.3 which-builtin-type: 1.1.3 - dev: true - /regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + regenerator-runtime@0.14.0: {} - /regexp.prototype.flags@1.5.0: - resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} - engines: {node: '>= 0.4'} + regexp.prototype.flags@1.5.0: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 functions-have-names: 1.2.3 - dev: true - /relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} - engines: {node: '>= 0.10'} - dev: true + relateurl@0.2.7: {} - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: true + remove-accents@0.5.0: {} - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: true + require-directory@2.1.1: {} - /reselect@4.1.8: - resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==} - dev: false + require-from-string@2.0.2: {} - /resize-observer-polyfill@1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - dev: false + reselect@4.1.8: {} - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - dev: true + resize-observer-polyfill@1.5.1: {} - /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true + resolve-from@4.0.0: {} - /resolve-global@1.0.0: - resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} - engines: {node: '>=8'} + resolve-from@5.0.0: {} + + resolve-global@1.0.0: dependencies: global-dirs: 0.1.1 - dev: true - /resolve@1.22.4: - resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} - hasBin: true + resolve@1.22.4: dependencies: is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true - /resolve@2.0.0-next.4: - resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} - hasBin: true + resolve@2.0.0-next.4: dependencies: is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} + restore-cursor@3.1.0: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - dev: true - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true + reusify@1.0.4: {} - /rfdc@1.3.0: - resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} - dev: true + rfdc@1.3.0: {} - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true + rimraf@3.0.2: dependencies: glob: 7.2.3 - dev: true - /rollup@3.29.1: - resolution: {integrity: sha512-c+ebvQz0VIH4KhhCpDsI+Bik0eT8ZFEVZEYw0cGMVqIP8zc+gnwl7iXCamTw7vzv2MeuZFZfdx5JJIq+ehzDlg==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true + rollup@3.29.1: optionalDependencies: fsevents: 2.3.3 - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + rtl-css-js@1.16.1: + dependencies: + '@babel/runtime': 7.22.15 + + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - dev: true - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + rxjs@7.8.1: dependencies: tslib: 2.6.2 - dev: true - /safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} - engines: {node: '>=0.4'} + safe-array-concat@1.0.1: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 has-symbols: 1.0.3 isarray: 2.0.5 - dev: true - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true + safe-buffer@5.2.1: {} - /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + safe-regex-test@1.0.0: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 is-regex: 1.1.4 - dev: true - /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + safer-buffer@2.1.2: optional: true - /sass@1.65.1: - resolution: {integrity: sha512-9DINwtHmA41SEd36eVPQ9BJKpn7eKDQmUHmpI0y5Zv2Rcorrh0zS+cFrt050hdNbmmCNKTW3hV5mWfuegNRsEA==} - engines: {node: '>=14.0.0'} - hasBin: true + sass@1.65.1: dependencies: chokidar: 3.5.3 immutable: 4.3.4 source-map-js: 1.0.2 - /sax@1.2.4: - resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + sax@1.2.4: optional: true - /scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + scheduler@0.23.0: dependencies: loose-envify: 1.4.0 - dev: false - /screenfull@6.0.2: - resolution: {integrity: sha512-AQdy8s4WhNvUZ6P8F6PB21tSPIYKniic+Ogx0AacBMjKP1GUHN2E9URxQHtCusiwxudnCKkdy4GrHXPPJSkCCw==} - engines: {node: ^14.13.1 || >=16.0.0} - dev: false + screenfull@5.2.0: {} + + screenfull@6.0.2: {} - /scroll-into-view-if-needed@3.0.10: - resolution: {integrity: sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg==} + scroll-into-view-if-needed@3.0.10: dependencies: compute-scroll-into-view: 3.0.3 - dev: false - /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true + semver@5.7.2: {} - /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true + semver@6.3.1: {} - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true + semver@7.5.4: dependencies: lru-cache: 6.0.0 - dev: true - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + set-harmonic-interval@1.0.1: {} + + shallowequal@1.1.0: {} + + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - dev: true - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true + shebang-regex@3.0.0: {} - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + side-channel@1.0.4: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 object-inspect: 1.12.3 - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true + signal-exit@3.0.7: {} - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - dev: true + signal-exit@4.1.0: {} - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: true + slash@3.0.0: {} - /slice-ansi@3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} - engines: {node: '>=8'} + slice-ansi@3.0.0: dependencies: ansi-styles: 4.3.0 astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 - dev: true - /slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} + slice-ansi@4.0.0: dependencies: ansi-styles: 4.3.0 astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 - dev: true - /slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} + slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 is-fullwidth-code-point: 4.0.0 - dev: true - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} + source-map-js@1.0.2: {} - /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + source-map-js@1.2.0: {} + + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - dev: true - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} + source-map@0.5.6: {} - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + source-map@0.6.1: {} + + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.13 - dev: true - /spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: true + spdx-exceptions@2.3.0: {} - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.13 - dev: true - /spdx-license-ids@3.0.13: - resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} - dev: true + spdx-license-ids@3.0.13: {} - /split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + split2@3.2.2: dependencies: readable-stream: 3.6.2 - dev: true - /string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - dev: true + stack-generator@2.0.10: + dependencies: + stackframe: 1.3.4 - /string-convert@0.2.1: - resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} - dev: false + stackframe@1.3.4: {} - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + stacktrace-gps@3.1.2: + dependencies: + source-map: 0.5.6 + stackframe: 1.3.4 + + stacktrace-js@2.0.2: + dependencies: + error-stack-parser: 2.1.4 + stack-generator: 2.0.10 + stacktrace-gps: 3.1.2 + + string-argv@0.3.2: {} + + string-convert@0.2.1: {} + + string-width@4.2.3: dependencies: 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==} - engines: {node: '>=12'} + string-width@5.1.2: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - dev: true - /string.prototype.matchall@4.0.9: - resolution: {integrity: sha512-6i5hL3MqG/K2G43mWXWgP+qizFW/QH/7kCNN13JrJS5q48FN5IKksLDscexKP3dnmB6cdm9jlNgAsWNLpSykmA==} + string.prototype.matchall@4.0.9: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -5133,113 +6599,81 @@ packages: internal-slot: 1.0.5 regexp.prototype.flags: 1.5.0 side-channel: 1.0.4 - dev: true - /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} - engines: {node: '>= 0.4'} + string.prototype.trim@1.2.8: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 - dev: true - /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + string.prototype.trimend@1.0.7: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 - dev: true - /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + string.prototype.trimstart@1.0.7: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 - dev: true - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 - dev: true - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - dev: true - /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + strip-ansi@7.1.0: dependencies: ansi-regex: 6.0.1 - dev: true - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true + strip-final-newline@2.0.0: {} - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - dev: true + strip-final-newline@3.0.0: {} - /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 - dev: true - /strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} - engines: {node: '>=12'} + strip-indent@4.0.0: dependencies: min-indent: 1.0.1 - dev: true - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: true + strip-json-comments@3.1.1: {} - /style-search@0.1.0: - resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} - dev: true + style-search@0.1.0: {} - /stylelint-config-recommended@13.0.0(stylelint@15.10.3): - resolution: {integrity: sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==} - engines: {node: ^14.13.1 || >=16.0.0} - peerDependencies: - stylelint: ^15.10.0 + styled-components@6.1.12(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + '@emotion/is-prop-valid': 1.2.2 + '@emotion/unitless': 0.8.1 + '@types/stylis': 4.2.5 + css-to-react-native: 3.2.0 + csstype: 3.1.3 + postcss: 8.4.38 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + shallowequal: 1.1.0 + stylis: 4.3.2 + tslib: 2.6.2 + + stylelint-config-recommended@13.0.0(stylelint@15.10.3(typescript@5.1.6)): dependencies: stylelint: 15.10.3(typescript@5.1.6) - dev: true - /stylelint-config-standard@34.0.0(stylelint@15.10.3): - resolution: {integrity: sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ==} - engines: {node: ^14.13.1 || >=16.0.0} - peerDependencies: - stylelint: ^15.10.0 + stylelint-config-standard@34.0.0(stylelint@15.10.3(typescript@5.1.6)): dependencies: stylelint: 15.10.3(typescript@5.1.6) - stylelint-config-recommended: 13.0.0(stylelint@15.10.3) - dev: true + stylelint-config-recommended: 13.0.0(stylelint@15.10.3(typescript@5.1.6)) - /stylelint@15.10.3(typescript@5.1.6): - resolution: {integrity: sha512-aBQMMxYvFzJJwkmg+BUUg3YfPyeuCuKo2f+LOw7yYbU8AZMblibwzp9OV4srHVeQldxvSFdz0/Xu8blq2AesiA==} - engines: {node: ^14.13.1 || >=16.0.0} - hasBin: true + stylelint@15.10.3(typescript@5.1.6): dependencies: '@csstools/css-parser-algorithms': 2.3.1(@csstools/css-tokenizer@2.2.0) '@csstools/css-tokenizer': 2.2.0 - '@csstools/media-query-list-parser': 2.1.4(@csstools/css-parser-algorithms@2.3.1)(@csstools/css-tokenizer@2.2.0) + '@csstools/media-query-list-parser': 2.1.4(@csstools/css-parser-algorithms@2.3.1(@csstools/css-tokenizer@2.2.0))(@csstools/css-tokenizer@2.2.0) '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) balanced-match: 2.0.0 colord: 2.9.3 @@ -5280,146 +6714,85 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: true - /stylis@4.3.0: - resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==} - dev: false + stylis@4.3.0: {} - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + stylis@4.3.2: {} + + supports-color@5.5.0: dependencies: has-flag: 3.0.0 - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 - dev: true - /supports-hyperlinks@3.0.0: - resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} - engines: {node: '>=14.18'} + supports-hyperlinks@3.0.0: dependencies: has-flag: 4.0.0 supports-color: 7.2.0 - dev: true - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true + supports-preserve-symlinks-flag@1.0.0: {} - /svg-tags@1.0.0: - resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} - dev: true + svg-tags@1.0.0: {} - /table@6.8.1: - resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} - engines: {node: '>=10.0.0'} + table@6.8.1: dependencies: ajv: 8.12.0 lodash.truncate: 4.4.2 slice-ansi: 4.0.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /terser@5.19.4: - resolution: {integrity: sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==} - engines: {node: '>=10'} - hasBin: true + terser@5.19.4: dependencies: '@jridgewell/source-map': 0.3.5 acorn: 8.10.0 commander: 2.20.3 source-map-support: 0.5.21 - dev: true - /text-extensions@1.9.0: - resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} - engines: {node: '>=0.10'} - dev: true + text-extensions@1.9.0: {} - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true + text-table@0.2.0: {} - /three@0.157.0: - resolution: {integrity: sha512-CeAwQrf4x3z0/e+MC4F+nXLW5t0gh3pw+L6CCBqpHvOq3bGYIgRYub7Pv0j/9wR+d++OiEglyZzWyuSYbwWGOA==} - dev: false + three@0.157.0: {} - /throttle-debounce@5.0.0: - resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==} - engines: {node: '>=12.22'} - dev: false + throttle-debounce@3.0.1: {} - /through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + throttle-debounce@5.0.0: {} + + through2@4.0.2: dependencies: readable-stream: 3.6.2 - dev: true - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true + through@2.3.8: {} - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - dev: false + to-fast-properties@2.0.0: {} - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - /toggle-selection@1.0.6: - resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - dev: false + toggle-selection@1.0.6: {} - /trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - dev: true + trim-newlines@3.0.1: {} - /trim-newlines@4.1.1: - resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} - engines: {node: '>=12'} - dev: true + trim-newlines@4.1.1: {} - /ts-api-utils@1.0.3(typescript@5.1.6): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} - peerDependencies: - typescript: '>=4.2.0' + ts-api-utils@1.0.3(typescript@5.1.6): dependencies: typescript: 5.1.6 - dev: true - /ts-node@10.9.1(@types/node@20.4.6)(typescript@5.1.6): - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true + ts-easing@0.2.0: {} + + ts-node@10.9.1(@types/node@20.4.7)(typescript@5.1.6): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.4.6 + '@types/node': 20.4.7 acorn: 8.10.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -5429,155 +6802,97 @@ packages: typescript: 5.1.6 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - dev: true - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.6.2: {} - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - dev: true - /type-fest@0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} - dev: true + type-fest@0.18.1: {} - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true + type-fest@0.20.2: {} - /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - dev: true + type-fest@0.21.3: {} - /type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - dev: true + type-fest@0.6.0: {} - /type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - dev: true + type-fest@0.8.1: {} - /type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - dev: true + type-fest@1.4.0: {} - /typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} + typed-array-buffer@1.0.0: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 is-typed-array: 1.1.12 - dev: true - /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.0: dependencies: call-bind: 1.0.2 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 - dev: true - /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.0: dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.2 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 - dev: true - /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + typed-array-length@1.0.4: dependencies: call-bind: 1.0.2 for-each: 0.3.3 is-typed-array: 1.1.12 - dev: true - /typescript@5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} - engines: {node: '>=14.17'} - hasBin: true - dev: true + typescript@5.1.6: {} - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbox-primitive@1.0.2: dependencies: call-bind: 1.0.2 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - dev: true - /universalify@2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} - engines: {node: '>= 10.0.0'} - dev: true + universalify@2.0.0: {} - /update-browserslist-db@1.0.11(browserslist@4.21.10): - resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + unload@2.2.0: + dependencies: + '@babel/runtime': 7.22.15 + detect-node: 2.1.0 + + update-browserslist-db@1.0.11(browserslist@4.21.10): dependencies: browserslist: 4.21.10 escalade: 3.1.1 picocolors: 1.0.0 - dev: false - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + uri-js@4.4.1: dependencies: punycode: 2.3.0 - dev: true - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true + util-deprecate@1.0.2: {} - /v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - dev: true + v8-compile-cache-lib@3.0.1: {} - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - dev: true - /vite-plugin-compression@0.5.1(vite@4.4.5): - resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} - peerDependencies: - vite: '>=2.0.0' + vite-plugin-compression@0.5.1(vite@4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1)(terser@5.19.4)): dependencies: chalk: 4.1.2 debug: 4.3.4 fs-extra: 10.1.0 - vite: 4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1) + vite: 4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1)(terser@5.19.4) transitivePeerDependencies: - supports-color - dev: true - /vite-plugin-html@3.2.0(vite@4.4.5): - resolution: {integrity: sha512-2VLCeDiHmV/BqqNn5h2V+4280KRgQzCFN47cst3WiNK848klESPQnzuC3okH5XHtgwHH/6s1Ho/YV6yIO0pgoQ==} - peerDependencies: - vite: '>=2.0.0' + vite-plugin-html@3.2.0(vite@4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1)(terser@5.19.4)): dependencies: '@rollup/pluginutils': 4.2.1 colorette: 2.0.20 @@ -5591,64 +6906,31 @@ packages: html-minifier-terser: 6.1.0 node-html-parser: 5.4.2 pathe: 0.2.0 - vite: 4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1) - dev: true + vite: 4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1)(terser@5.19.4) - /vite@4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1): - resolution: {integrity: sha512-4m5kEtAWHYr0O1Fu7rZp64CfO1PsRGZlD3TAB32UmQlpd7qg15VF7ROqGN5CyqN7HFuwr7ICNM2+fDWRqFEKaA==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true + vite@4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1)(terser@5.19.4): dependencies: - '@types/node': 20.4.6 esbuild: 0.18.20 - less: 4.2.0 postcss: 8.4.29 rollup: 3.29.1 - sass: 1.65.1 optionalDependencies: + '@types/node': 20.4.6 fsevents: 2.3.3 + less: 4.2.0 + sass: 1.65.1 + terser: 5.19.4 - /void-elements@3.1.0: - resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} - engines: {node: '>=0.10.0'} - dev: false + void-elements@3.1.0: {} - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.0.2: dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 - dev: true - /which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} - engines: {node: '>= 0.4'} + which-builtin-type@1.1.3: dependencies: function.prototype.name: 1.1.6 has-tostringtag: 1.0.0 @@ -5662,104 +6944,62 @@ packages: which-boxed-primitive: 1.0.2 which-collection: 1.0.1 which-typed-array: 1.1.11 - dev: true - /which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + which-collection@1.0.1: dependencies: is-map: 2.0.2 is-set: 2.0.2 is-weakmap: 2.0.1 is-weakset: 2.0.2 - dev: true - /which-typed-array@1.1.11: - resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} - engines: {node: '>= 0.4'} + which-typed-array@1.1.11: dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.2 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - dev: true - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true + which@1.3.1: dependencies: isexe: 2.0.0 - dev: true - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + which@2.0.2: dependencies: isexe: 2.0.0 - dev: true - /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true + wrappy@1.0.2: {} - /write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + write-file-atomic@5.0.1: dependencies: imurmurhash: 0.1.4 signal-exit: 4.1.0 - dev: true - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true + y18n@5.0.8: {} - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - dev: false + yallist@3.1.1: {} - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true + yallist@4.0.0: {} - /yaml@2.3.2: - resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} - engines: {node: '>= 14'} - dev: true + yaml@2.3.2: {} - /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true + yargs-parser@20.2.9: {} - /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - dev: true + yargs-parser@21.1.1: {} - /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + yargs@17.7.2: dependencies: cliui: 8.0.1 escalade: 3.1.1 @@ -5768,14 +7008,7 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true - /yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - dev: true + yn@3.1.1: {} - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: true + yocto-queue@0.1.0: {} diff --git a/src/App.tsx b/src/App.tsx index cb74043..5fcf709 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -4,7 +4,15 @@ import AppProvider from './components/AppProvider' import useLanguage from './hooks/language.hooks' import { BrowserRouter } from 'react-router-dom' import Router from '@/router' +import { + useQuery, + useMutation, + useQueryClient, + QueryClient, + QueryClientProvider +} from 'react-query' +const queryClient = new QueryClient() function App() { const { themeAlgorithm, componentSize, primary } = useTheme() const { locale } = useLanguage() diff --git a/src/api/system.ts b/src/api/system.ts new file mode 100644 index 0000000..3b4d833 --- /dev/null +++ b/src/api/system.ts @@ -0,0 +1,5 @@ +import http from '@/utils/http' + +export const getAllMenus = () => { + return http.get('/menu/all', {}) +} diff --git a/src/components/AppProvider/index.tsx b/src/components/AppProvider/index.tsx index b0be7fb..dee05d8 100644 --- a/src/components/AppProvider/index.tsx +++ b/src/components/AppProvider/index.tsx @@ -1,4 +1,8 @@ import { message, Modal, notification } from 'antd' +import { QueryClient, QueryClientProvider } from 'react-query' + +const queryClient = new QueryClient() + const AppProvider = (props: { children: JSX.Element }) => { const [messageApi, messageContextHolder] = message.useMessage() const [modalApi, modalContextHolder] = Modal.useModal() @@ -8,12 +12,12 @@ const AppProvider = (props: { children: JSX.Element }) => { window['$modal'] = modalApi window['$notification'] = notificationApi return ( - <> + {messageContextHolder} {modalContextHolder} {notificationContextHolder} {props.children} - + ) } diff --git a/src/components/Iconfont/icons.ts b/src/components/Iconfont/icons.ts new file mode 100644 index 0000000..22478a6 --- /dev/null +++ b/src/components/Iconfont/icons.ts @@ -0,0 +1,52 @@ +export const IconsData: string[] = [ + 'icon-Dollar', + 'icon-compass', + 'icon-EURO', + 'icon-time-circle', + 'icon-earth', + 'icon-YUAN', + 'icon-message', + 'icon-dashboard', + 'icon-piechart', + 'icon-setting', + 'icon-eye', + 'icon-save', + 'icon-appstore', + 'icon-control', + 'icon-detail', + 'icon-project', + 'icon-wallet', + 'icon-user', + 'icon-team', + 'icon-areachart', + 'icon-linechart', + 'icon-barchart', + 'icon-pointmap', + 'icon-database', + 'icon-reconciliation', + 'icon-securityscan', + 'icon-propertysafety', + 'icon-safetycertificate', + 'icon-alert', + 'icon-bulb', + 'icon-trophy', + 'icon-USB', + 'icon-home', + 'icon-like', + 'icon-unlock', + 'icon-lock', + 'icon-customerservice', + 'icon-flag', + 'icon-moneycollect', + 'icon-medicinebox', + 'icon-shop', + 'icon-rocket', + 'icon-shopping', + 'icon-folder', + 'icon-folder-open', + 'icon-sliders', + 'icon-cloud', + 'icon-crown', + 'icon-desktop', + 'icon-gift' +] diff --git a/src/components/Table/index.tsx b/src/components/Table/index.tsx new file mode 100644 index 0000000..649a09d --- /dev/null +++ b/src/components/Table/index.tsx @@ -0,0 +1,7 @@ +import React from 'react' + +const TableWrapper = () => { + return
TableWrapper
+} + +export default TableWrapper diff --git a/src/layout/components/MainMenu.tsx b/src/layout/components/MainMenu.tsx index 71ce83c..c4537ad 100644 --- a/src/layout/components/MainMenu.tsx +++ b/src/layout/components/MainMenu.tsx @@ -1,16 +1,8 @@ import { useEffect, useState } from 'react' import { Menu, MenuProps } from 'antd' import { useNavigate, useLocation } from 'react-router-dom' -import { - deepLoopFloat, - findAllBreadcrumb, - getOpenKeys, - buildMenuTree -} from '@/utils/system' -import { getMenus } from '@/api/user' -import { setAuthMenus } from '@/store/modules/user/userSlice' +import { deepLoopFloat, getOpenKeys, buildMenuTree } from '@/utils/system' import { useAppDispatch, useAppSelector } from '@/hooks/redux.hooks' -import { setBreadcrumbs } from '@/store/modules/breadcrumb/breadcrumbSlice' import { isLink } from '@/utils/is' type MenuItem = Required['items'][number] diff --git a/src/utils/system.ts b/src/utils/system.ts index 931df69..fd8fbf8 100644 --- a/src/utils/system.ts +++ b/src/utils/system.ts @@ -119,7 +119,7 @@ export const getBreadcrumbList = ( getNodePath(menuList[i]) } } catch (e) { - return tempPath.map((item) => item.title) + return tempPath.map((item) => item.name) } } diff --git a/src/views/system/menus/index.tsx b/src/views/system/menus/index.tsx index 25c52ae..8c9adeb 100644 --- a/src/views/system/menus/index.tsx +++ b/src/views/system/menus/index.tsx @@ -1,3 +1,67 @@ -export default function MenusPage() { - return
菜单管理
+import { getAllMenus } from '@/api/system' +import { buildMenuTree } from '@/utils/system' +import { Tree } from 'antd' +import React, { useMemo } from 'react' +import { useQuery } from 'react-query' +import styled from 'styled-components' + +const MenusPage = () => { + const { data: res, isLoading } = useQuery([], getAllMenus) + const treeMenus = useMemo(() => { + console.log(res) + if (res) { + console.log(2) + return buildMenuTree(res.data!) + } + return [] + }, [res]) + console.log(treeMenus) + + return ( + + +
目录结构
+
+ +
+
+ +
+ ) } + +export default MenusPage + +const MenuPageWrapper = styled.div` + display: flex; + height: 100%; + background-color: var(--bg-color); +` + +const LeftWrapper = styled.div` + width: 300px; + height: 100%; + border: solid 1px #f0f0f0; + & .tree_title { + height: 44px; + line-height: 44px; + box-sizing: border-box; + font-size: 14px; + padding: 0 10px; + border-bottom: 1px solid #f0f0f0; + } + + & .tree_wrapper { + padding: 10px 5px; + } +` +const RightWrapper = styled.div` + height: 100%; + flex: auto; +` diff --git a/src/views/system/menus/index.type.ts b/src/views/system/menus/index.type.ts new file mode 100644 index 0000000..e69de29 From dba82fa4e115fade884dd78583307afe2283f973 Mon Sep 17 00:00:00 2001 From: kirk Date: Thu, 29 Aug 2024 15:16:32 +0800 Subject: [PATCH 16/42] =?UTF-8?q?feat:=20=E8=8F=9C=E5=8D=95=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 9 +- src/components/AppProvider/index.tsx | 8 +- src/types/global.d.ts | 1 - src/utils/system.ts | 2 +- src/views/system/menus/index.tsx | 196 +++++++++++++++++++++++++-- src/views/system/menus/index.type.ts | 5 + 6 files changed, 196 insertions(+), 25 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 5fcf709..347e7fe 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,15 +2,8 @@ import useTheme from '@/hooks/theme.hooks' import { ConfigProvider } from 'antd' import AppProvider from './components/AppProvider' import useLanguage from './hooks/language.hooks' -import { BrowserRouter } from 'react-router-dom' import Router from '@/router' -import { - useQuery, - useMutation, - useQueryClient, - QueryClient, - QueryClientProvider -} from 'react-query' +import { QueryClient } from 'react-query' const queryClient = new QueryClient() function App() { diff --git a/src/components/AppProvider/index.tsx b/src/components/AppProvider/index.tsx index dee05d8..7fa3f79 100644 --- a/src/components/AppProvider/index.tsx +++ b/src/components/AppProvider/index.tsx @@ -1,7 +1,13 @@ import { message, Modal, notification } from 'antd' import { QueryClient, QueryClientProvider } from 'react-query' -const queryClient = new QueryClient() +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + refetchOnWindowFocus: false // default: true + } + } +}) const AppProvider = (props: { children: JSX.Element }) => { const [messageApi, messageContextHolder] = message.useMessage() diff --git a/src/types/global.d.ts b/src/types/global.d.ts index b970043..d2c27f6 100644 --- a/src/types/global.d.ts +++ b/src/types/global.d.ts @@ -21,7 +21,6 @@ declare global { path: string name: string icon?: string - close?: boolean code: string parentId: string id: string diff --git a/src/utils/system.ts b/src/utils/system.ts index fd8fbf8..6f2737c 100644 --- a/src/utils/system.ts +++ b/src/utils/system.ts @@ -130,7 +130,7 @@ export const logout = () => { export function buildMenuTree( menuList: Menu.MenuOptions[] -): Menu.MenuOptions[] { +): Menu.MenuTreeOptions[] { const menuMap: { [k: string]: { children: Menu.MenuTreeOptions[] diff --git a/src/views/system/menus/index.tsx b/src/views/system/menus/index.tsx index 8c9adeb..61f1880 100644 --- a/src/views/system/menus/index.tsx +++ b/src/views/system/menus/index.tsx @@ -1,21 +1,154 @@ import { getAllMenus } from '@/api/system' +import IconFont from '@/components/Iconfont' import { buildMenuTree } from '@/utils/system' -import { Tree } from 'antd' -import React, { useMemo } from 'react' +import { + DeleteOutlined, + EyeOutlined, + PlusCircleOutlined, + ToolOutlined +} from '@ant-design/icons' +import { Popconfirm, Table, Tooltip, Tree, Divider, Button } from 'antd' +import { DataNode, EventDataNode } from 'antd/es/tree' +import React, { useCallback, useMemo, useState } from 'react' import { useQuery } from 'react-query' import styled from 'styled-components' +import { TableRecordData } from './index.type' const MenusPage = () => { - const { data: res, isLoading } = useQuery([], getAllMenus) + const { data: sourceData, isLoading } = useQuery([], getAllMenus) + const [treeSelected, setTreeSelected] = useState( + null + ) const treeMenus = useMemo(() => { - console.log(res) - if (res) { - console.log(2) - return buildMenuTree(res.data!) + if (sourceData) { + return buildMenuTree(sourceData.data!) } return [] - }, [res]) - console.log(treeMenus) + }, [sourceData]) + + const onTreeSelect = ( + keys: React.Key[], + info: { + event: 'select' + selected: boolean + node: EventDataNode + selectedNodes: Menu.MenuTreeOptions[] + nativeEvent: MouseEvent + } + ) => { + let treeSelect: Menu.MenuTreeOptions | null = null + if (info.selected) { + // 选中 + treeSelect = { + path: info.node.path, + name: info.node.name, + code: info.node.path, + parentId: info.node.parentId, + id: info.node.id, + type: info.node.type, + children: info.node.children + } + } + setTreeSelected(treeSelect) + } + /** 构建表格数据 **/ + const tableData = useMemo(() => { + if (!sourceData) return [] + return sourceData! + .data!.filter((item) => { + return treeSelected + ? item.parentId === treeSelected.id + : item.parentId === '0' + }) + .map((item, index) => { + return { + ...item, + key: index, + control: item.id, + serial: index + 1 + } + }) + }, [sourceData, treeSelected]) + + /** 构建表格字段 **/ + const tableColumns = [ + { + title: '序号', + dataIndex: 'serial', + key: 'serial' + }, + { + title: '菜单名称', + dataIndex: 'name', + key: 'name' + }, + { + title: '路径', + dataIndex: 'path', + key: 'path', + render: (v: string | null) => { + return v ? `/${v.replace(/^\//, '')}` : '' + } + }, + { + title: '图标', + dataIndex: 'icon', + key: 'icon', + render: (v: string | null) => { + return v ? : '' + } + }, + { + title: '排序', + dataIndex: 'orderNum', + key: 'orderNum' + }, + { + title: '操作', + key: 'control', + width: 120, + render: (v: number, record: TableRecordData) => { + const controls = [] + controls.push( + + + + + + ) + + controls.push( + + + + + + ) + controls.push( + + + + + + + + ) + const result: JSX.Element[] = [] + controls.forEach((item, index) => { + if (index) { + result.push() + } + result.push(item) + }) + return result + } + } + ] return ( @@ -23,6 +156,7 @@ const MenusPage = () => {
目录结构
{ >
- + + + + + + `共 ${total} 条数据` + }} + >
+
+
) } @@ -47,21 +200,36 @@ const MenuPageWrapper = styled.div` const LeftWrapper = styled.div` width: 300px; height: 100%; - border: solid 1px #f0f0f0; + border: solid 1px var(--border-color); + display: flex; + flex-direction: column; & .tree_title { height: 44px; line-height: 44px; box-sizing: border-box; font-size: 14px; padding: 0 10px; - border-bottom: 1px solid #f0f0f0; + border-bottom: 1px solid var(--border-color); } & .tree_wrapper { padding: 10px 5px; + flex: 1; + overflow: auto; } ` const RightWrapper = styled.div` - height: 100%; - flex: auto; + flex: 1; + margin-left: 16px; + padding: 8px; + border: solid 1px var(--border-color); + display: flex; + flex-direction: column; +` +const TableWrapper = styled.div` + flex: 1; + overflow: auto; +` +const TableHeaderRow = styled.div` + padding: 8px; ` diff --git a/src/views/system/menus/index.type.ts b/src/views/system/menus/index.type.ts index e69de29..e0f8dc7 100644 --- a/src/views/system/menus/index.type.ts +++ b/src/views/system/menus/index.type.ts @@ -0,0 +1,5 @@ +export interface TableRecordData extends Menu.MenuTreeOptions { + key: number + serial: number + control: string +} From 74eef655bc076397ca785ed834b2d3ac10858a23 Mon Sep 17 00:00:00 2001 From: kirk Date: Thu, 29 Aug 2024 18:03:48 +0800 Subject: [PATCH 17/42] =?UTF-8?q?feat:=20=E6=9A=82=E5=AD=98modal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Modal/FormModal.tsx | 42 ++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/components/Modal/FormModal.tsx diff --git a/src/components/Modal/FormModal.tsx b/src/components/Modal/FormModal.tsx new file mode 100644 index 0000000..0e0918e --- /dev/null +++ b/src/components/Modal/FormModal.tsx @@ -0,0 +1,42 @@ +import { Form, Modal } from 'antd' +import { useState } from 'react' + +function FormModal({ + show, + type, + data, + title, + children, + onCancel, + onOk, + confirmLoading +}: ModalProps) { + const [form] = Form.useForm() + return ( + +
+ {children} +
+
+ ) +} + +export type OperateType = 'add' | 'see' | 'edit' +export interface ModalProps { + show: boolean + type: OperateType + data: Record + title: string + children: React.ReactNode + onCancel?: (e: React.MouseEvent) => void + onOk?: (e: React.MouseEvent) => void + confirmLoading?: boolean +} + +export default FormModal From 844175a51bbbb5998b3e87808df2c8ace89fe866 Mon Sep 17 00:00:00 2001 From: kirk Date: Fri, 30 Aug 2024 11:54:39 +0800 Subject: [PATCH 18/42] =?UTF-8?q?feat:=20=E5=BC=B9=E7=AA=97=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=92=8CFormPro?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Form/FormPro.tsx | 245 +++++++++++++++++++++++++++++ src/components/Modal/FormModal.tsx | 101 ++++++++---- src/views/system/menus/index.tsx | 70 ++++++++- 3 files changed, 379 insertions(+), 37 deletions(-) create mode 100644 src/components/Form/FormPro.tsx diff --git a/src/components/Form/FormPro.tsx b/src/components/Form/FormPro.tsx new file mode 100644 index 0000000..61bc1a2 --- /dev/null +++ b/src/components/Form/FormPro.tsx @@ -0,0 +1,245 @@ +import React from 'react' +import { + Form, + Input, + Select, + Radio, + Checkbox, + DatePicker, + Switch, + Upload, + Cascader, + FormItemProps, + InputProps, + SelectProps, + RadioGroupProps, + CheckboxProps, + DatePickerProps, + SwitchProps, + UploadProps, + CascaderProps, + Button +} from 'antd' + +export type Mode = 'add' | 'edit' | 'see' + +export interface FormOptionBase { + type: + | 'input' + | 'select' + | 'radio' + | 'checkbox' + | 'datePicker' + | 'switch' + | 'upload' + | 'cascader' + | 'custom' + name: string + label: string + rules?: FormItemProps['rules'] + componentProps?: + | InputProps + | SelectProps + | RadioGroupProps + | CheckboxProps + | DatePickerProps + | SwitchProps + | UploadProps + | CascaderProps +} + +export interface InputOption extends FormOptionBase { + type: 'input' + componentProps?: InputProps +} + +export interface SelectOption extends FormOptionBase { + type: 'select' + options?: { label: string; value: string | number }[] + componentProps?: SelectProps +} + +export interface RadioOption extends FormOptionBase { + type: 'radio' + options?: { label: string; value: string | number }[] + componentProps?: RadioGroupProps +} + +export interface CheckboxOption extends FormOptionBase { + type: 'checkbox' + componentProps?: CheckboxProps +} + +export interface DatePickerOption extends FormOptionBase { + type: 'datePicker' + componentProps?: DatePickerProps +} + +export interface SwitchOption extends FormOptionBase { + type: 'switch' + componentProps?: SwitchProps +} + +export interface UploadOption extends FormOptionBase { + type: 'upload' + componentProps?: UploadProps +} + +export interface CascaderOption extends FormOptionBase { + type: 'cascader' + options?: { label: string; value: string | number }[] + componentProps?: CascaderProps +} + +export interface CustomOption extends FormOptionBase { + type: 'custom' + component: React.ReactElement +} + +export type FormOption = + | InputOption + | SelectOption + | RadioOption + | CheckboxOption + | DatePickerOption + | SwitchOption + | UploadOption + | CascaderOption + | CustomOption + +export interface FormProProps { + formOptions: FormOption[] + initialValues?: Record + mode?: Mode + onFinish: (values: any) => void + form?: ReturnType[0] // 添加form参数类型 +} + +const FormPro: React.FC = ({ + formOptions, + initialValues = {}, + mode = 'add', + onFinish, + form // 接受外部传入的form实例 +}) => { + const [internalForm] = Form.useForm() + const formInstance = form || internalForm // 使用外部传入的form或内部生成的form + + const isSeeMode = mode === 'see' + + const renderFormItem = (item: FormOption) => { + const commonProps = { + name: item.name, + label: item.label, + rules: item.rules || [] + } + + switch (item.type) { + case 'input': + return ( + + + + ) + case 'select': + return ( + + + + ) + case 'radio': + return ( + + + {(item.options || []).map((opt) => ( + + {opt.label} + + ))} + + + ) + case 'checkbox': + return ( + + + {item.label} + + + ) + case 'datePicker': + return ( + + + + ) + case 'switch': + return ( + + + + ) + case 'upload': + return ( + + + + + + ) + case 'cascader': + return ( + + )} + options={item.options} + /> + + ) + case 'custom': + return ( + + {React.cloneElement(item.component, { disabled: isSeeMode })} + + ) + default: + return null + } + } + + return ( +
+ {formOptions.map((item) => renderFormItem(item))} +
+ ) +} + +export default FormPro diff --git a/src/components/Modal/FormModal.tsx b/src/components/Modal/FormModal.tsx index 0e0918e..4be7050 100644 --- a/src/components/Modal/FormModal.tsx +++ b/src/components/Modal/FormModal.tsx @@ -1,42 +1,79 @@ -import { Form, Modal } from 'antd' -import { useState } from 'react' +import React, { useEffect } from 'react' +import { Modal, Button, Form } from 'antd' +import FormPro, { FormOption } from '../Form/FormPro' -function FormModal({ - show, - type, - data, - title, - children, - onCancel, - onOk, - confirmLoading -}: ModalProps) { +interface FormModalProps { + visible?: boolean + onClose?: () => void + onSubmit?: (values: any) => void + formOptions?: FormOption[] + initialValues?: Record + mode?: 'add' | 'edit' | 'see' +} + +const FormModal: React.FC = ({ + visible = false, + onClose, + onSubmit, + formOptions = [], + initialValues = {}, + mode = 'add' +}) => { const [form] = Form.useForm() + + useEffect(() => { + if (visible) { + if (Object.keys(initialValues).length > 0) { + // 如果 initialValues 非空,则重置并设置表单值 + form.setFieldsValue(initialValues) + } else { + // 如果 initialValues 为空,则只重置表单 + setTimeout(() => { + form.resetFields() + }) + } + } + }, [visible, initialValues, form]) + + const isSeeMode = mode === 'see' + return ( + 取消 + , + !isSeeMode && ( + + ) + ]} > -
- {children} -
+ { + onSubmit?.(...args) + }} + />
) } -export type OperateType = 'add' | 'see' | 'edit' -export interface ModalProps { - show: boolean - type: OperateType - data: Record - title: string - children: React.ReactNode - onCancel?: (e: React.MouseEvent) => void - onOk?: (e: React.MouseEvent) => void - confirmLoading?: boolean -} - export default FormModal diff --git a/src/views/system/menus/index.tsx b/src/views/system/menus/index.tsx index 61f1880..58e5d82 100644 --- a/src/views/system/menus/index.tsx +++ b/src/views/system/menus/index.tsx @@ -13,6 +13,9 @@ import React, { useCallback, useMemo, useState } from 'react' import { useQuery } from 'react-query' import styled from 'styled-components' import { TableRecordData } from './index.type' +import FormModal from '@/components/Modal/FormModal' +import { useSetState } from 'react-use' +import type { FormOption, Mode } from '@/components/Form/FormPro' const MenusPage = () => { const { data: sourceData, isLoading } = useQuery([], getAllMenus) @@ -26,6 +29,28 @@ const MenusPage = () => { return [] }, [sourceData]) + const [modal, setModal] = useSetState<{ + visible: boolean + mode: Mode + formOptions: FormOption[] + initialValues: Record + }>({ + visible: false, + mode: 'add', + formOptions: [ + { + type: 'input', + name: 'name', + label: '名称', + rules: [{ required: true, message: '名称不能为空' }], + componentProps: { + placeholder: '请输入名称' + } + } + ], + initialValues: {} + }) + const onTreeSelect = ( keys: React.Key[], info: { @@ -110,7 +135,11 @@ const MenusPage = () => { render: (v: number, record: TableRecordData) => { const controls = [] controls.push( - + onModalShow(record, 'see')} + key="0" + className="control-btn green" + > @@ -118,7 +147,11 @@ const MenusPage = () => { ) controls.push( - + onModalShow(record, 'edit')} + key="1" + className="control-btn blue" + > @@ -131,7 +164,7 @@ const MenusPage = () => { okText="确定" cancelText="取消" > - + onDel(record)} className="control-btn red"> @@ -150,6 +183,24 @@ const MenusPage = () => { } ] + function onModalClose() { + console.log('close modal') + setModal({ + visible: false + }) + } + function onModalSubmit() { + console.log('submit modal') + } + + function onModalShow(record: TableRecordData | null, mode: Mode) { + setModal({ + visible: true, + mode, + initialValues: record ? { ...record } : {} + }) + } + function onDel(record: TableRecordData) {} return ( @@ -167,7 +218,11 @@ const MenusPage = () => { - @@ -177,7 +232,6 @@ const MenusPage = () => { columns={tableColumns} loading={isLoading} dataSource={tableData} - scroll={{ y: '600px' }} pagination={{ showQuickJumper: true, showTotal: (total) => `共 ${total} 条数据` @@ -185,6 +239,11 @@ const MenusPage = () => { > + ) } @@ -199,6 +258,7 @@ const MenuPageWrapper = styled.div` const LeftWrapper = styled.div` width: 300px; + min-width: 300px; height: 100%; border: solid 1px var(--border-color); display: flex; From 1bdc7727b04e0792259f74fa3bac0af30854cff1 Mon Sep 17 00:00:00 2001 From: kirk Date: Fri, 30 Aug 2024 16:43:32 +0800 Subject: [PATCH 19/42] =?UTF-8?q?feat:=20=E8=A1=A8=E5=8D=95=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Form/FormPro.tsx | 60 ++++++++++++++++++++++++++---- src/components/Modal/FormModal.tsx | 5 ++- src/views/system/menus/index.tsx | 57 +++++++++++++++++++++++++--- 3 files changed, 109 insertions(+), 13 deletions(-) diff --git a/src/components/Form/FormPro.tsx b/src/components/Form/FormPro.tsx index 61bc1a2..7cb1ec9 100644 --- a/src/components/Form/FormPro.tsx +++ b/src/components/Form/FormPro.tsx @@ -1,4 +1,4 @@ -import React from 'react' +import React, { useMemo, useState } from 'react' import { Form, Input, @@ -9,6 +9,7 @@ import { Switch, Upload, Cascader, + InputNumber, FormItemProps, InputProps, SelectProps, @@ -18,7 +19,9 @@ import { SwitchProps, UploadProps, CascaderProps, - Button + InputNumberProps, + Button, + ColProps } from 'antd' export type Mode = 'add' | 'edit' | 'see' @@ -33,6 +36,7 @@ export interface FormOptionBase { | 'switch' | 'upload' | 'cascader' + | 'inputNumber' | 'custom' name: string label: string @@ -46,6 +50,8 @@ export interface FormOptionBase { | SwitchProps | UploadProps | CascaderProps + | InputNumberProps + hidden?: boolean | ((values: any) => boolean) } export interface InputOption extends FormOptionBase { @@ -91,6 +97,11 @@ export interface CascaderOption extends FormOptionBase { componentProps?: CascaderProps } +export interface InputNumberOption extends FormOptionBase { + type: 'inputNumber' + componentProps?: InputNumberProps +} + export interface CustomOption extends FormOptionBase { type: 'custom' component: React.ReactElement @@ -105,14 +116,16 @@ export type FormOption = | SwitchOption | UploadOption | CascaderOption + | InputNumberOption | CustomOption export interface FormProProps { formOptions: FormOption[] initialValues?: Record mode?: Mode + labelCol?: ColProps onFinish: (values: any) => void - form?: ReturnType[0] // 添加form参数类型 + form?: ReturnType[0] } const FormPro: React.FC = ({ @@ -120,11 +133,12 @@ const FormPro: React.FC = ({ initialValues = {}, mode = 'add', onFinish, - form // 接受外部传入的form实例 + labelCol, + form }) => { const [internalForm] = Form.useForm() - const formInstance = form || internalForm // 使用外部传入的form或内部生成的form - + const formInstance = form || internalForm + const [formValues, setFormValues] = useState(initialValues) const isSeeMode = mode === 'see' const renderFormItem = (item: FormOption) => { @@ -134,6 +148,18 @@ const FormPro: React.FC = ({ rules: item.rules || [] } + // 显隐逻辑 + const shouldHide = useMemo(() => { + if (typeof item.hidden === 'function') { + return item.hidden(formValues) + } + return item.hidden || false + }, [item.hidden, formValues]) + + if (shouldHide) { + return null + } + switch (item.type) { case 'input': return ( @@ -224,6 +250,15 @@ const FormPro: React.FC = ({ /> ) + case 'inputNumber': + return ( + + + + ) case 'custom': return ( @@ -236,7 +271,18 @@ const FormPro: React.FC = ({ } return ( -
+ { + setFormValues((prevValues) => ({ + ...prevValues, + ...changedValues + })) + }} + > {formOptions.map((item) => renderFormItem(item))}
) diff --git a/src/components/Modal/FormModal.tsx b/src/components/Modal/FormModal.tsx index 4be7050..4b103ed 100644 --- a/src/components/Modal/FormModal.tsx +++ b/src/components/Modal/FormModal.tsx @@ -1,5 +1,5 @@ import React, { useEffect } from 'react' -import { Modal, Button, Form } from 'antd' +import { Modal, Button, Form, ColProps } from 'antd' import FormPro, { FormOption } from '../Form/FormPro' interface FormModalProps { @@ -7,6 +7,7 @@ interface FormModalProps { onClose?: () => void onSubmit?: (values: any) => void formOptions?: FormOption[] + labelCol?: ColProps initialValues?: Record mode?: 'add' | 'edit' | 'see' } @@ -17,6 +18,7 @@ const FormModal: React.FC = ({ onSubmit, formOptions = [], initialValues = {}, + labelCol, mode = 'add' }) => { const [form] = Form.useForm() @@ -66,6 +68,7 @@ const FormModal: React.FC = ({ { diff --git a/src/views/system/menus/index.tsx b/src/views/system/menus/index.tsx index 58e5d82..05e67d4 100644 --- a/src/views/system/menus/index.tsx +++ b/src/views/system/menus/index.tsx @@ -7,7 +7,15 @@ import { PlusCircleOutlined, ToolOutlined } from '@ant-design/icons' -import { Popconfirm, Table, Tooltip, Tree, Divider, Button } from 'antd' +import { + Popconfirm, + Table, + Tooltip, + Tree, + Divider, + Button, + ColProps +} from 'antd' import { DataNode, EventDataNode } from 'antd/es/tree' import React, { useCallback, useMemo, useState } from 'react' import { useQuery } from 'react-query' @@ -33,19 +41,58 @@ const MenusPage = () => { visible: boolean mode: Mode formOptions: FormOption[] + labelCol: ColProps initialValues: Record }>({ visible: false, mode: 'add', + labelCol: { span: 4 }, formOptions: [ { type: 'input', name: 'name', - label: '名称', + label: '菜单名称', rules: [{ required: true, message: '名称不能为空' }], componentProps: { placeholder: '请输入名称' } + }, + { + type: 'input', + name: 'path', + hidden: (form) => { + return form.type !== 1 + }, + label: '菜单链接', + rules: [{ required: true, message: '菜单链接不能为空' }], + componentProps: { + placeholder: '请输入菜单链接' + } + }, + { + type: 'input', + name: 'code', + label: '编码', + rules: [{ required: true, message: '唯一编码不能为空' }], + componentProps: { + placeholder: '请输入唯一编码' + } + }, + { + type: 'radio', + name: 'type', + label: '菜单类型', + rules: [{ required: true, message: '菜单类型不能为空' }], + options: [ + { label: '菜单', value: 1 }, + { label: '按钮', value: 3 } + ] + }, + { + type: 'inputNumber', + name: 'sort', + label: '排序', + rules: [{ required: true, message: '排序不能为空' }] } ], initialValues: {} @@ -184,12 +231,12 @@ const MenusPage = () => { ] function onModalClose() { - console.log('close modal') setModal({ visible: false }) } - function onModalSubmit() { + function onModalSubmit(values: any) { + console.log(values) console.log('submit modal') } @@ -197,7 +244,7 @@ const MenusPage = () => { setModal({ visible: true, mode, - initialValues: record ? { ...record } : {} + initialValues: record ? { ...record } : { sort: 0, type: 1 } }) } function onDel(record: TableRecordData) {} From 16c9ff9b35a615ad39f67d0c902560b700c0a7b8 Mon Sep 17 00:00:00 2001 From: kirk Date: Fri, 30 Aug 2024 17:31:09 +0800 Subject: [PATCH 20/42] =?UTF-8?q?feat:=20=E8=8F=9C=E5=8D=95=E5=A2=9E?= =?UTF-8?q?=E5=88=A0=E6=94=B9=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system.ts | 17 ++++++++++++++ src/components/Modal/FormModal.tsx | 5 +++- src/views/ces/index.tsx | 7 ++++++ src/views/system/menus/index.tsx | 37 ++++++++++++++++++++++-------- 4 files changed, 56 insertions(+), 10 deletions(-) create mode 100644 src/views/ces/index.tsx diff --git a/src/api/system.ts b/src/api/system.ts index 3b4d833..13ecb3b 100644 --- a/src/api/system.ts +++ b/src/api/system.ts @@ -3,3 +3,20 @@ import http from '@/utils/http' export const getAllMenus = () => { return http.get('/menu/all', {}) } + +export const createMenu = (data: MenuDto) => { + return http.post('/menu', data) +} +export const updateMenu = (data: MenuDto) => { + return http.put('/menu', data) +} + +export interface MenuDto { + code: string + menuPermList: any[] + name: string + orderNum: number + parentId: string + type: number + id?: string +} diff --git a/src/components/Modal/FormModal.tsx b/src/components/Modal/FormModal.tsx index 4b103ed..9028a6d 100644 --- a/src/components/Modal/FormModal.tsx +++ b/src/components/Modal/FormModal.tsx @@ -27,7 +27,10 @@ const FormModal: React.FC = ({ if (visible) { if (Object.keys(initialValues).length > 0) { // 如果 initialValues 非空,则重置并设置表单值 - form.setFieldsValue(initialValues) + setTimeout(() => { + form.resetFields() + form.setFieldsValue(initialValues) + }) } else { // 如果 initialValues 为空,则只重置表单 setTimeout(() => { diff --git a/src/views/ces/index.tsx b/src/views/ces/index.tsx new file mode 100644 index 0000000..13a1eb8 --- /dev/null +++ b/src/views/ces/index.tsx @@ -0,0 +1,7 @@ +import React from 'react' + +const index = () => { + return
index
+} + +export default index diff --git a/src/views/system/menus/index.tsx b/src/views/system/menus/index.tsx index 05e67d4..2a423cb 100644 --- a/src/views/system/menus/index.tsx +++ b/src/views/system/menus/index.tsx @@ -1,4 +1,4 @@ -import { getAllMenus } from '@/api/system' +import { createMenu, getAllMenus, updateMenu } from '@/api/system' import IconFont from '@/components/Iconfont' import { buildMenuTree } from '@/utils/system' import { @@ -14,7 +14,8 @@ import { Tree, Divider, Button, - ColProps + ColProps, + message } from 'antd' import { DataNode, EventDataNode } from 'antd/es/tree' import React, { useCallback, useMemo, useState } from 'react' @@ -26,7 +27,7 @@ import { useSetState } from 'react-use' import type { FormOption, Mode } from '@/components/Form/FormPro' const MenusPage = () => { - const { data: sourceData, isLoading } = useQuery([], getAllMenus) + const { data: sourceData, isLoading, refetch } = useQuery([], getAllMenus) const [treeSelected, setTreeSelected] = useState( null ) @@ -36,7 +37,7 @@ const MenusPage = () => { } return [] }, [sourceData]) - + const [currentData, setCurrentData] = useState(null) const [modal, setModal] = useSetState<{ visible: boolean mode: Mode @@ -90,7 +91,7 @@ const MenusPage = () => { }, { type: 'inputNumber', - name: 'sort', + name: 'orderNum', label: '排序', rules: [{ required: true, message: '排序不能为空' }] } @@ -231,20 +232,38 @@ const MenusPage = () => { ] function onModalClose() { + setCurrentData(null) setModal({ visible: false }) } - function onModalSubmit(values: any) { - console.log(values) - console.log('submit modal') + async function onModalSubmit(values: any) { + const params = { + ...values, + menuPermList: [], + parentId: treeSelected?.parentId || '0', + icon: '' + } + if (currentData && currentData.id) { + params.id = currentData.id + } + if (modal.mode == 'add') { + const res = await createMenu(params) + message.success('菜单创建成功') + } else if (modal.mode == 'edit') { + const res = await updateMenu(params) + message.success('菜单更新成功') + } + onModalClose() + refetch() } function onModalShow(record: TableRecordData | null, mode: Mode) { + setCurrentData(record) setModal({ visible: true, mode, - initialValues: record ? { ...record } : { sort: 0, type: 1 } + initialValues: record ? { ...record } : { orderNum: 0, type: 1 } }) } function onDel(record: TableRecordData) {} From a75bc7a579d03e6322c06bcbb297d2eda4724937 Mon Sep 17 00:00:00 2001 From: kirk Date: Fri, 30 Aug 2024 18:08:32 +0800 Subject: [PATCH 21/42] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E8=B7=AF?= =?UTF-8?q?=E7=94=B1err?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/lazyLoad.tsx | 7 ++++--- src/router/useLoadRoutes.tsx | 20 +++++++++++++++++++- src/views/ces/index.tsx | 7 ------- 3 files changed, 23 insertions(+), 11 deletions(-) delete mode 100644 src/views/ces/index.tsx diff --git a/src/router/lazyLoad.tsx b/src/router/lazyLoad.tsx index 87e066e..4f03d2d 100644 --- a/src/router/lazyLoad.tsx +++ b/src/router/lazyLoad.tsx @@ -8,13 +8,14 @@ import { MetaProps } from './interface' * @returns element */ const lazyLoad = ( - Comp: React.LazyExoticComponent, - meta?: MetaProps + Comp: React.LazyExoticComponent | React.ComponentType, + meta: MetaProps, + props: Record = {} ): React.ReactNode => { return ( }> - + ) diff --git a/src/router/useLoadRoutes.tsx b/src/router/useLoadRoutes.tsx index 2540408..1aff05a 100644 --- a/src/router/useLoadRoutes.tsx +++ b/src/router/useLoadRoutes.tsx @@ -53,7 +53,21 @@ function buildDynamicRoute(menu: Menu.MenuTreeOptions): RouteObject { } const element = viewModules[`../views${menu.path}/index.tsx`] if (!element) { - throw new Error(`找不到 ${menu.path} 对应的路由文件`) + console.error(`找不到 ${menu.path} 对应的路由文件`) + return { + path: menu.path, + element: lazyLoad( + ErrorElement, + { + title: menu.name, + requiredAuth: true, + code: menu.code + }, + { + errText: `找不到 ${menu.path} 对应的路由文件,请在views文件夹下创建` + } + ) + } } return { path: menu.path, @@ -67,3 +81,7 @@ function buildDynamicRoute(menu: Menu.MenuTreeOptions): RouteObject { ) } } + +export function ErrorElement({ errText }: { errText?: string }) { + return
{errText}
+} diff --git a/src/views/ces/index.tsx b/src/views/ces/index.tsx deleted file mode 100644 index 13a1eb8..0000000 --- a/src/views/ces/index.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import React from 'react' - -const index = () => { - return
index
-} - -export default index From 18d3014b0db158b176cb54b94831d9031bb0d3f4 Mon Sep 17 00:00:00 2001 From: kirk Date: Mon, 2 Sep 2024 09:24:06 +0800 Subject: [PATCH 22/42] =?UTF-8?q?feat:=20=E9=94=99=E8=AF=AF=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/http/refresher.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/utils/http/refresher.ts b/src/utils/http/refresher.ts index a6a1052..cc27fc3 100644 --- a/src/utils/http/refresher.ts +++ b/src/utils/http/refresher.ts @@ -56,7 +56,11 @@ class Refresher { const headerJwt = request.headers?.Authorization || '' const token: string = store.getState().user.accessToken if (token && headerJwt === token) { - await this.refreshToken() + try { + await this.refreshToken() + } catch (error) { + throw new Error('refresh token error') + } } // 1、refreshToken成功后,缓存中的jwt将会更新, // 2、若缓存中的jwt已被刷新,代表refresh已被其他通讯捕获并已发送成功,当前通讯才返回1029,此时直接使用新的jwt重发 From c9358a4ab4a1f318b6be52d3f6a5f0fad0fb263f Mon Sep 17 00:00:00 2001 From: kirk Date: Mon, 2 Sep 2024 10:53:57 +0800 Subject: [PATCH 23/42] =?UTF-8?q?feat:=20=E8=8F=9C=E5=8D=95=E5=A2=9E?= =?UTF-8?q?=E5=88=A0=E6=94=B9=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system.ts | 5 ++++- src/components/Form/FormPro.tsx | 3 ++- src/components/Modal/FormModal.tsx | 1 + src/constants/index.ts | 5 +++++ src/utils/system.ts | 35 +++++++++++++++++++++++++++++- src/views/system/menus/index.tsx | 26 +++++++++++++++++----- 6 files changed, 66 insertions(+), 9 deletions(-) create mode 100644 src/constants/index.ts diff --git a/src/api/system.ts b/src/api/system.ts index 13ecb3b..bbf982e 100644 --- a/src/api/system.ts +++ b/src/api/system.ts @@ -1,7 +1,7 @@ import http from '@/utils/http' export const getAllMenus = () => { - return http.get('/menu/all', {}) + return http.get('/menu/all?hasBtn=1') } export const createMenu = (data: MenuDto) => { @@ -10,6 +10,9 @@ export const createMenu = (data: MenuDto) => { export const updateMenu = (data: MenuDto) => { return http.put('/menu', data) } +export const deleteMenu = (id: string) => { + return http.delete('/menu/' + id) +} export interface MenuDto { code: string diff --git a/src/components/Form/FormPro.tsx b/src/components/Form/FormPro.tsx index 7cb1ec9..22cd2b2 100644 --- a/src/components/Form/FormPro.tsx +++ b/src/components/Form/FormPro.tsx @@ -23,6 +23,7 @@ import { Button, ColProps } from 'antd' +import { log } from 'node:console' export type Mode = 'add' | 'edit' | 'see' @@ -154,7 +155,7 @@ const FormPro: React.FC = ({ return item.hidden(formValues) } return item.hidden || false - }, [item.hidden, formValues]) + }, [item.hidden, formValues, initialValues]) if (shouldHide) { return null diff --git a/src/components/Modal/FormModal.tsx b/src/components/Modal/FormModal.tsx index 9028a6d..ed0aa22 100644 --- a/src/components/Modal/FormModal.tsx +++ b/src/components/Modal/FormModal.tsx @@ -45,6 +45,7 @@ const FormModal: React.FC = ({ return ( menu.type === 1) - .map((menu) => [menu.id, { ...menu, children: [] }]) + .map((menu) => [ + menu.id, + { ...menu, children: [], disabled: menu.type === 3 ? true : false } + ]) + ) + return Object.values(menuMap).filter((menu) => { + if (menu.parentId !== '0') { + menuMap[menu.parentId]?.children.push(menu) + return false + } + return true + }) +} + +export function buildMenuTreeForPage(menuList: Menu.MenuOptions[]) { + const menuMap: { + [k: string]: { + children: Menu.MenuTreeOptions[] + path: string + name: string + icon?: string + close?: boolean + code: string + parentId: string + id: string + type: Menu.MenuType + disabled?: boolean + } + } = Object.fromEntries( + menuList.map((menu) => [ + menu.id, + { ...menu, children: [], disabled: menu.type === 3 ? true : false } + ]) ) return Object.values(menuMap).filter((menu) => { if (menu.parentId !== '0') { diff --git a/src/views/system/menus/index.tsx b/src/views/system/menus/index.tsx index 2a423cb..4c05828 100644 --- a/src/views/system/menus/index.tsx +++ b/src/views/system/menus/index.tsx @@ -1,6 +1,6 @@ -import { createMenu, getAllMenus, updateMenu } from '@/api/system' +import { createMenu, deleteMenu, getAllMenus, updateMenu } from '@/api/system' import IconFont from '@/components/Iconfont' -import { buildMenuTree } from '@/utils/system' +import { buildMenuTreeForPage } from '@/utils/system' import { DeleteOutlined, EyeOutlined, @@ -25,6 +25,7 @@ import { TableRecordData } from './index.type' import FormModal from '@/components/Modal/FormModal' import { useSetState } from 'react-use' import type { FormOption, Mode } from '@/components/Form/FormPro' +import { menuTypeMap } from '@/constants' const MenusPage = () => { const { data: sourceData, isLoading, refetch } = useQuery([], getAllMenus) @@ -33,7 +34,7 @@ const MenusPage = () => { ) const treeMenus = useMemo(() => { if (sourceData) { - return buildMenuTree(sourceData.data!) + return buildMenuTreeForPage(sourceData.data!) } return [] }, [sourceData]) @@ -155,6 +156,14 @@ const MenusPage = () => { dataIndex: 'name', key: 'name' }, + { + title: '菜单类型', + dataIndex: 'type', + key: 'type', + render: (v: Menu.MenuType) => { + return menuTypeMap[v] + } + }, { title: '路径', dataIndex: 'path', @@ -211,8 +220,9 @@ const MenusPage = () => { title="确定删除吗?" okText="确定" cancelText="取消" + onConfirm={() => onDel(record)} > - onDel(record)} className="control-btn red"> + @@ -241,7 +251,7 @@ const MenusPage = () => { const params = { ...values, menuPermList: [], - parentId: treeSelected?.parentId || '0', + parentId: treeSelected?.id || '0', icon: '' } if (currentData && currentData.id) { @@ -266,7 +276,11 @@ const MenusPage = () => { initialValues: record ? { ...record } : { orderNum: 0, type: 1 } }) } - function onDel(record: TableRecordData) {} + async function onDel(record: TableRecordData) { + const res = await deleteMenu(record.id) + message.success('菜单删除成功') + refetch() + } return ( From 9bb92ad56b983a9b9b2fbc5aaa25b4fbbe1e3708 Mon Sep 17 00:00:00 2001 From: kirk Date: Mon, 2 Sep 2024 16:00:50 +0800 Subject: [PATCH 24/42] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0api=E6=9D=83?= =?UTF-8?q?=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system.ts | 20 ++++++ src/types/global.d.ts | 1 - src/views/system/menus/index.tsx | 104 ++++++++++++++++++++------- src/views/system/menus/index.type.ts | 5 ++ 4 files changed, 105 insertions(+), 25 deletions(-) diff --git a/src/api/system.ts b/src/api/system.ts index bbf982e..b57db94 100644 --- a/src/api/system.ts +++ b/src/api/system.ts @@ -14,6 +14,13 @@ export const deleteMenu = (id: string) => { return http.delete('/menu/' + id) } +export const getAllPerms = () => { + return http.get('/perm/all') +} +export const getMenuPerm = (id: string) => { + return http.get(`menu/one/${id}/menu-perm`) +} + export interface MenuDto { code: string menuPermList: any[] @@ -23,3 +30,16 @@ export interface MenuDto { type: number id?: string } + +export interface PermItem { + desc: string + method: string + path: string +} + +export interface MenuPermItem { + id: string + menuId: string + apiUrl: string + apiMethod: string +} diff --git a/src/types/global.d.ts b/src/types/global.d.ts index d2c27f6..2a67f6b 100644 --- a/src/types/global.d.ts +++ b/src/types/global.d.ts @@ -13,7 +13,6 @@ declare global { browserLanguage: string } export type { RootState } from '@/store' - // * Menu export namespace Menu { type MenuType = 1 | 2 | 3 diff --git a/src/views/system/menus/index.tsx b/src/views/system/menus/index.tsx index 4c05828..5ee702a 100644 --- a/src/views/system/menus/index.tsx +++ b/src/views/system/menus/index.tsx @@ -1,4 +1,11 @@ -import { createMenu, deleteMenu, getAllMenus, updateMenu } from '@/api/system' +import { + createMenu, + deleteMenu, + getAllMenus, + getAllPerms, + getMenuPerm, + updateMenu +} from '@/api/system' import IconFont from '@/components/Iconfont' import { buildMenuTreeForPage } from '@/utils/system' import { @@ -28,7 +35,12 @@ import type { FormOption, Mode } from '@/components/Form/FormPro' import { menuTypeMap } from '@/constants' const MenusPage = () => { - const { data: sourceData, isLoading, refetch } = useQuery([], getAllMenus) + const { + data: sourceData, + isLoading, + refetch + } = useQuery('getAllMenus', getAllMenus) + const { data: permsData } = useQuery('getAllPerms', getAllPerms) const [treeSelected, setTreeSelected] = useState( null ) @@ -38,18 +50,32 @@ const MenusPage = () => { } return [] }, [sourceData]) + + const permOptions = useMemo(() => { + if (permsData) { + return permsData.data!.map((perm) => { + return { + label: perm.method + '+' + perm.path, + value: perm.method + '+' + perm.path + } + }) + } + return [] + }, [permsData]) const [currentData, setCurrentData] = useState(null) const [modal, setModal] = useSetState<{ visible: boolean mode: Mode - formOptions: FormOption[] labelCol: ColProps initialValues: Record }>({ visible: false, mode: 'add', labelCol: { span: 4 }, - formOptions: [ + initialValues: {} + }) + const formOptions = useMemo(() => { + return [ { type: 'input', name: 'name', @@ -59,6 +85,16 @@ const MenusPage = () => { placeholder: '请输入名称' } }, + { + type: 'radio', + name: 'type', + label: '菜单类型', + rules: [{ required: true, message: '菜单类型不能为空' }], + options: [ + { label: '菜单', value: 1 }, + { label: '按钮', value: 3 } + ] + }, { type: 'input', name: 'path', @@ -71,6 +107,16 @@ const MenusPage = () => { placeholder: '请输入菜单链接' } }, + { + type: 'select', + name: 'menuPermList', + label: '权限集合', + options: permOptions, + componentProps: { + placeholder: '请选择权限集合', + mode: 'multiple' + } + }, { type: 'input', name: 'code', @@ -80,25 +126,15 @@ const MenusPage = () => { placeholder: '请输入唯一编码' } }, - { - type: 'radio', - name: 'type', - label: '菜单类型', - rules: [{ required: true, message: '菜单类型不能为空' }], - options: [ - { label: '菜单', value: 1 }, - { label: '按钮', value: 3 } - ] - }, + { type: 'inputNumber', name: 'orderNum', label: '排序', rules: [{ required: true, message: '排序不能为空' }] } - ], - initialValues: {} - }) + ] + }, [permsData]) const onTreeSelect = ( keys: React.Key[], @@ -250,7 +286,10 @@ const MenusPage = () => { async function onModalSubmit(values: any) { const params = { ...values, - menuPermList: [], + menuPermList: values.menuPermList.map((item: string) => { + const [apiMethod, apiUrl] = item.split('+') + return { apiMethod, apiUrl } + }), parentId: treeSelected?.id || '0', icon: '' } @@ -268,13 +307,29 @@ const MenusPage = () => { refetch() } - function onModalShow(record: TableRecordData | null, mode: Mode) { + async function onModalShow(record: TableRecordData | null, mode: Mode) { setCurrentData(record) - setModal({ - visible: true, - mode, - initialValues: record ? { ...record } : { orderNum: 0, type: 1 } - }) + let newModal = {} + if (record) { + const { data: menuPermList } = await getMenuPerm(record?.id as string) + newModal = { + visible: true, + mode, + initialValues: { + ...record, + menuPermList: menuPermList!.map( + (item) => item.apiMethod + '+' + item.apiUrl + ) + } + } + } else { + newModal = { + visible: true, + mode, + initialValues: { orderNum: 0, type: 1, menuPermList: [] } + } + } + setModal(newModal) } async function onDel(record: TableRecordData) { const res = await deleteMenu(record.id) @@ -321,6 +376,7 @@ const MenusPage = () => { diff --git a/src/views/system/menus/index.type.ts b/src/views/system/menus/index.type.ts index e0f8dc7..317702b 100644 --- a/src/views/system/menus/index.type.ts +++ b/src/views/system/menus/index.type.ts @@ -3,3 +3,8 @@ export interface TableRecordData extends Menu.MenuTreeOptions { serial: number control: string } + +export interface menuPermItem { + apiMethod: string + apiUrl: string +} From e7c9fecdbf1a05216ea724325138b2fc3a4cb1e1 Mon Sep 17 00:00:00 2001 From: kirk Date: Mon, 2 Sep 2024 17:36:22 +0800 Subject: [PATCH 25/42] =?UTF-8?q?feat:=20=E7=94=A8=E6=88=B7=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=B8=B2=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/user.ts | 22 ++++ src/views/perm/users/index.tsx | 195 ++++++++++++++++++++++++++++++++- src/views/perm/users/type.ts | 11 ++ 3 files changed, 227 insertions(+), 1 deletion(-) create mode 100644 src/views/perm/users/type.ts diff --git a/src/api/user.ts b/src/api/user.ts index d995539..cdd3203 100644 --- a/src/api/user.ts +++ b/src/api/user.ts @@ -1,4 +1,5 @@ import http from '@/utils/http' +import { UserData } from '@/views/perm/users/type' export interface UserInfo { username?: string phone?: string @@ -46,3 +47,24 @@ export const getAuthRoutes = () => { } ) } + +export const getUserList = ({ + page, + size, + status, + account +}: { + page: number + size: number + status?: number + account?: string +}) => { + return http.get<{ + list: UserData[] + total: number + }>( + `/user/list?page=${page}&size=${size}&status=${status || ''}&account=${ + account || '' + }` + ) +} diff --git a/src/views/perm/users/index.tsx b/src/views/perm/users/index.tsx index 0cd4715..6468c09 100644 --- a/src/views/perm/users/index.tsx +++ b/src/views/perm/users/index.tsx @@ -1,3 +1,196 @@ +import { ColProps, Divider, message, Popconfirm, Table, Tooltip } from 'antd' +import { UserData } from './type' +import { DeleteOutlined, EyeOutlined, ToolOutlined } from '@ant-design/icons' +import { useState } from 'react' +import { Mode } from '@/components/Form/FormPro' +import { useSetState } from 'react-use' +import { useQuery } from 'react-query' +import { getUserList } from '@/api/user' + export default function UsersPage() { - return
用户管理
+ const { data, isLoading, refetch } = useQuery('', async () => { + const res = await getUserList({ + page: 1, + size: 10 + }) + return res.data + }) + const [currentData, setCurrentData] = useState(null) + + const [modal, setModal] = useSetState<{ + visible: boolean + mode: Mode + labelCol: ColProps + initialValues: Record + }>({ + visible: false, + mode: 'add', + labelCol: { span: 4 }, + initialValues: {} + }) + + /** 构建表格字段 **/ + const tableColumns = [ + { + title: 'id', + dataIndex: 'id', + key: 'id' + }, + { + title: '账号', + dataIndex: 'username', + key: 'username' + }, + { + title: '手机号', + dataIndex: 'phone', + key: 'phone' + }, + { + title: '邮箱', + dataIndex: 'email', + key: 'email' + }, + { + title: '状态', + dataIndex: 'status', + key: 'status', + render: (v: number) => + v === 1 ? ( + 启用 + ) : ( + 禁用 + ) + }, + { + title: '注册时间', + dataIndex: 'createDate', + key: 'createDate' + }, + { + title: '更新时间', + dataIndex: 'updateDate', + key: 'updateDate' + }, + { + title: '操作', + key: 'control', + width: 120, + render: (v: number, record: UserData) => { + const controls = [] + controls.push( + onModalShow(record, 'see')} + key="0" + className="control-btn green" + > + + + + + ) + + controls.push( + onModalShow(record, 'edit')} + key="1" + className="control-btn blue" + > + + + + + ) + controls.push( + onDel(record)} + > + + + + + + + ) + const result: JSX.Element[] = [] + controls.forEach((item, index) => { + if (index) { + result.push() + } + result.push(item) + }) + return result + } + } + ] + + function onModalClose() { + setCurrentData(null) + setModal({ + visible: false + }) + } + async function onModalSubmit(values: any) { + const params = { + ...values + } + if (currentData && currentData.id) { + params.id = currentData.id + } + if (modal.mode == 'add') { + // const res = await createMenu(params) + message.success('菜单创建成功') + } else if (modal.mode == 'edit') { + // const res = await updateMenu(params) + message.success('菜单更新成功') + } + onModalClose() + refetch() + } + + async function onModalShow(record: UserData | null, mode: Mode) { + setCurrentData(record) + let newModal = {} + if (record) { + // const { data: menuPermList } = await getMenuPerm(record?.id as string) + newModal = { + visible: true, + mode, + initialValues: { + ...record + } + } + } else { + newModal = { + visible: true, + mode, + initialValues: { orderNum: 0, type: 1, menuPermList: [] } + } + } + setModal(newModal) + } + async function onDel(record: UserData) { + // const res = await deleteMenu(record.id) + message.success('菜单删除成功') + refetch() + } + + return ( +
+ `共 ${total} 条数据` + }} + >
+
+ ) } diff --git a/src/views/perm/users/type.ts b/src/views/perm/users/type.ts new file mode 100644 index 0000000..91519b8 --- /dev/null +++ b/src/views/perm/users/type.ts @@ -0,0 +1,11 @@ +export interface UserData { + id: string + username: string + phone: string + email: string + status: number + avatar: string + type: number + createDate: string + updateDate: string +} From 1b4c8e7f86d4d87625d0e85a5e37f43805892b93 Mon Sep 17 00:00:00 2001 From: kirk Date: Tue, 3 Sep 2024 10:44:18 +0800 Subject: [PATCH 26/42] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/{Modal => Form}/FormModal.tsx | 27 +-- src/components/Form/FormPro.tsx | 229 +++++++++---------- src/components/Form/FormSearch.tsx | 67 ++++++ src/components/Page/index.tsx | 6 + src/views/login/index.tsx | 4 +- src/views/perm/users/index.tsx | 29 ++- src/views/system/menus/index.tsx | 7 +- 7 files changed, 227 insertions(+), 142 deletions(-) rename src/components/{Modal => Form}/FormModal.tsx (78%) create mode 100644 src/components/Form/FormSearch.tsx create mode 100644 src/components/Page/index.tsx diff --git a/src/components/Modal/FormModal.tsx b/src/components/Form/FormModal.tsx similarity index 78% rename from src/components/Modal/FormModal.tsx rename to src/components/Form/FormModal.tsx index ed0aa22..69dd2fa 100644 --- a/src/components/Modal/FormModal.tsx +++ b/src/components/Form/FormModal.tsx @@ -1,6 +1,6 @@ import React, { useEffect } from 'react' import { Modal, Button, Form, ColProps } from 'antd' -import FormPro, { FormOption } from '../Form/FormPro' +import FormPro, { FormOption } from './FormPro' interface FormModalProps { visible?: boolean @@ -42,6 +42,16 @@ const FormModal: React.FC = ({ const isSeeMode = mode === 'see' + function onValidate() { + form + .validateFields() + .then((values) => { + onSubmit?.(values) + }) + .catch((errorInfo) => { + console.error('Validate Failed:', errorInfo) + }) + } return ( = ({ 取消 , !isSeeMode && ( - ) @@ -75,9 +75,6 @@ const FormModal: React.FC = ({ labelCol={labelCol} initialValues={initialValues} mode={mode} - onFinish={(...args) => { - onSubmit?.(...args) - }} /> ) diff --git a/src/components/Form/FormPro.tsx b/src/components/Form/FormPro.tsx index 22cd2b2..85e8387 100644 --- a/src/components/Form/FormPro.tsx +++ b/src/components/Form/FormPro.tsx @@ -10,7 +10,10 @@ import { Upload, Cascader, InputNumber, - FormItemProps, + Button, + Row, + Col, + ColProps, InputProps, SelectProps, RadioGroupProps, @@ -18,12 +21,10 @@ import { DatePickerProps, SwitchProps, UploadProps, - CascaderProps, InputNumberProps, - Button, - ColProps + CascaderProps } from 'antd' -import { log } from 'node:console' +import { FormItemProps, FormInstance } from 'antd/lib/form' export type Mode = 'add' | 'edit' | 'see' @@ -53,6 +54,7 @@ export interface FormOptionBase { | CascaderProps | InputNumberProps hidden?: boolean | ((values: any) => boolean) + colProps?: ColProps // 每个表单项的布局 } export interface InputOption extends FormOptionBase { @@ -125,8 +127,9 @@ export interface FormProProps { initialValues?: Record mode?: Mode labelCol?: ColProps - onFinish: (values: any) => void - form?: ReturnType[0] + column?: number // 每行展示的表单项数目 + onFinish?: (values: any) => void + form?: FormInstance } const FormPro: React.FC = ({ @@ -135,6 +138,7 @@ const FormPro: React.FC = ({ mode = 'add', onFinish, labelCol, + column = 1, // 默认一行展示3个表单项 form }) => { const [internalForm] = Form.useForm() @@ -149,126 +153,115 @@ const FormPro: React.FC = ({ rules: item.rules || [] } - // 显隐逻辑 const shouldHide = useMemo(() => { if (typeof item.hidden === 'function') { return item.hidden(formValues) } return item.hidden || false - }, [item.hidden, formValues, initialValues]) + }, [item.hidden, formValues]) if (shouldHide) { return null } - switch (item.type) { - case 'input': - return ( - - - - ) - case 'select': - return ( - - - - ) - case 'radio': - return ( - - - {(item.options || []).map((opt) => ( - - {opt.label} - - ))} - - - ) - case 'checkbox': - return ( - - - {item.label} - - - ) - case 'datePicker': - return ( - - - - ) - case 'switch': - return ( - - - - ) - case 'upload': - return ( - - - - - - ) - case 'cascader': - return ( - - )} - options={item.options} - /> - - ) - case 'inputNumber': - return ( - - - - ) - case 'custom': - return ( - - {React.cloneElement(item.component, { disabled: isSeeMode })} - - ) - default: - return null - } + const colSpan = item.colProps?.span || 24 / column + + return ( + + + {(() => { + switch (item.type) { + case 'input': + return ( + + ) + case 'select': + return ( + + ) + case 'radio': + return ( + + {(item.options || []).map((opt) => ( + + {opt.label} + + ))} + + ) + case 'checkbox': + return ( + + {item.label} + + ) + case 'datePicker': + return ( + + ) + case 'switch': + return ( + + ) + case 'upload': + return ( + + + + ) + case 'cascader': + return ( + )} + options={item.options} + /> + ) + case 'inputNumber': + return ( + + ) + case 'custom': + return React.cloneElement(item.component, { + disabled: isSeeMode + }) + default: + return null + } + })()} + + + ) } return ( @@ -284,7 +277,7 @@ const FormPro: React.FC = ({ })) }} > - {formOptions.map((item) => renderFormItem(item))} + {formOptions.map((item) => renderFormItem(item))} ) } diff --git a/src/components/Form/FormSearch.tsx b/src/components/Form/FormSearch.tsx new file mode 100644 index 0000000..37441f4 --- /dev/null +++ b/src/components/Form/FormSearch.tsx @@ -0,0 +1,67 @@ +import React from 'react' +import { Button, Col, Form, Row } from 'antd' +import FormPro, { FormOption, FormProProps } from './FormPro' + +export interface FormSearchProps extends Omit { + onSearch: (values: any) => void + onReset?: () => void +} + +const FormSearch: React.FC = ({ + formOptions, + initialValues = {}, + mode = 'add', + labelCol, + column = 3, + onSearch, + onReset, + form +}) => { + const [internalForm] = Form.useForm() + const formInstance = form || internalForm + + const handleSearch = () => { + formInstance + .validateFields() + .then((values) => { + onSearch(values) + }) + .catch((errorInfo) => { + console.error('Validate Failed:', errorInfo) + }) + } + + const handleReset = () => { + formInstance.resetFields() + if (onReset) { + onReset() + } + } + + return ( + <> + + + + + + + + + + + ) +} + +export default FormSearch diff --git a/src/components/Page/index.tsx b/src/components/Page/index.tsx new file mode 100644 index 0000000..b3be8c8 --- /dev/null +++ b/src/components/Page/index.tsx @@ -0,0 +1,6 @@ +import styled from 'styled-components' + +export const PageWrapper = styled.div` + background-color: var(--bg-color); + padding: 16px; +` diff --git a/src/views/login/index.tsx b/src/views/login/index.tsx index 410658c..21b37a6 100644 --- a/src/views/login/index.tsx +++ b/src/views/login/index.tsx @@ -101,7 +101,7 @@ const LoginView = () => { allowClear styles={{ input: { paddingLeft: '12px' } }} prefix={} - placeholder="用户名:admin/tourist" + placeholder="用户名:admin/kirk" />
@@ -113,7 +113,7 @@ const LoginView = () => { allowClear styles={{ input: { paddingLeft: '12px' } }} prefix={} - placeholder="密码:123456" + placeholder="密码:Q123456" /> name="remember" valuePropName="checked"> diff --git a/src/views/perm/users/index.tsx b/src/views/perm/users/index.tsx index 6468c09..d57f650 100644 --- a/src/views/perm/users/index.tsx +++ b/src/views/perm/users/index.tsx @@ -2,10 +2,12 @@ import { ColProps, Divider, message, Popconfirm, Table, Tooltip } from 'antd' import { UserData } from './type' import { DeleteOutlined, EyeOutlined, ToolOutlined } from '@ant-design/icons' import { useState } from 'react' -import { Mode } from '@/components/Form/FormPro' +import { FormOption, Mode } from '@/components/Form/FormPro' import { useSetState } from 'react-use' import { useQuery } from 'react-query' import { getUserList } from '@/api/user' +import { PageWrapper } from '@/components/Page' +import FormSearch from '@/components/Form/FormSearch' export default function UsersPage() { const { data, isLoading, refetch } = useQuery('', async () => { @@ -178,9 +180,28 @@ export default function UsersPage() { message.success('菜单删除成功') refetch() } - + const formOptions: FormOption[] = [ + { type: 'input', name: 'name', label: '姓名' }, + { + type: 'select', + name: 'gender', + label: '性别', + options: [ + { label: '男', value: 'male' }, + { label: '女', value: 'female' } + ] + }, + { type: 'datePicker', name: 'birthdate', label: '出生日期' } + ] return ( -
+ + console.log('搜索值', values)} + onReset={() => console.log('重置表单')} + /> + `共 ${total} 条数据` }} >
-
+ ) } diff --git a/src/views/system/menus/index.tsx b/src/views/system/menus/index.tsx index 5ee702a..415457d 100644 --- a/src/views/system/menus/index.tsx +++ b/src/views/system/menus/index.tsx @@ -29,7 +29,7 @@ import React, { useCallback, useMemo, useState } from 'react' import { useQuery } from 'react-query' import styled from 'styled-components' import { TableRecordData } from './index.type' -import FormModal from '@/components/Modal/FormModal' +import FormModal from '@/components/Form/FormModal' import { useSetState } from 'react-use' import type { FormOption, Mode } from '@/components/Form/FormPro' import { menuTypeMap } from '@/constants' @@ -390,13 +390,14 @@ const MenuPageWrapper = styled.div` display: flex; height: 100%; background-color: var(--bg-color); + border: solid 1px var(--border-color); ` const LeftWrapper = styled.div` width: 300px; min-width: 300px; height: 100%; - border: solid 1px var(--border-color); + border-right: solid 1px var(--border-color); display: flex; flex-direction: column; & .tree_title { @@ -418,7 +419,7 @@ const RightWrapper = styled.div` flex: 1; margin-left: 16px; padding: 8px; - border: solid 1px var(--border-color); + border-left: solid 1px var(--border-color); display: flex; flex-direction: column; ` From 098d53daec965bb1d1a6301ed860e6236f550737 Mon Sep 17 00:00:00 2001 From: kirk Date: Tue, 3 Sep 2024 13:47:18 +0800 Subject: [PATCH 27/42] =?UTF-8?q?feat:=20=E5=88=86=E9=A1=B5=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E5=92=8C=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/user.ts | 21 ++++---- src/components/Form/FormPro.tsx | 17 ++++--- src/components/Form/FormSearch.tsx | 56 +++++++++------------ src/views/perm/users/index.tsx | 78 ++++++++++++++++++++++-------- 4 files changed, 101 insertions(+), 71 deletions(-) diff --git a/src/api/user.ts b/src/api/user.ts index cdd3203..e009dcb 100644 --- a/src/api/user.ts +++ b/src/api/user.ts @@ -1,4 +1,5 @@ import http from '@/utils/http' +import { isNullOrUnDef } from '@/utils/is' import { UserData } from '@/views/perm/users/type' export interface UserInfo { username?: string @@ -48,23 +49,19 @@ export const getAuthRoutes = () => { ) } -export const getUserList = ({ - page, - size, - status, - account -}: { +export interface UserParams { page: number size: number - status?: number - account?: string -}) => { + status?: number | undefined + username?: string +} +export const getUserList = ({ page, size, status, username }: UserParams) => { return http.get<{ list: UserData[] total: number }>( - `/user/list?page=${page}&size=${size}&status=${status || ''}&account=${ - account || '' - }` + `/user/list?page=${page}&size=${size}&status=${ + isNullOrUnDef(status) ? '' : status + }&username=${username || ''}` ) } diff --git a/src/components/Form/FormPro.tsx b/src/components/Form/FormPro.tsx index 85e8387..4e58c91 100644 --- a/src/components/Form/FormPro.tsx +++ b/src/components/Form/FormPro.tsx @@ -1,4 +1,4 @@ -import React, { useMemo, useState } from 'react' +import React, { ComponentType, useMemo, useState } from 'react' import { Form, Input, @@ -127,9 +127,10 @@ export interface FormProProps { initialValues?: Record mode?: Mode labelCol?: ColProps - column?: number // 每行展示的表单项数目 onFinish?: (values: any) => void form?: FormInstance + children?: React.ReactNode + colDefaultSpan?: number } const FormPro: React.FC = ({ @@ -138,8 +139,9 @@ const FormPro: React.FC = ({ mode = 'add', onFinish, labelCol, - column = 1, // 默认一行展示3个表单项 - form + form, + children, + colDefaultSpan = 24 }) => { const [internalForm] = Form.useForm() const formInstance = form || internalForm @@ -164,7 +166,7 @@ const FormPro: React.FC = ({ return null } - const colSpan = item.colProps?.span || 24 / column + const colSpan = item.colProps?.span || colDefaultSpan return ( @@ -277,7 +279,10 @@ const FormPro: React.FC = ({ })) }} > - {formOptions.map((item) => renderFormItem(item))} + + {formOptions.map((item) => renderFormItem(item))} + {children} + ) } diff --git a/src/components/Form/FormSearch.tsx b/src/components/Form/FormSearch.tsx index 37441f4..d046f8b 100644 --- a/src/components/Form/FormSearch.tsx +++ b/src/components/Form/FormSearch.tsx @@ -5,6 +5,7 @@ import FormPro, { FormOption, FormProProps } from './FormPro' export interface FormSearchProps extends Omit { onSearch: (values: any) => void onReset?: () => void + searchColSpan?: number } const FormSearch: React.FC = ({ @@ -12,25 +13,14 @@ const FormSearch: React.FC = ({ initialValues = {}, mode = 'add', labelCol, - column = 3, onSearch, onReset, + searchColSpan = 6, form }) => { const [internalForm] = Form.useForm() const formInstance = form || internalForm - const handleSearch = () => { - formInstance - .validateFields() - .then((values) => { - onSearch(values) - }) - .catch((errorInfo) => { - console.error('Validate Failed:', errorInfo) - }) - } - const handleReset = () => { formInstance.resetFields() if (onReset) { @@ -39,28 +29,26 @@ const FormSearch: React.FC = ({ } return ( - <> - - - - - - - - - - + + + + + + + + ) } diff --git a/src/views/perm/users/index.tsx b/src/views/perm/users/index.tsx index d57f650..b1cf8a3 100644 --- a/src/views/perm/users/index.tsx +++ b/src/views/perm/users/index.tsx @@ -5,18 +5,25 @@ import { useState } from 'react' import { FormOption, Mode } from '@/components/Form/FormPro' import { useSetState } from 'react-use' import { useQuery } from 'react-query' -import { getUserList } from '@/api/user' +import { getUserList, UserParams } from '@/api/user' import { PageWrapper } from '@/components/Page' import FormSearch from '@/components/Form/FormSearch' export default function UsersPage() { - const { data, isLoading, refetch } = useQuery('', async () => { - const res = await getUserList({ - page: 1, - size: 10 - }) - return res.data + const [searchParams, setSearchParams] = useSetState({ + status: undefined, + username: '', + page: 1, + size: 10 }) + + const { data, isLoading, refetch } = useQuery( + ['userList', searchParams], + async () => { + const res = await getUserList(searchParams) + return res.data + } + ) const [currentData, setCurrentData] = useState(null) const [modal, setModal] = useSetState<{ @@ -181,27 +188,56 @@ export default function UsersPage() { refetch() } const formOptions: FormOption[] = [ - { type: 'input', name: 'name', label: '姓名' }, + { + type: 'input', + name: 'username', + label: '用户名', + componentProps: { + placeholder: '请输入用户名', + allowClear: true + } + }, { type: 'select', - name: 'gender', - label: '性别', + name: 'status', + label: '状态', + componentProps: { + placeholder: '请选择状态', + allowClear: true, + showSearch: true + }, options: [ - { label: '男', value: 'male' }, - { label: '女', value: 'female' } + { label: '启用', value: 1 }, + { label: '禁用', value: 0 } ] - }, - { type: 'datePicker', name: 'birthdate', label: '出生日期' } + } ] + + function onSearch(values: { username: string; status: number | undefined }) { + setSearchParams({ + ...values, + page: 1 + }) + } + function onPageChange(page: number, size: number) { + setSearchParams({ + page, + size + }) + } + return ( + onSearch({ + username: '', + status: undefined + }) + } formOptions={formOptions} - column={3} - onSearch={(values) => console.log('搜索值', values)} - onReset={() => console.log('重置表单')} + onSearch={onSearch} /> - `共 ${total} 条数据` + pageSize: 10, + total: data?.total || 0, + current: 1, + showTotal: (total) => `共 ${total} 条数据`, + onChange: onPageChange }} >
From 05eda82b2cb72471a676b80b2ac84a4538d5e82a Mon Sep 17 00:00:00 2001 From: kirk Date: Tue, 3 Sep 2024 17:10:02 +0800 Subject: [PATCH 28/42] =?UTF-8?q?feat:=20=E7=94=A8=E6=88=B7=E5=A2=9E?= =?UTF-8?q?=E5=88=A0=E6=9F=A5=E6=8E=A5=E5=8F=A3=E5=92=8C,=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=8A=A5=E9=94=99=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- pnpm-lock.yaml | 800 +++++++++++++++------------ src/App.tsx | 2 - src/api/role.ts | 11 + src/api/user.ts | 24 +- src/components/AppProvider/index.tsx | 1 + src/enums/httpEnum.ts | 1 + src/router/index.tsx | 60 +- src/router/nagivage.tsx | 9 + src/utils/http/index.ts | 12 +- src/utils/system.ts | 6 +- src/views/perm/users/index.tsx | 175 +++++- src/views/perm/users/type.ts | 14 + src/views/system/menus/index.tsx | 2 +- 14 files changed, 710 insertions(+), 409 deletions(-) create mode 100644 src/api/role.ts create mode 100644 src/router/nagivage.tsx diff --git a/package.json b/package.json index 4a89b4b..59b2fd8 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "@types/nprogress": "^0.2.0", "@types/three": "^0.157.2", "@vitejs/plugin-react": "^4.0.3", - "antd": "^5.8.6", + "antd": "^5.20.4", "axios": "^1.4.0", "copy-to-clipboard": "^3.3.3", "drauu": "^0.3.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d54ceeb..6cebbe1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,8 +27,8 @@ importers: specifier: ^4.0.3 version: 4.0.3(vite@4.4.5(@types/node@20.4.6)(less@4.2.0)(sass@1.65.1)(terser@5.19.4)) antd: - specifier: ^5.8.6 - version: 5.8.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^5.20.4 + version: 5.20.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) axios: specifier: ^1.4.0 version: 1.4.0 @@ -203,15 +203,31 @@ packages: '@ant-design/colors@7.0.0': resolution: {integrity: sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==} - '@ant-design/cssinjs@1.17.0': - resolution: {integrity: sha512-MgGCZ6sfD3yQB0XW0hN4jgixMxApTlDYyct+pc7fRZNO4CaqWWm/9iXkkljNR27lyWLZmm+XiDfcIOo1bnrnMA==} + '@ant-design/colors@7.1.0': + resolution: {integrity: sha512-MMoDGWn1y9LdQJQSHiCC20x3uZ3CwQnv9QMz6pCmJOrqdgM9YxsoVVY0wtrdXbmfSgnV0KNk6zi09NAhMR2jvg==} + + '@ant-design/cssinjs-utils@1.0.3': + resolution: {integrity: sha512-BrztZZKuoYcJK8uEH40ylBemf/Mu/QPiDos56g2bv6eUoniQkgQHOCOvA3+pncoFO1TaS8xcUCIqGzDA0I+ZVQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + '@ant-design/cssinjs@1.21.1': + resolution: {integrity: sha512-tyWnlK+XH7Bumd0byfbCiZNK43HEubMoCcu9VxwsAwiHdHTgWa+tMN0/yvxa+e8EzuFP1WdUNNPclRpVtD33lg==} peerDependencies: react: '>=16.0.0' react-dom: '>=16.0.0' + '@ant-design/fast-color@2.0.6': + resolution: {integrity: sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==} + engines: {node: '>=8.x'} + '@ant-design/icons-svg@4.3.1': resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==} + '@ant-design/icons-svg@4.4.2': + resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==} + '@ant-design/icons@5.2.5': resolution: {integrity: sha512-9Jc59v5fl5dzmxqLWtRev3dJwU7Ya9ZheoI6XmZjZiQ7PRtk77rC+Rbt7GJzAPPg43RQ4YO53RE1u8n+Et97vQ==} engines: {node: '>=8'} @@ -219,8 +235,15 @@ packages: react: '>=16.0.0' react-dom: '>=16.0.0' - '@ant-design/react-slick@1.0.2': - resolution: {integrity: sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==} + '@ant-design/icons@5.4.0': + resolution: {integrity: sha512-QZbWC5xQYexCI5q4/fehSEkchJr5UGtvAJweT743qKUQQGs9IH2DehNLP49DJ3Ii9m9CijD2HN6fNy3WKhIFdA==} + engines: {node: '>=8'} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + + '@ant-design/react-slick@1.1.2': + resolution: {integrity: sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==} peerDependencies: react: '>=16.9.0' @@ -650,8 +673,12 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@rc-component/color-picker@1.4.1': - resolution: {integrity: sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw==} + '@rc-component/async-validator@5.0.4': + resolution: {integrity: sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==} + engines: {node: '>=14.x'} + + '@rc-component/color-picker@2.0.1': + resolution: {integrity: sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' @@ -680,15 +707,22 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' - '@rc-component/tour@1.8.1': - resolution: {integrity: sha512-CsrQnfKgNArxx2j1RNHVLZgVA+rLrEj06lIsl4KSynMqADsqz8eKvVkr0F3p9PA10948M6WEEZt5a/FGAbGR2A==} + '@rc-component/qrcode@1.0.0': + resolution: {integrity: sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - '@rc-component/trigger@1.15.6': - resolution: {integrity: sha512-Tl19KaGsShf4yzqxumsXVT4c7j0l20Dxe5hgP5S0HmxyhCg3oKen28ntGavRCIPW7cl7wgsGotntqcIokgDHzg==} + '@rc-component/tour@1.15.1': + resolution: {integrity: sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + '@rc-component/trigger@2.2.1': + resolution: {integrity: sha512-fuU11J8pOt6+U/tU6/CAv8wjCwGaNeRk9f5k8HQth7JBbJ6MMH62WhGycVW75VnXfBZgL/7kO+wbiO2Xc9U9sQ==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' @@ -911,8 +945,8 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - antd@5.8.6: - resolution: {integrity: sha512-DQdHJSq7AH303NgAUZcMRrWqwRYLT9LjesrfhB9xwwi3ooWTMAnS0LrL2NIYHvXZQy1kV0C4mMSiSbBqEKatLA==} + antd@5.20.4: + resolution: {integrity: sha512-ZBJYXuiaBUQdv+zrecbQyCX1oUnmQQUkaMd5EeACADeeSfWLAJOqC7cgtsp18420zw8aWTyrJ1TiruW4bHECSA==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' @@ -967,9 +1001,6 @@ packages: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} - async-validator@4.2.5: - resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} - async@3.2.4: resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} @@ -1071,6 +1102,9 @@ packages: classnames@2.3.2: resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} + classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + clean-css@5.3.2: resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==} engines: {node: '>= 10.0'} @@ -1245,8 +1279,8 @@ packages: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} engines: {node: '>=8'} - dayjs@1.11.9: - resolution: {integrity: sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==} + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} @@ -1307,9 +1341,6 @@ packages: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} - dom-align@1.12.4: - resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==} - dom-serializer@1.4.1: resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} @@ -2429,11 +2460,6 @@ packages: resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - qrcode.react@3.1.0: - resolution: {integrity: sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - qs@6.11.2: resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} engines: {node: '>=0.6'} @@ -2452,93 +2478,87 @@ packages: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} - rc-align@4.0.15: - resolution: {integrity: sha512-wqJtVH60pka/nOX7/IspElA8gjPNQKIx/ZqJ6heATCkXpe1Zg4cPVrMD2vC96wjsFFL8WsmhPbx9tdMo1qqlIA==} + rc-cascader@3.27.1: + resolution: {integrity: sha512-VLdilQWBEZ0niK6MYEQzkY8ciGADEn8FFVtM0w0I1VBKit1kI9G7Z46E22CVudakHe+JaV8SSlQ6Tav2R2KaUg==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-cascader@3.14.1: - resolution: {integrity: sha512-fCsgjLIQqYZMhFj9UT+x2ZW4uobx7OP5yivcn6Xto5fuxHaldphsryzCeUVmreQOHEo0RP+032Ip9RDzrKVKJA==} + rc-checkbox@3.3.0: + resolution: {integrity: sha512-Ih3ZaAcoAiFKJjifzwsGiT/f/quIkxJoklW4yKGho14Olulwn8gN7hOBve0/WGDg5o/l/5mL0w7ff7/YGvefVw==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-checkbox@3.1.0: - resolution: {integrity: sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==} + rc-collapse@3.7.3: + resolution: {integrity: sha512-60FJcdTRn0X5sELF18TANwtVi7FtModq649H11mYF1jh83DniMoM4MqY627sEKRCTm4+WXfGDcB7hY5oW6xhyw==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-collapse@3.7.1: - resolution: {integrity: sha512-N/7ejyiTf3XElNJBBpxqnZBUuMsQWEOPjB2QkfNvZ/Ca54eAvJXuOD1EGbCWCk2m7v/MSxku7mRpdeaLOCd4Gg==} + rc-dialog@9.5.2: + resolution: {integrity: sha512-qVUjc8JukG+j/pNaHVSRa2GO2/KbV2thm7yO4hepQ902eGdYK913sGkwg/fh9yhKYV1ql3BKIN2xnud3rEXAPw==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-dialog@9.1.0: - resolution: {integrity: sha512-5ry+JABAWEbaKyYsmITtrJbZbJys8CtMyzV8Xn4LYuXMeUx5XVHNyJRoqLFE4AzBuXXzOWeaC49cg+XkxK6kHA==} + rc-drawer@7.2.0: + resolution: {integrity: sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-drawer@6.2.0: - resolution: {integrity: sha512-spPkZ3WvP0U0vy5dyzSwlUJ/+vLFtjP/cTwSwejhQRoDBaexSZHsBhELoCZcEggI7LQ7typmtG30lAue2HEhvA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-dropdown@4.1.0: - resolution: {integrity: sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==} + rc-dropdown@4.2.0: + resolution: {integrity: sha512-odM8Ove+gSh0zU27DUj5cG1gNKg7mLWBYzB5E4nNLrLwBmYEgYP43vHKDGOVZcJSVElQBI0+jTQgjnq0NfLjng==} peerDependencies: react: '>=16.11.0' react-dom: '>=16.11.0' - rc-field-form@1.36.2: - resolution: {integrity: sha512-tCF/JjUsnxW80Gk4E4ZH74ONsaQMxVTRtui6XhQB8DJc4FHWLLa5pP8zwhxtPKC5NaO0QZ0Cv79JggDubn6n2g==} + rc-field-form@2.4.0: + resolution: {integrity: sha512-XZ/lF9iqf9HXApIHQHqzJK5v2w4mkUMsVqAzOyWVzoiwwXEavY6Tpuw7HavgzIoD+huVff4JghSGcgEfX6eycg==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-image@7.1.3: - resolution: {integrity: sha512-foMl1rcit1F0+vgxE5kf0c8TygQcHhILsOohQUL+JMUbzOo3OBFRcehJudYbqbCTArzCecS8nA1irUU9vvgQbg==} + rc-image@7.9.0: + resolution: {integrity: sha512-l4zqO5E0quuLMCtdKfBgj4Suv8tIS011F5k1zBBlK25iMjjiNHxA0VeTzGFtUZERSA45gvpXDg8/P6qNLjR25g==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-input-number@8.0.4: - resolution: {integrity: sha512-TP+G5b7mZtbwXJ/YEZXF/OgbEZ6iqD4+RSuxZJ8VGKGXDcdt0FKIvpFoNQr/knspdFC4OxA0OfsWfFWfN4XSyA==} + rc-input-number@9.2.0: + resolution: {integrity: sha512-5XZFhBCV5f9UQ62AZ2hFbEY8iZT/dm23Q1kAg0H8EvOgD3UDbYYJAayoVIkM3lQaCqYAW5gV0yV3vjw1XtzWHg==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-input@1.1.1: - resolution: {integrity: sha512-NTR1Z4em681L8/ewb2KR80RykSmN8I2mzqzJDCoUmTrV1BB9Hk5d7ha4TnfgdEPPL148N+603sW2LExSXk1IbA==} + rc-input@1.6.3: + resolution: {integrity: sha512-wI4NzuqBS8vvKr8cljsvnTUqItMfG1QbJoxovCgL+DX4eVUcHIjVwharwevIxyy7H/jbLryh+K7ysnJr23aWIA==} peerDependencies: react: '>=16.0.0' react-dom: '>=16.0.0' - rc-mentions@2.5.0: - resolution: {integrity: sha512-rERXsbUTNVrb5T/iDC0ki/SRGWJnOVraDy6O25Us3FSpuUZ3uq2TPZB4fRk0Hss5kyiEPzz2sprhkI4b+F4jUw==} + rc-mentions@2.15.0: + resolution: {integrity: sha512-f5v5i7VdqvBDXbphoqcQWmXDif2Msd2arritVoWybrVDuHE6nQ7XCYsybHbV//WylooK52BFDouFvyaRDtXZEw==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-menu@9.10.0: - resolution: {integrity: sha512-g27kpXaAoJh/fkPZF65/d4V+w4DhDeqomBdPcGnkFAcJnEM4o21TnVccrBUoDedLKzC7wJRw1Q7VTqEsfEufmw==} + rc-menu@9.14.1: + resolution: {integrity: sha512-5wlRb3M8S4yGlWhSoEYJ7ZVRElyScdcpUHxgiLxkeig1tEdyKrnED3B2fhpN0Rrpdp9jyhnmZR/Lwq2fH5VvDQ==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-motion@2.9.0: - resolution: {integrity: sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==} + rc-motion@2.9.2: + resolution: {integrity: sha512-fUAhHKLDdkAXIDLH0GYwof3raS58dtNUmzLF2MeiR8o6n4thNpSDQhOqQzWE4WfFZDCi9VEN8n7tiB7czREcyw==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-notification@5.1.1: - resolution: {integrity: sha512-BPnded/WmWFE57ubqhVCgRSuedfQQNeSOYqdwppyr2B/Wt909gYFKyWAkFJVXuppAjsOGop05a93UaxjmUFdkg==} + rc-notification@5.6.0: + resolution: {integrity: sha512-TGQW5T7waOxLwgJG7fXcw8l7AQiFOjaZ7ISF5PrU526nunHRNcTMuzKihQHaF4E/h/KfOCDk3Mv8eqzbu2e28w==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' @@ -2550,14 +2570,14 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-pagination@3.6.1: - resolution: {integrity: sha512-R/sUnKKXx1Nm4kZfUKS3YKa7yEPF1ZkVB/AynQaHt+nMER7h9wPTfliDJFdYo+RM/nk2JD4Yc5QpUq8fIQHeug==} + rc-pagination@4.2.0: + resolution: {integrity: sha512-V6qeANJsT6tmOcZ4XiUmj8JXjRLbkusuufpuoBw2GiAn94fIixYjFLmbruD1Sbhn8fPLDnWawPp4CN37zQorvw==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-picker@3.13.2: - resolution: {integrity: sha512-jvmmwo9d2/rUJXx8dydmcReAGF7f2wzbR7GDUgZXymbw0cqxNqXen5GGQIsX0x92JJROKyKb+J/E7bn967Ok9A==} + rc-picker@4.6.14: + resolution: {integrity: sha512-7DuTfUFdkxmsNpWQ0TWv6FPGna5e6KKC4nxtx3x9xhumLz7jb3fhlDdWQvqEL6tpt9DOb1+N5j+wB+lDOSS9kg==} engines: {node: '>=8.x'} peerDependencies: date-fns: '>= 2.x' @@ -2576,40 +2596,40 @@ packages: moment: optional: true - rc-progress@3.4.2: - resolution: {integrity: sha512-iAGhwWU+tsayP+Jkl9T4+6rHeQTG9kDz8JAHZk4XtQOcYN5fj9H34NXNEdRdZx94VUDHMqCb1yOIvi8eJRh67w==} + rc-progress@4.0.0: + resolution: {integrity: sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-rate@2.12.0: - resolution: {integrity: sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==} + rc-rate@2.13.0: + resolution: {integrity: sha512-oxvx1Q5k5wD30sjN5tqAyWTvJfLNNJn7Oq3IeS4HxWfAiC4BOXMITNAsw7u/fzdtO4MS8Ki8uRLOzcnEuoQiAw==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-resize-observer@1.3.1: - resolution: {integrity: sha512-iFUdt3NNhflbY3mwySv5CA1TC06zdJ+pfo0oc27xpf4PIOvfZwZGtD9Kz41wGYqC4SLio93RVAirSSpYlV/uYg==} + rc-resize-observer@1.4.0: + resolution: {integrity: sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-segmented@2.2.2: - resolution: {integrity: sha512-Mq52M96QdHMsNdE/042ibT5vkcGcD5jxKp7HgPC2SRofpia99P5fkfHy1pEaajLMF/kj0+2Lkq1UZRvqzo9mSA==} + rc-segmented@2.3.0: + resolution: {integrity: sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg==} peerDependencies: react: '>=16.0.0' react-dom: '>=16.0.0' - rc-select@14.7.4: - resolution: {integrity: sha512-qRUpvMVXFy6rdHe+qzHXAqyQAfhErC/oY8dcRtoRjoz0lz2Nx3J+lLL5AnEbjnwlS+/kQTJUZ/65WyCwWwcLwQ==} + rc-select@14.15.1: + resolution: {integrity: sha512-mGvuwW1RMm1NCSI8ZUoRoLRK51R2Nb+QJnmiAvbDRcjh2//ulCkxeV6ZRFTECPpE1t2DPfyqZMPw90SVJzQ7wQ==} engines: {node: '>=8.x'} peerDependencies: react: '*' react-dom: '*' - rc-slider@10.2.1: - resolution: {integrity: sha512-l355C/65iV4UFp7mXq5xBTNX2/tF2g74VWiTVlTpNp+6vjE/xaHHNiQq5Af+Uu28uUiqCuH/QXs5HfADL9KJ/A==} + rc-slider@11.1.5: + resolution: {integrity: sha512-b77H5PbjMKsvkYXAYIkn50QuFX6ICQmCTibDinI9q+BHx65/TV4TeU25+oadhSRzykxs0/vBWeKBwRyySOeWlg==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' @@ -2628,47 +2648,47 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-table@7.32.3: - resolution: {integrity: sha512-MqjrI/ibuGg7NEyFsux0dM5GK+3er1gTiZofAkifr2bHf/Sa1nUqXXFmSrYXSOjwpx0xyBnJ3GrHFCIqC/eOzw==} + rc-table@7.45.7: + resolution: {integrity: sha512-wi9LetBL1t1csxyGkMB2p3mCiMt+NDexMlPbXHvQFmBBAsMxrgNSAPwUci2zDLUq9m8QdWc1Nh8suvrpy9mXrg==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-tabs@12.9.0: - resolution: {integrity: sha512-2HnVowgMVrq0DfQtyu4mCd9E6pXlWNdM6VaDvOOHMsLYqPmpY+7zBqUC6YrrQ9xYXHciTS0e7TtjOHIvpVCHLQ==} + rc-tabs@15.1.1: + resolution: {integrity: sha512-Tc7bJvpEdkWIVCUL7yQrMNBJY3j44NcyWS48jF/UKMXuUlzaXK+Z/pEL5LjGcTadtPvVmNqA40yv7hmr+tCOAw==} engines: {node: '>=8.x'} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-textarea@1.3.4: - resolution: {integrity: sha512-wn0YjTpvcVolcfXa0HtzL+jgV2QcwtfB29RwNAKj8hMgZOju1V24M3TfEDjABeQEAQbUGbjMbISREOX/YSVKhg==} + rc-textarea@1.8.1: + resolution: {integrity: sha512-bm36N2ZqwZAP60ZQg2OY9mPdqWC+m6UTjHc+CqEZOxb3Ia29BGHazY/s5bI8M4113CkqTzhtFUDNA078ZiOx3Q==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-tooltip@6.0.1: - resolution: {integrity: sha512-MdvPlsD1fDSxKp9+HjXrc/CxLmA/s11QYIh1R7aExxfodKP7CZA++DG1AjrW80F8IUdHYcR43HAm0Y2BYPelHA==} + rc-tooltip@6.2.0: + resolution: {integrity: sha512-iS/3iOAvtDh9GIx1ulY7EFUXUtktFccNLsARo3NPgLf0QW9oT0w3dA9cYWlhqAKmD+uriEwdWz1kH0Qs4zk2Aw==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' - rc-tree-select@5.11.2: - resolution: {integrity: sha512-ujRFO3pcjSg8R4ndXX2oiNcCu+RgO9ZPcd23CZy18Khm+nRsfWWS3Su7qB0iuoJgzAJ5LK7b6Dio0t7IQDGs9g==} + rc-tree-select@5.22.2: + resolution: {integrity: sha512-WHmWCck4+8mf4/KFTjw70AlnoNPkX4C1TOIzzwxfZ7w8hcNO4bzggoeO2Q3fAedjZteN5I3t2dT0BCZAnHedlQ==} peerDependencies: react: '*' react-dom: '*' - rc-tree@5.7.10: - resolution: {integrity: sha512-n4UkMQY3bzvJUNnbw6e3YI7sy2kE9c9vAYbSt94qAhcPKtMOThONNr1LIaFB/M5XeFYYrWVbvRVoT8k38eFuSQ==} + rc-tree@5.8.8: + resolution: {integrity: sha512-S+mCMWo91m5AJqjz3PdzKilGgbFm7fFJRFiTDOcoRbD7UfMOPnerXwMworiga0O2XIo383UoWuEfeHs1WOltag==} engines: {node: '>=10.x'} peerDependencies: react: '*' react-dom: '*' - rc-upload@4.3.4: - resolution: {integrity: sha512-uVbtHFGNjHG/RyAfm9fluXB6pvArAGyAx8z7XzXXyorEgVIWj6mOlriuDm0XowDHYz4ycNK0nE0oP3cbFnzxiQ==} + rc-upload@4.7.0: + resolution: {integrity: sha512-eUwxYNHlsYe5vYhKFAUGrQG95JrnPzY+BmPi1Daq39fWNl/eOc7v4UODuWrVp2LFkQBuV3cMCG/I68iub6oBrg==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' @@ -2679,6 +2699,12 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' + rc-util@5.43.0: + resolution: {integrity: sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + rc-virtual-list@3.10.6: resolution: {integrity: sha512-GZNrR78idlrRCfejtbSzftO+rkYF13kcule6tVB2V++S3CoghMko4BUR5bv6aJWNCX7rMb3B2SsWRSj6tn1IdQ==} engines: {node: '>=8.x'} @@ -2686,6 +2712,13 @@ packages: react: '*' react-dom: '*' + rc-virtual-list@3.14.5: + resolution: {integrity: sha512-ZMOnkCLv2wUN8Jz7yI4XiSLa9THlYvf00LuMhb1JlsQCewuU7ydPuHw1rGVPhe9VZYl/5UqODtNd7QKJ2DMGfg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + react-dom@18.2.0: resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: @@ -2710,6 +2743,9 @@ packages: react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react-query@3.39.3: resolution: {integrity: sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==} peerDependencies: @@ -2929,8 +2965,8 @@ packages: resolution: {integrity: sha512-AQdy8s4WhNvUZ6P8F6PB21tSPIYKniic+Ogx0AacBMjKP1GUHN2E9URxQHtCusiwxudnCKkdy4GrHXPPJSkCCw==} engines: {node: ^14.13.1 || >=16.0.0} - scroll-into-view-if-needed@3.0.10: - resolution: {integrity: sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg==} + scroll-into-view-if-needed@3.1.0: + resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} @@ -3124,6 +3160,9 @@ packages: stylis@4.3.2: resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} + stylis@4.3.4: + resolution: {integrity: sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==} + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -3166,8 +3205,8 @@ packages: resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} engines: {node: '>=10'} - throttle-debounce@5.0.0: - resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==} + throttle-debounce@5.0.2: + resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==} engines: {node: '>=12.22'} through2@4.0.2: @@ -3424,20 +3463,38 @@ snapshots: dependencies: '@ctrl/tinycolor': 3.6.1 - '@ant-design/cssinjs@1.17.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@ant-design/colors@7.1.0': dependencies: - '@babel/runtime': 7.22.15 + '@ctrl/tinycolor': 3.6.1 + + '@ant-design/cssinjs-utils@1.0.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@ant-design/cssinjs': 1.21.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@ant-design/cssinjs@1.21.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.25.4 '@emotion/hash': 0.8.0 '@emotion/unitless': 0.7.5 - classnames: 2.3.2 - csstype: 3.1.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.5.1 + csstype: 3.1.3 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - stylis: 4.3.0 + stylis: 4.3.4 + + '@ant-design/fast-color@2.0.6': + dependencies: + '@babel/runtime': 7.25.4 '@ant-design/icons-svg@4.3.1': {} + '@ant-design/icons-svg@4.4.2': {} + '@ant-design/icons@5.2.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@ant-design/colors': 7.0.0 @@ -3449,14 +3506,24 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@ant-design/react-slick@1.0.2(react@18.2.0)': + '@ant-design/icons@5.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 + '@ant-design/colors': 7.1.0 + '@ant-design/icons-svg': 4.4.2 + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@ant-design/react-slick@1.1.2(react@18.2.0)': + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 json2mq: 0.2.0 react: 18.2.0 resize-observer-polyfill: 1.5.1 - throttle-debounce: 5.0.0 + throttle-debounce: 5.0.2 '@babel/code-frame@7.22.13': dependencies: @@ -3894,61 +3961,72 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - '@rc-component/color-picker@1.4.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@rc-component/async-validator@5.0.4': dependencies: - '@babel/runtime': 7.22.15 - '@ctrl/tinycolor': 3.6.1 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + + '@rc-component/color-picker@2.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@ant-design/fast-color': 2.0.6 + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) '@rc-component/context@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.22.15 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) '@rc-component/mini-decimal@1.1.0': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.25.4 '@rc-component/mutate-observer@1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) '@rc-component/portal@1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@rc-component/tour@1.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@rc-component/qrcode@1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@rc-component/tour@1.15.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.25.4 '@rc-component/portal': 1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@rc-component/trigger': 1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@rc-component/trigger': 2.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@rc-component/trigger@1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@rc-component/trigger@2.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.25.4 '@rc-component/portal': 1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.3.2 - rc-align: 4.0.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-resize-observer: 1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -4189,58 +4267,59 @@ snapshots: ansi-styles@6.2.1: {} - antd@5.8.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + antd@5.20.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@ant-design/colors': 7.0.0 - '@ant-design/cssinjs': 1.17.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@ant-design/icons': 5.2.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@ant-design/react-slick': 1.0.2(react@18.2.0) - '@babel/runtime': 7.22.15 + '@ant-design/colors': 7.1.0 + '@ant-design/cssinjs': 1.21.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@ant-design/cssinjs-utils': 1.0.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@ant-design/icons': 5.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@ant-design/react-slick': 1.1.2(react@18.2.0) + '@babel/runtime': 7.25.4 '@ctrl/tinycolor': 3.6.1 - '@rc-component/color-picker': 1.4.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@rc-component/color-picker': 2.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@rc-component/mutate-observer': 1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@rc-component/tour': 1.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@rc-component/trigger': 1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.3.2 + '@rc-component/qrcode': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@rc-component/tour': 1.15.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@rc-component/trigger': 2.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.5.1 copy-to-clipboard: 3.3.3 - dayjs: 1.11.9 - qrcode.react: 3.1.0(react@18.2.0) - rc-cascader: 3.14.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-checkbox: 3.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-collapse: 3.7.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-dialog: 9.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-drawer: 6.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-dropdown: 4.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-field-form: 1.36.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-image: 7.1.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-input: 1.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-input-number: 8.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-mentions: 2.5.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-menu: 9.10.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-notification: 5.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-pagination: 3.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-picker: 3.13.2(dayjs@1.11.9)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-progress: 3.4.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-rate: 2.12.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-resize-observer: 1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-segmented: 2.2.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-select: 14.7.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-slider: 10.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + dayjs: 1.11.13 + rc-cascader: 3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-checkbox: 3.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-collapse: 3.7.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-dialog: 9.5.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-drawer: 7.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-dropdown: 4.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-field-form: 2.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-image: 7.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-input: 1.6.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-input-number: 9.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-mentions: 2.15.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-menu: 9.14.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-motion: 2.9.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-notification: 5.6.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-pagination: 4.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-picker: 4.6.14(dayjs@1.11.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-progress: 4.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-rate: 2.13.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-segmented: 2.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-select: 14.15.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-slider: 11.1.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) rc-steps: 6.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) rc-switch: 4.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-table: 7.32.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-tabs: 12.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-textarea: 1.3.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-tooltip: 6.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-tree: 5.7.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-tree-select: 5.11.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-upload: 4.3.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-table: 7.45.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-tabs: 15.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-textarea: 1.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-tooltip: 6.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-tree: 5.8.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-tree-select: 5.22.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-upload: 4.7.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - scroll-into-view-if-needed: 3.0.10 - throttle-debounce: 5.0.0 + scroll-into-view-if-needed: 3.1.0 + throttle-debounce: 5.0.2 transitivePeerDependencies: - date-fns - luxon @@ -4310,8 +4389,6 @@ snapshots: astral-regex@2.0.0: {} - async-validator@4.2.5: {} - async@3.2.4: {} asynciterator.prototype@1.0.0: @@ -4431,6 +4508,8 @@ snapshots: classnames@2.3.2: {} + classnames@2.5.1: {} + clean-css@5.3.2: dependencies: source-map: 0.6.1 @@ -4595,7 +4674,7 @@ snapshots: dargs@7.0.0: {} - dayjs@1.11.9: {} + dayjs@1.11.13: {} debug@3.2.7: dependencies: @@ -4640,8 +4719,6 @@ snapshots: dependencies: esutils: 2.0.3 - dom-align@1.12.4: {} - dom-serializer@1.4.1: dependencies: domelementtype: 2.3.0 @@ -5877,10 +5954,6 @@ snapshots: q@1.5.1: {} - qrcode.react@3.1.0(react@18.2.0): - dependencies: - react: 18.2.0 - qs@6.11.2: dependencies: side-channel: 1.0.4 @@ -5893,313 +5966,306 @@ snapshots: quick-lru@5.1.1: {} - rc-align@4.0.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-cascader@3.27.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - dom-align: 1.12.4 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - resize-observer-polyfill: 1.5.1 - - rc-cascader@3.14.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.25.4 array-tree-filter: 2.1.0 - classnames: 2.3.2 - rc-select: 14.7.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-tree: 5.7.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.5.1 + rc-select: 14.15.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-tree: 5.8.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-checkbox@3.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-checkbox@3.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-collapse@3.7.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-collapse@3.7.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-dialog@9.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-dialog@9.5.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.25.4 '@rc-component/portal': 1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-drawer@6.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-drawer@7.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.25.4 '@rc-component/portal': 1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-dropdown@4.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-dropdown@4.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - '@rc-component/trigger': 1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-field-form@1.36.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-field-form@2.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - async-validator: 4.2.5 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + '@rc-component/async-validator': 5.0.4 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-image@7.1.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-image@7.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.25.4 '@rc-component/portal': 1.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.3.2 - rc-dialog: 9.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.5.1 + rc-dialog: 9.5.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-motion: 2.9.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-input-number@8.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-input-number@9.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.25.4 '@rc-component/mini-decimal': 1.1.0 - classnames: 2.3.2 - rc-input: 1.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.5.1 + rc-input: 1.6.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-input@1.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-input@1.6.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-mentions@2.5.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-mentions@2.15.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - '@rc-component/trigger': 1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.3.2 - rc-input: 1.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-menu: 9.10.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-textarea: 1.3.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.5.1 + rc-input: 1.6.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-menu: 9.14.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-textarea: 1.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-menu@9.10.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-menu@9.14.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - '@rc-component/trigger': 1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) rc-overflow: 1.3.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-motion@2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-motion@2.9.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-notification@5.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-notification@5.6.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) rc-overflow@1.3.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-resize-observer: 1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-resize-observer: 1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-pagination@3.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-pagination@4.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-picker@3.13.2(dayjs@1.11.9)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-picker@4.6.14(dayjs@1.11.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - '@rc-component/trigger': 1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.5.1 + rc-overflow: 1.3.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) optionalDependencies: - dayjs: 1.11.9 + dayjs: 1.11.13 - rc-progress@3.4.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-progress@4.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-rate@2.12.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-rate@2.13.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-resize-observer@1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-resize-observer@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) resize-observer-polyfill: 1.5.1 - rc-segmented@2.2.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-segmented@2.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-select@14.7.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-select@14.15.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - '@rc-component/trigger': 1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) rc-overflow: 1.3.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) rc-virtual-list: 3.10.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-slider@10.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-slider@11.1.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) rc-steps@6.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) rc-switch@4.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-table@7.32.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-table@7.45.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.25.4 '@rc-component/context': 1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.3.2 - rc-resize-observer: 1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.5.1 + rc-resize-observer: 1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-virtual-list: 3.14.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-tabs@12.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-tabs@15.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-dropdown: 4.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-menu: 9.10.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-resize-observer: 1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-dropdown: 4.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-menu: 9.14.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-motion: 2.9.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-textarea@1.3.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-textarea@1.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-input: 1.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-resize-observer: 1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-input: 1.6.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-tooltip@6.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-tooltip@6.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - '@rc-component/trigger': 1.15.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - classnames: 2.3.2 + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + classnames: 2.5.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-tree-select@5.11.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-tree-select@5.22.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-select: 14.7.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-tree: 5.7.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-select: 14.15.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-tree: 5.8.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-tree@5.7.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-tree@5.8.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) rc-virtual-list: 3.10.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rc-upload@4.3.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + rc-upload@4.7.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -6210,12 +6276,28 @@ snapshots: react-dom: 18.2.0(react@18.2.0) react-is: 16.13.1 + rc-util@5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + '@babel/runtime': 7.25.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-is: 18.3.1 + rc-virtual-list@3.10.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.22.15 - classnames: 2.3.2 - rc-resize-observer: 1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - rc-util: 5.37.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-resize-observer: 1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + rc-virtual-list@3.14.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-resize-observer: 1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rc-util: 5.43.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -6238,6 +6320,8 @@ snapshots: react-is@17.0.2: {} + react-is@18.3.1: {} + react-query@3.39.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.22.15 @@ -6474,7 +6558,7 @@ snapshots: screenfull@6.0.2: {} - scroll-into-view-if-needed@3.0.10: + scroll-into-view-if-needed@3.1.0: dependencies: compute-scroll-into-view: 3.0.3 @@ -6719,6 +6803,8 @@ snapshots: stylis@4.3.2: {} + stylis@4.3.4: {} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -6759,7 +6845,7 @@ snapshots: throttle-debounce@3.0.1: {} - throttle-debounce@5.0.0: {} + throttle-debounce@5.0.2: {} through2@4.0.2: dependencies: diff --git a/src/App.tsx b/src/App.tsx index 347e7fe..ceb3c28 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -3,9 +3,7 @@ import { ConfigProvider } from 'antd' import AppProvider from './components/AppProvider' import useLanguage from './hooks/language.hooks' import Router from '@/router' -import { QueryClient } from 'react-query' -const queryClient = new QueryClient() function App() { const { themeAlgorithm, componentSize, primary } = useTheme() const { locale } = useLanguage() diff --git a/src/api/role.ts b/src/api/role.ts new file mode 100644 index 0000000..348fc0c --- /dev/null +++ b/src/api/role.ts @@ -0,0 +1,11 @@ +import http from '@/utils/http' + +export const getAllRoles = () => { + return http.get('/role/list') +} + +export interface RoleItm { + id: string + name: string + remark: string +} diff --git a/src/api/user.ts b/src/api/user.ts index e009dcb..a934865 100644 --- a/src/api/user.ts +++ b/src/api/user.ts @@ -1,6 +1,6 @@ import http from '@/utils/http' import { isNullOrUnDef } from '@/utils/is' -import { UserData } from '@/views/perm/users/type' +import { createUserDto, updateUserDto, UserData } from '@/views/perm/users/type' export interface UserInfo { username?: string phone?: string @@ -65,3 +65,25 @@ export const getUserList = ({ page, size, status, username }: UserParams) => { }&username=${username || ''}` ) } + +export const createUser = (data: createUserDto) => { + return http.post('/user', data) +} +export const updateUser = (data: updateUserDto) => { + return http.put('/user', data) +} +export const deleteUser = (id: string) => { + return http.delete('/user/' + id) +} + +export const getUserRoles = (id: string) => { + return http.get('/user/' + id + '/role') +} + +export const resetPassword = (id: string) => { + return http.put(`user/password/reset/${id}`) +} + +export const changeStatus = (data: { id: string; status: number }) => { + return http.put(`/user/status/change`, data) +} diff --git a/src/components/AppProvider/index.tsx b/src/components/AppProvider/index.tsx index 7fa3f79..48905c5 100644 --- a/src/components/AppProvider/index.tsx +++ b/src/components/AppProvider/index.tsx @@ -1,3 +1,4 @@ +import { NavigationSetter } from '@/router/nagivage' import { message, Modal, notification } from 'antd' import { QueryClient, QueryClientProvider } from 'react-query' diff --git a/src/enums/httpEnum.ts b/src/enums/httpEnum.ts index 8c85263..ad37d50 100644 --- a/src/enums/httpEnum.ts +++ b/src/enums/httpEnum.ts @@ -7,6 +7,7 @@ export enum ResultEnum { ERROR = 500, OVERDUE = 599, Unauthorized = 401, + Forbidden = 403, TIMEOUT = 10000, TYPE = 'success' } diff --git a/src/router/index.tsx b/src/router/index.tsx index b0197d4..3ac5c13 100644 --- a/src/router/index.tsx +++ b/src/router/index.tsx @@ -1,6 +1,7 @@ import { createBrowserRouter, Navigate, + Outlet, RouterProvider, useRoutes } from 'react-router-dom' @@ -14,6 +15,7 @@ import useLoadRoutes from './useLoadRoutes' import FullLoading from '@/components/Loading/FullLoading' import { useAppSelector } from '@/hooks/redux.hooks' import useMenu from '@/hooks/menu.hooks' +import { NavigationSetter } from './nagivage' // * 导入所有router const metaRouters = import.meta.glob('./modules/*.tsx', { eager: true @@ -31,36 +33,48 @@ Object.keys(metaRouters).forEach((item) => { localRoutes.push(...metaRouters[item][key]) }) }) + +export function BaseLayoutContainer() { + return ( + <> + + + + ) +} + export const staticRoutes: RouteObject[] = [ { path: '/', - element: - }, - { - path: '/', - element: , + element: , children: [ { - path: '/home', - element: lazyLoad( - lazy(() => import('@/views/home')), + path: '/', + element: , + children: [ { - title: i18n.t('home.title'), - requiredAuth: true, - code: 'home' + path: '/home', + element: lazyLoad( + lazy(() => import('@/views/home')), + { + title: i18n.t('home.title'), + requiredAuth: true, + code: 'home' + } + ) } - ) + ] + }, + ...localRoutes, + { + path: '/login', + element: + }, + { + path: '*', + element: } ] - }, - ...localRoutes, - { - path: '/login', - element: - }, - { - path: '*', - element: } ] const Router = () => { @@ -74,7 +88,7 @@ const Router = () => { if (dynamicRoutes.length > 0) { const newRoutes = [...staticRoutes] dynamicRoutes.forEach((route) => { - newRoutes[1].children!.push(route) + newRoutes[0].children![1].children!.push(route) }) setRoutes(newRoutes) setIsLoaded(true) @@ -88,6 +102,6 @@ const Router = () => { return } const router = createBrowserRouter(routes) - return + return } export default Router diff --git a/src/router/nagivage.tsx b/src/router/nagivage.tsx new file mode 100644 index 0000000..2296f4c --- /dev/null +++ b/src/router/nagivage.tsx @@ -0,0 +1,9 @@ +import { NavigateFunction, useNavigate } from 'react-router-dom' + +// 导出一个导航函数 +export let navigate: NavigateFunction | null + +export const NavigationSetter = () => { + navigate = useNavigate() + return null +} diff --git a/src/utils/http/index.ts b/src/utils/http/index.ts index 358f7eb..bf94312 100644 --- a/src/utils/http/index.ts +++ b/src/utils/http/index.ts @@ -118,8 +118,18 @@ export class CommonService extends HttpService { const refresher = Refresher.getInstance() return refresher.predict(error.response.config) } + if (error.response?.status === ResultEnum.Forbidden) { + logout() + return Promise.reject(error) + } if (error.code != 'ERR_CANCELED') { - message.error(error.message) + let errTxt = '' + // @ts-ignore + const serverErr = error.response?.data?.error || '' + if (Array.isArray(serverErr)) { + errTxt += serverErr.join('\n') + } + message.error(errTxt || error.message) } return Promise.reject(error) } diff --git a/src/utils/system.ts b/src/utils/system.ts index b9719de..9eddfc1 100644 --- a/src/utils/system.ts +++ b/src/utils/system.ts @@ -1,11 +1,11 @@ // 动态渲染 Icon 图标 import * as Icons from '@ant-design/icons' -import { RouteObject } from '@/router/interface' import React from 'react' -import { Menu, MenuProps } from 'antd' +import { MenuProps } from 'antd' import store from '@/store' import { setLogout } from '@/store/modules/user/userSlice' import { CustomIconComponentProps } from '@ant-design/icons/lib/components/Icon' +import { navigate } from '@/router/nagivage' type MenuItem = Required['items'][number] const customIcons: { [key: string]: any } = Icons export const getAntIcon = ( @@ -125,7 +125,7 @@ export const getBreadcrumbList = ( export const logout = () => { store.dispatch(setLogout()) - window.location.href = '/login' + navigate?.('/login') } export function buildMenuTree( diff --git a/src/views/perm/users/index.tsx b/src/views/perm/users/index.tsx index b1cf8a3..8091bab 100644 --- a/src/views/perm/users/index.tsx +++ b/src/views/perm/users/index.tsx @@ -1,13 +1,40 @@ -import { ColProps, Divider, message, Popconfirm, Table, Tooltip } from 'antd' +import { + ColProps, + Divider, + message, + Popconfirm, + Table, + Tooltip, + Flex, + Avatar, + Button +} from 'antd' import { UserData } from './type' -import { DeleteOutlined, EyeOutlined, ToolOutlined } from '@ant-design/icons' -import { useState } from 'react' +import { + DeleteOutlined, + EyeOutlined, + PlusCircleOutlined, + RedoOutlined, + ToolOutlined +} from '@ant-design/icons' +import { useMemo, useState } from 'react' import { FormOption, Mode } from '@/components/Form/FormPro' import { useSetState } from 'react-use' import { useQuery } from 'react-query' -import { getUserList, UserParams } from '@/api/user' +import { + createUser, + deleteUser, + getUserList, + getUserRoles, + resetPassword, + updateUser, + UserParams +} from '@/api/user' import { PageWrapper } from '@/components/Page' import FormSearch from '@/components/Form/FormSearch' +import FormModal from '@/components/Form/FormModal' +import { getAllRoles } from '@/api/role' +import styled from 'styled-components' export default function UsersPage() { const [searchParams, setSearchParams] = useSetState({ @@ -24,8 +51,19 @@ export default function UsersPage() { return res.data } ) + const { data: roleData } = useQuery('getAllRoles', getAllRoles) const [currentData, setCurrentData] = useState(null) - + const rolesOptions = useMemo(() => { + if (roleData) { + return roleData.data!.map((role) => { + return { + label: role.name, + value: role.id + } + }) + } + return [] + }, [roleData]) const [modal, setModal] = useSetState<{ visible: boolean mode: Mode @@ -48,7 +86,14 @@ export default function UsersPage() { { title: '账号', dataIndex: 'username', - key: 'username' + key: 'username', + render: (v: string, record: UserData) => { + return ( + + {v} + + ) + } }, { title: '手机号', @@ -84,7 +129,7 @@ export default function UsersPage() { { title: '操作', key: 'control', - width: 120, + width: 160, render: (v: number, record: UserData) => { const controls = [] controls.push( @@ -125,6 +170,21 @@ export default function UsersPage() {
) + controls.push( + onResetPassword(record)} + > + + + + + + + ) const result: JSX.Element[] = [] controls.forEach((item, index) => { if (index) { @@ -151,43 +211,49 @@ export default function UsersPage() { params.id = currentData.id } if (modal.mode == 'add') { - // const res = await createMenu(params) - message.success('菜单创建成功') + const res = await createUser(params) + message.success('创建成功') } else if (modal.mode == 'edit') { - // const res = await updateMenu(params) - message.success('菜单更新成功') + const res = await updateUser(params) + message.success('更新成功') } onModalClose() refetch() } - async function onModalShow(record: UserData | null, mode: Mode) { setCurrentData(record) let newModal = {} if (record) { - // const { data: menuPermList } = await getMenuPerm(record?.id as string) + const { data: roleIds } = await getUserRoles(record?.id as string) newModal = { visible: true, mode, initialValues: { - ...record + ...record, + roleIds } } } else { newModal = { visible: true, mode, - initialValues: { orderNum: 0, type: 1, menuPermList: [] } + initialValues: { roleIds: [] } } } setModal(newModal) } async function onDel(record: UserData) { - // const res = await deleteMenu(record.id) - message.success('菜单删除成功') + const res = await deleteUser(record.id) + message.success('删除成功') + refetch() + } + + async function onResetPassword(record: UserData) { + await resetPassword(record.id) + message.success('重置密码成功') refetch() } - const formOptions: FormOption[] = [ + const searchFormOptions: FormOption[] = [ { type: 'input', name: 'username', @@ -213,6 +279,55 @@ export default function UsersPage() { } ] + const modalFormOptions = useMemo(() => { + return [ + { + type: 'input', + name: 'username', + label: '用户名', + rules: [{ required: true, message: '用户名不能为空' }], + componentProps: { + disabled: modal.mode != 'add', + placeholder: '请输入用户名', + allowClear: true + } + }, + { + type: 'input', + name: 'phone', + label: '手机号', + rules: [{ required: true, message: '手机号不能为空' }], + componentProps: { + placeholder: '请输入手机号', + allowClear: true + } + }, + { + type: 'input', + name: 'email', + label: '邮箱', + rules: [{ required: true, message: '邮箱不能为空' }], + componentProps: { + placeholder: '请输入邮箱', + allowClear: true + } + }, + { + type: 'select', + name: 'roleIds', + label: '角色', + options: rolesOptions, + hidden: () => { + return currentData?.type === 0 + }, + componentProps: { + placeholder: '请选择角色', + mode: 'multiple' + } + } + ] + }, [rolesOptions, currentData, modal]) + function onSearch(values: { username: string; status: number | undefined }) { setSearchParams({ ...values, @@ -235,9 +350,23 @@ export default function UsersPage() { status: undefined }) } - formOptions={formOptions} + formOptions={searchFormOptions} onSearch={onSearch} /> + + + `共 ${total} 条数据`, + showTotal: () => `共 ${data?.total} 条数据`, onChange: onPageChange }} >
+ ) } diff --git a/src/views/perm/users/type.ts b/src/views/perm/users/type.ts index 91519b8..0b1e4bb 100644 --- a/src/views/perm/users/type.ts +++ b/src/views/perm/users/type.ts @@ -9,3 +9,17 @@ export interface UserData { createDate: string updateDate: string } + +export interface createUserDto { + username: string + phone: string + email: string + status: number + avatar: string + type: number + roleIds: string[] +} + +export interface updateUserDto extends createUserDto { + id: string +} diff --git a/src/views/system/menus/index.tsx b/src/views/system/menus/index.tsx index 415457d..21ca3f7 100644 --- a/src/views/system/menus/index.tsx +++ b/src/views/system/menus/index.tsx @@ -134,7 +134,7 @@ const MenusPage = () => { rules: [{ required: true, message: '排序不能为空' }] } ] - }, [permsData]) + }, [permOptions]) const onTreeSelect = ( keys: React.Key[], From 35383bb3fb741e3eb35a1187cae84528eccb0051 Mon Sep 17 00:00:00 2001 From: kirk Date: Tue, 3 Sep 2024 17:20:47 +0800 Subject: [PATCH 29/42] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96axiosCanceler?= =?UTF-8?q?=E6=97=B6=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/RouterGuard.tsx | 8 +++++++- src/views/perm/roles/index.tsx | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/router/RouterGuard.tsx b/src/router/RouterGuard.tsx index d06d17e..5b6908a 100644 --- a/src/router/RouterGuard.tsx +++ b/src/router/RouterGuard.tsx @@ -23,8 +23,14 @@ const RouterGuard = (props: IProps) => { props?.meta?.title && addTab(props.meta.title) }, [props]) const { addTab } = useTabs() + // * 在跳转路由之前,清除所有的请求 - axiosCanceler.removeAllPending() + useEffect(() => { + return () => { + axiosCanceler.removeAllPending() + } + }, []) + const { meta } = props if (!meta?.requiredAuth) return props.children if (!accessToken) return diff --git a/src/views/perm/roles/index.tsx b/src/views/perm/roles/index.tsx index be8d910..32e5feb 100644 --- a/src/views/perm/roles/index.tsx +++ b/src/views/perm/roles/index.tsx @@ -1,3 +1,6 @@ +import { getAllRoles } from '@/api/role' + export default function RolesPage() { + getAllRoles() return
角色管理
} From 0752c014b177ff8d9edb0eed217d9ffdf967ee91 Mon Sep 17 00:00:00 2001 From: kirk Date: Fri, 6 Sep 2024 12:08:08 +0800 Subject: [PATCH 30/42] =?UTF-8?q?feat:=20=E7=A6=81=E7=94=A8=E5=90=AF?= =?UTF-8?q?=E7=94=A8&=E5=88=A0=E9=99=A4=E8=B4=A6=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/perm/users/index.tsx | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/src/views/perm/users/index.tsx b/src/views/perm/users/index.tsx index 8091bab..11c6785 100644 --- a/src/views/perm/users/index.tsx +++ b/src/views/perm/users/index.tsx @@ -7,7 +7,8 @@ import { Tooltip, Flex, Avatar, - Button + Button, + Switch } from 'antd' import { UserData } from './type' import { @@ -22,6 +23,7 @@ import { FormOption, Mode } from '@/components/Form/FormPro' import { useSetState } from 'react-use' import { useQuery } from 'react-query' import { + changeStatus, createUser, deleteUser, getUserList, @@ -109,12 +111,16 @@ export default function UsersPage() { title: '状态', dataIndex: 'status', key: 'status', - render: (v: number) => - v === 1 ? ( - 启用 - ) : ( - 禁用 - ) + render: (v: number, record: UserData) => ( + { + onEnableChange(v, record.id) + }} + value={Boolean(v)} + /> + ) }, { title: '注册时间', @@ -253,6 +259,15 @@ export default function UsersPage() { message.success('重置密码成功') refetch() } + + async function onEnableChange(v: boolean, id: string): Promise { + await changeStatus({ + id, + status: Number(v) + }) + message.success(v ? '已启用' : '已禁用') + refetch() + } const searchFormOptions: FormOption[] = [ { type: 'input', From 5ed809b0e93524cde5b5af6cbe0471cad4a05004 Mon Sep 17 00:00:00 2001 From: kirk Date: Fri, 6 Sep 2024 17:57:25 +0800 Subject: [PATCH 31/42] =?UTF-8?q?feat:=20=E6=94=B9=E9=80=A0=E4=B8=BAcommon?= =?UTF-8?q?Page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/user.ts | 5 +- src/components/Form/FormModal.tsx | 8 +- src/components/Form/FormPro.tsx | 27 +- src/components/Form/FormSearch.tsx | 4 +- src/components/Page/CommonPage.tsx | 79 ++++ .../Page/{index.tsx => Wrapper.tsx} | 0 src/components/Page/type.ts | 4 + src/views/perm/roles/index.tsx | 3 - src/views/perm/users/index.tsx | 336 ++++++++---------- src/views/perm/users/options.ts | 0 10 files changed, 257 insertions(+), 209 deletions(-) create mode 100644 src/components/Page/CommonPage.tsx rename src/components/Page/{index.tsx => Wrapper.tsx} (100%) create mode 100644 src/components/Page/type.ts create mode 100644 src/views/perm/users/options.ts diff --git a/src/api/user.ts b/src/api/user.ts index a934865..85a49dc 100644 --- a/src/api/user.ts +++ b/src/api/user.ts @@ -1,3 +1,4 @@ +import { Pagination } from '@/components/Page/type' import http from '@/utils/http' import { isNullOrUnDef } from '@/utils/is' import { createUserDto, updateUserDto, UserData } from '@/views/perm/users/type' @@ -49,9 +50,7 @@ export const getAuthRoutes = () => { ) } -export interface UserParams { - page: number - size: number +export interface UserParams extends Pagination { status?: number | undefined username?: string } diff --git a/src/components/Form/FormModal.tsx b/src/components/Form/FormModal.tsx index 69dd2fa..d0ad003 100644 --- a/src/components/Form/FormModal.tsx +++ b/src/components/Form/FormModal.tsx @@ -2,14 +2,16 @@ import React, { useEffect } from 'react' import { Modal, Button, Form, ColProps } from 'antd' import FormPro, { FormOption } from './FormPro' -interface FormModalProps { +export type Mode = 'add' | 'edit' | 'see' + +export interface FormModalProps { visible?: boolean onClose?: () => void onSubmit?: (values: any) => void formOptions?: FormOption[] labelCol?: ColProps initialValues?: Record - mode?: 'add' | 'edit' | 'see' + mode?: Mode } const FormModal: React.FC = ({ @@ -74,7 +76,7 @@ const FormModal: React.FC = ({ formOptions={formOptions} labelCol={labelCol} initialValues={initialValues} - mode={mode} + disabled={mode === 'see'} /> ) diff --git a/src/components/Form/FormPro.tsx b/src/components/Form/FormPro.tsx index 4e58c91..88094a4 100644 --- a/src/components/Form/FormPro.tsx +++ b/src/components/Form/FormPro.tsx @@ -26,8 +26,6 @@ import { } from 'antd' import { FormItemProps, FormInstance } from 'antd/lib/form' -export type Mode = 'add' | 'edit' | 'see' - export interface FormOptionBase { type: | 'input' @@ -125,7 +123,7 @@ export type FormOption = export interface FormProProps { formOptions: FormOption[] initialValues?: Record - mode?: Mode + disabled?: boolean labelCol?: ColProps onFinish?: (values: any) => void form?: FormInstance @@ -136,7 +134,7 @@ export interface FormProProps { const FormPro: React.FC = ({ formOptions, initialValues = {}, - mode = 'add', + disabled = false, onFinish, labelCol, form, @@ -146,7 +144,6 @@ const FormPro: React.FC = ({ const [internalForm] = Form.useForm() const formInstance = form || internalForm const [formValues, setFormValues] = useState(initialValues) - const isSeeMode = mode === 'see' const renderFormItem = (item: FormOption) => { const commonProps = { @@ -176,14 +173,14 @@ const FormPro: React.FC = ({ case 'input': return ( ) case 'select': return (