diff --git a/.github/workflows/boolock-dev-cicd.yml b/.github/workflows/boolock-dev-cicd.yml
index ebac751a..b2b844b0 100644
--- a/.github/workflows/boolock-dev-cicd.yml
+++ b/.github/workflows/boolock-dev-cicd.yml
@@ -42,6 +42,7 @@ jobs:
- name: Build Backend
run: |
cd apps/server
+ pnpm run swagger-auto
pnpm run build
- name: Build base image
diff --git a/.gitignore b/.gitignore
index 61a6f229..d2d31332 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,5 +39,8 @@ Thumbs.db
*storybook.log
+
+swagger-output.json
+
# Ignore Storybook build folder
-storybook-static/
\ No newline at end of file
+storybook-static/
diff --git a/apps/client/package.json b/apps/client/package.json
index acb2ec5a..d3716a1b 100644
--- a/apps/client/package.json
+++ b/apps/client/package.json
@@ -23,6 +23,7 @@
"react-spinners": "^0.14.1",
"react-youtube": "^10.1.0",
"storybook": "^8.4.1",
+ "uuid": "^11.0.3",
"zustand": "^5.0.1"
},
"devDependencies": {
diff --git a/apps/client/src/entities/home/WorkspaceItem.tsx b/apps/client/src/entities/home/WorkspaceItem.tsx
index 3a9c5e8c..33b9122d 100644
--- a/apps/client/src/entities/home/WorkspaceItem.tsx
+++ b/apps/client/src/entities/home/WorkspaceItem.tsx
@@ -1,50 +1,33 @@
import TrashSVG from '@/shared/assets/trash.svg?react';
+import { formatRelativeOrAbsoluteDate } from '@/shared/utils';
import { useModalStore } from '@/shared/store';
type WorkspaceItemProps = {
title: string;
thumbnail: string;
lastEdited: string;
+ onClick: () => void;
};
-const formatDate = (dateString: string) => {
- const date = new Date(dateString);
- const now = new Date();
- const rtf = new Intl.RelativeTimeFormat('ko', { numeric: 'auto' });
- const diffMinutes = Math.floor((date.getTime() - now.getTime()) / (1000 * 60));
- const diffHours = Math.floor(diffMinutes / 60);
- if (diffMinutes > -60) {
- return rtf.format(diffMinutes, 'minute');
- }
-
- if (diffHours > -24) {
- return rtf.format(diffHours, 'hour');
- }
- return new Intl.DateTimeFormat('ko', {
- year: 'numeric',
- month: '2-digit',
- day: '2-digit',
- }).format(date);
-};
-
-export const WorkspaceItem = ({ title, thumbnail, lastEdited }: WorkspaceItemProps) => {
+export const WorkspaceItem = ({ title, thumbnail, lastEdited, onClick }: WorkspaceItemProps) => {
const { openModal: onOpen } = useModalStore();
return (
-
- {/* TODO: 썸네일 형태에 따라 이미지 태그 OR 백그라운드로 지정 */}
- {thumbnail && (
-
![workspace thumbnail]({thumbnail})
- )}
+
+
+ {/* TODO: 썸네일 형태에 따라 이미지 태그 OR 백그라운드로 지정 */}
+ {thumbnail && (
+
![workspace thumbnail]({thumbnail})
+ )}
+
+
-
-
);
};
diff --git a/apps/client/src/entities/home/WorkspaceLoadError.tsx b/apps/client/src/entities/home/WorkspaceLoadError.tsx
new file mode 100644
index 00000000..35d17a41
--- /dev/null
+++ b/apps/client/src/entities/home/WorkspaceLoadError.tsx
@@ -0,0 +1,8 @@
+export const WorkspaceLoadError = () => {
+ return (
+
+
![](./images/not_found.png)
+
워크스페이스를 불러오지 못했습니다.
+
+ );
+};
diff --git a/apps/client/src/entities/index.ts b/apps/client/src/entities/index.ts
index bf97d1a0..66b47919 100644
--- a/apps/client/src/entities/index.ts
+++ b/apps/client/src/entities/index.ts
@@ -1,6 +1,7 @@
export { GuideVideo } from './home/GuideVideo';
export { WorkspaceItem } from './home/WorkspaceItem';
export { WorkspaceAddBtn } from './home/WorkspaceAddBtn';
+export { WorkspaceLoadError } from './home/WorkspaceLoadError';
export { RedoButton } from './workspace/RedoButton';
export { UndoButton } from './workspace/UndoButton';
diff --git a/apps/client/src/entities/workspace/WorkspaceNameInput.tsx b/apps/client/src/entities/workspace/WorkspaceNameInput.tsx
index 0bc3bbd1..42578a96 100644
--- a/apps/client/src/entities/workspace/WorkspaceNameInput.tsx
+++ b/apps/client/src/entities/workspace/WorkspaceNameInput.tsx
@@ -1,21 +1,22 @@
-import { FocusEventHandler, KeyboardEventHandler, useState } from 'react';
+import { FocusEventHandler, KeyboardEventHandler } from 'react';
-import toast from 'react-hot-toast';
+import Spinner from '@/shared/assets/spinner.svg?react';
+import { useParams } from 'react-router-dom';
+import { useUpdateWorkspaceName } from '@/shared/hooks';
+import { useWorkspaceStore } from '@/shared/store';
export const WorkspaceNameInput = () => {
- // TODO: 워크스페이스 이름 변경 로직 필요
-
- const [name, setName] = useState
('');
+ const { workspaceId } = useParams() as { workspaceId: string };
+ const { name } = useWorkspaceStore();
+ const { mutate, isPending } = useUpdateWorkspaceName();
const handleBlur: FocusEventHandler = (
event: React.FocusEvent
) => {
- // TODO: 이름 변경 로직 추가
- if (event.target.value === name) {
+ if (event.target.value === name || event.target.value === '') {
return;
}
- toast.error('이름 변경 실패');
- setName(event.target.value);
+ mutate({ workspaceId, newName: event.target.value });
};
const handleEnter: KeyboardEventHandler = (e) => {
@@ -25,24 +26,29 @@ export const WorkspaceNameInput = () => {
};
const handleKeyDown = (e: React.KeyboardEvent) => {
- // TODO: 이름 변경 로직 추가
e.currentTarget.blur();
- if (name === e.currentTarget.value) {
+ if (name === e.currentTarget.value || e.currentTarget.value === '') {
return;
}
- setName(e.currentTarget.value);
+ mutate({ workspaceId, newName: e.currentTarget.value });
e.preventDefault();
};
- // TODO: 워크스페이스 이름 존재 시 placeholder가 그에 맞추어 변경되어야함
return (
<>
-
+
+
+ {isPending && (
+
+ )}
+
>
);
};
diff --git a/apps/client/src/pages/WorkspacePage.tsx b/apps/client/src/pages/WorkspacePage.tsx
index cbd4f037..d18cf22f 100644
--- a/apps/client/src/pages/WorkspacePage.tsx
+++ b/apps/client/src/pages/WorkspacePage.tsx
@@ -1,9 +1,22 @@
-import { WorkspacePageHeader, WorkspaceContent } from '@/widgets';
+import { WorkspaceContent, WorkspacePageHeader } from '@/widgets';
+
+import { Loading } from '@/shared/ui';
+import { NotFound } from '@/pages/NotFound';
+import { useGetWorkspace } from '@/shared/hooks';
+import { useParams } from 'react-router-dom';
-// TODO: useParams 훅을 통해 workspaceId 가져오기
export const WorkspacePage = () => {
+ const { workspaceId } = useParams();
+
+ const { isPending, isError } = useGetWorkspace(workspaceId as string);
+
+ if (isError) {
+ return ;
+ }
+
return (
<>
+ {isPending && }
>
diff --git a/apps/client/src/shared/api/workspaceApi.ts b/apps/client/src/shared/api/workspaceApi.ts
index a40f9468..d3f7f979 100644
--- a/apps/client/src/shared/api/workspaceApi.ts
+++ b/apps/client/src/shared/api/workspaceApi.ts
@@ -1,5 +1,11 @@
-import { Instance } from './axiosInstance';
-import { TcreatedWorkspaceDto, TpagedWorkspaceListResultDto } from '@/shared/types';
+import {
+ TcreatedWorkspaceDto,
+ TgetWorkspaceResponse,
+ TpagedWorkspaceListResultDto,
+ Tworkspace,
+} from '@/shared/types';
+
+import { Instance } from '@/shared/api';
export const WorkspaceApi = () => {
const createWorkspace = async (userId: string) => {
@@ -20,7 +26,7 @@ export const WorkspaceApi = () => {
const getWorkspaceList = async (userId: string, cursor: string) => {
const response = await Instance.get(
- `/workspace${cursor !== 'null' ? `?cursor=${encodeURIComponent(cursor)}` : ''}`,
+ `/workspace/list${cursor !== 'null' ? `?cursor=${encodeURIComponent(cursor)}` : ''}`,
{
headers: { 'user-id': userId },
}
@@ -31,8 +37,33 @@ export const WorkspaceApi = () => {
throw new Error('Invalid response from server');
};
+ const getWorkspace = async (userId: string, workspaceId: string) => {
+ const response = await Instance.get(`/workspace?workspaceId=${workspaceId}`, {
+ headers: { 'user-id': userId },
+ });
+ if (response) {
+ return response.data as TgetWorkspaceResponse;
+ }
+ throw new Error('Invalid response from server');
+ };
+
+ const updateWorkspaceName = async (userId: string, workspaceId: string, newName: string) => {
+ const response = await Instance.patch(
+ '/workspace/name',
+ { workspaceId, newName },
+ { headers: { 'user-id': userId } }
+ );
+
+ if (response) {
+ return response.data as Tworkspace;
+ }
+ throw new Error('Invalid response from server');
+ };
+
return {
createWorkspace,
getWorkspaceList,
+ getWorkspace,
+ updateWorkspaceName,
};
};
diff --git a/apps/client/src/shared/assets/spinner.svg b/apps/client/src/shared/assets/spinner.svg
new file mode 100644
index 00000000..231dc584
--- /dev/null
+++ b/apps/client/src/shared/assets/spinner.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/apps/client/src/shared/hooks/index.ts b/apps/client/src/shared/hooks/index.ts
index d0b9a9fe..147be201 100644
--- a/apps/client/src/shared/hooks/index.ts
+++ b/apps/client/src/shared/hooks/index.ts
@@ -1,2 +1,4 @@
export { useCreateWorkspace } from './queries/useCreateWorkspace';
export { useGetWorkspaceList } from './queries/useGetWorkspaceList';
+export { useGetWorkspace } from './queries/useGetWorkspace';
+export { useUpdateWorkspaceName } from './queries/useUpdateWorkspaceName';
diff --git a/apps/client/src/shared/hooks/queries/useGetWorkspace.ts b/apps/client/src/shared/hooks/queries/useGetWorkspace.ts
new file mode 100644
index 00000000..ddf72927
--- /dev/null
+++ b/apps/client/src/shared/hooks/queries/useGetWorkspace.ts
@@ -0,0 +1,30 @@
+import { useEffect } from 'react';
+import { WorkspaceApi } from '@/shared/api';
+import { getUserId } from '@/shared/utils';
+import toast from 'react-hot-toast';
+import { useQuery } from '@tanstack/react-query';
+import { useWorkspaceStore } from '@/shared/store';
+
+export const useGetWorkspace = (workspaceId: string) => {
+ const workspaceApi = WorkspaceApi();
+ const userId = getUserId();
+ const { setName } = useWorkspaceStore();
+ const { data, isPending, isError } = useQuery({
+ queryKey: ['getWorkspace', workspaceId],
+ queryFn: () => {
+ return workspaceApi.getWorkspace(userId, workspaceId);
+ },
+ });
+
+ useEffect(() => {
+ if (isError) {
+ toast.error('워크스페이스 정보 불러오기 실패');
+ return;
+ }
+ if (data) {
+ setName(data.workspaceDto.name);
+ }
+ }, [data, setName, isError]);
+
+ return { data, isPending, isError };
+};
diff --git a/apps/client/src/shared/hooks/queries/useGetWorkspaceList.ts b/apps/client/src/shared/hooks/queries/useGetWorkspaceList.ts
index 4aa50809..a96ed523 100644
--- a/apps/client/src/shared/hooks/queries/useGetWorkspaceList.ts
+++ b/apps/client/src/shared/hooks/queries/useGetWorkspaceList.ts
@@ -10,6 +10,7 @@ export const useGetWorkspaceList = () => {
fetchNextPage,
isPending,
isFetchingNextPage,
+ isError,
data: workspaceList,
} = useInfiniteQuery({
queryKey: ['getWorkspaceList'],
@@ -25,5 +26,5 @@ export const useGetWorkspaceList = () => {
select: (data) =>
(data.pages ?? []).flatMap((page) => page.pagedWorkspaceListResult.workspaceList),
});
- return { hasNextPage, fetchNextPage, isFetchingNextPage, isPending, workspaceList };
+ return { hasNextPage, fetchNextPage, isFetchingNextPage, isPending, isError, workspaceList };
};
diff --git a/apps/client/src/shared/hooks/queries/useUpdateWorkspaceName.ts b/apps/client/src/shared/hooks/queries/useUpdateWorkspaceName.ts
new file mode 100644
index 00000000..cab3b774
--- /dev/null
+++ b/apps/client/src/shared/hooks/queries/useUpdateWorkspaceName.ts
@@ -0,0 +1,26 @@
+import { WorkspaceApi } from '@/shared/api';
+import { getUserId } from '@/shared/utils';
+import toast from 'react-hot-toast';
+import { useMutation } from '@tanstack/react-query';
+import { useWorkspaceStore } from '@/shared/store';
+
+export const useUpdateWorkspaceName = () => {
+ const workspaceApi = WorkspaceApi();
+ const userId = getUserId();
+ const { setName } = useWorkspaceStore();
+
+ const { mutate, isPending } = useMutation({
+ mutationFn: ({ workspaceId, newName }: { workspaceId: string; newName: string }) => {
+ return workspaceApi.updateWorkspaceName(userId, workspaceId, newName);
+ },
+ onSuccess: (data) => {
+ toast.success('워크스페이스 이름이 변경되었습니다.');
+ setName(data?.name!);
+ },
+ onError: () => {
+ toast.error('워크스페이스 이름 변경을 실패했습니다.');
+ },
+ });
+
+ return { mutate, isPending };
+};
diff --git a/apps/client/src/shared/store/index.ts b/apps/client/src/shared/store/index.ts
index d0c39b43..ee116c2d 100644
--- a/apps/client/src/shared/store/index.ts
+++ b/apps/client/src/shared/store/index.ts
@@ -1,2 +1,3 @@
export { useLoadingStore } from './useLoadingStore';
export { useModalStore } from './useModalStore';
+export { useWorkspaceStore } from './useWorkspaceStore';
diff --git a/apps/client/src/shared/store/useWorkspaceStore.ts b/apps/client/src/shared/store/useWorkspaceStore.ts
new file mode 100644
index 00000000..c82b4021
--- /dev/null
+++ b/apps/client/src/shared/store/useWorkspaceStore.ts
@@ -0,0 +1,11 @@
+import { create } from 'zustand';
+
+type TWorkspace = {
+ name: string;
+ setName: (newName: string) => void;
+};
+
+export const useWorkspaceStore = create((set) => ({
+ name: '워크스페이스 이름',
+ setName: (newName) => set({ name: newName }),
+}));
diff --git a/apps/client/src/shared/types/index.ts b/apps/client/src/shared/types/index.ts
index 65244deb..a79b20b6 100644
--- a/apps/client/src/shared/types/index.ts
+++ b/apps/client/src/shared/types/index.ts
@@ -1,6 +1,8 @@
export type {
TcreatedWorkspaceDto,
+ TgetWorkspaceResponse,
TworkspaceDto,
+ Tworkspace,
TpagedWorkspaceListResultDto,
TpagedWorkspaceListResult,
Tcursor,
diff --git a/apps/client/src/shared/types/workspaceType.ts b/apps/client/src/shared/types/workspaceType.ts
index 1055a70b..54407b32 100644
--- a/apps/client/src/shared/types/workspaceType.ts
+++ b/apps/client/src/shared/types/workspaceType.ts
@@ -6,12 +6,21 @@ export type TpagedWorkspaceListResultDto = {
pagedWorkspaceListResult: TpagedWorkspaceListResult;
};
+export type TgetWorkspaceResponse = {
+ workspaceDto: TworkspaceDto;
+};
+
+export type TworkspaceDto = {
+ workspace_id: string;
+ name: string;
+};
+
export type TpagedWorkspaceListResult = {
- workspaceList: Array;
+ workspaceList: Array;
nextCursor: Tcursor | null;
};
-export type TworkspaceDto = {
+export type Tworkspace = {
name: string;
updated_at: string;
user_id: string;
diff --git a/apps/client/src/shared/ui/toast/ToasterWithMax.tsx b/apps/client/src/shared/ui/toast/ToasterWithMax.tsx
index 1d2a8ec0..2228e417 100644
--- a/apps/client/src/shared/ui/toast/ToasterWithMax.tsx
+++ b/apps/client/src/shared/ui/toast/ToasterWithMax.tsx
@@ -12,5 +12,5 @@ export const ToasterWithMax = () => {
.forEach((t) => toast.dismiss(t.id));
}, [toasts, toastLimit]);
- return ;
+ return ;
};
diff --git a/apps/client/src/shared/utils/dateFormat.ts b/apps/client/src/shared/utils/dateFormat.ts
new file mode 100644
index 00000000..d9adcebb
--- /dev/null
+++ b/apps/client/src/shared/utils/dateFormat.ts
@@ -0,0 +1,19 @@
+export const formatRelativeOrAbsoluteDate = (dateString: string) => {
+ const date = new Date(dateString);
+ const now = new Date();
+ const rtf = new Intl.RelativeTimeFormat('ko', { numeric: 'auto' });
+ const diffMinutes = Math.floor((date.getTime() - now.getTime()) / (1000 * 60));
+ const diffHours = Math.floor(diffMinutes / 60);
+ if (diffMinutes > -60) {
+ return rtf.format(diffMinutes, 'minute');
+ }
+
+ if (diffHours > -24) {
+ return rtf.format(diffHours, 'hour');
+ }
+ return new Intl.DateTimeFormat('ko', {
+ year: 'numeric',
+ month: '2-digit',
+ day: '2-digit',
+ }).format(date);
+};
diff --git a/apps/client/src/shared/utils/index.ts b/apps/client/src/shared/utils/index.ts
index 8c86f6b1..a0dbf515 100644
--- a/apps/client/src/shared/utils/index.ts
+++ b/apps/client/src/shared/utils/index.ts
@@ -1,2 +1,3 @@
export { CATEGORY_ICONS } from './category_icons';
export { getUserId } from './userId';
+export { formatRelativeOrAbsoluteDate } from './dateFormat';
diff --git a/apps/client/src/shared/utils/userId.ts b/apps/client/src/shared/utils/userId.ts
index a85424f7..107ba3c8 100644
--- a/apps/client/src/shared/utils/userId.ts
+++ b/apps/client/src/shared/utils/userId.ts
@@ -1,5 +1,7 @@
+import { v4 } from 'uuid';
+
export const getUserId = () => {
- const userId = localStorage.getItem('userId') || crypto.randomUUID();
+ const userId = localStorage.getItem('userId') || v4();
localStorage.setItem('userId', userId);
return userId;
};
diff --git a/apps/client/src/widgets/home/WorkspaceContainer.tsx b/apps/client/src/widgets/home/WorkspaceContainer.tsx
index da914087..e6299b77 100644
--- a/apps/client/src/widgets/home/WorkspaceContainer.tsx
+++ b/apps/client/src/widgets/home/WorkspaceContainer.tsx
@@ -1,14 +1,12 @@
+import { EmptyWorkspace, WorkspaceGrid, WorkspaceHeader, WorkspaceList } from '@/widgets';
import { useEffect, useRef } from 'react';
-import { EmptyWorkspace } from './EmptyWorkspace';
import { SkeletonWorkspaceList } from '@/shared/ui';
-import { WorkspaceGrid } from '@/widgets';
-import { WorkspaceHeader } from './WorkspaceHeader';
-import { WorkspaceList } from './WorkspaceList';
+import { WorkspaceLoadError } from '@/entities';
import { useGetWorkspaceList } from '@/shared/hooks';
export const WorkspaceContainer = () => {
- const { hasNextPage, fetchNextPage, isPending, isFetchingNextPage, workspaceList } =
+ const { hasNextPage, fetchNextPage, isPending, isFetchingNextPage, isError, workspaceList } =
useGetWorkspaceList();
const nextFetchTargetRef = useRef(null);
@@ -45,16 +43,22 @@ export const WorkspaceContainer = () => {
return (
-
- {workspaceList &&
- (workspaceList.length === 0 ? (
-
- ) : (
+ {isError ? (
+
+ ) : (
+ workspaceList &&
+ (workspaceList.length === 0 ? (
+
+ ) : (
+
- ))}
- {(isPending || isFetchingNextPage) && }
-
-
+ {(isPending || isFetchingNextPage) && }
+
+ ))
+ )}
+ {!isPending && !isFetchingNextPage && hasNextPage && (
+
+ )}
);
};
diff --git a/apps/client/src/widgets/home/WorkspaceList.tsx b/apps/client/src/widgets/home/WorkspaceList.tsx
index 7033874f..94ab30ca 100644
--- a/apps/client/src/widgets/home/WorkspaceList.tsx
+++ b/apps/client/src/widgets/home/WorkspaceList.tsx
@@ -1,23 +1,26 @@
+import { Tworkspace } from '@/shared/types';
import { WorkspaceItem } from '@/entities';
-import { TworkspaceDto } from '@/shared/types';
+import { useNavigate } from 'react-router-dom';
type workspaceListProps = {
- workspaceList: Array;
+ workspaceList: Array;
};
export const WorkspaceList = ({ workspaceList }: workspaceListProps) => {
+ const navigate = useNavigate();
return (
- {workspaceList.map((workspace) => {
- return (
-
- );
- })}
+ {workspaceList.map((workspace) => (
+ {
+ navigate(`/workspace/${workspace.workspace_id}`);
+ }}
+ />
+ ))}
);
};
diff --git a/apps/server/src/controllers/workspaceController.ts b/apps/server/src/controllers/workspaceController.ts
index c616977f..47c77af5 100644
--- a/apps/server/src/controllers/workspaceController.ts
+++ b/apps/server/src/controllers/workspaceController.ts
@@ -50,5 +50,49 @@ export const WorkspaceController = () => {
}
};
- return { createNewWorkspace, getWorkspaceListByPage };
+ const getWorkspaceInfo = async (req: Request, res: Response) => {
+ try {
+ const userId = req.get('user-id') as string;
+ const workspaceId = req.query.workspaceId as string;
+ const workspaceDto = await workspaceService.findWorkspaceByWorkspaceId(userId, workspaceId);
+ if (!workspaceDto) {
+ throw new Error('Workspace not found');
+ }
+ res.status(200).json({ workspaceDto });
+ } catch (error) {
+ console.error(error);
+ if (error instanceof Error) {
+ if (error.message === 'Workspace not found') {
+ return res.status(404).json({ message: ERROR_MESSAGE[404] });
+ }
+ res.status(500).json({ message: ERROR_MESSAGE[500] });
+ }
+ }
+ };
+
+ const editWorkspaceName = async (req: Request, res: Response) => {
+ try {
+ const userId = req.get('user-id') as string;
+ const { workspaceId, newName } = req.body;
+ const updatedWorkspace = await workspaceService.updateWorkspaceName(
+ userId,
+ workspaceId,
+ newName
+ );
+
+ if (!updatedWorkspace) {
+ throw new Error('Workspace not found');
+ }
+ res.status(200).json(updatedWorkspace);
+ } catch (error) {
+ console.error(error);
+ if (error instanceof Error) {
+ if (error.message === 'Workspace not found') {
+ return res.status(404).json({ message: ERROR_MESSAGE[404] });
+ }
+ res.status(500).json({ message: ERROR_MESSAGE[500] });
+ }
+ }
+ };
+ return { createNewWorkspace, getWorkspaceListByPage, getWorkspaceInfo, editWorkspaceName };
};
diff --git a/apps/server/src/docs/swagger-output.json b/apps/server/src/docs/swagger-output.json
deleted file mode 100644
index 21521f62..00000000
--- a/apps/server/src/docs/swagger-output.json
+++ /dev/null
@@ -1,230 +0,0 @@
-{
- "info": {
- "version": "1.0.0",
- "title": "REST API",
- "description": ""
- },
- "paths": {
- "/welcome": {
- "get": {
- "description": "",
- "responses": {
- "200": {
- "description": "OK"
- }
- }
- }
- },
- "/test": {
- "get": {
- "description": "",
- "responses": {
- "200": {
- "description": "OK"
- }
- }
- }
- },
- "/todos": {
- "post": {
- "tags": [
- "Todos"
- ],
- "summary": "새로운 Todo 생성",
- "description": "새로운 todo 항목을 생성합니다.",
- "responses": {
- "201": {
- "description": "Todo 생성 성공",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Todo"
- }
- }
- }
- },
- "500": {
- "description": "서버 에러"
- }
- },
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Todo"
- }
- }
- }
- }
- },
- "get": {
- "description": "",
- "responses": {
- "200": {
- "description": "OK"
- },
- "500": {
- "description": "Internal Server Error"
- }
- }
- }
- },
- "/todos/{todoid}": {
- "get": {
- "description": "",
- "parameters": [
- {
- "name": "todoid",
- "in": "path",
- "required": true,
- "type": "string"
- }
- ],
- "responses": {
- "200": {
- "description": "OK"
- },
- "404": {
- "description": "Not Found"
- },
- "500": {
- "description": "Internal Server Error"
- }
- }
- },
- "put": {
- "description": "",
- "parameters": [
- {
- "name": "todoid",
- "in": "path",
- "required": true,
- "type": "string"
- }
- ],
- "responses": {
- "200": {
- "description": "OK"
- },
- "404": {
- "description": "Not Found"
- },
- "500": {
- "description": "Internal Server Error"
- }
- }
- },
- "delete": {
- "description": "",
- "parameters": [
- {
- "name": "todoid",
- "in": "path",
- "required": true,
- "type": "string"
- }
- ],
- "responses": {
- "200": {
- "description": "OK"
- },
- "404": {
- "description": "Not Found"
- },
- "500": {
- "description": "Internal Server Error"
- }
- }
- }
- },
- "/workspace/": {
- "post": {
- "tags": [
- "Workspace"
- ],
- "summary": "새로운 워크스페이스 생성",
- "description": "새로운 워크스페이스를 생성합니다.",
- "responses": {
- "201": {
- "description": "success",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Workspace"
- }
- }
- }
- },
- "500": {
- "description": "internal server error"
- }
- }
- }
- }
- },
- "openapi": "3.0.0",
- "servers": [
- {
- "url": "http://localhost:3000/"
- }
- ],
- "components": {
- "schemas": {
- "Todo": {
- "type": "object",
- "properties": {
- "todoid": {
- "type": "integer",
- "example": 1
- },
- "content": {
- "type": "string",
- "example": "Sample todo content"
- },
- "completed": {
- "type": "string",
- "example": "false"
- },
- "created": {
- "type": "string",
- "format": "date-time",
- "example": "2024-11-07T00:00:00.000Z"
- }
- },
- "required": [
- "todoid",
- "content"
- ]
- },
- "Workspace": {
- "type": "object",
- "properties": {
- "workspace_id": {
- "type": "string",
- "example": "b15eac31-3942-4192-9cbd-2e2cdd48da0a"
- },
- "name": {
- "type": "string",
- "example": "워크스페이스 이름",
- "default": "워크스페이스 이름"
- },
- "thumbnail": {
- "type": "string",
- "example": "https://example.com/thumbnail.png"
- },
- "updated_at": {
- "type": "string",
- "format": "date-time",
- "example": "2024-11-07T00:00:00.000Z"
- }
- },
- "required": [
- "workspace_id",
- "name",
- "updated_at"
- ]
- }
- }
- }
-}
\ No newline at end of file
diff --git a/apps/server/src/docs/swagger.ts b/apps/server/src/docs/swagger.ts
index f0a5d719..ef4a0890 100644
--- a/apps/server/src/docs/swagger.ts
+++ b/apps/server/src/docs/swagger.ts
@@ -1,5 +1,5 @@
-import swaggerUi from 'swagger-ui-express';
import swaggerJsdoc from 'swagger-jsdoc';
+import swaggerUi from 'swagger-ui-express';
const options = {
swaggerDefinition: {
@@ -50,6 +50,62 @@ const options = {
},
required: ['workspace_id', 'name', 'updated_at'],
},
+ WorkspaceIdResponse: {
+ type: 'object',
+ properties: {
+ workspace_id: {
+ type: 'string',
+ example: 'b15eac31-3942-4192-9cbd-2e2cdd48da0a',
+ },
+ },
+ required: ['workspace_id'],
+ },
+ WorkspaceListDto: {
+ type: 'object',
+ properties: {
+ pagedWorkspaceListResult: {
+ type: 'object',
+ properties: {
+ workspaceList: {
+ type: 'array',
+ items: {
+ $ref: '#/components/schemas/Workspace',
+ },
+ },
+ nextCursor: {
+ $ref: '#/components/schemas/NextCursor',
+ },
+ },
+ },
+ },
+ },
+ NextCursor: {
+ type: 'object',
+ properties: {
+ updated_at: {
+ type: 'string',
+ example: '2024-11-07T00:00:00.000Z',
+ },
+ workspace_id: {
+ type: 'string',
+ example: 'b15eac31-3942-4192-9cbd-2e2cdd48da0a',
+ },
+ },
+ required: ['updated_at', 'workspace_id'],
+ },
+ WorkspaceDto: {
+ type: 'object',
+ properties: {
+ workspace_id: {
+ type: 'string',
+ example: 'b15eac31-3942-4192-9cbd-2e2cdd48da0a',
+ },
+ name: {
+ type: 'string',
+ example: '워크스페이스 이름',
+ },
+ },
+ },
},
},
},
diff --git a/apps/server/src/routes/v1/workspaceRoute.ts b/apps/server/src/routes/v1/workspaceRoute.ts
index f1ba4b02..ca33cece 100644
--- a/apps/server/src/routes/v1/workspaceRoute.ts
+++ b/apps/server/src/routes/v1/workspaceRoute.ts
@@ -5,26 +5,155 @@ export const workspaceRouter = express.Router();
const workspaceController = WorkspaceController();
-workspaceRouter.get('/', workspaceController.getWorkspaceListByPage);
+workspaceRouter.get(
+ '/list',
+ /*
+ #swagger.summary = '워크스페이스 목록 조회'
+ #swagger.description = '워크스페이스 목록을 조회합니다. 커서기반 페이지네이션으로 동작합니다.'
+ #swagger.tags = ['Workspace']
+ #swagger.parameters['user-id'] = {
+ in: 'header',
+ description: '유저 아이디 (UUID 형식)',
+ type: 'string',
+ required: true,
+ }
+ #swagger.parameters['cursor'] = {
+ in: 'query',
+ description: '커서 정보입니다. ex: {updatedAt: 2024-11-07T00:00:00.000Z, workspaceId: b15eac31-3942-4192-9cbd-2e2cdd48da0a}',
+ required: false,
+ type: 'string',
+ }
+ #swagger.responses[200] = {
+ description: 'success',
+ content : {
+ "application/json" : {
+ schema: {
+ $ref: '#/components/schemas/WorkspaceListDto'
+ }
+ }
+ }
+ }
+ #swagger.responses[500] = {
+ description: 'internal server error'
+ }
+ */
+ workspaceController.getWorkspaceListByPage
+);
workspaceRouter.post(
'/',
- workspaceController.createNewWorkspace
/*
#swagger.summary = '새로운 워크스페이스 생성'
#swagger.description = '새로운 워크스페이스를 생성합니다.'
#swagger.tags = ['Workspace']
+ #swagger.parameters['user-id'] = {
+ in: 'header',
+ description: '유저 아이디 (UUID 형식)',
+ type: 'string',
+ required: true,
+ }
#swagger.responses[201] = {
description: 'success',
+ content : {
+ "application/json" : {
+ schema: {
+ $ref: '#/components/schemas/WorkspaceIdResponse'
+ }
+ }
+ }
+ }
+ #swagger.responses[500] = {
+ description: 'internal server error'
+ }
+ */
+ workspaceController.createNewWorkspace
+);
+
+workspaceRouter.get(
+ '/',
+ /*
+ #swagger.summary = '워크스페이스 조회'
+ #swagger.description = 'user id 와 workspace id로 워크스페이스를 조회합니다.'
+ #swagger.tags = ['Workspace']
+ #swagger.parameters['user-id'] = {
+ in: 'header',
+ description: '유저 아이디 (UUID 형식)',
+ type: 'string',
+ required: true,
+ }
+ #swagger.parameters['workspaceId'] = {
+ in: 'query',
+ description: '워크스페이스 아이디 (UUID 형식)',
+ type: 'string',
+ required: true,
+ }
+ #swagger.responses[200] = {
+ description: 'success',
+ content : {
+ "application/json" : {
+ schema: {
+ $ref: '#/components/schemas/WorkspaceDto'
+ }
+ }
+ }
+ }
+ #swagger.responses[404] = {
+ description: 'Not Found'
+ }
+ #swagger.responses[500] = {
+ description: 'internal server error'
+ }
+ */
+ workspaceController.getWorkspaceInfo
+);
+
+workspaceRouter.patch(
+ '/name',
+ /*
+ #swagger.summary = '워크스페이스 이름 변경'
+ #swagger.description = 'user id 와 workspace id로 워크스페이스를 조회 후 새로운 워크스페이스 이름으로 변경합니다.'
+ #swagger.tags = ['Workspace']
+ #swagger.parameters['user-id'] = {
+ in: 'header',
+ description: '유저 아이디 (UUID 형식)',
+ type: 'string',
+ required: true,
+ }
+ #swagger.requestBody = {
+ required: true,
content: {
"application/json": {
schema: {
- $ref: "#/components/schemas/Workspace"
+ type: 'object',
+ properties: {
+ workspaceId: {
+ type: 'string',
+ example: 'b15eac31-3942-4192-9cbd-2e2cdd48da0a',
+ },
+ newName: {
+ type: 'string',
+ example: '새로운 워크스페이스 이름',
+ },
+ },
}
}
}
}
+ #swagger.responses[200] = {
+ description: 'success',
+ content : {
+ "application/json" : {
+ schema: {
+ $ref: '#/components/schemas/Workspace'
+ }
+ }
+ }
+ }
+ #swagger.responses[404] = {
+ description: 'Not Found'
+ }
#swagger.responses[500] = {
description: 'internal server error'
}
*/
+ workspaceController.editWorkspaceName
);
diff --git a/apps/server/src/services/workspaceService.ts b/apps/server/src/services/workspaceService.ts
index a2d1bcf6..4ffc89be 100644
--- a/apps/server/src/services/workspaceService.ts
+++ b/apps/server/src/services/workspaceService.ts
@@ -59,8 +59,45 @@ export const WorkspaceService = () => {
}
};
+ // TODO: 워크스페이스 상태도 불러와야 함
+ const findWorkspaceByWorkspaceId = async (userId: string, workspaceId: string) => {
+ try {
+ const workspace = await Workspace.findOne(
+ {
+ user_id: userId,
+ workspace_id: workspaceId,
+ },
+ { workspace_id: 1, name: 1, _id: 0 }
+ );
+ return workspace;
+ } catch (error) {
+ if (error instanceof Error) {
+ throw new Error(`Failed to get workspace : ${error.message}`);
+ }
+ throw new Error(`Unknown Error ocurred while getting workspace`);
+ }
+ };
+
+ const updateWorkspaceName = async (userId: string, workspaceId: string, newName: string) => {
+ try {
+ const updatedWorkspace = await Workspace.findOneAndUpdate(
+ { user_id: userId, workspace_id: workspaceId },
+ { name: newName, updated_at: Date.now() },
+ { new: true }
+ );
+ return updatedWorkspace;
+ } catch (error) {
+ if (error instanceof Error) {
+ throw new Error(`Failed to get workspace : ${error.message}`);
+ }
+ throw new Error(`Unknown Error ocurred while getting workspace`);
+ }
+ };
+
return {
createWorkspace,
findWorkspaceListByPage,
+ findWorkspaceByWorkspaceId,
+ updateWorkspaceName,
};
};
diff --git a/apps/server/src/utils/error_message.ts b/apps/server/src/utils/error_message.ts
index bfdeada2..dc0408be 100644
--- a/apps/server/src/utils/error_message.ts
+++ b/apps/server/src/utils/error_message.ts
@@ -1,3 +1,4 @@
export const ERROR_MESSAGE = {
500: 'internal server error',
+ 404: 'Not Found',
};
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e0f29b11..7b94854f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -28,7 +28,7 @@ importers:
dependencies:
'@tanstack/react-query':
specifier: ^5.59.19
- version: 5.59.19(react@18.3.1)
+ version: 5.59.20(react@18.3.1)
axios:
specifier: ^1.7.7
version: 1.7.7
@@ -49,7 +49,7 @@ importers:
version: 2.4.1(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-router-dom:
specifier: ^6.27.0
- version: 6.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 6.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-spinners:
specifier: ^0.14.1
version: 0.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -58,14 +58,17 @@ importers:
version: 10.1.0(react@18.3.1)
storybook:
specifier: ^8.4.1
- version: 8.4.1(prettier@3.3.3)
+ version: 8.4.2(prettier@3.3.3)
+ uuid:
+ specifier: ^11.0.3
+ version: 11.0.3
zustand:
specifier: ^5.0.1
- version: 5.0.1(@types/react@18.3.12)(react@18.3.1)
+ version: 5.0.1(@types/react@18.3.12)(react@18.3.1)(use-sync-external-store@1.2.2(react@18.3.1))
devDependencies:
'@chromatic-com/storybook':
specifier: 3.2.2
- version: 3.2.2(react@18.3.1)(storybook@8.4.1(prettier@3.3.3))
+ version: 3.2.2(react@18.3.1)(storybook@8.4.2(prettier@3.3.3))
'@eslint/js':
specifier: ^9.13.0
version: 9.14.0
@@ -74,25 +77,25 @@ importers:
version: link:../../packages/tsconfig
'@storybook/addon-essentials':
specifier: 8.4.2
- version: 8.4.2(@types/react@18.3.12)(storybook@8.4.1(prettier@3.3.3))
+ version: 8.4.2(@types/react@18.3.12)(storybook@8.4.2(prettier@3.3.3))
'@storybook/addon-interactions':
specifier: 8.4.2
- version: 8.4.2(storybook@8.4.1(prettier@3.3.3))
+ version: 8.4.2(storybook@8.4.2(prettier@3.3.3))
'@storybook/addon-onboarding':
specifier: 8.4.2
- version: 8.4.2(react@18.3.1)(storybook@8.4.1(prettier@3.3.3))
+ version: 8.4.2(react@18.3.1)(storybook@8.4.2(prettier@3.3.3))
'@storybook/blocks':
specifier: 8.4.2
- version: 8.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.1(prettier@3.3.3))
+ version: 8.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.2(prettier@3.3.3))
'@storybook/react':
specifier: 8.4.2
- version: 8.4.2(@storybook/test@8.4.2(storybook@8.4.1(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.1(prettier@3.3.3))(typescript@5.6.3)
+ version: 8.4.2(@storybook/test@8.4.2(storybook@8.4.2(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.2(prettier@3.3.3))(typescript@5.6.3)
'@storybook/react-vite':
specifier: 8.4.2
- version: 8.4.2(@storybook/test@8.4.2(storybook@8.4.1(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.24.4)(storybook@8.4.1(prettier@3.3.3))(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.7))
+ version: 8.4.2(@storybook/test@8.4.2(storybook@8.4.2(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.26.0)(storybook@8.4.2(prettier@3.3.3))(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0))
'@storybook/test':
specifier: 8.4.2
- version: 8.4.2(storybook@8.4.1(prettier@3.3.3))
+ version: 8.4.2(storybook@8.4.2(prettier@3.3.3))
'@types/react':
specifier: ^18.3.12
version: 18.3.12
@@ -104,10 +107,10 @@ importers:
version: 5.3.3
'@vitejs/plugin-react':
specifier: ^4.3.3
- version: 4.3.3(vite@5.4.10(@types/node@22.8.7))
+ version: 4.3.3(vite@5.4.11(@types/node@22.9.0))
autoprefixer:
specifier: ^10.4.20
- version: 10.4.20(postcss@8.4.47)
+ version: 10.4.20(postcss@8.4.49)
eslint:
specifier: ^9.13.0
version: 9.14.0(jiti@1.21.6)
@@ -125,22 +128,22 @@ importers:
version: 15.12.0
postcss:
specifier: ^8.4.47
- version: 8.4.47
+ version: 8.4.49
prop-types:
specifier: 15.8.1
version: 15.8.1
tailwindcss:
specifier: ^3.4.14
- version: 3.4.14(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3))
+ version: 3.4.14(ts-node@10.9.2(@types/node@22.9.0)(typescript@5.6.3))
typescript-eslint:
specifier: ^8.11.0
- version: 8.12.2(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
+ version: 8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
vite:
specifier: ^5.4.10
- version: 5.4.10(@types/node@22.8.7)
+ version: 5.4.11(@types/node@22.9.0)
vite-plugin-svgr:
specifier: ^4.3.0
- version: 4.3.0(rollup@4.24.4)(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.7))
+ version: 4.3.0(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0))
apps/server:
dependencies:
@@ -155,7 +158,7 @@ importers:
version: 4.21.1
mongoose:
specifier: ^8.8.0
- version: 8.8.0
+ version: 8.8.1
tunnel-ssh:
specifier: ^5.1.2
version: 5.1.2
@@ -189,7 +192,10 @@ importers:
version: 5.0.1(express@4.21.1)
ts-node:
specifier: ^10.0.0
- version: 10.9.2(@types/node@22.8.7)(typescript@5.6.3)
+ version: 10.9.2(@types/node@22.9.0)(typescript@5.6.3)
+ tsconfig-paths:
+ specifier: ^4.2.0
+ version: 4.2.0
tsc-alias:
specifier: ^1.8.10
version: 1.8.10
@@ -649,8 +655,8 @@ packages:
resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
engines: {node: '>=18.18'}
- '@humanwhocodes/retry@0.4.0':
- resolution: {integrity: sha512-xnRgu9DxZbkWak/te3fcytNyp8MTbuiZIaueg2rgEvBuN55n04nwLYLU9TX/VVlusc9L2ZNXi99nUFNkHXtr5g==}
+ '@humanwhocodes/retry@0.4.1':
+ resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==}
engines: {node: '>=18.18'}
'@isaacs/cliui@8.0.2':
@@ -715,8 +721,8 @@ packages:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
- '@remix-run/router@1.20.0':
- resolution: {integrity: sha512-mUnk8rPJBI9loFDZ+YzPGdeniYK+FTmRD1TMCz7ev2SNIozyKKpnGgsxO34u6Z4z/t0ITuu7voi/AshfsGsgFg==}
+ '@remix-run/router@1.21.0':
+ resolution: {integrity: sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==}
engines: {node: '>=14.0.0'}
'@rollup/pluginutils@5.1.3':
@@ -728,96 +734,99 @@ packages:
rollup:
optional: true
- '@rollup/rollup-android-arm-eabi@4.24.4':
- resolution: {integrity: sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==}
+ '@rollup/rollup-android-arm-eabi@4.26.0':
+ resolution: {integrity: sha512-gJNwtPDGEaOEgejbaseY6xMFu+CPltsc8/T+diUTTbOQLqD+bnrJq9ulH6WD69TqwqWmrfRAtUv30cCFZlbGTQ==}
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm64@4.24.4':
- resolution: {integrity: sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==}
+ '@rollup/rollup-android-arm64@4.26.0':
+ resolution: {integrity: sha512-YJa5Gy8mEZgz5JquFruhJODMq3lTHWLm1fOy+HIANquLzfIOzE9RA5ie3JjCdVb9r46qfAQY/l947V0zfGJ0OQ==}
cpu: [arm64]
os: [android]
- '@rollup/rollup-darwin-arm64@4.24.4':
- resolution: {integrity: sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==}
+ '@rollup/rollup-darwin-arm64@4.26.0':
+ resolution: {integrity: sha512-ErTASs8YKbqTBoPLp/kA1B1Um5YSom8QAc4rKhg7b9tyyVqDBlQxy7Bf2wW7yIlPGPg2UODDQcbkTlruPzDosw==}
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.24.4':
- resolution: {integrity: sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==}
+ '@rollup/rollup-darwin-x64@4.26.0':
+ resolution: {integrity: sha512-wbgkYDHcdWW+NqP2mnf2NOuEbOLzDblalrOWcPyY6+BRbVhliavon15UploG7PpBRQ2bZJnbmh8o3yLoBvDIHA==}
cpu: [x64]
os: [darwin]
- '@rollup/rollup-freebsd-arm64@4.24.4':
- resolution: {integrity: sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==}
+ '@rollup/rollup-freebsd-arm64@4.26.0':
+ resolution: {integrity: sha512-Y9vpjfp9CDkAG4q/uwuhZk96LP11fBz/bYdyg9oaHYhtGZp7NrbkQrj/66DYMMP2Yo/QPAsVHkV891KyO52fhg==}
cpu: [arm64]
os: [freebsd]
- '@rollup/rollup-freebsd-x64@4.24.4':
- resolution: {integrity: sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==}
+ '@rollup/rollup-freebsd-x64@4.26.0':
+ resolution: {integrity: sha512-A/jvfCZ55EYPsqeaAt/yDAG4q5tt1ZboWMHEvKAH9Zl92DWvMIbnZe/f/eOXze65aJaaKbL+YeM0Hz4kLQvdwg==}
cpu: [x64]
os: [freebsd]
- '@rollup/rollup-linux-arm-gnueabihf@4.24.4':
- resolution: {integrity: sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==}
+ '@rollup/rollup-linux-arm-gnueabihf@4.26.0':
+ resolution: {integrity: sha512-paHF1bMXKDuizaMODm2bBTjRiHxESWiIyIdMugKeLnjuS1TCS54MF5+Y5Dx8Ui/1RBPVRE09i5OUlaLnv8OGnA==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-musleabihf@4.24.4':
- resolution: {integrity: sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==}
+ '@rollup/rollup-linux-arm-musleabihf@4.26.0':
+ resolution: {integrity: sha512-cwxiHZU1GAs+TMxvgPfUDtVZjdBdTsQwVnNlzRXC5QzIJ6nhfB4I1ahKoe9yPmoaA/Vhf7m9dB1chGPpDRdGXg==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.24.4':
- resolution: {integrity: sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==}
+ '@rollup/rollup-linux-arm64-gnu@4.26.0':
+ resolution: {integrity: sha512-4daeEUQutGRCW/9zEo8JtdAgtJ1q2g5oHaoQaZbMSKaIWKDQwQ3Yx0/3jJNmpzrsScIPtx/V+1AfibLisb3AMQ==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.24.4':
- resolution: {integrity: sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==}
+ '@rollup/rollup-linux-arm64-musl@4.26.0':
+ resolution: {integrity: sha512-eGkX7zzkNxvvS05ROzJ/cO/AKqNvR/7t1jA3VZDi2vRniLKwAWxUr85fH3NsvtxU5vnUUKFHKh8flIBdlo2b3Q==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-powerpc64le-gnu@4.24.4':
- resolution: {integrity: sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==}
+ '@rollup/rollup-linux-powerpc64le-gnu@4.26.0':
+ resolution: {integrity: sha512-Odp/lgHbW/mAqw/pU21goo5ruWsytP7/HCC/liOt0zcGG0llYWKrd10k9Fj0pdj3prQ63N5yQLCLiE7HTX+MYw==}
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.24.4':
- resolution: {integrity: sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==}
+ '@rollup/rollup-linux-riscv64-gnu@4.26.0':
+ resolution: {integrity: sha512-MBR2ZhCTzUgVD0OJdTzNeF4+zsVogIR1U/FsyuFerwcqjZGvg2nYe24SAHp8O5sN8ZkRVbHwlYeHqcSQ8tcYew==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-s390x-gnu@4.24.4':
- resolution: {integrity: sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==}
+ '@rollup/rollup-linux-s390x-gnu@4.26.0':
+ resolution: {integrity: sha512-YYcg8MkbN17fMbRMZuxwmxWqsmQufh3ZJFxFGoHjrE7bv0X+T6l3glcdzd7IKLiwhT+PZOJCblpnNlz1/C3kGQ==}
cpu: [s390x]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.24.4':
- resolution: {integrity: sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==}
+ '@rollup/rollup-linux-x64-gnu@4.26.0':
+ resolution: {integrity: sha512-ZuwpfjCwjPkAOxpjAEjabg6LRSfL7cAJb6gSQGZYjGhadlzKKywDkCUnJ+KEfrNY1jH5EEoSIKLCb572jSiglA==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.24.4':
- resolution: {integrity: sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==}
+ '@rollup/rollup-linux-x64-musl@4.26.0':
+ resolution: {integrity: sha512-+HJD2lFS86qkeF8kNu0kALtifMpPCZU80HvwztIKnYwym3KnA1os6nsX4BGSTLtS2QVAGG1P3guRgsYyMA0Yhg==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-win32-arm64-msvc@4.24.4':
- resolution: {integrity: sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==}
+ '@rollup/rollup-win32-arm64-msvc@4.26.0':
+ resolution: {integrity: sha512-WUQzVFWPSw2uJzX4j6YEbMAiLbs0BUysgysh8s817doAYhR5ybqTI1wtKARQKo6cGop3pHnrUJPFCsXdoFaimQ==}
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.24.4':
- resolution: {integrity: sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==}
+ '@rollup/rollup-win32-ia32-msvc@4.26.0':
+ resolution: {integrity: sha512-D4CxkazFKBfN1akAIY6ieyOqzoOoBV1OICxgUblWxff/pSjCA2khXlASUx7mK6W1oP4McqhgcCsu6QaLj3WMWg==}
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.24.4':
- resolution: {integrity: sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==}
+ '@rollup/rollup-win32-x64-msvc@4.26.0':
+ resolution: {integrity: sha512-2x8MO1rm4PGEP0xWbubJW5RtbNLk3puzAMaLQd3B3JHVw4KcHlmXcO+Wewx9zCoo7EUFiMlu/aZbCJ7VjMzAag==}
cpu: [x64]
os: [win32]
+ '@scarf/scarf@1.4.0':
+ resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==}
+
'@storybook/addon-actions@8.4.2':
resolution: {integrity: sha512-+hA200XN5aeA4T3jq8IifQq6Y+9FyNQ0Q+blM1L0Tl7WLzBc7B1kHQnKvhSj5pvMSBWc/Q/kY7Ev5t9gdOu13g==}
peerDependencies:
@@ -901,8 +910,8 @@ packages:
peerDependencies:
storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0
- '@storybook/core@8.4.1':
- resolution: {integrity: sha512-q3Q4OFBj7MHHbIFYk/Beejlqv5j7CC3+VWhGcr0TK3SGvdCIZ7EliYuc5JIOgDlEPsnTIk+lkgWI4LAA9mLzSw==}
+ '@storybook/core@8.4.2':
+ resolution: {integrity: sha512-hF8GWoUZTjwwuV5j4OLhMHZtZQL/NYcVUBReC2Ba06c8PkFIKqKZwATr1zKd301gQ5Qwcn9WgmZxJTMgdKQtOg==}
peerDependencies:
prettier: ^2 || ^3
peerDependenciesMeta:
@@ -1051,11 +1060,11 @@ packages:
peerDependencies:
'@svgr/core': '*'
- '@tanstack/query-core@5.59.17':
- resolution: {integrity: sha512-jWdDiif8kaqnRGHNXAa9CnudtxY5v9DUxXhodgqX2Rwzj+1UwStDHEbBd9IA5C7VYAaJ2s+BxFR6PUBs8ERorA==}
+ '@tanstack/query-core@5.59.20':
+ resolution: {integrity: sha512-e8vw0lf7KwfGe1if4uPFhvZRWULqHjFcz3K8AebtieXvnMOz5FSzlZe3mTLlPuUBcydCnBRqYs2YJ5ys68wwLg==}
- '@tanstack/react-query@5.59.19':
- resolution: {integrity: sha512-xLRfyFyQOFcLltKCds0LijfC6/HQJrrTTnZB8ciyn74LIkVAm++vZJ6eUVG20RmJtdP8REdy7vSOYW4M3//XLA==}
+ '@tanstack/react-query@5.59.20':
+ resolution: {integrity: sha512-Zly0egsK0tFdfSbh5/mapSa+Zfc3Et0Zkar7Wo5sQkFzWyB3p3uZWOHR2wrlAEEV2L953eLuDBtbgFvMYiLvUw==}
peerDependencies:
react: ^18 || ^19
@@ -1142,14 +1151,14 @@ packages:
'@types/minimatch@5.1.2':
resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
- '@types/node@22.8.7':
- resolution: {integrity: sha512-LidcG+2UeYIWcMuMUpBKOnryBWG/rnmOHQR5apjn8myTQcx3rinFRn7DcIFhMnS0PPFSC6OafdIKEad0lj6U0Q==}
+ '@types/node@22.9.0':
+ resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==}
'@types/prop-types@15.7.13':
resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
- '@types/qs@6.9.16':
- resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==}
+ '@types/qs@6.9.17':
+ resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==}
'@types/range-parser@1.2.7':
resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
@@ -1190,8 +1199,8 @@ packages:
'@types/whatwg-url@11.0.5':
resolution: {integrity: sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==}
- '@typescript-eslint/eslint-plugin@8.12.2':
- resolution: {integrity: sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw==}
+ '@typescript-eslint/eslint-plugin@8.14.0':
+ resolution: {integrity: sha512-tqp8H7UWFaZj0yNO6bycd5YjMwxa6wIHOLZvWPkidwbgLCsBMetQoGj7DPuAlWa2yGO3H48xmPwjhsSPPCGU5w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
@@ -1201,8 +1210,8 @@ packages:
typescript:
optional: true
- '@typescript-eslint/parser@8.12.2':
- resolution: {integrity: sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw==}
+ '@typescript-eslint/parser@8.14.0':
+ resolution: {integrity: sha512-2p82Yn9juUJq0XynBXtFCyrBDb6/dJombnz6vbo6mgQEtWHfvHbQuEa9kAOVIt1c9YFwi7H6WxtPj1kg+80+RA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -1211,12 +1220,12 @@ packages:
typescript:
optional: true
- '@typescript-eslint/scope-manager@8.12.2':
- resolution: {integrity: sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==}
+ '@typescript-eslint/scope-manager@8.14.0':
+ resolution: {integrity: sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/type-utils@8.12.2':
- resolution: {integrity: sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ==}
+ '@typescript-eslint/type-utils@8.14.0':
+ resolution: {integrity: sha512-Xcz9qOtZuGusVOH5Uk07NGs39wrKkf3AxlkK79RBK6aJC1l03CobXjJbwBPSidetAOV+5rEVuiT1VSBUOAsanQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '*'
@@ -1224,12 +1233,12 @@ packages:
typescript:
optional: true
- '@typescript-eslint/types@8.12.2':
- resolution: {integrity: sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==}
+ '@typescript-eslint/types@8.14.0':
+ resolution: {integrity: sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/typescript-estree@8.12.2':
- resolution: {integrity: sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==}
+ '@typescript-eslint/typescript-estree@8.14.0':
+ resolution: {integrity: sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '*'
@@ -1237,14 +1246,14 @@ packages:
typescript:
optional: true
- '@typescript-eslint/utils@8.12.2':
- resolution: {integrity: sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==}
+ '@typescript-eslint/utils@8.14.0':
+ resolution: {integrity: sha512-OGqj6uB8THhrHj0Fk27DcHPojW7zKwKkPmHXHvQ58pLYp4hy8CSUdTKykKeh+5vFqTTVmjz0zCOOPKRovdsgHA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
- '@typescript-eslint/visitor-keys@8.12.2':
- resolution: {integrity: sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==}
+ '@typescript-eslint/visitor-keys@8.14.0':
+ resolution: {integrity: sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@vitejs/plugin-react@4.3.3':
@@ -1450,8 +1459,8 @@ packages:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: '>=10'}
- caniuse-lite@1.0.30001677:
- resolution: {integrity: sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==}
+ caniuse-lite@1.0.30001680:
+ resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==}
chai@5.1.2:
resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==}
@@ -1473,8 +1482,8 @@ packages:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
- chromatic@11.16.5:
- resolution: {integrity: sha512-wUEKXyu3GYmUg6Jq13uyRE9iC8ph5gbfDHdyHH0vQathkGQrcjHHdoxI/GXKIjU6d+xupLon8sxRV9NuZKTWbA==}
+ chromatic@11.18.1:
+ resolution: {integrity: sha512-hkNT9vA6K9+PnE/khhZYBnRCOm8NonaQDs7RZ8YHFo7/lh1b/x/uFMkTjWjaj/mkM6QOR/evu5VcZMtcaauSlw==}
hasBin: true
peerDependencies:
'@chromatic-com/cypress': ^0.*.* || ^1.0.0
@@ -1563,8 +1572,8 @@ packages:
engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'}
hasBin: true
- cross-spawn@7.0.3:
- resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+ cross-spawn@7.0.5:
+ resolution: {integrity: sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==}
engines: {node: '>= 8'}
cross-spawn@7.0.5:
@@ -1686,8 +1695,8 @@ packages:
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
- electron-to-chromium@1.5.50:
- resolution: {integrity: sha512-eMVObiUQ2LdgeO1F/ySTXsvqvxb6ZH2zPGaMYsWzRDdOddUa77tdmI0ltg+L16UpbWdhPmuF3wIQYyQq65WfZw==}
+ electron-to-chromium@1.5.57:
+ resolution: {integrity: sha512-xS65H/tqgOwUBa5UmOuNSLuslDo7zho0y/lgQw35pnrqiZh7UOWHCeL/Bt6noJATbA6tpQJGCifsFsIRZj1Fqg==}
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@@ -2333,8 +2342,8 @@ packages:
socks:
optional: true
- mongoose@8.8.0:
- resolution: {integrity: sha512-KluvgwnQB1GPOYZZXUHJRjS1TW6xxwTlf/YgjWExuuNanIe3W7VcR7dDXQVCIRk8L7NYge8EnoTcu2grWtN+XQ==}
+ mongoose@8.8.1:
+ resolution: {integrity: sha512-l7DgeY1szT98+EKU8GYnga5WnyatAu+kOQ2VlVX1Mxif6A0Umt0YkSiksCiyGxzx8SPhGe9a53ND1GD4yVDrPA==}
engines: {node: '>=16.20.1'}
mpath@0.9.0:
@@ -2403,8 +2412,8 @@ packages:
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
engines: {node: '>= 6'}
- object-inspect@1.13.2:
- resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==}
+ object-inspect@1.13.3:
+ resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==}
engines: {node: '>= 0.4'}
on-finished@2.4.1:
@@ -2549,8 +2558,8 @@ packages:
postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
- postcss@8.4.47:
- resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==}
+ postcss@8.4.49:
+ resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==}
engines: {node: ^10 || ^12 || >=14}
prelude-ls@1.2.1:
@@ -2635,8 +2644,8 @@ packages:
proxy-from-env@1.1.0:
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
- psl@1.9.0:
- resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
+ psl@1.10.0:
+ resolution: {integrity: sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==}
pstree.remy@1.1.8:
resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==}
@@ -2704,15 +2713,15 @@ packages:
resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
engines: {node: '>=0.10.0'}
- react-router-dom@6.27.0:
- resolution: {integrity: sha512-+bvtFWMC0DgAFrfKXKG9Fc+BcXWRUO1aJIihbB79xaeq0v5UzfvnM5houGUm1Y461WVRcgAQ+Clh5rdb1eCx4g==}
+ react-router-dom@6.28.0:
+ resolution: {integrity: sha512-kQ7Unsl5YdyOltsPGl31zOjLrDv+m2VcIEcIHqYYD3Lp0UppLjrzcfJqDJwXxFw3TH/yvapbnUvPlAj7Kx5nbg==}
engines: {node: '>=14.0.0'}
peerDependencies:
react: '>=16.8'
react-dom: '>=16.8'
- react-router@6.27.0:
- resolution: {integrity: sha512-YA+HGZXz4jaAkVoYBE98VQl+nVzI+cVI2Oj/06F5ZM+0u3TgedN9Y9kmMRo2mnkSK2nCpNQn0DVob4HCsY/WLw==}
+ react-router@6.28.0:
+ resolution: {integrity: sha512-HrYdIFqdrnhDw0PqG/AKjAqEqM7AvxCz0DQ4h2W8k6nqmc5uRBYDag0SBxx9iYz5G8gnuNVLzUe13wl9eAsXXg==}
engines: {node: '>=14.0.0'}
peerDependencies:
react: '>=16.8'
@@ -2770,8 +2779,8 @@ packages:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
- rollup@4.24.4:
- resolution: {integrity: sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==}
+ rollup@4.26.0:
+ resolution: {integrity: sha512-ilcl12hnWonG8f+NxU6BlgysVA0gvY2l8N0R84S1HcINbW20bvwuCngJkkInV6LXhwRpucsW5k1ovDwEdBVrNg==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@@ -2876,8 +2885,8 @@ packages:
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
engines: {node: '>= 0.8'}
- storybook@8.4.1:
- resolution: {integrity: sha512-0tfFIFghjho9FtnFoiJMoxhcs2iIdvEF81GTSVnTsDVJrYA84nB+FxN3UY1fT0BcQ8BFlbf+OhSjZL7ufqqWKA==}
+ storybook@8.4.2:
+ resolution: {integrity: sha512-GMCgyAulmLNrkUtDkCpFO4SB77YrpiIxq6e5tzaQdXEuaDu1mdNwOuP3VG7nE2FzxmqDvagSgriM68YW9iFaZA==}
hasBin: true
peerDependencies:
prettier: ^2 || ^3
@@ -2953,8 +2962,8 @@ packages:
resolution: {integrity: sha512-nF7oMeL4KypldrQhac8RyHerJeGPD1p2xDh900GPvc+Nk7nWP6jX2FcC7WmkinMoAmoO774+AFXcWsW8gMWEIg==}
engines: {node: '>=10'}
- swagger-ui-dist@5.17.14:
- resolution: {integrity: sha512-CVbSfaLpstV65OnSjbXfVd6Sta3q3F7Cj/yYuvHMp1P90LztOLs6PfUnKEVAeiIVQt9u2SaPwv0LiH/OyMjHRw==}
+ swagger-ui-dist@5.18.2:
+ resolution: {integrity: sha512-J+y4mCw/zXh1FOj5wGJvnAajq6XgHOyywsa9yITmwxIlJbMqITq3gYRZHaeqLVH/eV/HOPphE6NjF+nbSNC5Zw==}
swagger-ui-express@5.0.1:
resolution: {integrity: sha512-SrNU3RiBGTLLmFU8GIJdOdanJTl4TOmT27tt3bWWHppqYmAZ6IDuEuBvMU6nZq0zLEe6b/1rACXCgLZqO6ZfrA==}
@@ -3078,8 +3087,8 @@ packages:
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
engines: {node: '>= 0.6'}
- typescript-eslint@8.12.2:
- resolution: {integrity: sha512-UbuVUWSrHVR03q9CWx+JDHeO6B/Hr9p4U5lRH++5tq/EbFq1faYZe50ZSBePptgfIKLEti0aPQ3hFgnPVcd8ZQ==}
+ typescript-eslint@8.14.0:
+ resolution: {integrity: sha512-K8fBJHxVL3kxMmwByvz8hNdBJ8a0YqKzKDX6jRlrjMuNXyd5T2V02HIq37+OiWXvUUOXgOOGiSSOh26Mh8pC3w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '*'
@@ -3131,6 +3140,11 @@ packages:
url-parse@1.5.10:
resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
+ use-sync-external-store@1.2.2:
+ resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
@@ -3141,6 +3155,10 @@ packages:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
engines: {node: '>= 0.4.0'}
+ uuid@11.0.3:
+ resolution: {integrity: sha512-d0z310fCWv5dJwnX1Y/MncBAqGMKEzlBb1AOf7z9K8ALnd0utBX/msg/fA0+sbyN1ihbMsLhrBlnl1ak7Wa0rg==}
+ hasBin: true
+
uuid@9.0.1:
resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
hasBin: true
@@ -3161,8 +3179,8 @@ packages:
peerDependencies:
vite: '>=2.6.0'
- vite@5.4.10:
- resolution: {integrity: sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==}
+ vite@5.4.11:
+ resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@@ -3466,13 +3484,13 @@ snapshots:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
- '@chromatic-com/storybook@3.2.2(react@18.3.1)(storybook@8.4.1(prettier@3.3.3))':
+ '@chromatic-com/storybook@3.2.2(react@18.3.1)(storybook@8.4.2(prettier@3.3.3))':
dependencies:
- chromatic: 11.16.5
+ chromatic: 11.18.1
filesize: 10.1.6
jsonfile: 6.1.0
react-confetti: 6.1.0(react@18.3.1)
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
strip-ansi: 7.1.0
transitivePeerDependencies:
- '@chromatic-com/cypress'
@@ -3674,7 +3692,7 @@ snapshots:
'@humanwhocodes/retry@0.3.1': {}
- '@humanwhocodes/retry@0.4.0': {}
+ '@humanwhocodes/retry@0.4.1': {}
'@isaacs/cliui@8.0.2':
dependencies:
@@ -3685,13 +3703,13 @@ snapshots:
wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0
- '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.7))':
+ '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0))':
dependencies:
glob: 7.2.3
glob-promise: 4.2.2(glob@7.2.3)
magic-string: 0.27.0
react-docgen-typescript: 2.2.2(typescript@5.6.3)
- vite: 5.4.10(@types/node@22.8.7)
+ vite: 5.4.11(@types/node@22.9.0)
optionalDependencies:
typescript: 5.6.3
@@ -3744,191 +3762,193 @@ snapshots:
'@pkgjs/parseargs@0.11.0':
optional: true
- '@remix-run/router@1.20.0': {}
+ '@remix-run/router@1.21.0': {}
- '@rollup/pluginutils@5.1.3(rollup@4.24.4)':
+ '@rollup/pluginutils@5.1.3(rollup@4.26.0)':
dependencies:
'@types/estree': 1.0.6
estree-walker: 2.0.2
picomatch: 4.0.2
optionalDependencies:
- rollup: 4.24.4
+ rollup: 4.26.0
- '@rollup/rollup-android-arm-eabi@4.24.4':
+ '@rollup/rollup-android-arm-eabi@4.26.0':
optional: true
- '@rollup/rollup-android-arm64@4.24.4':
+ '@rollup/rollup-android-arm64@4.26.0':
optional: true
- '@rollup/rollup-darwin-arm64@4.24.4':
+ '@rollup/rollup-darwin-arm64@4.26.0':
optional: true
- '@rollup/rollup-darwin-x64@4.24.4':
+ '@rollup/rollup-darwin-x64@4.26.0':
optional: true
- '@rollup/rollup-freebsd-arm64@4.24.4':
+ '@rollup/rollup-freebsd-arm64@4.26.0':
optional: true
- '@rollup/rollup-freebsd-x64@4.24.4':
+ '@rollup/rollup-freebsd-x64@4.26.0':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.24.4':
+ '@rollup/rollup-linux-arm-gnueabihf@4.26.0':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.24.4':
+ '@rollup/rollup-linux-arm-musleabihf@4.26.0':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.24.4':
+ '@rollup/rollup-linux-arm64-gnu@4.26.0':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.24.4':
+ '@rollup/rollup-linux-arm64-musl@4.26.0':
optional: true
- '@rollup/rollup-linux-powerpc64le-gnu@4.24.4':
+ '@rollup/rollup-linux-powerpc64le-gnu@4.26.0':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.24.4':
+ '@rollup/rollup-linux-riscv64-gnu@4.26.0':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.24.4':
+ '@rollup/rollup-linux-s390x-gnu@4.26.0':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.24.4':
+ '@rollup/rollup-linux-x64-gnu@4.26.0':
optional: true
- '@rollup/rollup-linux-x64-musl@4.24.4':
+ '@rollup/rollup-linux-x64-musl@4.26.0':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.24.4':
+ '@rollup/rollup-win32-arm64-msvc@4.26.0':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.24.4':
+ '@rollup/rollup-win32-ia32-msvc@4.26.0':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.24.4':
+ '@rollup/rollup-win32-x64-msvc@4.26.0':
optional: true
- '@storybook/addon-actions@8.4.2(storybook@8.4.1(prettier@3.3.3))':
+ '@scarf/scarf@1.4.0': {}
+
+ '@storybook/addon-actions@8.4.2(storybook@8.4.2(prettier@3.3.3))':
dependencies:
'@storybook/global': 5.0.0
'@types/uuid': 9.0.8
dequal: 2.0.3
polished: 4.3.1
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
uuid: 9.0.1
- '@storybook/addon-backgrounds@8.4.2(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/addon-backgrounds@8.4.2(storybook@8.4.2(prettier@3.3.3))':
dependencies:
'@storybook/global': 5.0.0
memoizerific: 1.11.3
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
ts-dedent: 2.2.0
- '@storybook/addon-controls@8.4.2(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/addon-controls@8.4.2(storybook@8.4.2(prettier@3.3.3))':
dependencies:
'@storybook/global': 5.0.0
dequal: 2.0.3
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
ts-dedent: 2.2.0
- '@storybook/addon-docs@8.4.2(@types/react@18.3.12)(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/addon-docs@8.4.2(@types/react@18.3.12)(storybook@8.4.2(prettier@3.3.3))':
dependencies:
'@mdx-js/react': 3.1.0(@types/react@18.3.12)(react@18.3.1)
- '@storybook/blocks': 8.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.1(prettier@3.3.3))
- '@storybook/csf-plugin': 8.4.2(storybook@8.4.1(prettier@3.3.3))
- '@storybook/react-dom-shim': 8.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.1(prettier@3.3.3))
+ '@storybook/blocks': 8.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.2(prettier@3.3.3))
+ '@storybook/csf-plugin': 8.4.2(storybook@8.4.2(prettier@3.3.3))
+ '@storybook/react-dom-shim': 8.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.2(prettier@3.3.3))
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
ts-dedent: 2.2.0
transitivePeerDependencies:
- '@types/react'
- webpack-sources
- '@storybook/addon-essentials@8.4.2(@types/react@18.3.12)(storybook@8.4.1(prettier@3.3.3))':
- dependencies:
- '@storybook/addon-actions': 8.4.2(storybook@8.4.1(prettier@3.3.3))
- '@storybook/addon-backgrounds': 8.4.2(storybook@8.4.1(prettier@3.3.3))
- '@storybook/addon-controls': 8.4.2(storybook@8.4.1(prettier@3.3.3))
- '@storybook/addon-docs': 8.4.2(@types/react@18.3.12)(storybook@8.4.1(prettier@3.3.3))
- '@storybook/addon-highlight': 8.4.2(storybook@8.4.1(prettier@3.3.3))
- '@storybook/addon-measure': 8.4.2(storybook@8.4.1(prettier@3.3.3))
- '@storybook/addon-outline': 8.4.2(storybook@8.4.1(prettier@3.3.3))
- '@storybook/addon-toolbars': 8.4.2(storybook@8.4.1(prettier@3.3.3))
- '@storybook/addon-viewport': 8.4.2(storybook@8.4.1(prettier@3.3.3))
- storybook: 8.4.1(prettier@3.3.3)
+ '@storybook/addon-essentials@8.4.2(@types/react@18.3.12)(storybook@8.4.2(prettier@3.3.3))':
+ dependencies:
+ '@storybook/addon-actions': 8.4.2(storybook@8.4.2(prettier@3.3.3))
+ '@storybook/addon-backgrounds': 8.4.2(storybook@8.4.2(prettier@3.3.3))
+ '@storybook/addon-controls': 8.4.2(storybook@8.4.2(prettier@3.3.3))
+ '@storybook/addon-docs': 8.4.2(@types/react@18.3.12)(storybook@8.4.2(prettier@3.3.3))
+ '@storybook/addon-highlight': 8.4.2(storybook@8.4.2(prettier@3.3.3))
+ '@storybook/addon-measure': 8.4.2(storybook@8.4.2(prettier@3.3.3))
+ '@storybook/addon-outline': 8.4.2(storybook@8.4.2(prettier@3.3.3))
+ '@storybook/addon-toolbars': 8.4.2(storybook@8.4.2(prettier@3.3.3))
+ '@storybook/addon-viewport': 8.4.2(storybook@8.4.2(prettier@3.3.3))
+ storybook: 8.4.2(prettier@3.3.3)
ts-dedent: 2.2.0
transitivePeerDependencies:
- '@types/react'
- webpack-sources
- '@storybook/addon-highlight@8.4.2(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/addon-highlight@8.4.2(storybook@8.4.2(prettier@3.3.3))':
dependencies:
'@storybook/global': 5.0.0
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
- '@storybook/addon-interactions@8.4.2(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/addon-interactions@8.4.2(storybook@8.4.2(prettier@3.3.3))':
dependencies:
'@storybook/global': 5.0.0
- '@storybook/instrumenter': 8.4.2(storybook@8.4.1(prettier@3.3.3))
- '@storybook/test': 8.4.2(storybook@8.4.1(prettier@3.3.3))
+ '@storybook/instrumenter': 8.4.2(storybook@8.4.2(prettier@3.3.3))
+ '@storybook/test': 8.4.2(storybook@8.4.2(prettier@3.3.3))
polished: 4.3.1
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
ts-dedent: 2.2.0
- '@storybook/addon-measure@8.4.2(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/addon-measure@8.4.2(storybook@8.4.2(prettier@3.3.3))':
dependencies:
'@storybook/global': 5.0.0
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
tiny-invariant: 1.3.3
- '@storybook/addon-onboarding@8.4.2(react@18.3.1)(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/addon-onboarding@8.4.2(react@18.3.1)(storybook@8.4.2(prettier@3.3.3))':
dependencies:
react-confetti: 6.1.0(react@18.3.1)
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
transitivePeerDependencies:
- react
- '@storybook/addon-outline@8.4.2(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/addon-outline@8.4.2(storybook@8.4.2(prettier@3.3.3))':
dependencies:
'@storybook/global': 5.0.0
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
ts-dedent: 2.2.0
- '@storybook/addon-toolbars@8.4.2(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/addon-toolbars@8.4.2(storybook@8.4.2(prettier@3.3.3))':
dependencies:
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
- '@storybook/addon-viewport@8.4.2(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/addon-viewport@8.4.2(storybook@8.4.2(prettier@3.3.3))':
dependencies:
memoizerific: 1.11.3
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
- '@storybook/blocks@8.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/blocks@8.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.2(prettier@3.3.3))':
dependencies:
'@storybook/csf': 0.1.11
'@storybook/icons': 1.2.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
ts-dedent: 2.2.0
optionalDependencies:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@storybook/builder-vite@8.4.2(storybook@8.4.1(prettier@3.3.3))(vite@5.4.10(@types/node@22.8.7))':
+ '@storybook/builder-vite@8.4.2(storybook@8.4.2(prettier@3.3.3))(vite@5.4.11(@types/node@22.9.0))':
dependencies:
- '@storybook/csf-plugin': 8.4.2(storybook@8.4.1(prettier@3.3.3))
+ '@storybook/csf-plugin': 8.4.2(storybook@8.4.2(prettier@3.3.3))
browser-assert: 1.2.1
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
ts-dedent: 2.2.0
- vite: 5.4.10(@types/node@22.8.7)
+ vite: 5.4.11(@types/node@22.9.0)
transitivePeerDependencies:
- webpack-sources
- '@storybook/components@8.4.2(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/components@8.4.2(storybook@8.4.2(prettier@3.3.3))':
dependencies:
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
- '@storybook/core@8.4.1(prettier@3.3.3)':
+ '@storybook/core@8.4.2(prettier@3.3.3)':
dependencies:
'@storybook/csf': 0.1.11
better-opn: 3.0.2
@@ -3948,9 +3968,9 @@ snapshots:
- supports-color
- utf-8-validate
- '@storybook/csf-plugin@8.4.2(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/csf-plugin@8.4.2(storybook@8.4.2(prettier@3.3.3))':
dependencies:
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
unplugin: 1.15.0
transitivePeerDependencies:
- webpack-sources
@@ -3966,41 +3986,41 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@storybook/instrumenter@8.4.2(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/instrumenter@8.4.2(storybook@8.4.2(prettier@3.3.3))':
dependencies:
'@storybook/global': 5.0.0
'@vitest/utils': 2.1.4
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
- '@storybook/manager-api@8.4.2(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/manager-api@8.4.2(storybook@8.4.2(prettier@3.3.3))':
dependencies:
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
- '@storybook/preview-api@8.4.2(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/preview-api@8.4.2(storybook@8.4.2(prettier@3.3.3))':
dependencies:
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
- '@storybook/react-dom-shim@8.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/react-dom-shim@8.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.2(prettier@3.3.3))':
dependencies:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
- '@storybook/react-vite@8.4.2(@storybook/test@8.4.2(storybook@8.4.1(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.24.4)(storybook@8.4.1(prettier@3.3.3))(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.7))':
+ '@storybook/react-vite@8.4.2(@storybook/test@8.4.2(storybook@8.4.2(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.26.0)(storybook@8.4.2(prettier@3.3.3))(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0))':
dependencies:
- '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.7))
- '@rollup/pluginutils': 5.1.3(rollup@4.24.4)
- '@storybook/builder-vite': 8.4.2(storybook@8.4.1(prettier@3.3.3))(vite@5.4.10(@types/node@22.8.7))
- '@storybook/react': 8.4.2(@storybook/test@8.4.2(storybook@8.4.1(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.1(prettier@3.3.3))(typescript@5.6.3)
+ '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0))
+ '@rollup/pluginutils': 5.1.3(rollup@4.26.0)
+ '@storybook/builder-vite': 8.4.2(storybook@8.4.2(prettier@3.3.3))(vite@5.4.11(@types/node@22.9.0))
+ '@storybook/react': 8.4.2(@storybook/test@8.4.2(storybook@8.4.2(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.2(prettier@3.3.3))(typescript@5.6.3)
find-up: 5.0.0
magic-string: 0.30.12
react: 18.3.1
react-docgen: 7.1.0
react-dom: 18.3.1(react@18.3.1)
resolve: 1.22.8
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
tsconfig-paths: 4.2.0
- vite: 5.4.10(@types/node@22.8.7)
+ vite: 5.4.11(@types/node@22.9.0)
transitivePeerDependencies:
- '@storybook/test'
- rollup
@@ -4008,36 +4028,36 @@ snapshots:
- typescript
- webpack-sources
- '@storybook/react@8.4.2(@storybook/test@8.4.2(storybook@8.4.1(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.1(prettier@3.3.3))(typescript@5.6.3)':
+ '@storybook/react@8.4.2(@storybook/test@8.4.2(storybook@8.4.2(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.2(prettier@3.3.3))(typescript@5.6.3)':
dependencies:
- '@storybook/components': 8.4.2(storybook@8.4.1(prettier@3.3.3))
+ '@storybook/components': 8.4.2(storybook@8.4.2(prettier@3.3.3))
'@storybook/global': 5.0.0
- '@storybook/manager-api': 8.4.2(storybook@8.4.1(prettier@3.3.3))
- '@storybook/preview-api': 8.4.2(storybook@8.4.1(prettier@3.3.3))
- '@storybook/react-dom-shim': 8.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.1(prettier@3.3.3))
- '@storybook/theming': 8.4.2(storybook@8.4.1(prettier@3.3.3))
+ '@storybook/manager-api': 8.4.2(storybook@8.4.2(prettier@3.3.3))
+ '@storybook/preview-api': 8.4.2(storybook@8.4.2(prettier@3.3.3))
+ '@storybook/react-dom-shim': 8.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.2(prettier@3.3.3))
+ '@storybook/theming': 8.4.2(storybook@8.4.2(prettier@3.3.3))
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
optionalDependencies:
- '@storybook/test': 8.4.2(storybook@8.4.1(prettier@3.3.3))
+ '@storybook/test': 8.4.2(storybook@8.4.2(prettier@3.3.3))
typescript: 5.6.3
- '@storybook/test@8.4.2(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/test@8.4.2(storybook@8.4.2(prettier@3.3.3))':
dependencies:
'@storybook/csf': 0.1.11
'@storybook/global': 5.0.0
- '@storybook/instrumenter': 8.4.2(storybook@8.4.1(prettier@3.3.3))
+ '@storybook/instrumenter': 8.4.2(storybook@8.4.2(prettier@3.3.3))
'@testing-library/dom': 10.4.0
'@testing-library/jest-dom': 6.5.0
'@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0)
'@vitest/expect': 2.0.5
'@vitest/spy': 2.0.5
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
- '@storybook/theming@8.4.2(storybook@8.4.1(prettier@3.3.3))':
+ '@storybook/theming@8.4.2(storybook@8.4.2(prettier@3.3.3))':
dependencies:
- storybook: 8.4.1(prettier@3.3.3)
+ storybook: 8.4.2(prettier@3.3.3)
'@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.26.0)':
dependencies:
@@ -4109,11 +4129,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@tanstack/query-core@5.59.17': {}
+ '@tanstack/query-core@5.59.20': {}
- '@tanstack/react-query@5.59.19(react@18.3.1)':
+ '@tanstack/react-query@5.59.20(react@18.3.1)':
dependencies:
- '@tanstack/query-core': 5.59.17
+ '@tanstack/query-core': 5.59.20
react: 18.3.1
'@testing-library/dom@10.4.0':
@@ -4175,15 +4195,15 @@ snapshots:
'@types/body-parser@1.19.5':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 22.8.7
+ '@types/node': 22.9.0
'@types/connect@3.4.38':
dependencies:
- '@types/node': 22.8.7
+ '@types/node': 22.9.0
'@types/cors@2.8.17':
dependencies:
- '@types/node': 22.8.7
+ '@types/node': 22.9.0
'@types/doctrine@0.0.9': {}
@@ -4191,8 +4211,8 @@ snapshots:
'@types/express-serve-static-core@4.19.6':
dependencies:
- '@types/node': 22.8.7
- '@types/qs': 6.9.16
+ '@types/node': 22.9.0
+ '@types/qs': 6.9.17
'@types/range-parser': 1.2.7
'@types/send': 0.17.4
@@ -4200,13 +4220,13 @@ snapshots:
dependencies:
'@types/body-parser': 1.19.5
'@types/express-serve-static-core': 4.19.6
- '@types/qs': 6.9.16
+ '@types/qs': 6.9.17
'@types/serve-static': 1.15.7
'@types/glob@7.2.0':
dependencies:
'@types/minimatch': 5.1.2
- '@types/node': 22.8.7
+ '@types/node': 22.9.0
'@types/history@4.7.11': {}
@@ -4220,13 +4240,13 @@ snapshots:
'@types/minimatch@5.1.2': {}
- '@types/node@22.8.7':
+ '@types/node@22.9.0':
dependencies:
undici-types: 6.19.8
'@types/prop-types@15.7.13': {}
- '@types/qs@6.9.16': {}
+ '@types/qs@6.9.17': {}
'@types/range-parser@1.2.7': {}
@@ -4255,12 +4275,12 @@ snapshots:
'@types/send@0.17.4':
dependencies:
'@types/mime': 1.3.5
- '@types/node': 22.8.7
+ '@types/node': 22.9.0
'@types/serve-static@1.15.7':
dependencies:
'@types/http-errors': 2.0.4
- '@types/node': 22.8.7
+ '@types/node': 22.9.0
'@types/send': 0.17.4
'@types/swagger-jsdoc@6.0.4': {}
@@ -4278,14 +4298,14 @@ snapshots:
dependencies:
'@types/webidl-conversions': 7.0.3
- '@typescript-eslint/eslint-plugin@8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)':
+ '@typescript-eslint/eslint-plugin@8.14.0(@typescript-eslint/parser@8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)':
dependencies:
'@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 8.12.2(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
- '@typescript-eslint/scope-manager': 8.12.2
- '@typescript-eslint/type-utils': 8.12.2(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
- '@typescript-eslint/utils': 8.12.2(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
- '@typescript-eslint/visitor-keys': 8.12.2
+ '@typescript-eslint/parser': 8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
+ '@typescript-eslint/scope-manager': 8.14.0
+ '@typescript-eslint/type-utils': 8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
+ '@typescript-eslint/utils': 8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
+ '@typescript-eslint/visitor-keys': 8.14.0
eslint: 9.14.0(jiti@1.21.6)
graphemer: 1.4.0
ignore: 5.3.2
@@ -4296,12 +4316,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.12.2(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)':
+ '@typescript-eslint/parser@8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)':
dependencies:
- '@typescript-eslint/scope-manager': 8.12.2
- '@typescript-eslint/types': 8.12.2
- '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3)
- '@typescript-eslint/visitor-keys': 8.12.2
+ '@typescript-eslint/scope-manager': 8.14.0
+ '@typescript-eslint/types': 8.14.0
+ '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3)
+ '@typescript-eslint/visitor-keys': 8.14.0
debug: 4.3.7(supports-color@5.5.0)
eslint: 9.14.0(jiti@1.21.6)
optionalDependencies:
@@ -4309,15 +4329,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.12.2':
+ '@typescript-eslint/scope-manager@8.14.0':
dependencies:
- '@typescript-eslint/types': 8.12.2
- '@typescript-eslint/visitor-keys': 8.12.2
+ '@typescript-eslint/types': 8.14.0
+ '@typescript-eslint/visitor-keys': 8.14.0
- '@typescript-eslint/type-utils@8.12.2(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)':
+ '@typescript-eslint/type-utils@8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)':
dependencies:
- '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3)
- '@typescript-eslint/utils': 8.12.2(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
+ '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3)
+ '@typescript-eslint/utils': 8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
debug: 4.3.7(supports-color@5.5.0)
ts-api-utils: 1.4.0(typescript@5.6.3)
optionalDependencies:
@@ -4326,12 +4346,12 @@ snapshots:
- eslint
- supports-color
- '@typescript-eslint/types@8.12.2': {}
+ '@typescript-eslint/types@8.14.0': {}
- '@typescript-eslint/typescript-estree@8.12.2(typescript@5.6.3)':
+ '@typescript-eslint/typescript-estree@8.14.0(typescript@5.6.3)':
dependencies:
- '@typescript-eslint/types': 8.12.2
- '@typescript-eslint/visitor-keys': 8.12.2
+ '@typescript-eslint/types': 8.14.0
+ '@typescript-eslint/visitor-keys': 8.14.0
debug: 4.3.7(supports-color@5.5.0)
fast-glob: 3.3.2
is-glob: 4.0.3
@@ -4343,30 +4363,30 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.12.2(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)':
+ '@typescript-eslint/utils@8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)':
dependencies:
'@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@1.21.6))
- '@typescript-eslint/scope-manager': 8.12.2
- '@typescript-eslint/types': 8.12.2
- '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3)
+ '@typescript-eslint/scope-manager': 8.14.0
+ '@typescript-eslint/types': 8.14.0
+ '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3)
eslint: 9.14.0(jiti@1.21.6)
transitivePeerDependencies:
- supports-color
- typescript
- '@typescript-eslint/visitor-keys@8.12.2':
+ '@typescript-eslint/visitor-keys@8.14.0':
dependencies:
- '@typescript-eslint/types': 8.12.2
+ '@typescript-eslint/types': 8.14.0
eslint-visitor-keys: 3.4.3
- '@vitejs/plugin-react@4.3.3(vite@5.4.10(@types/node@22.8.7))':
+ '@vitejs/plugin-react@4.3.3(vite@5.4.11(@types/node@22.9.0))':
dependencies:
'@babel/core': 7.26.0
'@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0)
'@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0)
'@types/babel__core': 7.20.5
react-refresh: 0.14.2
- vite: 5.4.10(@types/node@22.8.7)
+ vite: 5.4.11(@types/node@22.9.0)
transitivePeerDependencies:
- supports-color
@@ -4479,14 +4499,14 @@ snapshots:
asynckit@0.4.0: {}
- autoprefixer@10.4.20(postcss@8.4.47):
+ autoprefixer@10.4.20(postcss@8.4.49):
dependencies:
browserslist: 4.24.2
- caniuse-lite: 1.0.30001677
+ caniuse-lite: 1.0.30001680
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.1.1
- postcss: 8.4.47
+ postcss: 8.4.49
postcss-value-parser: 4.2.0
available-typed-arrays@1.0.7:
@@ -4556,8 +4576,8 @@ snapshots:
browserslist@4.24.2:
dependencies:
- caniuse-lite: 1.0.30001677
- electron-to-chromium: 1.5.50
+ caniuse-lite: 1.0.30001680
+ electron-to-chromium: 1.5.57
node-releases: 2.0.18
update-browserslist-db: 1.1.1(browserslist@4.24.2)
@@ -4584,7 +4604,7 @@ snapshots:
camelcase@6.3.0: {}
- caniuse-lite@1.0.30001677: {}
+ caniuse-lite@1.0.30001680: {}
chai@5.1.2:
dependencies:
@@ -4618,7 +4638,7 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
- chromatic@11.16.5: {}
+ chromatic@11.18.1: {}
cliui@8.0.1:
dependencies:
@@ -4692,7 +4712,7 @@ snapshots:
dependencies:
cross-spawn: 7.0.5
- cross-spawn@7.0.3:
+ cross-spawn@7.0.5:
dependencies:
path-key: 3.1.1
shebang-command: 2.0.0
@@ -4784,7 +4804,7 @@ snapshots:
ee-first@1.1.1: {}
- electron-to-chromium@1.5.50: {}
+ electron-to-chromium@1.5.57: {}
emoji-regex@8.0.0: {}
@@ -4883,7 +4903,7 @@ snapshots:
eslint-plugin-storybook@0.11.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3):
dependencies:
'@storybook/csf': 0.1.11
- '@typescript-eslint/utils': 8.12.2(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
+ '@typescript-eslint/utils': 8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
eslint: 9.14.0(jiti@1.21.6)
ts-dedent: 2.2.0
transitivePeerDependencies:
@@ -4910,12 +4930,12 @@ snapshots:
'@eslint/plugin-kit': 0.2.2
'@humanfs/node': 0.16.6
'@humanwhocodes/module-importer': 1.0.1
- '@humanwhocodes/retry': 0.4.0
+ '@humanwhocodes/retry': 0.4.1
'@types/estree': 1.0.6
'@types/json-schema': 7.0.15
ajv: 6.12.6
chalk: 4.1.2
- cross-spawn: 7.0.3
+ cross-spawn: 7.0.5
debug: 4.3.7(supports-color@5.5.0)
escape-string-regexp: 4.0.0
eslint-scope: 8.2.0
@@ -5469,7 +5489,7 @@ snapshots:
bson: 6.9.0
mongodb-connection-string-url: 3.0.1
- mongoose@8.8.0:
+ mongoose@8.8.1:
dependencies:
bson: 6.9.0
kareem: 2.6.3
@@ -5547,7 +5567,7 @@ snapshots:
object-hash@3.0.0: {}
- object-inspect@1.13.2: {}
+ object-inspect@1.13.3: {}
on-finished@2.4.1:
dependencies:
@@ -5640,29 +5660,29 @@ snapshots:
possible-typed-array-names@1.0.0: {}
- postcss-import@15.1.0(postcss@8.4.47):
+ postcss-import@15.1.0(postcss@8.4.49):
dependencies:
- postcss: 8.4.47
+ postcss: 8.4.49
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.8
- postcss-js@4.0.1(postcss@8.4.47):
+ postcss-js@4.0.1(postcss@8.4.49):
dependencies:
camelcase-css: 2.0.1
- postcss: 8.4.47
+ postcss: 8.4.49
- postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)):
+ postcss-load-config@4.0.2(postcss@8.4.49)(ts-node@10.9.2(@types/node@22.9.0)(typescript@5.6.3)):
dependencies:
lilconfig: 3.1.2
yaml: 2.6.0
optionalDependencies:
- postcss: 8.4.47
- ts-node: 10.9.2(@types/node@22.8.7)(typescript@5.6.3)
+ postcss: 8.4.49
+ ts-node: 10.9.2(@types/node@22.9.0)(typescript@5.6.3)
- postcss-nested@6.2.0(postcss@8.4.47):
+ postcss-nested@6.2.0(postcss@8.4.49):
dependencies:
- postcss: 8.4.47
+ postcss: 8.4.49
postcss-selector-parser: 6.1.2
postcss-selector-parser@6.1.2:
@@ -5672,7 +5692,7 @@ snapshots:
postcss-value-parser@4.2.0: {}
- postcss@8.4.47:
+ postcss@8.4.49:
dependencies:
nanoid: 3.3.7
picocolors: 1.1.1
@@ -5707,7 +5727,9 @@ snapshots:
proxy-from-env@1.1.0: {}
- psl@1.9.0: {}
+ psl@1.10.0:
+ dependencies:
+ punycode: 2.3.1
pstree.remy@1.1.8: {}
@@ -5776,16 +5798,16 @@ snapshots:
react-refresh@0.14.2: {}
- react-router-dom@6.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ react-router-dom@6.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
- '@remix-run/router': 1.20.0
+ '@remix-run/router': 1.21.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- react-router: 6.27.0(react@18.3.1)
+ react-router: 6.28.0(react@18.3.1)
- react-router@6.27.0(react@18.3.1):
+ react-router@6.28.0(react@18.3.1):
dependencies:
- '@remix-run/router': 1.20.0
+ '@remix-run/router': 1.21.0
react: 18.3.1
react-spinners@0.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
@@ -5843,28 +5865,28 @@ snapshots:
reusify@1.0.4: {}
- rollup@4.24.4:
+ rollup@4.26.0:
dependencies:
'@types/estree': 1.0.6
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.24.4
- '@rollup/rollup-android-arm64': 4.24.4
- '@rollup/rollup-darwin-arm64': 4.24.4
- '@rollup/rollup-darwin-x64': 4.24.4
- '@rollup/rollup-freebsd-arm64': 4.24.4
- '@rollup/rollup-freebsd-x64': 4.24.4
- '@rollup/rollup-linux-arm-gnueabihf': 4.24.4
- '@rollup/rollup-linux-arm-musleabihf': 4.24.4
- '@rollup/rollup-linux-arm64-gnu': 4.24.4
- '@rollup/rollup-linux-arm64-musl': 4.24.4
- '@rollup/rollup-linux-powerpc64le-gnu': 4.24.4
- '@rollup/rollup-linux-riscv64-gnu': 4.24.4
- '@rollup/rollup-linux-s390x-gnu': 4.24.4
- '@rollup/rollup-linux-x64-gnu': 4.24.4
- '@rollup/rollup-linux-x64-musl': 4.24.4
- '@rollup/rollup-win32-arm64-msvc': 4.24.4
- '@rollup/rollup-win32-ia32-msvc': 4.24.4
- '@rollup/rollup-win32-x64-msvc': 4.24.4
+ '@rollup/rollup-android-arm-eabi': 4.26.0
+ '@rollup/rollup-android-arm64': 4.26.0
+ '@rollup/rollup-darwin-arm64': 4.26.0
+ '@rollup/rollup-darwin-x64': 4.26.0
+ '@rollup/rollup-freebsd-arm64': 4.26.0
+ '@rollup/rollup-freebsd-x64': 4.26.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.26.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.26.0
+ '@rollup/rollup-linux-arm64-gnu': 4.26.0
+ '@rollup/rollup-linux-arm64-musl': 4.26.0
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.26.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.26.0
+ '@rollup/rollup-linux-s390x-gnu': 4.26.0
+ '@rollup/rollup-linux-x64-gnu': 4.26.0
+ '@rollup/rollup-linux-x64-musl': 4.26.0
+ '@rollup/rollup-win32-arm64-msvc': 4.26.0
+ '@rollup/rollup-win32-ia32-msvc': 4.26.0
+ '@rollup/rollup-win32-x64-msvc': 4.26.0
fsevents: 2.3.3
rrweb-cssom@0.6.0: {}
@@ -5944,7 +5966,7 @@ snapshots:
call-bind: 1.0.7
es-errors: 1.3.0
get-intrinsic: 1.2.4
- object-inspect: 1.13.2
+ object-inspect: 1.13.3
sift@17.1.3: {}
@@ -5981,9 +6003,9 @@ snapshots:
statuses@2.0.1: {}
- storybook@8.4.1(prettier@3.3.3):
+ storybook@8.4.2(prettier@3.3.3):
dependencies:
- '@storybook/core': 8.4.1(prettier@3.3.3)
+ '@storybook/core': 8.4.2(prettier@3.3.3)
optionalDependencies:
prettier: 3.3.3
transitivePeerDependencies:
@@ -6073,16 +6095,18 @@ snapshots:
transitivePeerDependencies:
- openapi-types
- swagger-ui-dist@5.17.14: {}
+ swagger-ui-dist@5.18.2:
+ dependencies:
+ '@scarf/scarf': 1.4.0
swagger-ui-express@5.0.1(express@4.21.1):
dependencies:
express: 4.21.1
- swagger-ui-dist: 5.17.14
+ swagger-ui-dist: 5.18.2
symbol-tree@3.2.4: {}
- tailwindcss@3.4.14(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)):
+ tailwindcss@3.4.14(ts-node@10.9.2(@types/node@22.9.0)(typescript@5.6.3)):
dependencies:
'@alloc/quick-lru': 5.2.0
arg: 5.0.2
@@ -6098,11 +6122,11 @@ snapshots:
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.1.1
- postcss: 8.4.47
- postcss-import: 15.1.0(postcss@8.4.47)
- postcss-js: 4.0.1(postcss@8.4.47)
- postcss-load-config: 4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3))
- postcss-nested: 6.2.0(postcss@8.4.47)
+ postcss: 8.4.49
+ postcss-import: 15.1.0(postcss@8.4.49)
+ postcss-js: 4.0.1(postcss@8.4.49)
+ postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.2(@types/node@22.9.0)(typescript@5.6.3))
+ postcss-nested: 6.2.0(postcss@8.4.49)
postcss-selector-parser: 6.1.2
resolve: 1.22.8
sucrase: 3.35.0
@@ -6135,7 +6159,7 @@ snapshots:
tough-cookie@4.1.4:
dependencies:
- psl: 1.9.0
+ psl: 1.10.0
punycode: 2.3.1
universalify: 0.2.0
url-parse: 1.5.10
@@ -6158,14 +6182,14 @@ snapshots:
ts-interface-checker@0.1.13: {}
- ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3):
+ ts-node@10.9.2(@types/node@22.9.0)(typescript@5.6.3):
dependencies:
'@cspotcode/source-map-support': 0.8.1
'@tsconfig/node10': 1.0.11
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
- '@types/node': 22.8.7
+ '@types/node': 22.9.0
acorn: 8.14.0
acorn-walk: 8.3.4
arg: 4.1.3
@@ -6212,11 +6236,11 @@ snapshots:
media-typer: 0.3.0
mime-types: 2.1.35
- typescript-eslint@8.12.2(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3):
+ typescript-eslint@8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
- '@typescript-eslint/parser': 8.12.2(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
- '@typescript-eslint/utils': 8.12.2(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
+ '@typescript-eslint/eslint-plugin': 8.14.0(@typescript-eslint/parser@8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
+ '@typescript-eslint/parser': 8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
+ '@typescript-eslint/utils': 8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)
optionalDependencies:
typescript: 5.6.3
transitivePeerDependencies:
@@ -6255,6 +6279,11 @@ snapshots:
querystringify: 2.2.0
requires-port: 1.0.0
+ use-sync-external-store@1.2.2(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ optional: true
+
util-deprecate@1.0.2: {}
util@0.12.5:
@@ -6267,6 +6296,8 @@ snapshots:
utils-merge@1.0.1: {}
+ uuid@11.0.3: {}
+
uuid@9.0.1: {}
v8-compile-cache-lib@3.0.1: {}
@@ -6275,24 +6306,24 @@ snapshots:
vary@1.1.2: {}
- vite-plugin-svgr@4.3.0(rollup@4.24.4)(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.7)):
+ vite-plugin-svgr@4.3.0(rollup@4.26.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.9.0)):
dependencies:
- '@rollup/pluginutils': 5.1.3(rollup@4.24.4)
+ '@rollup/pluginutils': 5.1.3(rollup@4.26.0)
'@svgr/core': 8.1.0(typescript@5.6.3)
'@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.6.3))
- vite: 5.4.10(@types/node@22.8.7)
+ vite: 5.4.11(@types/node@22.9.0)
transitivePeerDependencies:
- rollup
- supports-color
- typescript
- vite@5.4.10(@types/node@22.8.7):
+ vite@5.4.11(@types/node@22.9.0):
dependencies:
esbuild: 0.21.5
- postcss: 8.4.47
- rollup: 4.24.4
+ postcss: 8.4.49
+ rollup: 4.26.0
optionalDependencies:
- '@types/node': 22.8.7
+ '@types/node': 22.9.0
fsevents: 2.3.3
w3c-xmlserializer@5.0.0:
@@ -6393,7 +6424,8 @@ snapshots:
optionalDependencies:
commander: 9.5.0
- zustand@5.0.1(@types/react@18.3.12)(react@18.3.1):
+ zustand@5.0.1(@types/react@18.3.12)(react@18.3.1)(use-sync-external-store@1.2.2(react@18.3.1)):
optionalDependencies:
'@types/react': 18.3.12
react: 18.3.1
+ use-sync-external-store: 1.2.2(react@18.3.1)