`
+ height: 15px;
+ width: 15px;
+ background-color: ${(props) =>
+ props.isChecked ? "var(--color-secondary)" : "transparent"};
+ border: 1px solid
+ ${(props) =>
+ props.isChecked ? "var(--color-secondary)" : "var(--color-gray-999)"};
+ border-radius: 4px;
+ margin-right: 8px;
+ position: relative;
+ display: inline-block;
+
+ &::after {
+ content: "";
+ position: absolute;
+ display: ${(props) => (props.isChecked ? "block" : "none")};
+ left: 2px;
+ top: 1px;
+ width: 7px;
+ height: 6px;
+ border: solid white;
+ border-width: 0 2px 2px 0;
+ transform: rotate(45deg);
+ }
+`;
+export { Label, Input, Span };
diff --git a/src/components/ui/checkBox/checkBox_props.d.ts b/src/components/ui/checkBox/checkBox_props.d.ts
new file mode 100644
index 0000000..6d4eaa3
--- /dev/null
+++ b/src/components/ui/checkBox/checkBox_props.d.ts
@@ -0,0 +1,3 @@
+export interface ISpanProps {
+ isChecked: boolean;
+}
diff --git a/src/components/ui/deck/BackDeck.tsx b/src/components/ui/deck/BackDeck.tsx
new file mode 100644
index 0000000..5f2fa6f
--- /dev/null
+++ b/src/components/ui/deck/BackDeck.tsx
@@ -0,0 +1,12 @@
+import iconArrow from "@assets/images/icon_arrow_right.svg";
+import * as S from "./backDeckStyle";
+
+export default function BackDeck({ value, color }: IWhiteDeckProps) {
+ const number = value;
+ console.log(number);
+ return (
+
+
+
+ );
+}
diff --git a/src/components/ui/deck/FrontDeck.tsx b/src/components/ui/deck/FrontDeck.tsx
new file mode 100644
index 0000000..3140667
--- /dev/null
+++ b/src/components/ui/deck/FrontDeck.tsx
@@ -0,0 +1,12 @@
+import * as S from "./frontDeckStyle";
+
+export default function FrontDeck({ value, color }: IWhiteDeckProps) {
+ const underBar = value === "6" || value === "9";
+ return (
+
+
+ {value}
+
+
+ );
+}
diff --git a/src/components/ui/deck/backDeckStyle.ts b/src/components/ui/deck/backDeckStyle.ts
new file mode 100644
index 0000000..9ac0024
--- /dev/null
+++ b/src/components/ui/deck/backDeckStyle.ts
@@ -0,0 +1,25 @@
+import styled from "styled-components";
+
+export const cardDeck = styled.div<{ color: string }>`
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ width: 44px;
+ height: 90px;
+ border-radius: 8px;
+ border: 1px solid
+ ${({ color }) =>
+ color === "black" ? "var(--color-gray-0)" : "var(--color-gray-999)"};
+ background: ${({ color }) =>
+ color === "black"
+ ? "linear-gradient(167.45deg, var(--color-gray-600) 0.43%, var(--color-gray-999) 99.57%)"
+ : "linear-gradient(167.4deg, var(--color-gray-0) 0.4%, var(--color-gray-200) 99.6%)"};
+
+ box-shadow: 2px 4px 4px 0px #00000040;
+`;
+
+export const img = styled.img`
+ color: ${({ color }) =>
+ color === "black" ? "var(--color-gray-0)" : "var(--color-gray-999)"};
+`;
diff --git a/src/components/ui/deck/frontDeckStyle.ts b/src/components/ui/deck/frontDeckStyle.ts
new file mode 100644
index 0000000..46814a7
--- /dev/null
+++ b/src/components/ui/deck/frontDeckStyle.ts
@@ -0,0 +1,42 @@
+import styled from "styled-components";
+
+export const cardDeck = styled.div<{ color: string }>`
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ width: 44px;
+ height: 90px;
+ border-radius: 8px;
+ border: 1px solid
+ ${({ color }) =>
+ color === "black" ? "var(--color-gray-0)" : "var(--color-gray-999)"};
+ background: ${({ color }) =>
+ color === "black"
+ ? "linear-gradient(167.45deg, var(--color-gray-600) 0.43%, var(--color-gray-999) 99.57%)"
+ : "linear-gradient(167.4deg, var(--color-gray-0) 0.4%, var(--color-gray-200) 99.6%)"};
+
+ box-shadow: 2px 4px 4px 0px #00000040;
+`;
+
+export const number = styled.div<{ underBar: boolean; color: string }>`
+ height: 40px;
+ font-weight: 600;
+ font-size: 32px;
+ color: ${({ color }) =>
+ color === "black" ? "var(--color-gray-0)" : "var(--color-gray-999)"};
+ position: relative;
+
+ ${({ underBar }) =>
+ underBar &&
+ `
+ &::after {
+ content: '_';
+ position: absolute;
+ bottom: -5px;
+ left: 50%;
+ transform: translateX(-50%);
+ font-size: 16px;
+ }
+ `}
+`;
diff --git a/src/components/ui/deck/frontDeckprops.d.ts b/src/components/ui/deck/frontDeckprops.d.ts
new file mode 100644
index 0000000..4b87023
--- /dev/null
+++ b/src/components/ui/deck/frontDeckprops.d.ts
@@ -0,0 +1,17 @@
+interface IWhiteDeckProps {
+ value?:
+ | "1"
+ | "2"
+ | "3"
+ | "4"
+ | "5"
+ | "6"
+ | " 7"
+ | "8"
+ | "9"
+ | "10"
+ | "11"
+ | "-";
+
+ color: "white" | "black";
+}
diff --git a/src/components/ui/input/Input.tsx b/src/components/ui/input/Input.tsx
new file mode 100644
index 0000000..82c6442
--- /dev/null
+++ b/src/components/ui/input/Input.tsx
@@ -0,0 +1,22 @@
+import { FieldValues, useFormContext } from "react-hook-form";
+import * as S from "./inputStyle";
+
+export default function Input({
+ type,
+ keyname,
+ disable,
+ defaultValue,
+ ...props
+}: IInputProps) {
+ const { register } = useFormContext();
+
+ return (
+
+ );
+}
diff --git a/src/components/ui/input/inputStyle.ts b/src/components/ui/input/inputStyle.ts
new file mode 100644
index 0000000..49aa0ea
--- /dev/null
+++ b/src/components/ui/input/inputStyle.ts
@@ -0,0 +1,16 @@
+import styled from "styled-components";
+
+export const input = styled.input`
+ width: 100%;
+ height: 40px;
+ border-radius: 14px;
+ padding: 16px;
+ background-color: #f8f8f8;
+ font-weight: 400;
+ font-size: 14px;
+ color: #000000;
+
+ &:focus {
+ border: 1px solid #44ff92;
+ }
+`;
diff --git a/src/components/ui/input/input_props.d.ts b/src/components/ui/input/input_props.d.ts
new file mode 100644
index 0000000..14a6650
--- /dev/null
+++ b/src/components/ui/input/input_props.d.ts
@@ -0,0 +1,6 @@
+interface IInputProps {
+ type: React.HTMLInputTypeAttribute;
+ keyname: Path
;
+ defaultValue?: string;
+ disable?: boolean;
+}
diff --git a/src/components/ui/miniDeck/MiniDeck.tsx b/src/components/ui/miniDeck/MiniDeck.tsx
new file mode 100644
index 0000000..fce5f52
--- /dev/null
+++ b/src/components/ui/miniDeck/MiniDeck.tsx
@@ -0,0 +1,5 @@
+import * as S from "./miniDeckStyle";
+
+export default function MiniDeck({ color }: IMiniDeckProps) {
+ return ;
+}
diff --git a/src/components/ui/miniDeck/miniDeckProps.d.ts b/src/components/ui/miniDeck/miniDeckProps.d.ts
new file mode 100644
index 0000000..56f549b
--- /dev/null
+++ b/src/components/ui/miniDeck/miniDeckProps.d.ts
@@ -0,0 +1,3 @@
+interface IMiniDeckProps {
+ color: "black" | "white";
+}
diff --git a/src/components/ui/miniDeck/miniDeckStyle.ts b/src/components/ui/miniDeck/miniDeckStyle.ts
new file mode 100644
index 0000000..45dc32d
--- /dev/null
+++ b/src/components/ui/miniDeck/miniDeckStyle.ts
@@ -0,0 +1,13 @@
+import styled from "styled-components";
+
+export const miniDeck = styled.div<{ color: string }>`
+ width: 27px;
+ height: 54px;
+ border-radius: 8px;
+ box-shadow: 1px 1px 3px 0px #00000080;
+ border: 1px solid
+ ${({ color }) =>
+ color === "black" ? "var(--color-gray-0)" : "var(--color-gray-999)"};
+ background: ${({ color }) =>
+ color === "black" ? "var(--color-gray-999)" : "var(--color-gray-0)"};
+`;
diff --git a/src/components/ui/modal/Modal.tsx b/src/components/ui/modal/Modal.tsx
new file mode 100644
index 0000000..2578d09
--- /dev/null
+++ b/src/components/ui/modal/Modal.tsx
@@ -0,0 +1,37 @@
+import ModalPortal from "./ModalPortal";
+import FirstSelect from "../modalContents/FirstSelect";
+import MakeRoom from "../modalContents/MakeRoom";
+import { useModalStore } from "../../../store/useModalStore";
+import { Inside, ModalFrame, Overlay } from "./modalStyle";
+
+const modalComponents: Record = {
+ firstSelect: ,
+ makeRoom: ,
+};
+
+export default function Modal() {
+ const { showModal, currentModal, modalColor } = useModalStore();
+
+ if (!showModal) return null;
+
+ return (
+
+
+ {modalColor === "white" ? (
+
+ e.stopPropagation()} styleKey={modalColor}>
+ {currentModal ? modalComponents[currentModal] : null}
+
+
+ ) : (
+ e.stopPropagation()}
+ styleKey={modalColor as "white" | "blue"}
+ >
+ {currentModal ? modalComponents[currentModal] : null}
+
+ )}
+
+
+ );
+}
diff --git a/src/components/ui/modal/ModalPortal.ts b/src/components/ui/modal/ModalPortal.ts
new file mode 100644
index 0000000..3d69769
--- /dev/null
+++ b/src/components/ui/modal/ModalPortal.ts
@@ -0,0 +1,14 @@
+import { ReactNode } from "react";
+import ReactDOM from "react-dom";
+
+interface ModalPortalProps {
+ children: ReactNode;
+}
+
+const ModalPortal = ({ children }: ModalPortalProps) => {
+ const el = document.getElementById("modal-root") as HTMLElement;
+
+ return ReactDOM.createPortal(children, el);
+};
+
+export default ModalPortal;
diff --git a/src/components/ui/modal/SelectDeckModal.tsx b/src/components/ui/modal/SelectDeckModal.tsx
new file mode 100644
index 0000000..0d08fda
--- /dev/null
+++ b/src/components/ui/modal/SelectDeckModal.tsx
@@ -0,0 +1,3 @@
+export default function SelectDeckModal() {
+ return SelectDeckModal
;
+}
diff --git a/src/components/ui/modal/modalStyle.ts b/src/components/ui/modal/modalStyle.ts
new file mode 100644
index 0000000..9f0c41e
--- /dev/null
+++ b/src/components/ui/modal/modalStyle.ts
@@ -0,0 +1,48 @@
+import styled, { css } from "styled-components";
+
+const baseStyle = css`
+ width: 480px;
+ min-height: 400px;
+ height: fit-content;
+ border-radius: 50px;
+ overflow: hidden;
+ font-size: 20px;
+ padding: 45px;
+`;
+
+const modalStyles = {
+ white: css`
+ ${baseStyle};
+ background-color: white;
+ `,
+ blue: css`
+ ${baseStyle};
+ background: linear-gradient(180deg, #fff 0%, #d2dfff 100%);
+ border: 1px solid var(--color-gray-999);
+ `,
+};
+
+export const ModalFrame = styled.div`
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ inset: 0;
+`;
+
+export const Overlay = styled.div`
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0, 0, 0, 0.8);
+`;
+
+export const Inside = styled.div<{ styleKey: keyof typeof modalStyles }>`
+ ${({ styleKey }) => modalStyles[styleKey] || modalStyles.white}
+`;
diff --git a/src/components/ui/modalContents/FirstSelect.tsx b/src/components/ui/modalContents/FirstSelect.tsx
new file mode 100644
index 0000000..2d2a0f7
--- /dev/null
+++ b/src/components/ui/modalContents/FirstSelect.tsx
@@ -0,0 +1,16 @@
+import DeckChoice from "../DeckChoice/DeckChoice";
+import * as S from "./firstSelectStyle";
+export default function FirstSelect() {
+ return (
+
+ 처음 가져올 타이틀 조합을 선택해주세요.
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/ui/modalContents/MakeRoom.tsx b/src/components/ui/modalContents/MakeRoom.tsx
new file mode 100644
index 0000000..2e22d85
--- /dev/null
+++ b/src/components/ui/modalContents/MakeRoom.tsx
@@ -0,0 +1,61 @@
+import Input from "../input/Input";
+import Button from "../button/Button";
+import * as S from "./makeRoomStyle";
+import { FormProvider, useForm } from "react-hook-form";
+import { useModal } from "@hooks/useModal";
+import { IRoomNameSchema } from "./schema";
+import { useCreateRoomMutation } from "@hooks/useMutation";
+
+export default function MakeRoom() {
+ const methods = useForm();
+ const mutation = useCreateRoomMutation();
+ const { closeModal } = useModal();
+
+ const onClickClose = () => {
+ closeModal();
+ };
+
+ const onClickSubmit = async (data: IRoomNameSchema) => {
+ console.log(data, "data확인");
+ mutation.mutate(data);
+ closeModal();
+ };
+
+ return (
+
+
+ 방 만들기
+
+ 방 이름
+ type="text" keyname="roomName" />
+
+
+ 욕설이나 이용자에게 불쾌감을 줄 수 있는 단어가 포함되지 않도록 주의해
+ 주세요.
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/ui/modalContents/firstSelectStyle.ts b/src/components/ui/modalContents/firstSelectStyle.ts
new file mode 100644
index 0000000..577fb9b
--- /dev/null
+++ b/src/components/ui/modalContents/firstSelectStyle.ts
@@ -0,0 +1,24 @@
+import styled from "styled-components";
+
+export const container = styled.div`
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ height: 100%;
+`;
+
+export const title = styled.div`
+ font-weight: 500;
+ font-size: 24px;
+ text-align: center;
+ color: var(--color-gray-999);
+`;
+
+export const deckContainer = styled.div`
+ display: grid;
+ margin-top: 25px;
+ grid-template-columns: repeat(auto-fill, 170px);
+ grid-auto-rows: 80px;
+ gap: 20px;
+ justify-content: center;
+`;
diff --git a/src/components/ui/modalContents/makeRoomStyle.ts b/src/components/ui/modalContents/makeRoomStyle.ts
new file mode 100644
index 0000000..14d6d6f
--- /dev/null
+++ b/src/components/ui/modalContents/makeRoomStyle.ts
@@ -0,0 +1,43 @@
+import styled from "styled-components";
+
+export const container = styled.form`
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ display: flex;
+ flex-direction: column;
+
+ gap: 30px;
+`;
+
+export const title = styled.div`
+ font-weight: 700;
+ font-size: 32px;
+ color: var(--color-gray-999);
+`;
+
+export const inputContainer = styled.div`
+ display: flex;
+ flex-direction: column;
+ gap: 13px;
+ width: 100%;
+ height: 75px;
+`;
+
+export const label = styled.label`
+ font-weight: 500;
+ font-size: 18px;
+ color: var(--color-gray-999);
+`;
+
+export const warningContainer = styled.div`
+ font-weight: 300;
+ font-size: 13px;
+ color: var(--color-gray-600);
+ line-height: 1.5rem;
+`;
+
+export const buttonContainer = styled.div`
+ display: flex;
+ gap: 30px;
+`;
diff --git a/src/components/ui/modalContents/schema.ts b/src/components/ui/modalContents/schema.ts
new file mode 100644
index 0000000..c65c0f5
--- /dev/null
+++ b/src/components/ui/modalContents/schema.ts
@@ -0,0 +1,9 @@
+import { z } from "zod";
+
+export const schema = z.object({
+ roomName: z.string(),
+});
+
+export interface IRoomNameSchema {
+ roomName: string;
+}
diff --git a/src/components/ui/nickname/NickNameBox.tsx b/src/components/ui/nickname/NickNameBox.tsx
new file mode 100644
index 0000000..1e03579
--- /dev/null
+++ b/src/components/ui/nickname/NickNameBox.tsx
@@ -0,0 +1,24 @@
+import { ProfileBox, Profile } from "./NickNameBoxStyle";
+// const ProfileBox = styled.div`
+// display: flex;
+// line-height: 30px;
+// gap: 10px;
+// `;
+// const Profile = styled.div`
+// width: 30px;
+// position: relative;
+// border: 2px solid #dedfe0;
+// border-radius: 50%;
+// max-width: 100%;
+// overflow: hidden;
+// height: 30px;
+// object-fit: cover;
+// `;
+export default function Nickname() {
+ return (
+
+
+ 드루와이키키
+
+ );
+}
diff --git a/src/components/ui/nickname/NickNameBoxStyle.ts b/src/components/ui/nickname/NickNameBoxStyle.ts
new file mode 100644
index 0000000..46d81c6
--- /dev/null
+++ b/src/components/ui/nickname/NickNameBoxStyle.ts
@@ -0,0 +1,17 @@
+import styled from "styled-components";
+
+export const ProfileBox = styled.div`
+ display: flex;
+ line-height: 30px;
+ gap: 10px;
+`;
+export const Profile = styled.div`
+ width: 30px;
+ position: relative;
+ border: 2px solid #dedfe0;
+ border-radius: 50%;
+ max-width: 100%;
+ overflow: hidden;
+ height: 30px;
+ object-fit: cover;
+`;
diff --git a/src/components/ui/profile/Profile.tsx b/src/components/ui/profile/Profile.tsx
new file mode 100644
index 0000000..9f5c800
--- /dev/null
+++ b/src/components/ui/profile/Profile.tsx
@@ -0,0 +1,12 @@
+import * as S from "./profileStyle";
+
+export default function Profile({ nickname }: IprofileProps) {
+ return (
+
+
+
+ {nickname}
+
+
+ );
+}
diff --git a/src/components/ui/profile/profile.props.d.ts b/src/components/ui/profile/profile.props.d.ts
new file mode 100644
index 0000000..aa94df6
--- /dev/null
+++ b/src/components/ui/profile/profile.props.d.ts
@@ -0,0 +1,5 @@
+interface IprofileProps {
+ nickname: string | undefined;
+ rank?: string | number;
+ avatar?: string;
+}
diff --git a/src/components/ui/profile/profileStyle.ts b/src/components/ui/profile/profileStyle.ts
new file mode 100644
index 0000000..38fc2df
--- /dev/null
+++ b/src/components/ui/profile/profileStyle.ts
@@ -0,0 +1,43 @@
+import styled from "styled-components";
+
+export const container = styled.div`
+ width: 100%;
+ display: flex;
+ align-items: center;
+ gap: 20px;
+`;
+
+export const avatar = styled.img`
+ width: 100px;
+ height: 100px;
+ border-radius: 50%;
+ border: 1px solid var(--color-gray-100);
+`;
+
+export const nameBox = styled.div`
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+`;
+
+export const nickname = styled.h1`
+ font-weight: 600;
+ font-size: 16px;
+ color: var(--color-gray-999);
+`;
+
+export const rankBox = styled.div`
+ display: flex;
+ gap: 5px;
+`;
+
+export const rank = styled.div`
+ font-weight: 400;
+ font-size: 14px;
+ color: var(--color-gray-999);
+`;
+
+export const trophyImg = styled.img`
+ width: 14px;
+ height: 14px;
+`;
diff --git a/src/components/ui/radioButton/RadioButton.tsx b/src/components/ui/radioButton/RadioButton.tsx
new file mode 100644
index 0000000..27bae81
--- /dev/null
+++ b/src/components/ui/radioButton/RadioButton.tsx
@@ -0,0 +1,15 @@
+import { useState } from "react";
+import * as S from "./radioButtonStyle"; // 스타일 import
+
+export default function RadioButton() {
+ const [isChecked, setIsChecked] = useState(false);
+
+ const toggleCheck = () => setIsChecked((prev) => !prev);
+
+ return (
+
+
+
+
+ );
+}
diff --git a/src/components/ui/radioButton/radioButtonStyle.ts b/src/components/ui/radioButton/radioButtonStyle.ts
new file mode 100644
index 0000000..6aba5d8
--- /dev/null
+++ b/src/components/ui/radioButton/radioButtonStyle.ts
@@ -0,0 +1,62 @@
+import styled from "styled-components";
+import { ISpanProps } from "./radioButton_props";
+
+// interface RadioProps {
+// isChecked: boolean;
+// }
+
+const Label = styled.label`
+ display: flex;
+ align-items: center;
+ cursor: pointer;
+ font-size: 16px;
+ user-select: none;
+`;
+
+const Input = styled.input`
+ position: absolute;
+ opacity: 0;
+ cursor: pointer;
+`;
+
+const Span = styled.span`
+ height: 20px;
+ width: 20px;
+ background-color: ${(props) =>
+ props.isChecked
+ ? "var(--color-gray-0)"
+ : "transparent"}; // 바깥 원은 선택되었을 때만 var(--color-gray-0)로
+ border: 1px solid var(--color-gray-999); // 기본 테두리는 회색
+ border-radius: 50%;
+ margin-right: 8px;
+ position: relative;
+ display: inline-block;
+
+ &::before {
+ content: "";
+ position: absolute;
+ left: 3px; // 안쪽 원 위치 조정
+ top: 3px; // 안쪽 원 위치 조정
+ width: 12px; // 안쪽 원의 크기
+ height: 12px;
+ background-color: ${(props) =>
+ props.isChecked
+ ? "var(--color-gray-999)"
+ : "transparent"}; // 선택되면 안쪽 원이 var(--color-gray-999)
+ border-radius: 50%;
+ }
+
+ &::after {
+ content: "";
+ position: absolute;
+ display: ${(props) => (props.isChecked ? "none" : "block")};
+ left: 6px;
+ top: 6px;
+ width: 8px;
+ height: 8px;
+ background-color: white;
+ border-radius: 50%; // 작은 흰색 원
+ }
+`;
+
+export { Label, Input, Span };
diff --git a/src/components/ui/radioButton/radioButton_props.d.ts b/src/components/ui/radioButton/radioButton_props.d.ts
new file mode 100644
index 0000000..6d4eaa3
--- /dev/null
+++ b/src/components/ui/radioButton/radioButton_props.d.ts
@@ -0,0 +1,3 @@
+export interface ISpanProps {
+ isChecked: boolean;
+}
diff --git a/src/components/ui/ranking/Ranking.tsx b/src/components/ui/ranking/Ranking.tsx
new file mode 100644
index 0000000..105bf5d
--- /dev/null
+++ b/src/components/ui/ranking/Ranking.tsx
@@ -0,0 +1,35 @@
+import styled from "styled-components";
+
+const FullBox = styled.div`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+`;
+const TrophyImage = styled.img`
+ width: 100%;
+ height: 100px;
+`;
+const MainTextBox = styled.div`
+ display: flex;
+ margin-top: 45px;
+`;
+const Hr = styled.hr`
+ width: 100%;
+ position: relative;
+ border-top: 2px solid #000;
+ box-sizing: border-box;
+ height: 2px;
+`;
+export default function Rangking() {
+ return (
+
+
+ 전체 랭킹
+
+ 닉네임
+ 순위
+
+
+
+ );
+}
diff --git a/src/components/ui/scrollToTop/BackToTop.tsx b/src/components/ui/scrollToTop/BackToTop.tsx
new file mode 100644
index 0000000..55ad826
--- /dev/null
+++ b/src/components/ui/scrollToTop/BackToTop.tsx
@@ -0,0 +1,11 @@
+import { Circle, ScrollToTopBox } from "./backToTopStyle";
+import arrowTop from "../../../assets/images/icon_arrow_top.svg";
+export default function BackToTop() {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/src/components/ui/scrollToTop/backToTopStyle.ts b/src/components/ui/scrollToTop/backToTopStyle.ts
new file mode 100644
index 0000000..f892839
--- /dev/null
+++ b/src/components/ui/scrollToTop/backToTopStyle.ts
@@ -0,0 +1,19 @@
+import styled from "styled-components";
+
+export const ScrollToTopBox = styled.div`
+ display: flex;
+ position: fixed;
+ justify-content: end;
+ align-items: end;
+`;
+export const Circle = styled.div`
+ width: 75px;
+ height: 75px;
+ border: 1px solid var(--color-gray-999);
+ background: var(--gray-0);
+ border-radius: 75px;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+`;
diff --git a/src/components/ui/selectionNumber/SelectNumber1.tsx b/src/components/ui/selectionNumber/SelectNumber1.tsx
new file mode 100644
index 0000000..9891445
--- /dev/null
+++ b/src/components/ui/selectionNumber/SelectNumber1.tsx
@@ -0,0 +1,5 @@
+import * as S from "./selectNumber1Style";
+
+export default function SelectNumber1() {
+ return 0;
+}
diff --git a/src/components/ui/selectionNumber/SelectionNumber.tsx b/src/components/ui/selectionNumber/SelectionNumber.tsx
new file mode 100644
index 0000000..43c1c6d
--- /dev/null
+++ b/src/components/ui/selectionNumber/SelectionNumber.tsx
@@ -0,0 +1,40 @@
+import { useState } from "react";
+import * as S from "./selectionNumberStyle";
+
+export default function SelectNumber() {
+ const [selectedNumber, setSelectedNumber] = useState(null);
+
+ const handleSelect = (value: string) => {
+ setSelectedNumber(value);
+ };
+
+ const numbers = Array.from({ length: 12 }, (_, i) => i.toString());
+
+ return (
+
+
+ {[0, 6].map((startIndex) => (
+
+ {numbers.slice(startIndex, startIndex + 6).map((number) => (
+ handleSelect(number)}
+ >
+ {number}
+
+ ))}
+
+ ))}
+
+
+ handleSelect("-")}
+ >
+ -
+
+
+
+ );
+}
diff --git a/src/components/ui/selectionNumber/selectNumber1Style.ts b/src/components/ui/selectionNumber/selectNumber1Style.ts
new file mode 100644
index 0000000..634ca65
--- /dev/null
+++ b/src/components/ui/selectionNumber/selectNumber1Style.ts
@@ -0,0 +1,41 @@
+// import styled from "styled-components";
+
+// export const NumberDetail = styled.div`
+// width: 40px;
+// height: 40px;
+// border-radius: 40px;
+// border: 1px solid var(--color-gray-999);
+// display: flex;
+// align-items: center;
+// justify-content: center;
+// color: var(--gray-0, #fff);
+// background-color: var(--color-gray-999);
+// margin-right: 9px;
+// margin-bottom: 14px;
+// font-size: 24px;
+// font-weight: 600;
+// `;
+
+import styled from "styled-components";
+
+export const NumberDetail = styled.button`
+ width: 40px;
+ height: 40px;
+ border-radius: 40px;
+ border: 1px solid var(--color-gray-999);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: var(--gray-0, #fff);
+ background-color: var(--color-gray-999);
+ margin-right: 9px;
+ margin-bottom: 14px;
+ font-size: 24px;
+ font-weight: 600;
+ cursor: pointer;
+ &:hover {
+ border-color: var(--color-primary);
+ transform: scale(1.1);
+ box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.2);
+ }
+`;
diff --git a/src/components/ui/selectionNumber/selectionNumberStyle.ts b/src/components/ui/selectionNumber/selectionNumberStyle.ts
new file mode 100644
index 0000000..a5c2579
--- /dev/null
+++ b/src/components/ui/selectionNumber/selectionNumberStyle.ts
@@ -0,0 +1,79 @@
+import styled from "styled-components";
+
+export const NumberBox = styled.div`
+ display: flex;
+ gap: 10px;
+ align-items: center;
+`;
+
+export const NumberWrapper = styled.div`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+`;
+
+export const NumberRow = styled.div`
+ display: flex;
+ justify-content: center;
+ gap: 10px;
+ margin-bottom: 10px;
+`;
+
+export const HypenBox = styled.div`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ margin-bottom: 10px;
+`;
+
+export const NumberDetail = styled.button<{ isSelected: boolean }>`
+ width: 40px;
+ height: 40px;
+ border-radius: 40px;
+ border: 1px solid
+ ${({ isSelected }) =>
+ isSelected ? "var(--color-green, #44ff92)" : "var(--color-gray-999)"};
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: ${({ isSelected }) =>
+ isSelected ? "var(--gray-999, #000)" : "var(--gray-0, #fff)"};
+ background-color: ${({ isSelected }) =>
+ isSelected ? "var(--color-green, #44ff92)" : "var(--color-gray-999)"};
+ font-size: 24px;
+ font-weight: 600;
+ cursor: pointer;
+ transition: all 0.2s ease-in-out;
+
+ &:hover {
+ border-color: var(--color-primary);
+ transform: scale(1.1);
+ box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.2);
+ }
+`;
+
+export const HypenLabel = styled.button<{ isSelected: boolean }>`
+ width: 40px;
+ height: 40px;
+ border-radius: 40px;
+ border: 1px solid
+ ${({ isSelected }) =>
+ isSelected ? "var(--color-green, #44ff92)" : "var(--color-gray-999)"};
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: ${({ isSelected }) =>
+ isSelected ? "var(--gray-999, #000)" : "var(--gray-0, #fff)"};
+ background-color: ${({ isSelected }) =>
+ isSelected ? "var(--color-green, #44ff92)" : "var(--color-gray-999)"};
+ font-size: 24px;
+ font-weight: 600;
+ cursor: pointer;
+ transition: all 0.2s ease-in-out;
+
+ &:hover {
+ border-color: var(--color-primary);
+ transform: scale(1.1);
+ box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.2);
+ }
+`;
diff --git a/src/components/ui/textButton/TextButton.tsx b/src/components/ui/textButton/TextButton.tsx
new file mode 100644
index 0000000..b297475
--- /dev/null
+++ b/src/components/ui/textButton/TextButton.tsx
@@ -0,0 +1,9 @@
+import { StyledButton } from "./TextButtonStyle.ts";
+
+interface ITextButtonProps {
+ children: React.ReactNode;
+}
+
+export default function TextButton({ children }: ITextButtonProps) {
+ return {children};
+}
diff --git a/src/components/ui/textButton/TextButtonStyle.ts b/src/components/ui/textButton/TextButtonStyle.ts
new file mode 100644
index 0000000..6a55515
--- /dev/null
+++ b/src/components/ui/textButton/TextButtonStyle.ts
@@ -0,0 +1,11 @@
+import styled from "styled-components";
+
+export const StyledButton = styled.button`
+ text-decoration: underline;
+ font-size: 12px;
+ color: var(--color-gray-800);
+
+ &:hover {
+ color: var(--color-gray-999);
+ }
+`;
diff --git a/src/components/ui/toast/Toast.tsx b/src/components/ui/toast/Toast.tsx
new file mode 100644
index 0000000..e962128
--- /dev/null
+++ b/src/components/ui/toast/Toast.tsx
@@ -0,0 +1,58 @@
+import { createPortal } from "react-dom";
+import { useToastStore } from "../../../store/useToastStore";
+import styled, { keyframes } from "styled-components";
+
+export default function Toast() {
+ const toasts = useToastStore((state) => state.toasts);
+ const element = document.getElementById("toast-root") as HTMLElement;
+
+ return createPortal(
+ toasts.length > 0 ? (
+ <>
+ {toasts.map(({ id, message }) => (
+
+ {message}
+
+ ))}
+ >
+ ) : null,
+ element,
+ );
+}
+
+const FadeInOut = keyframes`
+ 0% {
+ opacity: 0;
+ }
+ 10% {
+ opacity: 1;
+ }
+ 70% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+`;
+
+const ToastFrame = styled.div`
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-shrink: 0;
+ background: radial-gradient(
+ 78.68% 145.31% at 50% 100.71%,
+ var(--color-primary) 0%,
+ var(--color-gray-0) 100%
+ );
+ width: fit-content;
+ height: 60px;
+ min-width: 500px;
+ border-radius: 50px;
+ border: 1px solid var(--color-gray-999);
+ animation: ${FadeInOut} 3s ease-in-out forwards;
+`;
+
+const ToastMessage = styled.p`
+ font-size: 24px;
+`;
diff --git a/src/components/ui/toast/ToastPortal.ts b/src/components/ui/toast/ToastPortal.ts
new file mode 100644
index 0000000..882bb2d
--- /dev/null
+++ b/src/components/ui/toast/ToastPortal.ts
@@ -0,0 +1,13 @@
+import { ReactNode } from "react";
+import ReactDOM from "react-dom";
+
+interface IModalPortalProps {
+ children: ReactNode;
+}
+
+const Portal = ({ children }: IModalPortalProps) => {
+ const el = document.getElementById("toast-root") as HTMLElement;
+ return ReactDOM.createPortal(children, el);
+};
+
+export default Portal;
diff --git a/src/components/ui/waitingPlayer/WaitingPlayerBox.tsx b/src/components/ui/waitingPlayer/WaitingPlayerBox.tsx
new file mode 100644
index 0000000..0f19549
--- /dev/null
+++ b/src/components/ui/waitingPlayer/WaitingPlayerBox.tsx
@@ -0,0 +1,11 @@
+import Badge from "../badge/Badge";
+import { Text, WaitingBox } from "./waitingPlayerBoxStyle";
+
+export default function WaitingPlayerBox() {
+ return (
+
+
+ 상대를 기다리는 중입니다.
+
+ );
+}
diff --git a/src/components/ui/waitingPlayer/waitingPlayerBoxStyle.ts b/src/components/ui/waitingPlayer/waitingPlayerBoxStyle.ts
new file mode 100644
index 0000000..9a33473
--- /dev/null
+++ b/src/components/ui/waitingPlayer/waitingPlayerBoxStyle.ts
@@ -0,0 +1,13 @@
+import styled from "styled-components";
+
+export const WaitingBox = styled.div`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 20px;
+`;
+export const Text = styled.div`
+ color: var(--gray-700, #454545);
+ font-size: 14px;
+ font-weight: 600;
+`;
diff --git a/src/hooks/useFunnel.tsx b/src/hooks/useFunnel.tsx
new file mode 100644
index 0000000..75b5399
--- /dev/null
+++ b/src/hooks/useFunnel.tsx
@@ -0,0 +1,28 @@
+import { ReactElement, ReactNode, useState } from "react";
+
+export interface IStepProps {
+ name: string;
+ children: ReactNode;
+}
+
+export interface IFunnelProps {
+ children: Array>;
+}
+
+export const useFunnel = (defaultStep: string) => {
+ const [step, setStep] = useState(defaultStep);
+
+ const Step = (props: IStepProps): ReactElement => {
+ return <>{props.children}>;
+ };
+
+ const Funnel = ({ children }: IFunnelProps) => {
+ const targetStep = children.find(
+ (childStep) => childStep.props.name === step,
+ );
+
+ return <>{targetStep}>;
+ };
+
+ return { Funnel, Step, setStep, currentStep: step } as const;
+};
diff --git a/src/hooks/useModal.tsx b/src/hooks/useModal.tsx
new file mode 100644
index 0000000..630048d
--- /dev/null
+++ b/src/hooks/useModal.tsx
@@ -0,0 +1,11 @@
+// useModal.ts
+import { useModalStore } from "../store/useModalStore";
+
+export const useModal = () => {
+ const openModal = useModalStore((state) => state.openModal);
+ const closeModal = useModalStore((state) => state.closeModal);
+ const currentModal = useModalStore((state) => state.currentModal);
+ const modalColor = useModalStore((state) => state.modalColor);
+
+ return { openModal, closeModal, currentModal, modalColor };
+};
diff --git a/src/hooks/useMutation.tsx b/src/hooks/useMutation.tsx
new file mode 100644
index 0000000..9e7182c
--- /dev/null
+++ b/src/hooks/useMutation.tsx
@@ -0,0 +1,108 @@
+import { useMutation, useQueryClient } from "@tanstack/react-query";
+import { useNavigate } from "react-router-dom";
+import {
+ createGameRoom,
+ ICreateGameRoomResponse,
+ joinGameRoom,
+ outGameRoom,
+} from "../api/gameRoomApi";
+import {
+ ILoginResponse,
+ ISignUpResponse,
+ ISignUpVariables,
+ loginUser,
+ signUpUser,
+} from "../api/userAuthApi";
+
+export const useCreateRoomMutation = () => {
+ const navigate = useNavigate();
+ const queryClient = useQueryClient();
+
+ return useMutation({
+ mutationFn: createGameRoom,
+ onSuccess: (data) => {
+ navigate(`/game/room/${data.room.id}`);
+ queryClient.invalidateQueries({
+ queryKey: ["gameRoomList"],
+ });
+ },
+ onError: (error) => {
+ alert(error.message);
+ },
+ });
+};
+
+export const useJoinGameRoomMutation = () => {
+ const navigate = useNavigate();
+ return useMutation({
+ mutationFn: joinGameRoom,
+ onSuccess: (data, roomNumber: number) => {
+ console.log("성공", data);
+ navigate(`/game/room/${roomNumber}`);
+ },
+ onError: (error: any) => {
+ if (error.status === 500) {
+ alert("존재하지 않는 게임방입니다.");
+ } else {
+ alert(error.message);
+ }
+ },
+ });
+};
+
+export const useOutRoomMutaion = () => {
+ const navigate = useNavigate();
+ const queryClient = useQueryClient();
+
+ return useMutation({
+ mutationFn: outGameRoom,
+ onSuccess: (data) => {
+ console.log("방나가기 성공", data);
+ navigate(`/game`);
+ queryClient.invalidateQueries({
+ queryKey: ["gameRoomList"],
+ });
+ },
+
+ onError: (error: any) => {
+ if (error.status === 400) {
+ alert("유저가 게임방에 없습니다.");
+ } else if (error.status === 404) {
+ alert("방을 찾을 수 없습니다.");
+ } else {
+ alert(error.message);
+ }
+ },
+ });
+};
+
+export const useLoginSubmitMutation = () => {
+ const navigate = useNavigate();
+ return useMutation<
+ ILoginResponse,
+ Error,
+ { userEmail: string; password: string }
+ >({
+ mutationFn: loginUser,
+ onSuccess: (data) => {
+ const accessToken = data?.accessToken;
+ localStorage.setItem("accessToken", accessToken);
+ navigate(`/game`);
+ },
+ onError: (error) => {
+ alert(error.message);
+ },
+ });
+};
+
+export const useSignUpSubmitMutation = () => {
+ return useMutation({
+ mutationFn: signUpUser,
+ onSuccess: (data) => {
+ console.log(data);
+ },
+ onError: (error) => {
+ console.log(error.message);
+ },
+ });
+};
diff --git a/src/hooks/useQuery.tsx b/src/hooks/useQuery.tsx
new file mode 100644
index 0000000..629fd42
--- /dev/null
+++ b/src/hooks/useQuery.tsx
@@ -0,0 +1,16 @@
+import { useQuery } from "@tanstack/react-query";
+import { getGameRoomInfo, getGameRoomsList } from "../api/gameRoomApi";
+
+export const useGetGameRoomList = () => {
+ return useQuery({
+ queryKey: ["gameRoomsList"],
+ queryFn: getGameRoomsList,
+ });
+};
+
+export const useGetGameRoomInfo = (roomId: number) => {
+ return useQuery({
+ queryKey: ["gameRoomInfo", roomId],
+ queryFn: () => getGameRoomInfo(roomId),
+ });
+};
diff --git a/src/hooks/useToast.tsx b/src/hooks/useToast.tsx
new file mode 100644
index 0000000..fa7af08
--- /dev/null
+++ b/src/hooks/useToast.tsx
@@ -0,0 +1,22 @@
+import { ToastProps, useToastStore } from "../store/useToastStore";
+
+const useToast = () => {
+ const { setToast, removeToast } = useToastStore();
+
+ const openToast = (message: string) => {
+ const newToast: ToastProps = {
+ id: Date.now(),
+ message,
+ };
+
+ setToast(newToast);
+
+ setTimeout(() => {
+ removeToast(newToast.id);
+ }, 3000);
+ };
+
+ return openToast;
+};
+
+export default useToast;
diff --git a/src/index.css b/src/index.css
index 6119ad9..8f1c52b 100644
--- a/src/index.css
+++ b/src/index.css
@@ -66,3 +66,6 @@ button:focus-visible {
background-color: #f9f9f9;
}
}
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
diff --git a/src/main.tsx b/src/main.tsx
index 4dbdea9..2b2ec8c 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -1,12 +1,11 @@
-import { RouterProvider } from "react-router-dom";
-import { router } from "./routes/router.tsx";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { createRoot } from "react-dom/client";
+import App from "./App.tsx";
const queryClient = new QueryClient();
createRoot(document.getElementById("root")!).render(
-
+
,
);
diff --git a/src/pages/game/Game.tsx b/src/pages/game/Game.tsx
new file mode 100644
index 0000000..88a69d9
--- /dev/null
+++ b/src/pages/game/Game.tsx
@@ -0,0 +1,9 @@
+import { Outlet } from "react-router-dom";
+
+export default function Game() {
+ return (
+ <>
+
+ >
+ );
+}
diff --git a/src/pages/game/GameRoom.tsx b/src/pages/game/GameRoom.tsx
new file mode 100644
index 0000000..10e35c6
--- /dev/null
+++ b/src/pages/game/GameRoom.tsx
@@ -0,0 +1,184 @@
+import { io } from "socket.io-client";
+import ChattingBox from "../../components/ui/card/chatting/Chatting";
+import { useSocketStore } from "../../store/useSocketStore";
+import * as S from "./gameRoomStyle";
+import { useEffect, useRef, useState } from "react";
+import { jwtDecode } from "jwt-decode";
+import { useGetGameRoomInfo } from "../../hooks/useQuery";
+import { useParams } from "react-router-dom";
+import MyProfileCard from "../../components/ui/card/profileCard/ProfileCard";
+import OtherProfileCard from "../../components/ui/card/profileCard/OtherProfileCard";
+
+export interface IUser {
+ id: number;
+ roomId: number;
+ userId: number;
+ joinedAt: string;
+ userNickname: string;
+ ready: boolean;
+}
+
+interface IJoinRoomResponse {
+ sender: string;
+ userNickname: string;
+ message: string;
+}
+
+interface IJwtDecode {
+ exp: number;
+ iat: number;
+ userEmail: string;
+ userId: number;
+}
+
+interface IReadyData {
+ userId: number;
+ ready: boolean;
+}
+
+interface IJoinData {
+ sender: string;
+ userNickname: string;
+ message: string;
+}
+
+interface ILeaveData {
+ sender: string;
+ userNickname: string;
+ message: string;
+}
+
+interface IGameStartData {
+ starterUserId: number;
+ message: string;
+}
+
+export default function GameRoom() {
+ const { socket, setSocket } = useSocketStore();
+ const params = useParams();
+ const roomId = Number(params.id);
+ const [userMyId, setUserMyId] = useState(undefined);
+ const [myInfo, setMyInfo] = useState(undefined);
+ const [otherInfo, setOtherInfo] = useState(undefined);
+ // const { setReady } = useReadyStore();
+ const [myReady, setMyReady] = useState(false);
+ const [otherReady, setOtherReady] = useState(false);
+ const { data, refetch } = useGetGameRoomInfo(roomId);
+ const userMyIdRef = useRef(undefined);
+
+ useEffect(() => {
+ const accessToken = localStorage.getItem("accessToken");
+ if (!accessToken) {
+ console.error("Access token is missing.");
+ //오류 표시하거나 로그인창으로 리다이렉션 하기
+ return;
+ }
+
+ const decoded = jwtDecode(accessToken);
+ setUserMyId(decoded.userId);
+ userMyIdRef.current = decoded.userId;
+
+ if (socket) {
+ socket.on("connect", () => {
+ console.log(`Socket connected: ${socket.id}`);
+ });
+ }
+
+ const newSocket = io(`wss://api.davincicodegame.store/game`, {
+ extraHeaders: { Authorization: accessToken },
+ auth: { token: accessToken },
+ });
+
+ setSocket(newSocket);
+
+ newSocket.emit("joinRoom", { roomId }, (response: IJoinRoomResponse) => {
+ console.log(`Join room response: ${JSON.stringify(response)}`);
+ });
+ }, []);
+
+ useEffect(() => {
+ const myProfile = data?.users.find(
+ (user: IUser) => user.userId == userMyId,
+ );
+
+ setMyInfo(myProfile);
+
+ const otherProfile = data?.users.filter(
+ (user: IUser) => user.userId !== userMyId,
+ );
+
+ setOtherInfo(otherProfile);
+ }, [data]);
+
+ useEffect(() => {
+ if (!socket) return;
+
+ const handleJoin = async (data: IJoinData) => {
+ console.log(`${JSON.stringify(data)}`);
+ const refetchInfo = await refetch();
+ console.log(refetchInfo, "Refetch Info");
+ };
+
+ const handleLeave = async (data: ILeaveData) => {
+ console.log(`${JSON.stringify(data)}`);
+ };
+
+ const handleReady = async (data: IReadyData) => {
+ console.log(`${JSON.stringify(data)}`);
+ const { userId, ready } = data;
+
+ if (userId !== userMyIdRef.current) {
+ setOtherReady(ready);
+ }
+ };
+
+ const handleGameStart = async (data: IGameStartData) => {
+ console.log(`${JSON.stringify(data)}`);
+ };
+
+ socket.on("join", handleJoin);
+ socket.on("leave", handleLeave);
+ socket.on("ready", handleReady);
+ socket.on("gameStart", handleGameStart);
+
+ return () => {
+ socket.disconnect();
+ };
+ }, [socket, refetch]);
+
+ const handleMyReady = () => {
+ setMyReady((prev) => !prev);
+ };
+
+ return (
+
+
+
+ 상대 플레이어
+
+
+
+
+
+
+
+
+
+
+
+ 나
+
+
+
+ );
+}
diff --git a/src/pages/game/gameRoomList.tsx b/src/pages/game/gameRoomList.tsx
new file mode 100644
index 0000000..fa346df
--- /dev/null
+++ b/src/pages/game/gameRoomList.tsx
@@ -0,0 +1,45 @@
+import Button from "../../components/ui/button/Button";
+import * as S from "./gameRoomListStyle";
+import GameRoomCard from "../../components/ui/card/cardList/GameRoomCard";
+import { useGetGameRoomList } from "../../hooks/useQuery";
+import { useModal } from "../../hooks/useModal";
+
+interface IGameRoom {
+ id: number;
+ roomName: string;
+ maxPlayers: number;
+ currentCount: number;
+ createdAt: string;
+}
+
+export default function GameRoomList() {
+ const { openModal } = useModal();
+ const { data: gameRooms } = useGetGameRoomList();
+ console.log("gameRooms✅", gameRooms);
+
+ const onClickModalOpen = () => {
+ openModal("makeRoom", "white");
+ };
+
+ return (
+
+
+
+
+
+ {gameRooms?.map((room: IGameRoom) => (
+
+ ))}
+
+
+ );
+}
diff --git a/src/pages/game/gameRoomListStyle.ts b/src/pages/game/gameRoomListStyle.ts
new file mode 100644
index 0000000..26ddf85
--- /dev/null
+++ b/src/pages/game/gameRoomListStyle.ts
@@ -0,0 +1,23 @@
+import styled from "styled-components";
+
+export const container = styled.div`
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ gap: 20px;
+`;
+
+export const buttonContainer = styled.div`
+ width: 100%;
+ height: 60px;
+ display: flex;
+ justify-content: end;
+`;
+
+export const gameroomListContainer = styled.div`
+ display: grid;
+ grid-template-columns: repeat(auto-fill, 500px);
+ grid-auto-rows: 260px;
+ gap: 40px;
+ justify-content: center;
+`;
diff --git a/src/pages/game/gameRoomStyle.ts b/src/pages/game/gameRoomStyle.ts
new file mode 100644
index 0000000..7cc6079
--- /dev/null
+++ b/src/pages/game/gameRoomStyle.ts
@@ -0,0 +1,68 @@
+import styled from "styled-components";
+
+export const container = styled.div`
+ display: flex;
+ flex-direction: 38px;
+ width: 100%;
+ height: 100%;
+ gap: 38px;
+`;
+
+export const leftContainer = styled.div`
+ width: 390px;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ background-color: yellow;
+`;
+
+export const centerContainer = styled.div`
+ height: 100%;
+ width: 100%;
+ background-color: green;
+ position: relative;
+`;
+
+export const rightContainer = styled.div`
+ margin-right: 77px;
+ padding-bottom: 44px;
+ width: 390px;
+ height: 100%;
+ display: flex;
+ gap: 40px;
+ flex-direction: column;
+ justify-content: end;
+ background-color: blue;
+`;
+
+export const myDeckBox = styled.div`
+ width: 100%;
+ height: 90px;
+ gap: 40px;
+ background-color: purple;
+`;
+
+export const guideBox = styled.div`
+ width: 100%;
+ height: 60px;
+ display: flex;
+ flex-direction: center;
+ background-color: red;
+`;
+
+export const otherPlayerDeck = styled.div`
+ margin-top: 14px;
+ width: 100%;
+ height: 90px;
+ display: flex;
+ gap: 12px;
+ background-color: aqua;
+`;
+
+export const selectNumberBox = styled.div`
+ margin-top: 40px;
+ width: 100%;
+ height: 229px;
+ background-color: black;
+`;
diff --git a/src/pages/home/Home.tsx b/src/pages/home/Home.tsx
new file mode 100644
index 0000000..02c907f
--- /dev/null
+++ b/src/pages/home/Home.tsx
@@ -0,0 +1,3 @@
+export default function Home() {
+ return <>Home>;
+}
diff --git a/src/pages/mypage/checkPassword/CheckPassword.tsx b/src/pages/mypage/checkPassword/CheckPassword.tsx
new file mode 100644
index 0000000..4cdf5e9
--- /dev/null
+++ b/src/pages/mypage/checkPassword/CheckPassword.tsx
@@ -0,0 +1,36 @@
+import { FormProvider, useForm } from "react-hook-form";
+import Input from "../../../components/ui/input/Input";
+import * as S from "./checkPasswordStyle";
+import Button from "../../../components/ui/button/Button";
+import { ICheckPassword } from "./schema";
+import { useNavigate } from "react-router-dom";
+
+export default function CheckPassword() {
+ const methods = useForm();
+ const navigate = useNavigate();
+ const onClickSubmit = async (data: ICheckPassword) => {
+ console.log(data);
+ navigate("/user/mypage/updateMyPage");
+ };
+
+ return (
+
+
+
+ 본인 인증을 위해 비밀번호 확인이 필요합니다.
+ 비밀번호를 입력해 주세요.
+ 비밀번호
+ type="text" keyname="password" />
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/pages/mypage/checkPassword/checkPasswordStyle.ts b/src/pages/mypage/checkPassword/checkPasswordStyle.ts
new file mode 100644
index 0000000..ae70036
--- /dev/null
+++ b/src/pages/mypage/checkPassword/checkPasswordStyle.ts
@@ -0,0 +1,40 @@
+import styled from "styled-components";
+
+export const container = styled.div`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ width: 100%;
+ height: 100%;
+`;
+
+export const checkPasswordBox = styled.form`
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ width: 400px;
+`;
+
+export const p = styled.p`
+ font-weight: 500;
+ font-size: 20px;
+ line-height: 26px;
+ letter-spacing: -0.02em;
+ color: var(--color-gray-999);
+`;
+
+export const label = styled.label`
+ margin-top: 30px;
+ font-weight: 500;
+ font-size: 18px;
+ color: var(--color-gray-999);
+ margin-bottom: 11px;
+`;
+
+export const buttonBox = styled.div`
+ width: 400px;
+ margin-top: 150px;
+ display: flex;
+ gap: 20px;
+`;
diff --git a/src/pages/mypage/checkPassword/schema.ts b/src/pages/mypage/checkPassword/schema.ts
new file mode 100644
index 0000000..832f43f
--- /dev/null
+++ b/src/pages/mypage/checkPassword/schema.ts
@@ -0,0 +1,3 @@
+export interface ICheckPassword {
+ password: string;
+}
diff --git a/src/pages/mypage/myScorePage/MyPage.tsx b/src/pages/mypage/myScorePage/MyPage.tsx
new file mode 100644
index 0000000..03fc459
--- /dev/null
+++ b/src/pages/mypage/myScorePage/MyPage.tsx
@@ -0,0 +1,51 @@
+import Button from "../../../components/ui/button/Button";
+import medalImage from "../../../assets/images/icon_medal.svg";
+import heartBlueImage from "../../../assets/images/icon_heart_blue.svg";
+import heartRedImage from "../../../assets/images/icon_heart_red.svg";
+import * as S from "./myPageStyle";
+
+export default function MyPage() {
+ return (
+
+ 마이페이지
+
+
+
+ nickname님,
+ 안녕하세요.
+
+
+
+
+ 나의랭킹
+
+
+
+
+ 78
+ 위
+
+ 전체 랭킹 보러가기→
+
+
+
+
+ 나의 기록
+
+
+
+ 12
+ 승
+
+
+
+ 5
+ 패
+
+
+
+
+ );
+}
diff --git a/src/pages/mypage/myScorePage/myPageStyle.ts b/src/pages/mypage/myScorePage/myPageStyle.ts
new file mode 100644
index 0000000..36f8fdc
--- /dev/null
+++ b/src/pages/mypage/myScorePage/myPageStyle.ts
@@ -0,0 +1,236 @@
+import styled from "styled-components";
+
+const PullBox = styled.div`
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ width: 400px;
+ margin: 0 auto;
+`;
+
+const H1 = styled.h1`
+ color: var(--gray-999, #000);
+ text-align: center;
+ font-family: Pretendard;
+ font-size: 32px;
+ font-style: normal;
+ font-weight: 700;
+ line-height: normal;
+`;
+const ProfilePhoto = styled.div`
+ display: flex;
+ width: 80px;
+ height: 80px;
+ justify-content: center;
+ align-items: center;
+ flex-shrink: 0;
+ border-radius: 100px;
+ border: 2px solid #aaa;
+`;
+const ProfileBox = styled.div`
+ display: flex;
+ width: 100%;
+ gap: 30px;
+ margin-top: 50px;
+ margin-bottom: 30px;
+ align-items: center;
+`;
+const NickNameTextBox = styled.div`
+ display: flex;
+ flex-direction: column;
+`;
+const NickNameText = styled.div`
+ color: #000;
+ font-family: Pretendard;
+ font-size: 24px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: 34px; /* 141.667% */
+`;
+const HelloText = styled.div`
+ color: #000;
+ font-family: Pretendard;
+ font-size: 22px;
+ font-style: normal;
+ font-weight: 400;
+ line-height: 34px;
+`;
+const MyRanking = styled.div`
+ width: 100%;
+ height: 180px;
+ flex-shrink: 0;
+ border-radius: 12px;
+ border: 1px solid #000;
+ color: var(--color-primary);
+ box-shadow: 2px 2px 4px 0px rgba(0, 0, 0, 0.25);
+ margin-top: 40px;
+ margin-bottom: 30px;
+ padding: 25px 15px 25px 5px;
+`;
+const H2 = styled.h2`
+ width: 73px;
+ height: 23px;
+ flex-shrink: 0;
+ color: #000;
+ font-family: Pretendard;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: normal;
+ letter-spacing: -0.4px;
+ margin-left: 10px;
+ margin-bottom: 20px;
+`;
+const MedalRankingBox = styled.div`
+ display: flex;
+ gap: 156px;
+`;
+const RankingBox = styled.div`
+ display: flex;
+ flex-direction: column;
+
+ gap: 14px;
+`;
+const Ranking = styled.div`
+ display: flex;
+`;
+const Number = styled.div`
+ width: 50px;
+ color: #000;
+ font-family: Pretendard;
+ font-size: 36px;
+ font-style: normal;
+ font-weight: 500;
+ line-height: normal;
+ letter-spacing: 7.2px;
+ margin-top: 2px;
+`;
+const Text = styled.div`
+ color: #000;
+ font-family: Pretendard;
+ font-size: 24px;
+ font-style: normal;
+ font-weight: 500;
+ line-height: normal;
+ letter-spacing: 4.8px;
+ width: 21px;
+ height: 29px;
+ margin-top: 10px;
+`;
+const TotalRankingPage = styled.div`
+ width: 124px;
+ color: #000;
+ font-family: Pretendard;
+ font-size: 14px;
+ font-style: normal;
+ font-weight: 400;
+ line-height: normal;
+ text-decoration-line: underline;
+ text-decoration-style: solid;
+ text-decoration-skip-ink: auto;
+ text-decoration-thickness: auto;
+ text-underline-offset: auto;
+ text-underline-position: from-font;
+`;
+const ScoreBoard = styled.div`
+ width: 100%;
+ height: 180px;
+ flex-shrink: 0;
+ border-radius: 12px;
+ border: 1px solid #000;
+ color: var(--color-yellow-900);
+ box-shadow: 2px 2px 4px 0px rgba(0, 0, 0, 0.25);
+`;
+const H3 = styled.h3`
+ width: 73px;
+ height: 25px;
+ flex-shrink: 0;
+ color: #000;
+ font-family: Pretendard;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: normal;
+ letter-spacing: -0.4px;
+ margin-top: 25px;
+ margin-left: 15px;
+ margin-bottom: 34px;
+`;
+const ScoreBox = styled.div`
+ display: flex;
+ gap: 110px;
+ justify-content: center;
+ align-items: center;
+`;
+const BlueHreartBox = styled.div`
+ display: flex;
+ align-items: center;
+ height: 45px;
+ gap: 10px;
+`;
+
+const HeartBlueImg = styled.img`
+ width: 30px;
+ height: 30px;
+`;
+
+const ScoreWin = styled.div`
+ color: var(--color-gray-999);
+ font-size: 36px;
+ font-weight: 500;
+`;
+const Win = styled.div`
+ color: var(--color-gray-999);
+ font-size: 20px;
+ font-weight: 500;
+`;
+const RedHeartBox = styled.div`
+ display: flex;
+ align-items: center;
+ height: 45px;
+ gap: 10px;
+`;
+const HeartRedImg = styled.img`
+ width: 30px;
+ height: 30px;
+`;
+const ScoreLose = styled.div`
+ color: var(--color-gray-999);
+ font-size: 36px;
+ font-weight: 500;
+`;
+const Lose = styled.div`
+ color: var(--color-gray-999);
+ font-size: 20px;
+ font-weight: 500;
+`;
+
+export {
+ PullBox,
+ H1,
+ ProfilePhoto,
+ ProfileBox,
+ NickNameTextBox,
+ NickNameText,
+ HelloText,
+ MyRanking,
+ H2,
+ MedalRankingBox,
+ RankingBox,
+ Ranking,
+ Number,
+ Text,
+ TotalRankingPage,
+ ScoreBoard,
+ H3,
+ ScoreBox,
+ BlueHreartBox,
+ HeartBlueImg,
+ ScoreWin,
+ Win,
+ RedHeartBox,
+ HeartRedImg,
+ ScoreLose,
+ Lose,
+};
diff --git a/src/pages/mypage/updateMypage/UpdateMyPage.tsx b/src/pages/mypage/updateMypage/UpdateMyPage.tsx
new file mode 100644
index 0000000..90a80ee
--- /dev/null
+++ b/src/pages/mypage/updateMypage/UpdateMyPage.tsx
@@ -0,0 +1,70 @@
+import { FormProvider, useForm } from "react-hook-form";
+import Button from "../../../components/ui/button/Button";
+import Input from "../../../components/ui/input/Input";
+import * as S from "./updateMyPageStyle";
+import { schema, UpdateMyPageType } from "./schema";
+import { zodResolver } from "@hookform/resolvers/zod";
+
+export default function UpdateMyPage() {
+ const methods = useForm({
+ resolver: zodResolver(schema),
+ mode: "onChange",
+ });
+ const onClickSubmit = (data: UpdateMyPageType) => {
+ console.log(data);
+ };
+
+ return (
+
+
+
+
+ 내 정보 수정
+
+
+
+
+ 이메일
+
+
+
+ 비밀번호
+ type="password" keyname="password" />
+
+ {methods.formState.errors.password?.message}
+
+
+
+ 비밀번호 확인
+ type="password" keyname="checkPassword" />
+
+ {methods.formState.errors.checkPassword?.message}
+
+
+
+ 닉네임
+ type="text" keyname="nickname" />
+
+ {methods.formState.errors.nickname?.message}
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/pages/mypage/updateMypage/schema.ts b/src/pages/mypage/updateMypage/schema.ts
new file mode 100644
index 0000000..2effbf8
--- /dev/null
+++ b/src/pages/mypage/updateMypage/schema.ts
@@ -0,0 +1,18 @@
+import { z } from "zod";
+
+export const schema = z
+ .object({
+ password: z
+ .string()
+ .min(1, { message: "비밀번호는 최소 한 글자 이상이어야 합니다." }),
+ checkPassword: z.string(),
+ nickname: z
+ .string()
+ .min(1, { message: "닉네임은 최소 한 글자 이상이어야 합니다." }),
+ })
+ .refine((data) => data.password === data.checkPassword, {
+ message: "비밀번호가 일치하지 않습니다.",
+ path: ["checkPassword"],
+ });
+
+export type UpdateMyPageType = z.infer;
diff --git a/src/pages/mypage/updateMypage/updateMyPageStyle.ts b/src/pages/mypage/updateMypage/updateMyPageStyle.ts
new file mode 100644
index 0000000..25ec56d
--- /dev/null
+++ b/src/pages/mypage/updateMypage/updateMyPageStyle.ts
@@ -0,0 +1,64 @@
+import styled from "styled-components";
+
+export const container = styled.div`
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+`;
+
+export const contentsBox = styled.form`
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ width: 400px;
+ gap: 30px;
+`;
+
+export const imgBox = styled.div`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ width: 100%;
+ gap: 30px;
+`;
+
+export const inputBox = styled.div`
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ gap: 10px;
+`;
+
+export const title = styled.div`
+ font-weight: 700;
+ font-size: 32px;
+ color: var(--color-gray-999);
+`;
+
+export const img = styled.div`
+ width: 80px;
+ height: 80px;
+ border-radius: 50%;
+ background: #5076ff;
+ backdrop-filter: blur(24px);
+`;
+
+export const label = styled.label`
+ font-weight: 500;
+ font-size: 18px;
+ color: var(--color-gray-999);
+`;
+
+export const buttonBox = styled.div`
+ width: 100%;
+ display: flex;
+ gap: 20px;
+ margin-top: 50px;
+`;
+
+export const errorMessage = styled.div`
+ color: var(--color-warning);
+`;
diff --git a/src/pages/testpage/Testpage.tsx b/src/pages/testpage/Testpage.tsx
new file mode 100644
index 0000000..e24920a
--- /dev/null
+++ b/src/pages/testpage/Testpage.tsx
@@ -0,0 +1,9 @@
+import Rangking from "../../components/ui/ranking/Ranking";
+
+export default function TestPage() {
+ return (
+
+
+
+ );
+}
diff --git a/src/pages/user/login/Login.tsx b/src/pages/user/login/Login.tsx
index ba5b453..270c7d3 100644
--- a/src/pages/user/login/Login.tsx
+++ b/src/pages/user/login/Login.tsx
@@ -1,3 +1,51 @@
+import { FormProvider, useForm } from "react-hook-form";
+import { zodResolver } from "@hookform/resolvers/zod";
+import Button from "../../../components/ui/button/Button";
+import { loginSchema, schema } from "./schema";
+import Input from "../../../components/ui/input/Input";
+import * as S from "./loginStyle2";
+import { useLoginSubmitMutation } from "../../../hooks/useMutation";
+
export default function LoginPage() {
- return Login
;
+ const methods = useForm({
+ resolver: zodResolver(schema),
+ mode: "onChange",
+ });
+
+ const mutation = useLoginSubmitMutation();
+
+ const onClickSubmit = async (data: loginSchema) => {
+ mutation.mutate(data);
+ };
+
+ return (
+ <>
+
+
+ 로그인
+
+
+
+ 이메일
+ type="text" keyname="userEmail" />
+
+ {methods.formState.errors.userEmail?.message}
+
+
+
+ 비밀번호
+ type="password" keyname="password" />
+
+ {methods.formState.errors.password?.message}
+
+
+
+
+
+
+
+ >
+ );
}
diff --git a/src/pages/user/login/LoginStyle.ts b/src/pages/user/login/LoginStyle.ts
new file mode 100644
index 0000000..e42dbd7
--- /dev/null
+++ b/src/pages/user/login/LoginStyle.ts
@@ -0,0 +1,54 @@
+import styled from "styled-components";
+
+export const container = styled.div`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ width: 100%;
+ gap: 50px;
+ height: 100%;
+`;
+
+export const loginBox = styled.div`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 50px;
+ width: 400px;
+`;
+export const label = styled.label`
+ font-weight: 500;
+ font-size: 18px;
+ color: var(--color-gray-999);
+`;
+
+export const title = styled.h2`
+ font-weight: 700;
+ font-size: 32px;
+ color: var(--color-gray-999);
+`;
+
+export const inputBox = styled.div`
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+ width: 100%;
+`;
+
+export const input = styled.input`
+ width: 100%;
+ height: 40px;
+ border-radius: 14px;
+ background-color: #f8f8f8;
+`;
+
+export const form = styled.form`
+ display: flex;
+ width: 100%;
+ flex-direction: column;
+ gap: 50px;
+`;
+
+export const errorMessage = styled.div`
+ color: var(--color-warning);
+`;
diff --git a/src/pages/user/login/loginStyle2.ts b/src/pages/user/login/loginStyle2.ts
new file mode 100644
index 0000000..e42dbd7
--- /dev/null
+++ b/src/pages/user/login/loginStyle2.ts
@@ -0,0 +1,54 @@
+import styled from "styled-components";
+
+export const container = styled.div`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ width: 100%;
+ gap: 50px;
+ height: 100%;
+`;
+
+export const loginBox = styled.div`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 50px;
+ width: 400px;
+`;
+export const label = styled.label`
+ font-weight: 500;
+ font-size: 18px;
+ color: var(--color-gray-999);
+`;
+
+export const title = styled.h2`
+ font-weight: 700;
+ font-size: 32px;
+ color: var(--color-gray-999);
+`;
+
+export const inputBox = styled.div`
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+ width: 100%;
+`;
+
+export const input = styled.input`
+ width: 100%;
+ height: 40px;
+ border-radius: 14px;
+ background-color: #f8f8f8;
+`;
+
+export const form = styled.form`
+ display: flex;
+ width: 100%;
+ flex-direction: column;
+ gap: 50px;
+`;
+
+export const errorMessage = styled.div`
+ color: var(--color-warning);
+`;
diff --git a/src/pages/user/login/schema.ts b/src/pages/user/login/schema.ts
new file mode 100644
index 0000000..060ffaa
--- /dev/null
+++ b/src/pages/user/login/schema.ts
@@ -0,0 +1,13 @@
+import { z } from "zod";
+
+export const schema: z.ZodType = z.object({
+ userEmail: z.string(),
+ password: z
+ .string()
+ .min(4, { message: "비밀번호는 최소 4자리 이상 입력해주세요." }),
+});
+
+export interface loginSchema {
+ userEmail: string;
+ password: string;
+}
diff --git a/src/pages/user/signUp/SignUp.tsx b/src/pages/user/signUp/SignUp.tsx
index e36cc7d..70ec267 100644
--- a/src/pages/user/signUp/SignUp.tsx
+++ b/src/pages/user/signUp/SignUp.tsx
@@ -1,3 +1,80 @@
+import Form from "@components/form/Form";
+import SignUpStep from "./SignUpStep";
+import { useFunnel } from "@hooks/useFunnel";
+import {
+ FormWrapper,
+ SignUpSection,
+ SignUpTitle,
+ CurrentStep,
+ StepBasic,
+ Stepper,
+} from "./SignUpStyle";
+import { SubmitHandler } from "react-hook-form";
+import { signUpSchema } from "./schema";
+import { useSignUpSubmitMutation } from "@hooks/useMutation";
+
+const steps = ["기본정보 입력", "프로필 설정"];
+
export default function SignUp() {
- return SignUp
;
+ const { Funnel, Step, setStep, currentStep } = useFunnel(steps[0]);
+ const mutation = useSignUpSubmitMutation();
+
+ const nextClickHandler = (targetStep: string) => {
+ setStep(targetStep);
+ };
+
+ const prevClickHandler = (targetStep: string) => {
+ setStep(targetStep);
+ };
+
+ const onSubmit: SubmitHandler = async (data) => {
+ console.log("Submitted Data:", data);
+ const { passwordConfirm, profileImage, ...formData } = data;
+
+ const result = mutation.mutate(formData);
+ console.log(result);
+ };
+
+ return (
+ <>
+
+ 회원가입
+
+ {currentStep === steps[0] ? (
+ <>
+ 1
+ 2
+ >
+ ) : (
+ <>
+ 1
+ 2
+ >
+ )}
+
+
+
+ >
+ );
}
diff --git a/src/pages/user/signUp/SignUpStep.tsx b/src/pages/user/signUp/SignUpStep.tsx
new file mode 100644
index 0000000..dff8fdd
--- /dev/null
+++ b/src/pages/user/signUp/SignUpStep.tsx
@@ -0,0 +1,32 @@
+import SignUpStepOne from "./SignUpStepOne";
+import SignUpStepTwo from "./SignUpStepTwo";
+import { IFunnelProps, IStepProps } from "../../../hooks/useFunnel";
+
+export interface ISignUpProps {
+ steps: string[];
+ nextClickHandler: (nextStep: string) => void;
+ prevClickHandler: (prevStep: string) => void;
+ Funnel: React.ComponentType;
+ Step: React.ComponentType;
+}
+
+export default function SignUpStep({
+ steps,
+ nextClickHandler,
+ prevClickHandler,
+ Funnel,
+ Step,
+}: ISignUpProps) {
+ return (
+ <>
+
+
+ nextClickHandler(steps[1])} />
+
+
+ prevClickHandler(steps[0])} />
+
+
+ >
+ );
+}
diff --git a/src/pages/user/signUp/SignUpStepCompleted.tsx b/src/pages/user/signUp/SignUpStepCompleted.tsx
new file mode 100644
index 0000000..ed2c99e
--- /dev/null
+++ b/src/pages/user/signUp/SignUpStepCompleted.tsx
@@ -0,0 +1,3 @@
+export default function SignUpStepCompleted() {
+ return <>SignUpStepCompleted>;
+}
diff --git a/src/pages/user/signUp/SignUpStepOne.tsx b/src/pages/user/signUp/SignUpStepOne.tsx
new file mode 100644
index 0000000..78d144b
--- /dev/null
+++ b/src/pages/user/signUp/SignUpStepOne.tsx
@@ -0,0 +1,150 @@
+import Input from "@components/ui/input/Input";
+import Button from "@components/ui/button/Button";
+import CheckBox from "@components/ui/checkBox/CheckBox";
+import TextButton from "@components/ui/textButton/TextButton";
+import { Controller, useForm, useFormContext } from "react-hook-form";
+import { zodResolver } from "@hookform/resolvers/zod";
+import { schema, signUpSchema } from "./schema";
+import {
+ StyledLabel,
+ InputBox,
+ ErrorMessage,
+ FlexCol,
+ Flex,
+ AgreeWrapper,
+ AgreeBox,
+ CheckLabel,
+} from "./SignUpStyle";
+import { useNavigate } from "react-router-dom";
+
+interface SignUpStepProps {
+ onNext: () => void;
+}
+
+export default function SignUpStepOne({ onNext }: SignUpStepProps) {
+ const methods = useForm({
+ resolver: zodResolver(schema),
+ mode: "onChange",
+ });
+ const { control } = useFormContext();
+ const navigate = useNavigate();
+
+ const onClickPrev = () => {
+ navigate(-1);
+ };
+
+ return (
+ <>
+
+
+ 이메일
+
+ (
+
+ type="text"
+ keyname="userEmail"
+ id="signupEmail"
+ placeholder="이메일을 입력해 주세요."
+ {...field}
+ />
+ )}
+ />
+
+
+
+
+ {methods.formState.errors.userEmail?.message}
+
+
+
+ 비밀번호
+ (
+
+ type="password"
+ keyname="password"
+ id="signupPassword"
+ placeholder="비밀번호를 입력해 주세요."
+ {...field}
+ />
+ )}
+ />
+
+ {methods.formState.errors.password?.message}
+
+
+
+
+ 비밀번호 확인
+
+ (
+
+ type="password"
+ keyname="passwordConfirm"
+ id="signupPasswordConfirm"
+ placeholder="비밀번호를 한번 더 입력해 주세요."
+ {...field}
+ />
+ )}
+ />
+
+ {methods.formState.errors.passwordConfirm?.message}
+
+
+
+
+
+
+ 이용약관에 동의합니다.
+ 약관 보기
+
+
+
+
+ 개인정보처리방침에 동의합니다.
+
+ 약관 보기
+
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/src/pages/user/signUp/SignUpStepTwo.tsx b/src/pages/user/signUp/SignUpStepTwo.tsx
new file mode 100644
index 0000000..6529de8
--- /dev/null
+++ b/src/pages/user/signUp/SignUpStepTwo.tsx
@@ -0,0 +1,106 @@
+import Button from "@components/ui/button/Button";
+import Input from "@components/ui/input/Input";
+import defaultImage from "@assets/images/image_profile_01.svg";
+import { Controller, useForm, useFormContext } from "react-hook-form";
+import { zodResolver } from "@hookform/resolvers/zod";
+import { schema, signUpSchema } from "./schema";
+import {
+ ErrorMessage,
+ Flex,
+ FlexCol,
+ InputBox,
+ ProfileImage,
+ ProfileImageWrapper,
+ StyledLabel,
+ Tip,
+ ButtonLabel,
+} from "./SignUpStyle";
+
+interface SignUpStepProps {
+ onPrev: () => void;
+}
+
+export default function SignUpStepTwo({ onPrev }: SignUpStepProps) {
+ const methods = useForm({
+ resolver: zodResolver(schema),
+ mode: "onChange",
+ });
+
+ const { control } = useFormContext();
+
+ return (
+ <>
+
+
+
+
+
+
+
+ (
+
+ type="file"
+ keyname="profileImage"
+ id="profileImage"
+ style={{ display: "none" }}
+ accept=".png, .jpeg, .jpg"
+ {...field}
+ />
+ )}
+ />
+
+
+ 프로필 사진을 등록하지 않으시면 기본 프로필 이미지가 제공됩니다.
+
+
+
+ 닉네임
+ (
+
+ type="text"
+ keyname="userNickname"
+ id="signupNickname"
+ placeholder="사용할 닉네임을 두글자 이상 입력해 주세요."
+ {...field}
+ />
+ )}
+ />
+
+ {methods.formState.errors.userNickname?.message}
+
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/src/pages/user/signUp/SignUpStyle.ts b/src/pages/user/signUp/SignUpStyle.ts
new file mode 100644
index 0000000..bda3f36
--- /dev/null
+++ b/src/pages/user/signUp/SignUpStyle.ts
@@ -0,0 +1,155 @@
+import styled from "styled-components";
+
+export const SignUpSection = styled.section`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 50px;
+ height: 100%;
+`;
+
+export const SignUpTitle = styled.h2`
+ font-size: 32px;
+ font-weight: bold;
+`;
+
+export const Stepper = styled.ul`
+ display: flex;
+ border-radius: 12px;
+ background-color: var(--color-gray-200);
+ width: 180px;
+ height: 25px;
+
+ > li {
+ width: 90px;
+ height: 25px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-radius: 12px;
+ }
+`;
+
+export const StepBasic = styled.li`
+ background-color: var(--color-gray-200);
+`;
+
+export const CurrentStep = styled.li`
+ background-image: radial-gradient(
+ 120% 120% at 50% 100%,
+ var(--color-primary) 0%,
+ var(--color-gray-0) 100%
+ );
+ border: 1px solid var(--color-gray-999);
+ font-weight: 500;
+`;
+
+export const FormWrapper = styled.div`
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ height: 550px;
+`;
+
+export const FlexCol = styled.div`
+ display: flex;
+ flex-direction: column;
+ gap: 50px;
+ flex-grow: 1;
+`;
+
+export const Flex = styled.div`
+ display: flex;
+ gap: 20px;
+`;
+
+export const Tip = styled.p`
+ color: var(--color-gray-400);
+ font-weight: 300;
+ margin-top: 15px;
+`;
+
+export const InputBox = styled.div`
+ width: 400px;
+`;
+
+export const StyledLabel = styled.label`
+ display: block;
+ width: 100%;
+ font-size: 18px;
+ font-weight: 500;
+ margin-bottom: 10px;
+`;
+
+export const ButtonLabel = styled.label`
+ display: block;
+ width: 100%;
+ font-size: 16px;
+ font-weight: 400;
+ cursor: pointer;
+`;
+
+export const ErrorMessage = styled.p`
+ color: var(--color-warning);
+ margin-top: 10px;
+`;
+
+export const AgreeWrapper = styled.div`
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+`;
+
+export const AgreeBox = styled.div`
+ display: flex;
+ align-items: center;
+`;
+
+export const CheckLabel = styled.label`
+ font-size: 12px;
+ font-weight: 200;
+ color: var(--color-gray-999);
+ flex-grow: 1;
+`;
+
+export const ProfileImageWrapper = styled.div`
+ width: 150px;
+ height: 150px;
+ margin: 0px auto 30px;
+`;
+
+export const ProfileImage = styled.img`
+ width: 100%;
+ height: 150px;
+ border-radius: 50%;
+ overflow: hidden;
+ object-fit: cover;
+ border: 4px solid var(--color-gray-300);
+`;
+
+export const AddImageButton = styled.label`
+ width: 100%;
+ height: 50px;
+ line-height: 50px;
+ text-align: center;
+ background-color: rgba(51, 86, 53, 1);
+ color: #fff;
+ border-radius: 25px;
+ font-weight: 300;
+ transition: all 0.3s ease-out;
+ cursor: pointer;
+ flex-grow: 1;
+
+ &:hover {
+ background-color: rgba(85, 162, 90, 1);
+ }
+`;
+
+export const DeleteButton = styled.button`
+ width: 10%;
+`;
+
+export const DeleteIcon = styled.img`
+ width: auto;
+ height: 50px;
+`;
diff --git a/src/pages/user/signUp/schema.ts b/src/pages/user/signUp/schema.ts
new file mode 100644
index 0000000..4e5d223
--- /dev/null
+++ b/src/pages/user/signUp/schema.ts
@@ -0,0 +1,33 @@
+import { z } from "zod";
+
+const regexPassword =
+ /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&^.,/]{8,}$/;
+
+export const schema: z.ZodType = z.object({
+ userEmail: z.string().email("이메일 형식이 아닙니다."),
+ password: z
+ .string()
+ .min(8, { message: "비밀번호는 최소 8자리 이상 입력해주세요." })
+ .regex(regexPassword, {
+ message:
+ "숫자, 소문자, 대문자, 특수문자를 포함하여 8자리 이상 입력해 주세요.",
+ }),
+ passwordConfirm: z
+ .string()
+ .min(4, { message: "비밀번호는 최소 8자리 이상 입력해주세요." })
+ .regex(regexPassword, {
+ message:
+ "숫자, 소문자, 대문자, 특수문자를 포함하여 8자리 이상 입력해 주세요.",
+ }),
+ userNickname: z
+ .string()
+ .min(2, { message: "닉네임은 최소 2자리 이상 입력해 주세요." }),
+});
+
+export interface signUpSchema {
+ userEmail: string;
+ password: string;
+ passwordConfirm: string;
+ userNickname: string;
+ profileImage?: [];
+}
diff --git a/src/routes/router.tsx b/src/routes/router.tsx
index 8d99085..6ac6e50 100644
--- a/src/routes/router.tsx
+++ b/src/routes/router.tsx
@@ -1,14 +1,28 @@
-import { createBrowserRouter } from "react-router-dom";
-import App from "../App";
+import { createBrowserRouter, Navigate } from "react-router-dom";
import Login from "@pages/user/login/Login";
import Ranking from "@pages/rank/Ranking";
import SignUp from "@pages/user/signUp/SignUp";
+import Layout from "@components/layout/layout/Layout";
+import GameRoomList from "@pages/game/gameRoomList";
+import CheckPassword from "@pages/mypage/checkPassword/CheckPassword";
+import UpdateMyPage from "@pages/mypage/updateMypage/UpdateMyPage";
+import GameRoom from "@pages/game/GameRoom";
+import Game from "@pages/game/Game";
+import Home from "@pages/home/Home";
export const router = createBrowserRouter([
{
path: "/",
- element: ,
+ element: ,
children: [
+ {
+ index: true,
+ element: ,
+ },
+ {
+ path: "home",
+ element: ,
+ },
{
path: "/user/login",
element: ,
@@ -21,6 +35,28 @@ export const router = createBrowserRouter([
path: "/rank",
element: ,
},
+ {
+ path: "/game",
+ element: ,
+ children: [
+ {
+ index: true,
+ element: ,
+ },
+ {
+ path: "room/:id",
+ element: ,
+ },
+ ],
+ },
+ {
+ path: "/user/mypage/checkPassword",
+ element: ,
+ },
+ {
+ path: "/user/mypage/updateMyPage",
+ element: ,
+ },
],
},
]);
diff --git a/src/store/useModalStore.ts b/src/store/useModalStore.ts
new file mode 100644
index 0000000..11ed5fb
--- /dev/null
+++ b/src/store/useModalStore.ts
@@ -0,0 +1,19 @@
+import { create } from "zustand";
+
+type ModalState = {
+ showModal: boolean;
+ currentModal: string | null;
+ modalColor: string;
+ openModal: (modalName: string, color?: string) => void;
+ closeModal: () => void;
+};
+
+export const useModalStore = create((set) => ({
+ showModal: false,
+ currentModal: null,
+ modalColor: "",
+ openModal: (modalName, color = "white") =>
+ set({ showModal: true, currentModal: modalName, modalColor: color }),
+ closeModal: () =>
+ set({ showModal: false, currentModal: null, modalColor: "" }),
+}));
diff --git a/src/store/useReadyStore.ts b/src/store/useReadyStore.ts
new file mode 100644
index 0000000..7a8fa24
--- /dev/null
+++ b/src/store/useReadyStore.ts
@@ -0,0 +1,11 @@
+import { create } from "zustand";
+
+interface IReadyState {
+ ready: boolean;
+ setReady: (ready: boolean) => void;
+}
+
+export const useReadyStore = create((set) => ({
+ ready: false,
+ setReady: (ready: boolean) => set({ ready }),
+}));
diff --git a/src/store/useRoomIdStore.ts b/src/store/useRoomIdStore.ts
new file mode 100644
index 0000000..e636d93
--- /dev/null
+++ b/src/store/useRoomIdStore.ts
@@ -0,0 +1,11 @@
+import { create } from "zustand";
+
+interface IRoomState {
+ roomId: number;
+ setRoomId: (id: number) => void;
+}
+
+export const useRoomIdStore = create((set) => ({
+ roomId: 0,
+ setRoomId: (id: number) => set({ roomId: id }),
+}));
diff --git a/src/store/useSocketStore.ts b/src/store/useSocketStore.ts
new file mode 100644
index 0000000..57df14a
--- /dev/null
+++ b/src/store/useSocketStore.ts
@@ -0,0 +1,14 @@
+// useSocketStore.ts
+import { create } from "zustand";
+import { Socket } from "socket.io-client";
+
+interface SocketState {
+ socket: Socket | null;
+ setSocket: (newSocket: Socket | null) => void;
+}
+
+export const useSocketStore = create((set) => ({
+ socket: null,
+
+ setSocket: (newSocket: Socket | null) => set({ socket: newSocket }),
+}));
diff --git a/src/store/useToastStore.ts b/src/store/useToastStore.ts
new file mode 100644
index 0000000..b2d2b61
--- /dev/null
+++ b/src/store/useToastStore.ts
@@ -0,0 +1,25 @@
+import { create } from "zustand";
+
+export interface ToastProps {
+ id: number;
+ message: string;
+}
+
+interface IToastState {
+ toasts: ToastProps[];
+ setToast: (toast: ToastProps) => void;
+ removeToast: (id: number) => void;
+}
+
+export const useToastStore = create()((set) => ({
+ toasts: [], // 여러 개의 토스트를 배열에 저장
+ setToast: (toast) =>
+ set((state) => ({
+ ...state,
+ toasts: [...state.toasts, toast],
+ })), // 새로운 토스트가 추가되면 기존 토스트 배열에 추가
+ removeToast: (id) =>
+ set((state) => ({
+ toasts: state.toasts.filter((toast) => toast.id !== id),
+ })), // 지정된 시간이 지난 토스트를 토스트 배열에서 제거
+}));
diff --git a/src/styles/GlobalStyle.ts b/src/styles/GlobalStyle.ts
index 131b947..be5a59b 100644
--- a/src/styles/GlobalStyle.ts
+++ b/src/styles/GlobalStyle.ts
@@ -3,40 +3,6 @@ import { createGlobalStyle } from "styled-components";
const GlobalStyles = createGlobalStyle`
- :root {
- background-color: #fff;
- /* variables */
- --color-primary: #44FF92;
- --color-secondary: #2571FF;
- --color-rose: #FF5E5E;
- --color-warning: #FF5E5E;
- --color-yellow-100: #FFF740;
- --color-yellow-500: #FFFBA6;
- --color-yellow-900: #FFFDD7;
- --color-gray-0: #FFFFFF;
- --color-gray-100: #F8F8F8;
- --color-gray-200: #E4E4E4;
- --color-gray-300: #C5C5C5;
- --color-gray-400: #949494;
- --color-gray-500: #7F7F7F;
- --color-gray-600: #6C6C6C;
- --color-gray-700: #454545;
- --color-gray-800: #232323;
- --color-gray-900: #121212;
- --color-gray-999: #000000;
- --shadow: 1px 1px 5px 0 rgba(176, 176, 176, 0.5);
- --radius-sm: 12px;
- --radius-md: 14px;
- --radius-lg: 50%;
-
- width: 100vw;
- height: 100vh;
- }
-
- *{
- box-sizing: border-box;
- }
-
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
@@ -105,15 +71,75 @@ img {
vertical-align: top;
}
+
+
+:root {
+ background-color: #fff;
+ /* variables */
+ --color-primary: #44FF92;
+ --color-secondary: #2571FF;
+ --color-rose: #FF5E5E;
+ --color-warning: #FF5E5E;
+ --color-yellow-100: #FFF740;
+ --color-yellow-500: #FFFBA6;
+ --color-yellow-900: #FFFDD7;
+ --color-gray-0: #FFFFFF;
+ --color-gray-100: #F8F8F8;
+ --color-gray-200: #E4E4E4;
+ --color-gray-300: #C5C5C5;
+ --color-gray-400: #949494;
+ --color-gray-500: #7F7F7F;
+ --color-gray-600: #6C6C6C;
+ --color-gray-700: #454545;
+ --color-gray-800: #232323;
+ --color-gray-900: #121212;
+ --color-gray-999: #000000;
+ --shadow: 1px 1px 5px 0 rgba(176, 176, 176, 0.5);
+ --radius-sm: 12px;
+ --radius-md: 14px;
+ --radius-lg: 50%;
+
+ width: 100vw;
+ height: 100vh;
+}
+
+html, body {
+ width: 100vw;
+ height: 100vh;
+}
+
body {
-webkit-touch-callout: none; /* iOS Safari */
-webkit-text-size-adjust: none; /* Chrome, Safari, Opera */
-ms-text-size-adjust: none; /* IE */
user-select: none; /* Non-prefixed version, currently supported by Chrome, Edge, Opera and Firefox */
- height: 100%; /* Prevent vertical bounce and set height to full view */
margin: unset;
padding: unset;
}
+
+#root {
+ width: 100%;
+ height: 100%;
+ z-index: 999;
+}
+
+*{
+ box-sizing: border-box !important;
+}
+
+#toast-root {
+ position: absolute;
+ top: 180px;
+ display: flex;
+ gap: 10px;
+ flex-direction: column;
+ align-items: center;
+ width: 100%;
+ max-height: 200px;
+ overflow: hidden;
+ z-index: 1;
+}
+
`;
export default GlobalStyles;
diff --git a/yarn.lock b/yarn.lock
index 22f1b42..defda91 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4,7 +4,7 @@
"@ampproject/remapping@^2.2.0":
version "2.3.0"
- resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
dependencies:
"@jridgewell/gen-mapping" "^0.3.5"
@@ -12,7 +12,7 @@
"@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.26.2":
version "7.26.2"
- resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85"
integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==
dependencies:
"@babel/helper-validator-identifier" "^7.25.9"
@@ -21,12 +21,12 @@
"@babel/compat-data@^7.25.9":
version "7.26.3"
- resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.3.tgz#99488264a56b2aded63983abd6a417f03b92ed02"
integrity sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==
"@babel/core@^7.26.0":
version "7.26.0"
- resolved "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.0.tgz#d78b6023cc8f3114ccf049eb219613f74a747b40"
integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==
dependencies:
"@ampproject/remapping" "^2.2.0"
@@ -47,7 +47,7 @@
"@babel/generator@^7.26.0", "@babel/generator@^7.26.3":
version "7.26.3"
- resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.3.tgz#ab8d4360544a425c90c248df7059881f4b2ce019"
integrity sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==
dependencies:
"@babel/parser" "^7.26.3"
@@ -58,7 +58,7 @@
"@babel/helper-compilation-targets@^7.25.9":
version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz#55af025ce365be3cdc0c1c1e56c6af617ce88875"
integrity sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==
dependencies:
"@babel/compat-data" "^7.25.9"
@@ -69,7 +69,7 @@
"@babel/helper-module-imports@^7.25.9":
version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715"
integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==
dependencies:
"@babel/traverse" "^7.25.9"
@@ -77,7 +77,7 @@
"@babel/helper-module-transforms@^7.26.0":
version "7.26.0"
- resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae"
integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==
dependencies:
"@babel/helper-module-imports" "^7.25.9"
@@ -86,27 +86,27 @@
"@babel/helper-plugin-utils@^7.25.9":
version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz#9cbdd63a9443a2c92a725cca7ebca12cc8dd9f46"
integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==
"@babel/helper-string-parser@^7.25.9":
version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c"
integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==
"@babel/helper-validator-identifier@^7.25.9":
version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7"
integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==
"@babel/helper-validator-option@^7.25.9":
version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72"
integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==
"@babel/helpers@^7.26.0":
version "7.26.0"
- resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.0.tgz#30e621f1eba5aa45fe6f4868d2e9154d884119a4"
integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==
dependencies:
"@babel/template" "^7.25.9"
@@ -114,28 +114,28 @@
"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.3":
version "7.26.3"
- resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.3.tgz#8c51c5db6ddf08134af1ddbacf16aaab48bac234"
integrity sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==
dependencies:
"@babel/types" "^7.26.3"
"@babel/plugin-transform-react-jsx-self@^7.25.9":
version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz#c0b6cae9c1b73967f7f9eb2fca9536ba2fad2858"
integrity sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==
dependencies:
"@babel/helper-plugin-utils" "^7.25.9"
"@babel/plugin-transform-react-jsx-source@^7.25.9":
version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz#4c6b8daa520b5f155b5fb55547d7c9fa91417503"
integrity sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==
dependencies:
"@babel/helper-plugin-utils" "^7.25.9"
"@babel/template@^7.25.9":
version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.9.tgz#ecb62d81a8a6f5dc5fe8abfc3901fc52ddf15016"
integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==
dependencies:
"@babel/code-frame" "^7.25.9"
@@ -143,9 +143,9 @@
"@babel/types" "^7.25.9"
"@babel/traverse@^7.25.9":
- version "7.26.3"
- resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.3.tgz"
- integrity sha512-yTmc8J+Sj8yLzwr4PD5Xb/WF3bOYu2C2OoSZPzbuqRm4n98XirsbzaX+GloeO376UnSYIYJ4NCanwV5/ugZkwA==
+ version "7.26.4"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.4.tgz#ac3a2a84b908dde6d463c3bfa2c5fdc1653574bd"
+ integrity sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==
dependencies:
"@babel/code-frame" "^7.26.2"
"@babel/generator" "^7.26.3"
@@ -157,7 +157,7 @@
"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.3":
version "7.26.3"
- resolved "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.3.tgz#37e79830f04c2b5687acc77db97fbc75fb81f3c0"
integrity sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==
dependencies:
"@babel/helper-string-parser" "^7.25.9"
@@ -165,156 +165,161 @@
"@emotion/is-prop-valid@1.2.2":
version "1.2.2"
- resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz"
+ resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz#d4175076679c6a26faa92b03bb786f9e52612337"
integrity sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==
dependencies:
"@emotion/memoize" "^0.8.1"
"@emotion/memoize@^0.8.1":
version "0.8.1"
- resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz"
+ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17"
integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==
"@emotion/unitless@0.8.1":
version "0.8.1"
- resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz"
+ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3"
integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==
-"@esbuild/aix-ppc64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz#b57697945b50e99007b4c2521507dc613d4a648c"
- integrity sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==
-
-"@esbuild/android-arm64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz#1add7e0af67acefd556e407f8497e81fddad79c0"
- integrity sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==
-
-"@esbuild/android-arm@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.24.0.tgz#ab7263045fa8e090833a8e3c393b60d59a789810"
- integrity sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==
-
-"@esbuild/android-x64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.24.0.tgz#e8f8b196cfdfdd5aeaebbdb0110983460440e705"
- integrity sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==
-
-"@esbuild/darwin-arm64@0.24.0":
- version "0.24.0"
- resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz"
- integrity sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==
-
-"@esbuild/darwin-x64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz#33087aab31a1eb64c89daf3d2cf8ce1775656107"
- integrity sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==
-
-"@esbuild/freebsd-arm64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz#bb76e5ea9e97fa3c753472f19421075d3a33e8a7"
- integrity sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==
-
-"@esbuild/freebsd-x64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz#e0e2ce9249fdf6ee29e5dc3d420c7007fa579b93"
- integrity sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==
-
-"@esbuild/linux-arm64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz#d1b2aa58085f73ecf45533c07c82d81235388e75"
- integrity sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==
-
-"@esbuild/linux-arm@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz#8e4915df8ea3e12b690a057e77a47b1d5935ef6d"
- integrity sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==
-
-"@esbuild/linux-ia32@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz#8200b1110666c39ab316572324b7af63d82013fb"
- integrity sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==
-
-"@esbuild/linux-loong64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz#6ff0c99cf647504df321d0640f0d32e557da745c"
- integrity sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==
-
-"@esbuild/linux-mips64el@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz#3f720ccd4d59bfeb4c2ce276a46b77ad380fa1f3"
- integrity sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==
-
-"@esbuild/linux-ppc64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz#9d6b188b15c25afd2e213474bf5f31e42e3aa09e"
- integrity sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==
-
-"@esbuild/linux-riscv64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz#f989fdc9752dfda286c9cd87c46248e4dfecbc25"
- integrity sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==
-
-"@esbuild/linux-s390x@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz#29ebf87e4132ea659c1489fce63cd8509d1c7319"
- integrity sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==
-
-"@esbuild/linux-x64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz#4af48c5c0479569b1f359ffbce22d15f261c0cef"
- integrity sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==
-
-"@esbuild/netbsd-x64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz#1ae73d23cc044a0ebd4f198334416fb26c31366c"
- integrity sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==
-
-"@esbuild/openbsd-arm64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz#5d904a4f5158c89859fd902c427f96d6a9e632e2"
- integrity sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==
-
-"@esbuild/openbsd-x64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz#4c8aa88c49187c601bae2971e71c6dc5e0ad1cdf"
- integrity sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==
-
-"@esbuild/sunos-x64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz#8ddc35a0ea38575fa44eda30a5ee01ae2fa54dd4"
- integrity sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==
-
-"@esbuild/win32-arm64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz#6e79c8543f282c4539db684a207ae0e174a9007b"
- integrity sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==
-
-"@esbuild/win32-ia32@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz#057af345da256b7192d18b676a02e95d0fa39103"
- integrity sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==
-
-"@esbuild/win32-x64@0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz#168ab1c7e1c318b922637fad8f339d48b01e1244"
- integrity sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==
+"@esbuild/aix-ppc64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz#38848d3e25afe842a7943643cbcd387cc6e13461"
+ integrity sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==
+
+"@esbuild/android-arm64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz#f592957ae8b5643129fa889c79e69cd8669bb894"
+ integrity sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==
+
+"@esbuild/android-arm@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.24.2.tgz#72d8a2063aa630308af486a7e5cbcd1e134335b3"
+ integrity sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==
+
+"@esbuild/android-x64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.24.2.tgz#9a7713504d5f04792f33be9c197a882b2d88febb"
+ integrity sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==
+
+"@esbuild/darwin-arm64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz#02ae04ad8ebffd6e2ea096181b3366816b2b5936"
+ integrity sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==
+
+"@esbuild/darwin-x64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz#9ec312bc29c60e1b6cecadc82bd504d8adaa19e9"
+ integrity sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==
+
+"@esbuild/freebsd-arm64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz#5e82f44cb4906d6aebf24497d6a068cfc152fa00"
+ integrity sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==
+
+"@esbuild/freebsd-x64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz#3fb1ce92f276168b75074b4e51aa0d8141ecce7f"
+ integrity sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==
+
+"@esbuild/linux-arm64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz#856b632d79eb80aec0864381efd29de8fd0b1f43"
+ integrity sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==
+
+"@esbuild/linux-arm@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz#c846b4694dc5a75d1444f52257ccc5659021b736"
+ integrity sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==
+
+"@esbuild/linux-ia32@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz#f8a16615a78826ccbb6566fab9a9606cfd4a37d5"
+ integrity sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==
+
+"@esbuild/linux-loong64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz#1c451538c765bf14913512c76ed8a351e18b09fc"
+ integrity sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==
+
+"@esbuild/linux-mips64el@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz#0846edeefbc3d8d50645c51869cc64401d9239cb"
+ integrity sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==
+
+"@esbuild/linux-ppc64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz#8e3fc54505671d193337a36dfd4c1a23b8a41412"
+ integrity sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==
+
+"@esbuild/linux-riscv64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz#6a1e92096d5e68f7bb10a0d64bb5b6d1daf9a694"
+ integrity sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==
+
+"@esbuild/linux-s390x@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz#ab18e56e66f7a3c49cb97d337cd0a6fea28a8577"
+ integrity sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==
+
+"@esbuild/linux-x64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz#8140c9b40da634d380b0b29c837a0b4267aff38f"
+ integrity sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==
+
+"@esbuild/netbsd-arm64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz#65f19161432bafb3981f5f20a7ff45abb2e708e6"
+ integrity sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==
+
+"@esbuild/netbsd-x64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz#7a3a97d77abfd11765a72f1c6f9b18f5396bcc40"
+ integrity sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==
+
+"@esbuild/openbsd-arm64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz#58b00238dd8f123bfff68d3acc53a6ee369af89f"
+ integrity sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==
+
+"@esbuild/openbsd-x64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz#0ac843fda0feb85a93e288842936c21a00a8a205"
+ integrity sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==
+
+"@esbuild/sunos-x64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz#8b7aa895e07828d36c422a4404cc2ecf27fb15c6"
+ integrity sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==
+
+"@esbuild/win32-arm64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz#c023afb647cabf0c3ed13f0eddfc4f1d61c66a85"
+ integrity sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==
+
+"@esbuild/win32-ia32@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz#96c356132d2dda990098c8b8b951209c3cd743c2"
+ integrity sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==
+
+"@esbuild/win32-x64@0.24.2":
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz#34aa0b52d0fbb1a654b596acfa595f0c7b77a77b"
+ integrity sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==
"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
version "4.4.1"
- resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz"
+ resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56"
integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==
dependencies:
eslint-visitor-keys "^3.4.3"
"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.12.1":
version "4.12.1"
- resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz"
+ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0"
integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
"@eslint/config-array@^0.19.0":
version "0.19.1"
- resolved "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz"
+ resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.1.tgz#734aaea2c40be22bbb1f2a9dac687c57a6a4c984"
integrity sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==
dependencies:
"@eslint/object-schema" "^2.1.5"
@@ -323,14 +328,14 @@
"@eslint/core@^0.9.0":
version "0.9.1"
- resolved "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz"
+ resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.9.1.tgz#31763847308ef6b7084a4505573ac9402c51f9d1"
integrity sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==
dependencies:
"@types/json-schema" "^7.0.15"
"@eslint/eslintrc@^3.2.0":
version "3.2.0"
- resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.2.0.tgz#57470ac4e2e283a6bf76044d63281196e370542c"
integrity sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==
dependencies:
ajv "^6.12.4"
@@ -343,31 +348,36 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
-"@eslint/js@9.16.0", "@eslint/js@^9.15.0":
- version "9.16.0"
- resolved "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz"
- integrity sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==
+"@eslint/js@9.17.0", "@eslint/js@^9.15.0":
+ version "9.17.0"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.17.0.tgz#1523e586791f80376a6f8398a3964455ecc651ec"
+ integrity sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==
"@eslint/object-schema@^2.1.5":
version "2.1.5"
- resolved "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz"
+ resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.5.tgz#8670a8f6258a2be5b2c620ff314a1d984c23eb2e"
integrity sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==
"@eslint/plugin-kit@^0.2.3":
version "0.2.4"
- resolved "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz"
+ resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz#2b78e7bb3755784bb13faa8932a1d994d6537792"
integrity sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==
dependencies:
levn "^0.4.1"
+"@hookform/resolvers@^3.9.1":
+ version "3.9.1"
+ resolved "https://registry.yarnpkg.com/@hookform/resolvers/-/resolvers-3.9.1.tgz#a23883c40bfd449cb6c6ab5a0fa0729184c950ff"
+ integrity sha512-ud2HqmGBM0P0IABqoskKWI6PEf6ZDDBZkFqe2Vnl+mTHCEHzr3ISjjZyCwTjC/qpL25JC9aIDkloQejvMeq0ug==
+
"@humanfs/core@^0.19.1":
version "0.19.1"
- resolved "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz"
+ resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77"
integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==
"@humanfs/node@^0.16.6":
version "0.16.6"
- resolved "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz"
+ resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.6.tgz#ee2a10eaabd1131987bf0488fd9b820174cd765e"
integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==
dependencies:
"@humanfs/core" "^0.19.1"
@@ -375,23 +385,23 @@
"@humanwhocodes/module-importer@^1.0.1":
version "1.0.1"
- resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
"@humanwhocodes/retry@^0.3.0":
version "0.3.1"
- resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a"
integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==
"@humanwhocodes/retry@^0.4.1":
version "0.4.1"
- resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.1.tgz#9a96ce501bc62df46c4031fbd970e3cc6b10f07b"
integrity sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==
"@jridgewell/gen-mapping@^0.3.5":
- version "0.3.5"
- resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz"
- integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
+ version "0.3.8"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142"
+ integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==
dependencies:
"@jridgewell/set-array" "^1.2.1"
"@jridgewell/sourcemap-codec" "^1.4.10"
@@ -399,22 +409,22 @@
"@jridgewell/resolve-uri@^3.1.0":
version "3.1.2"
- resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
"@jridgewell/set-array@^1.2.1":
version "1.2.1"
- resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz"
+ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280"
integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
version "1.5.0"
- resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a"
integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
version "0.3.25"
- resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
dependencies:
"@jridgewell/resolve-uri" "^3.1.0"
@@ -422,7 +432,7 @@
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
- resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
dependencies:
"@nodelib/fs.stat" "2.0.5"
@@ -430,115 +440,125 @@
"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
version "2.0.5"
- resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
"@nodelib/fs.walk@^1.2.3":
version "1.2.8"
- resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
dependencies:
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
-"@rollup/rollup-android-arm-eabi@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz#462e7ecdd60968bc9eb95a20d185e74f8243ec1b"
- integrity sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==
-
-"@rollup/rollup-android-arm64@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz#78a2b8a8a55f71a295eb860a654ae90a2b168f40"
- integrity sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==
-
-"@rollup/rollup-darwin-arm64@4.28.0":
- version "4.28.0"
- resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz"
- integrity sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==
-
-"@rollup/rollup-darwin-x64@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz#f72484e842521a5261978034e18e20f778a2850d"
- integrity sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==
-
-"@rollup/rollup-freebsd-arm64@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz#3c919dff72b2fe344811a609c674a8347b033f62"
- integrity sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==
-
-"@rollup/rollup-freebsd-x64@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz#b62a3a8365b363b3fdfa6da11a9188b6ab4dca7c"
- integrity sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==
-
-"@rollup/rollup-linux-arm-gnueabihf@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz#0d02cc55bd229bd8ca5c54f65f916ba5e0591c94"
- integrity sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==
-
-"@rollup/rollup-linux-arm-musleabihf@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz#c51d379263201e88a60e92bd8e90878f0c044425"
- integrity sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==
-
-"@rollup/rollup-linux-arm64-gnu@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz#93ce2addc337b5cfa52b84f8e730d2e36eb4339b"
- integrity sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==
-
-"@rollup/rollup-linux-arm64-musl@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz#730af6ddc091a5ba5baac28a3510691725dc808b"
- integrity sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==
-
-"@rollup/rollup-linux-powerpc64le-gnu@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz#b5565aac20b4de60ca1e557f525e76478b5436af"
- integrity sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==
-
-"@rollup/rollup-linux-riscv64-gnu@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz#d488290bf9338bad4ae9409c4aa8a1728835a20b"
- integrity sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==
-
-"@rollup/rollup-linux-s390x-gnu@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz#eb2e3f3a06acf448115045c11a5a96868c95a556"
- integrity sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==
-
-"@rollup/rollup-linux-x64-gnu@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz#065952ef2aea7e837dc7e02aa500feeaff4fc507"
- integrity sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==
-
-"@rollup/rollup-linux-x64-musl@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz#3435d484d05f5c4d1ffd54541b4facce2887103a"
- integrity sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==
-
-"@rollup/rollup-win32-arm64-msvc@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz#69682a2a10d9fedc334f87583cfca83c39c08077"
- integrity sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==
-
-"@rollup/rollup-win32-ia32-msvc@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz#b64470f9ac79abb386829c56750b9a4711be3332"
- integrity sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==
-
-"@rollup/rollup-win32-x64-msvc@4.28.0":
- version "4.28.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz#cb313feef9ac6e3737067fdf34f42804ac65a6f2"
- integrity sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==
+"@rollup/rollup-android-arm-eabi@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.1.tgz#9bd38df6a29afb7f0336d988bc8112af0c8816c0"
+ integrity sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==
+
+"@rollup/rollup-android-arm64@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.1.tgz#bd1a98390e15b76eeef907175a37c5f0f9e4d214"
+ integrity sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==
+
+"@rollup/rollup-darwin-arm64@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.1.tgz#bc6fa8a2cc77b5f367424e5e994e3537524e6879"
+ integrity sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==
+
+"@rollup/rollup-darwin-x64@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.1.tgz#76059c91f06b17406347b127df10f065283b2e61"
+ integrity sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==
+
+"@rollup/rollup-freebsd-arm64@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.1.tgz#83178315c0be4b4c8c1fd835e1952d2dc1eb4e6e"
+ integrity sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==
+
+"@rollup/rollup-freebsd-x64@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.1.tgz#1ef24fa0576bf7899a0a0a649156606dbd7a0d46"
+ integrity sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==
+
+"@rollup/rollup-linux-arm-gnueabihf@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.1.tgz#443a6f5681bf4611caae42988994a6d8ee676216"
+ integrity sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==
+
+"@rollup/rollup-linux-arm-musleabihf@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.1.tgz#9738b27184102228637a683e5f35b22ea352394f"
+ integrity sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==
+
+"@rollup/rollup-linux-arm64-gnu@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.1.tgz#b5e9d5e30ff36a19bedd29c715ba18a1889ff269"
+ integrity sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==
+
+"@rollup/rollup-linux-arm64-musl@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.1.tgz#1d8f68f0829b57f746ec03432ad046f1af014a98"
+ integrity sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==
+
+"@rollup/rollup-linux-loongarch64-gnu@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.1.tgz#07027feb883408e74a3002c8e50caaedd288ae38"
+ integrity sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==
+
+"@rollup/rollup-linux-powerpc64le-gnu@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.1.tgz#544ce1b0847a9c1240425e86f33daceac7ec4e12"
+ integrity sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==
+
+"@rollup/rollup-linux-riscv64-gnu@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.1.tgz#64be13d51852ec1e2dfbd25d997ed5f42f35ea6d"
+ integrity sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==
+
+"@rollup/rollup-linux-s390x-gnu@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.1.tgz#31f51e1e05c6264552d03875d9e2e673f0fd86e3"
+ integrity sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==
+
+"@rollup/rollup-linux-x64-gnu@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.1.tgz#f4c95b26f4ad69ebdb64b42f0ae4da2a0f617958"
+ integrity sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==
+
+"@rollup/rollup-linux-x64-musl@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.1.tgz#ab7be89192f72beb9ea6e2386186fefde4f69d82"
+ integrity sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==
+
+"@rollup/rollup-win32-arm64-msvc@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.1.tgz#7f12efb8240b238346951559998802722944421e"
+ integrity sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==
+
+"@rollup/rollup-win32-ia32-msvc@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.1.tgz#353d14d6eee943004d129796e4feddd3aa260921"
+ integrity sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==
+
+"@rollup/rollup-win32-x64-msvc@4.29.1":
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz#c82f04a09ba481e13857d6f2516e072aaa51b7f4"
+ integrity sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==
+
+"@socket.io/component-emitter@~3.1.0":
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2"
+ integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==
"@tanstack/query-core@4.36.1":
version "4.36.1"
- resolved "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.36.1.tgz"
+ resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.36.1.tgz#79f8c1a539d47c83104210be2388813a7af2e524"
integrity sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==
"@tanstack/react-query@4":
version "4.36.1"
- resolved "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.36.1.tgz"
+ resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.36.1.tgz#acb589fab4085060e2e78013164868c9c785e5d2"
integrity sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==
dependencies:
"@tanstack/query-core" "4.36.1"
@@ -546,7 +566,7 @@
"@types/babel__core@^7.20.5":
version "7.20.5"
- resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz"
+ resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017"
integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==
dependencies:
"@babel/parser" "^7.20.7"
@@ -557,14 +577,14 @@
"@types/babel__generator@*":
version "7.6.8"
- resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz"
+ resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab"
integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==
dependencies:
"@babel/types" "^7.0.0"
"@types/babel__template@*":
version "7.4.4"
- resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz"
+ resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f"
integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==
dependencies:
"@babel/parser" "^7.1.0"
@@ -572,114 +592,119 @@
"@types/babel__traverse@*":
version "7.20.6"
- resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7"
integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==
dependencies:
"@babel/types" "^7.20.7"
"@types/cookie@^0.6.0":
version "0.6.0"
- resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz"
+ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.6.0.tgz#eac397f28bf1d6ae0ae081363eca2f425bedf0d5"
integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==
"@types/estree@1.0.6", "@types/estree@^1.0.6":
version "1.0.6"
- resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50"
integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
"@types/json-schema@^7.0.15":
version "7.0.15"
- resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
"@types/node@^22.10.2":
version "22.10.2"
- resolved "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.2.tgz#a485426e6d1fdafc7b0d4c7b24e2c78182ddabb9"
integrity sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==
dependencies:
undici-types "~6.20.0"
"@types/prop-types@*":
- version "15.7.13"
- resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz"
- integrity sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==
+ version "15.7.14"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.14.tgz#1433419d73b2a7ebfc6918dcefd2ec0d5cd698f2"
+ integrity sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==
"@types/react-dom@^18.3.1":
- version "18.3.1"
- resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz"
- integrity sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==
- dependencies:
- "@types/react" "*"
+ version "18.3.5"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.5.tgz#45f9f87398c5dcea085b715c58ddcf1faf65f716"
+ integrity sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==
-"@types/react@*", "@types/react@^18.3.12":
- version "18.3.13"
- resolved "https://registry.npmjs.org/@types/react/-/react-18.3.13.tgz"
- integrity sha512-ii/gswMmOievxAJed4PAHT949bpYjPKXvXo1v6cRB/kqc2ZR4n+SgyCyvyc5Fec5ez8VnUumI1Vk7j6fRyRogg==
+"@types/react@^18.3.12":
+ version "18.3.18"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.18.tgz#9b382c4cd32e13e463f97df07c2ee3bbcd26904b"
+ integrity sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==
dependencies:
"@types/prop-types" "*"
csstype "^3.0.2"
+"@types/socket.io-client@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@types/socket.io-client/-/socket.io-client-3.0.0.tgz#d0b8ea22121b7c1df68b6a923002f9c8e3cefb42"
+ integrity sha512-s+IPvFoEIjKA3RdJz/Z2dGR4gLgysKi8owcnrVwNjgvc01Lk68LJDDsG2GRqegFITcxmvCMYM7bhMpwEMlHmDg==
+ dependencies:
+ socket.io-client "*"
+
"@types/stylis@4.2.5":
version "4.2.5"
- resolved "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz"
+ resolved "https://registry.yarnpkg.com/@types/stylis/-/stylis-4.2.5.tgz#1daa6456f40959d06157698a653a9ab0a70281df"
integrity sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==
-"@typescript-eslint/eslint-plugin@8.17.0":
- version "8.17.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.17.0.tgz"
- integrity sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w==
+"@typescript-eslint/eslint-plugin@8.18.2":
+ version "8.18.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.2.tgz#c78e363ab5fe3b21dd1c90d8be9581534417f78e"
+ integrity sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==
dependencies:
"@eslint-community/regexpp" "^4.10.0"
- "@typescript-eslint/scope-manager" "8.17.0"
- "@typescript-eslint/type-utils" "8.17.0"
- "@typescript-eslint/utils" "8.17.0"
- "@typescript-eslint/visitor-keys" "8.17.0"
+ "@typescript-eslint/scope-manager" "8.18.2"
+ "@typescript-eslint/type-utils" "8.18.2"
+ "@typescript-eslint/utils" "8.18.2"
+ "@typescript-eslint/visitor-keys" "8.18.2"
graphemer "^1.4.0"
ignore "^5.3.1"
natural-compare "^1.4.0"
ts-api-utils "^1.3.0"
-"@typescript-eslint/parser@8.17.0":
- version "8.17.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.17.0.tgz"
- integrity sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg==
+"@typescript-eslint/parser@8.18.2":
+ version "8.18.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.18.2.tgz#0379a2e881d51d8fcf7ebdfa0dd18eee79182ce2"
+ integrity sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==
dependencies:
- "@typescript-eslint/scope-manager" "8.17.0"
- "@typescript-eslint/types" "8.17.0"
- "@typescript-eslint/typescript-estree" "8.17.0"
- "@typescript-eslint/visitor-keys" "8.17.0"
+ "@typescript-eslint/scope-manager" "8.18.2"
+ "@typescript-eslint/types" "8.18.2"
+ "@typescript-eslint/typescript-estree" "8.18.2"
+ "@typescript-eslint/visitor-keys" "8.18.2"
debug "^4.3.4"
-"@typescript-eslint/scope-manager@8.17.0":
- version "8.17.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.17.0.tgz"
- integrity sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==
+"@typescript-eslint/scope-manager@8.18.2":
+ version "8.18.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.18.2.tgz#d193c200d61eb0ddec5987c8e48c9d4e1c0510bd"
+ integrity sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==
dependencies:
- "@typescript-eslint/types" "8.17.0"
- "@typescript-eslint/visitor-keys" "8.17.0"
+ "@typescript-eslint/types" "8.18.2"
+ "@typescript-eslint/visitor-keys" "8.18.2"
-"@typescript-eslint/type-utils@8.17.0":
- version "8.17.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.17.0.tgz"
- integrity sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw==
+"@typescript-eslint/type-utils@8.18.2":
+ version "8.18.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.18.2.tgz#5ad07e09002eee237591881df674c1c0c91ca52f"
+ integrity sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==
dependencies:
- "@typescript-eslint/typescript-estree" "8.17.0"
- "@typescript-eslint/utils" "8.17.0"
+ "@typescript-eslint/typescript-estree" "8.18.2"
+ "@typescript-eslint/utils" "8.18.2"
debug "^4.3.4"
ts-api-utils "^1.3.0"
-"@typescript-eslint/types@8.17.0":
- version "8.17.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.17.0.tgz"
- integrity sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==
+"@typescript-eslint/types@8.18.2":
+ version "8.18.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.18.2.tgz#5ebad5b384c8aa1c0f86cee1c61bcdbe7511f547"
+ integrity sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==
-"@typescript-eslint/typescript-estree@8.17.0":
- version "8.17.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.17.0.tgz"
- integrity sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==
+"@typescript-eslint/typescript-estree@8.18.2":
+ version "8.18.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.2.tgz#fffb85527f8304e29bfbbdc712f4515da9f8b47c"
+ integrity sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==
dependencies:
- "@typescript-eslint/types" "8.17.0"
- "@typescript-eslint/visitor-keys" "8.17.0"
+ "@typescript-eslint/types" "8.18.2"
+ "@typescript-eslint/visitor-keys" "8.18.2"
debug "^4.3.4"
fast-glob "^3.3.2"
is-glob "^4.0.3"
@@ -687,27 +712,27 @@
semver "^7.6.0"
ts-api-utils "^1.3.0"
-"@typescript-eslint/utils@8.17.0":
- version "8.17.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.17.0.tgz"
- integrity sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==
+"@typescript-eslint/utils@8.18.2":
+ version "8.18.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.18.2.tgz#a2635f71904a84f9e47fe1b6f65a6d944ff1adf9"
+ integrity sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==
dependencies:
"@eslint-community/eslint-utils" "^4.4.0"
- "@typescript-eslint/scope-manager" "8.17.0"
- "@typescript-eslint/types" "8.17.0"
- "@typescript-eslint/typescript-estree" "8.17.0"
+ "@typescript-eslint/scope-manager" "8.18.2"
+ "@typescript-eslint/types" "8.18.2"
+ "@typescript-eslint/typescript-estree" "8.18.2"
-"@typescript-eslint/visitor-keys@8.17.0":
- version "8.17.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.17.0.tgz"
- integrity sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==
+"@typescript-eslint/visitor-keys@8.18.2":
+ version "8.18.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.2.tgz#b3e434b701f086b10a7c82416ebc56899d27ef2f"
+ integrity sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==
dependencies:
- "@typescript-eslint/types" "8.17.0"
+ "@typescript-eslint/types" "8.18.2"
eslint-visitor-keys "^4.2.0"
"@vitejs/plugin-react@^4.3.4":
version "4.3.4"
- resolved "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz"
+ resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz#c64be10b54c4640135a5b28a2432330e88ad7c20"
integrity sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==
dependencies:
"@babel/core" "^7.26.0"
@@ -718,17 +743,17 @@
acorn-jsx@^5.3.2:
version "5.3.2"
- resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn@^8.14.0:
version "8.14.0"
- resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0"
integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
ajv@^6.12.4:
version "6.12.6"
- resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
dependencies:
fast-deep-equal "^3.1.1"
@@ -738,24 +763,24 @@ ajv@^6.12.4:
ansi-styles@^4.1.0:
version "4.3.0"
- resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
dependencies:
color-convert "^2.0.1"
argparse@^2.0.1:
version "2.0.1"
- resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
asynckit@^0.4.0:
version "0.4.0"
- resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
axios@^1.7.9:
version "1.7.9"
- resolved "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.9.tgz#d7d071380c132a24accda1b2cfc1535b79ec650a"
integrity sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==
dependencies:
follow-redirects "^1.15.6"
@@ -764,12 +789,12 @@ axios@^1.7.9:
balanced-match@^1.0.0:
version "1.0.2"
- resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
brace-expansion@^1.1.7:
version "1.1.11"
- resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
dependencies:
balanced-match "^1.0.0"
@@ -777,46 +802,46 @@ brace-expansion@^1.1.7:
brace-expansion@^2.0.1:
version "2.0.1"
- resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
dependencies:
balanced-match "^1.0.0"
braces@^3.0.3:
version "3.0.3"
- resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
dependencies:
fill-range "^7.1.1"
browserslist@^4.24.0:
- version "4.24.2"
- resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz"
- integrity sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==
+ version "4.24.3"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.3.tgz#5fc2725ca8fb3c1432e13dac278c7cc103e026d2"
+ integrity sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==
dependencies:
- caniuse-lite "^1.0.30001669"
- electron-to-chromium "^1.5.41"
- node-releases "^2.0.18"
+ caniuse-lite "^1.0.30001688"
+ electron-to-chromium "^1.5.73"
+ node-releases "^2.0.19"
update-browserslist-db "^1.1.1"
callsites@^3.0.0:
version "3.1.0"
- resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
camelize@^1.0.0:
version "1.0.1"
- resolved "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3"
integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==
-caniuse-lite@^1.0.30001669:
- version "1.0.30001686"
- resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001686.tgz"
- integrity sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==
+caniuse-lite@^1.0.30001688:
+ version "1.0.30001690"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz#f2d15e3aaf8e18f76b2b8c1481abde063b8104c8"
+ integrity sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==
chalk@^4.0.0:
version "4.1.2"
- resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
dependencies:
ansi-styles "^4.1.0"
@@ -824,41 +849,41 @@ chalk@^4.0.0:
color-convert@^2.0.1:
version "2.0.1"
- resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
dependencies:
color-name "~1.1.4"
color-name@~1.1.4:
version "1.1.4"
- resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
combined-stream@^1.0.8:
version "1.0.8"
- resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
dependencies:
delayed-stream "~1.0.0"
concat-map@0.0.1:
version "0.0.1"
- resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
convert-source-map@^2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
cookie@^1.0.1:
version "1.0.2"
- resolved "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-1.0.2.tgz#27360701532116bd3f1f9416929d176afe1e4610"
integrity sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==
-cross-spawn@^7.0.5:
+cross-spawn@^7.0.6:
version "7.0.6"
- resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
dependencies:
path-key "^3.1.0"
@@ -867,12 +892,12 @@ cross-spawn@^7.0.5:
css-color-keywords@^1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05"
integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==
css-to-react-native@3.2.0:
version "3.2.0"
- resolved "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32"
integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==
dependencies:
camelize "^1.0.0"
@@ -881,84 +906,108 @@ css-to-react-native@3.2.0:
csstype@3.1.3, csstype@^3.0.2:
version "3.1.3"
- resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a"
+ integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
+ dependencies:
+ ms "^2.1.3"
+
+debug@~4.3.1, debug@~4.3.2:
version "4.3.7"
- resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52"
integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
dependencies:
ms "^2.1.3"
deep-is@^0.1.3:
version "0.1.4"
- resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
delayed-stream@~1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
-electron-to-chromium@^1.5.41:
- version "1.5.70"
- resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.70.tgz"
- integrity sha512-P6FPqAWIZrC3sHDAwBitJBs7N7IF58m39XVny7DFseQXK2eiMn7nNQizFf63mWDDUnFvaqsM8FI0+ZZfLkdUGA==
-
-esbuild@^0.24.0:
- version "0.24.0"
- resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz"
- integrity sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==
+electron-to-chromium@^1.5.73:
+ version "1.5.76"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz#db20295c5061b68f07c8ea4dfcbd701485d94a3d"
+ integrity sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==
+
+engine.io-client@~6.6.1:
+ version "6.6.2"
+ resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.6.2.tgz#e0a09e1c90effe5d6264da1c56d7281998f1e50b"
+ integrity sha512-TAr+NKeoVTjEVW8P3iHguO1LO6RlUz9O5Y8o7EY0fU+gY1NYqas7NN3slpFtbXEsLMHk0h90fJMfKjRkQ0qUIw==
+ dependencies:
+ "@socket.io/component-emitter" "~3.1.0"
+ debug "~4.3.1"
+ engine.io-parser "~5.2.1"
+ ws "~8.17.1"
+ xmlhttprequest-ssl "~2.1.1"
+
+engine.io-parser@~5.2.1:
+ version "5.2.3"
+ resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz#00dc5b97b1f233a23c9398d0209504cf5f94d92f"
+ integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==
+
+esbuild@^0.24.2:
+ version "0.24.2"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.24.2.tgz#b5b55bee7de017bff5fb8a4e3e44f2ebe2c3567d"
+ integrity sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==
optionalDependencies:
- "@esbuild/aix-ppc64" "0.24.0"
- "@esbuild/android-arm" "0.24.0"
- "@esbuild/android-arm64" "0.24.0"
- "@esbuild/android-x64" "0.24.0"
- "@esbuild/darwin-arm64" "0.24.0"
- "@esbuild/darwin-x64" "0.24.0"
- "@esbuild/freebsd-arm64" "0.24.0"
- "@esbuild/freebsd-x64" "0.24.0"
- "@esbuild/linux-arm" "0.24.0"
- "@esbuild/linux-arm64" "0.24.0"
- "@esbuild/linux-ia32" "0.24.0"
- "@esbuild/linux-loong64" "0.24.0"
- "@esbuild/linux-mips64el" "0.24.0"
- "@esbuild/linux-ppc64" "0.24.0"
- "@esbuild/linux-riscv64" "0.24.0"
- "@esbuild/linux-s390x" "0.24.0"
- "@esbuild/linux-x64" "0.24.0"
- "@esbuild/netbsd-x64" "0.24.0"
- "@esbuild/openbsd-arm64" "0.24.0"
- "@esbuild/openbsd-x64" "0.24.0"
- "@esbuild/sunos-x64" "0.24.0"
- "@esbuild/win32-arm64" "0.24.0"
- "@esbuild/win32-ia32" "0.24.0"
- "@esbuild/win32-x64" "0.24.0"
+ "@esbuild/aix-ppc64" "0.24.2"
+ "@esbuild/android-arm" "0.24.2"
+ "@esbuild/android-arm64" "0.24.2"
+ "@esbuild/android-x64" "0.24.2"
+ "@esbuild/darwin-arm64" "0.24.2"
+ "@esbuild/darwin-x64" "0.24.2"
+ "@esbuild/freebsd-arm64" "0.24.2"
+ "@esbuild/freebsd-x64" "0.24.2"
+ "@esbuild/linux-arm" "0.24.2"
+ "@esbuild/linux-arm64" "0.24.2"
+ "@esbuild/linux-ia32" "0.24.2"
+ "@esbuild/linux-loong64" "0.24.2"
+ "@esbuild/linux-mips64el" "0.24.2"
+ "@esbuild/linux-ppc64" "0.24.2"
+ "@esbuild/linux-riscv64" "0.24.2"
+ "@esbuild/linux-s390x" "0.24.2"
+ "@esbuild/linux-x64" "0.24.2"
+ "@esbuild/netbsd-arm64" "0.24.2"
+ "@esbuild/netbsd-x64" "0.24.2"
+ "@esbuild/openbsd-arm64" "0.24.2"
+ "@esbuild/openbsd-x64" "0.24.2"
+ "@esbuild/sunos-x64" "0.24.2"
+ "@esbuild/win32-arm64" "0.24.2"
+ "@esbuild/win32-ia32" "0.24.2"
+ "@esbuild/win32-x64" "0.24.2"
escalade@^3.2.0:
version "3.2.0"
- resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
escape-string-regexp@^4.0.0:
version "4.0.0"
- resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
eslint-plugin-react-hooks@^5.0.0:
- version "5.0.0"
- resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0.tgz"
- integrity sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz#3d34e37d5770866c34b87d5b499f5f0b53bf0854"
+ integrity sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==
eslint-plugin-react-refresh@^0.4.14:
version "0.4.16"
- resolved "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.16.tgz"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.16.tgz#149dbc9279bd16942409f1c1d2f0dce3299430ef"
integrity sha512-slterMlxAhov/DZO8NScf6mEeMBBXodFUolijDvrtTxyezyLoTQaa73FyYus/VbTdftd8wBgBxPMRk3poleXNQ==
eslint-scope@^8.2.0:
version "8.2.0"
- resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442"
integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==
dependencies:
esrecurse "^4.3.0"
@@ -966,25 +1015,25 @@ eslint-scope@^8.2.0:
eslint-visitor-keys@^3.4.3:
version "3.4.3"
- resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
eslint-visitor-keys@^4.2.0:
version "4.2.0"
- resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45"
integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==
eslint@^9.15.0:
- version "9.16.0"
- resolved "https://registry.npmjs.org/eslint/-/eslint-9.16.0.tgz"
- integrity sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==
+ version "9.17.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.17.0.tgz#faa1facb5dd042172fdc520106984b5c2421bb0c"
+ integrity sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==
dependencies:
"@eslint-community/eslint-utils" "^4.2.0"
"@eslint-community/regexpp" "^4.12.1"
"@eslint/config-array" "^0.19.0"
"@eslint/core" "^0.9.0"
"@eslint/eslintrc" "^3.2.0"
- "@eslint/js" "9.16.0"
+ "@eslint/js" "9.17.0"
"@eslint/plugin-kit" "^0.2.3"
"@humanfs/node" "^0.16.6"
"@humanwhocodes/module-importer" "^1.0.1"
@@ -993,7 +1042,7 @@ eslint@^9.15.0:
"@types/json-schema" "^7.0.15"
ajv "^6.12.4"
chalk "^4.0.0"
- cross-spawn "^7.0.5"
+ cross-spawn "^7.0.6"
debug "^4.3.2"
escape-string-regexp "^4.0.0"
eslint-scope "^8.2.0"
@@ -1016,7 +1065,7 @@ eslint@^9.15.0:
espree@^10.0.1, espree@^10.3.0:
version "10.3.0"
- resolved "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a"
integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==
dependencies:
acorn "^8.14.0"
@@ -1025,36 +1074,36 @@ espree@^10.0.1, espree@^10.3.0:
esquery@^1.5.0:
version "1.6.0"
- resolved "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7"
integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==
dependencies:
estraverse "^5.1.0"
esrecurse@^4.3.0:
version "4.3.0"
- resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
dependencies:
estraverse "^5.2.0"
estraverse@^5.1.0, estraverse@^5.2.0:
version "5.3.0"
- resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
esutils@^2.0.2:
version "2.0.3"
- resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
version "3.1.3"
- resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
fast-glob@^3.3.2:
version "3.3.2"
- resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
dependencies:
"@nodelib/fs.stat" "^2.0.2"
@@ -1065,38 +1114,38 @@ fast-glob@^3.3.2:
fast-json-stable-stringify@^2.0.0:
version "2.1.0"
- resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
fast-levenshtein@^2.0.6:
version "2.0.6"
- resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
fastq@^1.6.0:
- version "1.17.1"
- resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz"
- integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==
+ version "1.18.0"
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.18.0.tgz#d631d7e25faffea81887fe5ea8c9010e1b36fee0"
+ integrity sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==
dependencies:
reusify "^1.0.4"
file-entry-cache@^8.0.0:
version "8.0.0"
- resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f"
integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==
dependencies:
flat-cache "^4.0.0"
fill-range@^7.1.1:
version "7.1.1"
- resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
dependencies:
to-regex-range "^5.0.1"
find-up@^5.0.0:
version "5.0.0"
- resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
dependencies:
locate-path "^6.0.0"
@@ -1104,7 +1153,7 @@ find-up@^5.0.0:
flat-cache@^4.0.0:
version "4.0.1"
- resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c"
integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==
dependencies:
flatted "^3.2.9"
@@ -1112,17 +1161,17 @@ flat-cache@^4.0.0:
flatted@^3.2.9:
version "3.3.2"
- resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.2.tgz#adba1448a9841bec72b42c532ea23dbbedef1a27"
integrity sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==
follow-redirects@^1.15.6:
version "1.15.9"
- resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1"
integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
form-data@^4.0.0:
version "4.0.1"
- resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48"
integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==
dependencies:
asynckit "^0.4.0"
@@ -1131,61 +1180,61 @@ form-data@^4.0.0:
fsevents@~2.3.2, fsevents@~2.3.3:
version "2.3.3"
- resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
gensync@^1.0.0-beta.2:
version "1.0.0-beta.2"
- resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
+ resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
glob-parent@^5.1.2:
version "5.1.2"
- resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
dependencies:
is-glob "^4.0.1"
glob-parent@^6.0.2:
version "6.0.2"
- resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
dependencies:
is-glob "^4.0.3"
globals@^11.1.0:
version "11.12.0"
- resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
globals@^14.0.0:
version "14.0.0"
- resolved "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e"
integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==
globals@^15.12.0:
- version "15.13.0"
- resolved "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz"
- integrity sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==
+ version "15.14.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-15.14.0.tgz#b8fd3a8941ff3b4d38f3319d433b61bbb482e73f"
+ integrity sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==
graphemer@^1.4.0:
version "1.4.0"
- resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz"
+ resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
has-flag@^4.0.0:
version "4.0.0"
- resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
ignore@^5.2.0, ignore@^5.3.1:
version "5.3.2"
- resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
import-fresh@^3.2.1:
version "3.3.0"
- resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
dependencies:
parent-module "^1.0.0"
@@ -1193,78 +1242,83 @@ import-fresh@^3.2.1:
imurmurhash@^0.1.4:
version "0.1.4"
- resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
is-extglob@^2.1.1:
version "2.1.1"
- resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
version "4.0.3"
- resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
dependencies:
is-extglob "^2.1.1"
is-number@^7.0.0:
version "7.0.0"
- resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
isexe@^2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
- resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
js-yaml@^4.1.0:
version "4.1.0"
- resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
dependencies:
argparse "^2.0.1"
jsesc@^3.0.2:
- version "3.0.2"
- resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz"
- integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d"
+ integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==
json-buffer@3.0.1:
version "3.0.1"
- resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
json-schema-traverse@^0.4.1:
version "0.4.1"
- resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
json-stable-stringify-without-jsonify@^1.0.1:
version "1.0.1"
- resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
json5@^2.2.3:
version "2.2.3"
- resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+jwt-decode@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-4.0.0.tgz#2270352425fd413785b2faf11f6e755c5151bd4b"
+ integrity sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==
+
keyv@^4.5.4:
version "4.5.4"
- resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz"
+ resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
dependencies:
json-buffer "3.0.1"
levn@^0.4.1:
version "0.4.1"
- resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
dependencies:
prelude-ls "^1.2.1"
@@ -1272,38 +1326,38 @@ levn@^0.4.1:
locate-path@^6.0.0:
version "6.0.0"
- resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
dependencies:
p-locate "^5.0.0"
lodash.merge@^4.6.2:
version "4.6.2"
- resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
+ resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
loose-envify@^1.1.0:
version "1.4.0"
- resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
dependencies:
js-tokens "^3.0.0 || ^4.0.0"
lru-cache@^5.1.1:
version "5.1.1"
- resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
dependencies:
yallist "^3.0.2"
merge2@^1.3.0:
version "1.4.1"
- resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
+ resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
micromatch@^4.0.4:
version "4.0.8"
- resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
dependencies:
braces "^3.0.3"
@@ -1311,53 +1365,53 @@ micromatch@^4.0.4:
mime-db@1.52.0:
version "1.52.0"
- resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
mime-types@^2.1.12:
version "2.1.35"
- resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
dependencies:
mime-db "1.52.0"
minimatch@^3.1.2:
version "3.1.2"
- resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
dependencies:
brace-expansion "^1.1.7"
minimatch@^9.0.4:
version "9.0.5"
- resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
dependencies:
brace-expansion "^2.0.1"
ms@^2.1.3:
version "2.1.3"
- resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
nanoid@^3.3.7:
version "3.3.8"
- resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf"
integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==
natural-compare@^1.4.0:
version "1.4.0"
- resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
-node-releases@^2.0.18:
- version "2.0.18"
- resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz"
- integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==
+node-releases@^2.0.19:
+ version "2.0.19"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314"
+ integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==
optionator@^0.9.3:
version "0.9.4"
- resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734"
integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
dependencies:
deep-is "^0.1.3"
@@ -1369,53 +1423,53 @@ optionator@^0.9.3:
p-limit@^3.0.2:
version "3.1.0"
- resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
dependencies:
yocto-queue "^0.1.0"
p-locate@^5.0.0:
version "5.0.0"
- resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
dependencies:
p-limit "^3.0.2"
parent-module@^1.0.0:
version "1.0.1"
- resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
dependencies:
callsites "^3.0.0"
path-exists@^4.0.0:
version "4.0.0"
- resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
path-key@^3.1.0:
version "3.1.1"
- resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
picocolors@^1.0.0, picocolors@^1.1.0, picocolors@^1.1.1:
version "1.1.1"
- resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
picomatch@^2.3.1:
version "2.3.1"
- resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
postcss-value-parser@^4.0.2:
version "4.2.0"
- resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
postcss@8.4.38:
version "8.4.38"
- resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e"
integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==
dependencies:
nanoid "^3.3.7"
@@ -1424,7 +1478,7 @@ postcss@8.4.38:
postcss@^8.4.49:
version "8.4.49"
- resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.49.tgz#4ea479048ab059ab3ae61d082190fabfd994fe19"
integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==
dependencies:
nanoid "^3.3.7"
@@ -1433,48 +1487,53 @@ postcss@^8.4.49:
prelude-ls@^1.2.1:
version "1.2.1"
- resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
proxy-from-env@^1.1.0:
version "1.1.0"
- resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
punycode@^2.1.0:
version "2.3.1"
- resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
queue-microtask@^1.2.2:
version "1.2.3"
- resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
+ resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
react-dom@^18.3.1:
version "18.3.1"
- resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4"
integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==
dependencies:
loose-envify "^1.1.0"
scheduler "^0.23.2"
+react-hook-form@^7.54.2:
+ version "7.54.2"
+ resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.54.2.tgz#8c26ed54c71628dff57ccd3c074b1dd377cfb211"
+ integrity sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==
+
react-refresh@^0.14.2:
version "0.14.2"
- resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz"
+ resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9"
integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==
react-router-dom@^7.0.2:
- version "7.0.2"
- resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.0.2.tgz"
- integrity sha512-VJOQ+CDWFDGaWdrG12Nl+d7yHtLaurNgAQZVgaIy7/Xd+DojgmYLosFfZdGz1wpxmjJIAkAMVTKWcvkx1oggAw==
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.1.1.tgz#9e76fb63a762ba5da13032f5fd9e4a24946396b6"
+ integrity sha512-vSrQHWlJ5DCfyrhgo0k6zViOe9ToK8uT5XGSmnuC2R3/g261IdIMpZVqfjD6vWSXdnf5Czs4VA/V60oVR6/jnA==
dependencies:
- react-router "7.0.2"
+ react-router "7.1.1"
-react-router@7.0.2:
- version "7.0.2"
- resolved "https://registry.npmjs.org/react-router/-/react-router-7.0.2.tgz"
- integrity sha512-m5AcPfTRUcjwmhBzOJGEl6Y7+Crqyju0+TgTQxoS4SO+BkWbhOrcfZNq6wSWdl2BBbJbsAoBUb8ZacOFT+/JlA==
+react-router@7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.1.1.tgz#88f5657fa5b8f0b918c7222ec710de0274d00b2e"
+ integrity sha512-39sXJkftkKWRZ2oJtHhCxmoCrBCULr/HAH4IT5DHlgu/Q0FCPV0S4Lx+abjDTx/74xoZzNYDYbOZWlJjruyuDQ==
dependencies:
"@types/cookie" "^0.6.0"
cookie "^1.0.1"
@@ -1483,107 +1542,126 @@ react-router@7.0.2:
react@^18.3.1:
version "18.3.1"
- resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz"
+ resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891"
integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==
dependencies:
loose-envify "^1.1.0"
resolve-from@^4.0.0:
version "4.0.0"
- resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
reusify@^1.0.4:
version "1.0.4"
- resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
+ resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
rollup@^4.23.0:
- version "4.28.0"
- resolved "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz"
- integrity sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==
+ version "4.29.1"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.29.1.tgz#a9aaaece817e5f778489e5bf82e379cc8a5c05bc"
+ integrity sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==
dependencies:
"@types/estree" "1.0.6"
optionalDependencies:
- "@rollup/rollup-android-arm-eabi" "4.28.0"
- "@rollup/rollup-android-arm64" "4.28.0"
- "@rollup/rollup-darwin-arm64" "4.28.0"
- "@rollup/rollup-darwin-x64" "4.28.0"
- "@rollup/rollup-freebsd-arm64" "4.28.0"
- "@rollup/rollup-freebsd-x64" "4.28.0"
- "@rollup/rollup-linux-arm-gnueabihf" "4.28.0"
- "@rollup/rollup-linux-arm-musleabihf" "4.28.0"
- "@rollup/rollup-linux-arm64-gnu" "4.28.0"
- "@rollup/rollup-linux-arm64-musl" "4.28.0"
- "@rollup/rollup-linux-powerpc64le-gnu" "4.28.0"
- "@rollup/rollup-linux-riscv64-gnu" "4.28.0"
- "@rollup/rollup-linux-s390x-gnu" "4.28.0"
- "@rollup/rollup-linux-x64-gnu" "4.28.0"
- "@rollup/rollup-linux-x64-musl" "4.28.0"
- "@rollup/rollup-win32-arm64-msvc" "4.28.0"
- "@rollup/rollup-win32-ia32-msvc" "4.28.0"
- "@rollup/rollup-win32-x64-msvc" "4.28.0"
+ "@rollup/rollup-android-arm-eabi" "4.29.1"
+ "@rollup/rollup-android-arm64" "4.29.1"
+ "@rollup/rollup-darwin-arm64" "4.29.1"
+ "@rollup/rollup-darwin-x64" "4.29.1"
+ "@rollup/rollup-freebsd-arm64" "4.29.1"
+ "@rollup/rollup-freebsd-x64" "4.29.1"
+ "@rollup/rollup-linux-arm-gnueabihf" "4.29.1"
+ "@rollup/rollup-linux-arm-musleabihf" "4.29.1"
+ "@rollup/rollup-linux-arm64-gnu" "4.29.1"
+ "@rollup/rollup-linux-arm64-musl" "4.29.1"
+ "@rollup/rollup-linux-loongarch64-gnu" "4.29.1"
+ "@rollup/rollup-linux-powerpc64le-gnu" "4.29.1"
+ "@rollup/rollup-linux-riscv64-gnu" "4.29.1"
+ "@rollup/rollup-linux-s390x-gnu" "4.29.1"
+ "@rollup/rollup-linux-x64-gnu" "4.29.1"
+ "@rollup/rollup-linux-x64-musl" "4.29.1"
+ "@rollup/rollup-win32-arm64-msvc" "4.29.1"
+ "@rollup/rollup-win32-ia32-msvc" "4.29.1"
+ "@rollup/rollup-win32-x64-msvc" "4.29.1"
fsevents "~2.3.2"
run-parallel@^1.1.9:
version "1.2.0"
- resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
dependencies:
queue-microtask "^1.2.2"
scheduler@^0.23.2:
version "0.23.2"
- resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3"
integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==
dependencies:
loose-envify "^1.1.0"
semver@^6.3.1:
version "6.3.1"
- resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
semver@^7.6.0:
version "7.6.3"
- resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
set-cookie-parser@^2.6.0:
version "2.7.1"
- resolved "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz"
+ resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz#3016f150072202dfbe90fadee053573cc89d2943"
integrity sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==
shallowequal@1.1.0:
version "1.1.0"
- resolved "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8"
integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==
shebang-command@^2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
dependencies:
shebang-regex "^3.0.0"
shebang-regex@^3.0.0:
version "3.0.0"
- resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+socket.io-client@*:
+ version "4.8.1"
+ resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.8.1.tgz#1941eca135a5490b94281d0323fe2a35f6f291cb"
+ integrity sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==
+ dependencies:
+ "@socket.io/component-emitter" "~3.1.0"
+ debug "~4.3.2"
+ engine.io-client "~6.6.1"
+ socket.io-parser "~4.2.4"
+
+socket.io-parser@~4.2.4:
+ version "4.2.4"
+ resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83"
+ integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==
+ dependencies:
+ "@socket.io/component-emitter" "~3.1.0"
+ debug "~4.3.1"
+
source-map-js@^1.2.0, source-map-js@^1.2.1:
version "1.2.1"
- resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz"
+ resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
strip-json-comments@^3.1.1:
version "3.1.1"
- resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
styled-components@^6.1.13:
version "6.1.13"
- resolved "https://registry.npmjs.org/styled-components/-/styled-components-6.1.13.tgz"
+ resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.1.13.tgz#2d777750b773b31469bd79df754a32479e9f475e"
integrity sha512-M0+N2xSnAtwcVAQeFEsGWFFxXDftHUD7XrKla06QbpUMmbmtFBMMTcKWvFXtWxuD5qQkB8iU5gk6QASlx2ZRMw==
dependencies:
"@emotion/is-prop-valid" "1.2.2"
@@ -1598,67 +1676,67 @@ styled-components@^6.1.13:
stylis@4.3.2:
version "4.3.2"
- resolved "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz"
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.2.tgz#8f76b70777dd53eb669c6f58c997bf0a9972e444"
integrity sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==
supports-color@^7.1.0:
version "7.2.0"
- resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
dependencies:
has-flag "^4.0.0"
to-regex-range@^5.0.1:
version "5.0.1"
- resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
dependencies:
is-number "^7.0.0"
ts-api-utils@^1.3.0:
version "1.4.3"
- resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz"
+ resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064"
integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==
tslib@2.6.2:
version "2.6.2"
- resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
turbo-stream@2.4.0:
version "2.4.0"
- resolved "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz"
+ resolved "https://registry.yarnpkg.com/turbo-stream/-/turbo-stream-2.4.0.tgz#1e4fca6725e90fa14ac4adb782f2d3759a5695f0"
integrity sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==
type-check@^0.4.0, type-check@~0.4.0:
version "0.4.0"
- resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
dependencies:
prelude-ls "^1.2.1"
typescript-eslint@^8.15.0:
- version "8.17.0"
- resolved "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.17.0.tgz"
- integrity sha512-409VXvFd/f1br1DCbuKNFqQpXICoTB+V51afcwG1pn1a3Cp92MqAUges3YjwEdQ0cMUoCIodjVDAYzyD8h3SYA==
+ version "8.18.2"
+ resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.18.2.tgz#71334dcf843adc3fbb771dce5ade7876aa0d62b7"
+ integrity sha512-KuXezG6jHkvC3MvizeXgupZzaG5wjhU3yE8E7e6viOvAvD9xAWYp8/vy0WULTGe9DYDWcQu7aW03YIV3mSitrQ==
dependencies:
- "@typescript-eslint/eslint-plugin" "8.17.0"
- "@typescript-eslint/parser" "8.17.0"
- "@typescript-eslint/utils" "8.17.0"
+ "@typescript-eslint/eslint-plugin" "8.18.2"
+ "@typescript-eslint/parser" "8.18.2"
+ "@typescript-eslint/utils" "8.18.2"
typescript@~5.6.2:
version "5.6.3"
- resolved "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b"
integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==
undici-types@~6.20.0:
version "6.20.0"
- resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433"
integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==
update-browserslist-db@^1.1.1:
version "1.1.1"
- resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5"
integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==
dependencies:
escalade "^3.2.0"
@@ -1666,22 +1744,22 @@ update-browserslist-db@^1.1.1:
uri-js@^4.2.2:
version "4.4.1"
- resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
dependencies:
punycode "^2.1.0"
use-sync-external-store@^1.2.0:
version "1.4.0"
- resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz"
+ resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz#adbc795d8eeb47029963016cefdf89dc799fcebc"
integrity sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==
vite@^6.0.1:
- version "6.0.3"
- resolved "https://registry.npmjs.org/vite/-/vite-6.0.3.tgz"
- integrity sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==
+ version "6.0.6"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-6.0.6.tgz#a851674fcff55b0c1962f72082354b8802e48505"
+ integrity sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==
dependencies:
- esbuild "^0.24.0"
+ esbuild "^0.24.2"
postcss "^8.4.49"
rollup "^4.23.0"
optionalDependencies:
@@ -1689,27 +1767,42 @@ vite@^6.0.1:
which@^2.0.1:
version "2.0.2"
- resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
dependencies:
isexe "^2.0.0"
word-wrap@^1.2.5:
version "1.2.5"
- resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
+ws@~8.17.1:
+ version "8.17.1"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b"
+ integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==
+
+xmlhttprequest-ssl@~2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz#e9e8023b3f29ef34b97a859f584c5e6c61418e23"
+ integrity sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==
+
yallist@^3.0.2:
version "3.1.1"
- resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
yocto-queue@^0.1.0:
version "0.1.0"
- resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+zod@^3.24.1:
+ version "3.24.1"
+ resolved "https://registry.yarnpkg.com/zod/-/zod-3.24.1.tgz#27445c912738c8ad1e9de1bea0359fa44d9d35ee"
+ integrity sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==
+
zustand@^5.0.2:
version "5.0.2"
- resolved "https://registry.npmjs.org/zustand/-/zustand-5.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.2.tgz#f7595ada55a565f1fd6464f002a91e701ee0cfca"
integrity sha512-8qNdnJVJlHlrKXi50LDqqUNmUbuBjoKLrYQBnoChIbVph7vni+sY+YpvdjXG9YLd/Bxr6scMcR+rm5H3aSqPaw==