From 108d5715d22ffc23c9560a06c16863d016c91e3c Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Tue, 22 Jul 2025 16:42:07 +0900 Subject: [PATCH 01/27] =?UTF-8?q?refactor:=20COMMUNITY=5FQUERY=5FKEY?= =?UTF-8?q?=EB=A1=9C=20=EC=BF=BC=EB=A6=AC=20=ED=82=A4=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?=20=EB=B0=8F=20=EB=B6=88=ED=95=84=EC=9A=94=ED=95=9C=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/shared/api/domain/community/queries.ts | 15 ++++++--------- apps/client/src/shared/api/keys/query-key.ts | 13 ++++++------- .../login/components/login-slide/login-slide.tsx | 1 - 3 files changed, 12 insertions(+), 17 deletions(-) diff --git a/apps/client/src/shared/api/domain/community/queries.ts b/apps/client/src/shared/api/domain/community/queries.ts index 834f5600..eccad995 100644 --- a/apps/client/src/shared/api/domain/community/queries.ts +++ b/apps/client/src/shared/api/domain/community/queries.ts @@ -6,10 +6,7 @@ import { import { END_POINT } from '@shared/api/config/end-point'; import { api } from '@shared/api/config/instance'; -import { - COMMUNITY_QUERY_KEY, - POST_FEED_DETAIL_KEY, -} from '@shared/api/keys/query-key'; +import { COMMUNITY_QUERY_KEY } from '@shared/api/keys/query-key'; import { CommentDeleteResponse, CommentPostResponse, @@ -26,7 +23,7 @@ import { export const POST_FEED_DETAIL_OPTIONS = { DETAIL: (postId: string) => { return queryOptions({ - queryKey: POST_FEED_DETAIL_KEY.DETAIL(postId).concat(), + queryKey: COMMUNITY_QUERY_KEY.FEED_DETAIL(postId).concat(), queryFn: () => getFeedDeatil(postId), }); }, @@ -65,7 +62,7 @@ export const POST_COMMENT = (onSuccessCallback?: () => void) => { queryKey: COMMUNITY_QUERY_KEY.COMMENTS(variables.postId), }); queryClient.invalidateQueries({ - queryKey: POST_FEED_DETAIL_KEY.DETAIL(variables.postId), + queryKey: COMMUNITY_QUERY_KEY.FEED_DETAIL(variables.postId), }); if (onSuccessCallback) { onSuccessCallback(); @@ -116,7 +113,7 @@ export const PUT_FEED = (onSuccessCallback?: () => void) => { }) => putFeed(postId, body), onSuccess: async (_data, variables) => { await queyrClient.invalidateQueries({ - queryKey: POST_FEED_DETAIL_KEY.DETAIL(variables.postId), + queryKey: COMMUNITY_QUERY_KEY.FEED_DETAIL(variables.postId), }); if (onSuccessCallback) { @@ -132,7 +129,7 @@ export const COMMUNITY_QUERY_OPTIONS = { queryFn: ({ pageParam = 0 }) => getAllComments(postId, { pageParam }), }), POSTS: () => ({ - queryKey: POST_FEED_DETAIL_KEY.FEED(), + queryKey: COMMUNITY_QUERY_KEY.FEED_PREVIEW(), queryFn: ({ pageParam = 0 }) => getAllPosts({ pageParam: pageParam as number }), }), @@ -213,7 +210,7 @@ export const useDeleteComment = ( queryKey: COMMUNITY_QUERY_KEY.COMMENTS(postId), }); await queryClient.invalidateQueries({ - queryKey: POST_FEED_DETAIL_KEY.DETAIL(postId), + queryKey: COMMUNITY_QUERY_KEY.FEED_DETAIL(postId), }); if (onSuccessCallback) { diff --git a/apps/client/src/shared/api/keys/query-key.ts b/apps/client/src/shared/api/keys/query-key.ts index bebaa5a8..c146e7e9 100644 --- a/apps/client/src/shared/api/keys/query-key.ts +++ b/apps/client/src/shared/api/keys/query-key.ts @@ -22,7 +22,12 @@ export const USER_QUERY_KEY = { export const COMMUNITY_QUERY_KEY = { ALL: ['community'], - FEED: () => [...COMMUNITY_QUERY_KEY.ALL, 'feed'], + FEED_PREVIEW: () => [...COMMUNITY_QUERY_KEY.ALL, 'feed'], + FEED_DETAIL: (postId: string) => [ + ...COMMUNITY_QUERY_KEY.ALL, + 'detail', + postId, + ], COMMENTS: (postId?: string) => [ ...COMMUNITY_QUERY_KEY.ALL, 'comment', @@ -34,9 +39,3 @@ export const HOME_QUERY_KEY = { ALL: ['home'], REPORT_SUMMARY: () => [...HOME_QUERY_KEY.ALL, 'report_summary'], } as const; - -export const POST_FEED_DETAIL_KEY = { - ALL: ['details'], - DETAIL: (postId: string) => [...POST_FEED_DETAIL_KEY.ALL, 'detail', postId], - FEED: () => [...POST_FEED_DETAIL_KEY.ALL, 'feed'], -}; diff --git a/apps/client/src/widgets/login/components/login-slide/login-slide.tsx b/apps/client/src/widgets/login/components/login-slide/login-slide.tsx index 4872b400..8d6370b5 100644 --- a/apps/client/src/widgets/login/components/login-slide/login-slide.tsx +++ b/apps/client/src/widgets/login/components/login-slide/login-slide.tsx @@ -24,7 +24,6 @@ const LoginSlide = () => {
Date: Tue, 22 Jul 2025 23:54:17 +0900 Subject: [PATCH 02/27] =?UTF-8?q?feat:=20README=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=ED=95=84=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 79 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 55 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index b8a64214..77fa63a3 100644 --- a/README.md +++ b/README.md @@ -24,9 +24,9 @@ #### 보험 추천을 위한 정보 입력 -> 꼭 맞는 보험 추천을 위해 사용자 -특성과 니즈를 파악하고, 필수적인 -정보만 수집해 간편성을 높여요. +> 꼭 맞는 보험 추천을 위해 사용자 +> 특성과 니즈를 파악하고, 필수적인 +> 정보만 수집해 간편성을 높여요.
정보입력1 @@ -39,9 +39,10 @@ ### 🏠 홈 #### 홈화면 + > 보험 리포트 요약부터 -보험 tip까지 한눈에 -확인할 수 있어요. +> 보험 tip까지 한눈에 +> 확인할 수 있어요.
image @@ -61,6 +62,7 @@ ### 💬 커뮤니티 #### 보험에 대한 정보는 커뮤니티에서 + > 영업 활동은 제한되고, 사용자끼리 의미 있는 정보와 경험을 자유롭게 나눌 수 있어요.
@@ -68,51 +70,49 @@ image
---- +--- -### 보험 추천 리포트 +### 보험 추천 리포트 #### 보험 추천 리포트 -> 추천 이유부터 보장 항목 구성까지,
 핵심 내용을 한눈에 이해할 수 있도록 -체계적으로 정리했어요. + +> 추천 이유부터 보장 항목 구성까지, 핵심 내용을 한눈에 이해할 수 있도록 +> 체계적으로 정리했어요.
image image
- - - ## TEAM-BOFIT
-
- 지욱 +
+ 지욱
-
- 민정 +
+ 민정
-
- 수정 +
+ 수정
-
- 혜린 +
+ 혜린
-
- 지우 +
+ 지우
-
- 정훈 +
+ 정훈
@@ -710,6 +710,37 @@ const Button: FC = ({ text, onClick }) => { ### 📸 BOFIT-CLIENT + + + + + + + + + + + +
+
+ 지욱 +
+
+ 민정 +
+
+ 수정 +
+
+ 혜린 +
+
+ 지우 +
+
+ 정훈 +
+
image
From c2aad8564b219f65e600cfc4ca2d09af7a456b64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B3=BD=EC=A7=80=EC=9A=B1?= <99489686+gwagjiug@users.noreply.github.com> Date: Wed, 23 Jul 2025 21:14:58 +0900 Subject: [PATCH 03/27] Update README.md --- README.md | 111 +++++++++--------------------------------------------- 1 file changed, 17 insertions(+), 94 deletions(-) diff --git a/README.md b/README.md index 77fa63a3..e595ecc6 100644 --- a/README.md +++ b/README.md @@ -1,88 +1,38 @@ ## BOFIT - -복잡한 보험, 이제 내가 직접 이해하고 선택해요. 보핏과 함께 ! - -- 개인 맞춤 추천 : 꼭 필요한 보장 중심으로 객관적인 보험 추천 -- 쉬운 이해를 위한 리포트 : 복잡한 보험 정보를 시각화하고 친절한 설명을 담은 리포트 제공 -- 순수 정보 공유 커뮤니티 : 영업활동이 제한된 공간에서 신뢰할 수 있는 정보 교환 +보핏표지 --- -## 📌 서비스 소개 - ---- - -### 🔑 로그인 - -
- image -
- ---- - -### 📝 정보 입력 - -#### 보험 추천을 위한 정보 입력 +복잡한 보험, 이제 내가 직접 이해하고 선택해요. 보핏과 함께 ! -> 꼭 맞는 보험 추천을 위해 사용자 -> 특성과 니즈를 파악하고, 필수적인 -> 정보만 수집해 간편성을 높여요. - -
- 정보입력1 - 정보입력2 - 정보입력3 -
+1. 개인 맞춤 추천 : 꼭 필요한 보장 중심으로 객관적인 보험 추천 +2. 쉬운 이해를 위한 리포트 : 복잡한 보험 정보를 시각화하고 친절한 설명을 담은 리포트 제공 +3. 순수 정보 공유 커뮤니티 : 영업활동이 제한된 공간에서 신뢰할 수 있는 정보 교환 --- -### 🏠 홈 +## 📌 서비스 소개 +painpoint1 -#### 홈화면 +painpoint2 -> 보험 리포트 요약부터 -> 보험 tip까지 한눈에 -> 확인할 수 있어요. +painpoint3 -
- image -
---- +보핏정보입력 +보핏정보입력2 -### 👤 마이 페이지 +보핏홈화면 -
- image - image -
- ---- -### 💬 커뮤니티 +보핏보험추천리포트 -#### 보험에 대한 정보는 커뮤니티에서 +보핏커뮤 -> 영업 활동은 제한되고, 사용자끼리 의미 있는 정보와 경험을 자유롭게 나눌 수 있어요. -
- 커뮤니티3 - image -
--- -### 보험 추천 리포트 - -#### 보험 추천 리포트 - -> 추천 이유부터 보장 항목 구성까지, 핵심 내용을 한눈에 이해할 수 있도록 -> 체계적으로 정리했어요. - -
- image - image -
## TEAM-BOFIT @@ -117,6 +67,9 @@ + + + --- ## 🚀 BOFIT 팀 기술 스택 @@ -710,36 +663,6 @@ const Button: FC = ({ text, onClick }) => { ### 📸 BOFIT-CLIENT - - - - - - - - - - - -
-
- 지욱 -
-
- 민정 -
-
- 수정 -
-
- 혜린 -
-
- 지우 -
-
- 정훈 -
image From 2a41e067b78e7eee2273c409738d623444ca299f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B3=BD=EC=A7=80=EC=9A=B1?= <99489686+gwagjiug@users.noreply.github.com> Date: Wed, 23 Jul 2025 21:20:52 +0900 Subject: [PATCH 04/27] Update README.md --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index e595ecc6..467cfa41 100644 --- a/README.md +++ b/README.md @@ -39,30 +39,30 @@
-
- 지욱 +
+ 지욱
-
- 민정 +
+ 민정
-
- 수정 +
+ 수정
-
- 혜린 +
+ 혜린
-
- 지우 +
+ 지우
-
- 정훈 +
+ 정훈
From b2c463e3629b7691320c35f73e0147136dcd9472 Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Wed, 23 Jul 2025 22:01:31 +0900 Subject: [PATCH 05/27] =?UTF-8?q?fix:=20tanstack/react-query=20=EB=B0=8F?= =?UTF-8?q?=20@tanstack/react-query-devtools=20=EB=B2=84=EC=A0=84=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/client/package.json | 4 +- pnpm-lock.yaml | 1305 +++++++++++++++++++++++++++++--------- 2 files changed, 1021 insertions(+), 288 deletions(-) diff --git a/apps/client/package.json b/apps/client/package.json index d0bee164..36c7fc89 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -11,8 +11,8 @@ }, "dependencies": { "@bds/ui": "workspace:*", - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "@toss/ky": "^1.2.1", "@types/react": "^19.1.8", "@types/react-dom": "^19.1.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aee7ac72..306fcb8c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: devDependencies: '@commitlint/cli': specifier: ^19.8.1 - version: 19.8.1(@types/node@20.19.4)(typescript@5.8.3) + version: 19.8.1(@types/node@24.1.0)(typescript@5.8.3) '@commitlint/config-conventional': specifier: ^19.8.1 version: 19.8.1 @@ -34,31 +34,31 @@ importers: version: 1.6.5(@vanilla-extract/css@1.17.4) '@vanilla-extract/vite-plugin': specifier: ^5.1.0 - version: 5.1.0(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)) + version: 5.1.0(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3)(vite@7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3)) '@vitejs/plugin-react': specifier: ^4.5.2 - version: 4.6.0(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)) + version: 4.7.0(vite@7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3)) '@vitejs/plugin-react-swc': specifier: ^3.10.2 - version: 3.10.2(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)) + version: 3.11.0(vite@7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3)) globals: specifier: ^16.2.0 version: 16.3.0 lefthook: specifier: ^1.11.14 - version: 1.11.16 + version: 1.12.2 prettier: specifier: ^3.6.1 version: 3.6.2 turbo: specifier: ^2.5.4 - version: 2.5.4 + version: 2.5.5 typescript: specifier: ~5.8.3 version: 5.8.3 vite: specifier: ^7.0.0 - version: 7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3) + version: 7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3) apps/client: dependencies: @@ -66,11 +66,11 @@ importers: specifier: workspace:* version: link:../../packages/bds-ui '@tanstack/react-query': - specifier: ^5.81.5 - version: 5.81.5(react@19.1.0) + specifier: ^5.83.0 + version: 5.83.0(react@19.1.0) '@tanstack/react-query-devtools': - specifier: ^5.81.5 - version: 5.81.5(@tanstack/react-query@5.81.5(react@19.1.0))(react@19.1.0) + specifier: ^5.83.0 + version: 5.83.0(@tanstack/react-query@5.83.0(react@19.1.0))(react@19.1.0) '@toss/ky': specifier: ^1.2.1 version: 1.2.1 @@ -94,10 +94,10 @@ importers: version: 6.0.0(react@19.1.0) react-router: specifier: ^7.6.3 - version: 7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 7.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-router-dom: specifier: ^7.6.3 - version: 7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 7.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) swiper: specifier: ^11.2.10 version: 11.2.10 @@ -110,7 +110,7 @@ importers: version: link:../../config/typescript '@pivanov/vite-plugin-svg-sprite': specifier: ^3.0.0 - version: 3.0.0(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)) + version: 3.1.2(vite@7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3)) '@typescript-eslint/eslint-plugin': specifier: ^5.59.0 version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) @@ -128,10 +128,10 @@ importers: version: 1.6.5(@vanilla-extract/css@1.17.4) '@vanilla-extract/vite-plugin': specifier: '*' - version: 5.1.0(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)) + version: 5.1.0(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3)(vite@7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3)) '@vitejs/plugin-react': specifier: '*' - version: 4.6.0(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)) + version: 4.7.0(vite@7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3)) eslint: specifier: ^8.44.0 version: 8.57.1 @@ -146,10 +146,10 @@ importers: version: 5.8.3 vite: specifier: '*' - version: 7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3) + version: 7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)) + version: 5.1.4(typescript@5.8.3)(vite@7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3)) config/eslint: devDependencies: @@ -164,16 +164,16 @@ importers: version: 8.57.1 eslint-config-prettier: specifier: ^10.1.5 - version: 10.1.5(eslint@8.57.1) + version: 10.1.8(eslint@8.57.1) eslint-config-turbo: specifier: ^2.5.4 - version: 2.5.4(eslint@8.57.1)(turbo@2.5.4) + version: 2.5.5(eslint@8.57.1)(turbo@2.5.5) eslint-plugin-only-warn: specifier: ^1.1.0 version: 1.1.0 eslint-plugin-prettier: specifier: ^5.5.1 - version: 5.5.1(eslint-config-prettier@10.1.5(eslint@8.57.1))(eslint@8.57.1)(prettier@3.6.2) + version: 5.5.3(eslint-config-prettier@10.1.8(eslint@8.57.1))(eslint@8.57.1)(prettier@3.6.2) eslint-plugin-react: specifier: ^7.37.5 version: 7.37.5(eslint@8.57.1) @@ -209,7 +209,7 @@ importers: version: link:../../config/typescript '@pivanov/vite-plugin-svg-sprite': specifier: ^3.0.0 - version: 3.0.0(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)) + version: 3.1.2(vite@7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3)) '@storybook/addon-a11y': specifier: 8.6.14 version: 8.6.14(storybook@8.6.14(prettier@3.6.2)) @@ -233,13 +233,13 @@ importers: version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.6.2)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(prettier@3.6.2))(typescript@5.8.3) '@storybook/react-vite': specifier: 8.6.14 - version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.6.2)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.44.1)(storybook@8.6.14(prettier@3.6.2))(typescript@5.8.3)(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)) + version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.6.2)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.45.1)(storybook@8.6.14(prettier@3.6.2))(typescript@5.8.3)(vite@7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3)) '@turbo/gen': specifier: ^1.12.4 - version: 1.13.4(@swc/core@1.12.9)(@types/node@20.19.4)(typescript@5.8.3) + version: 1.13.4(@swc/core@1.13.2)(@types/node@20.19.9)(typescript@5.8.3) '@types/node': specifier: ^20.11.24 - version: 20.19.4 + version: 20.19.9 '@types/react': specifier: ^19.1.8 version: 19.1.8 @@ -257,10 +257,10 @@ importers: version: 1.6.5(@vanilla-extract/css@1.17.4) '@vanilla-extract/vite-plugin': specifier: '*' - version: 5.1.0(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)) + version: 5.1.0(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3)(vite@7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3)) '@vitejs/plugin-react': specifier: '*' - version: 4.6.0(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)) + version: 4.7.0(vite@7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3)) chromatic: specifier: ^13.1.2 version: 13.1.2 @@ -275,7 +275,7 @@ importers: version: 5.8.3 vite: specifier: '*' - version: 7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3) + version: 7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3) packages: '@adobe/css-tools@4.4.3': @@ -454,6 +454,13 @@ packages: } engines: { node: '>=6.9.0' } + '@babel/types@7.28.1': + resolution: + { + integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==, + } + engines: { node: '>=6.9.0' } + '@commitlint/cli@19.8.1': resolution: { @@ -596,6 +603,15 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.25.8': + resolution: + { + integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==, + } + engines: { node: '>=18' } + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.25.5': resolution: { @@ -605,6 +621,15 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.25.8': + resolution: + { + integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==, + } + engines: { node: '>=18' } + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.25.5': resolution: { @@ -614,6 +639,15 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.25.8': + resolution: + { + integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==, + } + engines: { node: '>=18' } + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.25.5': resolution: { @@ -623,6 +657,15 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.25.8': + resolution: + { + integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==, + } + engines: { node: '>=18' } + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.25.5': resolution: { @@ -632,6 +675,15 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.25.8': + resolution: + { + integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==, + } + engines: { node: '>=18' } + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.25.5': resolution: { @@ -641,6 +693,15 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.25.8': + resolution: + { + integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==, + } + engines: { node: '>=18' } + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.25.5': resolution: { @@ -650,6 +711,15 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.25.8': + resolution: + { + integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==, + } + engines: { node: '>=18' } + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.25.5': resolution: { @@ -659,6 +729,15 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.25.8': + resolution: + { + integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==, + } + engines: { node: '>=18' } + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.25.5': resolution: { @@ -668,6 +747,15 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.25.8': + resolution: + { + integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==, + } + engines: { node: '>=18' } + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.25.5': resolution: { @@ -677,6 +765,15 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.25.8': + resolution: + { + integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==, + } + engines: { node: '>=18' } + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.25.5': resolution: { @@ -686,6 +783,15 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.25.8': + resolution: + { + integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==, + } + engines: { node: '>=18' } + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.25.5': resolution: { @@ -695,6 +801,15 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.25.8': + resolution: + { + integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==, + } + engines: { node: '>=18' } + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.25.5': resolution: { @@ -704,6 +819,15 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.25.8': + resolution: + { + integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==, + } + engines: { node: '>=18' } + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.25.5': resolution: { @@ -713,6 +837,15 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.25.8': + resolution: + { + integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==, + } + engines: { node: '>=18' } + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.25.5': resolution: { @@ -722,6 +855,15 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.25.8': + resolution: + { + integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==, + } + engines: { node: '>=18' } + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.25.5': resolution: { @@ -731,6 +873,15 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.25.8': + resolution: + { + integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==, + } + engines: { node: '>=18' } + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.25.5': resolution: { @@ -740,6 +891,15 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.25.8': + resolution: + { + integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==, + } + engines: { node: '>=18' } + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.25.5': resolution: { @@ -749,6 +909,15 @@ packages: cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.25.8': + resolution: + { + integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==, + } + engines: { node: '>=18' } + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.25.5': resolution: { @@ -758,6 +927,15 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.25.8': + resolution: + { + integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==, + } + engines: { node: '>=18' } + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.25.5': resolution: { @@ -767,6 +945,15 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.25.8': + resolution: + { + integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==, + } + engines: { node: '>=18' } + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.25.5': resolution: { @@ -776,6 +963,24 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.25.8': + resolution: + { + integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==, + } + engines: { node: '>=18' } + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.25.8': + resolution: + { + integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==, + } + engines: { node: '>=18' } + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.25.5': resolution: { @@ -785,6 +990,15 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.25.8': + resolution: + { + integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==, + } + engines: { node: '>=18' } + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.25.5': resolution: { @@ -794,6 +1008,15 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.25.8': + resolution: + { + integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==, + } + engines: { node: '>=18' } + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.25.5': resolution: { @@ -803,6 +1026,15 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.25.8': + resolution: + { + integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==, + } + engines: { node: '>=18' } + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.25.5': resolution: { @@ -812,6 +1044,15 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.25.8': + resolution: + { + integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==, + } + engines: { node: '>=18' } + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.7.0': resolution: { @@ -944,13 +1185,13 @@ packages: } engines: { node: '>= 8' } - '@pivanov/vite-plugin-svg-sprite@3.0.0': + '@pivanov/vite-plugin-svg-sprite@3.1.2': resolution: { - integrity: sha512-XQWGmg3xTanQWnpwXqw9d5b4Un2Qij5vXsxmN3av3A9+YuJDhqPOlVcQFwf1JwRIsAEW66Yk7nS9SYtv/UfbCg==, + integrity: sha512-1vMY1pTZcfiGcAmJ4k7pWI90IXAaoNq/hRZuyJY1F2QHulc27+63S+AJIKVDqerE+xZh6bpUTMqKyWb25/tQnw==, } peerDependencies: - vite: ^2 || ^3 || ^4 || ^5 || ^6 + vite: ^2 || ^3 || ^4 || ^5 || ^6 || ^7 '@pkgjs/parseargs@0.11.0': resolution: @@ -985,16 +1226,10 @@ packages: } engines: { node: '>=18.17.0', npm: '>=9.5.0' } - '@rolldown/pluginutils@1.0.0-beta.11': + '@rolldown/pluginutils@1.0.0-beta.27': resolution: { - integrity: sha512-L/gAA/hyCSuzTF1ftlzUSI/IKr2POHsv1Dd78GfqkR83KMNuswWD61JxGV2L7nRwBBBSDr6R1gCkdTmoN7W4ag==, - } - - '@rolldown/pluginutils@1.0.0-beta.19': - resolution: - { - integrity: sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==, + integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==, } '@rollup/pluginutils@5.2.0': @@ -1017,6 +1252,14 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.45.1': + resolution: + { + integrity: sha512-NEySIFvMY0ZQO+utJkgoMiCAjMrGvnbDLHvcmlA33UXJpYBCvlBEbMMtV837uCkS+plG2umfhn0T5mMAxGrlRA==, + } + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.44.1': resolution: { @@ -1025,6 +1268,14 @@ packages: cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.45.1': + resolution: + { + integrity: sha512-ujQ+sMXJkg4LRJaYreaVx7Z/VMgBBd89wGS4qMrdtfUFZ+TSY5Rs9asgjitLwzeIbhwdEhyj29zhst3L1lKsRQ==, + } + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.44.1': resolution: { @@ -1033,6 +1284,14 @@ packages: cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.45.1': + resolution: + { + integrity: sha512-FSncqHvqTm3lC6Y13xncsdOYfxGSLnP+73k815EfNmpewPs+EyM49haPS105Rh4aF5mJKywk9X0ogzLXZzN9lA==, + } + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.44.1': resolution: { @@ -1041,6 +1300,14 @@ packages: cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.45.1': + resolution: + { + integrity: sha512-2/vVn/husP5XI7Fsf/RlhDaQJ7x9zjvC81anIVbr4b/f0xtSmXQTFcGIQ/B1cXIYM6h2nAhJkdMHTnD7OtQ9Og==, + } + cpu: [x64] + os: [darwin] + '@rollup/rollup-freebsd-arm64@4.44.1': resolution: { @@ -1049,6 +1316,14 @@ packages: cpu: [arm64] os: [freebsd] + '@rollup/rollup-freebsd-arm64@4.45.1': + resolution: + { + integrity: sha512-4g1kaDxQItZsrkVTdYQ0bxu4ZIQ32cotoQbmsAnW1jAE4XCMbcBPDirX5fyUzdhVCKgPcrwWuucI8yrVRBw2+g==, + } + cpu: [arm64] + os: [freebsd] + '@rollup/rollup-freebsd-x64@4.44.1': resolution: { @@ -1057,6 +1332,14 @@ packages: cpu: [x64] os: [freebsd] + '@rollup/rollup-freebsd-x64@4.45.1': + resolution: + { + integrity: sha512-L/6JsfiL74i3uK1Ti2ZFSNsp5NMiM4/kbbGEcOCps99aZx3g8SJMO1/9Y0n/qKlWZfn6sScf98lEOUe2mBvW9A==, + } + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.44.1': resolution: { @@ -1065,6 +1348,14 @@ packages: cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.45.1': + resolution: + { + integrity: sha512-RkdOTu2jK7brlu+ZwjMIZfdV2sSYHK2qR08FUWcIoqJC2eywHbXr0L8T/pONFwkGukQqERDheaGTeedG+rra6Q==, + } + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.44.1': resolution: { @@ -1073,6 +1364,14 @@ packages: cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.45.1': + resolution: + { + integrity: sha512-3kJ8pgfBt6CIIr1o+HQA7OZ9mp/zDk3ctekGl9qn/pRBgrRgfwiffaUmqioUGN9hv0OHv2gxmvdKOkARCtRb8Q==, + } + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.44.1': resolution: { @@ -1081,6 +1380,14 @@ packages: cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.45.1': + resolution: + { + integrity: sha512-k3dOKCfIVixWjG7OXTCOmDfJj3vbdhN0QYEqB+OuGArOChek22hn7Uy5A/gTDNAcCy5v2YcXRJ/Qcnm4/ma1xw==, + } + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.44.1': resolution: { @@ -1089,6 +1396,14 @@ packages: cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.45.1': + resolution: + { + integrity: sha512-PmI1vxQetnM58ZmDFl9/Uk2lpBBby6B6rF4muJc65uZbxCs0EA7hhKCk2PKlmZKuyVSHAyIw3+/SiuMLxKxWog==, + } + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-loongarch64-gnu@4.44.1': resolution: { @@ -1097,6 +1412,14 @@ packages: cpu: [loong64] os: [linux] + '@rollup/rollup-linux-loongarch64-gnu@4.45.1': + resolution: + { + integrity: sha512-9UmI0VzGmNJ28ibHW2GpE2nF0PBQqsyiS4kcJ5vK+wuwGnV5RlqdczVocDSUfGX/Na7/XINRVoUgJyFIgipoRg==, + } + cpu: [loong64] + os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.44.1': resolution: { @@ -1105,6 +1428,14 @@ packages: cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.45.1': + resolution: + { + integrity: sha512-7nR2KY8oEOUTD3pBAxIBBbZr0U7U+R9HDTPNy+5nVVHDXI4ikYniH1oxQz9VoB5PbBU1CZuDGHkLJkd3zLMWsg==, + } + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.44.1': resolution: { @@ -1113,6 +1444,14 @@ packages: cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.45.1': + resolution: + { + integrity: sha512-nlcl3jgUultKROfZijKjRQLUu9Ma0PeNv/VFHkZiKbXTBQXhpytS8CIj5/NfBeECZtY2FJQubm6ltIxm/ftxpw==, + } + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-riscv64-musl@4.44.1': resolution: { @@ -1121,6 +1460,14 @@ packages: cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-musl@4.45.1': + resolution: + { + integrity: sha512-HJV65KLS51rW0VY6rvZkiieiBnurSzpzore1bMKAhunQiECPuxsROvyeaot/tcK3A3aGnI+qTHqisrpSgQrpgA==, + } + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.44.1': resolution: { @@ -1129,6 +1476,14 @@ packages: cpu: [s390x] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.45.1': + resolution: + { + integrity: sha512-NITBOCv3Qqc6hhwFt7jLV78VEO/il4YcBzoMGGNxznLgRQf43VQDae0aAzKiBeEPIxnDrACiMgbqjuihx08OOw==, + } + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.44.1': resolution: { @@ -1137,6 +1492,14 @@ packages: cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.45.1': + resolution: + { + integrity: sha512-+E/lYl6qu1zqgPEnTrs4WysQtvc/Sh4fC2nByfFExqgYrqkKWp1tWIbe+ELhixnenSpBbLXNi6vbEEJ8M7fiHw==, + } + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.44.1': resolution: { @@ -1145,10 +1508,26 @@ packages: cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.44.1': + '@rollup/rollup-linux-x64-musl@4.45.1': + resolution: + { + integrity: sha512-a6WIAp89p3kpNoYStITT9RbTbTnqarU7D8N8F2CV+4Cl9fwCOZraLVuVFvlpsW0SbIiYtEnhCZBPLoNdRkjQFw==, + } + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.44.1': + resolution: + { + integrity: sha512-NtSJVKcXwcqozOl+FwI41OH3OApDyLk3kqTJgx8+gp6On9ZEt5mYhIsKNPGuaZr3p9T6NWPKGU/03Vw4CNU9qg==, + } + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-arm64-msvc@4.45.1': resolution: { - integrity: sha512-NtSJVKcXwcqozOl+FwI41OH3OApDyLk3kqTJgx8+gp6On9ZEt5mYhIsKNPGuaZr3p9T6NWPKGU/03Vw4CNU9qg==, + integrity: sha512-T5Bi/NS3fQiJeYdGvRpTAP5P02kqSOpqiopwhj0uaXB6nzs5JVi2XMJb18JUSKhCOX8+UE1UKQufyD6Or48dJg==, } cpu: [arm64] os: [win32] @@ -1161,6 +1540,14 @@ packages: cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.45.1': + resolution: + { + integrity: sha512-lxV2Pako3ujjuUe9jiU3/s7KSrDfH6IgTSQOnDWr9aJ92YsFd7EurmClK0ly/t8dzMkDtd04g60WX6yl0sGfdw==, + } + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.44.1': resolution: { @@ -1169,6 +1556,14 @@ packages: cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.45.1': + resolution: + { + integrity: sha512-M/fKi4sasCdM8i0aWJjCSFm2qEnYRR8AMLG2kxp6wD13+tMGA4Z1tVAuHkNRjud5SW2EM3naLuK35w9twvf6aA==, + } + cpu: [x64] + os: [win32] + '@storybook/addon-a11y@8.6.14': resolution: { @@ -1424,100 +1819,100 @@ packages: peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@swc/core-darwin-arm64@1.12.9': + '@swc/core-darwin-arm64@1.13.2': resolution: { - integrity: sha512-GACFEp4nD6V+TZNR2JwbMZRHB+Yyvp14FrcmB6UCUYmhuNWjkxi+CLnEvdbuiKyQYv0zA+TRpCHZ+whEs6gwfA==, + integrity: sha512-44p7ivuLSGFJ15Vly4ivLJjg3ARo4879LtEBAabcHhSZygpmkP8eyjyWxrH3OxkY1eRZSIJe8yRZPFw4kPXFPw==, } engines: { node: '>=10' } cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.12.9': + '@swc/core-darwin-x64@1.13.2': resolution: { - integrity: sha512-hv2kls7Ilkm2EpeJz+I9MCil7pGS3z55ZAgZfxklEuYsxpICycxeH+RNRv4EraggN44ms+FWCjtZFu0LGg2V3g==, + integrity: sha512-Lb9EZi7X2XDAVmuUlBm2UvVAgSCbD3qKqDCxSI4jEOddzVOpNCnyZ/xEampdngUIyDDhhJLYU9duC+Mcsv5Y+A==, } engines: { node: '>=10' } cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.12.9': + '@swc/core-linux-arm-gnueabihf@1.13.2': resolution: { - integrity: sha512-od9tDPiG+wMU9wKtd6y3nYJdNqgDOyLdgRRcrj1/hrbHoUPOM8wZQZdwQYGarw63iLXGgsw7t5HAF9Yc51ilFA==, + integrity: sha512-9TDe/92ee1x57x+0OqL1huG4BeljVx0nWW4QOOxp8CCK67Rpc/HHl2wciJ0Kl9Dxf2NvpNtkPvqj9+BUmM9WVA==, } engines: { node: '>=10' } cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.12.9': + '@swc/core-linux-arm64-gnu@1.13.2': resolution: { - integrity: sha512-6qx1ka9LHcLzxIgn2Mros+CZLkHK2TawlXzi/h7DJeNnzi8F1Hw0Yzjp8WimxNCg6s2n+o3jnmin1oXB7gg8rw==, + integrity: sha512-KJUSl56DBk7AWMAIEcU83zl5mg3vlQYhLELhjwRFkGFMvghQvdqQ3zFOYa4TexKA7noBZa3C8fb24rI5sw9Exg==, } engines: { node: '>=10' } cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.12.9': + '@swc/core-linux-arm64-musl@1.13.2': resolution: { - integrity: sha512-yghFZWKPVVGbUdqiD7ft23G0JX6YFGDJPz9YbLLAwGuKZ9th3/jlWoQDAw1Naci31LQhVC+oIji6ozihSuwB2A==, + integrity: sha512-teU27iG1oyWpNh9CzcGQ48ClDRt/RCem7mYO7ehd2FY102UeTws2+OzLESS1TS1tEZipq/5xwx3FzbVgiolCiQ==, } engines: { node: '>=10' } cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.12.9': + '@swc/core-linux-x64-gnu@1.13.2': resolution: { - integrity: sha512-SFUxyhWLZRNL8QmgGNqdi2Q43PNyFVkRZ2zIif30SOGFSxnxcf2JNeSeBgKIGVgaLSuk6xFVVCtJ3KIeaStgRg==, + integrity: sha512-dRPsyPyqpLD0HMRCRpYALIh4kdOir8pPg4AhNQZLehKowigRd30RcLXGNVZcc31Ua8CiPI4QSgjOIxK+EQe4LQ==, } engines: { node: '>=10' } cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.12.9': + '@swc/core-linux-x64-musl@1.13.2': resolution: { - integrity: sha512-9FB0wM+6idCGTI20YsBNBg9xSWtkDBymnpaTCsZM3qDc0l4uOpJMqbfWhQvp17x7r/ulZfb2QY8RDvQmCL6AcQ==, + integrity: sha512-CCxETW+KkYEQDqz1SYC15YIWYheqFC+PJVOW76Maa/8yu8Biw+HTAcblKf2isrlUtK8RvrQN94v3UXkC2NzCEw==, } engines: { node: '>=10' } cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.12.9': + '@swc/core-win32-arm64-msvc@1.13.2': resolution: { - integrity: sha512-zHOusMVbOH9ik5RtRrMiGzLpKwxrPXgXkBm3SbUCa65HAdjV33NZ0/R9Rv1uPESALtEl2tzMYLUxYA5ECFDFhA==, + integrity: sha512-Wv/QTA6PjyRLlmKcN6AmSI4jwSMRl0VTLGs57PHTqYRwwfwd7y4s2fIPJVBNbAlXd795dOEP6d/bGSQSyhOX3A==, } engines: { node: '>=10' } cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.12.9': + '@swc/core-win32-ia32-msvc@1.13.2': resolution: { - integrity: sha512-aWZf0PqE0ot7tCuhAjRkDFf41AzzSQO0x2xRfTbnhpROp57BRJ/N5eee1VULO/UA2PIJRG7GKQky5bSGBYlFug==, + integrity: sha512-PuCdtNynEkUNbUXX/wsyUC+t4mamIU5y00lT5vJcAvco3/r16Iaxl5UCzhXYaWZSNVZMzPp9qN8NlSL8M5pPxw==, } engines: { node: '>=10' } cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.12.9': + '@swc/core-win32-x64-msvc@1.13.2': resolution: { - integrity: sha512-C25fYftXOras3P3anSUeXXIpxmEkdAcsIL9yrr0j1xepTZ/yKwpnQ6g3coj8UXdeJy4GTVlR6+Ow/QiBgZQNOg==, + integrity: sha512-qlmMkFZJus8cYuBURx1a3YAG2G7IW44i+FEYV5/32ylKkzGNAr9tDJSA53XNnNXkAB5EXSPsOz7bn5C3JlEtdQ==, } engines: { node: '>=10' } cpu: [x64] os: [win32] - '@swc/core@1.12.9': + '@swc/core@1.13.2': resolution: { - integrity: sha512-O+LfT2JlVMsIMWG9x+rdxg8GzpzeGtCZQfXV7cKc1PjIKUkLFf1QJ7okuseA4f/9vncu37dQ2ZcRrPKy0Ndd5g==, + integrity: sha512-YWqn+0IKXDhqVLKoac4v2tV6hJqB/wOh8/Br8zjqeqBkKa77Qb0Kw2i7LOFzjFNZbZaPH6AlMGlBwNrxaauaAg==, } engines: { node: '>=10' } peerDependencies: @@ -1538,10 +1933,10 @@ packages: integrity: sha512-u1iIVZV9Q0jxY+yM2vw/hZGDNudsN85bBpTqzAQ9rzkxW9D+e3aEM4Han+ow518gSewkXgjmEK0BD79ZcNVgPw==, } - '@tanstack/query-core@5.81.5': + '@tanstack/query-core@5.83.0': resolution: { - integrity: sha512-ZJOgCy/z2qpZXWaj/oxvodDx07XcQa9BF92c0oINjHkoqUPsmm3uG08HpTaviviZ/N9eP1f9CM7mKSEkIo7O1Q==, + integrity: sha512-0M8dA+amXUkyz5cVUm/B+zSk3xkQAcuXuz5/Q/LveT4ots2rBpPTZOzd7yJa2Utsf8D2Upl5KyjhHRY+9lB/XA==, } '@tanstack/query-devtools@5.81.2': @@ -1550,19 +1945,19 @@ packages: integrity: sha512-jCeJcDCwKfoyyBXjXe9+Lo8aTkavygHHsUHAlxQKKaDeyT0qyQNLKl7+UyqYH2dDF6UN/14873IPBHchcsU+Zg==, } - '@tanstack/react-query-devtools@5.81.5': + '@tanstack/react-query-devtools@5.83.0': resolution: { - integrity: sha512-lCGMu4RX0uGnlrlLeSckBfnW/UV+KMlTBVqa97cwK7Z2ED5JKnZRSjNXwoma6sQBTJrcULvzgx2K6jEPvNUpDw==, + integrity: sha512-yfp8Uqd3I1jgx8gl0lxbSSESu5y4MO2ThOPBnGNTYs0P+ZFu+E9g5IdOngyUGuo6Uz6Qa7p9TLdZEX3ntik2fQ==, } peerDependencies: - '@tanstack/react-query': ^5.81.5 + '@tanstack/react-query': ^5.83.0 react: ^18 || ^19 - '@tanstack/react-query@5.81.5': + '@tanstack/react-query@5.83.0': resolution: { - integrity: sha512-lOf2KqRRiYWpQT86eeeftAGnjuTR35myTP8MXyvHa81VlomoAWNEd8x5vkcAfQefu0qtYCvyqLropFZqgI2EQw==, + integrity: sha512-/XGYhZ3foc5H0VM2jLSD/NyBRIOK4q9kfeml4+0x2DlL6xVuAcVEW+hTlTapAmejObg0i3eNqhkr2dT+eciwoQ==, } peerDependencies: react: ^18 || ^19 @@ -1602,13 +1997,6 @@ packages: integrity: sha512-72qJyUVyyNC7d4EOKVyjPQH3UH3GnVSAo3mM+3vqGVTgh84vPPW3KPFvrV/DZe33dHMygCUsmIhnP9G5T5n9AQ==, } - '@trysound/sax@0.2.0': - resolution: - { - integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==, - } - engines: { node: '>=10.13.0' } - '@tsconfig/node10@1.0.11': resolution: { @@ -1726,10 +2114,16 @@ packages: } deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed. - '@types/node@20.19.4': + '@types/node@20.19.9': + resolution: + { + integrity: sha512-cuVNgarYWZqxRJDQHEB58GEONhOK79QVR/qYx4S7kcUObQvUwvFnYxJuuHUKm2aieN9X3yZB4LZsuYNU1Qphsw==, + } + + '@types/node@24.1.0': resolution: { - integrity: sha512-OP+We5WV8Xnbuvw0zC2m4qfB/BJvjyCwtNjhHdJxV1639SGSKrLmJkc3fMnp2Qy8nJyHp8RO6umxELN/dS1/EA==, + integrity: sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==, } '@types/react-dom@19.1.6': @@ -1918,22 +2312,22 @@ packages: peerDependencies: vite: ^5.0.0 || ^6.0.0 - '@vitejs/plugin-react-swc@3.10.2': + '@vitejs/plugin-react-swc@3.11.0': resolution: { - integrity: sha512-xD3Rdvrt5LgANug7WekBn1KhcvLn1H3jNBfJRL3reeOIua/WnZOEV5qi5qIBq5T8R0jUDmRtxuvk4bPhzGHDWw==, + integrity: sha512-YTJCGFdNMHCMfjODYtxRNVAYmTWQ1Lb8PulP/2/f/oEEtglw8oKxKIZmmRkyXrVrHfsKOaVkAc3NT9/dMutO5w==, } peerDependencies: - vite: ^4 || ^5 || ^6 || ^7.0.0-beta.0 + vite: ^4 || ^5 || ^6 || ^7 - '@vitejs/plugin-react@4.6.0': + '@vitejs/plugin-react@4.7.0': resolution: { - integrity: sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==, + integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==, } engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 '@vitest/expect@2.0.5': resolution: @@ -2511,12 +2905,12 @@ packages: } engines: { node: '>=14' } - commander@7.2.0: + commander@11.1.0: resolution: { - integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, + integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==, } - engines: { node: '>= 10' } + engines: { node: '>=16' } compare-func@2.0.0: resolution: @@ -2632,10 +3026,10 @@ packages: } engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0' } - css-tree@2.3.1: + css-tree@3.1.0: resolution: { - integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==, + integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==, } engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0 } @@ -3039,6 +3433,14 @@ packages: engines: { node: '>=18' } hasBin: true + esbuild@0.25.8: + resolution: + { + integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==, + } + engines: { node: '>=18' } + hasBin: true + escalade@3.2.0: resolution: { @@ -3068,19 +3470,19 @@ packages: engines: { node: '>=6.0' } hasBin: true - eslint-config-prettier@10.1.5: + eslint-config-prettier@10.1.8: resolution: { - integrity: sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==, + integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==, } hasBin: true peerDependencies: eslint: '>=7.0.0' - eslint-config-turbo@2.5.4: + eslint-config-turbo@2.5.5: resolution: { - integrity: sha512-OpjpDLXIaus0N/Y+pMj17K430xjpd6WTo0xPUESqYZ9BkMngv2n0ZdjktgJTbJVnDmK7gHrXgJAljtdIMcYBIg==, + integrity: sha512-23lKrCr66HQR62aa94n2dBGUUFz0GzM6N1KwmcREZHxomZ5Ik2rDm00wAz95lOEkhzSt6IaxW00Uz0az/Fcq5Q==, } peerDependencies: eslint: '>6.6.0' @@ -3093,10 +3495,10 @@ packages: } engines: { node: '>=6' } - eslint-plugin-prettier@5.5.1: + eslint-plugin-prettier@5.5.3: resolution: { - integrity: sha512-dobTkHT6XaEVOo8IO90Q4DOSxnm3Y151QxPJlM/vKC0bVy+d6cVWQZLlFiuZPP0wS6vZwSKeJgKkcS+KfMBlRw==, + integrity: sha512-NAdMYww51ehKfDyDhv59/eIItUVzU0Io9H2E8nHNGKEeeqlnci+1gCvrHib6EmZdf6GxF+LCV5K7UC65Ezvw7w==, } engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: @@ -3144,10 +3546,10 @@ packages: peerDependencies: eslint: '>=5.0.0' - eslint-plugin-turbo@2.5.4: + eslint-plugin-turbo@2.5.5: resolution: { - integrity: sha512-IZsW61DFj5mLMMaCJxhh1VE4HvNhfdnHnAaXajgne+LUzdyHk2NvYT0ECSa/1SssArcqgTvV74MrLL68hWLLFw==, + integrity: sha512-IlN65X6W7rgK88u5xl1xC+7FIGKA7eyaca0yxZQ9CBNV6keAaqtjZQLw8ZfXdv7T+MzTLYkYOeOHAv8yCRUx4Q==, } peerDependencies: eslint: '>6.6.0' @@ -4219,90 +4621,90 @@ packages: integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, } - lefthook-darwin-arm64@1.11.16: + lefthook-darwin-arm64@1.12.2: resolution: { - integrity: sha512-ThsVyHPexHax7aZYpFbsswk5HPR2ap3zsJ1yE189Y97U+tLEHS+Mq98MqC1U1zFm0Ts42gpGDBx6chIRjx7Uig==, + integrity: sha512-fTxeI9tEskrHjc3QyEO+AG7impBXY2Ed8V5aiRc3fw9POfYtVh9b5jRx90fjk2+ld5hf+Z1DsyyLq/vOHDFskQ==, } cpu: [arm64] os: [darwin] - lefthook-darwin-x64@1.11.16: + lefthook-darwin-x64@1.12.2: resolution: { - integrity: sha512-P3QtUJ/ICX3l+ZJqqKGyovT6Hi2N60Vt8znGglJ+OeCpVMc6H6N0ID37+jHlnyjO9AfL4EkAj70vwYe8Fzfjsw==, + integrity: sha512-T1dCDKAAfdHgYZ8qtrS02SJSHoR52RFcrGArFNll9Mu4ZSV19Sp8BO+kTwDUOcLYdcPGNaqOp9PkRBQGZWQC7g==, } cpu: [x64] os: [darwin] - lefthook-freebsd-arm64@1.11.16: + lefthook-freebsd-arm64@1.12.2: resolution: { - integrity: sha512-X0EyVoCg4+nczJDZ0rc0gpZHOrLr4Nk7knoYFKrBnvutuMCs9ixU+tA4sV8pu4KT13gigbXkxjKlIN7QUqFCxg==, + integrity: sha512-2n9z7Q4BKeMBoB9cuEdv0UBQH82Z4GgBQpCrfjCtyzpDnYQwrH8Tkrlnlko4qPh9MM6nLLGIYMKsA5nltzo8Cg==, } cpu: [arm64] os: [freebsd] - lefthook-freebsd-x64@1.11.16: + lefthook-freebsd-x64@1.12.2: resolution: { - integrity: sha512-m2nfcpz2i4AdQ9fZqcoTCxAFotqXHYzUThgqcRyMaPHjlpy+ZmVnopppt9MS4GfDDq+dqjka28ZZObE7T1Nb5g==, + integrity: sha512-1hNY/irY+/3kjRzKoJYxG+m3BYI8QxopJUK1PQnknGo1Wy5u302SdX+tR7pnpz6JM5chrNw4ozSbKKOvdZ5VEw==, } cpu: [x64] os: [freebsd] - lefthook-linux-arm64@1.11.16: + lefthook-linux-arm64@1.12.2: resolution: { - integrity: sha512-mXwCXs5J1qyq6QmBXFy2/YYG0sCzz1C0sfnzLdgXoAAmhEFfA4wy/DX/jNbvMPvRLfKHiXtf3eaqjLEYg9CGjQ==, + integrity: sha512-1W4swYIVRkxq/LFTuuK4oVpd6NtTKY4E3VY2Uq2JDkIOJV46+8qGBF+C/QA9K3O9chLffgN7c+i+NhIuGiZ/Vw==, } cpu: [arm64] os: [linux] - lefthook-linux-x64@1.11.16: + lefthook-linux-x64@1.12.2: resolution: { - integrity: sha512-MW1ClFIk3uTfpOCm+FGW8NZbXWA6Xdf/eUw6//mEVs3Q4EsZ4GYZn0AFRMrsaXxbSZnvAPhtNoEVqRfYWjWKBQ==, + integrity: sha512-J6VGuMfhq5iCsg1Pv7xULbuXC63gP5LaikT0PhkyBNMi3HQneZFDJ8k/sp0Ue9HkQv6QfWIo3/FgB9gz38MCFw==, } cpu: [x64] os: [linux] - lefthook-openbsd-arm64@1.11.16: + lefthook-openbsd-arm64@1.12.2: resolution: { - integrity: sha512-6Aqjyc2TkkEpogsUvzLSdMAy/fN6YHlq3XA47N7VNc0Ke0XP/XIImb0zEPsYDjrdNqZbEKoXn+IYkValtS5DXg==, + integrity: sha512-wncDRW3ml24DaOyH22KINumjvCohswbQqbxyH2GORRCykSnE859cTjOrRIchTKBIARF7PSeGPUtS7EK0+oDbaw==, } cpu: [arm64] os: [openbsd] - lefthook-openbsd-x64@1.11.16: + lefthook-openbsd-x64@1.12.2: resolution: { - integrity: sha512-ierlKlnrUe1ML6F3JFgFllgy71qY1S5I2wOclI3yh2EGykAJIUmdkgz/f0KT1slV2aXeSP+QgBTu496WzZSjIg==, + integrity: sha512-2jDOkCHNnc/oK/vR62hAf3vZb1EQ6Md2GjIlgZ/V7A3ztOsM8QZ5IxwYN3D1UOIR5ZnwMBy7PtmTJC/HJrig5w==, } cpu: [x64] os: [openbsd] - lefthook-windows-arm64@1.11.16: + lefthook-windows-arm64@1.12.2: resolution: { - integrity: sha512-AAjDKWOExTS1XlSvNNIa3YIJbf90SZ5X0NSA7EgHobegadLcLrkl3aX+2zcw+yvpm1AOF0WUZdYxkAHL5MNQOg==, + integrity: sha512-ZMH/q6UNSidhHEG/1QoqIl1n4yPTBWuVmKx5bONtKHicoz4QCQ+QEiNjKsG5OO4C62nfyHGThmweCzZVUQECJw==, } cpu: [arm64] os: [win32] - lefthook-windows-x64@1.11.16: + lefthook-windows-x64@1.12.2: resolution: { - integrity: sha512-qOEAinMMV5rlf4C0VPSIlPaj5nh2CD4lzAv7+nAUydDiDQcVkkPbiwCaRkSVX509k6SctDCYQhtBnG/bwdREFQ==, + integrity: sha512-TqT2jIPcTQ9uwaw+v+DTmvnUHM/p7bbsSrPoPX+fRXSGLzFjyiY+12C9dObSwfCQq6rT70xqQJ9AmftJQsa5/Q==, } cpu: [x64] os: [win32] - lefthook@1.11.16: + lefthook@1.12.2: resolution: { - integrity: sha512-NbFZaAJUEiwBv6Npg7TZOCo9Bxh8VUSuBZ55CTulH9roQjknSXQWgGYz9FaHvqVeMBf7Xog2Wk84Ce7gWrWlYw==, + integrity: sha512-2CeTu5NcmoT9YnqsHTq/TF36MlqlzHzhivGx3DrXHwcff4TdvrkIwUTA56huM3Nlo5ODAF/0hlPzaKLmNHCBnQ==, } hasBin: true @@ -4518,10 +4920,10 @@ packages: integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==, } - mdn-data@2.0.30: + mdn-data@2.12.2: resolution: { - integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==, + integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==, } media-query-parser@2.0.2: @@ -5171,20 +5573,20 @@ packages: } engines: { node: '>=0.10.0' } - react-router-dom@7.6.3: + react-router-dom@7.7.0: resolution: { - integrity: sha512-DiWJm9qdUAmiJrVWaeJdu4TKu13+iB/8IEi0EW/XgaHCjW/vWGrwzup0GVvaMteuZjKnh5bEvJP/K0MDnzawHw==, + integrity: sha512-wwGS19VkNBkneVh9/YD0pK3IsjWxQUVMDD6drlG7eJpo1rXBtctBqDyBm/k+oKHRAm1x9XWT3JFC82QI9YOXXA==, } engines: { node: '>=20.0.0' } peerDependencies: react: '>=18' react-dom: '>=18' - react-router@7.6.3: + react-router@7.7.0: resolution: { - integrity: sha512-zf45LZp5skDC6I3jDLXQUu0u26jtuP4lEGbc7BbdyxenBN1vJSTA18czM2D+h5qyMBuMrD+9uB+mU37HIoKGRA==, + integrity: sha512-3FUYSwlvB/5wRJVTL/aavqHmfUKe0+Xm9MllkYgGo9eDwNdkvwlJGjpPxono1kCycLt6AnDTgjmXvK3/B4QGuw==, } engines: { node: '>=20.0.0' } peerDependencies: @@ -5341,6 +5743,14 @@ packages: engines: { node: '>=18.0.0', npm: '>=8.0.0' } hasBin: true + rollup@4.45.1: + resolution: + { + integrity: sha512-4iya7Jb76fVpQyLoiVpzUrsjQ12r3dM7fIVz+4NwoYvZOShknRmiv+iu9CClZml5ZLGb0XMcYLutK6w9tgxHDw==, + } + engines: { node: '>=18.0.0', npm: '>=8.0.0' } + hasBin: true + run-async@2.4.1: resolution: { @@ -5400,6 +5810,12 @@ packages: integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, } + sax@1.4.1: + resolution: + { + integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==, + } + scheduler@0.26.0: resolution: { @@ -5727,12 +6143,12 @@ packages: } engines: { node: '>= 0.4' } - svgo@3.3.2: + svgo@4.0.0: resolution: { - integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==, + integrity: sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==, } - engines: { node: '>=14.0.0' } + engines: { node: '>=16' } hasBin: true swap-case@1.1.2: @@ -5912,58 +6328,58 @@ packages: engines: { node: '>=18.0.0' } hasBin: true - turbo-darwin-64@2.5.4: + turbo-darwin-64@2.5.5: resolution: { - integrity: sha512-ah6YnH2dErojhFooxEzmvsoZQTMImaruZhFPfMKPBq8sb+hALRdvBNLqfc8NWlZq576FkfRZ/MSi4SHvVFT9PQ==, + integrity: sha512-RYnTz49u4F5tDD2SUwwtlynABNBAfbyT2uU/brJcyh5k6lDLyNfYKdKmqd3K2ls4AaiALWrFKVSBsiVwhdFNzQ==, } cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.5.4: + turbo-darwin-arm64@2.5.5: resolution: { - integrity: sha512-2+Nx6LAyuXw2MdXb7pxqle3MYignLvS7OwtsP9SgtSBaMlnNlxl9BovzqdYAgkUW3AsYiQMJ/wBRb7d+xemM5A==, + integrity: sha512-Tk+ZeSNdBobZiMw9aFypQt0DlLsWSFWu1ymqsAdJLuPoAH05qCfYtRxE1pJuYHcJB5pqI+/HOxtJoQ40726Btw==, } cpu: [arm64] os: [darwin] - turbo-linux-64@2.5.4: + turbo-linux-64@2.5.5: resolution: { - integrity: sha512-5May2kjWbc8w4XxswGAl74GZ5eM4Gr6IiroqdLhXeXyfvWEdm2mFYCSWOzz0/z5cAgqyGidF1jt1qzUR8hTmOA==, + integrity: sha512-2/XvMGykD7VgsvWesZZYIIVXMlgBcQy+ZAryjugoTcvJv8TZzSU/B1nShcA7IAjZ0q7OsZ45uP2cOb8EgKT30w==, } cpu: [x64] os: [linux] - turbo-linux-arm64@2.5.4: + turbo-linux-arm64@2.5.5: resolution: { - integrity: sha512-/2yqFaS3TbfxV3P5yG2JUI79P7OUQKOUvAnx4MV9Bdz6jqHsHwc9WZPpO4QseQm+NvmgY6ICORnoVPODxGUiJg==, + integrity: sha512-DW+8CjCjybu0d7TFm9dovTTVg1VRnlkZ1rceO4zqsaLrit3DgHnN4to4uwyuf9s2V/BwS3IYcRy+HG9BL596Iw==, } cpu: [arm64] os: [linux] - turbo-windows-64@2.5.4: + turbo-windows-64@2.5.5: resolution: { - integrity: sha512-EQUO4SmaCDhO6zYohxIjJpOKRN3wlfU7jMAj3CgcyTPvQR/UFLEKAYHqJOnJtymbQmiiM/ihX6c6W6Uq0yC7mA==, + integrity: sha512-q5p1BOy8ChtSZfULuF1BhFMYIx6bevXu4fJ+TE/hyNfyHJIfjl90Z6jWdqAlyaFLmn99X/uw+7d6T/Y/dr5JwQ==, } cpu: [x64] os: [win32] - turbo-windows-arm64@2.5.4: + turbo-windows-arm64@2.5.5: resolution: { - integrity: sha512-oQ8RrK1VS8lrxkLriotFq+PiF7iiGgkZtfLKF4DDKsmdbPo0O9R2mQxm7jHLuXraRCuIQDWMIw6dpcr7Iykf4A==, + integrity: sha512-AXbF1KmpHUq3PKQwddMGoKMYhHsy5t1YBQO8HZ04HLMR0rWv9adYlQ8kaeQJTko1Ay1anOBFTqaxfVOOsu7+1Q==, } cpu: [arm64] os: [win32] - turbo@2.5.4: + turbo@2.5.5: resolution: { - integrity: sha512-kc8ZibdRcuWUG1pbYSBFWqmIjynlD8Lp7IB6U3vIzvOv9VG+6Sp8bzyeBWE3Oi8XV5KsQrznyRTBPvrf99E4mA==, + integrity: sha512-eZ7wI6KjtT1eBqCnh2JPXWNUAxtoxxfi6VdBdZFvil0ychCOTxbm7YLRBi1JSt7U3c+u3CLxpoPxLdvr/Npr3A==, } hasBin: true @@ -6058,6 +6474,12 @@ packages: integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==, } + undici-types@7.8.0: + resolution: + { + integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==, + } + undici@7.11.0: resolution: { @@ -6219,10 +6641,10 @@ packages: yaml: optional: true - vite@7.0.2: + vite@7.0.5: resolution: { - integrity: sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==, + integrity: sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==, } engines: { node: ^20.19.0 || >=22.12.0 } hasBin: true @@ -6564,11 +6986,16 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@commitlint/cli@19.8.1(@types/node@20.19.4)(typescript@5.8.3)': + '@babel/types@7.28.1': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + + '@commitlint/cli@19.8.1(@types/node@24.1.0)(typescript@5.8.3)': dependencies: '@commitlint/format': 19.8.1 '@commitlint/lint': 19.8.1 - '@commitlint/load': 19.8.1(@types/node@20.19.4)(typescript@5.8.3) + '@commitlint/load': 19.8.1(@types/node@24.1.0)(typescript@5.8.3) '@commitlint/read': 19.8.1 '@commitlint/types': 19.8.1 tinyexec: 1.0.1 @@ -6615,7 +7042,7 @@ snapshots: '@commitlint/rules': 19.8.1 '@commitlint/types': 19.8.1 - '@commitlint/load@19.8.1(@types/node@20.19.4)(typescript@5.8.3)': + '@commitlint/load@19.8.1(@types/node@24.1.0)(typescript@5.8.3)': dependencies: '@commitlint/config-validator': 19.8.1 '@commitlint/execute-rule': 19.8.1 @@ -6623,7 +7050,7 @@ snapshots: '@commitlint/types': 19.8.1 chalk: 5.4.1 cosmiconfig: 9.0.0(typescript@5.8.3) - cosmiconfig-typescript-loader: 6.1.0(@types/node@20.19.4)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3) + cosmiconfig-typescript-loader: 6.1.0(@types/node@24.1.0)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -6683,78 +7110,156 @@ snapshots: '@esbuild/aix-ppc64@0.25.5': optional: true + '@esbuild/aix-ppc64@0.25.8': + optional: true + '@esbuild/android-arm64@0.25.5': optional: true + '@esbuild/android-arm64@0.25.8': + optional: true + '@esbuild/android-arm@0.25.5': optional: true + '@esbuild/android-arm@0.25.8': + optional: true + '@esbuild/android-x64@0.25.5': optional: true + '@esbuild/android-x64@0.25.8': + optional: true + '@esbuild/darwin-arm64@0.25.5': optional: true + '@esbuild/darwin-arm64@0.25.8': + optional: true + '@esbuild/darwin-x64@0.25.5': optional: true + '@esbuild/darwin-x64@0.25.8': + optional: true + '@esbuild/freebsd-arm64@0.25.5': optional: true + '@esbuild/freebsd-arm64@0.25.8': + optional: true + '@esbuild/freebsd-x64@0.25.5': optional: true + '@esbuild/freebsd-x64@0.25.8': + optional: true + '@esbuild/linux-arm64@0.25.5': optional: true + '@esbuild/linux-arm64@0.25.8': + optional: true + '@esbuild/linux-arm@0.25.5': optional: true + '@esbuild/linux-arm@0.25.8': + optional: true + '@esbuild/linux-ia32@0.25.5': optional: true + '@esbuild/linux-ia32@0.25.8': + optional: true + '@esbuild/linux-loong64@0.25.5': optional: true + '@esbuild/linux-loong64@0.25.8': + optional: true + '@esbuild/linux-mips64el@0.25.5': optional: true + '@esbuild/linux-mips64el@0.25.8': + optional: true + '@esbuild/linux-ppc64@0.25.5': optional: true + '@esbuild/linux-ppc64@0.25.8': + optional: true + '@esbuild/linux-riscv64@0.25.5': optional: true + '@esbuild/linux-riscv64@0.25.8': + optional: true + '@esbuild/linux-s390x@0.25.5': optional: true + '@esbuild/linux-s390x@0.25.8': + optional: true + '@esbuild/linux-x64@0.25.5': optional: true + '@esbuild/linux-x64@0.25.8': + optional: true + '@esbuild/netbsd-arm64@0.25.5': optional: true + '@esbuild/netbsd-arm64@0.25.8': + optional: true + '@esbuild/netbsd-x64@0.25.5': optional: true + '@esbuild/netbsd-x64@0.25.8': + optional: true + '@esbuild/openbsd-arm64@0.25.5': optional: true + '@esbuild/openbsd-arm64@0.25.8': + optional: true + '@esbuild/openbsd-x64@0.25.5': optional: true + '@esbuild/openbsd-x64@0.25.8': + optional: true + + '@esbuild/openharmony-arm64@0.25.8': + optional: true + '@esbuild/sunos-x64@0.25.5': optional: true + '@esbuild/sunos-x64@0.25.8': + optional: true + '@esbuild/win32-arm64@0.25.5': optional: true + '@esbuild/win32-arm64@0.25.8': + optional: true + '@esbuild/win32-ia32@0.25.5': optional: true + '@esbuild/win32-ia32@0.25.8': + optional: true + '@esbuild/win32-x64@0.25.5': optional: true + '@esbuild/win32-x64@0.25.8': + optional: true + '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)': dependencies: eslint: 8.57.1 @@ -6799,12 +7304,12 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.3)(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.3)(vite@7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3))': dependencies: glob: 10.4.5 magic-string: 0.27.0 react-docgen-typescript: 2.4.0(typescript@5.8.3) - vite: 7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3) + vite: 7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3) optionalDependencies: typescript: 5.8.3 @@ -6845,13 +7350,19 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@pivanov/vite-plugin-svg-sprite@3.0.0(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3))': + '@pivanov/vite-plugin-svg-sprite@3.1.2(vite@7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3))': dependencies: cheerio: 1.1.0 chokidar: 4.0.3 - svgo: 3.3.2 - typescript: 5.8.3 - vite: 7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3) + svgo: 4.0.0 + vite: 7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3) + + '@pivanov/vite-plugin-svg-sprite@3.1.2(vite@7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3))': + dependencies: + cheerio: 1.1.0 + chokidar: 4.0.3 + svgo: 4.0.0 + vite: 7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3) '@pkgjs/parseargs@0.11.0': optional: true @@ -6881,78 +7392,136 @@ snapshots: transitivePeerDependencies: - supports-color - '@rolldown/pluginutils@1.0.0-beta.11': {} - - '@rolldown/pluginutils@1.0.0-beta.19': {} + '@rolldown/pluginutils@1.0.0-beta.27': {} - '@rollup/pluginutils@5.2.0(rollup@4.44.1)': + '@rollup/pluginutils@5.2.0(rollup@4.45.1)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.44.1 + rollup: 4.45.1 '@rollup/rollup-android-arm-eabi@4.44.1': optional: true + '@rollup/rollup-android-arm-eabi@4.45.1': + optional: true + '@rollup/rollup-android-arm64@4.44.1': optional: true + '@rollup/rollup-android-arm64@4.45.1': + optional: true + '@rollup/rollup-darwin-arm64@4.44.1': optional: true + '@rollup/rollup-darwin-arm64@4.45.1': + optional: true + '@rollup/rollup-darwin-x64@4.44.1': optional: true + '@rollup/rollup-darwin-x64@4.45.1': + optional: true + '@rollup/rollup-freebsd-arm64@4.44.1': optional: true + '@rollup/rollup-freebsd-arm64@4.45.1': + optional: true + '@rollup/rollup-freebsd-x64@4.44.1': optional: true + '@rollup/rollup-freebsd-x64@4.45.1': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.44.1': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.45.1': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.44.1': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.45.1': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.44.1': optional: true + '@rollup/rollup-linux-arm64-gnu@4.45.1': + optional: true + '@rollup/rollup-linux-arm64-musl@4.44.1': optional: true + '@rollup/rollup-linux-arm64-musl@4.45.1': + optional: true + '@rollup/rollup-linux-loongarch64-gnu@4.44.1': optional: true + '@rollup/rollup-linux-loongarch64-gnu@4.45.1': + optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.44.1': optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.45.1': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.44.1': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.45.1': + optional: true + '@rollup/rollup-linux-riscv64-musl@4.44.1': optional: true + '@rollup/rollup-linux-riscv64-musl@4.45.1': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.44.1': optional: true + '@rollup/rollup-linux-s390x-gnu@4.45.1': + optional: true + '@rollup/rollup-linux-x64-gnu@4.44.1': optional: true + '@rollup/rollup-linux-x64-gnu@4.45.1': + optional: true + '@rollup/rollup-linux-x64-musl@4.44.1': optional: true + '@rollup/rollup-linux-x64-musl@4.45.1': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.44.1': optional: true + '@rollup/rollup-win32-arm64-msvc@4.45.1': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.44.1': optional: true + '@rollup/rollup-win32-ia32-msvc@4.45.1': + optional: true + '@rollup/rollup-win32-x64-msvc@4.44.1': optional: true + '@rollup/rollup-win32-x64-msvc@4.45.1': + optional: true + '@storybook/addon-a11y@8.6.14(storybook@8.6.14(prettier@3.6.2))': dependencies: '@storybook/addon-highlight': 8.6.14(storybook@8.6.14(prettier@3.6.2)) @@ -7061,13 +7630,13 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@storybook/builder-vite@8.6.14(storybook@8.6.14(prettier@3.6.2))(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3))': + '@storybook/builder-vite@8.6.14(storybook@8.6.14(prettier@3.6.2))(vite@7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3))': dependencies: '@storybook/csf-plugin': 8.6.14(storybook@8.6.14(prettier@3.6.2)) browser-assert: 1.2.1 storybook: 8.6.14(prettier@3.6.2) ts-dedent: 2.2.0 - vite: 7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3) + vite: 7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3) '@storybook/components@8.6.14(storybook@8.6.14(prettier@3.6.2))': dependencies: @@ -7078,8 +7647,8 @@ snapshots: '@storybook/theming': 8.6.14(storybook@8.6.14(prettier@3.6.2)) better-opn: 3.0.2 browser-assert: 1.2.1 - esbuild: 0.25.5 - esbuild-register: 3.6.0(esbuild@0.25.5) + esbuild: 0.25.8 + esbuild-register: 3.6.0(esbuild@0.25.8) jsdoc-type-pratt-parser: 4.1.0 process: 0.11.10 recast: 0.23.11 @@ -7126,11 +7695,11 @@ snapshots: react-dom: 19.1.0(react@19.1.0) storybook: 8.6.14(prettier@3.6.2) - '@storybook/react-vite@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.6.2)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.44.1)(storybook@8.6.14(prettier@3.6.2))(typescript@5.8.3)(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3))': + '@storybook/react-vite@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.6.2)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.45.1)(storybook@8.6.14(prettier@3.6.2))(typescript@5.8.3)(vite@7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.3)(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)) - '@rollup/pluginutils': 5.2.0(rollup@4.44.1) - '@storybook/builder-vite': 8.6.14(storybook@8.6.14(prettier@3.6.2))(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.3)(vite@7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3)) + '@rollup/pluginutils': 5.2.0(rollup@4.45.1) + '@storybook/builder-vite': 8.6.14(storybook@8.6.14(prettier@3.6.2))(vite@7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3)) '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.6.2)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(prettier@3.6.2))(typescript@5.8.3) find-up: 5.0.0 magic-string: 0.30.17 @@ -7140,7 +7709,7 @@ snapshots: resolve: 1.22.10 storybook: 8.6.14(prettier@3.6.2) tsconfig-paths: 4.2.0 - vite: 7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3) + vite: 7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3) optionalDependencies: '@storybook/test': 8.6.14(storybook@8.6.14(prettier@3.6.2)) transitivePeerDependencies: @@ -7178,51 +7747,51 @@ snapshots: dependencies: storybook: 8.6.14(prettier@3.6.2) - '@swc/core-darwin-arm64@1.12.9': + '@swc/core-darwin-arm64@1.13.2': optional: true - '@swc/core-darwin-x64@1.12.9': + '@swc/core-darwin-x64@1.13.2': optional: true - '@swc/core-linux-arm-gnueabihf@1.12.9': + '@swc/core-linux-arm-gnueabihf@1.13.2': optional: true - '@swc/core-linux-arm64-gnu@1.12.9': + '@swc/core-linux-arm64-gnu@1.13.2': optional: true - '@swc/core-linux-arm64-musl@1.12.9': + '@swc/core-linux-arm64-musl@1.13.2': optional: true - '@swc/core-linux-x64-gnu@1.12.9': + '@swc/core-linux-x64-gnu@1.13.2': optional: true - '@swc/core-linux-x64-musl@1.12.9': + '@swc/core-linux-x64-musl@1.13.2': optional: true - '@swc/core-win32-arm64-msvc@1.12.9': + '@swc/core-win32-arm64-msvc@1.13.2': optional: true - '@swc/core-win32-ia32-msvc@1.12.9': + '@swc/core-win32-ia32-msvc@1.13.2': optional: true - '@swc/core-win32-x64-msvc@1.12.9': + '@swc/core-win32-x64-msvc@1.13.2': optional: true - '@swc/core@1.12.9': + '@swc/core@1.13.2': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.23 optionalDependencies: - '@swc/core-darwin-arm64': 1.12.9 - '@swc/core-darwin-x64': 1.12.9 - '@swc/core-linux-arm-gnueabihf': 1.12.9 - '@swc/core-linux-arm64-gnu': 1.12.9 - '@swc/core-linux-arm64-musl': 1.12.9 - '@swc/core-linux-x64-gnu': 1.12.9 - '@swc/core-linux-x64-musl': 1.12.9 - '@swc/core-win32-arm64-msvc': 1.12.9 - '@swc/core-win32-ia32-msvc': 1.12.9 - '@swc/core-win32-x64-msvc': 1.12.9 + '@swc/core-darwin-arm64': 1.13.2 + '@swc/core-darwin-x64': 1.13.2 + '@swc/core-linux-arm-gnueabihf': 1.13.2 + '@swc/core-linux-arm64-gnu': 1.13.2 + '@swc/core-linux-arm64-musl': 1.13.2 + '@swc/core-linux-x64-gnu': 1.13.2 + '@swc/core-linux-x64-musl': 1.13.2 + '@swc/core-win32-arm64-msvc': 1.13.2 + '@swc/core-win32-ia32-msvc': 1.13.2 + '@swc/core-win32-x64-msvc': 1.13.2 '@swc/counter@0.1.3': {} @@ -7230,19 +7799,19 @@ snapshots: dependencies: '@swc/counter': 0.1.3 - '@tanstack/query-core@5.81.5': {} + '@tanstack/query-core@5.83.0': {} '@tanstack/query-devtools@5.81.2': {} - '@tanstack/react-query-devtools@5.81.5(@tanstack/react-query@5.81.5(react@19.1.0))(react@19.1.0)': + '@tanstack/react-query-devtools@5.83.0(@tanstack/react-query@5.83.0(react@19.1.0))(react@19.1.0)': dependencies: '@tanstack/query-devtools': 5.81.2 - '@tanstack/react-query': 5.81.5(react@19.1.0) + '@tanstack/react-query': 5.83.0(react@19.1.0) react: 19.1.0 - '@tanstack/react-query@5.81.5(react@19.1.0)': + '@tanstack/react-query@5.83.0(react@19.1.0)': dependencies: - '@tanstack/query-core': 5.81.5 + '@tanstack/query-core': 5.83.0 react: 19.1.0 '@testing-library/dom@10.4.0': @@ -7274,8 +7843,6 @@ snapshots: '@toss/ky@1.2.1': {} - '@trysound/sax@0.2.0': {} - '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -7284,7 +7851,7 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@turbo/gen@1.13.4(@swc/core@1.12.9)(@types/node@20.19.4)(typescript@5.8.3)': + '@turbo/gen@1.13.4(@swc/core@1.13.2)(@types/node@20.19.9)(typescript@5.8.3)': dependencies: '@turbo/workspaces': 1.13.4 chalk: 2.4.2 @@ -7294,7 +7861,7 @@ snapshots: minimatch: 9.0.5 node-plop: 0.26.3 proxy-agent: 6.5.0 - ts-node: 10.9.2(@swc/core@1.12.9)(@types/node@20.19.4)(typescript@5.8.3) + ts-node: 10.9.2(@swc/core@1.13.2)(@types/node@20.19.9)(typescript@5.8.3) update-check: 1.5.4 validate-npm-package-name: 5.0.1 transitivePeerDependencies: @@ -7344,7 +7911,7 @@ snapshots: '@types/conventional-commits-parser@5.0.1': dependencies: - '@types/node': 20.19.4 + '@types/node': 20.19.9 '@types/doctrine@0.0.9': {} @@ -7353,7 +7920,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 6.0.0 - '@types/node': 20.19.4 + '@types/node': 20.19.9 '@types/inquirer@6.5.0': dependencies: @@ -7368,10 +7935,14 @@ snapshots: dependencies: minimatch: 9.0.5 - '@types/node@20.19.4': + '@types/node@20.19.9': dependencies: undici-types: 6.21.0 + '@types/node@24.1.0': + dependencies: + undici-types: 7.8.0 + '@types/react-dom@19.1.6(@types/react@19.1.8)': dependencies: '@types/react': 19.1.8 @@ -7386,7 +7957,7 @@ snapshots: '@types/through@0.0.33': dependencies: - '@types/node': 20.19.4 + '@types/node': 20.19.9 '@types/tinycolor2@1.4.6': {} @@ -7484,12 +8055,33 @@ snapshots: transitivePeerDependencies: - supports-color - '@vanilla-extract/compiler@0.3.0(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)': + '@vanilla-extract/compiler@0.3.0(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3)': + dependencies: + '@vanilla-extract/css': 1.17.4 + '@vanilla-extract/integration': 8.0.4 + vite: 6.3.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3) + vite-node: 3.2.4(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + '@vanilla-extract/compiler@0.3.0(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3)': dependencies: '@vanilla-extract/css': 1.17.4 '@vanilla-extract/integration': 8.0.4 - vite: 6.3.5(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3) - vite-node: 3.2.4(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3) + vite: 6.3.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3) + vite-node: 3.2.4(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -7548,11 +8140,31 @@ snapshots: dependencies: '@vanilla-extract/css': 1.17.4 - '@vanilla-extract/vite-plugin@5.1.0(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3))': + '@vanilla-extract/vite-plugin@5.1.0(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3)(vite@7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3))': + dependencies: + '@vanilla-extract/compiler': 0.3.0(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3) + '@vanilla-extract/integration': 8.0.4 + vite: 7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + '@vanilla-extract/vite-plugin@5.1.0(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3)(vite@7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3))': dependencies: - '@vanilla-extract/compiler': 0.3.0(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3) + '@vanilla-extract/compiler': 0.3.0(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3) '@vanilla-extract/integration': 8.0.4 - vite: 7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3) + vite: 7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -7568,23 +8180,35 @@ snapshots: - tsx - yaml - '@vitejs/plugin-react-swc@3.10.2(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3))': + '@vitejs/plugin-react-swc@3.11.0(vite@7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3))': dependencies: - '@rolldown/pluginutils': 1.0.0-beta.11 - '@swc/core': 1.12.9 - vite: 7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3) + '@rolldown/pluginutils': 1.0.0-beta.27 + '@swc/core': 1.13.2 + vite: 7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3) transitivePeerDependencies: - '@swc/helpers' - '@vitejs/plugin-react@4.6.0(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3))': + '@vitejs/plugin-react@4.7.0(vite@7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3))': dependencies: '@babel/core': 7.28.0 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.0) '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.0) - '@rolldown/pluginutils': 1.0.0-beta.19 + '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3) + vite: 7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-react@4.7.0(vite@7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3))': + dependencies: + '@babel/core': 7.28.0 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.0) + '@rolldown/pluginutils': 1.0.0-beta.27 + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3) transitivePeerDependencies: - supports-color @@ -7956,7 +8580,7 @@ snapshots: commander@10.0.1: {} - commander@7.2.0: {} + commander@11.1.0: {} compare-func@2.0.0: dependencies: @@ -7993,9 +8617,9 @@ snapshots: core-js-pure@3.43.0: {} - cosmiconfig-typescript-loader@6.1.0(@types/node@20.19.4)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3): + cosmiconfig-typescript-loader@6.1.0(@types/node@24.1.0)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3): dependencies: - '@types/node': 20.19.4 + '@types/node': 24.1.0 cosmiconfig: 9.0.0(typescript@5.8.3) jiti: 2.4.2 typescript: 5.8.3 @@ -8030,9 +8654,9 @@ snapshots: mdn-data: 2.0.28 source-map-js: 1.2.1 - css-tree@2.3.1: + css-tree@3.1.0: dependencies: - mdn-data: 2.0.30 + mdn-data: 2.12.2 source-map-js: 1.2.1 css-what@6.2.2: {} @@ -8302,10 +8926,10 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - esbuild-register@3.6.0(esbuild@0.25.5): + esbuild-register@3.6.0(esbuild@0.25.8): dependencies: debug: 4.4.1(supports-color@10.0.0) - esbuild: 0.25.5 + esbuild: 0.25.8 transitivePeerDependencies: - supports-color @@ -8337,6 +8961,35 @@ snapshots: '@esbuild/win32-ia32': 0.25.5 '@esbuild/win32-x64': 0.25.5 + esbuild@0.25.8: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.8 + '@esbuild/android-arm': 0.25.8 + '@esbuild/android-arm64': 0.25.8 + '@esbuild/android-x64': 0.25.8 + '@esbuild/darwin-arm64': 0.25.8 + '@esbuild/darwin-x64': 0.25.8 + '@esbuild/freebsd-arm64': 0.25.8 + '@esbuild/freebsd-x64': 0.25.8 + '@esbuild/linux-arm': 0.25.8 + '@esbuild/linux-arm64': 0.25.8 + '@esbuild/linux-ia32': 0.25.8 + '@esbuild/linux-loong64': 0.25.8 + '@esbuild/linux-mips64el': 0.25.8 + '@esbuild/linux-ppc64': 0.25.8 + '@esbuild/linux-riscv64': 0.25.8 + '@esbuild/linux-s390x': 0.25.8 + '@esbuild/linux-x64': 0.25.8 + '@esbuild/netbsd-arm64': 0.25.8 + '@esbuild/netbsd-x64': 0.25.8 + '@esbuild/openbsd-arm64': 0.25.8 + '@esbuild/openbsd-x64': 0.25.8 + '@esbuild/openharmony-arm64': 0.25.8 + '@esbuild/sunos-x64': 0.25.8 + '@esbuild/win32-arm64': 0.25.8 + '@esbuild/win32-ia32': 0.25.8 + '@esbuild/win32-x64': 0.25.8 + escalade@3.2.0: {} escape-string-regexp@1.0.5: {} @@ -8351,26 +9004,26 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-prettier@10.1.5(eslint@8.57.1): + eslint-config-prettier@10.1.8(eslint@8.57.1): dependencies: eslint: 8.57.1 - eslint-config-turbo@2.5.4(eslint@8.57.1)(turbo@2.5.4): + eslint-config-turbo@2.5.5(eslint@8.57.1)(turbo@2.5.5): dependencies: eslint: 8.57.1 - eslint-plugin-turbo: 2.5.4(eslint@8.57.1)(turbo@2.5.4) - turbo: 2.5.4 + eslint-plugin-turbo: 2.5.5(eslint@8.57.1)(turbo@2.5.5) + turbo: 2.5.5 eslint-plugin-only-warn@1.1.0: {} - eslint-plugin-prettier@5.5.1(eslint-config-prettier@10.1.5(eslint@8.57.1))(eslint@8.57.1)(prettier@3.6.2): + eslint-plugin-prettier@5.5.3(eslint-config-prettier@10.1.8(eslint@8.57.1))(eslint@8.57.1)(prettier@3.6.2): dependencies: eslint: 8.57.1 prettier: 3.6.2 prettier-linter-helpers: 1.0.0 synckit: 0.11.8 optionalDependencies: - eslint-config-prettier: 10.1.5(eslint@8.57.1) + eslint-config-prettier: 10.1.8(eslint@8.57.1) eslint-plugin-react-hooks@5.2.0(eslint@8.57.1): dependencies: @@ -8406,11 +9059,11 @@ snapshots: dependencies: eslint: 8.57.1 - eslint-plugin-turbo@2.5.4(eslint@8.57.1)(turbo@2.5.4): + eslint-plugin-turbo@2.5.5(eslint@8.57.1)(turbo@2.5.5): dependencies: dotenv: 16.0.3 eslint: 8.57.1 - turbo: 2.5.4 + turbo: 2.5.5 eslint-scope@5.1.1: dependencies: @@ -8497,7 +9150,7 @@ snapshots: eval@0.1.8: dependencies: - '@types/node': 20.19.4 + '@types/node': 20.19.9 require-like: 0.1.2 execa@5.1.1: @@ -9088,48 +9741,48 @@ snapshots: dependencies: json-buffer: 3.0.1 - lefthook-darwin-arm64@1.11.16: + lefthook-darwin-arm64@1.12.2: optional: true - lefthook-darwin-x64@1.11.16: + lefthook-darwin-x64@1.12.2: optional: true - lefthook-freebsd-arm64@1.11.16: + lefthook-freebsd-arm64@1.12.2: optional: true - lefthook-freebsd-x64@1.11.16: + lefthook-freebsd-x64@1.12.2: optional: true - lefthook-linux-arm64@1.11.16: + lefthook-linux-arm64@1.12.2: optional: true - lefthook-linux-x64@1.11.16: + lefthook-linux-x64@1.12.2: optional: true - lefthook-openbsd-arm64@1.11.16: + lefthook-openbsd-arm64@1.12.2: optional: true - lefthook-openbsd-x64@1.11.16: + lefthook-openbsd-x64@1.12.2: optional: true - lefthook-windows-arm64@1.11.16: + lefthook-windows-arm64@1.12.2: optional: true - lefthook-windows-x64@1.11.16: + lefthook-windows-x64@1.12.2: optional: true - lefthook@1.11.16: + lefthook@1.12.2: optionalDependencies: - lefthook-darwin-arm64: 1.11.16 - lefthook-darwin-x64: 1.11.16 - lefthook-freebsd-arm64: 1.11.16 - lefthook-freebsd-x64: 1.11.16 - lefthook-linux-arm64: 1.11.16 - lefthook-linux-x64: 1.11.16 - lefthook-openbsd-arm64: 1.11.16 - lefthook-openbsd-x64: 1.11.16 - lefthook-windows-arm64: 1.11.16 - lefthook-windows-x64: 1.11.16 + lefthook-darwin-arm64: 1.12.2 + lefthook-darwin-x64: 1.12.2 + lefthook-freebsd-arm64: 1.12.2 + lefthook-freebsd-x64: 1.12.2 + lefthook-linux-arm64: 1.12.2 + lefthook-linux-x64: 1.12.2 + lefthook-openbsd-arm64: 1.12.2 + lefthook-openbsd-x64: 1.12.2 + lefthook-windows-arm64: 1.12.2 + lefthook-windows-x64: 1.12.2 levn@0.4.1: dependencies: @@ -9223,7 +9876,7 @@ snapshots: mdn-data@2.0.28: {} - mdn-data@2.0.30: {} + mdn-data@2.12.2: {} media-query-parser@2.0.2: dependencies: @@ -9605,7 +10258,7 @@ snapshots: dependencies: '@babel/core': 7.28.0 '@babel/traverse': 7.28.0 - '@babel/types': 7.28.0 + '@babel/types': 7.28.1 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.7 '@types/doctrine': 0.0.9 @@ -9632,13 +10285,13 @@ snapshots: react-refresh@0.17.0: {} - react-router-dom@7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + react-router-dom@7.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-router: 7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-router: 7.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-router@7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + react-router@7.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: cookie: 1.0.2 react: 19.1.0 @@ -9759,6 +10412,33 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.44.1 fsevents: 2.3.3 + rollup@4.45.1: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.45.1 + '@rollup/rollup-android-arm64': 4.45.1 + '@rollup/rollup-darwin-arm64': 4.45.1 + '@rollup/rollup-darwin-x64': 4.45.1 + '@rollup/rollup-freebsd-arm64': 4.45.1 + '@rollup/rollup-freebsd-x64': 4.45.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.45.1 + '@rollup/rollup-linux-arm-musleabihf': 4.45.1 + '@rollup/rollup-linux-arm64-gnu': 4.45.1 + '@rollup/rollup-linux-arm64-musl': 4.45.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.45.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.45.1 + '@rollup/rollup-linux-riscv64-gnu': 4.45.1 + '@rollup/rollup-linux-riscv64-musl': 4.45.1 + '@rollup/rollup-linux-s390x-gnu': 4.45.1 + '@rollup/rollup-linux-x64-gnu': 4.45.1 + '@rollup/rollup-linux-x64-musl': 4.45.1 + '@rollup/rollup-win32-arm64-msvc': 4.45.1 + '@rollup/rollup-win32-ia32-msvc': 4.45.1 + '@rollup/rollup-win32-x64-msvc': 4.45.1 + fsevents: 2.3.3 + optional: true + run-async@2.4.1: {} run-parallel@1.2.0: @@ -9796,6 +10476,8 @@ snapshots: safer-buffer@2.1.2: {} + sax@1.4.1: {} + scheduler@0.26.0: {} semver@6.3.1: {} @@ -10009,15 +10691,15 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svgo@3.3.2: + svgo@4.0.0: dependencies: - '@trysound/sax': 0.2.0 - commander: 7.2.0 + commander: 11.1.0 css-select: 5.2.2 - css-tree: 2.3.1 + css-tree: 3.1.0 css-what: 6.2.2 csso: 5.0.5 picocolors: 1.1.1 + sax: 1.4.1 swap-case@1.1.2: dependencies: @@ -10071,14 +10753,14 @@ snapshots: ts-dedent@2.2.0: {} - ts-node@10.9.2(@swc/core@1.12.9)(@types/node@20.19.4)(typescript@5.8.3): + ts-node@10.9.2(@swc/core@1.13.2)(@types/node@20.19.9)(typescript@5.8.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': 20.19.4 + '@types/node': 20.19.9 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -10089,7 +10771,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.12.9 + '@swc/core': 1.13.2 tsconfck@3.1.6(typescript@5.8.3): optionalDependencies: @@ -10117,32 +10799,32 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - turbo-darwin-64@2.5.4: + turbo-darwin-64@2.5.5: optional: true - turbo-darwin-arm64@2.5.4: + turbo-darwin-arm64@2.5.5: optional: true - turbo-linux-64@2.5.4: + turbo-linux-64@2.5.5: optional: true - turbo-linux-arm64@2.5.4: + turbo-linux-arm64@2.5.5: optional: true - turbo-windows-64@2.5.4: + turbo-windows-64@2.5.5: optional: true - turbo-windows-arm64@2.5.4: + turbo-windows-arm64@2.5.5: optional: true - turbo@2.5.4: + turbo@2.5.5: optionalDependencies: - turbo-darwin-64: 2.5.4 - turbo-darwin-arm64: 2.5.4 - turbo-linux-64: 2.5.4 - turbo-linux-arm64: 2.5.4 - turbo-windows-64: 2.5.4 - turbo-windows-arm64: 2.5.4 + turbo-darwin-64: 2.5.5 + turbo-darwin-arm64: 2.5.5 + turbo-linux-64: 2.5.5 + turbo-linux-arm64: 2.5.5 + turbo-windows-64: 2.5.5 + turbo-windows-arm64: 2.5.5 type-check@0.4.0: dependencies: @@ -10203,6 +10885,8 @@ snapshots: undici-types@6.21.0: {} + undici-types@7.8.0: {} + undici@7.11.0: {} unicorn-magic@0.1.0: {} @@ -10253,13 +10937,34 @@ snapshots: validate-npm-package-name@5.0.1: {} - vite-node@3.2.4(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3): + vite-node@3.2.4(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3): + dependencies: + cac: 6.7.14 + debug: 4.4.1(supports-color@10.0.0) + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite-node@3.2.4(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3): dependencies: cac: 6.7.14 debug: 4.4.1(supports-color@10.0.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3) + vite: 7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3) transitivePeerDependencies: - '@types/node' - jiti @@ -10274,18 +10979,46 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3)): + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3)): dependencies: debug: 4.4.1(supports-color@10.0.0) globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.8.3) optionalDependencies: - vite: 7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3) + vite: 7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3) transitivePeerDependencies: - supports-color - typescript - vite@6.3.5(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3): + vite@6.3.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3): + dependencies: + esbuild: 0.25.5 + fdir: 6.4.6(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.6 + rollup: 4.44.1 + tinyglobby: 0.2.14 + optionalDependencies: + '@types/node': 20.19.9 + fsevents: 2.3.3 + jiti: 2.4.2 + tsx: 4.20.3 + + vite@6.3.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3): + dependencies: + esbuild: 0.25.5 + fdir: 6.4.6(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.6 + rollup: 4.44.1 + tinyglobby: 0.2.14 + optionalDependencies: + '@types/node': 24.1.0 + fsevents: 2.3.3 + jiti: 2.4.2 + tsx: 4.20.3 + + vite@7.0.5(@types/node@20.19.9)(jiti@2.4.2)(tsx@4.20.3): dependencies: esbuild: 0.25.5 fdir: 6.4.6(picomatch@4.0.2) @@ -10294,12 +11027,12 @@ snapshots: rollup: 4.44.1 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 20.19.4 + '@types/node': 20.19.9 fsevents: 2.3.3 jiti: 2.4.2 tsx: 4.20.3 - vite@7.0.2(@types/node@20.19.4)(jiti@2.4.2)(tsx@4.20.3): + vite@7.0.5(@types/node@24.1.0)(jiti@2.4.2)(tsx@4.20.3): dependencies: esbuild: 0.25.5 fdir: 6.4.6(picomatch@4.0.2) @@ -10308,7 +11041,7 @@ snapshots: rollup: 4.44.1 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 20.19.4 + '@types/node': 24.1.0 fsevents: 2.3.3 jiti: 2.4.2 tsx: 4.20.3 From c6051617ad86c02564720e87b668bbcb329eda6b Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Wed, 23 Jul 2025 22:29:18 +0900 Subject: [PATCH 06/27] =?UTF-8?q?refactor:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EC=A3=BC=EC=84=9D=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/client/src/shared/api/types/types.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/client/src/shared/api/types/types.ts b/apps/client/src/shared/api/types/types.ts index 4dbc7f9a..717855d3 100644 --- a/apps/client/src/shared/api/types/types.ts +++ b/apps/client/src/shared/api/types/types.ts @@ -51,7 +51,6 @@ export type FeedResponse = export type FeedRequest = paths['/posts']['post']['requestBody']['content']['application/json']; -// --- me post export type MePostResponse = paths['/users/me/posts']['get']['responses']['200']['content']['*/*']; export type MePostRequest = From 2be2781d023b2fe1cc76f38f6986298d3ec898a7 Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Wed, 23 Jul 2025 22:40:06 +0900 Subject: [PATCH 07/27] =?UTF-8?q?refactor:=20=EC=82=AC=EC=9A=A9=EC=9E=90,?= =?UTF-8?q?=20=EB=B3=B4=ED=97=98=20=EB=B0=8F=20=EC=BB=A4=EB=AE=A4=EB=8B=88?= =?UTF-8?q?=ED=8B=B0=20=EA=B4=80=EB=A0=A8=20=ED=83=80=EC=9E=85=20=EC=A0=95?= =?UTF-8?q?=EC=9D=98=20=EC=A0=95=EB=A6=AC=20=EB=B0=8F=20=EC=A3=BC=EC=84=9D?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/client/src/shared/api/types/types.ts | 100 +++++++++++++++++++++- 1 file changed, 97 insertions(+), 3 deletions(-) diff --git a/apps/client/src/shared/api/types/types.ts b/apps/client/src/shared/api/types/types.ts index 717855d3..24215acc 100644 --- a/apps/client/src/shared/api/types/types.ts +++ b/apps/client/src/shared/api/types/types.ts @@ -1,87 +1,181 @@ import { paths } from '@shared/types/schema'; -// USER +/* ======================================================= + * 📌 USER 관련 타입 + * ======================================================= */ + +/** + * @description 내 프로필 정보 조회 응답 + */ export type UserProfile = paths['/users/info']['get']['responses']['200']['content']['*/*']; +/** + * @description 내 보험 요약 정보 응답 + */ export type ReportSummaryRes = paths['/users/me/report-summary']['get']['responses']['200']['content']['*/*']; +/** + * @description 직업 정보 목록 응답 + */ export type UserInfoJobs = paths['/user-infos/jobs']['get']['responses']['200']['content']['*/*']; +/** + * @description 진단받은 질병 정보 목록 응답 + */ export type UserInfoDiseases = paths['/user-infos/diagnosed-disease']['get']['responses']['200']['content']['*/*']; +/** + * @description 선택된 보장 정보 목록 응답 + */ export type UserInfoCoverages = paths['/user-infos/coverage-select']['get']['responses']['200']['content']['*/*']; +/** + * @description 보험 리포트 제출 요청 바디 + */ export type UserInfoSubmitRequest = paths['/insurances/reports']['post']['requestBody']['content']['application/json']; +/** + * @description 보험 리포트 제출 성공 응답 + */ export type UserInfoSubmitResponse = paths['/insurances/reports']['post']['responses']['200']['content']['*/*']; -// INSURANCE +/* ======================================================= + * 📌 INSURANCE 관련 타입 + * ======================================================= */ + +/** + * @description 특정 보험 리포트 상세 조회 응답 + */ export type InsuranceReport = paths['/insurances/reports/{insurance-report-id}']['get']['responses']['200']['content']['*/*']; +/** + * @description 내 보험 요약 데이터 (ReportSummaryRes의 data 필드) + */ export type InsuranceSummary = paths['/users/me/report-summary']['get']['responses']['200']['content']['*/*']['data']; +/** + * @description 주요 질병 보장 리포트 응답 + */ export type InsuranceKeunbyeongReport = paths['/insurances/reports/{insurance-report-id}/major-disease']['get']['responses']['200']['content']['*/*']; +/** + * @description 수술 보장 리포트 응답 + */ export type InsuranceSusulReport = paths['/insurances/reports/{insurance-report-id}/surgery']['get']['responses']['200']['content']['*/*']; +/** + * @description 입원 보장 리포트 응답 + */ export type InsuranceIpwonReport = paths['/insurances/reports/{insurance-report-id}/hospitalization']['get']['responses']['200']['content']['*/*']; +/** + * @description 장해(장애) 보장 리포트 응답 + */ export type InsuranceJanghaeReport = paths['/insurances/reports/{insurance-report-id}/disability']['get']['responses']['200']['content']['*/*']; +/** + * @description 사망 보장 리포트 응답 + */ export type InsuranceSamangReport = paths['/insurances/reports/{insurance-report-id}/death']['get']['responses']['200']['content']['*/*']; -// COMMUNITY +/* ======================================================= + * 📌 COMMUNITY 관련 타입 + * ======================================================= */ + +/** + * @description 피드 작성 성공 응답 + */ export type FeedResponse = paths['/posts']['post']['responses']['200']['content']; +/** + * @description 피드 작성 요청 바디 + */ export type FeedRequest = paths['/posts']['post']['requestBody']['content']['application/json']; +/** + * @description 내 피드 목록 조회 응답 + */ export type MePostResponse = paths['/users/me/posts']['get']['responses']['200']['content']['*/*']; + +/** + * @description 내 피드 목록 조회 쿼리 파라미터 + */ export type MePostRequest = paths['/users/me/posts']['get']['parameters']['query']; +/** + * @description 댓글 작성 성공 응답 + */ export type CommentPostResponse = paths['/posts/{post-id}/comments']['post']['responses']['200']['content']; +/** + * @description 댓글 작성 요청 바디 + */ export type CommentPostRequest = paths['/posts/{post-id}/comments']['post']['requestBody']['content']['application/json']; +/** + * @description 피드 상세 조회 응답 + */ export type FeedDetailResponse = paths['/posts/{post-id}']['get']['responses']['200']['content']['*/*']['data']; +/** + * @description 피드 목록(프리뷰) 조회 응답 + */ export type FeedPreviewResponse = paths['/posts']['get']['responses']['200']['content']['*/*']['data']; +/** + * @description 댓글 목록 조회 응답 + */ export type CommentResponse = paths['/posts/{post-id}/comments']['get']['responses']['200']['content']['*/*']; +/** + * @description 댓글 목록 조회 쿼리 파라미터 + */ export type CommentRequest = paths['/posts/{post-id}/comments']['get']['parameters']['query']; +/** + * @description 댓글 삭제 성공 응답 + */ export type CommentDeleteResponse = paths['/posts/{post-id}/comments/{comment-id}']['delete']['responses']['200']['content']['*/*']; +/** + * @description 피드 수정 요청 경로 파라미터 + */ export type FeedUpdateResponse = paths['/posts/{post-id}']['put']['parameters']['path']; +/** + * @description 피드 수정 요청 바디 + */ export type FeedUpdateRequestBody = paths['/posts/{post-id}']['put']['requestBody']['content']['application/json']; +/** + * @description 피드 삭제 성공 응답 + */ export type FeedDeleteResponse = paths['/posts/{post-id}']['delete']['responses']['200']['content']['*/*']; From ccd89e99d9a1231a16287d688914c53254453c0a Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Wed, 23 Jul 2025 22:40:56 +0900 Subject: [PATCH 08/27] =?UTF-8?q?refactor:=20landing=20=EC=BF=BC=EB=A6=AC?= =?UTF-8?q?=20=ED=8C=8C=EC=9D=BC=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/client/src/shared/api/domain/landing/queries.ts | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 apps/client/src/shared/api/domain/landing/queries.ts diff --git a/apps/client/src/shared/api/domain/landing/queries.ts b/apps/client/src/shared/api/domain/landing/queries.ts deleted file mode 100644 index e69de29b..00000000 From 995165fe30fa5be79c465c507f3faee4862291d2 Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Wed, 23 Jul 2025 23:08:53 +0900 Subject: [PATCH 09/27] =?UTF-8?q?refactor:=20=EB=AC=B4=ED=95=9C=20?= =?UTF-8?q?=EC=8A=A4=ED=81=AC=EB=A1=A4=20=EC=BF=BC=EB=A6=AC=20=EC=98=B5?= =?UTF-8?q?=EC=85=98=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD=20=EB=B0=8F=20?= =?UTF-8?q?=EC=A4=91=EB=B3=B5=20=EC=BD=94=EB=93=9C=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/shared/api/domain/mypage/queries.ts | 35 ++++++++++++------- apps/client/src/widgets/mypage/preview.tsx | 6 ---- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/apps/client/src/shared/api/domain/mypage/queries.ts b/apps/client/src/shared/api/domain/mypage/queries.ts index bff1aedd..90f3ce0c 100644 --- a/apps/client/src/shared/api/domain/mypage/queries.ts +++ b/apps/client/src/shared/api/domain/mypage/queries.ts @@ -1,4 +1,4 @@ -import { queryOptions } from '@tanstack/react-query'; +import { infiniteQueryOptions, queryOptions } from '@tanstack/react-query'; import { END_POINT } from '@shared/api/config/end-point.ts'; import { api } from '@shared/api/config/instance'; @@ -6,20 +6,29 @@ import { USER_QUERY_KEY } from '@shared/api/keys/query-key.ts'; import { MePostResponse, UserProfile } from '@shared/api/types/types'; export const USER_QUERY_OPTIONS = { - PROFILE: () => { - return queryOptions({ + PROFILE: () => + queryOptions({ queryKey: USER_QUERY_KEY.PROFILE(), queryFn: getUserProfile, - }); - }, - ME_POSTS: () => ({ - queryKey: USER_QUERY_KEY.ME_POSTS(), - queryFn: ({ pageParam = 0 }) => getMePosts({ pageParam }), - }), - ME_COMMENTS: () => ({ - queryKey: USER_QUERY_KEY.ME_COMMENTS(), - queryFn: ({ pageParam = 0 }) => getMeComments({ pageParam }), - }), + }), + + ME_POSTS: () => + infiniteQueryOptions({ + queryKey: USER_QUERY_KEY.ME_POSTS(), + queryFn: ({ pageParam = 0 }) => getMePosts({ pageParam }), + getNextPageParam: (lastPage) => + lastPage.isLast ? undefined : lastPage.nextCursor, + initialPageParam: 0, + }), + + ME_COMMENTS: () => + infiniteQueryOptions({ + queryKey: USER_QUERY_KEY.ME_COMMENTS(), + queryFn: ({ pageParam = 0 }) => getMeComments({ pageParam }), + getNextPageParam: (lastPage) => + lastPage.isLast ? undefined : lastPage.nextCursor, + initialPageParam: 0, + }), }; export const getUserProfile = async (): Promise => { diff --git a/apps/client/src/widgets/mypage/preview.tsx b/apps/client/src/widgets/mypage/preview.tsx index fa9b83ac..39777bc8 100644 --- a/apps/client/src/widgets/mypage/preview.tsx +++ b/apps/client/src/widgets/mypage/preview.tsx @@ -34,9 +34,6 @@ const Preview = () => { } = useInfiniteQuery({ ...USER_QUERY_OPTIONS.ME_POSTS(), enabled: activeTab === PREVIEW_TABS.POSTS, - getNextPageParam: (lastPage) => - lastPage.isLast ? undefined : lastPage.nextCursor, - initialPageParam: 0, }); const { @@ -47,9 +44,6 @@ const Preview = () => { } = useInfiniteQuery({ ...USER_QUERY_OPTIONS.ME_COMMENTS(), enabled: activeTab === PREVIEW_TABS.COMMENTS, - getNextPageParam: (lastPage) => - lastPage.isLast ? undefined : lastPage.nextCursor, - initialPageParam: 0, }); const posts = postData?.pages.flatMap((page) => page.content ?? []) ?? []; From d4718cd5291f4889780c917175f2407c39746af8 Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Wed, 23 Jul 2025 23:20:02 +0900 Subject: [PATCH 10/27] =?UTF-8?q?refactor:=20=EB=AC=B4=ED=95=9C=20?= =?UTF-8?q?=EC=8A=A4=ED=81=AC=EB=A1=A4=20=EC=BF=BC=EB=A6=AC=20=EC=98=B5?= =?UTF-8?q?=EC=85=98=20=ED=86=B5=ED=95=A9=20=EB=B0=8F=20=EC=B4=88=EA=B8=B0?= =?UTF-8?q?=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=A7=A4=EA=B0=9C=EB=B3=80?= =?UTF-8?q?=EC=88=98=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../community-detail/community-detail.tsx | 3 -- .../src/pages/community/community-page.tsx | 3 -- .../shared/api/domain/community/queries.ts | 28 +++++++++++++------ 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/apps/client/src/pages/community/community-detail/community-detail.tsx b/apps/client/src/pages/community/community-detail/community-detail.tsx index ef35b5c4..03b6550f 100644 --- a/apps/client/src/pages/community/community-detail/community-detail.tsx +++ b/apps/client/src/pages/community/community-detail/community-detail.tsx @@ -69,9 +69,6 @@ const CommunityDetail = () => { isFetchingNextPage, } = useInfiniteQuery({ ...COMMUNITY_QUERY_OPTIONS.COMMENTS(postId), - getNextPageParam: (lastPage) => - lastPage?.data?.nextCursor ? lastPage.data.nextCursor : undefined, - initialPageParam: 0, }); const allComments = diff --git a/apps/client/src/pages/community/community-page.tsx b/apps/client/src/pages/community/community-page.tsx index 2a7a1547..fac5f6b8 100644 --- a/apps/client/src/pages/community/community-page.tsx +++ b/apps/client/src/pages/community/community-page.tsx @@ -21,9 +21,6 @@ const CommunityPage = () => { const { data, fetchNextPage, hasNextPage, isFetchingNextPage } = useInfiniteQuery({ ...COMMUNITY_QUERY_OPTIONS.POSTS(), - getNextPageParam: (lastPage) => - lastPage?.isLast ? undefined : lastPage?.nextCursor, - initialPageParam: 0, }); const feedObserverRef = useIntersectionObserver(() => { diff --git a/apps/client/src/shared/api/domain/community/queries.ts b/apps/client/src/shared/api/domain/community/queries.ts index eccad995..04990ec8 100644 --- a/apps/client/src/shared/api/domain/community/queries.ts +++ b/apps/client/src/shared/api/domain/community/queries.ts @@ -1,4 +1,5 @@ import { + infiniteQueryOptions, queryOptions, useMutation, useQueryClient, @@ -124,15 +125,24 @@ export const PUT_FEED = (onSuccessCallback?: () => void) => { }; export const COMMUNITY_QUERY_OPTIONS = { - COMMENTS: (postId?: string) => ({ - queryKey: COMMUNITY_QUERY_KEY.COMMENTS(postId), - queryFn: ({ pageParam = 0 }) => getAllComments(postId, { pageParam }), - }), - POSTS: () => ({ - queryKey: COMMUNITY_QUERY_KEY.FEED_PREVIEW(), - queryFn: ({ pageParam = 0 }) => - getAllPosts({ pageParam: pageParam as number }), - }), + POSTS: () => + infiniteQueryOptions({ + queryKey: COMMUNITY_QUERY_KEY.FEED_PREVIEW(), + queryFn: ({ pageParam = 0 }) => + getAllPosts({ pageParam: pageParam as number }), + getNextPageParam: (lastPage) => + lastPage?.isLast ? undefined : lastPage?.nextCursor, + initialPageParam: 0, + }), + + COMMENTS: (postId?: string) => + infiniteQueryOptions({ + queryKey: COMMUNITY_QUERY_KEY.COMMENTS(postId), + queryFn: ({ pageParam = 0 }) => getAllComments(postId, { pageParam }), + getNextPageParam: (lastPage) => + lastPage?.data?.nextCursor ? lastPage.data.nextCursor : undefined, + initialPageParam: 0, + }), }; export const getAllPosts = async ({ From 8828b7ac6795b606332a617b25396d91a37a8a47 Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Wed, 23 Jul 2025 23:37:25 +0900 Subject: [PATCH 11/27] =?UTF-8?q?refactor:=20=EC=BB=A4=EB=AE=A4=EB=8B=88?= =?UTF-8?q?=ED=8B=B0=20=EC=BF=BC=EB=A6=AC=20=EC=98=B5=EC=85=98=20=ED=86=B5?= =?UTF-8?q?=ED=95=A9=20=EB=B0=8F=20=EB=B6=88=ED=95=84=EC=9A=94=ED=95=9C=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../community-detail/community-detail.tsx | 5 +- .../shared/api/domain/community/queries.ts | 101 +++++++++--------- 2 files changed, 52 insertions(+), 54 deletions(-) diff --git a/apps/client/src/pages/community/community-detail/community-detail.tsx b/apps/client/src/pages/community/community-detail/community-detail.tsx index 03b6550f..5bbdfd26 100644 --- a/apps/client/src/pages/community/community-detail/community-detail.tsx +++ b/apps/client/src/pages/community/community-detail/community-detail.tsx @@ -18,7 +18,6 @@ import { useDeleteComment, useDeleteFeed, } from '@shared/api/domain/community/queries'; -import { POST_FEED_DETAIL_OPTIONS } from '@shared/api/domain/community/queries'; import { USER_QUERY_OPTIONS } from '@shared/api/domain/onboarding/queries'; import { useIntersectionObserver } from '@shared/hooks/use-intersection-observer'; import { useLimitedInput } from '@shared/hooks/use-limited-input'; @@ -51,7 +50,9 @@ const CommunityDetail = () => { throw new Error('postId가 없습니다.'); } - const { data } = useSuspenseQuery(POST_FEED_DETAIL_OPTIONS.DETAIL(postId)); + const { data } = useSuspenseQuery( + COMMUNITY_QUERY_OPTIONS.FEED_DETAIL(postId), + ); const { data: queryData } = useSuspenseQuery(USER_QUERY_OPTIONS.PROFILE()); const userData = queryData?.data; diff --git a/apps/client/src/shared/api/domain/community/queries.ts b/apps/client/src/shared/api/domain/community/queries.ts index 04990ec8..d0588327 100644 --- a/apps/client/src/shared/api/domain/community/queries.ts +++ b/apps/client/src/shared/api/domain/community/queries.ts @@ -21,16 +21,61 @@ import { FeedUpdateResponse, } from '@shared/api/types/types'; -export const POST_FEED_DETAIL_OPTIONS = { - DETAIL: (postId: string) => { +export const COMMUNITY_QUERY_OPTIONS = { + POSTS: () => + infiniteQueryOptions({ + queryKey: COMMUNITY_QUERY_KEY.FEED_PREVIEW(), + queryFn: ({ pageParam = 0 }) => + getAllFeed({ pageParam: pageParam as number }), + getNextPageParam: (lastPage) => + lastPage?.isLast ? undefined : lastPage?.nextCursor, + initialPageParam: 0, + }), + + COMMENTS: (postId?: string) => + infiniteQueryOptions({ + queryKey: COMMUNITY_QUERY_KEY.COMMENTS(postId), + queryFn: ({ pageParam = 0 }) => getAllComments(postId, { pageParam }), + getNextPageParam: (lastPage) => + lastPage?.data?.nextCursor ? lastPage.data.nextCursor : undefined, + initialPageParam: 0, + }), + FEED_DETAIL: (postId: string) => { return queryOptions({ queryKey: COMMUNITY_QUERY_KEY.FEED_DETAIL(postId).concat(), - queryFn: () => getFeedDeatil(postId), + queryFn: () => getFeedDetail(postId), }); }, }; -export const getFeedDeatil = async ( +export const getAllFeed = async ({ + pageParam, +}: { pageParam?: number } = {}): Promise => { + const url = + pageParam === 0 + ? `${END_POINT.COMMUNITY.GET_FEED}?size=10` + : `${END_POINT.COMMUNITY.GET_FEED}?cursor=${pageParam}&size=10`; + + const response = await api.get(url).json(); + + return response.data; +}; + +export const getAllComments = async ( + postId?: string, + { pageParam }: { pageParam?: number } = {}, +): Promise => { + const url = + pageParam === 0 + ? `${END_POINT.COMMUNITY.GET_COMMENTS(postId)}?size=10` + : `${END_POINT.COMMUNITY.GET_COMMENTS(postId)}?cursor=${pageParam}&size=10`; + + const response = await api.get(url).json(); + + return response; +}; + +export const getFeedDetail = async ( postId: string, ): Promise => { const response = await api @@ -124,54 +169,6 @@ export const PUT_FEED = (onSuccessCallback?: () => void) => { }); }; -export const COMMUNITY_QUERY_OPTIONS = { - POSTS: () => - infiniteQueryOptions({ - queryKey: COMMUNITY_QUERY_KEY.FEED_PREVIEW(), - queryFn: ({ pageParam = 0 }) => - getAllPosts({ pageParam: pageParam as number }), - getNextPageParam: (lastPage) => - lastPage?.isLast ? undefined : lastPage?.nextCursor, - initialPageParam: 0, - }), - - COMMENTS: (postId?: string) => - infiniteQueryOptions({ - queryKey: COMMUNITY_QUERY_KEY.COMMENTS(postId), - queryFn: ({ pageParam = 0 }) => getAllComments(postId, { pageParam }), - getNextPageParam: (lastPage) => - lastPage?.data?.nextCursor ? lastPage.data.nextCursor : undefined, - initialPageParam: 0, - }), -}; - -export const getAllPosts = async ({ - pageParam, -}: { pageParam?: number } = {}): Promise => { - const url = - pageParam === 0 - ? `${END_POINT.COMMUNITY.GET_FEED}?size=10` - : `${END_POINT.COMMUNITY.GET_FEED}?cursor=${pageParam}&size=10`; - - const response = await api.get(url).json(); - - return response.data; -}; - -export const getAllComments = async ( - postId?: string, - { pageParam }: { pageParam?: number } = {}, -): Promise => { - const url = - pageParam === 0 - ? `${END_POINT.COMMUNITY.GET_COMMENTS(postId)}?size=10` - : `${END_POINT.COMMUNITY.GET_COMMENTS(postId)}?cursor=${pageParam}&size=10`; - - const response = await api.get(url).json(); - - return response; -}; - export const deleteFeed = async ( postId?: string, ): Promise => { From 071e0c18d04f986fd9202dadb61d4047ffa5339b Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Thu, 24 Jul 2025 01:27:18 +0900 Subject: [PATCH 12/27] =?UTF-8?q?refactor:=20=EC=BB=A4=EB=AE=A4=EB=8B=88?= =?UTF-8?q?=ED=8B=B0=20=EA=B4=80=EB=A0=A8=20=EB=AE=A4=ED=85=8C=EC=9D=B4?= =?UTF-8?q?=EC=85=98=20=ED=82=A4=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/client/src/shared/api/keys/query-key.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/apps/client/src/shared/api/keys/query-key.ts b/apps/client/src/shared/api/keys/query-key.ts index c146e7e9..17f87496 100644 --- a/apps/client/src/shared/api/keys/query-key.ts +++ b/apps/client/src/shared/api/keys/query-key.ts @@ -1,3 +1,5 @@ +import { D } from 'node_modules/@tanstack/react-query-devtools/build/modern/ReactQueryDevtools-Cn7cKi7o'; + export const INSURANCE_QUERY_KEY = { ALL: ['insurances'], REPORT: () => [...INSURANCE_QUERY_KEY.ALL, 'report'], @@ -35,6 +37,23 @@ export const COMMUNITY_QUERY_KEY = { ], }; +export const COMMUNITY_MUTATION_KEY = { + POST_COMMENT: () => [...COMMUNITY_QUERY_KEY.COMMENTS(), 'create'], + POST_FEED: () => [...COMMUNITY_QUERY_KEY.FEED_PREVIEW(), 'create'], + PUT_FEED: (postId: string) => [ + ...COMMUNITY_QUERY_KEY.FEED_DETAIL(postId), + 'update', + ], + DELETE_FEED: (postId: string) => [ + ...COMMUNITY_QUERY_KEY.FEED_DETAIL(postId), + 'delete', + ], + DELETE_COMMENT: (postId: string) => [ + ...COMMUNITY_QUERY_KEY.COMMENTS(postId), + 'delete', + ], +} as const; + export const HOME_QUERY_KEY = { ALL: ['home'], REPORT_SUMMARY: () => [...HOME_QUERY_KEY.ALL, 'report_summary'], From 6942d26eb5971f728dea232ba2b5b460d43240cf Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Thu, 24 Jul 2025 01:32:28 +0900 Subject: [PATCH 13/27] =?UTF-8?q?refactor:=20=EC=BB=A4=EB=AE=A4=EB=8B=88?= =?UTF-8?q?=ED=8B=B0=20=EB=AE=A4=ED=85=8C=EC=9D=B4=EC=85=98=20=EC=98=B5?= =?UTF-8?q?=EC=85=98=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EA=B4=80=EB=A0=A8?= =?UTF-8?q?=20=EC=BD=94=EB=93=9C=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shared/api/domain/community/queries.ts | 203 ++++++++++-------- 1 file changed, 108 insertions(+), 95 deletions(-) diff --git a/apps/client/src/shared/api/domain/community/queries.ts b/apps/client/src/shared/api/domain/community/queries.ts index d0588327..2eed1881 100644 --- a/apps/client/src/shared/api/domain/community/queries.ts +++ b/apps/client/src/shared/api/domain/community/queries.ts @@ -1,13 +1,15 @@ import { infiniteQueryOptions, + mutationOptions, queryOptions, - useMutation, - useQueryClient, } from '@tanstack/react-query'; import { END_POINT } from '@shared/api/config/end-point'; import { api } from '@shared/api/config/instance'; -import { COMMUNITY_QUERY_KEY } from '@shared/api/keys/query-key'; +import { + COMMUNITY_MUTATION_KEY, + COMMUNITY_QUERY_KEY, +} from '@shared/api/keys/query-key'; import { CommentDeleteResponse, CommentPostResponse, @@ -21,6 +23,10 @@ import { FeedUpdateResponse, } from '@shared/api/types/types'; +// ============================================================================= +// QUERY OPTIONS +// ============================================================================= + export const COMMUNITY_QUERY_OPTIONS = { POSTS: () => infiniteQueryOptions({ @@ -40,6 +46,7 @@ export const COMMUNITY_QUERY_OPTIONS = { lastPage?.data?.nextCursor ? lastPage.data.nextCursor : undefined, initialPageParam: 0, }), + FEED_DETAIL: (postId: string) => { return queryOptions({ queryKey: COMMUNITY_QUERY_KEY.FEED_DETAIL(postId).concat(), @@ -48,6 +55,16 @@ export const COMMUNITY_QUERY_OPTIONS = { }, }; +// ============================================================================= +// QUERY FUNCTIONS +// ============================================================================= + +/** + * 모든 게시글을 페이지네이션으로 가져옵니다. + * @param options - 페이지네이션 옵션 + * @param options.pageParam - 페이지 파라미터 (기본값: 0) + * @returns 게시글 미리보기 응답 데이터 + */ export const getAllFeed = async ({ pageParam, }: { pageParam?: number } = {}): Promise => { @@ -61,6 +78,13 @@ export const getAllFeed = async ({ return response.data; }; +/** + * 특정 게시글의 모든 댓글을 페이지네이션으로 가져옵니다. + * @param postId - 댓글을 가져올 게시글 ID + * @param options - 페이지네이션 옵션 + * @param options.pageParam - 페이지 파라미터 (기본값: 0) + * @returns 댓글 응답 데이터 또는 null + */ export const getAllComments = async ( postId?: string, { pageParam }: { pageParam?: number } = {}, @@ -75,6 +99,11 @@ export const getAllComments = async ( return response; }; +/** + * 특정 게시글의 상세 정보를 가져옵니다. + * @param postId - 상세 정보를 가져올 게시글 ID + * @returns 게시글 상세 응답 데이터 또는 null + */ export const getFeedDetail = async ( postId: string, ): Promise => { @@ -85,6 +114,59 @@ export const getFeedDetail = async ( return response.data; }; +// ============================================================================= +// MUTATION OPTIONS +// ============================================================================= + +export const COMMUNITY_MUTATION_OPTIONS = { + POST_COMMENT: () => { + return mutationOptions({ + mutationKey: COMMUNITY_MUTATION_KEY.POST_COMMENT(), + mutationFn: postComment, + }); + }, + + POST_FEED: () => { + return mutationOptions({ + mutationKey: COMMUNITY_MUTATION_KEY.POST_FEED(), + mutationFn: postFeed, + }); + }, + + PUT_FEED: (postId: string) => { + return mutationOptions({ + mutationKey: COMMUNITY_MUTATION_KEY.PUT_FEED(postId), + mutationFn: ({ body }: { body: FeedUpdateRequestBody }) => + putFeed(postId, body), + }); + }, + + DELETE_FEED: (postId: string) => { + return mutationOptions({ + mutationKey: COMMUNITY_MUTATION_KEY.DELETE_FEED(postId), + mutationFn: () => deleteFeed(postId), + }); + }, + + DELETE_COMMENT: (postId: string) => { + return mutationOptions({ + mutationKey: COMMUNITY_MUTATION_KEY.DELETE_COMMENT(postId), + mutationFn: (commentId?: string) => deleteComment(postId, commentId), + }); + }, +}; + +// ============================================================================= +// MUTATION FUNCTIONS +// ============================================================================= + +/** + * 게시글에 댓글을 작성합니다. + * @param params - 댓글 작성 파라미터 + * @param params.postId - 댓글을 작성할 게시글 ID + * @param params.content - 댓글 내용 + * @returns 댓글 작성 응답 데이터 + */ export const postComment = async (params: { postId: string; content: string; @@ -98,43 +180,23 @@ export const postComment = async (params: { .json(); }; -export const POST_COMMENT = (onSuccessCallback?: () => void) => { - const queryClient = useQueryClient(); - - return useMutation({ - mutationFn: postComment, - onSuccess: (_data, variables) => { - queryClient.invalidateQueries({ - queryKey: COMMUNITY_QUERY_KEY.COMMENTS(variables.postId), - }); - queryClient.invalidateQueries({ - queryKey: COMMUNITY_QUERY_KEY.FEED_DETAIL(variables.postId), - }); - if (onSuccessCallback) { - onSuccessCallback(); - } - }, - }); -}; - +/** + * 새 게시글을 작성합니다. + * @param body - 게시글 작성 요청 데이터 + * @returns 게시글 작성 응답 데이터 + */ export const postFeed = async (body: FeedRequest): Promise => { return api .post(END_POINT.COMMUNITY.POST_FEED, { json: body }) .json(); }; -export const usePostFeed = (onSuccessCallback?: () => void) => { - return useMutation({ - mutationFn: postFeed, - onSuccess: () => { - // @TODO 게시글 조회 쿼리키 초기화 로직 추가 - if (onSuccessCallback) { - onSuccessCallback(); - } - }, - }); -}; - +/** + * 기존 게시글을 수정합니다. + * @param postId - 수정할 게시글 ID + * @param body - 게시글 수정 요청 데이터 + * @returns 게시글 수정 응답 데이터 + */ export const putFeed = async ( postId: string, body: FeedUpdateRequestBody, @@ -146,31 +208,13 @@ export const putFeed = async ( .json(); }; -export const PUT_FEED = (onSuccessCallback?: () => void) => { - const queyrClient = useQueryClient(); - - return useMutation({ - mutationFn: ({ - postId, - body, - }: { - postId: string; - body: FeedUpdateRequestBody; - }) => putFeed(postId, body), - onSuccess: async (_data, variables) => { - await queyrClient.invalidateQueries({ - queryKey: COMMUNITY_QUERY_KEY.FEED_DETAIL(variables.postId), - }); - - if (onSuccessCallback) { - onSuccessCallback; - } - }, - }); -}; - +/** + * 게시글을 삭제합니다. + * @param postId - 삭제할 게시글 ID + * @returns 게시글 삭제 응답 데이터 + */ export const deleteFeed = async ( - postId?: string, + postId: string, ): Promise => { const response = await api .delete(`${END_POINT.COMMUNITY.DELETE_FEED}/${postId}`) @@ -178,20 +222,12 @@ export const deleteFeed = async ( return response; }; -export const useDeleteFeed = (onSuccessCallback?: () => void) => { - const queryClient = useQueryClient(); - - return useMutation({ - mutationFn: (postId: string) => deleteFeed(postId), - onSuccess: async () => { - await queryClient.invalidateQueries({ queryKey: ['feeds'] }); - if (onSuccessCallback) { - onSuccessCallback(); - } - }, - }); -}; - +/** + * 댓글을 삭제합니다. + * @param postId - 댓글이 속한 게시글 ID + * @param commentId - 삭제할 댓글 ID + * @returns 댓글 삭제 응답 데이터 + */ export const deleteComment = async ( postId?: string, commentId?: string, @@ -203,26 +239,3 @@ export const deleteComment = async ( .json(); return response; }; - -export const useDeleteComment = ( - postId: string, - onSuccessCallback?: () => void, -) => { - const queryClient = useQueryClient(); - - return useMutation({ - mutationFn: (commentId?: string) => deleteComment(postId, commentId), - onSuccess: async () => { - await queryClient.invalidateQueries({ - queryKey: COMMUNITY_QUERY_KEY.COMMENTS(postId), - }); - await queryClient.invalidateQueries({ - queryKey: COMMUNITY_QUERY_KEY.FEED_DETAIL(postId), - }); - - if (onSuccessCallback) { - onSuccessCallback(); - } - }, - }); -}; From 82faa70d0b47a3ea47b83d8a23c84afe196174e3 Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Thu, 24 Jul 2025 01:32:35 +0900 Subject: [PATCH 14/27] =?UTF-8?q?refactor:=20=EC=BB=A4=EB=AE=A4=EB=8B=88?= =?UTF-8?q?=ED=8B=B0=20=EB=AE=A4=ED=85=8C=EC=9D=B4=EC=85=98=20=ED=86=B5?= =?UTF-8?q?=ED=95=A9=20=EB=B0=8F=20=EA=B4=80=EB=A0=A8=20=EC=BD=94=EB=93=9C?= =?UTF-8?q?=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../community-detail/community-detail.tsx | 82 +++++++++++++------ .../community-edit/community-edit.tsx | 26 +++--- .../community-write/community-write.tsx | 17 ++-- 3 files changed, 84 insertions(+), 41 deletions(-) diff --git a/apps/client/src/pages/community/community-detail/community-detail.tsx b/apps/client/src/pages/community/community-detail/community-detail.tsx index 5bbdfd26..bfcfe752 100644 --- a/apps/client/src/pages/community/community-detail/community-detail.tsx +++ b/apps/client/src/pages/community/community-detail/community-detail.tsx @@ -1,5 +1,10 @@ import { useState } from 'react'; -import { useInfiniteQuery, useSuspenseQuery } from '@tanstack/react-query'; +import { + useInfiniteQuery, + useMutation, + useQueryClient, + useSuspenseQuery, +} from '@tanstack/react-query'; import { useParams } from 'react-router'; import { useNavigate } from 'react-router-dom'; @@ -13,10 +18,8 @@ import UserComment from '@widgets/community/components/user-comment/user-comment import { EMPTY_COMMENT } from '@widgets/community/constant/empty-content'; import { + COMMUNITY_MUTATION_OPTIONS, COMMUNITY_QUERY_OPTIONS, - POST_COMMENT, - useDeleteComment, - useDeleteFeed, } from '@shared/api/domain/community/queries'; import { USER_QUERY_OPTIONS } from '@shared/api/domain/onboarding/queries'; import { useIntersectionObserver } from '@shared/hooks/use-intersection-observer'; @@ -36,6 +39,7 @@ const DELETE_MODAL = { content: '삭제한 댓글은 복원되지 않습니다.', }, }; +import { COMMUNITY_QUERY_KEY } from '@shared/api/keys/query-key'; import { LIMIT_MEDIUM_TEXT } from '@shared/constants/text-limits'; import { virtualRef } from '@widgets/mypage/preview.css'; @@ -45,6 +49,7 @@ const CommunityDetail = () => { const [content, setContent] = useState(''); const { postId } = useParams<{ postId: string }>(); const { isErrorState } = useLimitedInput(LIMIT_MEDIUM_TEXT, content.length); + const queryClient = useQueryClient(); if (!postId) { throw new Error('postId가 없습니다.'); @@ -53,8 +58,55 @@ const CommunityDetail = () => { const { data } = useSuspenseQuery( COMMUNITY_QUERY_OPTIONS.FEED_DETAIL(postId), ); + const { + data: comments, + fetchNextPage, + hasNextPage, + isFetchingNextPage, + } = useInfiniteQuery({ + ...COMMUNITY_QUERY_OPTIONS.COMMENTS(postId), + }); const { data: queryData } = useSuspenseQuery(USER_QUERY_OPTIONS.PROFILE()); + const { mutate } = useMutation({ + ...COMMUNITY_MUTATION_OPTIONS.POST_COMMENT(), + onSuccess: (_data, variables) => { + queryClient.invalidateQueries({ + queryKey: COMMUNITY_QUERY_KEY.COMMENTS(variables.postId), + }); + queryClient.invalidateQueries({ + queryKey: COMMUNITY_QUERY_KEY.FEED_DETAIL(variables.postId), + }); + }, + }); + + const { mutate: deleteFeedMutate } = useMutation({ + ...COMMUNITY_MUTATION_OPTIONS.DELETE_FEED(postId), + onSuccess: () => { + queryClient.invalidateQueries({ + queryKey: COMMUNITY_QUERY_KEY.FEED_PREVIEW(), + }); + navigate(routePath.COMMUNITY); + }, + }); + + const { mutate: deleteCommentMutate } = useMutation({ + ...COMMUNITY_MUTATION_OPTIONS.DELETE_COMMENT(postId), + onSuccess: () => { + queryClient.invalidateQueries({ + queryKey: COMMUNITY_QUERY_KEY.COMMENTS(postId), + }); + queryClient.invalidateQueries({ + queryKey: COMMUNITY_QUERY_KEY.FEED_DETAIL(postId), + }); + }, + }); + + const handleDeleteFeed = () => { + deleteFeedMutate(); + closeModal(); + }; + const userData = queryData?.data; const handleChange = (e: React.ChangeEvent) => { @@ -63,15 +115,6 @@ const CommunityDetail = () => { } }; - const { - data: comments, - fetchNextPage, - hasNextPage, - isFetchingNextPage, - } = useInfiniteQuery({ - ...COMMUNITY_QUERY_OPTIONS.COMMENTS(postId), - }); - const allComments = comments?.pages.flatMap((page) => page?.data?.content ?? []) ?? []; @@ -87,8 +130,6 @@ const CommunityDetail = () => { navigate(path); }; - const { mutate } = POST_COMMENT(); - const onSubmitComment = () => { if (!content.trim()) { return; @@ -159,17 +200,6 @@ const CommunityDetail = () => { ); }; - const { mutate: deleteFeedMutate } = useDeleteFeed(() => { - navigate(routePath.COMMUNITY); - }); - - const handleDeleteFeed = () => { - deleteFeedMutate(postId); - closeModal(); - }; - - const { mutate: deleteCommentMutate } = useDeleteComment(postId); - const handleDeleteComment = (commentId: string) => { deleteCommentMutate(commentId); closeModal(); diff --git a/apps/client/src/pages/community/community-edit/community-edit.tsx b/apps/client/src/pages/community/community-edit/community-edit.tsx index e6eea7f1..8ade834d 100644 --- a/apps/client/src/pages/community/community-edit/community-edit.tsx +++ b/apps/client/src/pages/community/community-edit/community-edit.tsx @@ -1,4 +1,5 @@ import { useEffect, useState } from 'react'; +import { useMutation, useQueryClient } from '@tanstack/react-query'; import { useLocation, useParams } from 'react-router-dom'; import { useNavigate } from 'react-router-dom'; @@ -8,7 +9,8 @@ import { Icon } from '@bds/ui/icons'; import CommunityLine from '@widgets/community/components/community-line/community-line'; import { PLACEHOLDER } from '@widgets/community/constant/input-placeholder'; -import { PUT_FEED } from '@shared/api/domain/community/queries'; +import { COMMUNITY_MUTATION_OPTIONS } from '@shared/api/domain/community/queries'; +import { COMMUNITY_QUERY_KEY } from '@shared/api/keys/query-key'; import { LIMIT_LONG_TEXT, LIMIT_SHORT_TEXT, @@ -29,26 +31,30 @@ const COMMUNITY_CONTENT = { const CommunityEdit = () => { const navigate = useNavigate(); const [isDisabled, setIsDisabled] = useState(true); - const { mutate } = PUT_FEED(() => { - navigate(routePath.COMMUNITY); - }); + const queryClient = useQueryClient(); + const { postId } = useParams<{ postId: string }>(); const location = useLocation(); - const state = location.state as { title: string; content: string }; const [title, setTitle] = useState(state.title); const [content, setContent] = useState(state.content); - const { isErrorState } = useLimitedInput(LIMIT_SHORT_TEXT, title.length); - const { postId } = useParams<{ postId: string }>(); - if (!postId) { - throw new Error('잘못된 접근입니다.'); + throw new Error('게시글 Id가 존재하지 않습니다.'); } + const { mutate } = useMutation({ + ...COMMUNITY_MUTATION_OPTIONS.PUT_FEED(postId), + onSuccess: () => { + queryClient.invalidateQueries({ + queryKey: COMMUNITY_QUERY_KEY.FEED_DETAIL(postId), + }); + navigate(routePath.COMMUNITY_DETAIL.replace(':postId', postId)); + }, + }); + const handlePutFeed = () => { mutate({ - postId: postId, body: { title: title, content: content, diff --git a/apps/client/src/pages/community/community-write/community-write.tsx b/apps/client/src/pages/community/community-write/community-write.tsx index c241e19a..ee47d2e4 100644 --- a/apps/client/src/pages/community/community-write/community-write.tsx +++ b/apps/client/src/pages/community/community-write/community-write.tsx @@ -1,4 +1,5 @@ import { useEffect, useState } from 'react'; +import { useMutation, useQueryClient } from '@tanstack/react-query'; import { useNavigate } from 'react-router-dom'; import { Input, Navigation, TextButton, Title } from '@bds/ui'; @@ -7,7 +8,8 @@ import { Icon } from '@bds/ui/icons'; import CommunityLine from '@widgets/community/components/community-line/community-line'; import { PLACEHOLDER } from '@widgets/community/constant/input-placeholder'; -import { usePostFeed } from '@shared/api/domain/community/queries'; +import { COMMUNITY_MUTATION_OPTIONS } from '@shared/api/domain/community/queries'; +import { COMMUNITY_QUERY_KEY } from '@shared/api/keys/query-key'; import { LIMIT_LONG_TEXT, LIMIT_SHORT_TEXT, @@ -27,14 +29,19 @@ const COMMUNITY_CONTENT = { const CommunityWrite = () => { const navigate = useNavigate(); - const [title, setTitle] = useState(''); const [content, setContent] = useState(''); - const [isDisabled, setIsDisabled] = useState(true); + const queryClient = useQueryClient(); const { isErrorState } = useLimitedInput(LIMIT_SHORT_TEXT, title.length); - const { mutate } = usePostFeed(() => { - navigate(routePath.COMMUNITY); + const { mutate } = useMutation({ + ...COMMUNITY_MUTATION_OPTIONS.POST_FEED(), + onSuccess: () => { + queryClient.invalidateQueries({ + queryKey: COMMUNITY_QUERY_KEY.FEED_PREVIEW(), + }); + navigate(routePath.COMMUNITY); + }, }); const handlePostFeed = () => { From 900cd3ee3caf60f3eb6c164cb1880d4dbd451b97 Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Thu, 24 Jul 2025 02:20:19 +0900 Subject: [PATCH 15/27] =?UTF-8?q?refactor:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EC=9E=84=ED=8F=AC=ED=8A=B8=20=EC=A0=9C=EA=B1=B0=20?= =?UTF-8?q?=EB=B0=8F=20=EB=B3=B4=ED=97=98=20=EC=BF=BC=EB=A6=AC=20=ED=82=A4?= =?UTF-8?q?=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/client/src/shared/api/keys/query-key.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/client/src/shared/api/keys/query-key.ts b/apps/client/src/shared/api/keys/query-key.ts index 17f87496..4fa3980b 100644 --- a/apps/client/src/shared/api/keys/query-key.ts +++ b/apps/client/src/shared/api/keys/query-key.ts @@ -1,5 +1,3 @@ -import { D } from 'node_modules/@tanstack/react-query-devtools/build/modern/ReactQueryDevtools-Cn7cKi7o'; - export const INSURANCE_QUERY_KEY = { ALL: ['insurances'], REPORT: () => [...INSURANCE_QUERY_KEY.ALL, 'report'], From a71ad356337317f1b594c4283bd313ff31f9c0ce Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Thu, 24 Jul 2025 03:43:36 +0900 Subject: [PATCH 16/27] =?UTF-8?q?refactor:=20COMMUNITY=5FQUERY=5FKEY?= =?UTF-8?q?=EC=97=90=20as=20const=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/client/src/shared/api/keys/query-key.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/client/src/shared/api/keys/query-key.ts b/apps/client/src/shared/api/keys/query-key.ts index 4fa3980b..8fdf30c9 100644 --- a/apps/client/src/shared/api/keys/query-key.ts +++ b/apps/client/src/shared/api/keys/query-key.ts @@ -33,7 +33,7 @@ export const COMMUNITY_QUERY_KEY = { 'comment', postId, ], -}; +} as const; export const COMMUNITY_MUTATION_KEY = { POST_COMMENT: () => [...COMMUNITY_QUERY_KEY.COMMENTS(), 'create'], From d108cf9cacc8e82fcc718a6c068ee3aed65be654 Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Thu, 24 Jul 2025 03:44:16 +0900 Subject: [PATCH 17/27] =?UTF-8?q?refactor:=20postId=20=EC=98=A4=EB=A5=98?= =?UTF-8?q?=20=EB=A9=94=EC=8B=9C=EC=A7=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/community/community-detail/community-detail.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/client/src/pages/community/community-detail/community-detail.tsx b/apps/client/src/pages/community/community-detail/community-detail.tsx index bfcfe752..b0bc9828 100644 --- a/apps/client/src/pages/community/community-detail/community-detail.tsx +++ b/apps/client/src/pages/community/community-detail/community-detail.tsx @@ -52,7 +52,7 @@ const CommunityDetail = () => { const queryClient = useQueryClient(); if (!postId) { - throw new Error('postId가 없습니다.'); + throw new Error('postId가 존재하지 않습니다.'); } const { data } = useSuspenseQuery( From b887609b56551aef5d75a331f9fb2553a461db71 Mon Sep 17 00:00:00 2001 From: Minjeong Kim <88662427+minjeoong@users.noreply.github.com> Date: Thu, 24 Jul 2025 16:29:23 +0900 Subject: [PATCH 18/27] CI/CD(*): ChangeSet setting (version control) (#340) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Changesets 설치 및 초기 설정 * feat: Changesets 설정 파일 확인 및 수정 * feat: GitHub Actions 워크플로우 생성 * feat: Changesets 사용법 가이드 생성 * feat: 테스트를 위한 Changeset 생성 * feat: .gitignore에 Changesets 관련 파일 추가 * feat: CHANGESETS.md 수정 * feat: release.yml main 만 트래킹 * feat: CHANGESETS.md 수정 * fix: release.yml 파일 수정 (배포 스크립트 제외) --- .changeset/README.md | 8 + .changeset/config.json | 11 + .changeset/tall-lemons-join.md | 6 + .github/workflows/release.yml | 95 ++++++ .gitignore | 3 + CHANGESETS.md | 291 ++++++++++++++++ package.json | 6 +- pnpm-lock.yaml | 605 +++++++++++++++++++++++++++++++++ 8 files changed, 1024 insertions(+), 1 deletion(-) create mode 100644 .changeset/README.md create mode 100644 .changeset/config.json create mode 100644 .changeset/tall-lemons-join.md create mode 100644 .github/workflows/release.yml create mode 100644 CHANGESETS.md diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 00000000..e5b6d8d6 --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 00000000..3623d7da --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json", + "changelog": "@changesets/cli/changelog", + "commit": true, + "fixed": [], + "linked": [], + "access": "restricted", + "baseBranch": "develop", + "updateInternalDependencies": "patch", + "ignore": [] +} diff --git a/.changeset/tall-lemons-join.md b/.changeset/tall-lemons-join.md new file mode 100644 index 00000000..594b6f01 --- /dev/null +++ b/.changeset/tall-lemons-join.md @@ -0,0 +1,6 @@ +--- +'@bofit/client': major +'@bds/ui': patch +--- + +init version control diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..e0b37f6f --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,95 @@ +name: Release + +on: + pull_request: + branches: + - main + types: [opened, synchronize, reopened, closed] + push: + branches: + - main + +concurrency: ${{ github.workflow }}-${{ github.ref }} + +jobs: + check-changesets: + name: Check Changesets + runs-on: ubuntu-latest + if: github.event_name == 'pull_request' && github.base_ref == 'main' + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 18 + cache: 'pnpm' + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9.12.0 + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Check for Changesets + run: | + echo "🔍 Checking for changesets..." + + if [ ! -d ".changeset" ]; then + echo "❌ .changeset directory not found!" + echo "💡 Please run 'pnpm changeset' to create a changeset" + exit 1 + fi + + if [ -z "$(ls -A .changeset/*.md 2>/dev/null)" ]; then + echo "❌ No changeset files found in .changeset/ directory!" + echo "💡 Please run 'pnpm changeset' to create a changeset" + echo "📖 See CHANGESETS.md for detailed instructions" + exit 1 + fi + + echo "✅ Changesets found:" + ls -la .changeset/*.md + echo "" + echo "🎉 Changeset validation passed!" + + preview-changesets: + name: Preview Changesets + runs-on: ubuntu-latest + if: github.event_name == 'pull_request' && github.base_ref == 'main' + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 18 + cache: 'pnpm' + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9.12.0 + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Preview Changesets + run: | + echo "📦 Preview of changesets:" + echo "================================" + pnpm changeset status + echo "" + echo "🔍 Changeset files:" + echo "================================" + ls -la .changeset/*.md 2>/dev/null || echo "No changeset files found" + echo "" + echo "📖 For more information, see CHANGESETS.md" \ No newline at end of file diff --git a/.gitignore b/.gitignore index 74411254..22bb86ce 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,6 @@ tsconfig.tsbuildinfo # Storybook *storybook.log storybook-static + +# Changesets +.changeset/pre.json diff --git a/CHANGESETS.md b/CHANGESETS.md new file mode 100644 index 00000000..5e9e1df7 --- /dev/null +++ b/CHANGESETS.md @@ -0,0 +1,291 @@ +# Changesets 가이드 + +이 프로젝트는 [Changesets](https://github.com/changesets/changesets)를 사용하여 모노레포의 버전 관리를 자동화합니다. + +## 🚀 개발 워크플로우 + +### 1단계: 기능 개발 + +```bash +# develop 브랜치에서 작업 +git checkout develop +git pull origin develop + +# 새 기능 브랜치 생성 +git checkout -b feature/새로운-기능/#이슈번호 +``` + +### 2단계: 변경사항 작업 + +코드를 수정한 후: + +```bash +# 변경사항 커밋 +git add . +git commit -m "feat: 새로운 기능 추가" + +# develop에 push +git push origin feature/새로운-기능/#이슈번호 +``` + +### 3단계: develop에 PR 생성 + +**develop에 PR을 올릴 때는 changeset이 필요하지 않습니다!** + +```bash +# GitHub에서 feature/새로운-기능 → develop으로 PR 생성 +# 팀원들이 리뷰 후 develop에 머지 +``` + +### 4단계: main으로 PR 생성 시 Changeset 생성 ⭐ 중요! + +**develop에서 main으로 PR을 생성할 때만 changeset이 필요합니다:** + +```bash +# develop에서 main으로 PR 생성 전에 changeset 생성 +pnpm changeset +``` + +#### Changeset 생성 과정: + +1. **패키지 선택**: 스페이스바로 변경된 패키지 선택 + + ``` + 🦋 Which packages would you like to include? + ◯ @bofit/client + ◯ @bds/ui + ``` + +2. **버전 타입 선택**: + - `major`: 하위 호환성 깨짐 (breaking changes) + - `minor`: 새로운 기능 추가 (하위 호환) + - `patch`: 버그 수정, 문서 업데이트 + +3. **변경사항 설명 작성**: + ``` + 🦋 Please enter a summary for this change: + 새로운 로그인 기능 추가 및 UI 개선 + ``` + +### 5단계: main PR 생성 및 배포 + +```bash +# changeset 생성 후 develop에서 main으로 PR 생성 +# GitHub Actions에서 changeset 검증 +# PR 리뷰 후 main에 머지 +# 자동으로 버전 업데이트 및 배포 +``` + +## 📦 패키지별 버전 관리 가이드 + +### 주요 패키지들 + +| 패키지 | 설명 | 버전 규칙 | +| --------------- | ----------------------- | -------------------------------------------- | +| `@bofit/client` | 클라이언트 애플리케이션 | 기능 추가 시 minor, breaking change 시 major | +| `@bds/ui` | 디자인 시스템 | 컴포넌트 추가 시 minor, API 변경 시 major | + +### 버전 업데이트 규칙 + +#### 🟢 Patch (0.0.x) + +- 버그 수정 +- 문서 업데이트 +- 타입 정의 수정 +- 성능 개선 + +#### 🟡 Minor (0.x.0) + +- 새로운 기능 추가 +- 새로운 컴포넌트 추가 +- 새로운 API 엔드포인트 추가 +- 하위 호환되는 변경사항 + +#### 🔴 Major (x.0.0) + +- Breaking changes +- API 변경 +- 컴포넌트 props 변경 +- 하위 호환성 깨짐 + +## 🔧 유용한 명령어들 + +```bash +# Changeset 생성 (main PR 생성 시에만) +pnpm changeset + +# Changeset 상태 확인 +pnpm changeset status + +# 버전 업데이트 (로컬에서만) +pnpm version + +# 릴리스 (빌드 + 배포) +pnpm release + +# Changeset 파일들 확인 +ls .changeset/*.md +``` + +## 📋 PR 체크리스트 + +### develop → develop PR (changeset 불필요) + +- [ ] 코드 리뷰 완료 +- [ ] 테스트 통과 +- [ ] develop에 머지 + +### develop → main PR (changeset 필수) + +- [ ] Changeset 생성 완료 (`pnpm changeset`) +- [ ] Changeset 파일이 `.changeset/` 폴더에 존재 +- [ ] 변경사항 설명이 명확하게 작성됨 +- [ ] 적절한 버전 타입 선택 (major/minor/patch) +- [ ] 코드 리뷰 완료 +- [ ] 테스트 통과 +- [ ] GitHub Actions에서 changeset 검증 확인 + +## 🚨 자주 발생하는 실수들 + +### ❌ 잘못된 예시들: + +1. **develop PR에서 changeset 검증 실패** + + ``` + ❌ Error: No changesets found! Please create a changeset using 'pnpm changeset' + ``` + + → develop PR에서는 changeset이 필요하지 않습니다! + +2. **main PR에서 changeset 없이 생성** + + ``` + ❌ Error: No changesets found! Please create a changeset using 'pnpm changeset' + ``` + + → main PR에서는 changeset이 필수입니다! + +3. **부적절한 버전 타입** + + ```markdown + # 버그 수정인데 major로 설정 + + --- + + ## '@bofit/client': major + + 버그 수정 + ``` + +### ✅ 올바른 예시들: + +1. **적절한 버전 타입** + + ```markdown + --- + '@bofit/client': minor + '@bds/ui': patch + --- + + 버튼 컴포넌트 버그 수정 + ``` + +2. **명확한 설명** + + ```markdown + --- + '@bofit/client': patch + --- + + 로그인 페이지에서 발생하는 500 에러 수정 + ``` + +## 🔄 워크플로우 예시 + +### 시나리오 1: 새로운 기능 추가 + +```bash +# 1. 개발 +git checkout -b feature/new-login +# ... 코드 작성 ... + +# 2. develop에 PR 생성 (changeset 불필요) +git add . +git commit -m "feat: 소셜 로그인 기능 추가" +git push origin feature/new-login +# GitHub에서 feature/new-login → develop으로 PR 생성 + +# 3. develop에 머지 후, main으로 PR 생성 시 changeset 생성 +pnpm changeset +# @bofit/client 선택, minor 선택 +# "새로운 소셜 로그인 기능 추가" 입력 + +# 4. main으로 PR 생성 +# GitHub에서 develop → main으로 PR 생성 +``` + +### 시나리오 2: 버그 수정 + +```bash +# 1. 개발 +git checkout -b fix/login-error +# ... 버그 수정 ... + +# 2. develop에 PR 생성 (changeset 불필요) +git add . +git commit -m "fix: 로그인 500 에러 수정" +git push origin fix/login-error +# GitHub에서 fix/login-error → develop으로 PR 생성 + +# 3. develop에 머지 후, main으로 PR 생성 시 changeset 생성 +pnpm changeset +# @bofit/client 선택, patch 선택 +# "로그인 시 발생하는 500 에러 수정" 입력 + +# 4. main으로 PR 생성 +# GitHub에서 develop → main으로 PR 생성 +``` + +## 🆘 문제 해결 + +### Changeset 생성 시 오류 + +```bash +# 패키지가 선택되지 않음 +🦋 Which packages would you like to include? · No items were selected +🦋 error You must select at least one package to release + +# 해결: 스페이스바로 패키지 선택 후 엔터 +``` + +### Changeset 파일 삭제 + +```bash +# 실수로 잘못된 changeset 생성 시 +rm .changeset/파일명.md +``` + +### Changeset 상태 확인 + +```bash +# 현재 changeset 상태 확인 +pnpm changeset status +``` + +## 📞 도움말 + +- **Changesets 공식 문서**: https://github.com/changesets/changesets +- **GitHub Actions 로그**: PR의 Actions 탭에서 확인 +- **팀 리드에게 문의**: 복잡한 버전 관리 상황 + +## 🎯 핵심 포인트 + +1. **develop PR**: changeset 불필요 +2. **main PR**: changeset 필수 +3. **적절한 버전 타입 선택** +4. **명확한 변경사항 설명** +5. **PR에서 GitHub Actions 확인** + +--- + +**💡 팁**: develop에서 자유롭게 개발하고, main 배포 시에만 버전 관리를 하면 됩니다! diff --git a/package.json b/package.json index 87c92541..5c00a935 100644 --- a/package.json +++ b/package.json @@ -11,13 +11,17 @@ "preview": "vite preview", "prettier": "prettier --write .", "type-check": "tsc --noEmit -p ./tsconfig.json", - "commitlint-wrapper": "sh ./scripts/commitlint-wrapper.sh" + "commitlint-wrapper": "sh ./scripts/commitlint-wrapper.sh", + "changeset": "changeset", + "version": "changeset version", + "release": "pnpm build && changeset publish" }, "dependencies": { "react": "^19.1.0", "react-dom": "^19.1.0" }, "devDependencies": { + "@changesets/cli": "^2.29.5", "@commitlint/cli": "^19.8.1", "@commitlint/config-conventional": "^19.8.1", "@types/react": "^19.1.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aee7ac72..f89139b3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: specifier: ^19.1.0 version: 19.1.0(react@19.1.0) devDependencies: + '@changesets/cli': + specifier: ^2.29.5 + version: 2.29.5 '@commitlint/cli': specifier: ^19.8.1 version: 19.8.1(@types/node@20.19.4)(typescript@5.8.3) @@ -454,6 +457,115 @@ packages: } engines: { node: '>=6.9.0' } + '@changesets/apply-release-plan@7.0.12': + resolution: + { + integrity: sha512-EaET7As5CeuhTzvXTQCRZeBUcisoYPDDcXvgTE/2jmmypKp0RC7LxKj/yzqeh/1qFTZI7oDGFcL1PHRuQuketQ==, + } + + '@changesets/assemble-release-plan@6.0.9': + resolution: + { + integrity: sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==, + } + + '@changesets/changelog-git@0.2.1': + resolution: + { + integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==, + } + + '@changesets/cli@2.29.5': + resolution: + { + integrity: sha512-0j0cPq3fgxt2dPdFsg4XvO+6L66RC0pZybT9F4dG5TBrLA3jA/1pNkdTXH9IBBVHkgsKrNKenI3n1mPyPlIydg==, + } + hasBin: true + + '@changesets/config@3.1.1': + resolution: + { + integrity: sha512-bd+3Ap2TKXxljCggI0mKPfzCQKeV/TU4yO2h2C6vAihIo8tzseAn2e7klSuiyYYXvgu53zMN1OeYMIQkaQoWnA==, + } + + '@changesets/errors@0.2.0': + resolution: + { + integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==, + } + + '@changesets/get-dependents-graph@2.1.3': + resolution: + { + integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==, + } + + '@changesets/get-release-plan@4.0.13': + resolution: + { + integrity: sha512-DWG1pus72FcNeXkM12tx+xtExyH/c9I1z+2aXlObH3i9YA7+WZEVaiHzHl03thpvAgWTRaH64MpfHxozfF7Dvg==, + } + + '@changesets/get-version-range-type@0.4.0': + resolution: + { + integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==, + } + + '@changesets/git@3.0.4': + resolution: + { + integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==, + } + + '@changesets/logger@0.1.1': + resolution: + { + integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==, + } + + '@changesets/parse@0.4.1': + resolution: + { + integrity: sha512-iwksMs5Bf/wUItfcg+OXrEpravm5rEd9Bf4oyIPL4kVTmJQ7PNDSd6MDYkpSJR1pn7tz/k8Zf2DhTCqX08Ou+Q==, + } + + '@changesets/pre@2.0.2': + resolution: + { + integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==, + } + + '@changesets/read@0.6.5': + resolution: + { + integrity: sha512-UPzNGhsSjHD3Veb0xO/MwvasGe8eMyNrR/sT9gR8Q3DhOQZirgKhhXv/8hVsI0QpPjR004Z9iFxoJU6in3uGMg==, + } + + '@changesets/should-skip-package@0.1.2': + resolution: + { + integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==, + } + + '@changesets/types@4.1.0': + resolution: + { + integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==, + } + + '@changesets/types@6.1.0': + resolution: + { + integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==, + } + + '@changesets/write@0.4.0': + resolution: + { + integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==, + } + '@commitlint/cli@19.8.1': resolution: { @@ -914,6 +1026,18 @@ packages: integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, } + '@manypkg/find-root@1.1.0': + resolution: + { + integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==, + } + + '@manypkg/get-packages@1.1.3': + resolution: + { + integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==, + } + '@mdx-js/react@3.1.0': resolution: { @@ -1726,6 +1850,12 @@ packages: } deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed. + '@types/node@12.20.55': + resolution: + { + integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==, + } + '@types/node@20.19.4': resolution: { @@ -2089,6 +2219,12 @@ packages: integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, } + argparse@1.0.10: + resolution: + { + integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, + } + argparse@2.0.1: resolution: { @@ -2238,6 +2374,13 @@ packages: } engines: { node: '>=12.0.0' } + better-path-resolve@1.0.0: + resolution: + { + integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==, + } + engines: { node: '>=4' } + bl@4.1.0: resolution: { @@ -2431,6 +2574,13 @@ packages: '@chromatic-com/playwright': optional: true + ci-info@3.9.0: + resolution: + { + integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==, + } + engines: { node: '>=8' } + clean-stack@2.2.0: resolution: { @@ -2812,6 +2962,13 @@ packages: } engines: { node: '>=6' } + detect-indent@6.1.0: + resolution: + { + integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==, + } + engines: { node: '>=8' } + diff@4.0.2: resolution: { @@ -2934,6 +3091,13 @@ packages: integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==, } + enquirer@2.4.1: + resolution: + { + integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==, + } + engines: { node: '>=8.6' } + entities@4.5.0: resolution: { @@ -3259,6 +3423,12 @@ packages: } engines: { node: '>=10' } + extendable-error@0.1.7: + resolution: + { + integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==, + } + external-editor@3.1.0: resolution: { @@ -3341,6 +3511,13 @@ packages: } engines: { node: '>=8' } + find-up@4.1.0: + resolution: + { + integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, + } + engines: { node: '>=8' } + find-up@5.0.0: resolution: { @@ -3389,6 +3566,20 @@ packages: } engines: { node: '>=12' } + fs-extra@7.0.1: + resolution: + { + integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==, + } + engines: { node: '>=6 <7 || >=8' } + + fs-extra@8.1.0: + resolution: + { + integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==, + } + engines: { node: '>=6 <7 || >=8' } + fs.realpath@1.0.0: resolution: { @@ -3676,6 +3867,13 @@ packages: } engines: { node: '>= 14' } + human-id@4.1.1: + resolution: + { + integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==, + } + hasBin: true + human-signals@2.1.0: resolution: { @@ -4007,6 +4205,13 @@ packages: } engines: { node: '>= 0.4' } + is-subdir@1.2.0: + resolution: + { + integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==, + } + engines: { node: '>=4' } + is-symbol@1.1.1: resolution: { @@ -4062,6 +4267,13 @@ packages: } engines: { node: '>= 0.4' } + is-windows@1.0.2: + resolution: + { + integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==, + } + engines: { node: '>=0.10.0' } + is-wsl@2.2.0: resolution: { @@ -4127,6 +4339,13 @@ packages: integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, } + js-yaml@3.14.1: + resolution: + { + integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, + } + hasBin: true + js-yaml@4.1.0: resolution: { @@ -4193,6 +4412,12 @@ packages: engines: { node: '>=6' } hasBin: true + jsonfile@4.0.0: + resolution: + { + integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==, + } + jsonfile@6.1.0: resolution: { @@ -4319,6 +4544,13 @@ packages: integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, } + locate-path@5.0.0: + resolution: + { + integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, + } + engines: { node: '>=8' } + locate-path@6.0.0: resolution: { @@ -4629,6 +4861,13 @@ packages: integrity: sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ==, } + mri@1.2.0: + resolution: + { + integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, + } + engines: { node: '>=4' } + ms@2.1.3: resolution: { @@ -4812,6 +5051,12 @@ packages: } engines: { node: '>=0.10.0' } + outdent@0.5.0: + resolution: + { + integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==, + } + own-keys@1.0.1: resolution: { @@ -4819,6 +5064,20 @@ packages: } engines: { node: '>= 0.4' } + p-filter@2.1.0: + resolution: + { + integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==, + } + engines: { node: '>=8' } + + p-limit@2.3.0: + resolution: + { + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, + } + engines: { node: '>=6' } + p-limit@3.1.0: resolution: { @@ -4833,6 +5092,13 @@ packages: } engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + p-locate@4.1.0: + resolution: + { + integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, + } + engines: { node: '>=8' } + p-locate@5.0.0: resolution: { @@ -4847,6 +5113,13 @@ packages: } engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + p-map@2.1.0: + resolution: + { + integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==, + } + engines: { node: '>=6' } + p-map@3.0.0: resolution: { @@ -4854,6 +5127,13 @@ packages: } engines: { node: '>=8' } + p-try@2.2.0: + resolution: + { + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, + } + engines: { node: '>=6' } + pac-proxy-agent@7.2.0: resolution: { @@ -4874,6 +5154,12 @@ packages: integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==, } + package-manager-detector@0.2.11: + resolution: + { + integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==, + } + param-case@2.1.1: resolution: { @@ -5012,6 +5298,13 @@ packages: } engines: { node: '>=12' } + pify@4.0.1: + resolution: + { + integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==, + } + engines: { node: '>=6' } + pkg-types@1.3.1: resolution: { @@ -5060,6 +5353,14 @@ packages: } engines: { node: '>=6.0.0' } + prettier@2.8.8: + resolution: + { + integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==, + } + engines: { node: '>=10.13.0' } + hasBin: true + prettier@3.6.2: resolution: { @@ -5108,6 +5409,12 @@ packages: } engines: { node: '>=6' } + quansync@0.2.10: + resolution: + { + integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==, + } + queue-microtask@1.2.3: resolution: { @@ -5201,6 +5508,13 @@ packages: } engines: { node: '>=0.10.0' } + read-yaml-file@1.1.0: + resolution: + { + integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==, + } + engines: { node: '>=6' } + readable-stream@3.6.2: resolution: { @@ -5557,6 +5871,12 @@ packages: } engines: { node: '>=0.10.0' } + spawndamnit@3.0.1: + resolution: + { + integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==, + } + split2@4.2.0: resolution: { @@ -5564,6 +5884,12 @@ packages: } engines: { node: '>= 10.x' } + sprintf-js@1.0.3: + resolution: + { + integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, + } + sprintf-js@1.1.3: resolution: { @@ -5755,6 +6081,13 @@ packages: } engines: { node: ^14.18.0 || >=16.0.0 } + term-size@2.2.1: + resolution: + { + integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==, + } + engines: { node: '>=8' } + text-extensions@2.4.0: resolution: { @@ -6072,6 +6405,13 @@ packages: } engines: { node: '>=18' } + universalify@0.1.2: + resolution: + { + integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, + } + engines: { node: '>= 4.0.0' } + universalify@2.0.1: resolution: { @@ -6564,6 +6904,148 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 + '@changesets/apply-release-plan@7.0.12': + dependencies: + '@changesets/config': 3.1.1 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.4 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.7.2 + + '@changesets/assemble-release-plan@6.0.9': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.3 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + semver: 7.7.2 + + '@changesets/changelog-git@0.2.1': + dependencies: + '@changesets/types': 6.1.0 + + '@changesets/cli@2.29.5': + dependencies: + '@changesets/apply-release-plan': 7.0.12 + '@changesets/assemble-release-plan': 6.0.9 + '@changesets/changelog-git': 0.2.1 + '@changesets/config': 3.1.1 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.3 + '@changesets/get-release-plan': 4.0.13 + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.5 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@changesets/write': 0.4.0 + '@manypkg/get-packages': 1.1.3 + ansi-colors: 4.1.3 + ci-info: 3.9.0 + enquirer: 2.4.1 + external-editor: 3.1.0 + fs-extra: 7.0.1 + mri: 1.2.0 + p-limit: 2.3.0 + package-manager-detector: 0.2.11 + picocolors: 1.1.1 + resolve-from: 5.0.0 + semver: 7.7.2 + spawndamnit: 3.0.1 + term-size: 2.2.1 + + '@changesets/config@3.1.1': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.3 + '@changesets/logger': 0.1.1 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.8 + + '@changesets/errors@0.2.0': + dependencies: + extendable-error: 0.1.7 + + '@changesets/get-dependents-graph@2.1.3': + dependencies: + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + picocolors: 1.1.1 + semver: 7.7.2 + + '@changesets/get-release-plan@4.0.13': + dependencies: + '@changesets/assemble-release-plan': 6.0.9 + '@changesets/config': 3.1.1 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.5 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/get-version-range-type@0.4.0': {} + + '@changesets/git@3.0.4': + dependencies: + '@changesets/errors': 0.2.0 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.8 + spawndamnit: 3.0.1 + + '@changesets/logger@0.1.1': + dependencies: + picocolors: 1.1.1 + + '@changesets/parse@0.4.1': + dependencies: + '@changesets/types': 6.1.0 + js-yaml: 3.14.1 + + '@changesets/pre@2.0.2': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + + '@changesets/read@0.6.5': + dependencies: + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/parse': 0.4.1 + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + p-filter: 2.1.0 + picocolors: 1.1.1 + + '@changesets/should-skip-package@0.1.2': + dependencies: + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/types@4.1.0': {} + + '@changesets/types@6.1.0': {} + + '@changesets/write@0.4.0': + dependencies: + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + human-id: 4.1.1 + prettier: 2.8.8 + '@commitlint/cli@19.8.1(@types/node@20.19.4)(typescript@5.8.3)': dependencies: '@commitlint/format': 19.8.1 @@ -6827,6 +7309,22 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.4 + '@manypkg/find-root@1.1.0': + dependencies: + '@babel/runtime': 7.27.6 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + + '@manypkg/get-packages@1.1.3': + dependencies: + '@babel/runtime': 7.27.6 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + '@mdx-js/react@3.1.0(@types/react@19.1.8)(react@19.1.0)': dependencies: '@types/mdx': 2.0.13 @@ -7368,6 +7866,8 @@ snapshots: dependencies: minimatch: 9.0.5 + '@types/node@12.20.55': {} + '@types/node@20.19.4': dependencies: undici-types: 6.21.0 @@ -7680,6 +8180,10 @@ snapshots: arg@4.1.3: {} + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + argparse@2.0.1: {} aria-query@5.3.0: @@ -7777,6 +8281,10 @@ snapshots: dependencies: open: 8.4.2 + better-path-resolve@1.0.0: + dependencies: + is-windows: 1.0.2 + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -7922,6 +8430,8 @@ snapshots: chromatic@13.1.2: {} + ci-info@3.9.0: {} + clean-stack@2.2.0: {} cli-cursor@3.1.0: @@ -8124,6 +8634,8 @@ snapshots: dequal@2.0.3: {} + detect-indent@6.1.0: {} + diff@4.0.2: {} dir-glob@3.0.1: @@ -8189,6 +8701,11 @@ snapshots: iconv-lite: 0.6.3 whatwg-encoding: 3.1.1 + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + entities@4.5.0: {} entities@6.0.1: {} @@ -8512,6 +9029,8 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 + extendable-error@0.1.7: {} + external-editor@3.1.0: dependencies: chardet: 0.7.0 @@ -8556,6 +9075,11 @@ snapshots: dependencies: to-regex-range: 5.0.1 + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -8590,6 +9114,18 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -8789,6 +9325,8 @@ snapshots: transitivePeerDependencies: - supports-color + human-id@4.1.1: {} + human-signals@2.1.0: {} iconv-lite@0.4.24: @@ -8983,6 +9521,10 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 + is-subdir@1.2.0: + dependencies: + better-path-resolve: 1.0.0 + is-symbol@1.1.1: dependencies: call-bound: 1.0.4 @@ -9014,6 +9556,8 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 + is-windows@1.0.2: {} + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -9047,6 +9591,11 @@ snapshots: js-tokens@4.0.0: {} + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + js-yaml@4.1.0: dependencies: argparse: 2.0.1 @@ -9069,6 +9618,10 @@ snapshots: json5@2.2.3: {} + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + jsonfile@6.1.0: dependencies: universalify: 2.0.1 @@ -9138,6 +9691,10 @@ snapshots: lines-and-columns@1.2.4: {} + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -9277,6 +9834,8 @@ snapshots: modern-ahocorasick@1.1.0: {} + mri@1.2.0: {} + ms@2.1.3: {} mute-stream@0.0.8: {} @@ -9413,12 +9972,22 @@ snapshots: os-tmpdir@1.0.2: {} + outdent@0.5.0: {} + own-keys@1.0.1: dependencies: get-intrinsic: 1.3.0 object-keys: 1.1.1 safe-push-apply: 1.0.0 + p-filter@2.1.0: + dependencies: + p-map: 2.1.0 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 @@ -9427,6 +9996,10 @@ snapshots: dependencies: yocto-queue: 1.2.1 + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + p-locate@5.0.0: dependencies: p-limit: 3.1.0 @@ -9435,10 +10008,14 @@ snapshots: dependencies: p-limit: 4.0.0 + p-map@2.1.0: {} + p-map@3.0.0: dependencies: aggregate-error: 3.1.0 + p-try@2.2.0: {} + pac-proxy-agent@7.2.0: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 @@ -9459,6 +10036,10 @@ snapshots: package-json-from-dist@1.0.1: {} + package-manager-detector@0.2.11: + dependencies: + quansync: 0.2.10 + param-case@2.1.1: dependencies: no-case: 2.3.2 @@ -9529,6 +10110,8 @@ snapshots: picomatch@4.0.2: {} + pify@4.0.1: {} + pkg-types@1.3.1: dependencies: confbox: 0.1.8 @@ -9555,6 +10138,8 @@ snapshots: dependencies: fast-diff: 1.3.0 + prettier@2.8.8: {} + prettier@3.6.2: {} pretty-format@27.5.1: @@ -9588,6 +10173,8 @@ snapshots: punycode@2.3.1: {} + quansync@0.2.10: {} + queue-microtask@1.2.3: {} rc@1.2.8: @@ -9648,6 +10235,13 @@ snapshots: react@19.1.0: {} + read-yaml-file@1.1.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + readable-stream@3.6.2: dependencies: inherits: 2.0.4 @@ -9894,8 +10488,15 @@ snapshots: source-map@0.6.1: {} + spawndamnit@3.0.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + split2@4.2.0: {} + sprintf-js@1.0.3: {} + sprintf-js@1.1.3: {} stop-iteration-iterator@1.1.0: @@ -10030,6 +10631,8 @@ snapshots: dependencies: '@pkgr/core': 0.2.7 + term-size@2.2.1: {} + text-extensions@2.4.0: {} text-table@0.2.0: {} @@ -10207,6 +10810,8 @@ snapshots: unicorn-magic@0.1.0: {} + universalify@0.1.2: {} + universalify@2.0.1: {} unplugin@1.16.1: From d8673eb8ef537808899acc33802f33c3468d5ac6 Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Thu, 24 Jul 2025 22:12:57 +0900 Subject: [PATCH 19/27] =?UTF-8?q?refactor:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EC=9E=84=ED=8F=AC=ED=8A=B8=20=EC=A0=9C=EA=B1=B0=20?= =?UTF-8?q?=EB=B0=8F=20=EC=BD=94=EB=93=9C=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/community/community-detail/community-detail.tsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/client/src/pages/community/community-detail/community-detail.tsx b/apps/client/src/pages/community/community-detail/community-detail.tsx index b0bc9828..10cf9c15 100644 --- a/apps/client/src/pages/community/community-detail/community-detail.tsx +++ b/apps/client/src/pages/community/community-detail/community-detail.tsx @@ -22,12 +22,15 @@ import { COMMUNITY_QUERY_OPTIONS, } from '@shared/api/domain/community/queries'; import { USER_QUERY_OPTIONS } from '@shared/api/domain/onboarding/queries'; +import { COMMUNITY_QUERY_KEY } from '@shared/api/keys/query-key'; +import { LIMIT_MEDIUM_TEXT } from '@shared/constants/text-limits'; import { useIntersectionObserver } from '@shared/hooks/use-intersection-observer'; import { useLimitedInput } from '@shared/hooks/use-limited-input'; import { routePath } from '@shared/router/path'; import { getTimeAgo } from '@shared/utils/get-time-ago'; import * as styles from './community-detail.css'; +import { virtualRef } from '@widgets/mypage/preview.css'; const DELETE_MODAL = { FEED: { @@ -39,10 +42,6 @@ const DELETE_MODAL = { content: '삭제한 댓글은 복원되지 않습니다.', }, }; -import { COMMUNITY_QUERY_KEY } from '@shared/api/keys/query-key'; -import { LIMIT_MEDIUM_TEXT } from '@shared/constants/text-limits'; - -import { virtualRef } from '@widgets/mypage/preview.css'; const CommunityDetail = () => { const navigate = useNavigate(); From fdfa576c2ab14a669bb12221720a526020627b7a Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Thu, 24 Jul 2025 22:20:55 +0900 Subject: [PATCH 20/27] =?UTF-8?q?refactor:=20feedDetailData=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EC=88=98=EB=AA=85=20=EB=B3=80=EA=B2=BD=20=EB=B0=8F=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../community-detail/community-detail.tsx | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/apps/client/src/pages/community/community-detail/community-detail.tsx b/apps/client/src/pages/community/community-detail/community-detail.tsx index 10cf9c15..fe77a43d 100644 --- a/apps/client/src/pages/community/community-detail/community-detail.tsx +++ b/apps/client/src/pages/community/community-detail/community-detail.tsx @@ -54,7 +54,7 @@ const CommunityDetail = () => { throw new Error('postId가 존재하지 않습니다.'); } - const { data } = useSuspenseQuery( + const { data: feedDetailData } = useSuspenseQuery( COMMUNITY_QUERY_OPTIONS.FEED_DETAIL(postId), ); const { @@ -66,7 +66,7 @@ const CommunityDetail = () => { ...COMMUNITY_QUERY_OPTIONS.COMMENTS(postId), }); - const { data: queryData } = useSuspenseQuery(USER_QUERY_OPTIONS.PROFILE()); + const { data: profileData } = useSuspenseQuery(USER_QUERY_OPTIONS.PROFILE()); const { mutate } = useMutation({ ...COMMUNITY_MUTATION_OPTIONS.POST_COMMENT(), onSuccess: (_data, variables) => { @@ -106,8 +106,6 @@ const CommunityDetail = () => { closeModal(); }; - const userData = queryData?.data; - const handleChange = (e: React.ChangeEvent) => { if (e.target.value.length <= 30) { setContent(e.target.value); @@ -123,7 +121,8 @@ const CommunityDetail = () => { } }, true); - const isPostOwner = data?.writerId === userData?.userId; + const userData = profileData?.data; + const isPostOwner = feedDetailData?.writerId === userData?.userId; const handleNavigate = (path: string) => { navigate(path); @@ -151,8 +150,8 @@ const CommunityDetail = () => { const handleGoEdit = () => { navigate(routePath.COMMUNITY_EDIT.replace(':postId', String(postId)), { state: { - title: data?.title, - content: data?.content, + title: feedDetailData?.title, + content: feedDetailData?.content, }, }); }; @@ -220,12 +219,12 @@ const CommunityDetail = () => {
showDeleteModal('feed')} /> @@ -238,7 +237,9 @@ const CommunityDetail = () => { height="2rem" color="gray800" /> -

댓글 {data?.commentCount}

+

+ 댓글 {feedDetailData?.commentCount} +

From 646440334f764c8d229a8c5b50fec880a6011f58 Mon Sep 17 00:00:00 2001 From: gwagjiug Date: Thu, 24 Jul 2025 22:22:19 +0900 Subject: [PATCH 21/27] =?UTF-8?q?refactor:=20mutate=20=EB=B3=80=EC=88=98?= =?UTF-8?q?=EB=AA=85=EC=9D=84=20createCommentMutate=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/community/community-detail/community-detail.tsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/client/src/pages/community/community-detail/community-detail.tsx b/apps/client/src/pages/community/community-detail/community-detail.tsx index fe77a43d..25097abb 100644 --- a/apps/client/src/pages/community/community-detail/community-detail.tsx +++ b/apps/client/src/pages/community/community-detail/community-detail.tsx @@ -67,7 +67,7 @@ const CommunityDetail = () => { }); const { data: profileData } = useSuspenseQuery(USER_QUERY_OPTIONS.PROFILE()); - const { mutate } = useMutation({ + const { mutate: createCommentMutate } = useMutation({ ...COMMUNITY_MUTATION_OPTIONS.POST_COMMENT(), onSuccess: (_data, variables) => { queryClient.invalidateQueries({ @@ -132,8 +132,7 @@ const CommunityDetail = () => { if (!content.trim()) { return; } - - mutate( + createCommentMutate( { postId, content: content.trim() }, { onSuccess: () => { From ed317b4362e97dc329fa7b234f095413e352ec35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B3=BD=EC=A7=80=EC=9A=B1?= <99489686+gwagjiug@users.noreply.github.com> Date: Tue, 29 Jul 2025 12:29:49 +0900 Subject: [PATCH 22/27] =?UTF-8?q?Fix(client):=20=EB=A7=88=EC=9D=B4?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20navigate=20=EB=B2=84=ED=8A=BC=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95=20=20(#351)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/client/src/pages/my/my-page.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/client/src/pages/my/my-page.tsx b/apps/client/src/pages/my/my-page.tsx index 768b9a89..6f9ccbcd 100644 --- a/apps/client/src/pages/my/my-page.tsx +++ b/apps/client/src/pages/my/my-page.tsx @@ -14,8 +14,8 @@ const MyPage = () => { const userData = queryData?.data; const targetRoute = userData?.isRecommendInsurance - ? routePath.HOME - : `${routePath.ONBOARDING}?step=user`; + ? routePath.REPORT + : routePath.HOME; const navigate = useNavigate(); From 2fca67f1419c827447f9ae457b7f3ebe67716689 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B3=BD=EC=A7=80=EC=9A=B1?= <99489686+gwagjiug@users.noreply.github.com> Date: Tue, 29 Jul 2025 19:25:59 +0900 Subject: [PATCH 23/27] =?UTF-8?q?Feat(client):=20=EC=B9=B4=EC=B9=B4?= =?UTF-8?q?=EC=98=A4=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20URL=20=EB=B0=8F=20?= =?UTF-8?q?=EB=A6=AC=EB=8B=A4=EC=9D=B4=EB=A0=89=ED=8A=B8=20URI=20=EB=A1=9C?= =?UTF-8?q?=EC=BB=AC=20&=20=EB=B0=B0=ED=8F=AC=20=ED=99=98=EA=B2=BD=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=B6=94=EA=B0=80=20(#354)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit feat: 카카오 로그인 URL 및 리다이렉트 URI 설정 추가 --- apps/client/.env.example | 6 ++++-- apps/client/src/shared/configs/app-config.ts | 9 +++------ .../components/login-slide/kakao-login-button.tsx | 15 ++++++++++++--- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/apps/client/.env.example b/apps/client/.env.example index 30d368d3..609e6a7e 100644 --- a/apps/client/.env.example +++ b/apps/client/.env.example @@ -1,2 +1,4 @@ -VITE_KAKAO_REDIRECT_URI= -VITE_API_BASE_URL= \ No newline at end of file +VITE_KAKAO_LOGIN_URL= '카카오 로그인 url' +VITE_KAKAO_LOCAL_REDIRECT_URI = '로컬 환경에서 카카오 로그인 리다이렉트 URI' +VITE_KAKAO_PROD_REDIRECT_URI = '프로덕션 환경에서 카카오 로그인 리다이렉트 URI' +VITE_API_BASE_URL= 'API 기본 URL' \ No newline at end of file diff --git a/apps/client/src/shared/configs/app-config.ts b/apps/client/src/shared/configs/app-config.ts index a88fe1c7..e1042c63 100644 --- a/apps/client/src/shared/configs/app-config.ts +++ b/apps/client/src/shared/configs/app-config.ts @@ -1,21 +1,18 @@ -import { routePath } from '@shared/router/path.ts'; - +import { routePath } from '@shared/router/path'; /** * 애플리케이션 전체 설정을 관리하는 Config 파일 */ const DEFAULT_CONFIG = { auth: { isEnabled: true, // 인증 기능 활성화 여부 - loginSuccessUrl: routePath.LOGIN_FALLBACK, loginFailureUrl: routePath.LOGIN, - kakaoLoginUrl: import.meta.env.VITE_KAKAO_LOGIN_URL || '', + kakaoLocalRedirectUrl: import.meta.env.VITE_KAKAO_LOCAL_REDIRECT_URI || '', + kakaoProdRedirectUrl: import.meta.env.VITE_KAKAO_PROD_REDIRECT_URI || '', }, - api: { baseUrl: import.meta.env.VITE_API_BASE_URL, - kakaoRedirectUrl: import.meta.env.VITE_KAKAO_REDIRECT_URI, }, }; diff --git a/apps/client/src/widgets/login/components/login-slide/kakao-login-button.tsx b/apps/client/src/widgets/login/components/login-slide/kakao-login-button.tsx index 8f025758..437feee5 100644 --- a/apps/client/src/widgets/login/components/login-slide/kakao-login-button.tsx +++ b/apps/client/src/widgets/login/components/login-slide/kakao-login-button.tsx @@ -1,14 +1,23 @@ import { Icon } from '@bds/ui/icons'; +import { appConfig } from '@shared/configs/app-config'; + import * as styles from './kakao-login-button.css'; const KakaoLoginButton = () => { - const handleStartLogin = () => { - window.location.href = import.meta.env.VITE_KAKAO_REDIRECT_URI; + const handleKakaoLogin = () => { + const redirectUri = + window.location.hostname === 'localhost' + ? appConfig.auth.kakaoLocalRedirectUrl + : appConfig.auth.kakaoProdRedirectUrl; + + const loginUrl = `${appConfig.auth.kakaoLoginUrl}&redirect_uri=${encodeURIComponent(redirectUri)}`; + + window.location.href = loginUrl; }; return ( -
+

카카오톡으로 시작하기

From 5ec84136578abb5dd42df76a58cba3da5475247a Mon Sep 17 00:00:00 2001 From: Minjeong Kim <88662427+minjeoong@users.noreply.github.com> Date: Fri, 1 Aug 2025 14:15:01 +0900 Subject: [PATCH 24/27] Version-Contol(v.0.0.0) (#356) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit feat: changeset 실행 --- .changeset/ninety-spoons-unite.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/ninety-spoons-unite.md diff --git a/.changeset/ninety-spoons-unite.md b/.changeset/ninety-spoons-unite.md new file mode 100644 index 00000000..332da5b4 --- /dev/null +++ b/.changeset/ninety-spoons-unite.md @@ -0,0 +1,6 @@ +--- +'@bofit/client': major +'@bds/ui': major +--- + +first version control From 07e2f2a9f0aa9f75a4f834ab7497ffeea41eb634 Mon Sep 17 00:00:00 2001 From: JeongHoon <113702672+jeonghoon11@users.noreply.github.com> Date: Fri, 1 Aug 2025 15:06:17 +0900 Subject: [PATCH 25/27] =?UTF-8?q?Fix(bds):=20svg=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EB=B2=97=EC=96=B4=EB=82=A8=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0=20(#347)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: svg파일 width, height 제거 * feat: svgoConfig 플러그인 추가 --- apps/client/public/favicon.svg | 2 +- apps/client/public/glass_icon_bulb.svg | 2 +- apps/client/vite.config.ts | 8 ++++++++ packages/bds-ui/src/icons/assets/3d_brain.svg | 2 +- packages/bds-ui/src/icons/assets/3d_cancer.svg | 2 +- packages/bds-ui/src/icons/assets/3d_die.svg | 2 +- packages/bds-ui/src/icons/assets/3d_disability.svg | 2 +- packages/bds-ui/src/icons/assets/3d_heart.svg | 2 +- packages/bds-ui/src/icons/assets/3d_hospital.svg | 2 +- packages/bds-ui/src/icons/assets/3d_surgery.svg | 2 +- packages/bds-ui/src/icons/assets/btn_comment.svg | 2 +- packages/bds-ui/src/icons/assets/empty_writing.svg | 2 +- packages/bds-ui/src/icons/assets/kakaotalk.svg | 2 +- packages/bds-ui/src/icons/assets/logotype_3d.svg | 2 +- packages/bds-ui/src/icons/assets/logotype_white.svg | 2 +- packages/bds-ui/src/icons/assets/page_selected.svg | 2 +- packages/bds-ui/src/icons/assets/page_unselected.svg | 2 +- packages/bds-ui/src/icons/assets/profile_fill.svg | 2 +- packages/bds-ui/src/icons/assets/profile_none.svg | 2 +- packages/bds-ui/src/icons/assets/send.svg | 2 +- packages/bds-ui/src/icons/assets/user.svg | 2 +- 21 files changed, 28 insertions(+), 20 deletions(-) diff --git a/apps/client/public/favicon.svg b/apps/client/public/favicon.svg index 3b1a59cf..9fd530ed 100644 --- a/apps/client/public/favicon.svg +++ b/apps/client/public/favicon.svg @@ -1,4 +1,4 @@ - + diff --git a/apps/client/public/glass_icon_bulb.svg b/apps/client/public/glass_icon_bulb.svg index 0da85c9f..8e8b3abf 100644 --- a/apps/client/public/glass_icon_bulb.svg +++ b/apps/client/public/glass_icon_bulb.svg @@ -1,4 +1,4 @@ - +
diff --git a/apps/client/vite.config.ts b/apps/client/vite.config.ts index 57426e39..1100fc86 100644 --- a/apps/client/vite.config.ts +++ b/apps/client/vite.config.ts @@ -15,6 +15,14 @@ export default defineConfig({ iconDirs: [resolve(__dirname, '../../packages/bds-ui/src/icons')], symbolId: 'icon-[name]', inject: 'body-last', + svgoConfig: { + plugins: [ + { + name: 'removeDimensions', + active: true, + }, + ], + }, }), ], server: { diff --git a/packages/bds-ui/src/icons/assets/3d_brain.svg b/packages/bds-ui/src/icons/assets/3d_brain.svg index b3f6b652..80f4453b 100644 --- a/packages/bds-ui/src/icons/assets/3d_brain.svg +++ b/packages/bds-ui/src/icons/assets/3d_brain.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/bds-ui/src/icons/assets/3d_cancer.svg b/packages/bds-ui/src/icons/assets/3d_cancer.svg index 01f31fa6..048e41a5 100644 --- a/packages/bds-ui/src/icons/assets/3d_cancer.svg +++ b/packages/bds-ui/src/icons/assets/3d_cancer.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/bds-ui/src/icons/assets/3d_die.svg b/packages/bds-ui/src/icons/assets/3d_die.svg index 7d8164c9..035e316a 100644 --- a/packages/bds-ui/src/icons/assets/3d_die.svg +++ b/packages/bds-ui/src/icons/assets/3d_die.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/bds-ui/src/icons/assets/3d_disability.svg b/packages/bds-ui/src/icons/assets/3d_disability.svg index 3aaa997c..6a7dca24 100644 --- a/packages/bds-ui/src/icons/assets/3d_disability.svg +++ b/packages/bds-ui/src/icons/assets/3d_disability.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/bds-ui/src/icons/assets/3d_heart.svg b/packages/bds-ui/src/icons/assets/3d_heart.svg index 646a4ae7..2670b488 100644 --- a/packages/bds-ui/src/icons/assets/3d_heart.svg +++ b/packages/bds-ui/src/icons/assets/3d_heart.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/bds-ui/src/icons/assets/3d_hospital.svg b/packages/bds-ui/src/icons/assets/3d_hospital.svg index 41117c46..64d56ad3 100644 --- a/packages/bds-ui/src/icons/assets/3d_hospital.svg +++ b/packages/bds-ui/src/icons/assets/3d_hospital.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/bds-ui/src/icons/assets/3d_surgery.svg b/packages/bds-ui/src/icons/assets/3d_surgery.svg index 192dd892..a2da936d 100644 --- a/packages/bds-ui/src/icons/assets/3d_surgery.svg +++ b/packages/bds-ui/src/icons/assets/3d_surgery.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/bds-ui/src/icons/assets/btn_comment.svg b/packages/bds-ui/src/icons/assets/btn_comment.svg index 510d0479..3d349526 100644 --- a/packages/bds-ui/src/icons/assets/btn_comment.svg +++ b/packages/bds-ui/src/icons/assets/btn_comment.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/bds-ui/src/icons/assets/empty_writing.svg b/packages/bds-ui/src/icons/assets/empty_writing.svg index 86ea5710..47d0ae55 100644 --- a/packages/bds-ui/src/icons/assets/empty_writing.svg +++ b/packages/bds-ui/src/icons/assets/empty_writing.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/bds-ui/src/icons/assets/kakaotalk.svg b/packages/bds-ui/src/icons/assets/kakaotalk.svg index c64920a2..34cb3483 100644 --- a/packages/bds-ui/src/icons/assets/kakaotalk.svg +++ b/packages/bds-ui/src/icons/assets/kakaotalk.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/bds-ui/src/icons/assets/logotype_3d.svg b/packages/bds-ui/src/icons/assets/logotype_3d.svg index 8334198f..67a83dde 100644 --- a/packages/bds-ui/src/icons/assets/logotype_3d.svg +++ b/packages/bds-ui/src/icons/assets/logotype_3d.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/bds-ui/src/icons/assets/logotype_white.svg b/packages/bds-ui/src/icons/assets/logotype_white.svg index 7a11e718..158d98c3 100644 --- a/packages/bds-ui/src/icons/assets/logotype_white.svg +++ b/packages/bds-ui/src/icons/assets/logotype_white.svg @@ -1,3 +1,3 @@ - + diff --git a/packages/bds-ui/src/icons/assets/page_selected.svg b/packages/bds-ui/src/icons/assets/page_selected.svg index 754e25c3..43fdd01d 100644 --- a/packages/bds-ui/src/icons/assets/page_selected.svg +++ b/packages/bds-ui/src/icons/assets/page_selected.svg @@ -1,3 +1,3 @@ - + diff --git a/packages/bds-ui/src/icons/assets/page_unselected.svg b/packages/bds-ui/src/icons/assets/page_unselected.svg index 3615e7ca..2f120b96 100644 --- a/packages/bds-ui/src/icons/assets/page_unselected.svg +++ b/packages/bds-ui/src/icons/assets/page_unselected.svg @@ -1,3 +1,3 @@ - + diff --git a/packages/bds-ui/src/icons/assets/profile_fill.svg b/packages/bds-ui/src/icons/assets/profile_fill.svg index 108aabd7..c79a4bee 100644 --- a/packages/bds-ui/src/icons/assets/profile_fill.svg +++ b/packages/bds-ui/src/icons/assets/profile_fill.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/bds-ui/src/icons/assets/profile_none.svg b/packages/bds-ui/src/icons/assets/profile_none.svg index ddb2f75e..89e56cae 100644 --- a/packages/bds-ui/src/icons/assets/profile_none.svg +++ b/packages/bds-ui/src/icons/assets/profile_none.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/bds-ui/src/icons/assets/send.svg b/packages/bds-ui/src/icons/assets/send.svg index e7260f1e..d3bd757e 100644 --- a/packages/bds-ui/src/icons/assets/send.svg +++ b/packages/bds-ui/src/icons/assets/send.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/bds-ui/src/icons/assets/user.svg b/packages/bds-ui/src/icons/assets/user.svg index d7a2dab8..909dc8f5 100644 --- a/packages/bds-ui/src/icons/assets/user.svg +++ b/packages/bds-ui/src/icons/assets/user.svg @@ -1,4 +1,4 @@ - + Date: Thu, 7 Aug 2025 19:07:56 +0900 Subject: [PATCH 26/27] =?UTF-8?q?CI/CD(*):=20=EB=B2=84=EC=A0=84=20?= =?UTF-8?q?=EC=BB=A8=ED=8A=B8=EB=A1=A4=20github=20action=20yml=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20(#359)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: version-control 코드 수정 * fix: develop 브랜치로 임시 변경 * fix: setup pnpm , setup node 순서 변경 * fix: develop 브랜치 테스트를 위해 임시 fetch 브랜치 설정 * feat: changeset version * fix: lefthook 롤백 * fix: 오류 수정 및 재 테스트 * fix: 오류 수정 및 재 테스트 * feat: 버전 덤프 커밋 추가 * feat: 버점 덤프 커밋 write 권한 부여 * fix: 존재 여부 확인 / 버전 덤프 두개로 분기 * fix: 버전 덤프 파일 main 으로 돌리기 * fix: 버전 덤프 파일 main 으로 돌리기 * fix: lefthook 롤백 * fix: changeset check yml 수정 * fix: changeset check yml setup 순서 변경 --- .changeset/config.json | 10 +-- .changeset/ninety-spoons-unite.md | 6 -- .changeset/tall-lemons-join.md | 6 -- .github/workflows/check-changeset.yml | 40 +++++++++++ .github/workflows/release.yml | 95 --------------------------- .github/workflows/version-dump.yml | 55 ++++++++++++++++ apps/client/CHANGELOG.md | 14 ++++ apps/client/package.json | 2 +- packages/bds-ui/CHANGELOG.md | 11 ++++ packages/bds-ui/package.json | 2 +- 10 files changed, 128 insertions(+), 113 deletions(-) delete mode 100644 .changeset/ninety-spoons-unite.md delete mode 100644 .changeset/tall-lemons-join.md create mode 100644 .github/workflows/check-changeset.yml delete mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/version-dump.yml create mode 100644 apps/client/CHANGELOG.md create mode 100644 packages/bds-ui/CHANGELOG.md diff --git a/.changeset/config.json b/.changeset/config.json index 3623d7da..8a107b7a 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -1,8 +1,10 @@ { - "$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json", - "changelog": "@changesets/cli/changelog", - "commit": true, - "fixed": [], + "$schema": "https://unpkg.com/@changesets/config@2.3.1/schema.json", + "changelog": [ + "@changesets/changelog-github", + { "repo": "team-bofit/bofit-client" } + ], + "commit": false, "linked": [], "access": "restricted", "baseBranch": "develop", diff --git a/.changeset/ninety-spoons-unite.md b/.changeset/ninety-spoons-unite.md deleted file mode 100644 index 332da5b4..00000000 --- a/.changeset/ninety-spoons-unite.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@bofit/client': major -'@bds/ui': major ---- - -first version control diff --git a/.changeset/tall-lemons-join.md b/.changeset/tall-lemons-join.md deleted file mode 100644 index 594b6f01..00000000 --- a/.changeset/tall-lemons-join.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@bofit/client': major -'@bds/ui': patch ---- - -init version control diff --git a/.github/workflows/check-changeset.yml b/.github/workflows/check-changeset.yml new file mode 100644 index 00000000..fa9451fa --- /dev/null +++ b/.github/workflows/check-changeset.yml @@ -0,0 +1,40 @@ +name: Changeset Presence Check (develop) + +on: + pull_request: + branches: [develop] + types: [opened, synchronize, reopened] + +jobs: + check-changeset: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: 📦 Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9.12.0 + + - name: ⚙️ Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 18 + cache: 'pnpm' + + + - name: Install dependencies + run: pnpm install + + - name: Check for changeset + run: | + if [ ! -d ".changeset" ] || [ -z "$(ls -A .changeset/*.md 2>/dev/null)" ]; then + echo "❌ changeset 파일이 없습니다." + exit 1 + fi + + echo "✅ changeset 파일이 있습니다:" + ls -la .changeset/*.md \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index e0b37f6f..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,95 +0,0 @@ -name: Release - -on: - pull_request: - branches: - - main - types: [opened, synchronize, reopened, closed] - push: - branches: - - main - -concurrency: ${{ github.workflow }}-${{ github.ref }} - -jobs: - check-changesets: - name: Check Changesets - runs-on: ubuntu-latest - if: github.event_name == 'pull_request' && github.base_ref == 'main' - steps: - - name: Checkout Repo - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: 'pnpm' - - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 9.12.0 - - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - name: Check for Changesets - run: | - echo "🔍 Checking for changesets..." - - if [ ! -d ".changeset" ]; then - echo "❌ .changeset directory not found!" - echo "💡 Please run 'pnpm changeset' to create a changeset" - exit 1 - fi - - if [ -z "$(ls -A .changeset/*.md 2>/dev/null)" ]; then - echo "❌ No changeset files found in .changeset/ directory!" - echo "💡 Please run 'pnpm changeset' to create a changeset" - echo "📖 See CHANGESETS.md for detailed instructions" - exit 1 - fi - - echo "✅ Changesets found:" - ls -la .changeset/*.md - echo "" - echo "🎉 Changeset validation passed!" - - preview-changesets: - name: Preview Changesets - runs-on: ubuntu-latest - if: github.event_name == 'pull_request' && github.base_ref == 'main' - steps: - - name: Checkout Repo - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: 'pnpm' - - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 9.12.0 - - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - name: Preview Changesets - run: | - echo "📦 Preview of changesets:" - echo "================================" - pnpm changeset status - echo "" - echo "🔍 Changeset files:" - echo "================================" - ls -la .changeset/*.md 2>/dev/null || echo "No changeset files found" - echo "" - echo "📖 For more information, see CHANGESETS.md" \ No newline at end of file diff --git a/.github/workflows/version-dump.yml b/.github/workflows/version-dump.yml new file mode 100644 index 00000000..689ca858 --- /dev/null +++ b/.github/workflows/version-dump.yml @@ -0,0 +1,55 @@ +# .github/workflows/version-bump-on-release.yml + +name: Version & Changelog (on release PR) + +on: + pull_request: + branches: [main] + types: [opened, synchronize, reopened] + +permissions: + contents: write + +jobs: + version-release: + runs-on: ubuntu-latest + if: github.event.pull_request.head.ref == 'main' + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.head_ref }} + + - name: 📦 Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9.12.0 + + - name: ⚙️ Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 18 + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install + + - name: Check for changeset files + run: | + if [ -z "$(ls .changeset/*.md 2>/dev/null)" ]; then + echo "No changeset files found. Skipping version bump." + exit 0 + fi + + - name: Version bump + run: pnpm changeset version + + - name: Commit and push + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add . + git commit -m "chore: release version" || echo "No changes to commit" + git push origin HEAD:${{ github.head_ref }} \ No newline at end of file diff --git a/apps/client/CHANGELOG.md b/apps/client/CHANGELOG.md new file mode 100644 index 00000000..fcb80d69 --- /dev/null +++ b/apps/client/CHANGELOG.md @@ -0,0 +1,14 @@ +# @bofit/client + +## 1.0.0 + +### Major Changes + +- 5ec8413: first version control +- b887609: init version control + +### Patch Changes + +- Updated dependencies [5ec8413] +- Updated dependencies [b887609] + - @bds/ui@1.0.0 diff --git a/apps/client/package.json b/apps/client/package.json index 36c7fc89..73b207ed 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -1,6 +1,6 @@ { "name": "@bofit/client", - "version": "0.0.0", + "version": "1.0.0", "type": "module", "scripts": { "dev": "vite", diff --git a/packages/bds-ui/CHANGELOG.md b/packages/bds-ui/CHANGELOG.md new file mode 100644 index 00000000..9b325191 --- /dev/null +++ b/packages/bds-ui/CHANGELOG.md @@ -0,0 +1,11 @@ +# @bds/ui + +## 1.0.0 + +### Major Changes + +- 5ec8413: first version control + +### Patch Changes + +- b887609: init version control diff --git a/packages/bds-ui/package.json b/packages/bds-ui/package.json index 6e083388..ee3a6bf1 100644 --- a/packages/bds-ui/package.json +++ b/packages/bds-ui/package.json @@ -1,6 +1,6 @@ { "name": "@bds/ui", - "version": "0.1.0", + "version": "1.0.0", "private": true, "exports": { ".": "./src/components/index.ts", From 668c3f0b8599f0a5397b7697166f97450271e8e2 Mon Sep 17 00:00:00 2001 From: Minjeong Kim <88662427+minjeoong@users.noreply.github.com> Date: Thu, 7 Aug 2025 22:23:06 +0900 Subject: [PATCH 27/27] =?UTF-8?q?CI/CE(*):=20main=20=EB=B8=8C=EB=9E=9C?= =?UTF-8?q?=EC=B9=98=20=EB=B0=B0=ED=8F=AC=20PR=20open=20=EC=8B=9C=20change?= =?UTF-8?q?set=20version=20=EC=9E=90=EB=8F=99=ED=99=94,=20base=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20(#362)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: pull base 와 head ref 수정 * fix: check-changeset -> version-dump 합치기 --- .github/workflows/check-changeset.yml | 40 --------------------------- .github/workflows/version-dump.yml | 9 ++++-- 2 files changed, 6 insertions(+), 43 deletions(-) delete mode 100644 .github/workflows/check-changeset.yml diff --git a/.github/workflows/check-changeset.yml b/.github/workflows/check-changeset.yml deleted file mode 100644 index fa9451fa..00000000 --- a/.github/workflows/check-changeset.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Changeset Presence Check (develop) - -on: - pull_request: - branches: [develop] - types: [opened, synchronize, reopened] - -jobs: - check-changeset: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: 📦 Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 9.12.0 - - - name: ⚙️ Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: 'pnpm' - - - - name: Install dependencies - run: pnpm install - - - name: Check for changeset - run: | - if [ ! -d ".changeset" ] || [ -z "$(ls -A .changeset/*.md 2>/dev/null)" ]; then - echo "❌ changeset 파일이 없습니다." - exit 1 - fi - - echo "✅ changeset 파일이 있습니다:" - ls -la .changeset/*.md \ No newline at end of file diff --git a/.github/workflows/version-dump.yml b/.github/workflows/version-dump.yml index 689ca858..00827ede 100644 --- a/.github/workflows/version-dump.yml +++ b/.github/workflows/version-dump.yml @@ -13,7 +13,7 @@ permissions: jobs: version-release: runs-on: ubuntu-latest - if: github.event.pull_request.head.ref == 'main' + if: github.event.pull_request.base.ref == 'main' && github.event.pull_request.head.ref == 'develop' steps: - name: Checkout @@ -39,9 +39,12 @@ jobs: - name: Check for changeset files run: | if [ -z "$(ls .changeset/*.md 2>/dev/null)" ]; then - echo "No changeset files found. Skipping version bump." - exit 0 + echo "❌ changeset 파일이 없습니다." + exit 1 fi + + echo "✅ changeset 파일이 있습니다:" + ls -la .changeset/*.md - name: Version bump run: pnpm changeset version