diff --git a/package.json b/package.json index 5debebe..0e118eb 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@fortawesome/react-fontawesome": "^0.2.2", "@pansy/react-charts": "^1.0.0", "@quiet-front-end/json-schema-editor-antd": "^0.3.0", + "@shadcn/ui": "^0.0.4", "@testing-library/jest-dom": "^5.16.2", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^13.5.0", @@ -29,13 +30,14 @@ "boostrap": "^2.0.0", "codemirror": "^6.0.1", "codemirror-promql": "0.17.0", + "components": "^0.1.0", "downshift": "^9.0.6", "echarts": "^5.4.3", "echarts-for-react": "^3.0.2", "framer-motion": "^11.13.5", "jsoneditor": "^10.0.0", "jsoneditor-react": "^3.1.2", - "lucide-react": "^0.468.0", + "lucide-react": "^0.469.0", "moment": "^2.30.1", "next": "^15.1.0", "prom-client": "^15.1.0", @@ -82,4 +84,4 @@ "postcss": "^8.4.49", "tailwindcss": "^3.4.16" } -} \ No newline at end of file +} diff --git a/src/components/index.jsx b/src/components/index.jsx index 07855c7..240a2f8 100644 --- a/src/components/index.jsx +++ b/src/components/index.jsx @@ -15,13 +15,12 @@ import { } from '@ant-design/icons'; import { DownOutlined, LeftOutlined } from '@ant-design/icons'; import logoIcon from '../img/logo.jpeg' -import githubIcon from '../img/github_logo.png' import { getUserInfo } from '../api/user' import Auth from '../utils/Auth' import { getTenantList } from '../api/tenant' import './index.css'; import { ComponentSider } from './sider' -import { useNavigate } from 'react-router-dom' +import {Link, useNavigate} from 'react-router-dom' export const ComponentsContent = (props) => { const { name, c } = props @@ -45,6 +44,10 @@ export const ComponentsContent = (props) => { const content = ( <> + + @@ -97,6 +100,8 @@ export const ComponentsContent = (props) => { } setTenantStatus(true); } catch (error) { + localStorage.clear() + message.error("获取租户错误, 退出登录") console.error(error) } } diff --git a/src/pages/alert/rule/AlertRuleCreateModal.jsx b/src/pages/alert/rule/AlertRuleCreateModal.jsx index cd74d5a..98f08dd 100644 --- a/src/pages/alert/rule/AlertRuleCreateModal.jsx +++ b/src/pages/alert/rule/AlertRuleCreateModal.jsx @@ -1511,7 +1511,13 @@ export const AlertRuleCreateModal = ({ visible, onClose, selectedRow, type, hand
-
diff --git a/src/pages/alert/rule/create.jsx b/src/pages/alert/rule/create.jsx index 146ff1a..0aff723 100644 --- a/src/pages/alert/rule/create.jsx +++ b/src/pages/alert/rule/create.jsx @@ -1873,7 +1873,13 @@ export const AlertRule = ({ type }) => {
-
diff --git a/src/pages/alert/rule/index.jsx b/src/pages/alert/rule/index.jsx index c3213dd..b37fd66 100644 --- a/src/pages/alert/rule/index.jsx +++ b/src/pages/alert/rule/index.jsx @@ -288,7 +288,12 @@ export const AlertRuleList = () => {
- +
diff --git a/src/pages/alert/ruleGroup/AlertRuleGroupCreateModal.jsx b/src/pages/alert/ruleGroup/AlertRuleGroupCreateModal.jsx index e6609d1..e01998e 100644 --- a/src/pages/alert/ruleGroup/AlertRuleGroupCreateModal.jsx +++ b/src/pages/alert/ruleGroup/AlertRuleGroupCreateModal.jsx @@ -101,7 +101,13 @@ export const AlertRuleGroupCreateModal = ({ visible, onClose, selectedRow, type,
-
diff --git a/src/pages/alert/ruleGroup/index.jsx b/src/pages/alert/ruleGroup/index.jsx index 06db740..08011f0 100644 --- a/src/pages/alert/ruleGroup/index.jsx +++ b/src/pages/alert/ruleGroup/index.jsx @@ -192,7 +192,14 @@ export const AlertRuleGroup = ({ }) => { />
-
diff --git a/src/pages/alert/tmpl/RuleTemplateCreateModal.jsx b/src/pages/alert/tmpl/RuleTemplateCreateModal.jsx index 769019c..094c2bb 100644 --- a/src/pages/alert/tmpl/RuleTemplateCreateModal.jsx +++ b/src/pages/alert/tmpl/RuleTemplateCreateModal.jsx @@ -840,7 +840,13 @@ const RuleTemplateCreateModal = ({ visible, onClose, selectedRow, type, handleLi {type !== 'view' &&
-
diff --git a/src/pages/alert/tmpl/index.jsx b/src/pages/alert/tmpl/index.jsx index 05e2207..77239e4 100644 --- a/src/pages/alert/tmpl/index.jsx +++ b/src/pages/alert/tmpl/index.jsx @@ -198,7 +198,13 @@ export const RuleTemplate = () => {
-
@@ -227,7 +233,12 @@ export const RuleTemplate = () => { - diff --git a/src/pages/alert/tmplGroup/RuleTemplateGroupCreateModal.jsx b/src/pages/alert/tmplGroup/RuleTemplateGroupCreateModal.jsx index defba46..a8fb6bf 100644 --- a/src/pages/alert/tmplGroup/RuleTemplateGroupCreateModal.jsx +++ b/src/pages/alert/tmplGroup/RuleTemplateGroupCreateModal.jsx @@ -103,7 +103,13 @@ const RuleTemplateGroupCreateModal = ({ visible, onClose, selectedRow, openType,
-
diff --git a/src/pages/alert/tmplGroup/index.jsx b/src/pages/alert/tmplGroup/index.jsx index 2d41aea..e5c6531 100644 --- a/src/pages/alert/tmplGroup/index.jsx +++ b/src/pages/alert/tmplGroup/index.jsx @@ -229,7 +229,13 @@ export const RuleTemplateGroup = () => { />
-
@@ -251,11 +257,11 @@ export const RuleTemplateGroup = () => { handleList={handleList}/> -
+
diff --git a/src/pages/dashboards/folder/create.jsx b/src/pages/dashboards/folder/create.jsx index 2ea9500..d1b8b3c 100644 --- a/src/pages/dashboards/folder/create.jsx +++ b/src/pages/dashboards/folder/create.jsx @@ -120,7 +120,13 @@ const CreateFolderModal = ({ visible, onClose, selectedRow, type, handleList })
-
diff --git a/src/pages/dashboards/folder/index.jsx b/src/pages/dashboards/folder/index.jsx index 8cc167d..cc6dc19 100644 --- a/src/pages/dashboards/folder/index.jsx +++ b/src/pages/dashboards/folder/index.jsx @@ -140,7 +140,13 @@ export const DashboardFolder = () => { />
-
diff --git a/src/pages/datasources/DatasourceCreateModal.jsx b/src/pages/datasources/DatasourceCreateModal.jsx index 4480a4c..3d0595d 100644 --- a/src/pages/datasources/DatasourceCreateModal.jsx +++ b/src/pages/datasources/DatasourceCreateModal.jsx @@ -439,7 +439,15 @@ export const CreateDatasourceModal = ({ visible, onClose, selectedRow, type, han - diff --git a/src/pages/datasources/index.jsx b/src/pages/datasources/index.jsx index fa324f7..5318dfe 100644 --- a/src/pages/datasources/index.jsx +++ b/src/pages/datasources/index.jsx @@ -187,7 +187,13 @@ export const Datasources = () => { />
-
diff --git a/src/pages/duty/DutyManageCreateModal.jsx b/src/pages/duty/DutyManageCreateModal.jsx index a371467..26d63c3 100644 --- a/src/pages/duty/DutyManageCreateModal.jsx +++ b/src/pages/duty/DutyManageCreateModal.jsx @@ -160,7 +160,13 @@ export const CreateDutyModal = ({ visible, onClose, handleList, selectedRow, typ
-
diff --git a/src/pages/duty/calendar/CreateCalendar.jsx b/src/pages/duty/calendar/CreateCalendar.jsx index 76b02ed..03a047e 100644 --- a/src/pages/duty/calendar/CreateCalendar.jsx +++ b/src/pages/duty/calendar/CreateCalendar.jsx @@ -262,7 +262,13 @@ export const CreateCalendarModal = ({ visible, onClose, dutyId }) => {
-
diff --git a/src/pages/duty/calendar/UpdateCalendar.jsx b/src/pages/duty/calendar/UpdateCalendar.jsx index 51d8e73..2d7de8a 100644 --- a/src/pages/duty/calendar/UpdateCalendar.jsx +++ b/src/pages/duty/calendar/UpdateCalendar.jsx @@ -89,7 +89,14 @@ export const UpdateCalendarModal = ({ visible, onClose, time, tenantId, dutyId, - diff --git a/src/pages/duty/index.jsx b/src/pages/duty/index.jsx index db45b02..2babc1e 100644 --- a/src/pages/duty/index.jsx +++ b/src/pages/duty/index.jsx @@ -176,7 +176,13 @@ export const DutyManage = () => { return ( <>
-
diff --git a/src/pages/members/role/UserRoleCreateModal.jsx b/src/pages/members/role/UserRoleCreateModal.jsx index 6945325..21f8adf 100644 --- a/src/pages/members/role/UserRoleCreateModal.jsx +++ b/src/pages/members/role/UserRoleCreateModal.jsx @@ -170,7 +170,13 @@ const UserRoleCreateModal = ({ visible, onClose, selectedRow, type, handleList }
-
diff --git a/src/pages/members/role/index.jsx b/src/pages/members/role/index.jsx index 188ac7e..125c3ed 100644 --- a/src/pages/members/role/index.jsx +++ b/src/pages/members/role/index.jsx @@ -120,7 +120,13 @@ export const UserRole = () => { return ( <>
-
diff --git a/src/pages/members/user/UserChangePass.jsx b/src/pages/members/user/UserChangePass.jsx index c33dad4..7446a3f 100644 --- a/src/pages/members/user/UserChangePass.jsx +++ b/src/pages/members/user/UserChangePass.jsx @@ -66,7 +66,13 @@ const UserChangePass = ({ visible, onClose, userid, username }) => {
- diff --git a/src/pages/members/user/UserCreateModal.jsx b/src/pages/members/user/UserCreateModal.jsx index 5a9c202..8e9071f 100644 --- a/src/pages/members/user/UserCreateModal.jsx +++ b/src/pages/members/user/UserCreateModal.jsx @@ -180,7 +180,13 @@ const UserCreateModal = ({ visible, onClose, selectedRow, type, handleList }) => }
-
diff --git a/src/pages/members/user/index.jsx b/src/pages/members/user/index.jsx index 861c707..154b1d4 100644 --- a/src/pages/members/user/index.jsx +++ b/src/pages/members/user/index.jsx @@ -150,7 +150,13 @@ export const User = () => { onSearch={onSearch} style={{ width: 300 }} /> -
diff --git a/src/pages/notice/NoticeObjectCreateModal.jsx b/src/pages/notice/NoticeObjectCreateModal.jsx index 84a99dd..e9f93ee 100644 --- a/src/pages/notice/NoticeObjectCreateModal.jsx +++ b/src/pages/notice/NoticeObjectCreateModal.jsx @@ -466,7 +466,13 @@ export const CreateNoticeObjectModal = ({ visible, onClose, selectedRow, type, h )}
-
diff --git a/src/pages/notice/index.jsx b/src/pages/notice/index.jsx index ddac147..99f2460 100644 --- a/src/pages/notice/index.jsx +++ b/src/pages/notice/index.jsx @@ -175,7 +175,13 @@ export const NoticeObjects = () => {
-
diff --git a/src/pages/notice/tmpl/NoticeTemplateCreateModal.jsx b/src/pages/notice/tmpl/NoticeTemplateCreateModal.jsx index 76ea60e..a501cdf 100644 --- a/src/pages/notice/tmpl/NoticeTemplateCreateModal.jsx +++ b/src/pages/notice/tmpl/NoticeTemplateCreateModal.jsx @@ -297,7 +297,13 @@ const NoticeTemplateCreateModal = ({ visible, onClose, selectedRow, type, handle )}
-
diff --git a/src/pages/notice/tmpl/index.jsx b/src/pages/notice/tmpl/index.jsx index 077fc46..d73ab5b 100644 --- a/src/pages/notice/tmpl/index.jsx +++ b/src/pages/notice/tmpl/index.jsx @@ -159,7 +159,13 @@ export const NoticeTemplate = () => { />
-
diff --git a/src/pages/probing/create.jsx b/src/pages/probing/create.jsx index 8fd2c9b..a3185d1 100644 --- a/src/pages/probing/create.jsx +++ b/src/pages/probing/create.jsx @@ -583,7 +583,15 @@ export const CreateProbingRule = ({ type, handleList }) => {
-
diff --git a/src/pages/probing/index.jsx b/src/pages/probing/index.jsx index d7c178e..9616d53 100644 --- a/src/pages/probing/index.jsx +++ b/src/pages/probing/index.jsx @@ -497,7 +497,12 @@ export const Probing = () => { handleList(probingType) }}>刷 新 - + diff --git a/src/pages/profile/index.jsx b/src/pages/profile/index.jsx new file mode 100644 index 0000000..4369993 --- /dev/null +++ b/src/pages/profile/index.jsx @@ -0,0 +1,179 @@ +import { Avatar, Form, Input, Button, message } from "antd"; +import React, { useEffect, useState } from "react"; +import { getUserInfo, updateUser } from "../../api/user"; + +export default function Profile() { + const [userInfo, setUserInfo] = useState(null); + const [isEditing, setIsEditing] = useState(false); // 控制编辑模式的状态 + const [form] = Form.useForm(); + + useEffect(() => { + fetchUserInfo(); + }, []); + + const fetchUserInfo = async () => { + try { + const res = await getUserInfo(); + setUserInfo(res.data); + form.setFieldsValue({ + password: "****************", + phone: res.data.phone, + email: res.data.email, + }); + } catch (error) { + console.error(error); + message.error("Failed to fetch user info"); + } + }; + + useEffect(() => { + if (isEditing) { + form.setFieldsValue({ password: "" }); + } else { + form.setFieldsValue({ password: "****************" }); + } + }, [isEditing]); + + const handleUpdate = async (values) => { + try { + const params = { + ...userInfo, + phone: values.phone, + email: values.email, + password: values.password, + }; + await updateUser(params); + setIsEditing(false); // 更新成功后退出编辑模式 + await fetchUserInfo(); // 重新获取用户信息 + message.success("用户信息更新成功"); + } catch (error) { + console.error(error); + message.error("Failed to update user info"); + } + }; + + return ( +
+
+ {/* Left Column - Profile Info */} +
+
+
+ {/* Avatar Section */} +
+ +
+ + {userInfo?.username?.charAt(0).toUpperCase() || ''} + +
+
+
+ {/* Profile Info */} +
+

{userInfo?.username}

+

UID: {userInfo?.userid}

+
+ {/* Edit Profile Button */} +
+ +
+
+
+
+ + {/* Right Column - Account Info */} +
+
+
+

账户信息

+
+
+ {/* Phone */} + + + + + {/* Email */} + + + + + {/* Password */} + + + + + {/* 按钮区域 */} + {isEditing && ( +
+ {/* 退出编辑按钮 */} + + + {/* 更新按钮 */} + +
+ )} + +
+
+
+
+ ); +} \ No newline at end of file diff --git a/src/pages/settings/index.jsx b/src/pages/settings/index.jsx index 5065b4c..b0bff8f 100644 --- a/src/pages/settings/index.jsx +++ b/src/pages/settings/index.jsx @@ -115,7 +115,13 @@ export const SystemSettings = () => { - + diff --git a/src/pages/silence/SilenceRuleCreateModal.jsx b/src/pages/silence/SilenceRuleCreateModal.jsx index 3e444c7..5e3c443 100644 --- a/src/pages/silence/SilenceRuleCreateModal.jsx +++ b/src/pages/silence/SilenceRuleCreateModal.jsx @@ -185,7 +185,13 @@ export const CreateSilenceModal = ({ visible, onClose, selectedRow, type, handle
-
diff --git a/src/pages/subscribe/create.jsx b/src/pages/subscribe/create.jsx index c7d16fc..bfd1850 100644 --- a/src/pages/subscribe/create.jsx +++ b/src/pages/subscribe/create.jsx @@ -311,7 +311,13 @@ export const CreateSubscribeModel = ({ visible, onClose, selectedRow, type, hand
-
diff --git a/src/pages/subscribe/index.jsx b/src/pages/subscribe/index.jsx index c8a11b7..1b84c23 100644 --- a/src/pages/subscribe/index.jsx +++ b/src/pages/subscribe/index.jsx @@ -178,7 +178,12 @@ export const Subscribe = () => {
- +
diff --git a/src/pages/tenant/CreateTenant.jsx b/src/pages/tenant/CreateTenant.jsx index a1b191a..d4a8155 100644 --- a/src/pages/tenant/CreateTenant.jsx +++ b/src/pages/tenant/CreateTenant.jsx @@ -131,7 +131,13 @@ export const CreateTenant = ({ visible, onClose, selectedRow, type, handleList }
-
diff --git a/src/pages/tenant/index.jsx b/src/pages/tenant/index.jsx index bf824f5..cb827ac 100644 --- a/src/pages/tenant/index.jsx +++ b/src/pages/tenant/index.jsx @@ -141,7 +141,13 @@ export const Tenants = () => { return ( <>
-
diff --git a/src/pages/tenant/quota.jsx b/src/pages/tenant/quota.jsx index 613a72e..48ae375 100644 --- a/src/pages/tenant/quota.jsx +++ b/src/pages/tenant/quota.jsx @@ -114,7 +114,13 @@ export const TenantQuota = ({tenantInfo})=>{ 取消 - diff --git a/src/pages/tenant/users.jsx b/src/pages/tenant/users.jsx index cea3c76..612b6fd 100644 --- a/src/pages/tenant/users.jsx +++ b/src/pages/tenant/users.jsx @@ -259,7 +259,13 @@ export const TenantUsers = ({ tenantInfo }) => {
-
diff --git a/src/routes/index.jsx b/src/routes/index.jsx index e1eef32..6711bd5 100644 --- a/src/routes/index.jsx +++ b/src/routes/index.jsx @@ -31,6 +31,7 @@ import {AlertEvent} from "../pages/event"; import {Probing} from "../pages/probing"; import {CreateProbingRule} from "../pages/probing/create"; import {OnceProbing} from "../pages/probing/once"; +import Profile from "../pages/profile"; // eslint-disable-next-line import/no-anonymous-default-export export default [ @@ -166,6 +167,10 @@ export default [ path: '/subscribe/create', element: } /> }, + { + path: '/profile', + element: } /> + }, { path: '/*', element: diff --git a/src/utils/Auth.jsx b/src/utils/Auth.jsx index 9a9ff02..bfefc36 100644 --- a/src/utils/Auth.jsx +++ b/src/utils/Auth.jsx @@ -1,53 +1,59 @@ -/* eslint-disable react-hooks/exhaustive-deps */ -import { useNavigate } from 'react-router-dom' -import { useEffect, useState } from 'react' -import { message } from 'antd' +import { useEffect, useState } from 'react'; +import { useNavigate } from 'react-router-dom'; +import { message } from 'antd'; import axios from 'axios'; const Auth = () => { - const navigate = useNavigate() - const [errorCount, setErrorCount] = useState(0) - - const checkUser = async () => { - const token = localStorage.getItem('Authorization') - if (!token) { - navigate('/login') // 未登录,跳转到登录页面 - } - } + const navigate = useNavigate(); + const [errorCount, setErrorCount] = useState(0); // 检查用户是否已经登录 useEffect(() => { - checkUser() - }, [checkUser]) + const checkUser = async () => { + const token = localStorage.getItem('Authorization'); + if (!token) { + navigate('/login'); // 未登录,跳转到登录页面 + } + }; + + checkUser(); + }, [navigate]); // 设置全局请求头 - const token = localStorage.getItem('Authorization') - axios.defaults.headers.common['Authorization'] = `Bearer ${token}` + useEffect(() => { + const token = localStorage.getItem('Authorization'); + if (token) { + axios.defaults.headers.common['Authorization'] = `Bearer ${token}`; + } + }, []); // 响应拦截器 - axios.interceptors.response.use( - response => { - return response - }, - error => { - if (error.response.status === 401) { - setErrorCount(prevCount => prevCount + 1) + useEffect(() => { + const interceptor = axios.interceptors.response.use( + response => response, + error => { + if (error.response?.status === 401) { + setErrorCount(prevCount => prevCount + 1); + } + return Promise.reject(error); } - return Promise.reject(error) - } - ) + ); + + return () => { + axios.interceptors.response.eject(interceptor); // 清理拦截器 + }; + }, []); // 检查错误次数并显示提示消息 useEffect(() => { if (errorCount > 0) { - // 清除LocalStorage中的Authorization值 - localStorage.removeItem('Authorization') - navigate('/login') // 跳转到登录页面 - message.error('登录已过期,请重新登录') + localStorage.clear() + navigate('/login'); // 跳转到登录页面 + message.error('登录已过期,请重新登录'); } - }, [errorCount, navigate]) + }, [errorCount, navigate]); - return null -} + return null; +}; -export default Auth \ No newline at end of file +export default Auth; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 4ea7908..5e56a68 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2453,6 +2453,20 @@ resolved "https://registry.npmmirror.com/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz#7f698254aadf921e48dda8c0a6b304026b8a9323" integrity sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A== +"@shadcn/ui@^0.0.4": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@shadcn/ui/-/ui-0.0.4.tgz#a0835202fa79073245bc2cb5f837bc514d96b4cb" + integrity sha512-0dtu/5ApsOZ24qgaZwtif8jVwqol7a4m1x5AxPuM1k5wxhqU7t/qEfBGtaSki1R8VlbTQfCj5PAlO45NKCa7Gg== + dependencies: + chalk "5.2.0" + commander "^10.0.0" + execa "^7.0.0" + fs-extra "^11.1.0" + node-fetch "^3.3.0" + ora "^6.1.2" + prompts "^2.4.2" + zod "^3.20.2" + "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" @@ -3895,6 +3909,11 @@ base16@^1.0.0: resolved "https://registry.npmmirror.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" integrity sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ== +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + basic-auth@~2.0.1: version "2.0.1" resolved "https://registry.npmmirror.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" @@ -3932,6 +3951,15 @@ bintrees@1.0.2: resolved "https://registry.npmmirror.com/bintrees/-/bintrees-1.0.2.tgz#49f896d6e858a4a499df85c38fb399b9aff840f8" integrity sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw== +bl@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273" + integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ== + dependencies: + buffer "^6.0.3" + inherits "^2.0.4" + readable-stream "^3.4.0" + bluebird@^3.5.5: version "3.7.2" resolved "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -4061,6 +4089,14 @@ buffer-indexof@^1.0.0: resolved "https://registry.npmmirror.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + builtin-modules@^3.1.0: version "3.2.0" resolved "https://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" @@ -4181,6 +4217,11 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" +chalk@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" + integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== + chalk@^1.1.1: version "1.1.3" resolved "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -4217,6 +4258,11 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^5.0.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.4.1.tgz#1b48bf0963ec158dce2aacf69c093ae2dd2092d8" + integrity sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w== + char-regex@^1.0.2: version "1.0.2" resolved "https://registry.npmmirror.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -4314,6 +4360,18 @@ cli-boxes@^2.2.1: resolved "https://registry.npmmirror.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + dependencies: + restore-cursor "^4.0.0" + +cli-spinners@^2.6.1: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + client-only@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" @@ -4344,6 +4402,11 @@ clone-response@^1.0.2: dependencies: mimic-response "^1.0.0" +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + clsx@^2.1.0: version "2.1.0" resolved "https://registry.npmmirror.com/clsx/-/clsx-2.1.0.tgz#e851283bcb5c80ee7608db18487433f7b23f77cb" @@ -4454,6 +4517,11 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" +commander@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + commander@^2.20.0: version "2.20.3" resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -4489,6 +4557,11 @@ commondir@^1.0.1: resolved "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== +components@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/components/-/components-0.1.0.tgz#2057c08e9c7bf2662feec95c49e5ff2a9ab85ed5" + integrity sha512-4xKUO3dL9LBs8WiOKy2kvLfnwKZLps9xDT5cFS0GL4UiXrr/dNUYus7Uf1bRPG66cUpEmwFAWVOlE9cxQgG+QA== + compressible@~2.0.16: version "2.0.18" resolved "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" @@ -4962,6 +5035,11 @@ damerau-levenshtein@^1.0.7: resolved "https://registry.npmmirror.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + data-urls@^2.0.0: version "2.0.0" resolved "https://registry.npmmirror.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -5077,6 +5155,13 @@ default-gateway@^6.0.3: dependencies: execa "^5.0.0" +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + defer-to-connect@^1.0.1: version "1.1.3" resolved "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" @@ -5927,6 +6012,21 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +execa@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" + integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^4.3.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + exit@^0.1.2: version "0.1.2" resolved "https://registry.npmmirror.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -6074,6 +6174,14 @@ fecha@~4.2.0: resolved "https://registry.npmmirror.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -6247,6 +6355,13 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + forwarded@0.2.0: version "0.2.0" resolved "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -6285,6 +6400,15 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^11.1.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^9.0.0, fs-extra@^9.0.1: version "9.1.0" resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" @@ -6394,7 +6518,7 @@ get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: +get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -6831,6 +6955,11 @@ human-signals@^2.1.0: resolved "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +human-signals@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -6862,6 +6991,11 @@ identity-obj-proxy@^3.0.0: dependencies: harmony-reflect "^1.4.6" +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ignore@^4.0.6: version "4.0.6" resolved "https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -7105,6 +7239,11 @@ is-installed-globally@^0.4.0: global-dirs "^3.0.0" is-path-inside "^3.0.2" +is-interactive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" + integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== + is-module@^1.0.0: version "1.0.0" resolved "https://registry.npmmirror.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" @@ -7207,6 +7346,11 @@ is-stream@^2.0.0: resolved "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -7233,6 +7377,11 @@ is-typedarray@^1.0.0: resolved "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== +is-unicode-supported@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" + integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== + is-weakref@^1.0.1, is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -8207,6 +8356,14 @@ lodash@4, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lo resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +log-symbols@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93" + integrity sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA== + dependencies: + chalk "^5.0.0" + is-unicode-supported "^1.1.0" + longest@^1.0.1: version "1.0.1" resolved "https://registry.npmmirror.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" @@ -8259,10 +8416,10 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lucide-react@^0.468.0: - version "0.468.0" - resolved "https://registry.yarnpkg.com/lucide-react/-/lucide-react-0.468.0.tgz#830c1bfd905575ddd23b832baa420c87db166910" - integrity sha512-6koYRhnM2N0GGZIdXzSeiNwguv1gt/FAjZOiPl76roBi3xKEXa4WmfpxgQwTTL4KipXjefrnf3oV4IsYhi4JFA== +lucide-react@^0.469.0: + version "0.469.0" + resolved "https://registry.yarnpkg.com/lucide-react/-/lucide-react-0.469.0.tgz#f16936ca6521482fef754a7eabb310e6c68e1482" + integrity sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw== lz-string@^1.4.4: version "1.4.4" @@ -8390,6 +8547,11 @@ mimic-fn@^2.1.0: resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" resolved "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" @@ -8639,6 +8801,11 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + node-fetch@^2.6.12: version "2.7.0" resolved "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" @@ -8646,6 +8813,15 @@ node-fetch@^2.6.12: dependencies: whatwg-url "^5.0.0" +node-fetch@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" + integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + node-forge@^1.2.0: version "1.2.1" resolved "https://registry.npmmirror.com/node-forge/-/node-forge-1.2.1.tgz#82794919071ef2eb5c509293325cec8afd0fd53c" @@ -8693,6 +8869,13 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +npm-run-path@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" + integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== + dependencies: + path-key "^4.0.0" + nth-check@^1.0.2: version "1.0.2" resolved "https://registry.npmmirror.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -8851,13 +9034,20 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.2: +onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + open@^8.0.9, open@^8.4.0: version "8.4.0" resolved "https://registry.npmmirror.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" @@ -8891,6 +9081,21 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" +ora@^6.1.2: + version "6.3.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-6.3.1.tgz#a4e9e5c2cf5ee73c259e8b410273e706a2ad3ed6" + integrity sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ== + dependencies: + chalk "^5.0.0" + cli-cursor "^4.0.0" + cli-spinners "^2.6.1" + is-interactive "^2.0.0" + is-unicode-supported "^1.1.0" + log-symbols "^5.1.0" + stdin-discarder "^0.1.0" + strip-ansi "^7.0.1" + wcwidth "^1.0.1" + p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" @@ -9048,6 +9253,11 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -10716,6 +10926,15 @@ readable-stream@^3.0.6: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -10947,6 +11166,14 @@ responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + retry@^0.13.1: version "0.13.1" resolved "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" @@ -11323,7 +11550,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -11505,6 +11732,13 @@ state-local@^1.0.6: resolved "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +stdin-discarder@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.1.0.tgz#22b3e400393a8e28ebf53f9958f3880622efde21" + integrity sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ== + dependencies: + bl "^5.0.0" + steno@^0.4.1: version "0.4.4" resolved "https://registry.npmmirror.com/steno/-/steno-0.4.4.tgz#071105bdfc286e6615c0403c27e9d7b5dcb855cb" @@ -11698,6 +11932,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.npmmirror.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -12513,6 +12752,18 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +web-streams-polyfill@^3.0.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz#2073b91a2fdb1fbfbd401e7de0ac9f8214cecb4b" + integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== + web-vitals@^2.1.4: version "2.1.4" resolved "https://registry.npmmirror.com/web-vitals/-/web-vitals-2.1.4.tgz#76563175a475a5e835264d373704f9dde718290c" @@ -13071,6 +13322,11 @@ yocto-queue@^0.1.0: resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +zod@^3.20.2: + version "3.24.1" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.24.1.tgz#27445c912738c8ad1e9de1bea0359fa44d9d35ee" + integrity sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A== + zrender@5.4.4: version "5.4.4" resolved "https://registry.npmmirror.com/zrender/-/zrender-5.4.4.tgz#8854f1d95ecc82cf8912f5a11f86657cb8c9e261"