diff --git a/apps/dm/.env.development b/apps/dm/.env.development deleted file mode 100644 index c9956f715..000000000 --- a/apps/dm/.env.development +++ /dev/null @@ -1,22 +0,0 @@ -# 공단 개발 -NEXT_PUBLIC_SITE_ID = DM -NEXT_PUBLIC_PORT = 3000 -NEXT_PUBLIC_PROXY_HOST = https://devreuse.hasuon.or.kr -NEXT_PUBLIC_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000 -NEXT_PUBLIC_FO_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/operation-service/api/v1 -NEXT_PUBLIC_CS_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000 -NEXT_PUBLIC_CS_TUS_UPLOAD = /attach-service/api/v1/tus/upload -NEXT_PUBLIC_GEOSERVER_URL = http://172.29.143.87:8080/geoserver -NEXT_PUBLIC_LX_GEOSERVER_URL = http://172.29.143.87:8080/geoserver_swl -NEXT_PUBLIC_CLAIM_NAME = Authorization -NEXT_PUBLIC_AUTH_USER_ID = token-id -NEXT_PUBLIC_ACCESS_TOKEN = access-token -NEXT_PUBLIC_REFRESH_TOKEN = refresh-token -NEXT_PUBLIC_REUSE_API_URL= http://apigateway.iipbs-was.svc.cluster.local:8000/reuse-service/api/v1 -NEXT_PUBLIC_NGII_URL = http://172.29.143.87/openapi/Gettile.do?apiKey=BDE2BEF39DAFEC293AB6730150F222AC&layer=korean_map&TileMatrix={z}&TileCol={y}&TileRow={x} -NEXT_PUBLIC_SEWERAGE_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/sewerage-service/api -NEXT_PUBLIC_CM_LOGIN_PAGE_URL = https://devqueen.hasuon.or.kr/auth/login - - -NEXT_PUBLIC_FINDADRESS_URL=https://business.juso.go.kr/addrlink/addrLinkApi.do -NEXT_PRIVATE_WR_ADDRESS_KEY = U01TXOFVVEgyMDI1MDgyODE0MTAxNzExNjEyMjA= diff --git a/apps/dm/.env.local b/apps/dm/.env.local index ebfbfeedb..93ea58f01 100644 --- a/apps/dm/.env.local +++ b/apps/dm/.env.local @@ -13,9 +13,10 @@ NEXT_PUBLIC_CS_SERVER_API_URL = http://dev.onasys.co.kr:8000 NEXT_PUBLIC_GEOSERVER_URL = http://rsone.iptime.org:10010/geoserver NEXT_PUBLIC_LX_GEOSERVER_URL = http://con.mind-one.co.kr:11306/geoserver NEXT_PUBLIC_CS_TUS_UPLOAD = /attach-service/api/v1/tus/upload -NEXT_PUBLIC_REUSE_API_URL=http://con.mind-one.co.kr:11080/api/v1 -NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr/openapi/Gettile.do?apiKey=04trYP9_xwLAfALjwZ-B8g -NEXT_PUBLIC_SEWERAGE_API_URL=http://con.mind-one.co.kr:11083/sewerage-service/api # 개발 서버 API +NEXT_PUBLIC_WR_SERVER_API_URL = http://con.mind-one.co.kr:11083/reuse-service/api/v1 +NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr +NEXT_PUBLIC_NGII_PARAM = 04trYP9_xwLAfALjwZ-B8g&service=WMTS&request=GetTile&version=1.0.0&format=image/png&layer=korean_map&style=korean&tilematrixset=korean&tilematrix={z}&tilecol={x}&tilerow={y} +NEXT_PUBLIC_SEWERAGE_API_URL=http://con.mind-one.co.kr:11083/sewerage-service # 개발 서버 API #NEXT_PUBLIC_SEWERAGE_API_URL=http://192.168.1.128:8883/sewerage-service/api # 최용성 #NEXT_PUBLIC_SEWERAGE_API_URL=http://192.168.1.66:8883/sewerage-service/api # 박이정 NEXT_PUBLIC_CM_LOGIN_PAGE_URL = http://dev.onasys.co.kr:3000/auth/login diff --git a/apps/dm/.env.mindone b/apps/dm/.env.mindone index 0f855c1c4..1ca3ecfb6 100644 --- a/apps/dm/.env.mindone +++ b/apps/dm/.env.mindone @@ -10,9 +10,10 @@ NEXT_PUBLIC_CLAIM_NAME = Authorization NEXT_PUBLIC_AUTH_USER_ID = token-id NEXT_PUBLIC_ACCESS_TOKEN = access-token NEXT_PUBLIC_REFRESH_TOKEN = refresh-token -NEXT_PUBLIC_REUSE_API_URL=http://con.mind-one.co.kr:11080/api/v1 -NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr/openapi/Gettile.do?apiKey=04trYP9_xwLAfALjwZ-B8g -NEXT_PUBLIC_SEWERAGE_API_URL=http://con.mind-one.co.kr:11083/sewerage-service/api # 개발 서버 API +NEXT_PUBLIC_WR_SERVER_API_URL = http://con.mind-one.co.kr:11083/reuse-service/api/v1 +NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr +NEXT_PUBLIC_NGII_PARAM = 04trYP9_xwLAfALjwZ-B8g&service=WMTS&request=GetTile&version=1.0.0&format=image/png&layer=korean_map&style=korean&tilematrixset=korean&tilematrix={z}&tilecol={x}&tilerow={y} +NEXT_PUBLIC_SEWERAGE_API_URL=http://con.mind-one.co.kr:11083/sewerage-service # 개발 서버 API # NEXT_PUBLIC_SEWERAGE_API_URL=http://192.168.1.128:8883/sewerage-service/api # 최용성 #NEXT_PUBLIC_SEWERAGE_API_URL=http://192.168.1.66:8883/sewerage-service/api # 박이정 NEXT_PUBLIC_CM_LOGIN_PAGE_URL = http://dev.onasys.co.kr:3000/auth/login diff --git a/apps/dm/.env.production b/apps/dm/.env.production index 3593c4607..23cde9181 100644 --- a/apps/dm/.env.production +++ b/apps/dm/.env.production @@ -1,19 +1,22 @@ # 공단 운영 NEXT_PUBLIC_SITE_ID = DM NEXT_PUBLIC_PORT = 3000 +NEXT_PUBLIC_CLAIM_NAME = Authorization +NEXT_PUBLIC_AUTH_USER_ID = token-id +NEXT_PUBLIC_ACCESS_TOKEN = access-token +NEXT_PUBLIC_REFRESH_TOKEN = refresh-token +#NEXT_PUBLIC_PROXY_HOST = https://devreuse.hasuon.or.kr +#NEXT_PUBLIC_CM_LOGIN_PAGE_URL = https://devqueen.hasuon.or.kr/auth/login NEXT_PUBLIC_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000 NEXT_PUBLIC_FO_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/operation-service/api/v1 NEXT_PUBLIC_CS_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000 NEXT_PUBLIC_CS_TUS_UPLOAD = /attach-service/api/v1/tus/upload NEXT_PUBLIC_GEOSERVER_URL = http://172.29.143.87:8080/geoserver NEXT_PUBLIC_LX_GEOSERVER_URL = http://172.29.143.87:8080/geoserver_swl -NEXT_PUBLIC_CLAIM_NAME = Authorization -NEXT_PUBLIC_AUTH_USER_ID = token-id -NEXT_PUBLIC_ACCESS_TOKEN = access-token -NEXT_PUBLIC_REFRESH_TOKEN = refresh-token -NEXT_PUBLIC_REUSE_API_URL= http://apigateway.iipbs-was.svc.cluster.local:8000/reuse-service/api/v1 -NEXT_PUBLIC_SEWERAGE_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/sewerage-service/api -NEXT_PUBLIC_NGII_URL = http://172.29.143.87/openapi/Gettile.do?apiKey=BDE2BEF39DAFEC293AB6730150F222AC&layer=korean_map&TileMatrix={z}&TileCol={y}&TileRow={x} +NEXT_PUBLIC_WR_API_URL= http://apigateway.iipbs-was.svc.cluster.local:8000/reuse-service/api/v1 +NEXT_PUBLIC_SEWERAGE_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/sewerage-service +NEXT_PUBLIC_NGII_URL = http://172.29.143.87 +NEXT_PUBLIC_NGII_PARAM = BDE2BEF39DAFEC293AB6730150F222AC&service=WMTS&request=GetTile&version=1.0.0&format=image/png&layer=korean_map&style=korean&tilematrixset=korean&tilematrix={z}&tilecol={y}&tilerow={x} NEXT_PUBLIC_FINDADRESS_URL=https://business.juso.go.kr/addrlink/addrLinkApi.do diff --git a/apps/dm/app/(popup-layout)/map/service/map.ts b/apps/dm/app/(popup-layout)/map/service/map.ts index 9c10ca190..7701288bb 100644 --- a/apps/dm/app/(popup-layout)/map/service/map.ts +++ b/apps/dm/app/(popup-layout)/map/service/map.ts @@ -29,7 +29,7 @@ export type LyrStngProps = { export const mapService = { //레이어 설정 조회 getLyrStngs: async () => { - const response = await fetch(`${DEV_URL_SN}/app/v1/map/lyrStngs/DM_NETWORK`, { + const response = await fetch(`${DEV_URL_SN}/api/v1/map/lyrStngs/DM_NETWORK`, { method: 'GET', headers: { 'Accept': 'application/json', diff --git a/apps/dm/middleware.ts b/apps/dm/middleware.ts index 8616a6e80..ee26a9767 100644 --- a/apps/dm/middleware.ts +++ b/apps/dm/middleware.ts @@ -11,6 +11,18 @@ const SEWERAGE_API_URL = process.env.NEXT_PUBLIC_SEWERAGE_API_URL || ""; const BUSINESS_JUSO_API_URL = process.env.NEXT_PUBLIC_FINDADRESS_URL || ""; const AdressKey = process.env.NEXT_PRIVATE_WR_ADDRESS_KEY || ""; +/** 공통: URLSearchParams의 값을 decodeURIComponent 적용하여 querystring 생성 */ +function toDecodedQueryString(params: URLSearchParams): string { + const entries: string[][] = Array.from(params.entries()).map(([k, v]) => { + try { + return [k, decodeURIComponent(v)] as string[]; + } catch { + return [k, v] as string[]; + } + }); + return new URLSearchParams(entries).toString(); +} + export function middleware(req: NextRequest) { const pathname = req.nextUrl.pathname; console.log(`[Middleware] Request URL: ${req.url}`); @@ -109,7 +121,7 @@ export function middleware(req: NextRequest) { const url = req.nextUrl.clone(); url.searchParams.set("TYPENAME", typename.replace("hasudo:", "")); queryParams = url.searchParams.toString(); - newUrl = `${SEWERAGE_API_URL}/v1/map/geometry${queryParams ? `?${queryParams}` : ""}`; + newUrl = `${SEWERAGE_API_URL}/api/v1/map/geometry${queryParams ? `?${queryParams}` : ""}`; } console.log(`[Middleware] Rewriting from '/geoserver' path to: ${newUrl}`); @@ -142,6 +154,14 @@ export function middleware(req: NextRequest) { console.log(`[Middleware] Rewriting from '/sewerage-service' path to: ${newUrl}`); return NextResponse.rewrite(new URL(newUrl)); } + + if (pathname.startsWith("/ngii-server")) { + const decodedQuery = toDecodedQueryString(searchParams); + const newUrl = `${process.env.NEXT_PUBLIC_NGII_URL}${pathname.replace("/ngii-server", "")}${decodedQuery ? `?${decodedQuery}` : ""}`; + console.log(`[Middleware] Rewriting from '${pathname}' path to: ${newUrl}`); + return NextResponse.rewrite(new URL(newUrl)); + } + if (pathname.startsWith("/bussiness-juso-service")) { console.log("AdressKey ", AdressKey); const params = new URLSearchParams({ @@ -173,6 +193,7 @@ export const config = { "/reuse-service/:path*", "/sewerage-service/:path*", "/bussiness-juso-service/:path*", + "/ngii-server/:path*", "/", ], }; diff --git a/apps/fo/.env.development b/apps/fo/.env.development deleted file mode 100644 index 56487d93e..000000000 --- a/apps/fo/.env.development +++ /dev/null @@ -1,19 +0,0 @@ -# 공단 개발 -NEXT_PUBLIC_SITE_ID = FO -NEXT_PUBLIC_PORT = 3000 -NEXT_PUBLIC_CLAIM_NAME = Authorization -NEXT_PUBLIC_AUTH_USER_ID = token-id -NEXT_PUBLIC_ACCESS_TOKEN = access-token -NEXT_PUBLIC_REFRESH_TOKEN = refresh-token -NEXT_PUBLIC_PROXY_HOST = https://devlarva.hasuon.or.kr -NEXT_PUBLIC_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/operation-service -NEXT_PUBLIC_FO_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/operation-service/api/v1 -NEXT_PUBLIC_CS_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000 -NEXT_PUBLIC_CS_TUS_UPLOAD = /attach-service/api/v1/tus/upload -NEXT_PUBLIC_GEOSERVER_URL = http://172.29.143.87:8080/geoserver -NEXT_PUBLIC_LX_GEOSERVER_URL = http://172.29.143.87:8080/geoserver_swl -NEXT_PUBLIC_WR_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/reuse-service/api/v1 -NEXT_PUBLIC_SEWERAGE_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/sewerage-service/api -NEXT_PUBLIC_DC_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/dc-service -NEXT_PUBLIC_CM_LOGIN_PAGE_URL = https://devqueen.hasuon.or.kr/auth/login -NEXT_PUBLIC_NGII_URL = http://172.29.143.87/openap/Gettile.do?apiKey=BDE2BEF39DAFEC293AB6730150F222AC&layer=korean_map&TileMatrix={z}&TileCol={y}&TileRow={x} diff --git a/apps/fo/.env.local b/apps/fo/.env.local index ddbc5f169..17c6c38cd 100644 --- a/apps/fo/.env.local +++ b/apps/fo/.env.local @@ -4,22 +4,17 @@ NEXT_PUBLIC_CLAIM_NAME = Authorization NEXT_PUBLIC_AUTH_USER_ID = token-id NEXT_PUBLIC_ACCESS_TOKEN = access-token NEXT_PUBLIC_REFRESH_TOKEN = refresh-token -NEXT_PUBLIC_DEV_CM_LOGIN_PAGE_URL = http://localhost:3001/auth/login -NEXT_PUBLIC_VDI_DEV_CM_LOGIN_PAGE_URL = http://localhost:3001/auth/login -NEXT_PUBLIC_VDI_DEV_CM_LOGIN_PAGE_URL = http://localhost:3001/auth/login NEXT_PUBLIC_PROXY_HOST = http://localhost:3000 +NEXT_PUBLIC_CM_LOGIN_PAGE_URL = http://localhost:3001/auth/login NEXT_PUBLIC_SERVER_API_URL = http://con.mind-one.co.kr:11083/operation-service -NEXT_PUBLIC_WR_SERVER_API_URL = http://con.mind-one.co.kr:11083/reuse-service/api/v1 +NEXT_PUBLIC_WR_SERVER_API_URL = http://con.mind-one.co.kr:11083/reuse-service/ NEXT_PUBLIC_CS_SERVER_API_URL = http://dev.onasys.co.kr:8000 NEXT_PUBLIC_GEOSERVER_URL = https://hasudo.geo.rsonesoft.com/geoserver NEXT_PUBLIC_LX_GEOSERVER_URL = http://con.mind-one.co.kr:11306/geoserver -#NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr/openapi/Gettile.do?apiKey=04trYP9_xwLAfALjwZ-B8g -#NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr/openapi/Gettile.do?apiKey=04trYP9_xwLAfALjwZ-B8g&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/png&layer=korean_map&style=korean&tilematrixset=EPSG:5179&TileMatrix={z}&TileCol={x}&TileRow={y} -NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr/openapi/Gettile.do?apiKey=04trYP9_xwLAfALjwZ-B8g&layer=korean_map&TileMatrix={z}&TileCol={x}&TileRow={y} - -NEXT_PUBLIC_SEWERAGE_API_URL = http://con.mind-one.co.kr:11083/sewerage-service/api # 개발 서버 API NEXT_PUBLIC_DC_URL = https://apigateway.apps.rsonesoft.com/dc-service -NEXT_PUBLIC_CM_LOGIN_PAGE_URL = http://dev.onasys.co.kr:3000/auth/login +NEXT_PUBLIC_SEWERAGE_API_URL = http://con.mind-one.co.kr:11083/sewerage-service # 개발 서버 API +NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr +NEXT_PUBLIC_NGII_PARAM = 04trYP9_xwLAfALjwZ-B8g&service=WMTS&request=GetTile&version=1.0.0&format=image/png&layer=korean_map&style=korean&tilematrixset=korean&tilematrix={z}&tilecol={x}&tilerow={y} #NEXT_PUBLIC_SERVER_API_URL = http://localhost:8883/operation-service diff --git a/apps/fo/.env.mindone b/apps/fo/.env.mindone index 1dbba974d..d2258aaf3 100644 --- a/apps/fo/.env.mindone +++ b/apps/fo/.env.mindone @@ -5,13 +5,14 @@ NEXT_PUBLIC_AUTH_USER_ID = token-id NEXT_PUBLIC_ACCESS_TOKEN = access-token NEXT_PUBLIC_REFRESH_TOKEN = refresh-token NEXT_PUBLIC_PROXY_HOST = http://con.mind-one.co.kr:11300 +NEXT_PUBLIC_CM_LOGIN_PAGE_URL = http://dev.onasys.co.kr:3000/auth/login #NEXT_PUBLIC_SERVER_API_URL = http://con.mind-one.co.kr:11082 NEXT_PUBLIC_SERVER_API_URL = http://con.mind-one.co.kr:11083/operation-service -NEXT_PUBLIC_WR_SERVER_API_URL = http://con.mind-one.co.kr:11083/reuse-service/api/v1 +NEXT_PUBLIC_WR_SERVER_API_URL = http://con.mind-one.co.kr:11083/reuse-service/ NEXT_PUBLIC_CS_SERVER_API_URL = http://dev.onasys.co.kr:8000 NEXT_PUBLIC_GEOSERVER_URL = https://hasudo.geo.rsonesoft.com/geoserver NEXT_PUBLIC_LX_GEOSERVER_URL = http://con.mind-one.co.kr:11306/geoserver -NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr/openapi/Gettile.do?apiKey=04trYP9_xwLAfALjwZ-B8g&layer=korean_map&TileMatrix={z}&TileCol={x}&TileRow={y} - -NEXT_PUBLIC_SEWERAGE_API_URL=http://con.mind-one.co.kr:11083/sewerage-service/api -NEXT_PUBLIC_CM_LOGIN_PAGE_URL = http://dev.onasys.co.kr:3000/auth/login \ No newline at end of file +NEXT_PUBLIC_DC_URL = https://apigateway.apps.rsonesoft.com/dc-service +NEXT_PUBLIC_SEWERAGE_API_URL = http://con.mind-one.co.kr:11083/sewerage-service +NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr +NEXT_PUBLIC_NGII_PARAM = 04trYP9_xwLAfALjwZ-B8g&service=WMTS&request=GetTile&version=1.0.0&format=image/png&layer=korean_map&style=korean&tilematrixset=korean&tilematrix={z}&tilecol={x}&tilerow={y} diff --git a/apps/fo/.env.production b/apps/fo/.env.production index af5c05022..45e179066 100644 --- a/apps/fo/.env.production +++ b/apps/fo/.env.production @@ -5,6 +5,8 @@ NEXT_PUBLIC_CLAIM_NAME = Authorization NEXT_PUBLIC_AUTH_USER_ID = token-id NEXT_PUBLIC_ACCESS_TOKEN = access-token NEXT_PUBLIC_REFRESH_TOKEN = refresh-token +#NEXT_PUBLIC_PROXY_HOST = https://devlarva.hasuon.or.kr +#NEXT_PUBLIC_CM_LOGIN_PAGE_URL = https://devqueen.hasuon.or.kr/auth/login NEXT_PUBLIC_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/operation-service NEXT_PUBLIC_FO_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/operation-service/api/v1 NEXT_PUBLIC_CS_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000 @@ -12,6 +14,7 @@ NEXT_PUBLIC_CS_TUS_UPLOAD = /attach-service/api/v1/tus/upload NEXT_PUBLIC_GEOSERVER_URL = http://172.29.143.87:8080/geoserver NEXT_PUBLIC_LX_GEOSERVER_URL = http://172.29.143.87:8080/geoserver_swl NEXT_PUBLIC_WR_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/reuse-service/api/v1 -NEXT_PUBLIC_SEWERAGE_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/sewerage-service/api +NEXT_PUBLIC_SEWERAGE_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/sewerage-service NEXT_PUBLIC_DC_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/dc-service -NEXT_PUBLIC_NGII_URL = http://172.29.143.87/openap/Gettile.do?apiKey=BDE2BEF39DAFEC293AB6730150F222AC&layer=korean_map&TileMatrix={z}&TileCol={y}&TileRow={x} +NEXT_PUBLIC_NGII_URL = http://172.29.143.87 +NEXT_PUBLIC_NGII_PARAM = BDE2BEF39DAFEC293AB6730150F222AC&service=WMTS&request=GetTile&version=1.0.0&format=image/png&layer=korean_map&style=korean&tilematrixset=korean&tilematrix={z}&tilecol={y}&tilerow={x} diff --git a/apps/fo/app/api/auth/logout/route.ts b/apps/fo/app/api/auth/logout/route.ts new file mode 100644 index 000000000..8832d35a3 --- /dev/null +++ b/apps/fo/app/api/auth/logout/route.ts @@ -0,0 +1,17 @@ +import { cookies } from "next/headers"; +import { NextResponse } from "next/server"; +import { + ACCESS_TOKEN, + AUTH_USER_ID, + CLAIM_NAME, + REFRESH_TOKEN, +} from "@/src/shared/config"; + +export async function POST() { + const cookieStore = await cookies(); + cookieStore.delete(ACCESS_TOKEN); + cookieStore.delete(REFRESH_TOKEN); + cookieStore.delete(AUTH_USER_ID); + cookieStore.delete(CLAIM_NAME); + return NextResponse.json({ message: "Logged out" }, { status: 200 }); +} diff --git a/apps/fo/app/api/proxy/[...url]/route.ts b/apps/fo/app/api/proxy/[...url]/route.ts new file mode 100644 index 000000000..cf6447b1a --- /dev/null +++ b/apps/fo/app/api/proxy/[...url]/route.ts @@ -0,0 +1,111 @@ +/** + * 📄 Proxy Route + * API 프록시 라우트 + * + * - 서버 API로의 요청 프록시 처리 + * - 쿠키 기반 인증 토큰 및 리프레시 토큰 관리 + * - POST 및 PUT 요청 핸들링 + * - 사용자 인증 정보 검증 및 응답 처리 + * - 에러 핸들링 및 상태 코드 반환 + * - 사이트 ID 및 헤더 설정 + */ +import { cookies } from "next/headers"; +import { NextResponse } from "next/server"; + +const ACCESS_TOKEN = process.env.NEXT_PUBLIC_ACCESS_TOKEN || "access-token"; +const AUTH_USER_ID = process.env.NEXT_PUBLIC_AUTH_USER_ID || "token-id"; +const CLAIM_NAME = process.env.NEXT_PUBLIC_CLAIM_NAME || "Authorization"; +const REFRESH_TOKEN = process.env.NEXT_PUBLIC_REFRESH_TOKEN || "refresh-token"; +const SERVER_API_URL = process.env.NEXT_PUBLIC_SERVER_API_URL || ""; +const SITE_ID = process.env.NEXT_PUBLIC_SITE_ID || "SN"; + +async function handler( + request: Request, + params: { url: string[] }, + method: "GET" | "POST" | "PUT" | "DELETE", +) { + const cookieStore = await cookies(); + const headers: Record = { + "Content-Type": "application/json", + "X-Site-Id": SITE_ID, + }; + let body = {}; + const isRefreshHandler = params.url.includes("refresh"); + + // silent refresh + if (isRefreshHandler) { + const refreshToken = cookieStore.get(REFRESH_TOKEN); + headers[CLAIM_NAME] = refreshToken?.value ?? ""; + + if (!headers[CLAIM_NAME]) { + return NextResponse.json({ message: "Can't refresh" }, { status: 401 }); + } + } + + try { + if (!isRefreshHandler) { + body = await request.json(); + } + + const result = await fetch(`${SERVER_API_URL}/${params.url.join("/")}`, { + method, + headers, + body: JSON.stringify(body), + }); + + if (!result.ok) { + console.log("Invalid Credentials "); + return NextResponse.json( + { message: "Invalid Credentials" }, + { status: 401 }, + ); + } + + const accessToken = result.headers.get(ACCESS_TOKEN); + const refreshToken = result.headers.get(REFRESH_TOKEN); + const userId = result.headers.get(AUTH_USER_ID); + + if (accessToken && userId) { + const response = NextResponse.json({ + [ACCESS_TOKEN]: accessToken, + [AUTH_USER_ID]: userId, + }); + + if (refreshToken) { + cookieStore.set(REFRESH_TOKEN, refreshToken, { + httpOnly: true, + sameSite: "lax", + path: "/", + }); + } + + return response; + } + + return NextResponse.json( + { message: "Invalid Credentials" }, + { status: 401 }, + ); + } catch (error) { + return NextResponse.json( + { message: "Server Error", error }, + { status: 500 }, + ); + } +} + +export async function POST( + request: Request, + props: { params: Promise<{ url: string[] }> }, +) { + const params = await props.params; + return handler(request, params, "POST"); +} + +export async function PUT( + request: Request, + props: { params: Promise<{ url: string[] }> }, +) { + const params = await props.params; + return handler(request, params, "PUT"); +} diff --git a/apps/fo/app/components/common/CalcRainEffect.tsx b/apps/fo/app/components/common/CalcRainEffect.tsx index c35140d83..9a99564e7 100644 --- a/apps/fo/app/components/common/CalcRainEffect.tsx +++ b/apps/fo/app/components/common/CalcRainEffect.tsx @@ -10,8 +10,8 @@ */ export default function CalcRainEffect(data : any, weather='ALL') { - console.log("%c Calculate RainEffect !" , "background:blue;color:white"); - console.log("%c Data Length :"+data.length+" Weather : "+weather , "background:yellow;color:blue"); + /* console.log("%c Calculate RainEffect !" , "background:blue;color:white"); + console.log("%c Data Length :"+data.length+" Weather : "+weather , "background:yellow;color:blue");*/ // 강우영향일 계산 (강우량이 3 초과이면 무조건 강우영향일) for(let idx = 0; idx < data.length; idx++) { const item = data[idx]; diff --git a/apps/fo/app/pages/(map-layout)/map/page.tsx b/apps/fo/app/pages/(map-layout)/map/page.tsx index 984a8afa7..86b6ee508 100644 --- a/apps/fo/app/pages/(map-layout)/map/page.tsx +++ b/apps/fo/app/pages/(map-layout)/map/page.tsx @@ -55,7 +55,7 @@ const Map = () => { const fetchData = async () => { try { - const API_URL = `${process.env.NEXT_PUBLIC_SEWERAGE_API_URL}/v1/map`; + const API_URL = "/sewerage-service/api/v1/map"; const reqUrl = `${API_URL}/lyrStngs/FO_NETWORK`; const response = await fetch(reqUrl, { method: "GET", diff --git a/apps/fo/app/pages/(with-layout)/sewageOccur/page.tsx b/apps/fo/app/pages/(with-layout)/sewageOccur/page.tsx index 6fb01efb3..87bc8e7a8 100644 --- a/apps/fo/app/pages/(with-layout)/sewageOccur/page.tsx +++ b/apps/fo/app/pages/(with-layout)/sewageOccur/page.tsx @@ -7,13 +7,13 @@ "use client" import { useFoStore } from "@/app/store"; -import type { TableUpperProps } from "@/app/store/common"; +import { type TableUpperProps } from "@/app/store/common"; +import type { SewageOccurProps } from "@/app/store/sewageOccur"; import { ContentsDiv, downloadExcel, MainDiv, SearchBaseForm, SearchInput, SelectBox, Title, UiModal, UiTable, type ReturnType } from "@common/business_components"; import ListDiv from "@common/business_components/ui/list_div"; +import LoadingOverlay from "@common/business_components/ui/loadingBar"; import { useCallback, useEffect, useRef, useState } from "react"; import SewageOccurModal from "./modal/page"; -import type { SewageOccurProps } from "@/app/store/sewageOccur"; -import LoadingOverlay from "@common/business_components/ui/loadingBar"; export default function PlanSewage() { const {Common @@ -21,6 +21,7 @@ export default function PlanSewage() { ,SewageOccurSearch ,initializeCommonData ,searchSewageOccurList + ,resetExcelList } = useFoStore((state) => state) || { Common: { isInit: false, selectUpdownData: [], selectOperationData: [], selectSidoData: [], selectSigunData: [], selectRegionData: [], selectUnitWaterShedData: [], selectMiddleRegionData: [], selectEnvPartData: [], selectSearchYear: [{ val: "0" }], btnClass: "" }, SewageOccur: { sewageOccurList: [], sewageOccurCount: 0, excelList: [], upHeadList1: [], upHeadList2: [], upHeadList3: [] }, @@ -135,6 +136,7 @@ export default function PlanSewage() { * useEffect */ useEffect(() => { + resetExcelList(); if (!isInit) { initializeCommonData(); searchSewageOccurList(1, 10, selectSearchYear[0]?.val || "0"); @@ -142,15 +144,19 @@ export default function PlanSewage() { }, [isInit, initializeCommonData, searchSewageOccurList]); useEffect(() => { - if (excelList && excelList.length > 0) { - downloadExcel({ - data: excelList as unknown as JSON[], - fileName: '오수발생량 추정', - sheetNameArray: ['오수발생량 추정'], - headerRange: 'A1:O1' - }); - } - }, [excelList]); + const timer = setTimeout(() => { + if (excelList && excelList.length > 0) { + downloadExcel({ + data: excelList as unknown as JSON[], + fileName: '오수발생량 추정', + sheetNameArray: ['오수발생량 추정'], + headerRange: 'A1:O1' + }); + } + }, 500); // 약간의 지연을 두고 다운로드 실행 + + return () => clearTimeout(timer); + }, [excelList, isInit]); /** * 콜백함수 @@ -188,8 +194,12 @@ export default function PlanSewage() { // 엑셀다운로드 const excelDownload = useCallback(() => { - searchFacilityPrecipitation(ref.current, 1, 10000); - }, [searchFacilityPrecipitation]); + searchFacilityPrecipitation(ref.current, 1, sewageOccurCount); + + setTimeout(() => { + resetExcelList() + }, 1000); // 약간의 지연을 두고 초기화 (다운로드 완료 후) + }, [searchFacilityPrecipitation, sewageOccurCount]); // 페이지 변경 const handlePageChange = useCallback((page: number) => { @@ -250,4 +260,4 @@ export default function PlanSewage() { )} ); -} \ No newline at end of file +} diff --git a/apps/fo/app/pages/(with-layout)/underWaterInput/page.tsx b/apps/fo/app/pages/(with-layout)/underWaterInput/page.tsx index a621611b7..52184d591 100644 --- a/apps/fo/app/pages/(with-layout)/underWaterInput/page.tsx +++ b/apps/fo/app/pages/(with-layout)/underWaterInput/page.tsx @@ -22,6 +22,7 @@ export default function UnderWaterInput() { ,UnderWaterSearch ,initializeCommonData ,searchUnderWaterList + ,resetExcelList } = useFoStore((state) => state) || { Common: { isInit: false, selectUpdownData: [], selectOperationData: [], selectSidoData: [], selectSigunData: [], selectRegionData: [], selectUnitWaterShedData: [], selectMiddleRegionData: [], selectEnvPartData: [], selectSearchYear: [{ val: "0" }], btnClass: "" }, UnderWater: { underWaterList: [], underWaterCount: 0, excelList: [], upHeadList1: [], upHeadList2: [], upHeadList3: [] }, @@ -134,21 +135,25 @@ export default function UnderWaterInput() { * useEffect */ useEffect(() => { + resetExcelList(); if (!isInit) { initializeCommonData(); searchUnderWaterList(1, 10, selectSearchYear[0]?.val || "0"); } - }, [isInit, initializeCommonData, searchUnderWaterList, selectSearchYear]); + }, [isInit, initializeCommonData, searchUnderWaterList, selectSearchYear, resetExcelList]); useEffect(() => { - if (excelList && excelList.length > 0) { - downloadExcel({ - data: excelList as unknown as JSON[], - fileName: '지하수유입량 추정', - sheetNameArray: ['지하수유입량 추정'], - headerRange: 'A1:V1' - }); - } + const timer = setTimeout(() => { + if (excelList && excelList.length > 0) { + downloadExcel({ + data: excelList as unknown as JSON[], + fileName: '지하수유입량 추정', + sheetNameArray: ['지하수유입량 추정'], + headerRange: 'A1:V1' + }); + } + }, 500); // 약간의 지연을 두고 다운로드 실행 + return () => clearTimeout(timer); }, [excelList]); /** @@ -187,8 +192,12 @@ export default function UnderWaterInput() { // 엑셀다운로드 const excelDownload = useCallback(() => { - searchFacilityPrecipitation(ref.current, 1, 10000); - }, [searchFacilityPrecipitation]); + searchFacilityPrecipitation(ref.current, 1, underWaterCount); + + setTimeout(() => { + resetExcelList(); + }, 1000); // 약간의 지연을 두고 다운로드 실행 + }, [resetExcelList, searchFacilityPrecipitation, underWaterCount]); // 페이지 변경 const handlePageChange = useCallback((page: number) => { diff --git a/apps/fo/app/store/facilityPrecipitation/index.tsx b/apps/fo/app/store/facilityPrecipitation/index.tsx index 984a40814..f7a716349 100644 --- a/apps/fo/app/store/facilityPrecipitation/index.tsx +++ b/apps/fo/app/store/facilityPrecipitation/index.tsx @@ -252,6 +252,7 @@ export const facilityPrecipitationReducer:(set:(fn: (state: FacilityPrecipitatio const excelDownList: ExcelType[] = []; if(pageSize>5000){ + console.log('엑셀다운로드 데이터 생성 : ', data.length); data.forEach((item: FacilityPrecipitationProps) => { excelDownList.push({ 시설코드: item.bscFctCd, diff --git a/apps/fo/app/store/processFacility/index.tsx b/apps/fo/app/store/processFacility/index.tsx index 43e7eab53..5cdab43b6 100644 --- a/apps/fo/app/store/processFacility/index.tsx +++ b/apps/fo/app/store/processFacility/index.tsx @@ -1,5 +1,5 @@ import { getFetch } from "@/app/components/api"; -import DataForm from "@/app/components/common/DataForm"; +import DataForm, { roundNumber } from "@/app/components/common/DataForm"; import type { TableUpperProps } from "../dashboard"; export type { TableUpperProps }; @@ -412,6 +412,26 @@ const gridListFcltyWaterQltyInfo:fcltyWaterQltyInfoProps[] = [ ====================================*/ // 시설정보 리스트 데이터 호출(구분 선택 후 시설명 있을 경우) +export const fetchFacilityListInit = async (pageNo:number, pageSize:number, partValue?:string, nameCd?:string, fcltCpct?:string, oprtngSttsCd?:string, facilityPartValue?:string, facilityName?:string ): Promise<{data:facilityListProps[], count:number}> => { + try { + const tailStr = partValue ? '/'+ (partValue==='G' ? 'A' : partValue) + '/' + nameCd + '/' + fcltCpct + '/' + oprtngSttsCd + '/' + facilityPartValue + (facilityName && facilityName !== '' ? '/' + facilityName : '') : ''; + const url = '/prcsFclt/info/'+pageNo+'/'+pageSize+tailStr; + const res = await getFetch('fo', url); + res.data.forEach((item: Record) => { + item.daddr = item.addr ? item.addr : ''; + item.sidoNm = item.sido ? item.sido : ''; + item.sggNm = item.gugun ? item.gugun : ''; + item.fctCpc = roundNumber(item.fctCpc as number, 0); + }); + + return res; + } catch (error) { + console.error('시설정보 데이터를 가져오는데 실패했습니다:', error); + return {data: [], count: 0}; + } +}; + + const fetchFacilityList = async (pageNo:number, pageSize:number, partValue?:string, nameCd?:string, fcltCpct?:string, oprtngSttsCd?:string, facilityPartValue?:string, facilityName?:string ): Promise<{data:facilityListProps[], count:number}> => { try { const tailStr = partValue ? '/'+ (partValue==='G' ? 'A' : partValue) + '/' + nameCd + '/' + fcltCpct + '/' + oprtngSttsCd + '/' + facilityPartValue + (facilityName && facilityName !== '' ? '/' + facilityName : '') : ''; diff --git a/apps/fo/app/store/sewageOccur/index.tsx b/apps/fo/app/store/sewageOccur/index.tsx index e9ae8985b..2f22cad81 100644 --- a/apps/fo/app/store/sewageOccur/index.tsx +++ b/apps/fo/app/store/sewageOccur/index.tsx @@ -1,8 +1,9 @@ -import DataForm from "@/app/components/common/DataForm"; -import type { TableUpperProps } from "../dashboard"; import { getFetch } from "@/app/components/api"; import CalcRainEffect from "@/app/components/common/CalcRainEffect"; +import { roundNumber } from "@/app/components/common/DataForm"; import { OSU_PERCENT } from "../common"; +import type { TableUpperProps } from "../dashboard"; +import { fetchFacilityListInit } from "../processFacility"; export type { TableUpperProps }; /**==================================== * Store - 타입 @@ -124,24 +125,30 @@ const tempSewageOccurList:modalTableType[] = [] * Store - API ====================================*/ -const fetchSewageOccurList = async (pageNo: number, pageSize: number, searchYear: string, partCd?: string, nameCd?: string, fcltCpct?: string, operationValue?: string, fcltyNm?: string) => { +/*const fetchSewageOccurList = async (pageNo: number, pageSize: number, searchYear: string, partCd?: string, nameCd?: string, fcltCpct?: string, operationValue?: string, fcltyNm?: string) => { // 20250701임시시 const tailStr = partCd ? '/'+ partCd + '/' + nameCd + '/' + fcltCpct + '/' + operationValue + (fcltyNm && fcltyNm !== '' ? '/' + fcltyNm : '') : ''; const url = '/fclt/flow/' + pageNo + '/' + pageSize + '/' + searchYear + tailStr; const res = await getFetch('fo', url); return { data: res.data, count: res.count } - /* const tailStr = partCd ? '/'+ partCd + '/' + nameCd + '/' + fcltCpct + '/' + operationValue + (fcltyNm && fcltyNm !== '' ? '/' + fcltyNm : '') : ''; const url = '/fclt/qlty/' + pageNo + '/' + pageSize + '/' + searchYear + tailStr; const res = await getFetch('fo', url); - return { data: res.data, count: res.count } */ + return { data: res.data, count: res.count } +}*/ + +const fetchSweageOccurListFlow = async(fcltyCd : string, searchYear : string) => { + const url = '/fclt/flow/' + fcltyCd + '/' + searchYear; + const res = await getFetch('fo', url); + return res; } /**==================================== * Store - expaort ====================================*/ export type SewageOccurActions = { + resetExcelList: () => void; searchSewageOccurList: (pageNo: number, pageSize: number, searchYear: string, part?: string, nameCd?: string, fcltCpct?: string, operationValue?: string, fcltyNm?: string) => void; searchSewageOccurDetailList: (bscFctCd: string, searchYear: string, startYearMonth?: string, endYearMonth?: string) => void; } @@ -194,6 +201,17 @@ export const sewageOccurInitState: SewageOccurType = { } } +// 병렬 처리 제한용 헬퍼 +async function processInBatches(items, batchSize, callback) { + const results:any = []; + for (let i = 0; i < items.length; i += batchSize) { + const batch = items.slice(i, i + batchSize); + const batchResults = await Promise.all(batch.map(callback)); + results.push(...batchResults); + } + return results; +} + export type SewageOccurStore = SewageOccurType & SewageOccurActions; // Add type definitions for API responses @@ -212,33 +230,58 @@ export type FlowResponse = { export const sewageOccurReducer:(set:any)=>SewageOccurActions=(set: any) => { return { - searchSewageOccurList: async (pageNo: number, pageSize: number, searchYear: string, part?: string, nameCd?: string, fcltCpct?: string, operationValue?: string, fcltyNm?: string) => { + resetExcelList: () => { set((state: SewageOccurType) => ({ - ...state, - SewageOccur: { - ...state.SewageOccur, - isLoading: true, - }, + ...state, + SewageOccur: { + ...state.SewageOccur, + excelList: [], + }, })); - const res = await fetchSewageOccurList(pageNo, pageSize, searchYear, part, nameCd, fcltCpct, operationValue, fcltyNm); - const excelDownList: ExcelType[] = []; - const data = res.data; - // Promise.all을 사용하여 모든 비동기 작업이 완료될 때까지 기다림 - const calData = await Promise.all(data.map(async (item: SewageOccurProps) => { - item.sidoNm = item.lclgvrnmntNm.split(' ')[0]?.toString() || ''; - item.sggNm = item.lclgvrnmntNm.split(' ')[1]?.toString() || ''; + }, + + searchSewageOccurList: async (pageNo: number, pageSize: number, searchYear: string, part?: string, nameCd?: string, fcltCpct?: string, operationValue?: string, fcltyNm?: string) => { + const facilityInitData = await fetchFacilityListInit(pageNo, pageSize, part, nameCd, fcltCpct, operationValue, fcltyNm); + if(pageSize < facilityInitData.count){ + set((state: SewageOccurType) => ({ + ...state, + SewageOccur: { + ...state.SewageOccur, + sewageOccurList : facilityInitData.data, + sewageOccurCount : facilityInitData.count, + excelList : [], + isLoading: true + }, + })); + }else{ + set((state: SewageOccurType) => ({ + ...state, + SewageOccur: { + ...state.SewageOccur, + excelList : [], + isLoading: true + }, + })); + } + + const fcltylist = facilityInitData.data; + const fcltyCount = facilityInitData.count; + + const calData = await processInBatches(fcltylist, 20, async (item: SewageOccurProps, index: number) => { + const bscFctCd = item.bscFctCd; + const res = await fetchSweageOccurListFlow(bscFctCd, searchYear); + + item.sidoNm = item.sidoNm || ''; + item.sggNm = item.sggNm || ''; item.fctCpc = parseFloat(item.fctCpc.toString().replace(/,/g, '')); item.swageChangePercent = 90; - const bscFctCd = item.bscFctCd; - const res2 = await getFetch('fo', '/fclt/flow/' + bscFctCd + '/' + searchYear) as FlowResponse; - let sumChungcunDay = 0; let chungcunSumFlow = 0; let totWaterUsage = 0; // 강우영향일 계산 (강우량이 3 초과이면 무조건 강우영향일) - const rainEffectData = CalcRainEffect(res2.data); + const rainEffectData = CalcRainEffect(res.data); rainEffectData.forEach((item: FlowDataItem) => { @@ -246,27 +289,25 @@ export const sewageOccurReducer:(set:any)=>SewageOccurActions=(set: any) => { chungcunSumFlow += Number(item.inflAmnt); sumChungcunDay += 1; } - totWaterUsage += Number(item.inflAmnt); }); - const avg = totWaterUsage /res2.count; + + const avg = res.count == 0 ? 0 : totWaterUsage /res.count; item.waterUsage = parseFloat((avg * 0.65).toFixed(2)); item.sewageInputYear = parseFloat(avg.toFixed(2)); item.sewageInputChungchun = parseFloat((chungcunSumFlow===0?0:(chungcunSumFlow / sumChungcunDay)).toFixed(2)); item.estimationSewage = parseFloat((item.waterUsage * (item.swageChangePercent/100)).toFixed(2)); - return item; - })); - calData.forEach((item: SewageOccurProps) => { - DataForm({ type: 'float0', column: 'fctCpc', item: item as unknown as Record }); - DataForm({ type: 'float0', column: 'waterUsage', item: item as unknown as Record }); - DataForm({ type: 'float0', column: 'swageChangePercent', item: item as unknown as Record }); - DataForm({ type: 'float0', column: 'estimationSewage', item: item as unknown as Record }); - DataForm({ type: 'float0', column: 'sewageInputYear', item: item as unknown as Record }); - DataForm({ type: 'float0', column: 'sewageInputChungchun', item: item as unknown as Record }); + // 반올림 처리 + ["fctCpc", "waterUsage", "swageChangePercent", "estimationSewage", "sewageInputYear", "sewageInputChungchun"].forEach( + (key) => (item[key] = roundNumber(item[key], 0)) + ); + + return {...item, index:index}; }); - if(pageSize>5000){ + if(pageSize >= fcltyCount){ + const excelDownList: ExcelType[] = []; calData.forEach((item: SewageOccurProps) => { excelDownList.push({ 시설코드: item.bscFctCd, @@ -286,21 +327,109 @@ export const sewageOccurReducer:(set:any)=>SewageOccurActions=(set: any) => { "청천시하수유입량(m³/일)": item.sewageInputChungchun, }); }); + set((state: SewageOccurType) => ({ + ...state, + SewageOccur: { + ...state.SewageOccur, + excelList: excelDownList, + isLoading : false, + }, + })); + }else{ + set((state: SewageOccurType) => ({ + ...state, + SewageOccur: { + ...state.SewageOccur, + sewageOccurList : calData, + sewageOccurCount : facilityInitData.count, + isLoading: false, + excelList: [], + }, + })); } - // 조회 데이터 설정 - set((state: any) => ({ - ...state, - SewageOccur: pageSize<5000?{ - ...state.SewageOccur, - sewageOccurList: calData, - sewageOccurCount: res.count, - isLoading : false, - }:{ - ...state.SewageOccur, - excelList: excelDownList, - isLoading : false, - }, - })) + + /* fetchSewageOccurList(pageNo, pageSize, searchYear, part, nameCd, fcltCpct, operationValue, fcltyNm).then(async (res) => { + const excelDownList: ExcelType[] = []; + const data = res.data; + // Promise.all을 사용하여 모든 비동기 작업이 완료될 때까지 기다림 + const calData = await Promise.all(data.map(async (item: SewageOccurProps) => { + item.sidoNm = item.lclgvrnmntNm.split(' ')[0]?.toString() || ''; + item.sggNm = item.lclgvrnmntNm.split(' ')[1]?.toString() || ''; + item.fctCpc = parseFloat(item.fctCpc.toString().replace(/,/g, '')); + item.swageChangePercent = 90; + + const bscFctCd = item.bscFctCd; + const res2 = await getFetch('fo', '/fclt/flow/' + bscFctCd + '/' + searchYear) as FlowResponse; + + let sumChungcunDay = 0; + let chungcunSumFlow = 0; + let totWaterUsage = 0; + + // 강우영향일 계산 (강우량이 3 초과이면 무조건 강우영향일) + const rainEffectData = CalcRainEffect(res2.data); + + rainEffectData.forEach((item: FlowDataItem) => { + + if(Number(item.rainEffectDay) === 0){ + chungcunSumFlow += Number(item.inflAmnt); + sumChungcunDay += 1; + } + + totWaterUsage += Number(item.inflAmnt); + }); + const avg = totWaterUsage /res2.count; + item.waterUsage = parseFloat((avg * 0.65).toFixed(2)); + item.sewageInputYear = parseFloat(avg.toFixed(2)); + item.sewageInputChungchun = parseFloat((chungcunSumFlow===0?0:(chungcunSumFlow / sumChungcunDay)).toFixed(2)); + item.estimationSewage = parseFloat((item.waterUsage * (item.swageChangePercent/100)).toFixed(2)); + return item; + })); + + calData.forEach((item: SewageOccurProps) => { + DataForm({ type: 'float0', column: 'fctCpc', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'waterUsage', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'swageChangePercent', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'estimationSewage', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'sewageInputYear', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'sewageInputChungchun', item: item as unknown as Record }); + }); + + if(pageSize>5000){ + calData.forEach((item: SewageOccurProps) => { + excelDownList.push({ + 시설코드: item.bscFctCd, + 권역: item.rvbsn, + 단위유역: item.lgbsn, + 중권역: item.mdmbsn, + 환경청: item.rgnNm, + 시설명: item.bscFctNm, + 시도: item.sidoNm, + 시군구: item.sggNm, + 주소: item.daddr, + "시설용량(m³/일)": item.fctCpc, + "물사용량(m³/일)": item.waterUsage, + "오수전환율(%)": item.swageChangePercent, + "오수발생량추정(m³/일)": item.estimationSewage, + "연간하수유입량(m³/일)": item.sewageInputYear, + "청천시하수유입량(m³/일)": item.sewageInputChungchun, + }); + }); + } + // 조회 데이터 설정 + set((state: any) => ({ + ...state, + SewageOccur: pageSize<5000?{ + ...state.SewageOccur, + sewageOccurList: calData, + sewageOccurCount: res.count, + isLoading : false, + }:{ + ...state.SewageOccur, + excelList: excelDownList, + isLoading : false, + }, + })) + }); */ }, searchSewageOccurDetailList: async (bscFctCd: string, searchYear: string, startYearMonth?: string, endYearMonth?: string) => { diff --git a/apps/fo/app/store/underWaterInput/index.tsx b/apps/fo/app/store/underWaterInput/index.tsx index f6b466492..a3238b306 100644 --- a/apps/fo/app/store/underWaterInput/index.tsx +++ b/apps/fo/app/store/underWaterInput/index.tsx @@ -1,9 +1,10 @@ import { getFetch } from "@/app/components/api"; -import DataForm from "@/app/components/common/DataForm"; +import DataForm, { roundNumber } from "@/app/components/common/DataForm"; import type { TableUpperProps } from "../dashboard"; import type { ExcelType, UnderWaterInputModalProps, UnderWaterProps } from "./types"; import CalcRainEffect from "@/app/components/common/CalcRainEffect"; import { OSU_PERCENT } from "../common"; +import { fetchFacilityListInit } from "../processFacility"; export type { TableUpperProps }; // SewageOccurDetailProps 타입을 여기에 정의 @@ -187,24 +188,32 @@ export interface ApiResponse { count: number; } +/* const fetchUnderWaterList = async (pageNo: number, pageSize: number, searchYear: string, partCd?: string, nameCd?: string, fcltCpct?: string, operationValue?: string, fcltyNm?: string) => { const tailStr = partCd ? '/'+ partCd + '/' + nameCd + '/' + fcltCpct + '/' + operationValue + (fcltyNm && fcltyNm !== '' ? '/' + fcltyNm : '') : ''; const url = '/fclt/flow/' + pageNo + '/' + pageSize + '/' + searchYear + tailStr; const res = await getFetch('fo', url); return { data: res.data, count: res.count } - /* + const tailStr = partCd ? '/'+ partCd + '/' + nameCd + '/' + fcltCpct + '/' + operationValue + (fcltyNm && fcltyNm !== '' ? '/' + fcltyNm : '') : ''; const url = '/fclt/qlty/' + pageNo + '/' + pageSize + '/' + searchYear + tailStr; const res = await getFetch('fo', url); - return { data: res.data, count: res.count } */ + return { data: res.data, count: res.count } //return { data: underWaterList, count: 2 }; +}*/ + +const fetchUnderWaterListFlow = async(fcltyCd : string, searchYear : string) => { + const url = '/fclt/flow/' + fcltyCd + '/' + searchYear; + const res = await getFetch('fo', url); + return res; } /**==================================== * Store - expaort ====================================*/ export type UnderWaterActions = { + resetExcelList: () => void; searchUnderWaterList: (pageNo: number, pageSize: number, searchYear: string, part?: string, nameCd?: string, fcltCpct?: string, operationValue?: string, fcltyNm?: string) => void; unserWaterModal:(bscFctCd:string, searchYear:string, startYm:string, endYm:string)=>void } @@ -220,7 +229,7 @@ export type UnderWaterType = { upHeadList1: TableUpperProps[]; upHeadList2: TableUpperProps[]; upHeadList3: TableUpperProps[]; - underWaterList: UnderWaterProps[]; // Changed from facilityAreaProps to ProcessAreaProps + underWaterList: any[]; // Changed from facilityAreaProps to ProcessAreaProps underWaterCount: number; excelList: ExcelType[]; isLoading: boolean; @@ -265,29 +274,65 @@ const dataFormSetting=(item : UnderWaterProps)=> { DataForm({ type: 'float0', column: 'underWaterInputWinter', item: item as unknown as Record}); } +// 병렬 처리 제한용 헬퍼 +async function processInBatches(items, batchSize, callback) { + const results :any = []; + for (let i = 0; i < items.length; i += batchSize) { + const batch = items.slice(i, i + batchSize); + const batchResults = await Promise.all(batch.map(callback)); + results.push(...batchResults); + } + return results; +} + export type UnderWaterStore = UnderWaterType & UnderWaterActions; export const underWaterReducer:(set:(fn: (state: UnderWaterType) => UnderWaterType) => void)=>UnderWaterActions=(set: (fn: (state: UnderWaterType) => UnderWaterType) => void) => { return { - searchUnderWaterList: async (pageNo: number, pageSize: number, searchYear: string, part?: string, nameCd?: string, fcltCpct?: string, operationValue?: string, fcltyNm?: string) => { + resetExcelList: () => { set((state: UnderWaterType) => ({ ...state, UnderWater: { ...state.UnderWater, - isLoading: true, + excelList : [], }, })); - - const res = await fetchUnderWaterList(pageNo, pageSize, searchYear, part, nameCd, fcltCpct, operationValue, fcltyNm); - const data = res.data; - const calData = await Promise.all(data.map(async (item: UnderWaterProps) => { - item.sidoNm = item.lclgvrnmntNm.split(' ')[0]?.toString() || ''; - item.sggNm = item.lclgvrnmntNm.split(' ')[1]?.toString() || ''; - item.fctCpc = parseFloat(item.fctCpc.toString().replace(/,/g, '')); + }, + searchUnderWaterList: async (pageNo: number, pageSize: number, searchYear: string, part?: string, nameCd?: string, fcltCpct?: string, operationValue?: string, fcltyNm?: string) => { + const facilityInitData = await fetchFacilityListInit(pageNo, pageSize, part, nameCd, fcltCpct, operationValue, fcltyNm); + + if(pageSize < facilityInitData.count){ + set((state: UnderWaterType) => ({ + ...state, + UnderWater: { + ...state.UnderWater, + underWaterList : facilityInitData.data, + underWaterCount : facilityInitData.count, + isInit : true, + isLoading: true, + }, + })); + }else{ + set((state: UnderWaterType) => ({ + ...state, + UnderWater: { + ...state.UnderWater, + isLoading: true, + }, + })); + } + + const fcltylist = facilityInitData.data; + const fcltyCount = facilityInitData.count; + + const calData = await processInBatches(fcltylist, 20, async (item: any, index: number) => { const bscFctCd = item.bscFctCd; - const res2 = await getFetch('fo', '/fclt/flow/' + bscFctCd + '/' + searchYear) as ApiResponse; - const calData = CalcRainEffect(res2.data, 'SUNNY'); + const res = await fetchUnderWaterListFlow(bscFctCd, searchYear); + + item.sidoNm = item.sido || ''; + item.sggNm = item.gugun || ''; + item.fctCpc = parseFloat(item.fctCpc.toString().replace(/,/g, '')); let chungcunSumFlow = 0; @@ -297,7 +342,8 @@ export const underWaterReducer:(set:(fn: (state: UnderWaterType) => UnderWaterTy let sumWinterChungcunDay = 0; let sumWinterChungcunFlow = 0; - calData.forEach((flowItem: FlowDataItem) => { + const rainEffectData = CalcRainEffect(res.data, 'SUNNY'); + rainEffectData.forEach((flowItem: FlowDataItem) => { chungcunSumFlow += flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; if(flowItem.msrDt.substring(4,6) ==='06' || flowItem.msrDt.substring(4,6) ==='07' || flowItem.msrDt.substring(4,6) ==='08'){ @@ -308,25 +354,32 @@ export const underWaterReducer:(set:(fn: (state: UnderWaterType) => UnderWaterTy sumWinterChungcunFlow += flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; } }); - const usage = chungcunSumFlow&&chungcunSumFlow>0?chungcunSumFlow / calData.length:0; + + let totWaterInflow = 0 + + const rainEffectTot = CalcRainEffect(res.data); + rainEffectTot.forEach((flowItem: FlowDataItem) => { + totWaterInflow += flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; + }); + + + const avg = res.count === 0 ? 0 : totWaterInflow / res.count; + + const usage = chungcunSumFlow&&chungcunSumFlow>0?chungcunSumFlow / rainEffectData.length:0; const summerUsage = sumSummerChungcunFlow?sumSummerChungcunFlow / sumSummerChungcunDay:0; const winterUsage = sumWinterChungcunFlow?sumWinterChungcunFlow / sumWinterChungcunDay:0; - //bscFctCd === '11200PB001R') 중랑 - 테스트할 때 코드넣고 해야 보기편해요~ - /* if(bscFctCd === '11200PB001R') { - console.log('calData.length : ', calData.length); - console.log('usage : ', usage, 'summerUsage : ', summerUsage, 'winterUsage : ', winterUsage); - } */ + item.inflAmnt = roundNumber(avg, 0); item.underWaterInputYear = Math.round((usage-(usage*0.65*OSU_PERCENT)) * 1) / 1; item.underWaterInputSummer = Math.round((summerUsage-(summerUsage*0.65*OSU_PERCENT)) * 1) / 1; item.underWaterInputWinter = Math.round((winterUsage-(winterUsage*0.65*OSU_PERCENT)) * 1) / 1; item.properYn = Math.round( (Number(usage-(usage*0.65*OSU_PERCENT)) / Number(item.inflAmnt)) * 100 * 1 ) / 1 > 20?'초과유입':'적정'; - return item; - })); + return {...item, index:index}; + }); - const excelDownList: ExcelType[] = []; - if(pageSize>5000){ - calData.forEach(item => { + if(pageSize>= fcltyCount){ + const excelDownList: ExcelType[] = []; + calData.forEach((item : any) => { dataFormSetting(item) item.fctCpc = parseFloat(item.fctCpc.toString().replace(/,/g, '')); /* item.sidoNm = item.lclgvrnmntNm.split(' ')[0]?.toString() || ''; @@ -349,27 +402,26 @@ export const underWaterReducer:(set:(fn: (state: UnderWaterType) => UnderWaterTy 적정여부: item.properYn, }); }); + set((state: UnderWaterType) => ({ + ...state, + UnderWater: { + ...state.UnderWater, + excelList: excelDownList, + isLoading : false, + }, + })); }else{ - data.forEach((item: UnderWaterProps) => { - dataFormSetting(item) - item.fctCpc = parseFloat(item.fctCpc.toString().replace(/,/g, '')); - /* item.sidoNm = item.lclgvrnmntNm.split(' ')[0]?.toString() || ''; - item.sggNm = item.lclgvrnmntNm.split(' ')[1]?.toString() || ''; */ - }); + set((state: UnderWaterType) => ({ + ...state, + UnderWater: { + ...state.UnderWater, + underWaterList: calData, + underWaterCount: facilityInitData.count, + excelList: [], + isLoading : false, + }, + })); } - set((state: UnderWaterType) => ({ - ...state, - UnderWater: pageSize<5000?{ - ...state.UnderWater, - underWaterList: calData, - underWaterCount: res.count, - isLoading : false, - }:{ - ...state.UnderWater, - isLoading : false, - excelList: excelDownList - }, - })) }, unserWaterModal:async (bscFctCd, searchYear, startYm, endYm)=>{ diff --git a/apps/fo/middleware.ts b/apps/fo/middleware.ts index ad5014ec5..4f491145f 100644 --- a/apps/fo/middleware.ts +++ b/apps/fo/middleware.ts @@ -9,6 +9,18 @@ const SEWERAGE_API_URL = process.env.NEXT_PUBLIC_SEWERAGE_API_URL || ""; const serverApiUrl = SERVER_API_CS_URL; const DC_URL = process.env.NEXT_PUBLIC_DC_URL || ""; +/** 공통: URLSearchParams의 값을 decodeURIComponent 적용하여 querystring 생성 */ +function toDecodedQueryString(params: URLSearchParams): string { + const entries: string[][] = Array.from(params.entries()).map(([k, v]) => { + try { + return [k, decodeURIComponent(v)] as string[]; + } catch { + return [k, v] as string[]; + } + }); + return new URLSearchParams(entries).toString(); +} + /** 공통: 요청 헤더에 쿠키 기반 인증 값 주입 */ function buildAuthHeaders(req: NextRequest): Headers { const requestHeaders = new Headers(req.headers); @@ -21,9 +33,20 @@ function buildAuthHeaders(req: NextRequest): Headers { /** 공통: rewrite 응답 생성 (헤더 주입 여부 선택) */ function rewriteWith(url: string, req: NextRequest, withAuth = false): NextResponse { - return withAuth - ? NextResponse.rewrite(new URL(url), { headers: buildAuthHeaders(req) }) - : NextResponse.rewrite(new URL(url)); + + const headers = withAuth ? buildAuthHeaders(req) : new Headers(req.headers); + + if (url.indexOf("/operation-service") !== -1) { + // x-forwarded- 로 시작하는 헤더의 첫 번째 값만 남김 + for (const [key, value] of headers.entries()) { + if (key.startsWith('x-forwarded-') && value.includes(',')) { + const first = (value?.split(',')[0] || '').trim(); + headers.set(key, first); + } + } + } + + return NextResponse.rewrite(new URL(url), { headers }); } export function middleware(req: NextRequest) { @@ -75,11 +98,12 @@ export function middleware(req: NextRequest) { const url = req.nextUrl.clone(); url.searchParams.set('TYPENAME', typename.replace("hasudo:","")); queryParams = url.searchParams.toString(); - newUrl = `${SEWERAGE_API_URL}/v1/map/geometry${queryParams ? `?${queryParams}` : ""}`; + newUrl = `${SEWERAGE_API_URL}/api/v1/map/geometry${queryParams ? `?${queryParams}` : ""}`; } console.log(`[Middleware] Rewriting from '/geoserver' path to: ${newUrl}`); - return NextResponse.rewrite(new URL(newUrl)); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/sewerage-service")) { @@ -88,13 +112,15 @@ export function middleware(req: NextRequest) { queryParams ? `?${queryParams}` : "" }`; console.log(`[Middleware] Rewriting from '/sewerage-service' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/attach-service") || pathname.startsWith("/cms-service")) { const newUrl = `${serverApiUrl}${pathname}`; console.log(`[Middleware] Rewriting from '/attach-service' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/reuse-service")) { @@ -103,7 +129,8 @@ export function middleware(req: NextRequest) { queryParams ? `?${queryParams}` : "" }`; console.log(`[Middleware] Rewriting from '/reuse-service' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/operation-service")) { @@ -112,7 +139,8 @@ export function middleware(req: NextRequest) { queryParams ? `?${queryParams}` : "" }`; console.log(`[Middleware] Rewriting from '/operation-service' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/dc-service")) { @@ -121,19 +149,25 @@ export function middleware(req: NextRequest) { queryParams ? `?${queryParams}` : "" }`; console.log(`[Middleware] Rewriting from '/dc-service' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/user-service")) { const newUrl = `${SERVER_API_CS_URL}${pathname}`; console.log(`[Middleware] Rewriting from '/user-service' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } - // if (pathname === "/") { - // return NextResponse.redirect(new URL("/pages/dashboard", req.url)); - // } - // return NextResponse.next(); + if (pathname.startsWith("/ngii-server")) { + const decodedQuery = toDecodedQueryString(searchParams); + const newUrl = `${process.env.NEXT_PUBLIC_NGII_URL}${pathname.replace("/ngii-server", "")}${decodedQuery ? `?${decodedQuery}` : ""}`; + console.log(`[Middleware] Rewriting from '${pathname}' path to: ${newUrl}`); + return NextResponse.rewrite(new URL(newUrl)); + } + + return NextResponse.next(); } export const config = { @@ -148,5 +182,6 @@ export const config = { "/operation-service/:path*", "/reuse-service/:path*", "/dc-service/:path*", + "/ngii-server/:path*", ], }; diff --git a/apps/fo/next.config.ts b/apps/fo/next.config.ts index bc21e16a4..709fd3cf6 100644 --- a/apps/fo/next.config.ts +++ b/apps/fo/next.config.ts @@ -5,6 +5,9 @@ const subDomain = const nextConfig: NextConfig = { output: "standalone", + experimental: { + proxyTimeout: 600000, // 10분 (밀리초 단위) + }, async rewrites() { return { beforeFiles: [ @@ -33,6 +36,10 @@ const nextConfig: NextConfig = { source: "/operation-service/:path*", destination: `${subDomain}/operation-service/:path*`, }, + { + source: "/ngii-server/:path*", + destination: `${subDomain}/ngii-server/:path*`, + }, ], fallback: [], }; diff --git a/apps/fo/src/entities/auth/lib/auth-wrapper.tsx b/apps/fo/src/entities/auth/lib/auth-wrapper.tsx index fa370fa32..0d69c260d 100644 --- a/apps/fo/src/entities/auth/lib/auth-wrapper.tsx +++ b/apps/fo/src/entities/auth/lib/auth-wrapper.tsx @@ -1,18 +1,17 @@ "use client"; import { useEffect } from "react"; -import { useRouter, usePathname } from "next/navigation"; +import { useRouter } from "next/navigation"; import { client } from "@/src/shared/api"; import type { IUserInfo } from "@/src/shared/store"; import { useUserStore, getCookie } from "@/src/shared/lib"; import { ENDPOINT, AUTH_USER_ID } from "@/src/shared/config"; import { LoginApi } from "../api/login-service"; -const LOGIN_PAGE_URL = process.env.NEXT_PUBLIC_CM_LOGIN_PAGE_URL || "http://localhost:3001/auth/login"; // 개발 환경 URL +// const LOGIN_PAGE_URL = process.env.NEXT_PUBLIC_CM_LOGIN_PAGE_URL || "http://localhost:3001/auth/login"; // 개발 환경 URL const AuthWrapper = ({ children }: { children: React.ReactNode }) => { const router = useRouter(); - const pathname = usePathname(); const { userInfo, setUserInfo } = useUserStore((state) => state); async function authCheck() { @@ -41,19 +40,19 @@ const AuthWrapper = ({ children }: { children: React.ReactNode }) => { console.error("Token refresh failed:", refreshError); setUserInfo(null); - const hostname = window.location.hostname; + // const hostname = window.location.hostname; // 개발 환경에서는 localhost 도메인 사용 - //if (hostname === "localhost" || hostname === "127.0.0.1" || hostname === "con.mind-one.co.kr") + // if (hostname === "localhost" || hostname === "127.0.0.1" || hostname === "con.mind-one.co.kr") router.push("/"); // 개발시 홈으로 돌아가기 // 운영 환경에서는 서브도메인을 포함한 최상위 도메인 사용 // router.push는 같은 Next.js 앱 내에서만 작동하므로 다른 앱으로 이동할 때는 window.location.href 사용 - //if (hostname.includes("hasuon.or.kr")) window.location.href = LOGIN_PAGE_URL; // 세션 만료 시 CM 로그인 페이지로 리다이렉트 + // if (hostname.includes("hasuon.or.kr")) window.location.href = LOGIN_PAGE_URL; // 세션 만료 시 CM 로그인 페이지로 리다이렉트 } } })(); - }, [pathname]); + }, []); return <>{children}; }; diff --git a/apps/sn/.env.development b/apps/sn/.env.development deleted file mode 100644 index a52f7c7bb..000000000 --- a/apps/sn/.env.development +++ /dev/null @@ -1,15 +0,0 @@ -# 공단 개발 -NEXT_PUBLIC_SITE_ID = SN -NEXT_PUBLIC_PORT = 3000 -NEXT_PUBLIC_CLAIM_NAME = Authorization -NEXT_PUBLIC_AUTH_USER_ID = token-id -NEXT_PUBLIC_ACCESS_TOKEN = access-token -NEXT_PUBLIC_REFRESH_TOKEN = refresh-token -NEXT_PUBLIC_PROXY_HOST = https://devlion.hasuon.or.kr -NEXT_PUBLIC_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000 -NEXT_PUBLIC_GEOSERVER_URL = http://172.29.143.87:8080/geoserver -NEXT_PUBLIC_LX_GEOSERVER_URL = http://172.29.143.87:8080/geoserver_swl -NEXT_PUBLIC_NGII_URL = http://172.29.143.87/openapi/Gettile.do?apiKey=BDE2BEF39DAFEC293AB6730150F222AC&layer=korean_map&TileMatrix={z}&TileCol={y}&TileRow={x} -NEXT_PUBLIC_SEWERAGE_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000 -NEXT_PUBLIC_DC_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/dc-service -NEXT_PUBLIC_CM_LOGIN_PAGE_URL = https://devqueen.hasuon.or.kr/auth/login \ No newline at end of file diff --git a/apps/sn/.env.local b/apps/sn/.env.local index 41b18da0c..c83e4fb68 100644 --- a/apps/sn/.env.local +++ b/apps/sn/.env.local @@ -5,15 +5,15 @@ NEXT_PUBLIC_ACCESS_TOKEN = access-token NEXT_PUBLIC_REFRESH_TOKEN = refresh-token NEXT_PUBLIC_PORT = 3002 NEXT_PUBLIC_PROXY_HOST = http://localhost:3002 -# NEXT_PUBLIC_PROXY_HOST = http://sn.onasys.co.kr:3002 NEXT_PUBLIC_GEOSERVER_URL = https://hasudo.geo.rsonesoft.com/geoserver NEXT_PUBLIC_LX_GEOSERVER_URL = http://con.mind-one.co.kr:11306/geoserver -#NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr/openapi/Gettile.do?apiKey=04trYP9_xwLAfALjwZ-B8g -NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr/openapi/Gettile.do?apiKey=04trYP9_xwLAfALjwZ-B8g&layer=korean_map&TileMatrix={z}&TileCol={x}&TileRow={y} +#NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr/openapi/Gettile.do?apiKey=04trYP9_xwLAfALjwZ-B8g&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/png&layer=korean_map&style=korean&tilematrixset=EPSG:5179&TileMatrix={z}&TileCol={x}&TileRow={y} +NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr +NEXT_PUBLIC_NGII_PARAM = 04trYP9_xwLAfALjwZ-B8g&service=WMTS&request=GetTile&version=1.0.0&format=image/png&layer=korean_map&style=korean&tilematrixset=korean&tilematrix={z}&tilecol={x}&tilerow={y} NEXT_PUBLIC_SERVER_API_URL = http://dev.onasys.co.kr:8000 NEXT_PUBLIC_SEWERAGE_API_URL = http://con.mind-one.co.kr:11083 NEXT_PUBLIC_DC_URL = https://apigateway.apps.rsonesoft.com NEXT_PUBLIC_CM_LOGIN_PAGE_URL = http://dev.onasys.co.kr:3000/auth/login -#NEXT_PUBLIC_SEWERAGE_API_URL=http://192.168.1.128:8883 +#NEXT_PUBLIC_SEWERAGE_API_URL=http://con.mind-one.co.kr:11083 #NEXT_PUBLIC_SEWERAGE_API_URL=http://192.168.1.222:8883 # NEXT_PUBLIC_SEWERAGE_API_URL=http://192.168.1.66:8883 diff --git a/apps/sn/.env.mindone b/apps/sn/.env.mindone index a8b7d529c..7010ce026 100644 --- a/apps/sn/.env.mindone +++ b/apps/sn/.env.mindone @@ -8,6 +8,7 @@ NEXT_PUBLIC_PROXY_HOST = http://con.mind-one.co.kr:11302 NEXT_PUBLIC_SERVER_API_URL = http://dev.onasys.co.kr:8000 NEXT_PUBLIC_GEOSERVER_URL = https://hasudo.geo.rsonesoft.com/geoserver NEXT_PUBLIC_LX_GEOSERVER_URL = http://con.mind-one.co.kr:11306/geoserver -NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr/openapi/Gettile.do?apiKey=04trYP9_xwLAfALjwZ-B8g&layer=korean_map&TileMatrix={z}&TileCol={x}&TileRow={y} +NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr +NEXT_PUBLIC_NGII_PARAM = 04trYP9_xwLAfALjwZ-B8g&service=WMTS&request=GetTile&version=1.0.0&format=image/png&layer=korean_map&style=korean&tilematrixset=korean&tilematrix={z}&tilecol={x}&tilerow={y} NEXT_PUBLIC_SEWERAGE_API_URL = http://con.mind-one.co.kr:11083 NEXT_PUBLIC_DC_URL = https://apigateway.apps.rsonesoft.com \ No newline at end of file diff --git a/apps/sn/.env.production b/apps/sn/.env.production index 8164baa7e..004fc8701 100644 --- a/apps/sn/.env.production +++ b/apps/sn/.env.production @@ -5,10 +5,14 @@ NEXT_PUBLIC_CLAIM_NAME = Authorization NEXT_PUBLIC_AUTH_USER_ID = token-id NEXT_PUBLIC_ACCESS_TOKEN = access-token NEXT_PUBLIC_REFRESH_TOKEN = refresh-token +#NEXT_PUBLIC_PROXY_HOST = https://devlion.hasuon.or.kr +#NEXT_PUBLIC_CM_LOGIN_PAGE_URL = https://devqueen.hasuon.or.kr/auth/login +NEXT_PUBLIC_CM_LOGIN_PAGE_URL = https://devqueen.hasuon.or.kr/auth/login NEXT_PUBLIC_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000 NEXT_PUBLIC_GEOSERVER_URL = http://172.29.143.87:8080/geoserver NEXT_PUBLIC_LX_GEOSERVER_URL = http://172.29.143.87:8080/geoserver_swl -NEXT_PUBLIC_NGII_URL = http://172.29.143.87/openap/Gettile.do?apiKey=BDE2BEF39DAFEC293AB6730150F222AC&layer=korean_map&TileMatrix={z}&TileCol={y}&TileRow={x} +NEXT_PUBLIC_NGII_URL = http://172.29.143.87 +NEXT_PUBLIC_NGII_PARAM = BDE2BEF39DAFEC293AB6730150F222AC&service=WMTS&request=GetTile&version=1.0.0&format=image/png&layer=korean_map&style=korean&tilematrixset=korean&tilematrix={z}&tilecol={y}&tilerow={x} NEXT_PUBLIC_SEWERAGE_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000 -NEXT_PUBLIC_DC_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/dc-service +NEXT_PUBLIC_DC_URL = http://apigateway.iipbs-was.svc.cluster.local:8000 diff --git a/apps/sn/app/(map-layout)/map/searchModal/reportTab.tsx b/apps/sn/app/(map-layout)/map/searchModal/reportTab.tsx index cbc635a7c..bb6b4cd89 100644 --- a/apps/sn/app/(map-layout)/map/searchModal/reportTab.tsx +++ b/apps/sn/app/(map-layout)/map/searchModal/reportTab.tsx @@ -80,7 +80,7 @@ const ReportTab: React.FC = ({ open, isSearch = true, ctpvNm, sg const { REPORT_TYPES, flattenFolders, addFileName } = useReportTab(); useEffect(() => { - fetchDcTree(""); // 하수정비기본계획 report + fetchDcTree("기본계획"); // 하수정비기본계획 report }, []); useEffect(() => { diff --git a/apps/sn/app/(map-layout)/map/searchModal/useReportTab.ts b/apps/sn/app/(map-layout)/map/searchModal/useReportTab.ts index b93b6fb47..8ffe06de8 100644 --- a/apps/sn/app/(map-layout)/map/searchModal/useReportTab.ts +++ b/apps/sn/app/(map-layout)/map/searchModal/useReportTab.ts @@ -10,8 +10,8 @@ * - 데이터 매핑 및 코드 변환 (시도/시군구, 보고서 유형 등) * * 🔗 사용 API - * - 보고서 파일 조회: GET /api/v1/dc/file (dc-service) - * - 파일 다운로드: GET /api/v1/dc/file/download (dc-service) + * - 보고서 파일 조회: GET /api/v1/file (dc-service) + * - 파일 다운로드: GET /api/v1/fileDownload (dc-service) */ import { getDcData } from '@/components/lib/api'; import { fileDownload } from '@/utils'; @@ -117,7 +117,7 @@ export default function useReportTab() { return []; } const queryString = 'clsfSystmSn=' + clsfSystmSn; - const result = await getDcData(`/api/v1/dc/file${queryString ? `?${queryString}` : ''}`); + const result = await getDcData(`/api/v1/file${queryString ? `?${queryString}` : ''}`); return result; }; @@ -146,7 +146,7 @@ export default function useReportTab() { return; } const queryString = 'filePath=' + encodeURIComponent(filePath); - const responseBlob = await getDcData(`/api/v1/dc/file/download${queryString ? `?${queryString}` : ''}`, "blob"); + const responseBlob = await getDcData(`/api/v1/fileDownload${queryString ? `?${queryString}` : ''}`, "blob"); fileDownload(responseBlob, fileName); } diff --git a/apps/sn/app/(with-base-layout)/oper/floodPre/page.tsx b/apps/sn/app/(with-base-layout)/oper/floodPre/page.tsx index 3b547cf09..1a5999db6 100644 --- a/apps/sn/app/(with-base-layout)/oper/floodPre/page.tsx +++ b/apps/sn/app/(with-base-layout)/oper/floodPre/page.tsx @@ -143,13 +143,12 @@ const Page = () => { // 현황 등록 const registFile = async (fileName: string, year: string, quater: string, cd: string, id: string) => { const json = { - atflNm: fileName, mngYr: year, mngQu: quater, - atflCd: cd, atflId: id, - sbmrgPrevntBizNm: fileName, - rgtr: tokenManager.getToken(AUTH_USER_ID) || null + atflCd: cd, + rgtr: tokenManager.getToken(AUTH_USER_ID) || null, + sbmrgPrevntBizNm: fileName } const data = await postData('v1/sbmrgPrevnt', json) if (data) { diff --git a/apps/sn/app/(with-base-layout)/oper/oldPp/page.tsx b/apps/sn/app/(with-base-layout)/oper/oldPp/page.tsx index 93151a938..eee336a3b 100644 --- a/apps/sn/app/(with-base-layout)/oper/oldPp/page.tsx +++ b/apps/sn/app/(with-base-layout)/oper/oldPp/page.tsx @@ -139,16 +139,15 @@ const Page = () => { // 파일 등록 const registFile = async (fileNm: string, year: string, quater: string, cd: string, id: string) => { - const data = await postData('v1/dcrpPpl', { - atflNm: fileNm, + const json = { mngYr: year, mngQu: quater, atflCd: cd, atflId: id, - dcrpPplMtncBizNm: fileNm, rgtr: tokenManager.getToken(AUTH_USER_ID) || null, - rgtrNm: userInfo?.userName, - }) + dcrpPplMtncBizNm: fileNm + } + const data = await postData('v1/dcrpPpl', json); if (data) { alert('파일이 등록되었습니다.'); setIsModalOpen(false); diff --git a/apps/sn/app/api/auth/logout/route.ts b/apps/sn/app/api/auth/logout/route.ts new file mode 100644 index 000000000..fdcc9df7c --- /dev/null +++ b/apps/sn/app/api/auth/logout/route.ts @@ -0,0 +1,17 @@ +import { cookies } from "next/headers"; +import { NextResponse } from "next/server"; +import { + ACCESS_TOKEN, + AUTH_USER_ID, + CLAIM_NAME, + REFRESH_TOKEN, +} from "@/shared/config"; + +export async function POST() { + const cookieStore = await cookies(); + cookieStore.delete(ACCESS_TOKEN); + cookieStore.delete(REFRESH_TOKEN); + cookieStore.delete(AUTH_USER_ID); + cookieStore.delete(CLAIM_NAME); + return NextResponse.json({ message: "Logged out" }, { status: 200 }); +} diff --git a/apps/sn/app/components/lib/api/index.ts b/apps/sn/app/components/lib/api/index.ts index e94c602c1..6b668294d 100644 --- a/apps/sn/app/components/lib/api/index.ts +++ b/apps/sn/app/components/lib/api/index.ts @@ -60,7 +60,9 @@ export const postData = async (url: string, data: object): Promise => { }; export const postMutiPart = async (url: string, data: FormData): Promise => { - const res = await axios.post(`${BASE_URL}/${url}`, data); + const res = await axios.post(`${BASE_URL}/${url}`, data, { + timeout: 600000, // 10분 + }); return res.data; }; diff --git a/apps/sn/app/components/ui/fileUploadForm.tsx b/apps/sn/app/components/ui/fileUploadForm.tsx index fc1e2b779..750effb66 100644 --- a/apps/sn/app/components/ui/fileUploadForm.tsx +++ b/apps/sn/app/components/ui/fileUploadForm.tsx @@ -72,6 +72,11 @@ const FileUploadForm = ({ handleUploadWithResponse(files, currentFile) .then(({ atflCd, atflId }) => { // 업로드 완료 후 onSubmit 실행 + console.log('fileNm', fileNm); + console.log('selectedYear', selectedYear); + console.log('selectedQuarter', selectedQuarter); + console.log('atflCd', atflCd); + console.log('atflId', atflId); onSubmit(fileNm, selectedYear, selectedQuarter, atflCd || '', atflId || ''); // UI 초기화 @@ -120,6 +125,8 @@ const FileUploadForm = ({ reject(error); }; + console.log('Starting upload for files:', files); + // 기존 handleUpload 유틸리티 사용 (수정하지 않음) handleUpload(files, { handleUploadStart: setUpload, @@ -160,6 +167,10 @@ const FileUploadForm = ({ setFileName(firstFile.name); setCurrentFile(firstFile); + console.log('selectedFiles', selectedFiles); + console.log('firstFile', firstFile); + console.log('firstFile name', firstFile.name); + if (onFileSelect) { onFileSelect(firstFile, internalAtflCd, internalAtflId); } diff --git a/apps/sn/app/store/useReportTabStore.ts b/apps/sn/app/store/useReportTabStore.ts index bb2cd875a..584108407 100644 --- a/apps/sn/app/store/useReportTabStore.ts +++ b/apps/sn/app/store/useReportTabStore.ts @@ -37,7 +37,7 @@ export const useReportTabStore = create((set, get) => ({ fetchDcTree: async (clsfSystmNm: string) => { const { dcTree } = get(); try { - const result = await getDcData("/api/v1/dc/clsf?clsfSystmNm=" + clsfSystmNm); + const result = await getDcData("/api/v1/clsf?clsfSystmNm=" + clsfSystmNm); if (result && JSON.stringify(result) !== JSON.stringify(dcTree)) set({ dcTree: result }); } catch (error) { @@ -51,7 +51,7 @@ export const useReportTabStore = create((set, get) => ({ return []; } const queryString = 'clsfSystmSn=' + clsfSystmSn; - const result = await getDcData(`/api/v1/dc/file${queryString ? `?${queryString}` : ''}`); + const result = await getDcData(`/api/v1/file${queryString ? `?${queryString}` : ''}`); return result; }; diff --git a/apps/sn/middleware.ts b/apps/sn/middleware.ts index 9851437b1..97f4fcce7 100644 --- a/apps/sn/middleware.ts +++ b/apps/sn/middleware.ts @@ -47,7 +47,8 @@ export function middleware(req: NextRequest) { const newUrl = `${SERVER_API_URL}${pathname.replace("/server", "")}${decodedQuery ? `?${decodedQuery}` : "" }`; console.log(`[Middleware] Rewriting from '/server' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/api/proxy")) { @@ -55,7 +56,8 @@ export function middleware(req: NextRequest) { const newUrl = `${SERVER_API_URL}${pathname}${decodedQuery ? `?${decodedQuery}` : "" }`; console.log(`[Middleware] Rewriting from '/server' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/geoserver")) { @@ -97,7 +99,8 @@ export function middleware(req: NextRequest) { } console.log(`[Middleware] Rewriting from '/geoserver' path to: ${newUrl}`); - return NextResponse.rewrite(new URL(newUrl)); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/attach-service") @@ -106,7 +109,8 @@ export function middleware(req: NextRequest) { ) { const newUrl = `${SERVER_API_URL}${pathname}`; console.log(`[Middleware] Rewriting from '/attach-service' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/dc-service")) { @@ -116,14 +120,23 @@ export function middleware(req: NextRequest) { const newUrl = `${DC_URL}${pathname}${decodedParams ? `?${decodedParams}` : ""}`; console.log(`[Middleware] Rewriting from '/dc-service' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/sewerage-service")) { const decodedQuery = toDecodedQueryString(searchParams); const newUrl = `${SEWERAGE_API_URL}${pathname}${decodedQuery ? `?${decodedQuery}` : ""}`; console.log(`[Middleware] Rewriting from '${pathname}' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; + } + + if (pathname.startsWith("/ngii-server")) { + const decodedQuery = toDecodedQueryString(searchParams); + const newUrl = `${process.env.NEXT_PUBLIC_NGII_URL}${pathname.replace("/ngii-server", "")}${decodedQuery ? `?${decodedQuery}` : ""}`; + console.log(`[Middleware] Rewriting from '${pathname}' path to: ${newUrl}`); + return NextResponse.rewrite(new URL(newUrl)); } return NextResponse.next(); @@ -139,6 +152,7 @@ export const config = { "/cms-service/:path*", "/dc-service/:path*", "/sewerage-service/:path*", + "/ngii-server/:path*", ], }; diff --git a/apps/sn/next.config.ts b/apps/sn/next.config.ts index 789da58b4..bbfa649d5 100644 --- a/apps/sn/next.config.ts +++ b/apps/sn/next.config.ts @@ -2,6 +2,9 @@ import type { NextConfig } from "next"; const nextConfig: NextConfig = { output: "standalone", + experimental: { + proxyTimeout: 600000, // 10분 (밀리초 단위) + }, typescript: { ignoreBuildErrors: true, // 이 줄 추가 }, diff --git a/apps/sn/src/entities/auth/lib/auth-wrapper.tsx b/apps/sn/src/entities/auth/lib/auth-wrapper.tsx index 95b9cf284..e1b7f67d5 100644 --- a/apps/sn/src/entities/auth/lib/auth-wrapper.tsx +++ b/apps/sn/src/entities/auth/lib/auth-wrapper.tsx @@ -1,7 +1,7 @@ "use client"; import { useEffect } from "react"; -import { useRouter, usePathname } from "next/navigation"; +import { useRouter } from "next/navigation"; import { client } from "@/shared/api"; import type { IUserInfo } from "@/shared/store"; import { useUserStore } from "@/shared/lib"; @@ -10,11 +10,10 @@ import { getCookie } from "@/shared/lib"; import { LoginApi } from "../api/login-service"; -const LOGIN_PAGE_URL = process.env.NEXT_PUBLIC_CM_LOGIN_PAGE_URL || "http://dev.onasys.co.kr:3000/auth/login"; // 로그인 페이지 URL +// const LOGIN_PAGE_URL = process.env.NEXT_PUBLIC_CM_LOGIN_PAGE_URL || "http://dev.onasys.co.kr:3000/auth/login"; // 로그인 페이지 URL const AuthWrapper = ({ children }: { children: React.ReactNode }) => { const router = useRouter(); - const pathname = usePathname(); const { userInfo, setUserInfo } = useUserStore((state) => state); async function authCheck() { @@ -43,19 +42,19 @@ const AuthWrapper = ({ children }: { children: React.ReactNode }) => { console.error("Token refresh failed:", refreshError); setUserInfo(null); - const hostname = window.location.hostname; + // const hostname = window.location.hostname; // 개발 환경에서는 localhost 도메인 사용 - //if (hostname === "localhost" || hostname === "127.0.0.1" || hostname === "con.mind-one.co.kr") + // if (hostname === "localhost" || hostname === "127.0.0.1" || hostname === "con.mind-one.co.kr") router.push("/"); // 개발시 홈으로 돌아가기 // 운영 환경에서는 서브도메인을 포함한 최상위 도메인 사용 // router.push는 같은 Next.js 앱 내에서만 작동하므로 다른 앱으로 이동할 때는 window.location.href 사용 - //if (hostname.includes("hasuon.or.kr")) window.location.href = LOGIN_PAGE_URL; // 세션 만료 시 CM 로그인 페이지로 리다이렉트 + // if (hostname.includes("hasuon.or.kr")) window.location.href = LOGIN_PAGE_URL; // 세션 만료 시 CM 로그인 페이지로 리다이렉트 } } })(); - }, [pathname]); + }, []); return <>{children}; }; diff --git a/apps/wr/.env.development b/apps/wr/.env.development deleted file mode 100644 index 1d0e5d6a7..000000000 --- a/apps/wr/.env.development +++ /dev/null @@ -1,21 +0,0 @@ -# 공단 개발 -NEXT_PUBLIC_SITE_ID = WR -NEXT_PUBLIC_PORT = 3000 -NEXT_PUBLIC_CLAIM_NAME = Authorization -NEXT_PUBLIC_AUTH_USER_ID = token-id -NEXT_PUBLIC_ACCESS_TOKEN = access-token -NEXT_PUBLIC_REFRESH_TOKEN = refresh-token -NEXT_PUBLIC_PROXY_HOST = https://devtiger.hasuon.or.kr -NEXT_PUBLIC_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000 -NEXT_PUBLIC_FO_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/operation-service/api/v1 -NEXT_PUBLIC_CS_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000 -NEXT_PUBLIC_CS_TUS_UPLOAD = /attach-service/api/v1/tus/upload -NEXT_PUBLIC_GEOSERVER_URL = http://172.29.143.87:8080/geoserver -NEXT_PUBLIC_LX_GEOSERVER_URL = http://172.29.143.87:8080/geoserver_swl -NEXT_PUBLIC_WR_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/reuse-service/api/v1 -NEXT_PUBLIC_SEWERAGE_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/sewerage-service/api -NEXT_PUBLIC_NGII_URL = http://172.29.143.87/openapi/Gettile.do?apiKey=BDE2BEF39DAFEC293AB6730150F222AC&layer=korean_map&TileMatrix={z}&TileCol={y}&TileRow={x} -NEXT_PUBLIC_CM_LOGIN_PAGE_URL = https://devqueen.hasuon.or.kr/auth/login - -NEXT_PUBLIC_FINDADRESS_URL=https://business.juso.go.kr/addrlink/addrLinkApi.do -NEXT_PRIVATE_WR_ADDRESS_KEY = U01TXOFVVEgyMDI1MDgyODE0MTAxNzExNjEyMjA= \ No newline at end of file diff --git a/apps/wr/.env.local b/apps/wr/.env.local index 24b1e7ec3..fbce226c3 100644 --- a/apps/wr/.env.local +++ b/apps/wr/.env.local @@ -12,8 +12,10 @@ NEXT_PUBLIC_CS_TUS_UPLOAD = /attach-service/api/v1/tus/upload NEXT_PUBLIC_GEOSERVER_URL = https://hasudo.geo.rsonesoft.com/geoserver NEXT_PUBLIC_LX_GEOSERVER_URL = http://con.mind-one.co.kr:11306/geoserver NEXT_PUBLIC_WR_SERVER_API_URL = http://con.mind-one.co.kr:11083/reuse-service/api/v1 -NEXT_PUBLIC_SEWERAGE_API_URL = http://con.mind-one.co.kr:11083/sewerage-service/api # 개발 서버 API -NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr/openapi/Gettile.do?apiKey=04trYP9_xwLAfALjwZ-B8g&layer=korean_map&TileMatrix={z}&TileCol={x}&TileRow={y} +#NEXT_PUBLIC_WR_SERVER_API_URL = http://192.168.1.222:8883/reuse-service/api/v1 +NEXT_PUBLIC_SEWERAGE_API_URL = http://con.mind-one.co.kr:11083/sewerage-service # 개발 서버 API +NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr +NEXT_PUBLIC_NGII_PARAM = 04trYP9_xwLAfALjwZ-B8g&service=WMTS&request=GetTile&version=1.0.0&format=image/png&layer=korean_map&style=korean&tilematrixset=korean&tilematrix={z}&tilecol={x}&tilerow={y} NEXT_PUBLIC_FINDADRESS_URL = https://business.juso.go.kr/addrlink/addrLinkApi.do NEXT_PRIVATE_WR_ADDRESS_KEY = devU01TX0FVVEgyMDI1MDgyNTEwMzkwNDExNjEwNTM= diff --git a/apps/wr/.env.mindone b/apps/wr/.env.mindone index e0399ebe2..48f2b870e 100644 --- a/apps/wr/.env.mindone +++ b/apps/wr/.env.mindone @@ -12,8 +12,9 @@ NEXT_PUBLIC_CS_TUS_UPLOAD = /attach-service/api/v1/tus/upload NEXT_PUBLIC_GEOSERVER_URL = https://hasudo.geo.rsonesoft.com/geoserver NEXT_PUBLIC_LX_GEOSERVER_URL = http://con.mind-one.co.kr:11306/geoserver NEXT_PUBLIC_WR_SERVER_API_URL = http://con.mind-one.co.kr:11083/reuse-service/api/v1 -NEXT_PUBLIC_SEWERAGE_API_URL = http://con.mind-one.co.kr:11083/sewerage-service/api # 개발 서버 API -NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr/openapi/Gettile.do?apiKey=04trYP9_xwLAfALjwZ-B8g&layer=korean_map&TileMatrix={z}&TileCol={x}&TileRow={y} +NEXT_PUBLIC_SEWERAGE_API_URL = http://con.mind-one.co.kr:11083/sewerage-service # 개발 서버 API +NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr +NEXT_PUBLIC_NGII_PARAM = 04trYP9_xwLAfALjwZ-B8g&service=WMTS&request=GetTile&version=1.0.0&format=image/png&layer=korean_map&style=korean&tilematrixset=korean&tilematrix={z}&tilecol={x}&tilerow={y} NEXT_PUBLIC_FINDADRESS_URL=https://business.juso.go.kr/addrlink/addrLinkApi.do NEXT_PRIVATE_WR_ADDRESS_KEY = devU01TX0FVVEgyMDI1MDgyNTEwMzkwNDExNjEwNTM= diff --git a/apps/wr/.env.production b/apps/wr/.env.production index 19f4514db..2d7a96b90 100644 --- a/apps/wr/.env.production +++ b/apps/wr/.env.production @@ -5,6 +5,8 @@ NEXT_PUBLIC_CLAIM_NAME = Authorization NEXT_PUBLIC_AUTH_USER_ID = token-id NEXT_PUBLIC_ACCESS_TOKEN = access-token NEXT_PUBLIC_REFRESH_TOKEN = refresh-token +#NEXT_PUBLIC_PROXY_HOST = https://devtiger.hasuon.or.kr +#NEXT_PUBLIC_CM_LOGIN_PAGE_URL = https://devqueen.hasuon.or.kr/auth/login NEXT_PUBLIC_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000 NEXT_PUBLIC_FO_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/operation-service/api/v1 NEXT_PUBLIC_CS_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000 @@ -12,8 +14,9 @@ NEXT_PUBLIC_CS_TUS_UPLOAD = /attach-service/api/v1/tus/upload NEXT_PUBLIC_GEOSERVER_URL = http://172.29.143.87:8080/geoserver NEXT_PUBLIC_LX_GEOSERVER_URL = http://172.29.143.87:8080/geoserver_swl NEXT_PUBLIC_WR_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/reuse-service/api/v1 -NEXT_PUBLIC_SEWERAGE_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/sewerage-service/api -NEXT_PUBLIC_NGII_URL = http://172.29.143.87/openapi/Gettile.do?apiKey=BDE2BEF39DAFEC293AB6730150F222AC&layer=korean_map&TileMatrix={z}&TileCol={y}&TileRow={x} +NEXT_PUBLIC_SEWERAGE_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/sewerage-service +NEXT_PUBLIC_NGII_URL = http://172.29.143.87 +NEXT_PUBLIC_NGII_PARAM = BDE2BEF39DAFEC293AB6730150F222AC&service=WMTS&request=GetTile&version=1.0.0&format=image/png&layer=korean_map&style=korean&tilematrixset=korean&tilematrix={z}&tilecol={y}&tilerow={x} NEXT_PUBLIC_FINDADRESS_URL=https://business.juso.go.kr/addrlink/addrLinkApi.do NEXT_PRIVATE_WR_ADDRESS_KEY = U01TXOFVVEgyMDI1MDgyODE0MTAxNzExNjEyMjA= \ No newline at end of file diff --git a/apps/wr/app/(map-layout)/service/map.ts b/apps/wr/app/(map-layout)/service/map.ts index 79ba7fe9e..326f10c75 100644 --- a/apps/wr/app/(map-layout)/service/map.ts +++ b/apps/wr/app/(map-layout)/service/map.ts @@ -2,7 +2,7 @@ /** * 관망도 API */ - const API_URL = `${process.env.NEXT_PUBLIC_SEWERAGE_API_URL}/v1/map` + const API_URL = `/sewerage-service/api/v1/map` //const API_URL = "http://con.mind-one.co.kr:11083/sewerage-service/api/v1/map"; export type LyrStngProps = { diff --git a/apps/wr/app/(popUp-layout)/splyPopup/service/map.ts b/apps/wr/app/(popUp-layout)/splyPopup/service/map.ts index 9d58f65a7..605bae620 100644 --- a/apps/wr/app/(popUp-layout)/splyPopup/service/map.ts +++ b/apps/wr/app/(popUp-layout)/splyPopup/service/map.ts @@ -30,7 +30,7 @@ export type LyrStngProps = { export const mapService = { //레이어 설정 조회 getLyrStngs: async () => { - const response = await fetch(`${DEV_URL_SN}/v1/map/lyrStngs/DM_NETWORK`, { + const response = await fetch(`${DEV_URL_SN}/api/v1/map/lyrStngs/DM_NETWORK`, { method: 'GET', headers: { 'Accept': 'application/json', diff --git a/apps/wr/app/(without-layout)/layout.tsx b/apps/wr/app/(without-layout)/layout.tsx new file mode 100644 index 000000000..cbb9738cf --- /dev/null +++ b/apps/wr/app/(without-layout)/layout.tsx @@ -0,0 +1,13 @@ +"use client"; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + + + return ( + <>{children} + ); +} diff --git a/apps/wr/app/(without-layout)/stats/hasuStat/page.tsx b/apps/wr/app/(without-layout)/stats/hasuStat/page.tsx new file mode 100644 index 000000000..1d2bf2eb3 --- /dev/null +++ b/apps/wr/app/(without-layout)/stats/hasuStat/page.tsx @@ -0,0 +1,65 @@ +"use client"; +import { useEffect, useState } from "react"; +import Link from "next/link"; + +export default function HasuStatPage() { + const [status, setStatus] = useState("checking"); + + useEffect(() => { + let didCancel = false; + + async function checkAndRedirect() { + try { + const controller = new AbortController(); + const timeout = setTimeout(() => controller.abort(), 3000); + + const res = await fetch(`/api/client-ip`, { signal: controller.signal }); + clearTimeout(timeout); + + if (!res.ok) throw new Error("no-ip"); + const data = await res.json(); + const ip: string = data?.ip || ""; + if (didCancel) return; + alert("Client IP:" + ip); + + const is10 = /^10\./.test(ip); + const is172 = /^172\./.test(ip); + setStatus(is10||is172 ? "redirect-internal" : "redirect-root"); + + // Use location.replace so user can't go back to this page + if (is10||is172) { + // redirect to internal IP + window.open('http://10.101.163.102:8888/cms/lay1/WS10000014/program.do', '_blank'); + } else { + window.open('https://www.hasudoinfo.or.kr/cms/lay1/WS10000014/program.do', '_blank'); + } + window.history.back(); + } catch { + // If anything fails, fall back to root + if (!didCancel) { + setStatus("error-fallback"); + window.location.replace("/"); + } + } + } + + checkAndRedirect(); + + return () => { + didCancel = true; + }; + }, []); + + return ( +
+ {status === "checking" &&
접속 IP 확인 중...
} + {status === "redirect-internal" &&
내부망으로 이동합니다...
} + {status === "redirect-root" &&
외부에서 접속하여 루트로 이동합니다...
} + {status === "error-fallback" && ( +
+ 문제가 발생하여 루트로 이동합니다. 이동하지 않으면 여기를 클릭하세요. +
+ )} +
+ ); +} diff --git a/apps/wr/app/api/auth/logout/route.ts b/apps/wr/app/api/auth/logout/route.ts new file mode 100644 index 000000000..8832d35a3 --- /dev/null +++ b/apps/wr/app/api/auth/logout/route.ts @@ -0,0 +1,17 @@ +import { cookies } from "next/headers"; +import { NextResponse } from "next/server"; +import { + ACCESS_TOKEN, + AUTH_USER_ID, + CLAIM_NAME, + REFRESH_TOKEN, +} from "@/src/shared/config"; + +export async function POST() { + const cookieStore = await cookies(); + cookieStore.delete(ACCESS_TOKEN); + cookieStore.delete(REFRESH_TOKEN); + cookieStore.delete(AUTH_USER_ID); + cookieStore.delete(CLAIM_NAME); + return NextResponse.json({ message: "Logged out" }, { status: 200 }); +} diff --git a/apps/wr/app/api/client-ip/route.ts b/apps/wr/app/api/client-ip/route.ts new file mode 100644 index 000000000..016700fe7 --- /dev/null +++ b/apps/wr/app/api/client-ip/route.ts @@ -0,0 +1,28 @@ +import { NextResponse } from 'next/server'; + +export async function GET(request: Request) { + const headers = request.headers; + // 1. x-forwarded-for 또는 x-real-ip에서 IP 추출 + let ip = headers.get('x-forwarded-for') || headers.get('x-real-ip') || ''; + + // IP가 있으면 첫 번째 IP 주소만 추출 + if (ip) { + if (ip.includes(',')) { + ip = ip.split(',')[0]?.trim()||''; + } else { + ip = ip.trim(); + } + } + + // 3. IPv6 주소 정규화 + if (ip.startsWith('::ffff:')) { + ip = ip.replace('::ffff:', ''); + } + + // 4. localhost IPv6를 IPv4로 변환 + if (ip === '::1') { + ip = '127.0.0.1'; + } + + return NextResponse.json({ ip }); +} diff --git a/apps/wr/app/api/proxy/[...url]/route.ts b/apps/wr/app/api/proxy/[...url]/route.ts new file mode 100644 index 000000000..cf6447b1a --- /dev/null +++ b/apps/wr/app/api/proxy/[...url]/route.ts @@ -0,0 +1,111 @@ +/** + * 📄 Proxy Route + * API 프록시 라우트 + * + * - 서버 API로의 요청 프록시 처리 + * - 쿠키 기반 인증 토큰 및 리프레시 토큰 관리 + * - POST 및 PUT 요청 핸들링 + * - 사용자 인증 정보 검증 및 응답 처리 + * - 에러 핸들링 및 상태 코드 반환 + * - 사이트 ID 및 헤더 설정 + */ +import { cookies } from "next/headers"; +import { NextResponse } from "next/server"; + +const ACCESS_TOKEN = process.env.NEXT_PUBLIC_ACCESS_TOKEN || "access-token"; +const AUTH_USER_ID = process.env.NEXT_PUBLIC_AUTH_USER_ID || "token-id"; +const CLAIM_NAME = process.env.NEXT_PUBLIC_CLAIM_NAME || "Authorization"; +const REFRESH_TOKEN = process.env.NEXT_PUBLIC_REFRESH_TOKEN || "refresh-token"; +const SERVER_API_URL = process.env.NEXT_PUBLIC_SERVER_API_URL || ""; +const SITE_ID = process.env.NEXT_PUBLIC_SITE_ID || "SN"; + +async function handler( + request: Request, + params: { url: string[] }, + method: "GET" | "POST" | "PUT" | "DELETE", +) { + const cookieStore = await cookies(); + const headers: Record = { + "Content-Type": "application/json", + "X-Site-Id": SITE_ID, + }; + let body = {}; + const isRefreshHandler = params.url.includes("refresh"); + + // silent refresh + if (isRefreshHandler) { + const refreshToken = cookieStore.get(REFRESH_TOKEN); + headers[CLAIM_NAME] = refreshToken?.value ?? ""; + + if (!headers[CLAIM_NAME]) { + return NextResponse.json({ message: "Can't refresh" }, { status: 401 }); + } + } + + try { + if (!isRefreshHandler) { + body = await request.json(); + } + + const result = await fetch(`${SERVER_API_URL}/${params.url.join("/")}`, { + method, + headers, + body: JSON.stringify(body), + }); + + if (!result.ok) { + console.log("Invalid Credentials "); + return NextResponse.json( + { message: "Invalid Credentials" }, + { status: 401 }, + ); + } + + const accessToken = result.headers.get(ACCESS_TOKEN); + const refreshToken = result.headers.get(REFRESH_TOKEN); + const userId = result.headers.get(AUTH_USER_ID); + + if (accessToken && userId) { + const response = NextResponse.json({ + [ACCESS_TOKEN]: accessToken, + [AUTH_USER_ID]: userId, + }); + + if (refreshToken) { + cookieStore.set(REFRESH_TOKEN, refreshToken, { + httpOnly: true, + sameSite: "lax", + path: "/", + }); + } + + return response; + } + + return NextResponse.json( + { message: "Invalid Credentials" }, + { status: 401 }, + ); + } catch (error) { + return NextResponse.json( + { message: "Server Error", error }, + { status: 500 }, + ); + } +} + +export async function POST( + request: Request, + props: { params: Promise<{ url: string[] }> }, +) { + const params = await props.params; + return handler(request, params, "POST"); +} + +export async function PUT( + request: Request, + props: { params: Promise<{ url: string[] }> }, +) { + const params = await props.params; + return handler(request, params, "PUT"); +} diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/type.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/type.tsx index 4bf891d87..57c5538f7 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/type.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/type.tsx @@ -30,9 +30,9 @@ export const baseReuseBuildingSchema = z.object({ crgRdctAmt: z.number().default(0), // 안쓰는 값 ruseFcltFlg: z.string().default(""), bdstUsgCd: z - .number() - .default(0) - .refine((val) => val === -1 || val >= 1, { + .string() + .default('000') + .refine((val) => val.trim().length > 0, { message: validationMessages.requiredSelect("건축물용도"), }), lawTrgtYn: z.string().default("Y"), diff --git a/apps/wr/components/lib/config/index.ts b/apps/wr/components/lib/config/index.ts index 979862f12..85a3340fe 100644 --- a/apps/wr/components/lib/config/index.ts +++ b/apps/wr/components/lib/config/index.ts @@ -21,7 +21,7 @@ export const LOCAL_URL_WR = PROXY_HOST + `/api/v1`; export const DEV_URL_WR = '/reuse-service'; export const DEV_URL_FO = '/operation-service'; //export const DEV_URL_FO = SERVER_API_FO_URL; -export const DEV_URL_SN = '/sewerage-service/api'; +export const DEV_URL_SN = '/sewerage-service'; export const LOCAL_URL = PROXY_HOST; export const CS_URL = SERVER_API_CS_URL; export const CS_TUS_UPLOAD = SERVER_API_CS_TUS_URL; diff --git a/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx b/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx index fbcae44b0..72affedc9 100644 --- a/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx @@ -82,7 +82,7 @@ export default function RainRegForm({ operMngCd: item?.operMngCd ?? "", // null → "" grntchBdstCertYr: typeof item?.grntchBdstCertYr === "string" - ? item?.grntchBdstCertYr + ? item?.grntchBdstCertYr.trim() : "", // null → "" bdstUsgCd: item?.bdstUsgCd ?? Number("-1"), // null → "-1" instlCstSprtYn: item?.instlCstSprtYn ?? "Y", // null → "Y" diff --git a/apps/wr/middleware.ts b/apps/wr/middleware.ts index d811989e5..a5956ee0b 100644 --- a/apps/wr/middleware.ts +++ b/apps/wr/middleware.ts @@ -13,6 +13,18 @@ const OPERATION_API_URL = process.env.NEXT_PUBLIC_FO_SERVER_API_URL || ""; const BUSINESS_JUSO_API_URL = process.env.NEXT_PUBLIC_FINDADRESS_URL || ""; const AdressKey = process.env.NEXT_PRIVATE_WR_ADDRESS_KEY || ""; +/** 공통: URLSearchParams의 값을 decodeURIComponent 적용하여 querystring 생성 */ +function toDecodedQueryString(params: URLSearchParams): string { + const entries: string[][] = Array.from(params.entries()).map(([k, v]) => { + try { + return [k, decodeURIComponent(v)] as string[]; + } catch { + return [k, v] as string[]; + } + }); + return new URLSearchParams(entries).toString(); +} + /** 공통: 요청 헤더에 쿠키 기반 인증 값 주입 */ function buildAuthHeaders(req: NextRequest): Headers { const requestHeaders = new Headers(req.headers); @@ -50,19 +62,22 @@ export function middleware(req: NextRequest) { if (pathname.startsWith("/cms-service")) { const newUrl = `${serverApiUrl}${pathname}`; console.log(`[Middleware] Rewriting from '/cms-service' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/attach-service")) { const newUrl = `${serverApiUrl}${pathname}`; console.log(`[Middleware] Rewriting from '/attach-service' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/user-service")) { const newUrl = `${serverApiUrl}${pathname}`; console.log(`[Middleware] Rewriting from '/user-service' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/geoserver")) { @@ -103,20 +118,22 @@ export function middleware(req: NextRequest) { if (startYmd) url.searchParams.set("startYmd", startYmd); if (endYmd) url.searchParams.set("endYmd", endYmd); queryParams = url.searchParams.toString(); - newUrl = `${SEWERAGE_API_URL}/v1/map/geometry${queryParams ? `?${queryParams}` : ""}`; + newUrl = `${SEWERAGE_API_URL}/api/v1/map/geometry${queryParams ? `?${queryParams}` : ""}`; } //console.log(`[Middleware] Rewriting from '/geoserver' path to: ${newUrl}`); - return NextResponse.rewrite(new URL(newUrl)); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/sewerage-service")) { const queryParams = searchParams.toString(); - const newUrl = `${SEWERAGE_API_URL}${pathname.replace("/sewerage-service/api", "")}${ + const newUrl = `${SEWERAGE_API_URL}${pathname.replace("/sewerage-service", "")}${ queryParams ? `?${queryParams}` : "" }`; console.log(`[Middleware] Rewriting from '/sewerage-service' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/reuse-service")) { @@ -125,7 +142,8 @@ export function middleware(req: NextRequest) { queryParams ? `?${queryParams}` : "" }`; console.log(`[Middleware] Rewriting from '/reuse-service' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } if (pathname.startsWith("/operation-service")) { @@ -134,7 +152,8 @@ export function middleware(req: NextRequest) { queryParams ? `?${queryParams}` : "" }`; console.log(`[Middleware] Rewriting from '/operation-service' path to: ${newUrl}`); - return rewriteWith(newUrl, req, true); + const rewriteRequest = rewriteWith(newUrl, req, true); + return rewriteRequest; } @@ -154,6 +173,12 @@ export function middleware(req: NextRequest) { return NextResponse.rewrite(new URL(newUrl)); } + if (pathname.startsWith("/ngii-server")) { + const decodedQuery = toDecodedQueryString(searchParams); + const newUrl = `${process.env.NEXT_PUBLIC_NGII_URL}${pathname.replace("/ngii-server", "")}${decodedQuery ? `?${decodedQuery}` : ""}`; + console.log(`[Middleware] Rewriting from '${pathname}' path to: ${newUrl}`); + return NextResponse.rewrite(new URL(newUrl)); + } return NextResponse.next(); } @@ -169,6 +194,7 @@ export const config = { "/reuse-service/:path*", "/operation-service/:path*", "/bussiness-juso-service/:path*", + "/ngii-server/:path*", "/" ], }; diff --git a/apps/wr/next.config.ts b/apps/wr/next.config.ts index bc21e16a4..709fd3cf6 100644 --- a/apps/wr/next.config.ts +++ b/apps/wr/next.config.ts @@ -5,6 +5,9 @@ const subDomain = const nextConfig: NextConfig = { output: "standalone", + experimental: { + proxyTimeout: 600000, // 10분 (밀리초 단위) + }, async rewrites() { return { beforeFiles: [ @@ -33,6 +36,10 @@ const nextConfig: NextConfig = { source: "/operation-service/:path*", destination: `${subDomain}/operation-service/:path*`, }, + { + source: "/ngii-server/:path*", + destination: `${subDomain}/ngii-server/:path*`, + }, ], fallback: [], }; diff --git a/apps/wr/src/entities/auth/lib/auth-wrapper.tsx b/apps/wr/src/entities/auth/lib/auth-wrapper.tsx index 12904f8b8..1a4461c3f 100644 --- a/apps/wr/src/entities/auth/lib/auth-wrapper.tsx +++ b/apps/wr/src/entities/auth/lib/auth-wrapper.tsx @@ -1,7 +1,7 @@ "use client"; import { useEffect } from "react"; -import { useRouter, usePathname } from "next/navigation"; +import { useRouter } from "next/navigation"; import { client } from "../../../shared/api"; import type { IUserInfo } from "../../../shared/store"; import { useUserStore } from "../../../shared/lib"; @@ -10,11 +10,10 @@ import { getCookie } from "../../../shared/lib"; import { LoginApi } from "../api/login-service"; -const LOGIN_PAGE_URL = process.env.NEXT_PUBLIC_CM_LOGIN_PAGE_URL || "http://localhost:3000/auth/login"; // 로그인 페이지 URL +// const LOGIN_PAGE_URL = process.env.NEXT_PUBLIC_CM_LOGIN_PAGE_URL || "http://localhost:3000/auth/login"; // 로그인 페이지 URL const AuthWrapper = ({ children }: { children: React.ReactNode }) => { const router = useRouter(); - const pathname = usePathname(); const { userInfo, setUserInfo } = useUserStore((state) => state); async function authCheck() { @@ -43,19 +42,19 @@ const AuthWrapper = ({ children }: { children: React.ReactNode }) => { console.error("Token refresh failed:", refreshError); setUserInfo(null); - const hostname = window.location.hostname; + // const hostname = window.location.hostname; // 개발 환경에서는 localhost 도메인 사용 - //if (hostname === "localhost" || hostname === "127.0.0.1" || hostname === "con.mind-one.co.kr") + // if (hostname === "localhost" || hostname === "127.0.0.1" || hostname === "con.mind-one.co.kr") router.push("/"); // 개발시 홈으로 돌아가기 // 운영 환경에서는 서브도메인을 포함한 최상위 도메인 사용 // router.push는 같은 Next.js 앱 내에서만 작동하므로 다른 앱으로 이동할 때는 window.location.href 사용 - //if (hostname.includes("hasuon.or.kr")) window.location.href = LOGIN_PAGE_URL; // 세션 만료 시 CM 로그인 페이지로 리다이렉트 + // if (hostname.includes("hasuon.or.kr")) window.location.href = LOGIN_PAGE_URL; // 세션 만료 시 CM 로그인 페이지로 리다이렉트 } } })(); - }, [pathname]); + }, []); return <>{children}; }; diff --git a/packages/common/business_components/src/ui/map/lib/gis.core.js b/packages/common/business_components/src/ui/map/lib/gis.core.js index 1dbc34c2d..e8e05f037 100644 --- a/packages/common/business_components/src/ui/map/lib/gis.core.js +++ b/packages/common/business_components/src/ui/map/lib/gis.core.js @@ -41,7 +41,8 @@ GisApp.GOOGLE_HYBRID_URL = `https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}&k GisApp.GOOGLE_3D_URL = `https://tile.googleapis.com/v1/3dtiles/root.json?key=${GisApp.GOOGLE_API_KEY}`; // NGII 정보(배경지도) -GisApp.NGII_WMTS_URL = process.env.NEXT_PUBLIC_NGII_URL; +//GisApp.NGII_WMTS_URL = process.env.NEXT_PUBLIC_NGII_URL; +GisApp.NGII_WMTS_URL = `/ngii-server/openapi/Gettile.do?apikey=${process.env.NEXT_PUBLIC_NGII_PARAM}`; GisApp.EMAP_URL = '/emap/'; GisApp.EMAP_SATELLITE_URL = '/emap/satellite/'; @@ -149,8 +150,6 @@ GisApp.core.prototype = { const resolutions = [1044.48, 522.24, 261.12, 130.56, 65.28, 32.64, 16.32, 8.16, 4.08, 2.04, 1.02, 0.51, 0.255]; const matrixIds = ["L06", "L07", "L08", "L09", "L10", "L11", "L12", "L13", "L14", "L15", "L16", "L17", "L18"]; - - const templateUrl = process.env.NEXT_PUBLIC_NGII_URL; const tileGrid = new WMTSTileGrid({ origin: getTopLeft(projection.getExtent()), resolutions: resolutions, @@ -168,25 +167,13 @@ GisApp.core.prototype = { matrixSet: 'EPSG:5179', format: 'image/png', style: 'korean', - /* - tileUrlFunction: (tileCoord) => { - const [z, x, y] = tileCoord; - const matrix = matrixIds[z]; - const replacedUrl = templateUrl - .replace("{z}", matrix) - .replace("{x}", x) - .replace("{y}", y); // 여기서는 교환 안 함 — env 템플릿이 담당 - console.log('++++++',replacedUrl) - return replacedUrl; - }, - */ }); wmtsSource.setTileUrlFunction((tileCoord) => { const [z, x, y] = tileCoord; const matrix = matrixIds[z]; - console.log(templateUrl.replace("{z}", matrix).replace("{x}", x).replace("{y}", y)); - return templateUrl + console.log(GisApp.NGII_WMTS_URL.replace("{z}", matrix).replace("{x}", x).replace("{y}", y)); + return GisApp.NGII_WMTS_URL .replace("{z}", matrix) .replace("{x}", x) .replace("{y}", y); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1029eaaf0..8ec05ff83 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,29 +16,29 @@ importers: dependencies: chart.js: specifier: ^4.4.8 - version: 4.5.1 + version: 4.5.0 react: specifier: ^18.3.1 version: 18.3.1 react-chartjs-2: specifier: ^5.3.0 - version: 5.3.0(chart.js@4.5.1)(react@18.3.1) + version: 5.3.0(chart.js@4.5.0)(react@18.3.1) react-dom: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) zustand: specifier: ^5.0.3 - version: 5.0.8(@types/react@18.3.26)(react@18.3.1) + version: 5.0.7(@types/react@18.3.23)(react@18.3.1) devDependencies: '@types/node': specifier: ^22.13.9 - version: 22.18.11 + version: 22.17.1 '@types/react': specifier: ^18.3.18 - version: 18.3.26 + version: 18.3.23 '@types/react-dom': specifier: ^18.3.5 - version: 18.3.7(@types/react@18.3.26) + version: 18.3.7(@types/react@18.3.23) turbo: specifier: 2.4.2 version: 2.4.2 @@ -56,7 +56,7 @@ importers: version: link:../../packages/common/config '@fontsource-variable/noto-sans-kr': specifier: ^5.2.5 - version: 5.2.9 + version: 5.2.6 '@frontend-opensource/use-react-hooks': specifier: ^1.1.4 version: 1.1.4 @@ -77,7 +77,7 @@ importers: version: 6.1.19(@fullcalendar/core@6.1.19) '@hookform/resolvers': specifier: ^4.1.3 - version: 4.1.3(react-hook-form@7.65.0) + version: 4.1.3(react-hook-form@7.62.0) '@minoru/react-dnd-treeview': specifier: 3.5.1-alpha.1 version: 3.5.1-alpha.1(dnd-core@16.0.1)(react-dnd@16.0.1)(react-dom@18.3.1)(react@18.3.1) @@ -86,19 +86,19 @@ importers: version: 1.3.2(react@18.3.1) '@radix-ui/react-label': specifier: ^2.1.2 - version: 2.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 2.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-slot': specifier: ^1.1.2 - version: 1.2.3(@types/react@18.3.26)(react@18.3.1) + version: 1.2.3(@types/react@18.3.23)(react@18.3.1) '@radix-ui/react-tooltip': specifier: ^1.1.8 - version: 1.2.8(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.2.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@tanstack/react-query': specifier: ^5.67.1 - version: 5.90.5(react@18.3.1) + version: 5.84.2(react@18.3.1) '@tanstack/react-query-devtools': specifier: ^5.75.5 - version: 5.90.2(@tanstack/react-query@5.90.5)(react@18.3.1) + version: 5.84.2(@tanstack/react-query@5.84.2)(react@18.3.1) '@tanstack/react-table': specifier: ^8.21.2 version: 8.21.3(react-dom@18.3.1)(react@18.3.1) @@ -110,10 +110,10 @@ importers: version: 1.8.1 chart.js: specifier: ^4.4.8 - version: 4.5.1 + version: 4.5.0 dayjs: specifier: ^1.11.13 - version: 1.11.18 + version: 1.11.13 js-cookie: specifier: ^3.0.5 version: 3.0.5 @@ -131,19 +131,19 @@ importers: version: 0.4.6(react-dom@18.3.1)(react@18.3.1) react-chartjs-2: specifier: ^5.3.0 - version: 5.3.0(chart.js@4.5.1)(react@18.3.1) + version: 5.3.0(chart.js@4.5.0)(react@18.3.1) react-dnd: specifier: ^16.0.1 - version: 16.0.1(@types/node@22.18.11)(@types/react@18.3.26)(react@18.3.1) + version: 16.0.1(@types/node@22.17.1)(@types/react@18.3.23)(react@18.3.1) react-hook-form: specifier: ^7.54.2 - version: 7.65.0(react@18.3.1) + version: 7.62.0(react@18.3.1) sonner: specifier: ^2.0.1 version: 2.0.7(react-dom@18.3.1)(react@18.3.1) tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.18) + version: 1.0.7(tailwindcss@3.4.17) tus-js-client: specifier: ^4.3.1 version: 4.3.1 @@ -152,7 +152,7 @@ importers: version: 3.25.76 zustand: specifier: ^5.0.3 - version: 5.0.8(@types/react@18.3.26)(react@18.3.1) + version: 5.0.7(@types/react@18.3.23)(react@18.3.1) devDependencies: '@eslint/eslintrc': specifier: ^3 @@ -162,16 +162,16 @@ importers: version: 3.0.6 '@types/node': specifier: ^22.13.1 - version: 22.18.11 + version: 22.17.1 '@types/webpack': specifier: ^5.28.5 version: 5.28.5 eslint: specifier: ^9 - version: 9.37.0 + version: 9.33.0 eslint-config-next: specifier: 15.1.7 - version: 15.1.7(eslint@9.37.0)(typescript@5.6.3) + version: 15.1.7(eslint@9.33.0)(typescript@5.6.3) postcss: specifier: ^8 version: 8.5.6 @@ -186,7 +186,7 @@ importers: version: 0.5.11(typescript@5.6.3) tailwindcss: specifier: ^3.4.1 - version: 3.4.18 + version: 3.4.17 typescript: specifier: ^5 version: 5.6.3 @@ -207,13 +207,13 @@ importers: version: link:../../../packages/common/network '@fontsource-variable/noto-sans-kr': specifier: ^5.2.5 - version: 5.2.9 + version: 5.2.6 '@frontend-opensource/use-react-hooks': specifier: ^1.1.4 version: 1.1.4 '@hookform/resolvers': specifier: ^4.1.3 - version: 4.1.3(react-hook-form@7.65.0) + version: 4.1.3(react-hook-form@7.62.0) '@minoru/react-dnd-treeview': specifier: ^3.5.0 version: 3.5.3(dnd-core@16.0.1)(react-dnd@16.0.1)(react-dom@18.3.1)(react@18.3.1) @@ -222,16 +222,16 @@ importers: version: 1.3.2(react@18.3.1) '@radix-ui/react-label': specifier: ^2.1.2 - version: 2.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 2.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-slot': specifier: ^1.1.2 - version: 1.2.3(@types/react@18.3.26)(react@18.3.1) + version: 1.2.3(@types/react@18.3.23)(react@18.3.1) '@tanstack/react-query': specifier: ^5.67.1 - version: 5.90.5(react@18.3.1) + version: 5.84.2(react@18.3.1) '@tanstack/react-query-devtools': specifier: ^5.75.5 - version: 5.90.2(@tanstack/react-query@5.90.5)(react@18.3.1) + version: 5.84.2(@tanstack/react-query@5.84.2)(react@18.3.1) '@tanstack/react-table': specifier: ^8.21.2 version: 8.21.3(react-dom@18.3.1)(react@18.3.1) @@ -243,10 +243,10 @@ importers: version: 1.8.1 chart.js: specifier: ^4.4.8 - version: 4.5.1 + version: 4.5.0 dayjs: specifier: ^1.11.13 - version: 1.11.18 + version: 1.11.13 js-cookie: specifier: ^3.0.5 version: 3.0.5 @@ -258,19 +258,19 @@ importers: version: 0.4.6(react-dom@18.3.1)(react@18.3.1) react-chartjs-2: specifier: ^5.3.0 - version: 5.3.0(chart.js@4.5.1)(react@18.3.1) + version: 5.3.0(chart.js@4.5.0)(react@18.3.1) react-dnd: specifier: ^16.0.1 - version: 16.0.1(@types/node@22.18.11)(@types/react@18.3.26)(react@18.3.1) + version: 16.0.1(@types/node@22.17.1)(@types/react@18.3.23)(react@18.3.1) react-hook-form: specifier: ^7.54.2 - version: 7.65.0(react@18.3.1) + version: 7.62.0(react@18.3.1) sonner: specifier: ^2.0.1 version: 2.0.7(react-dom@18.3.1)(react@18.3.1) tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.18) + version: 1.0.7(tailwindcss@3.4.17) tus-js-client: specifier: ^4.3.1 version: 4.3.1 @@ -282,7 +282,7 @@ importers: version: 3.25.76 zustand: specifier: ^5.0.3 - version: 5.0.8(@types/react@18.3.26)(react@18.3.1) + version: 5.0.7(@types/react@18.3.23)(react@18.3.1) devDependencies: '@eslint/eslintrc': specifier: ^3 @@ -292,16 +292,16 @@ importers: version: 3.0.6 '@types/node': specifier: ^22.13.1 - version: 22.18.11 + version: 22.17.1 '@types/webpack': specifier: ^5.28.5 version: 5.28.5 eslint: specifier: ^9 - version: 9.37.0 + version: 9.33.0 eslint-config-next: specifier: 15.1.7 - version: 15.1.7(eslint@9.37.0)(typescript@5.6.3) + version: 15.1.7(eslint@9.33.0)(typescript@5.6.3) postcss: specifier: ^8 version: 8.5.6 @@ -316,7 +316,7 @@ importers: version: 0.5.11(typescript@5.6.3) tailwindcss: specifier: ^3.4.1 - version: 3.4.18 + version: 3.4.17 typescript: specifier: ^5 version: 5.6.3 @@ -334,7 +334,7 @@ importers: version: link:../../packages/common/config '@fontsource-variable/noto-sans-kr': specifier: ^5.2.5 - version: 5.2.9 + version: 5.2.6 '@frontend-opensource/use-react-hooks': specifier: ^1.1.4 version: 1.1.4 @@ -355,7 +355,7 @@ importers: version: 6.1.19(@fullcalendar/core@6.1.19) '@hookform/resolvers': specifier: ^4.1.3 - version: 4.1.3(react-hook-form@7.65.0) + version: 4.1.3(react-hook-form@7.62.0) '@minoru/react-dnd-treeview': specifier: 3.5.1-alpha.1 version: 3.5.1-alpha.1(dnd-core@16.0.1)(react-dnd@16.0.1)(react-dom@18.3.1)(react@18.3.1) @@ -364,19 +364,19 @@ importers: version: 1.3.2(react@18.3.1) '@radix-ui/react-label': specifier: ^2.1.2 - version: 2.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 2.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-slot': specifier: ^1.1.2 - version: 1.2.3(@types/react@18.3.26)(react@18.3.1) + version: 1.2.3(@types/react@18.3.23)(react@18.3.1) '@radix-ui/react-tooltip': specifier: ^1.1.8 - version: 1.2.8(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.2.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@tanstack/react-query': specifier: ^5.67.1 - version: 5.90.5(react@18.3.1) + version: 5.84.2(react@18.3.1) '@tanstack/react-query-devtools': specifier: ^5.75.5 - version: 5.90.2(@tanstack/react-query@5.90.5)(react@18.3.1) + version: 5.84.2(@tanstack/react-query@5.84.2)(react@18.3.1) '@tanstack/react-table': specifier: ^8.21.2 version: 8.21.3(react-dom@18.3.1)(react@18.3.1) @@ -388,10 +388,10 @@ importers: version: 1.8.1 chart.js: specifier: ^4.4.8 - version: 4.5.1 + version: 4.5.0 dayjs: specifier: ^1.11.13 - version: 1.11.18 + version: 1.11.13 js-cookie: specifier: ^3.0.5 version: 3.0.5 @@ -409,19 +409,19 @@ importers: version: 0.4.6(react-dom@18.3.1)(react@18.3.1) react-chartjs-2: specifier: ^5.3.0 - version: 5.3.0(chart.js@4.5.1)(react@18.3.1) + version: 5.3.0(chart.js@4.5.0)(react@18.3.1) react-dnd: specifier: ^16.0.1 - version: 16.0.1(@types/node@22.18.11)(@types/react@18.3.26)(react@18.3.1) + version: 16.0.1(@types/node@22.17.1)(@types/react@18.3.23)(react@18.3.1) react-hook-form: specifier: ^7.54.2 - version: 7.65.0(react@18.3.1) + version: 7.62.0(react@18.3.1) sonner: specifier: ^2.0.1 version: 2.0.7(react-dom@18.3.1)(react@18.3.1) tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.18) + version: 1.0.7(tailwindcss@3.4.17) tus-js-client: specifier: ^4.3.1 version: 4.3.1 @@ -430,7 +430,7 @@ importers: version: 3.25.76 zustand: specifier: ^5.0.3 - version: 5.0.8(@types/react@18.3.26)(react@18.3.1) + version: 5.0.7(@types/react@18.3.23)(react@18.3.1) devDependencies: '@eslint/eslintrc': specifier: ^3 @@ -440,16 +440,16 @@ importers: version: 3.0.6 '@types/node': specifier: ^22.13.1 - version: 22.18.11 + version: 22.17.1 '@types/webpack': specifier: ^5.28.5 version: 5.28.5 eslint: specifier: ^9 - version: 9.37.0 + version: 9.33.0 eslint-config-next: specifier: 15.1.7 - version: 15.1.7(eslint@9.37.0)(typescript@5.6.3) + version: 15.1.7(eslint@9.33.0)(typescript@5.6.3) postcss: specifier: ^8 version: 8.5.6 @@ -464,7 +464,7 @@ importers: version: 0.5.11(typescript@5.6.3) tailwindcss: specifier: ^3.4.1 - version: 3.4.18 + version: 3.4.17 typescript: specifier: ^5 version: 5.6.3 @@ -482,19 +482,19 @@ importers: version: 1.1.4 '@hookform/resolvers': specifier: ^4.1.3 - version: 4.1.3(react-hook-form@7.65.0) + version: 4.1.3(react-hook-form@7.62.0) '@minoru/react-dnd-treeview': specifier: ^3.5.0 version: 3.5.3(dnd-core@16.0.1)(react-dnd@16.0.1)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-label': specifier: ^2.1.2 - version: 2.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 2.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-slot': specifier: ^1.1.2 - version: 1.2.3(@types/react@18.3.26)(react@18.3.1) + version: 1.2.3(@types/react@18.3.23)(react@18.3.1) '@tanstack/react-query': specifier: ^5.67.1 - version: 5.90.5(react@18.3.1) + version: 5.84.2(react@18.3.1) '@tanstack/react-table': specifier: ^8.21.2 version: 8.21.3(react-dom@18.3.1)(react@18.3.1) @@ -503,10 +503,10 @@ importers: version: 1.8.1 chart.js: specifier: ^4.4.8 - version: 4.5.1 + version: 4.5.0 dayjs: specifier: ^1.11.13 - version: 1.11.18 + version: 1.11.13 js-cookie: specifier: ^3.0.5 version: 3.0.5 @@ -518,28 +518,28 @@ importers: version: 15.2.3(react-dom@18.3.1)(react@18.3.1) react-chartjs-2: specifier: ^5.3.0 - version: 5.3.0(chart.js@4.5.1)(react@18.3.1) + version: 5.3.0(chart.js@4.5.0)(react@18.3.1) react-dnd: specifier: ^16.0.1 - version: 16.0.1(@types/node@22.18.11)(@types/react@18.3.26)(react@18.3.1) + version: 16.0.1(@types/node@22.17.1)(@types/react@18.3.23)(react@18.3.1) react-dropzone: specifier: ^14.3.8 version: 14.3.8(react@18.3.1) react-hook-form: specifier: ^7.54.2 - version: 7.65.0(react@18.3.1) + version: 7.62.0(react@18.3.1) react-qr-code: specifier: ^2.0.18 version: 2.0.18(react@18.3.1) tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.18) + version: 1.0.7(tailwindcss@3.4.17) zod: specifier: ^3.24.2 version: 3.25.76 zustand: specifier: ^5.0.3 - version: 5.0.8(@types/react@18.3.26)(react@18.3.1) + version: 5.0.7(@types/react@18.3.23)(react@18.3.1) devDependencies: '@eslint/eslintrc': specifier: ^3 @@ -552,16 +552,16 @@ importers: version: 3.0.6 '@types/node': specifier: ^22.17.0 - version: 22.18.11 + version: 22.17.1 '@types/webpack': specifier: ^5.28.5 version: 5.28.5 eslint: specifier: ^9 - version: 9.37.0 + version: 9.33.0 eslint-config-next: specifier: 15.2.3 - version: 15.2.3(eslint@9.37.0)(typescript@5.6.3) + version: 15.2.3(eslint@9.33.0)(typescript@5.6.3) postcss: specifier: ^8 version: 8.5.6 @@ -576,7 +576,7 @@ importers: version: 0.5.11(typescript@5.6.3) tailwindcss: specifier: ^3.4.1 - version: 3.4.18 + version: 3.4.17 typescript: specifier: ^5 version: 5.6.3 @@ -594,7 +594,7 @@ importers: version: link:../../packages/common/components '@hookform/resolvers': specifier: ^4.1.3 - version: 4.1.3(react-hook-form@7.65.0) + version: 4.1.3(react-hook-form@7.62.0) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -615,16 +615,16 @@ importers: version: 15.1.7(react-dom@18.3.1)(react@18.3.1) react-hook-form: specifier: ^7.54.2 - version: 7.65.0(react@18.3.1) + version: 7.62.0(react@18.3.1) react-hot-toast: specifier: ^2.5.2 - version: 2.6.0(react-dom@18.3.1)(react@18.3.1) + version: 2.5.2(react-dom@18.3.1)(react@18.3.1) tailwind-merge: specifier: ^3.0.1 version: 3.3.1 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.18) + version: 1.0.7(tailwindcss@3.4.17) zod: specifier: ^3.24.2 version: 3.25.76 @@ -637,16 +637,16 @@ importers: version: 5.28.5 eslint: specifier: ^9 - version: 9.37.0 + version: 9.33.0 eslint-config-next: specifier: 15.1.7 - version: 15.1.7(eslint@9.37.0)(typescript@5.6.3) + version: 15.1.7(eslint@9.33.0)(typescript@5.6.3) postcss: specifier: ^8 version: 8.5.6 tailwindcss: specifier: ^3.4.1 - version: 3.4.18 + version: 3.4.17 typescript: specifier: ^5 version: 5.6.3 @@ -664,25 +664,25 @@ importers: version: link:../../packages/common/components '@fontsource-variable/noto-sans-kr': specifier: ^5.2.5 - version: 5.2.9 + version: 5.2.6 '@frontend-opensource/use-react-hooks': specifier: ^1.1.4 version: 1.1.4 '@hookform/resolvers': specifier: ^4.1.3 - version: 4.1.3(react-hook-form@7.65.0) + version: 4.1.3(react-hook-form@7.62.0) '@minoru/react-dnd-treeview': specifier: 3.5.1-alpha.1 version: 3.5.1-alpha.1(dnd-core@16.0.1)(react-dnd@16.0.1)(react-dom@18.3.1)(react@18.3.1) '@tailwindcss/vite': specifier: ^4.0.10 - version: 4.1.14(vite@6.4.0) + version: 4.1.11(vite@6.3.5) '@tanstack/react-query': specifier: ^5.67.1 - version: 5.90.5(react@18.3.1) + version: 5.84.2(react@18.3.1) '@tanstack/react-query-devtools': specifier: ^5.75.5 - version: 5.90.2(@tanstack/react-query@5.90.5)(react@18.3.1) + version: 5.84.2(@tanstack/react-query@5.84.2)(react@18.3.1) '@tanstack/react-table': specifier: ^8.21.2 version: 8.21.3(react-dom@18.3.1)(react@18.3.1) @@ -703,44 +703,44 @@ importers: version: 7.5.2 ol-ext: specifier: ^4.0.11 - version: 4.0.35(ol@7.5.2) + version: 4.0.33(ol@7.5.2) proj4: specifier: ^2.9.0 version: 2.19.10 react-dnd: specifier: ^16.0.1 - version: 16.0.1(@types/node@22.18.11)(@types/react@18.3.26)(react@18.3.1) + version: 16.0.1(@types/node@22.17.1)(@types/react@18.3.23)(react@18.3.1) react-hook-form: specifier: ^7.54.2 - version: 7.65.0(react@18.3.1) + version: 7.62.0(react@18.3.1) select: specifier: ^1.1.2 version: 1.1.2 webpack: specifier: ^5.98.0 - version: 5.102.1 + version: 5.101.0 zod: specifier: ^3.24.2 version: 3.25.76 zustand: specifier: ^5.0.3 - version: 5.0.8(@types/react@18.3.26)(react@18.3.1) + version: 5.0.7(@types/react@18.3.23)(react@18.3.1) devDependencies: '@eslint/eslintrc': specifier: ^3 version: 3.3.1 eslint: specifier: ^9 - version: 9.37.0 + version: 9.33.0 eslint-config-next: specifier: 15.1.7 - version: 15.1.7(eslint@9.37.0)(typescript@5.6.3) + version: 15.1.7(eslint@9.33.0)(typescript@5.6.3) postcss: specifier: ^8 version: 8.5.6 tailwindcss: specifier: ^3.4.17 - version: 3.4.18 + version: 3.4.17 typescript: specifier: ^5.6.3 version: 5.6.3 @@ -758,28 +758,28 @@ importers: version: link:../../packages/common/components '@fontsource-variable/noto-sans-kr': specifier: ^5.2.5 - version: 5.2.9 + version: 5.2.6 '@frontend-opensource/use-react-hooks': specifier: ^1.1.4 version: 1.1.4 '@hookform/resolvers': specifier: ^4.1.3 - version: 4.1.3(react-hook-form@7.65.0) + version: 4.1.3(react-hook-form@7.62.0) '@minoru/react-dnd-treeview': specifier: 3.5.1-alpha.1 version: 3.5.1-alpha.1(dnd-core@16.0.1)(react-dnd@16.0.1)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-label': specifier: ^2.1.2 - version: 2.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 2.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-slot': specifier: ^1.1.2 - version: 1.2.3(@types/react@18.3.26)(react@18.3.1) + version: 1.2.3(@types/react@18.3.23)(react@18.3.1) '@tanstack/react-query': specifier: ^5.67.1 - version: 5.90.5(react@18.3.1) + version: 5.84.2(react@18.3.1) '@tanstack/react-query-devtools': specifier: ^5.75.5 - version: 5.90.2(@tanstack/react-query@5.90.5)(react@18.3.1) + version: 5.84.2(@tanstack/react-query@5.84.2)(react@18.3.1) '@tanstack/react-table': specifier: ^8.21.2 version: 8.21.3(react-dom@18.3.1)(react@18.3.1) @@ -788,10 +788,10 @@ importers: version: 1.8.1 chart.js: specifier: ^4.4.8 - version: 4.5.1 + version: 4.5.0 dayjs: specifier: ^1.11.13 - version: 1.11.18 + version: 1.11.13 js-cookie: specifier: ^3.0.5 version: 3.0.5 @@ -806,25 +806,25 @@ importers: version: 7.5.2 ol-ext: specifier: ^4.0.11 - version: 4.0.35(ol@7.5.2) + version: 4.0.33(ol@7.5.2) proj4: specifier: ^2.9.0 version: 2.19.10 react-chartjs-2: specifier: ^5.3.0 - version: 5.3.0(chart.js@4.5.1)(react@18.3.1) + version: 5.3.0(chart.js@4.5.0)(react@18.3.1) react-dnd: specifier: ^16.0.1 - version: 16.0.1(@types/node@22.18.11)(@types/react@18.3.26)(react@18.3.1) + version: 16.0.1(@types/node@22.17.1)(@types/react@18.3.23)(react@18.3.1) react-hook-form: specifier: ^7.54.2 - version: 7.65.0(react@18.3.1) + version: 7.62.0(react@18.3.1) react-hot-toast: specifier: ^2.5.2 - version: 2.6.0(react-dom@18.3.1)(react@18.3.1) + version: 2.5.2(react-dom@18.3.1)(react@18.3.1) tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.18) + version: 1.0.7(tailwindcss@3.4.17) tus-js-client: specifier: ^4.3.1 version: 4.3.1 @@ -839,7 +839,7 @@ importers: version: 3.25.76 zustand: specifier: ^5.0.3 - version: 5.0.8(@types/react@18.3.26)(react@18.3.1) + version: 5.0.7(@types/react@18.3.23)(react@18.3.1) devDependencies: '@eslint/eslintrc': specifier: ^3 @@ -852,16 +852,16 @@ importers: version: 3.0.6 '@types/node': specifier: ^22.13.1 - version: 22.18.11 + version: 22.17.1 '@types/webpack': specifier: ^5.28.5 version: 5.28.5 eslint: specifier: ^9 - version: 9.37.0 + version: 9.33.0 eslint-config-next: specifier: 15.1.7 - version: 15.1.7(eslint@9.37.0)(typescript@5.6.3) + version: 15.1.7(eslint@9.33.0)(typescript@5.6.3) postcss: specifier: ^8 version: 8.5.6 @@ -876,7 +876,7 @@ importers: version: 0.5.11(typescript@5.6.3) tailwindcss: specifier: ^3.4.1 - version: 3.4.18 + version: 3.4.17 typescript: specifier: ^5 version: 5.6.3 @@ -894,22 +894,22 @@ importers: version: link:../../packages/common/components '@fontsource-variable/noto-sans-kr': specifier: ^5.2.5 - version: 5.2.9 + version: 5.2.6 '@frontend-opensource/use-react-hooks': specifier: ^1.1.4 version: 1.1.4 '@hookform/resolvers': specifier: ^4.1.3 - version: 4.1.3(react-hook-form@7.65.0) + version: 4.1.3(react-hook-form@7.62.0) '@minoru/react-dnd-treeview': specifier: 3.5.1-alpha.1 version: 3.5.1-alpha.1(dnd-core@16.0.1)(react-dnd@16.0.1)(react-dom@18.3.1)(react@18.3.1) '@tanstack/react-query': specifier: ^5.67.1 - version: 5.90.5(react@18.3.1) + version: 5.84.2(react@18.3.1) '@tanstack/react-query-devtools': specifier: ^5.75.5 - version: 5.90.2(@tanstack/react-query@5.90.5)(react@18.3.1) + version: 5.84.2(@tanstack/react-query@5.84.2)(react@18.3.1) '@tanstack/react-table': specifier: ^8.21.2 version: 8.21.3(react-dom@18.3.1)(react@18.3.1) @@ -924,7 +924,7 @@ importers: version: 2.1.1 i18next: specifier: ^25.3.2 - version: 25.6.0(typescript@5.6.3) + version: 25.3.2(typescript@5.6.3) js-cookie: specifier: ^3.0.5 version: 3.0.5 @@ -942,31 +942,31 @@ importers: version: 7.5.2 ol-ext: specifier: ^4.0.11 - version: 4.0.35(ol@7.5.2) + version: 4.0.33(ol@7.5.2) proj4: specifier: ^2.9.0 version: 2.19.10 react-dnd: specifier: ^16.0.1 - version: 16.0.1(@types/node@22.18.11)(@types/react@18.3.26)(react@18.3.1) + version: 16.0.1(@types/node@22.17.1)(@types/react@18.3.23)(react@18.3.1) react-draggable: specifier: ^4.5.0 version: 4.5.0(react-dom@18.3.1)(react@18.3.1) react-hook-form: specifier: ^7.54.2 - version: 7.65.0(react@18.3.1) + version: 7.62.0(react@18.3.1) react-hot-toast: specifier: ^2.5.2 - version: 2.6.0(react-dom@18.3.1)(react@18.3.1) + version: 2.5.2(react-dom@18.3.1)(react@18.3.1) react-i18next: specifier: ^15.6.0 - version: 15.7.4(i18next@25.6.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.6.3) + version: 15.6.1(i18next@25.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.6.3) tailwind-merge: specifier: ^3.0.1 version: 3.3.1 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.18) + version: 1.0.7(tailwindcss@3.4.17) tus-js-client: specifier: ^4.3.1 version: 4.3.1 @@ -981,7 +981,7 @@ importers: version: 3.25.76 zustand: specifier: ^5.0.3 - version: 5.0.8(@types/react@18.3.26)(react@18.3.1) + version: 5.0.7(@types/react@18.3.23)(react@18.3.1) devDependencies: '@eslint/eslintrc': specifier: ^3 @@ -991,16 +991,16 @@ importers: version: 5.28.5 eslint: specifier: ^9 - version: 9.37.0 + version: 9.33.0 eslint-config-next: specifier: 15.1.7 - version: 15.1.7(eslint@9.37.0)(typescript@5.6.3) + version: 15.1.7(eslint@9.33.0)(typescript@5.6.3) postcss: specifier: ^8 version: 8.5.6 tailwindcss: specifier: ^3.4.1 - version: 3.4.18 + version: 3.4.17 typescript: specifier: ^5 version: 5.6.3 @@ -1009,7 +1009,7 @@ importers: devDependencies: '@types/node': specifier: ^20.11.0 - version: 20.19.22 + version: 20.19.10 tsup: specifier: ^8.0.1 version: 8.3.6(postcss@8.5.6)(typescript@5.6.3) @@ -1024,22 +1024,22 @@ importers: version: link:../components '@hookform/resolvers': specifier: ^4.1.3 - version: 4.1.3(react-hook-form@7.65.0) + version: 4.1.3(react-hook-form@7.62.0) '@minoru/react-dnd-treeview': specifier: 3.5.1-alpha.1 version: 3.5.1-alpha.1(dnd-core@16.0.1)(react-dnd@16.0.1)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-label': specifier: ^2.1.2 - version: 2.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 2.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-scroll-area': specifier: ^1.2.3 - version: 1.2.10(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.2.9(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-select': specifier: ^2.1.6 - version: 2.2.6(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 2.2.5(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-slot': specifier: ^1.1.2 - version: 1.2.3(@types/react@18.3.26)(react@18.3.1) + version: 1.2.3(@types/react@18.3.23)(react@18.3.1) axios: specifier: 1.8.1 version: 1.8.1 @@ -1054,7 +1054,7 @@ importers: version: 3.6.0 libphonenumber-js: specifier: ^1.12.9 - version: 1.12.24 + version: 1.12.10 lucide-react: specifier: ^0.474.0 version: 0.474.0(react@18.3.1) @@ -1063,7 +1063,7 @@ importers: version: 7.5.2 ol-ext: specifier: ^4.0.11 - version: 4.0.35(ol@7.5.2) + version: 4.0.33(ol@7.5.2) path: specifier: ^0.12.7 version: 0.12.7 @@ -1075,13 +1075,13 @@ importers: version: 8.10.1(date-fns@3.6.0)(react@18.3.1) react-dnd: specifier: ^16.0.1 - version: 16.0.1(@types/node@22.18.11)(@types/react@18.3.26)(react@18.3.1) + version: 16.0.1(@types/node@22.17.1)(@types/react@18.3.23)(react@18.3.1) react-dropzone: specifier: ^14.3.8 version: 14.3.8(react@18.3.1) react-hook-form: specifier: ^7.54.2 - version: 7.65.0(react@18.3.1) + version: 7.62.0(react@18.3.1) recharts: specifier: ^2.15.1 version: 2.15.4(react-dom@18.3.1)(react@18.3.1) @@ -1093,7 +1093,7 @@ importers: version: 3.3.1 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.18) + version: 1.0.7(tailwindcss@3.4.17) xlsx: specifier: ^0.18.5 version: 0.18.5 @@ -1106,10 +1106,10 @@ importers: devDependencies: '@eslint/js': specifier: ^9.17.0 - version: 9.37.0 + version: 9.33.0 '@storybook/addon-essentials': specifier: ^8.5.3 - version: 8.6.14(@types/react@18.3.26)(storybook@8.6.14) + version: 8.6.14(@types/react@18.3.23)(storybook@8.6.14) '@storybook/addon-interactions': specifier: ^8.5.3 version: 8.6.14(storybook@8.6.14) @@ -1130,7 +1130,7 @@ importers: version: 8.6.14(@storybook/test@8.6.14)(react-dom@18.3.1)(react@18.3.1)(storybook@8.6.14)(typescript@5.6.3) '@storybook/react-vite': specifier: ^8.5.3 - version: 8.6.14(@storybook/test@8.6.14)(react-dom@18.3.1)(react@18.3.1)(storybook@8.6.14)(typescript@5.6.3)(vite@6.4.0) + version: 8.6.14(@storybook/test@8.6.14)(react-dom@18.3.1)(react@18.3.1)(storybook@8.6.14)(typescript@5.6.3)(vite@6.3.5) '@storybook/test': specifier: ^8.5.3 version: 8.6.14(storybook@8.6.14) @@ -1139,7 +1139,7 @@ importers: version: 8.6.14(storybook@8.6.14) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.0) + version: 4.7.0(vite@6.3.5) '@xlsx/xlsx-populate': specifier: ^0.0.8 version: 0.0.8 @@ -1148,16 +1148,16 @@ importers: version: 10.4.21(postcss@8.5.6) eslint: specifier: ^9.17.0 - version: 9.37.0 + version: 9.33.0 eslint-plugin-react-hooks: specifier: ^5.0.0 - version: 5.2.0(eslint@9.37.0) + version: 5.2.0(eslint@9.33.0) eslint-plugin-react-refresh: specifier: ^0.4.16 - version: 0.4.24(eslint@9.37.0) + version: 0.4.20(eslint@9.33.0) eslint-plugin-storybook: specifier: ^0.11.2 - version: 0.11.6(eslint@9.37.0)(typescript@5.6.3) + version: 0.11.6(eslint@9.33.0)(typescript@5.6.3) globals: specifier: ^15.14.0 version: 15.15.0 @@ -1175,7 +1175,7 @@ importers: version: 8.6.14(prettier@3.6.2) tailwindcss: specifier: ^3.4.17 - version: 3.4.18 + version: 3.4.17 tsup: specifier: 8.3.6 version: 8.3.6(postcss@8.5.6)(typescript@5.6.3) @@ -1184,13 +1184,13 @@ importers: version: 5.6.3 typescript-eslint: specifier: ^8.18.2 - version: 8.46.1(eslint@9.37.0)(typescript@5.6.3) + version: 8.39.0(eslint@9.33.0)(typescript@5.6.3) vite: specifier: ^6.0.5 - version: 6.4.0(@types/node@22.18.11) + version: 6.3.5(@types/node@22.17.1) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.6.3)(vite@6.4.0) + version: 5.1.4(typescript@5.6.3)(vite@6.3.5) packages/common/components: dependencies: @@ -1208,64 +1208,64 @@ importers: version: 3.5.3(dnd-core@16.0.1)(react-dnd@16.0.1)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-accordion': specifier: ^1.2.3 - version: 1.2.12(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.2.11(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-checkbox': specifier: ^1.1.4 - version: 1.3.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.3.2(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-collapsible': specifier: ^1.1.3 - version: 1.1.12(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.1.11(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-dialog': specifier: ^1.1.6 - version: 1.1.15(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.1.14(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-dropdown-menu': specifier: ^2.1.6 - version: 2.1.16(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 2.1.15(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-icons': specifier: ^1.3.2 version: 1.3.2(react@18.3.1) '@radix-ui/react-label': specifier: ^2.1.2 - version: 2.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 2.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-popover': specifier: ^1.1.6 - version: 1.1.15(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.1.14(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-progress': specifier: ^1.1.2 - version: 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-radio-group': specifier: ^1.2.2 - version: 1.3.8(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.3.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-scroll-area': specifier: ^1.2.3 - version: 1.2.10(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.2.9(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-select': specifier: ^2.1.6 - version: 2.2.6(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 2.2.5(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-separator': specifier: ^1.1.2 - version: 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-slider': specifier: ^1.2.3 - version: 1.3.6(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.3.5(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-slot': specifier: ^1.1.2 - version: 1.2.3(@types/react@18.3.26)(react@18.3.1) + version: 1.2.3(@types/react@18.3.23)(react@18.3.1) '@radix-ui/react-switch': specifier: ^1.1.3 - version: 1.2.6(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.2.5(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-tabs': specifier: ^1.1.3 - version: 1.1.13(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.1.12(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-tooltip': specifier: ^1.1.8 - version: 1.2.8(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.2.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-visually-hidden': specifier: ^1.1.2 - version: 1.2.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) + version: 1.2.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) '@tanstack/react-query': specifier: ^5.67.1 - version: 5.90.5(react@18.3.1) + version: 5.84.2(react@18.3.1) '@tanstack/react-table': specifier: ^8.21.2 version: 8.21.3(react-dom@18.3.1)(react@18.3.1) @@ -1277,7 +1277,7 @@ importers: version: 1.8.1 chart.js: specifier: ^4.4.8 - version: 4.5.1 + version: 4.5.0 class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -1289,7 +1289,7 @@ importers: version: 3.6.0 dayjs: specifier: ^1.11.13 - version: 1.11.18 + version: 1.11.13 embla-carousel-autoplay: specifier: ^8.6.0 version: 8.6.0(embla-carousel@8.6.0) @@ -1304,13 +1304,13 @@ importers: version: 0.474.0(react@18.3.1) react-chartjs-2: specifier: ^5.3.0 - version: 5.3.0(chart.js@4.5.1)(react@18.3.1) + version: 5.3.0(chart.js@4.5.0)(react@18.3.1) react-day-picker: specifier: ^9.7.0 - version: 9.11.1(react@18.3.1) + version: 9.8.1(react@18.3.1) react-dnd: specifier: ^16.0.1 - version: 16.0.1(@types/node@22.18.11)(@types/react@18.3.26)(react@18.3.1) + version: 16.0.1(@types/node@22.17.1)(@types/react@18.3.23)(react@18.3.1) react-dnd-html5-backend: specifier: ^16.0.1 version: 16.0.1 @@ -1319,17 +1319,17 @@ importers: version: 3.3.1 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.18) + version: 1.0.7(tailwindcss@3.4.17) devDependencies: '@eslint/js': specifier: ^9.17.0 - version: 9.37.0 + version: 9.33.0 '@faker-js/faker': specifier: ^9.5.0 version: 9.9.0 '@storybook/addon-essentials': specifier: ^8.5.3 - version: 8.6.14(@types/react@18.3.26)(storybook@8.6.14) + version: 8.6.14(@types/react@18.3.23)(storybook@8.6.14) '@storybook/addon-interactions': specifier: ^8.5.3 version: 8.6.14(storybook@8.6.14) @@ -1350,7 +1350,7 @@ importers: version: 8.6.14(@storybook/test@8.6.14)(react-dom@18.3.1)(react@18.3.1)(storybook@8.6.14)(typescript@5.6.3) '@storybook/react-vite': specifier: ^8.5.3 - version: 8.6.14(@storybook/test@8.6.14)(react-dom@18.3.1)(react@18.3.1)(storybook@8.6.14)(typescript@5.6.3)(vite@6.4.0) + version: 8.6.14(@storybook/test@8.6.14)(react-dom@18.3.1)(react@18.3.1)(storybook@8.6.14)(typescript@5.6.3)(vite@6.3.5) '@storybook/test': specifier: ^8.5.3 version: 8.6.14(storybook@8.6.14) @@ -1359,25 +1359,25 @@ importers: version: 8.6.14(storybook@8.6.14) '@types/node': specifier: ^22.13.1 - version: 22.18.11 + version: 22.17.1 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.0) + version: 4.7.0(vite@6.3.5) autoprefixer: specifier: ^10.4.20 version: 10.4.21(postcss@8.5.6) eslint: specifier: ^9.17.0 - version: 9.37.0 + version: 9.33.0 eslint-plugin-react-hooks: specifier: ^5.0.0 - version: 5.2.0(eslint@9.37.0) + version: 5.2.0(eslint@9.33.0) eslint-plugin-react-refresh: specifier: ^0.4.16 - version: 0.4.24(eslint@9.37.0) + version: 0.4.20(eslint@9.33.0) eslint-plugin-storybook: specifier: ^0.11.2 - version: 0.11.6(eslint@9.37.0)(typescript@5.6.3) + version: 0.11.6(eslint@9.33.0)(typescript@5.6.3) globals: specifier: ^15.14.0 version: 15.15.0 @@ -1395,7 +1395,7 @@ importers: version: 8.6.14(prettier@3.6.2) tailwindcss: specifier: ^3.4.17 - version: 3.4.18 + version: 3.4.17 tsup: specifier: 8.3.6 version: 8.3.6(postcss@8.5.6)(typescript@5.6.3) @@ -1404,19 +1404,19 @@ importers: version: 5.6.3 typescript-eslint: specifier: ^8.18.2 - version: 8.46.1(eslint@9.37.0)(typescript@5.6.3) + version: 8.39.0(eslint@9.33.0)(typescript@5.6.3) vite: specifier: ^6.0.5 - version: 6.4.0(@types/node@22.18.11) + version: 6.3.5(@types/node@22.17.1) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.6.3)(vite@6.4.0) + version: 5.1.4(typescript@5.6.3)(vite@6.3.5) packages/common/config: devDependencies: eslint: specifier: ^9.8.0 - version: 9.37.0 + version: 9.33.0 tsup: specifier: ^8.2.3 version: 8.3.6(postcss@8.5.6)(typescript@5.6.3) @@ -1425,7 +1425,7 @@ importers: version: 5.6.3 vite: specifier: ^5.3.5 - version: 5.4.20(@types/node@22.18.11) + version: 5.4.19(@types/node@22.17.1) packages/common/network: dependencies: @@ -1441,21 +1441,28 @@ importers: devDependencies: '@types/node': specifier: ^20.11.19 - version: 20.19.22 + version: 20.19.10 typescript: specifier: ^5.3.3 version: 5.6.3 packages: - /@adobe/css-tools@4.4.4: - resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} + /@adobe/css-tools@4.4.3: + resolution: {integrity: sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==} dev: true /@alloc/quick-lru@5.2.0: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + /@babel/code-frame@7.27.1: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} @@ -1465,27 +1472,27 @@ packages: picocolors: 1.1.1 dev: true - /@babel/compat-data@7.28.4: - resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} + /@babel/compat-data@7.28.0: + resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.28.4: - resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} + /@babel/core@7.28.0: + resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} engines: {node: '>=6.9.0'} dependencies: + '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 + '@babel/generator': 7.28.0 '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) - '@babel/helpers': 7.28.4 - '@babel/parser': 7.28.4 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/helpers': 7.28.2 + '@babel/parser': 7.28.0 '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 - '@jridgewell/remapping': 2.3.5 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.2 convert-source-map: 2.0.0 - debug: 4.4.3 + debug: 4.4.1 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -1493,14 +1500,14 @@ packages: - supports-color dev: true - /@babel/generator@7.28.3: - resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} + /@babel/generator@7.28.0: + resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.2 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 jsesc: 3.1.0 dev: true @@ -1508,9 +1515,9 @@ packages: resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.28.4 + '@babel/compat-data': 7.28.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.26.3 + browserslist: 4.25.2 lru-cache: 5.1.1 semver: 6.3.1 dev: true @@ -1524,22 +1531,22 @@ packages: resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4): - resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + /@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0): + resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color dev: true @@ -1564,44 +1571,44 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helpers@7.28.4: - resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} + /@babel/helpers@7.28.2: + resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.28.4 + '@babel/types': 7.28.2 dev: true - /@babel/parser@7.28.4: - resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} + /@babel/parser@7.28.0: + resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.2 dev: true - /@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.4): + /@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.0): resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 dev: true - /@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.4): + /@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.0): resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 dev: true - /@babel/runtime@7.28.4: - resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} + /@babel/runtime@7.28.2: + resolution: {integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==} engines: {node: '>=6.9.0'} /@babel/template@7.27.2: @@ -1609,27 +1616,27 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.2 dev: true - /@babel/traverse@7.28.4: - resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} + /@babel/traverse@7.28.0: + resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 + '@babel/generator': 7.28.0 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.4 + '@babel/parser': 7.28.0 '@babel/template': 7.27.2 - '@babel/types': 7.28.4 - debug: 4.4.3 + '@babel/types': 7.28.2 + debug: 4.4.1 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.28.4: - resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} + /@babel/types@7.28.2: + resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.27.1 @@ -1651,8 +1658,8 @@ packages: sisteransi: 1.0.5 dev: true - /@date-fns/tz@1.4.1: - resolution: {integrity: sha512-P5LUNhtbj6YfI3iJjw5EL9eUAG6OitD0W3fWQcpQjDRc/QIsL0tRNuO1PcDvPccWL1fSTXXdE1ds+l95DV/OFA==} + /@date-fns/tz@1.3.1: + resolution: {integrity: sha512-LnBOyuj+piItX/D5BWBSckBsuZyOt7Jg2obGNiObq7qjl1A2/8F+i4RS8/MmkSdnw6hOe6afrJLCWrUWZw5Mlw==} dev: false /@dependents/detective-less@5.0.1: @@ -1663,24 +1670,24 @@ packages: node-source-walk: 7.0.1 dev: true - /@emnapi/core@1.5.0: - resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} + /@emnapi/core@1.4.5: + resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==} requiresBuild: true dependencies: - '@emnapi/wasi-threads': 1.1.0 + '@emnapi/wasi-threads': 1.0.4 tslib: 2.8.1 dev: true optional: true - /@emnapi/runtime@1.5.0: - resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} + /@emnapi/runtime@1.4.5: + resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} requiresBuild: true dependencies: tslib: 2.8.1 optional: true - /@emnapi/wasi-threads@1.1.0: - resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + /@emnapi/wasi-threads@1.0.4: + resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==} requiresBuild: true dependencies: tslib: 2.8.1 @@ -1705,8 +1712,8 @@ packages: dev: true optional: true - /@esbuild/aix-ppc64@0.25.11: - resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==} + /@esbuild/aix-ppc64@0.25.8: + resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -1731,8 +1738,8 @@ packages: dev: true optional: true - /@esbuild/android-arm64@0.25.11: - resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==} + /@esbuild/android-arm64@0.25.8: + resolution: {integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -1757,8 +1764,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.25.11: - resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==} + /@esbuild/android-arm@0.25.8: + resolution: {integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -1783,8 +1790,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.25.11: - resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==} + /@esbuild/android-x64@0.25.8: + resolution: {integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -1809,8 +1816,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.25.11: - resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==} + /@esbuild/darwin-arm64@0.25.8: + resolution: {integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -1835,8 +1842,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.25.11: - resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==} + /@esbuild/darwin-x64@0.25.8: + resolution: {integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -1861,8 +1868,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.25.11: - resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==} + /@esbuild/freebsd-arm64@0.25.8: + resolution: {integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -1887,8 +1894,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.25.11: - resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==} + /@esbuild/freebsd-x64@0.25.8: + resolution: {integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -1913,8 +1920,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.25.11: - resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==} + /@esbuild/linux-arm64@0.25.8: + resolution: {integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -1939,8 +1946,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.25.11: - resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==} + /@esbuild/linux-arm@0.25.8: + resolution: {integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -1965,8 +1972,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.25.11: - resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==} + /@esbuild/linux-ia32@0.25.8: + resolution: {integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -1991,8 +1998,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.25.11: - resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==} + /@esbuild/linux-loong64@0.25.8: + resolution: {integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -2017,8 +2024,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.25.11: - resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==} + /@esbuild/linux-mips64el@0.25.8: + resolution: {integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -2043,8 +2050,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.25.11: - resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==} + /@esbuild/linux-ppc64@0.25.8: + resolution: {integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -2069,8 +2076,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.25.11: - resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==} + /@esbuild/linux-riscv64@0.25.8: + resolution: {integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -2095,8 +2102,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.25.11: - resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==} + /@esbuild/linux-s390x@0.25.8: + resolution: {integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -2121,8 +2128,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.25.11: - resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==} + /@esbuild/linux-x64@0.25.8: + resolution: {integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -2138,8 +2145,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-arm64@0.25.11: - resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==} + /@esbuild/netbsd-arm64@0.25.8: + resolution: {integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -2164,8 +2171,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.25.11: - resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==} + /@esbuild/netbsd-x64@0.25.8: + resolution: {integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -2181,8 +2188,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-arm64@0.25.11: - resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==} + /@esbuild/openbsd-arm64@0.25.8: + resolution: {integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -2207,16 +2214,16 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.25.11: - resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==} + /@esbuild/openbsd-x64@0.25.8: + resolution: {integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] requiresBuild: true optional: true - /@esbuild/openharmony-arm64@0.25.11: - resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==} + /@esbuild/openharmony-arm64@0.25.8: + resolution: {integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] @@ -2241,8 +2248,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.25.11: - resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==} + /@esbuild/sunos-x64@0.25.8: + resolution: {integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -2267,8 +2274,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.25.11: - resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==} + /@esbuild/win32-arm64@0.25.8: + resolution: {integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -2293,8 +2300,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.25.11: - resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==} + /@esbuild/win32-ia32@0.25.8: + resolution: {integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -2319,21 +2326,21 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.25.11: - resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==} + /@esbuild/win32-x64@0.25.8: + resolution: {integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==} engines: {node: '>=18'} cpu: [x64] os: [win32] requiresBuild: true optional: true - /@eslint-community/eslint-utils@4.9.0(eslint@9.37.0): - resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} + /@eslint-community/eslint-utils@4.7.0(eslint@9.33.0): + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 9.37.0 + eslint: 9.33.0 eslint-visitor-keys: 3.4.3 dev: true @@ -2347,21 +2354,19 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.3 + debug: 4.4.1 minimatch: 3.1.2 transitivePeerDependencies: - supports-color dev: true - /@eslint/config-helpers@0.4.0: - resolution: {integrity: sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==} + /@eslint/config-helpers@0.3.1: + resolution: {integrity: sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@eslint/core': 0.16.0 dev: true - /@eslint/core@0.16.0: - resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} + /@eslint/core@0.15.2: + resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: '@types/json-schema': 7.0.15 @@ -2372,7 +2377,7 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: ajv: 6.12.6 - debug: 4.4.3 + debug: 4.4.1 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -2384,8 +2389,8 @@ packages: - supports-color dev: true - /@eslint/js@9.37.0: - resolution: {integrity: sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==} + /@eslint/js@9.33.0: + resolution: {integrity: sha512-5K1/mKhWaMfreBGJTwval43JJmkip0RmM+3+IuqupeSKNC/Th2Kc7ucaq5ovTSra/OOKB9c58CGSz3QMVbWt0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true @@ -2394,11 +2399,11 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /@eslint/plugin-kit@0.4.0: - resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==} + /@eslint/plugin-kit@0.3.5: + resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - '@eslint/core': 0.16.0 + '@eslint/core': 0.15.2 levn: 0.4.1 dev: true @@ -2410,7 +2415,7 @@ packages: /@feature-sliced/filesystem@3.0.1: resolution: {integrity: sha512-RlrfjhaX81o6E5OBc2A0tOLG/cZSOvcM+FpPlzEhTraIzBz8JmhxgwrYQbafMqiC+TOrqhd2pTLkU7PFQG1QdQ==} dependencies: - typescript: 5.9.3 + typescript: 5.9.2 dev: true /@feature-sliced/steiger-plugin@0.5.7(typescript@5.6.3): @@ -2433,20 +2438,20 @@ packages: '@floating-ui/utils': 0.2.10 dev: false - /@floating-ui/dom@1.7.4: - resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==} + /@floating-ui/dom@1.7.3: + resolution: {integrity: sha512-uZA413QEpNuhtb3/iIKoYMSK07keHPYeXF02Zhd6e213j+d1NamLix/mCLxBUDW/Gx52sPH2m+chlUsyaBs/Ag==} dependencies: '@floating-ui/core': 1.7.3 '@floating-ui/utils': 0.2.10 dev: false - /@floating-ui/react-dom@2.1.6(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==} + /@floating-ui/react-dom@2.1.5(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-HDO/1/1oH9fjj4eLgegrlH3dklZpHtUYYFiVwMUwfGvk9jWDRWqkklA2/NFScknrcNSspbV868WjXORvreDX+Q==} peerDependencies: react: ^18.3.1 react-dom: ^18.3.1 dependencies: - '@floating-ui/dom': 1.7.4 + '@floating-ui/dom': 1.7.3 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false @@ -2455,8 +2460,8 @@ packages: resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} dev: false - /@fontsource-variable/noto-sans-kr@5.2.9: - resolution: {integrity: sha512-g1BnJdJbnAgRUP8YxyPIm8npZVUbtt6VgtLnkGR7poa/RVbVGd27i+9138DmwRvtbKhJG1fPLQ/V3BonvFykRQ==} + /@fontsource-variable/noto-sans-kr@5.2.6: + resolution: {integrity: sha512-TxQjtsKPfyWv1Y2MmMlvURrHi0zDCix7XdCkvWiZD9YV03lDx0nW87wbCfuygLzJmvrNj0LplVjnnbyvtBUgog==} dev: false /@frontend-opensource/use-react-hooks@1.1.4: @@ -2511,13 +2516,13 @@ packages: '@fullcalendar/daygrid': 6.1.19(@fullcalendar/core@6.1.19) dev: false - /@hookform/resolvers@4.1.3(react-hook-form@7.65.0): + /@hookform/resolvers@4.1.3(react-hook-form@7.62.0): resolution: {integrity: sha512-Jsv6UOWYTrEFJ/01ZrnwVXs7KDvP8XIo115i++5PWvNkNvkrsTfGiLS6w+eJ57CYtUtDQalUWovCZDHFJ8u1VQ==} peerDependencies: react-hook-form: ^7.0.0 dependencies: '@standard-schema/utils': 0.3.0 - react-hook-form: 7.65.0(react@18.3.1) + react-hook-form: 7.62.0(react@18.3.1) dev: false /@humanfs/core@0.19.1: @@ -2525,12 +2530,12 @@ packages: engines: {node: '>=18.18.0'} dev: true - /@humanfs/node@0.16.7: - resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} + /@humanfs/node@0.16.6: + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} engines: {node: '>=18.18.0'} dependencies: '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.4.3 + '@humanwhocodes/retry': 0.3.1 dev: true /@humanwhocodes/module-importer@1.0.1: @@ -2538,18 +2543,16 @@ packages: engines: {node: '>=12.22'} dev: true + /@humanwhocodes/retry@0.3.1: + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + dev: true + /@humanwhocodes/retry@0.4.3: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} dev: true - /@img/colour@1.0.0: - resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} - engines: {node: '>=18'} - requiresBuild: true - dev: false - optional: true - /@img/sharp-darwin-arm64@0.33.5: resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -2561,14 +2564,14 @@ packages: dev: false optional: true - /@img/sharp-darwin-arm64@0.34.4: - resolution: {integrity: sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA==} + /@img/sharp-darwin-arm64@0.34.3: + resolution: {integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] requiresBuild: true optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.3 + '@img/sharp-libvips-darwin-arm64': 1.2.0 dev: false optional: true @@ -2583,14 +2586,14 @@ packages: dev: false optional: true - /@img/sharp-darwin-x64@0.34.4: - resolution: {integrity: sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg==} + /@img/sharp-darwin-x64@0.34.3: + resolution: {integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] requiresBuild: true optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.3 + '@img/sharp-libvips-darwin-x64': 1.2.0 dev: false optional: true @@ -2602,8 +2605,8 @@ packages: dev: false optional: true - /@img/sharp-libvips-darwin-arm64@1.2.3: - resolution: {integrity: sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw==} + /@img/sharp-libvips-darwin-arm64@1.2.0: + resolution: {integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==} cpu: [arm64] os: [darwin] requiresBuild: true @@ -2618,8 +2621,8 @@ packages: dev: false optional: true - /@img/sharp-libvips-darwin-x64@1.2.3: - resolution: {integrity: sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA==} + /@img/sharp-libvips-darwin-x64@1.2.0: + resolution: {integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==} cpu: [x64] os: [darwin] requiresBuild: true @@ -2634,8 +2637,8 @@ packages: dev: false optional: true - /@img/sharp-libvips-linux-arm64@1.2.3: - resolution: {integrity: sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ==} + /@img/sharp-libvips-linux-arm64@1.2.0: + resolution: {integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==} cpu: [arm64] os: [linux] requiresBuild: true @@ -2650,16 +2653,16 @@ packages: dev: false optional: true - /@img/sharp-libvips-linux-arm@1.2.3: - resolution: {integrity: sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA==} + /@img/sharp-libvips-linux-arm@1.2.0: + resolution: {integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==} cpu: [arm] os: [linux] requiresBuild: true dev: false optional: true - /@img/sharp-libvips-linux-ppc64@1.2.3: - resolution: {integrity: sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg==} + /@img/sharp-libvips-linux-ppc64@1.2.0: + resolution: {integrity: sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==} cpu: [ppc64] os: [linux] requiresBuild: true @@ -2674,8 +2677,8 @@ packages: dev: false optional: true - /@img/sharp-libvips-linux-s390x@1.2.3: - resolution: {integrity: sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w==} + /@img/sharp-libvips-linux-s390x@1.2.0: + resolution: {integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==} cpu: [s390x] os: [linux] requiresBuild: true @@ -2690,8 +2693,8 @@ packages: dev: false optional: true - /@img/sharp-libvips-linux-x64@1.2.3: - resolution: {integrity: sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg==} + /@img/sharp-libvips-linux-x64@1.2.0: + resolution: {integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==} cpu: [x64] os: [linux] requiresBuild: true @@ -2706,8 +2709,8 @@ packages: dev: false optional: true - /@img/sharp-libvips-linuxmusl-arm64@1.2.3: - resolution: {integrity: sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw==} + /@img/sharp-libvips-linuxmusl-arm64@1.2.0: + resolution: {integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==} cpu: [arm64] os: [linux] requiresBuild: true @@ -2722,8 +2725,8 @@ packages: dev: false optional: true - /@img/sharp-libvips-linuxmusl-x64@1.2.3: - resolution: {integrity: sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g==} + /@img/sharp-libvips-linuxmusl-x64@1.2.0: + resolution: {integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==} cpu: [x64] os: [linux] requiresBuild: true @@ -2741,14 +2744,14 @@ packages: dev: false optional: true - /@img/sharp-linux-arm64@0.34.4: - resolution: {integrity: sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ==} + /@img/sharp-linux-arm64@0.34.3: + resolution: {integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] requiresBuild: true optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.3 + '@img/sharp-libvips-linux-arm64': 1.2.0 dev: false optional: true @@ -2763,25 +2766,25 @@ packages: dev: false optional: true - /@img/sharp-linux-arm@0.34.4: - resolution: {integrity: sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA==} + /@img/sharp-linux-arm@0.34.3: + resolution: {integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] requiresBuild: true optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.3 + '@img/sharp-libvips-linux-arm': 1.2.0 dev: false optional: true - /@img/sharp-linux-ppc64@0.34.4: - resolution: {integrity: sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ==} + /@img/sharp-linux-ppc64@0.34.3: + resolution: {integrity: sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ppc64] os: [linux] requiresBuild: true optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.3 + '@img/sharp-libvips-linux-ppc64': 1.2.0 dev: false optional: true @@ -2796,14 +2799,14 @@ packages: dev: false optional: true - /@img/sharp-linux-s390x@0.34.4: - resolution: {integrity: sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw==} + /@img/sharp-linux-s390x@0.34.3: + resolution: {integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] requiresBuild: true optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.3 + '@img/sharp-libvips-linux-s390x': 1.2.0 dev: false optional: true @@ -2818,14 +2821,14 @@ packages: dev: false optional: true - /@img/sharp-linux-x64@0.34.4: - resolution: {integrity: sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A==} + /@img/sharp-linux-x64@0.34.3: + resolution: {integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] requiresBuild: true optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.3 + '@img/sharp-libvips-linux-x64': 1.2.0 dev: false optional: true @@ -2840,14 +2843,14 @@ packages: dev: false optional: true - /@img/sharp-linuxmusl-arm64@0.34.4: - resolution: {integrity: sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA==} + /@img/sharp-linuxmusl-arm64@0.34.3: + resolution: {integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] requiresBuild: true optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.3 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 dev: false optional: true @@ -2862,14 +2865,14 @@ packages: dev: false optional: true - /@img/sharp-linuxmusl-x64@0.34.4: - resolution: {integrity: sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg==} + /@img/sharp-linuxmusl-x64@0.34.3: + resolution: {integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] requiresBuild: true optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.3 + '@img/sharp-libvips-linuxmusl-x64': 1.2.0 dev: false optional: true @@ -2879,22 +2882,22 @@ packages: cpu: [wasm32] requiresBuild: true dependencies: - '@emnapi/runtime': 1.5.0 + '@emnapi/runtime': 1.4.5 dev: false optional: true - /@img/sharp-wasm32@0.34.4: - resolution: {integrity: sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA==} + /@img/sharp-wasm32@0.34.3: + resolution: {integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] requiresBuild: true dependencies: - '@emnapi/runtime': 1.5.0 + '@emnapi/runtime': 1.4.5 dev: false optional: true - /@img/sharp-win32-arm64@0.34.4: - resolution: {integrity: sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA==} + /@img/sharp-win32-arm64@0.34.3: + resolution: {integrity: sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [win32] @@ -2911,8 +2914,8 @@ packages: dev: false optional: true - /@img/sharp-win32-ia32@0.34.4: - resolution: {integrity: sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw==} + /@img/sharp-win32-ia32@0.34.3: + resolution: {integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] @@ -2929,8 +2932,8 @@ packages: dev: false optional: true - /@img/sharp-win32-x64@0.34.4: - resolution: {integrity: sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig==} + /@img/sharp-win32-x64@0.34.3: + resolution: {integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] @@ -2944,7 +2947,7 @@ packages: dependencies: string-width: 5.1.2 string-width-cjs: /string-width@4.2.3 - strip-ansi: 7.1.2 + strip-ansi: 7.1.0 strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: /wrap-ansi@7.0.0 @@ -2956,7 +2959,7 @@ packages: minipass: 7.1.2 dev: false - /@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.6.3)(vite@6.4.0): + /@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.6.3)(vite@6.3.5): resolution: {integrity: sha512-qYDdL7fPwLRI+bJNurVcis+tNgJmvWjH4YTBGXTA8xMuxFrnAz6E5o35iyzyKbq5J5Lr8mJGfrR5GXl+WGwhgQ==} peerDependencies: typescript: '>= 4.3.x' @@ -2969,39 +2972,33 @@ packages: magic-string: 0.27.0 react-docgen-typescript: 2.4.0(typescript@5.6.3) typescript: 5.6.3 - vite: 6.4.0(@types/node@22.18.11) + vite: 6.3.5(@types/node@22.17.1) dev: true - /@jridgewell/gen-mapping@0.3.13: - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + /@jridgewell/gen-mapping@0.3.12: + resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - /@jridgewell/remapping@2.3.5: - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/sourcemap-codec': 1.5.4 + '@jridgewell/trace-mapping': 0.3.29 /@jridgewell/resolve-uri@3.1.2: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - /@jridgewell/source-map@0.3.11: - resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} + /@jridgewell/source-map@0.3.10: + resolution: {integrity: sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==} dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 - /@jridgewell/sourcemap-codec@1.5.5: - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + /@jridgewell/sourcemap-codec@1.5.4: + resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} - /@jridgewell/trace-mapping@0.3.31: - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + /@jridgewell/trace-mapping@0.3.29: + resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.5.4 /@juggle/resize-observer@3.4.0: resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} @@ -3038,14 +3035,14 @@ packages: resolution: {integrity: sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==} dev: false - /@mdx-js/react@3.1.1(@types/react@18.3.26)(react@18.3.1): - resolution: {integrity: sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==} + /@mdx-js/react@3.1.0(@types/react@18.3.23)(react@18.3.1): + resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==} peerDependencies: '@types/react': ^18.3.18 react: ^18.3.1 dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.3.26 + '@types/react': 18.3.23 react: 18.3.1 dev: true @@ -3060,7 +3057,7 @@ packages: dnd-multi-backend: 8.1.2(dnd-core@16.0.1) framer-motion: 11.18.2(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 - react-dnd: 16.0.1(@types/node@22.18.11)(@types/react@18.3.26)(react@18.3.1) + react-dnd: 16.0.1(@types/node@22.17.1)(@types/react@18.3.23)(react@18.3.1) react-dnd-html5-backend: 16.0.1 react-dnd-touch-backend: 16.0.1 react-dom: 18.3.1(react@18.3.1) @@ -3081,7 +3078,7 @@ packages: dnd-multi-backend: 8.1.2(dnd-core@16.0.1) framer-motion: 11.18.2(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 - react-dnd: 16.0.1(@types/node@22.18.11)(@types/react@18.3.26)(react@18.3.1) + react-dnd: 16.0.1(@types/node@22.17.1)(@types/react@18.3.23)(react@18.3.1) react-dnd-html5-backend: 16.0.1 react-dnd-touch-backend: 16.0.1 react-dom: 18.3.1(react@18.3.1) @@ -3095,9 +3092,9 @@ packages: resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} requiresBuild: true dependencies: - '@emnapi/core': 1.5.0 - '@emnapi/runtime': 1.5.0 - '@tybys/wasm-util': 0.10.1 + '@emnapi/core': 1.4.5 + '@emnapi/runtime': 1.4.5 + '@tybys/wasm-util': 0.10.0 dev: true optional: true @@ -3364,8 +3361,8 @@ packages: engines: {node: '>=12.4.0'} dev: true - /@petamoriken/float16@3.9.3: - resolution: {integrity: sha512-8awtpHXCx/bNpFt4mt2xdkgtgVvKqty8VbjHI/WWWQuEw+KLzFot3f4+LkQY9YmOtq7A5GdOnqoIC8Pdygjk2g==} + /@petamoriken/float16@3.9.2: + resolution: {integrity: sha512-VgffxawQde93xKxT3qap3OH+meZf7VaSB5Sqd4Rqc+FP5alWbpOyan/7tRbOAvynjpG3GpdtAuGU/NdhQpmrog==} dev: false /@pkgjs/parseargs@0.11.0: @@ -3378,12 +3375,12 @@ packages: resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} dev: false - /@radix-ui/primitive@1.1.3: - resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + /@radix-ui/primitive@1.1.2: + resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} dev: false - /@radix-ui/react-accordion@1.2.12(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==} + /@radix-ui/react-accordion@1.2.11(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-l3W5D54emV2ues7jjeG1xcyN7S3jnK3zE2zHqgn0CmMsy9lNJwmgcrmaxS+7ipw15FAivzKNzH3d5EcGoFKw0A==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -3395,22 +3392,22 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collapsible': 1.1.11(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-arrow@1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-arrow@1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} peerDependencies: '@types/react': ^18.3.18 @@ -3423,15 +3420,15 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-checkbox@1.3.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==} + /@radix-ui/react-checkbox@1.3.2(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-yd+dI56KZqawxKZrJ31eENUwqc1QSqg4OZ15rybGjF2ZNwMO+wCyHzAVLRp9qoYJf7kYy0YpZ2b0JCzJ42HZpA==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -3443,22 +3440,22 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-collapsible@1.1.12(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==} + /@radix-ui/react-collapsible@1.1.11(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-2qrRsVGSCYasSz1RFOorXwl0H7g7J1frQtgpQgYrt+MOidtPAINHn9CPovQXb83r8ahapdx3Tu0fa/pdFFSdPg==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -3470,21 +3467,21 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-collection@1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-collection@1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} peerDependencies: '@types/react': ^18.3.18 @@ -3497,17 +3494,17 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-compose-refs@1.1.2(@types/react@18.3.26)(react@18.3.1): + /@radix-ui/react-compose-refs@1.1.2(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} peerDependencies: '@types/react': ^18.3.18 @@ -3516,11 +3513,11 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.26 + '@types/react': 18.3.23 react: 18.3.1 dev: false - /@radix-ui/react-context@1.1.2(@types/react@18.3.26)(react@18.3.1): + /@radix-ui/react-context@1.1.2(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: '@types/react': ^18.3.18 @@ -3529,12 +3526,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.26 + '@types/react': 18.3.23 react: 18.3.1 dev: false - /@radix-ui/react-dialog@1.1.15(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} + /@radix-ui/react-dialog@1.1.14(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -3546,27 +3543,27 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.1(@types/react@18.3.26)(react@18.3.1) + react-remove-scroll: 2.7.1(@types/react@18.3.23)(react@18.3.1) dev: false - /@radix-ui/react-direction@1.1.1(@types/react@18.3.26)(react@18.3.1): + /@radix-ui/react-direction@1.1.1(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} peerDependencies: '@types/react': ^18.3.18 @@ -3575,12 +3572,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.26 + '@types/react': 18.3.23 react: 18.3.1 dev: false - /@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} + /@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -3592,19 +3589,19 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} + /@radix-ui/react-dropdown-menu@2.1.15(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-mIBnOjgwo9AH3FyKaSWoSu/dYj6VdhJ7frEPiGTeXCdUFHjl9h3mFh2wwhEtINOmYXWhdpf1rY2minFsmaNgVQ==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -3616,21 +3613,21 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-menu': 2.1.15(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-focus-guards@1.1.3(@types/react@18.3.26)(react@18.3.1): - resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} + /@radix-ui/react-focus-guards@1.1.2(@types/react@18.3.23)(react@18.3.1): + resolution: {integrity: sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==} peerDependencies: '@types/react': ^18.3.18 react: ^18.3.1 @@ -3638,11 +3635,11 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.26 + '@types/react': 18.3.23 react: 18.3.1 dev: false - /@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} peerDependencies: '@types/react': ^18.3.18 @@ -3655,11 +3652,11 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false @@ -3672,7 +3669,7 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-id@1.1.1(@types/react@18.3.26)(react@18.3.1): + /@radix-ui/react-id@1.1.1(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} peerDependencies: '@types/react': ^18.3.18 @@ -3681,12 +3678,12 @@ packages: '@types/react': optional: true dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 react: 18.3.1 dev: false - /@radix-ui/react-label@2.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-label@2.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==} peerDependencies: '@types/react': ^18.3.18 @@ -3699,15 +3696,15 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-menu@2.1.16(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} + /@radix-ui/react-menu@2.1.15(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-tVlmA3Vb9n8SZSd+YSbuFR66l87Wiy4du+YE+0hzKQEANA+7cWKH1WgqcEX4pXqxUFQKrWQGHdvEfw00TjFiew==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -3719,32 +3716,32 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.1(@types/react@18.3.26)(react@18.3.1) + react-remove-scroll: 2.7.1(@types/react@18.3.23)(react@18.3.1) dev: false - /@radix-ui/react-popover@1.1.15(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==} + /@radix-ui/react-popover@1.1.14(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-ODz16+1iIbGUfFEfKx2HTPKizg2MN39uIOV8MXeHnmdd3i/N9Wt7vU46wbHsqA0xoaQyXVcs0KIlBdOA2Y95bw==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -3756,29 +3753,29 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.1(@types/react@18.3.26)(react@18.3.1) + react-remove-scroll: 2.7.1(@types/react@18.3.23)(react@18.3.1) dev: false - /@radix-ui/react-popper@1.2.8(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} + /@radix-ui/react-popper@1.2.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -3790,23 +3787,23 @@ packages: '@types/react-dom': optional: true dependencies: - '@floating-ui/react-dom': 2.1.6(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.26)(react@18.3.1) + '@floating-ui/react-dom': 2.1.5(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.23)(react@18.3.1) '@radix-ui/rect': 1.1.1 - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-portal@1.1.9(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-portal@1.1.9(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} peerDependencies: '@types/react': ^18.3.18 @@ -3819,16 +3816,16 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-presence@1.1.5(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + /@radix-ui/react-presence@1.1.4(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -3840,15 +3837,15 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-primitive@2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-primitive@2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} peerDependencies: '@types/react': ^18.3.18 @@ -3861,14 +3858,14 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-progress@1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-progress@1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==} peerDependencies: '@types/react': ^18.3.18 @@ -3881,16 +3878,16 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-radio-group@1.3.8(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==} + /@radix-ui/react-radio-group@1.3.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-9w5XhD0KPOrm92OTTE0SysH3sYzHsSTHNvZgUBo/VZ80VdYyB5RneDbc0dKpURS24IxkoFRu/hI0i4XyfFwY6g==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -3902,24 +3899,24 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-roving-focus@1.1.11(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} + /@radix-ui/react-roving-focus@1.1.10(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -3931,23 +3928,23 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-scroll-area@1.2.10(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==} + /@radix-ui/react-scroll-area@1.2.9(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-YSjEfBXnhUELsO2VzjdtYYD4CfQjvao+lhhrX5XsHD7/cyUNzljF1FHEbgTPN7LH2MClfwRMIsYlqTYpKTTe2A==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -3960,22 +3957,22 @@ packages: optional: true dependencies: '@radix-ui/number': 1.1.1 - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-select@2.2.6(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==} + /@radix-ui/react-select@2.2.5(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-HnMTdXEVuuyzx63ME0ut4+sEMYW6oouHWNGUZc7ddvUWIcfCva/AMoqEW/3wnEllriMWBa0RHspCYnfCWJQYmA==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -3988,33 +3985,33 @@ packages: optional: true dependencies: '@radix-ui/number': 1.1.1 - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.1(@types/react@18.3.26)(react@18.3.1) + react-remove-scroll: 2.7.1(@types/react@18.3.23)(react@18.3.1) dev: false - /@radix-ui/react-separator@1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-separator@1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==} peerDependencies: '@types/react': ^18.3.18 @@ -4027,15 +4024,15 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-slider@1.3.6(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==} + /@radix-ui/react-slider@1.3.5(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-rkfe2pU2NBAYfGaxa3Mqosi7VZEWX5CxKaanRv0vZd4Zhl9fvQrg0VM93dv3xGLGfrHuoTRF3JXH8nb9g+B3fw==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -4048,23 +4045,23 @@ packages: optional: true dependencies: '@radix-ui/number': 1.1.1 - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-slot@1.2.3(@types/react@18.3.26)(react@18.3.1): + /@radix-ui/react-slot@1.2.3(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} peerDependencies: '@types/react': ^18.3.18 @@ -4073,13 +4070,13 @@ packages: '@types/react': optional: true dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 react: 18.3.1 dev: false - /@radix-ui/react-switch@1.2.6(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==} + /@radix-ui/react-switch@1.2.5(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-5ijLkak6ZMylXsaImpZ8u4Rlf5grRmoc0p0QeX9VJtlrM4f5m3nCTX8tWga/zOA8PZYIR/t0p2Mnvd7InrJ6yQ==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -4091,21 +4088,21 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-tabs@1.1.13(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} + /@radix-ui/react-tabs@1.1.12(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-GTVAlRVrQrSw3cEARM0nAx73ixrWDPNZAruETn3oHCNP6SbZ/hNxdxp+u7VkIEv3/sFoLq1PfcHrl7Pnp0CDpw==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -4117,22 +4114,22 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-tooltip@1.2.8(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} + /@radix-ui/react-tooltip@1.2.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==} peerDependencies: '@types/react': ^18.3.18 '@types/react-dom': ^18.3.5 @@ -4144,25 +4141,25 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.3.26)(react@18.3.1): + /@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} peerDependencies: '@types/react': ^18.3.18 @@ -4171,11 +4168,11 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.26 + '@types/react': 18.3.23 react: 18.3.1 dev: false - /@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.26)(react@18.3.1): + /@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} peerDependencies: '@types/react': ^18.3.18 @@ -4184,13 +4181,13 @@ packages: '@types/react': optional: true dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.3.26)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.3.23)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 react: 18.3.1 dev: false - /@radix-ui/react-use-effect-event@0.0.2(@types/react@18.3.26)(react@18.3.1): + /@radix-ui/react-use-effect-event@0.0.2(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} peerDependencies: '@types/react': ^18.3.18 @@ -4199,12 +4196,12 @@ packages: '@types/react': optional: true dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 react: 18.3.1 dev: false - /@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.3.26)(react@18.3.1): + /@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} peerDependencies: '@types/react': ^18.3.18 @@ -4213,12 +4210,12 @@ packages: '@types/react': optional: true dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 react: 18.3.1 dev: false - /@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.3.26)(react@18.3.1): + /@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} peerDependencies: '@types/react': ^18.3.18 @@ -4227,11 +4224,11 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.26 + '@types/react': 18.3.23 react: 18.3.1 dev: false - /@radix-ui/react-use-previous@1.1.1(@types/react@18.3.26)(react@18.3.1): + /@radix-ui/react-use-previous@1.1.1(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} peerDependencies: '@types/react': ^18.3.18 @@ -4240,11 +4237,11 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.26 + '@types/react': 18.3.23 react: 18.3.1 dev: false - /@radix-ui/react-use-rect@1.1.1(@types/react@18.3.26)(react@18.3.1): + /@radix-ui/react-use-rect@1.1.1(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} peerDependencies: '@types/react': ^18.3.18 @@ -4254,11 +4251,11 @@ packages: optional: true dependencies: '@radix-ui/rect': 1.1.1 - '@types/react': 18.3.26 + '@types/react': 18.3.23 react: 18.3.1 dev: false - /@radix-ui/react-use-size@1.1.1(@types/react@18.3.26)(react@18.3.1): + /@radix-ui/react-use-size@1.1.1(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} peerDependencies: '@types/react': ^18.3.18 @@ -4267,12 +4264,12 @@ packages: '@types/react': optional: true dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.26)(react@18.3.1) - '@types/react': 18.3.26 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1) + '@types/react': 18.3.23 react: 18.3.1 dev: false - /@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} peerDependencies: '@types/react': ^18.3.18 @@ -4285,9 +4282,9 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.26)(react-dom@18.3.1)(react@18.3.1) - '@types/react': 18.3.26 - '@types/react-dom': 18.3.7(@types/react@18.3.26) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7)(@types/react@18.3.23)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false @@ -4312,8 +4309,8 @@ packages: resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} dev: true - /@rollup/pluginutils@5.3.0: - resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} + /@rollup/pluginutils@5.2.0: + resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -4326,155 +4323,141 @@ packages: picomatch: 4.0.3 dev: true - /@rollup/rollup-android-arm-eabi@4.52.4: - resolution: {integrity: sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==} + /@rollup/rollup-android-arm-eabi@4.46.2: + resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==} cpu: [arm] os: [android] requiresBuild: true optional: true - /@rollup/rollup-android-arm64@4.52.4: - resolution: {integrity: sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==} + /@rollup/rollup-android-arm64@4.46.2: + resolution: {integrity: sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==} cpu: [arm64] os: [android] requiresBuild: true optional: true - /@rollup/rollup-darwin-arm64@4.52.4: - resolution: {integrity: sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==} + /@rollup/rollup-darwin-arm64@4.46.2: + resolution: {integrity: sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@rollup/rollup-darwin-x64@4.52.4: - resolution: {integrity: sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==} + /@rollup/rollup-darwin-x64@4.46.2: + resolution: {integrity: sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@rollup/rollup-freebsd-arm64@4.52.4: - resolution: {integrity: sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==} + /@rollup/rollup-freebsd-arm64@4.46.2: + resolution: {integrity: sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==} cpu: [arm64] os: [freebsd] requiresBuild: true optional: true - /@rollup/rollup-freebsd-x64@4.52.4: - resolution: {integrity: sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==} + /@rollup/rollup-freebsd-x64@4.46.2: + resolution: {integrity: sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==} cpu: [x64] os: [freebsd] requiresBuild: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.52.4: - resolution: {integrity: sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.46.2: + resolution: {integrity: sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm-musleabihf@4.52.4: - resolution: {integrity: sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==} + /@rollup/rollup-linux-arm-musleabihf@4.46.2: + resolution: {integrity: sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.52.4: - resolution: {integrity: sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==} + /@rollup/rollup-linux-arm64-gnu@4.46.2: + resolution: {integrity: sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-musl@4.52.4: - resolution: {integrity: sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==} + /@rollup/rollup-linux-arm64-musl@4.46.2: + resolution: {integrity: sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-loong64-gnu@4.52.4: - resolution: {integrity: sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==} + /@rollup/rollup-linux-loongarch64-gnu@4.46.2: + resolution: {integrity: sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==} cpu: [loong64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-ppc64-gnu@4.52.4: - resolution: {integrity: sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==} + /@rollup/rollup-linux-ppc64-gnu@4.46.2: + resolution: {integrity: sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==} cpu: [ppc64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.52.4: - resolution: {integrity: sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==} + /@rollup/rollup-linux-riscv64-gnu@4.46.2: + resolution: {integrity: sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==} cpu: [riscv64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-riscv64-musl@4.52.4: - resolution: {integrity: sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==} + /@rollup/rollup-linux-riscv64-musl@4.46.2: + resolution: {integrity: sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==} cpu: [riscv64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-s390x-gnu@4.52.4: - resolution: {integrity: sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==} + /@rollup/rollup-linux-s390x-gnu@4.46.2: + resolution: {integrity: sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==} cpu: [s390x] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-x64-gnu@4.52.4: - resolution: {integrity: sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==} + /@rollup/rollup-linux-x64-gnu@4.46.2: + resolution: {integrity: sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-x64-musl@4.52.4: - resolution: {integrity: sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==} + /@rollup/rollup-linux-x64-musl@4.46.2: + resolution: {integrity: sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-openharmony-arm64@4.52.4: - resolution: {integrity: sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==} - cpu: [arm64] - os: [openharmony] - requiresBuild: true - optional: true - - /@rollup/rollup-win32-arm64-msvc@4.52.4: - resolution: {integrity: sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==} + /@rollup/rollup-win32-arm64-msvc@4.46.2: + resolution: {integrity: sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.52.4: - resolution: {integrity: sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==} + /@rollup/rollup-win32-ia32-msvc@4.46.2: + resolution: {integrity: sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@rollup/rollup-win32-x64-gnu@4.52.4: - resolution: {integrity: sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==} - cpu: [x64] - os: [win32] - requiresBuild: true - optional: true - - /@rollup/rollup-win32-x64-msvc@4.52.4: - resolution: {integrity: sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==} + /@rollup/rollup-win32-x64-msvc@4.46.2: + resolution: {integrity: sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==} cpu: [x64] os: [win32] requiresBuild: true @@ -4484,8 +4467,8 @@ packages: resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} dev: true - /@rushstack/eslint-patch@1.14.0: - resolution: {integrity: sha512-WJFej426qe4RWOm9MMtP4V3CV4AucXolQty+GRgAWLgQXmpCuwzs7hEpxxhSc/znXUSxum9d/P/32MW0FlAAlA==} + /@rushstack/eslint-patch@1.12.0: + resolution: {integrity: sha512-5EwMtOqvJMMa3HbmxLlF74e+3/HhwBTMcvt3nqVJgGCozO6hzIPOBlwm8mGVNR9SN2IJpxSnlxczyDjcn7qIyw==} dev: true /@sindresorhus/merge-streams@2.3.0: @@ -4532,12 +4515,12 @@ packages: ts-dedent: 2.2.0 dev: true - /@storybook/addon-docs@8.6.14(@types/react@18.3.26)(storybook@8.6.14): + /@storybook/addon-docs@8.6.14(@types/react@18.3.23)(storybook@8.6.14): resolution: {integrity: sha512-Obpd0OhAF99JyU5pp5ci17YmpcQtMNgqW2pTXV8jAiiipWpwO++hNDeQmLmlSXB399XjtRDOcDVkoc7rc6JzdQ==} peerDependencies: storybook: ^8.6.14 dependencies: - '@mdx-js/react': 3.1.1(@types/react@18.3.26)(react@18.3.1) + '@mdx-js/react': 3.1.0(@types/react@18.3.23)(react@18.3.1) '@storybook/blocks': 8.6.14(react-dom@18.3.1)(react@18.3.1)(storybook@8.6.14) '@storybook/csf-plugin': 8.6.14(storybook@8.6.14) '@storybook/react-dom-shim': 8.6.14(react-dom@18.3.1)(react@18.3.1)(storybook@8.6.14) @@ -4549,7 +4532,7 @@ packages: - '@types/react' dev: true - /@storybook/addon-essentials@8.6.14(@types/react@18.3.26)(storybook@8.6.14): + /@storybook/addon-essentials@8.6.14(@types/react@18.3.23)(storybook@8.6.14): resolution: {integrity: sha512-5ZZSHNaW9mXMOFkoPyc3QkoNGdJHETZydI62/OASR0lmPlJ1065TNigEo5dJddmZNn0/3bkE8eKMAzLnO5eIdA==} peerDependencies: storybook: ^8.6.14 @@ -4557,7 +4540,7 @@ packages: '@storybook/addon-actions': 8.6.14(storybook@8.6.14) '@storybook/addon-backgrounds': 8.6.14(storybook@8.6.14) '@storybook/addon-controls': 8.6.14(storybook@8.6.14) - '@storybook/addon-docs': 8.6.14(@types/react@18.3.26)(storybook@8.6.14) + '@storybook/addon-docs': 8.6.14(@types/react@18.3.23)(storybook@8.6.14) '@storybook/addon-highlight': 8.6.14(storybook@8.6.14) '@storybook/addon-measure': 8.6.14(storybook@8.6.14) '@storybook/addon-outline': 8.6.14(storybook@8.6.14) @@ -4657,14 +4640,14 @@ packages: react-dom: optional: true dependencies: - '@storybook/icons': 1.6.0(react-dom@18.3.1)(react@18.3.1) + '@storybook/icons': 1.4.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) storybook: 8.6.14(prettier@3.6.2) ts-dedent: 2.2.0 dev: true - /@storybook/builder-vite@8.6.14(storybook@8.6.14)(vite@6.4.0): + /@storybook/builder-vite@8.6.14(storybook@8.6.14)(vite@6.3.5): resolution: {integrity: sha512-ajWYhy32ksBWxwWHrjwZzyC0Ii5ZTeu5lsqA95Q/EQBB0P5qWlHWGM3AVyv82Mz/ND03ebGy123uVwgf6olnYQ==} peerDependencies: storybook: ^8.6.14 @@ -4674,7 +4657,7 @@ packages: browser-assert: 1.2.1 storybook: 8.6.14(prettier@3.6.2) ts-dedent: 2.2.0 - vite: 6.4.0(@types/node@22.18.11) + vite: 6.3.5(@types/node@22.17.1) dev: true /@storybook/components@8.6.14(storybook@8.6.14): @@ -4696,13 +4679,13 @@ packages: '@storybook/theming': 8.6.14(storybook@8.6.14) better-opn: 3.0.2 browser-assert: 1.2.1 - esbuild: 0.25.11 - esbuild-register: 3.6.0(esbuild@0.25.11) - jsdoc-type-pratt-parser: 4.8.0 + esbuild: 0.25.8 + esbuild-register: 3.6.0(esbuild@0.25.8) + jsdoc-type-pratt-parser: 4.1.0 prettier: 3.6.2 process: 0.11.10 recast: 0.23.11 - semver: 7.7.3 + semver: 7.7.2 util: 0.12.5 ws: 8.18.3 transitivePeerDependencies: @@ -4731,8 +4714,8 @@ packages: resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} dev: true - /@storybook/icons@1.6.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-hcFZIjW8yQz8O8//2WTIXylm5Xsgc+lW9ISLgUk1xGmptIJQRdlhVIXCpSyLrQaaRiyhQRaVg7l3BD9S216BHw==} + /@storybook/icons@1.4.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-Td73IeJxOyalzvjQL+JXx72jlIYHgs+REaHiREOqfpo3A2AYYG71AUbcv+lg7mEDIweKVCxsMQ0UKo634c8XeA==} engines: {node: '>=14.0.0'} peerDependencies: react: ^18.3.1 @@ -4780,7 +4763,7 @@ packages: storybook: 8.6.14(prettier@3.6.2) dev: true - /@storybook/react-vite@8.6.14(@storybook/test@8.6.14)(react-dom@18.3.1)(react@18.3.1)(storybook@8.6.14)(typescript@5.6.3)(vite@6.4.0): + /@storybook/react-vite@8.6.14(@storybook/test@8.6.14)(react-dom@18.3.1)(react@18.3.1)(storybook@8.6.14)(typescript@5.6.3)(vite@6.3.5): resolution: {integrity: sha512-FZU0xMPxa4/TO87FgcWwappOxLBHZV5HSRK5K+2bJD7rFJAoNorbHvB4Q1zvIAk7eCMjkr2GPCPHx9PRB9vJFg==} engines: {node: '>=18.0.0'} peerDependencies: @@ -4793,20 +4776,20 @@ packages: '@storybook/test': optional: true dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.6.3)(vite@6.4.0) - '@rollup/pluginutils': 5.3.0 - '@storybook/builder-vite': 8.6.14(storybook@8.6.14)(vite@6.4.0) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.6.3)(vite@6.3.5) + '@rollup/pluginutils': 5.2.0 + '@storybook/builder-vite': 8.6.14(storybook@8.6.14)(vite@6.3.5) '@storybook/react': 8.6.14(@storybook/test@8.6.14)(react-dom@18.3.1)(react@18.3.1)(storybook@8.6.14)(typescript@5.6.3) '@storybook/test': 8.6.14(storybook@8.6.14) find-up: 5.0.0 - magic-string: 0.30.19 + magic-string: 0.30.17 react: 18.3.1 react-docgen: 7.1.1 react-dom: 18.3.1(react@18.3.1) resolve: 1.22.10 storybook: 8.6.14(prettier@3.6.2) tsconfig-paths: 4.2.0 - vite: 6.4.0(@types/node@22.18.11) + vite: 6.3.5(@types/node@22.17.1) transitivePeerDependencies: - rollup - supports-color @@ -4874,20 +4857,20 @@ packages: tslib: 2.8.1 dev: false - /@tailwindcss/node@4.1.14: - resolution: {integrity: sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw==} + /@tailwindcss/node@4.1.11: + resolution: {integrity: sha512-yzhzuGRmv5QyU9qLNg4GTlYI6STedBWRE7NjxP45CsFYYq9taI0zJXZBMqIC/c8fViNLhmrbpSFS57EoxUmD6Q==} dependencies: - '@jridgewell/remapping': 2.3.5 + '@ampproject/remapping': 2.3.0 enhanced-resolve: 5.18.3 - jiti: 2.6.1 + jiti: 2.5.1 lightningcss: 1.30.1 - magic-string: 0.30.19 + magic-string: 0.30.17 source-map-js: 1.2.1 - tailwindcss: 4.1.14 + tailwindcss: 4.1.11 dev: false - /@tailwindcss/oxide-android-arm64@4.1.14: - resolution: {integrity: sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==} + /@tailwindcss/oxide-android-arm64@4.1.11: + resolution: {integrity: sha512-3IfFuATVRUMZZprEIx9OGDjG3Ou3jG4xQzNTvjDoKmU9JdmoCohQJ83MYd0GPnQIu89YoJqvMM0G3uqLRFtetg==} engines: {node: '>= 10'} cpu: [arm64] os: [android] @@ -4895,8 +4878,8 @@ packages: dev: false optional: true - /@tailwindcss/oxide-darwin-arm64@4.1.14: - resolution: {integrity: sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==} + /@tailwindcss/oxide-darwin-arm64@4.1.11: + resolution: {integrity: sha512-ESgStEOEsyg8J5YcMb1xl8WFOXfeBmrhAwGsFxxB2CxY9evy63+AtpbDLAyRkJnxLy2WsD1qF13E97uQyP1lfQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -4904,8 +4887,8 @@ packages: dev: false optional: true - /@tailwindcss/oxide-darwin-x64@4.1.14: - resolution: {integrity: sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==} + /@tailwindcss/oxide-darwin-x64@4.1.11: + resolution: {integrity: sha512-EgnK8kRchgmgzG6jE10UQNaH9Mwi2n+yw1jWmof9Vyg2lpKNX2ioe7CJdf9M5f8V9uaQxInenZkOxnTVL3fhAw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -4913,8 +4896,8 @@ packages: dev: false optional: true - /@tailwindcss/oxide-freebsd-x64@4.1.14: - resolution: {integrity: sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==} + /@tailwindcss/oxide-freebsd-x64@4.1.11: + resolution: {integrity: sha512-xdqKtbpHs7pQhIKmqVpxStnY1skuNh4CtbcyOHeX1YBE0hArj2romsFGb6yUmzkq/6M24nkxDqU8GYrKrz+UcA==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] @@ -4922,8 +4905,8 @@ packages: dev: false optional: true - /@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14: - resolution: {integrity: sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==} + /@tailwindcss/oxide-linux-arm-gnueabihf@4.1.11: + resolution: {integrity: sha512-ryHQK2eyDYYMwB5wZL46uoxz2zzDZsFBwfjssgB7pzytAeCCa6glsiJGjhTEddq/4OsIjsLNMAiMlHNYnkEEeg==} engines: {node: '>= 10'} cpu: [arm] os: [linux] @@ -4931,8 +4914,8 @@ packages: dev: false optional: true - /@tailwindcss/oxide-linux-arm64-gnu@4.1.14: - resolution: {integrity: sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==} + /@tailwindcss/oxide-linux-arm64-gnu@4.1.11: + resolution: {integrity: sha512-mYwqheq4BXF83j/w75ewkPJmPZIqqP1nhoghS9D57CLjsh3Nfq0m4ftTotRYtGnZd3eCztgbSPJ9QhfC91gDZQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -4940,8 +4923,8 @@ packages: dev: false optional: true - /@tailwindcss/oxide-linux-arm64-musl@4.1.14: - resolution: {integrity: sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==} + /@tailwindcss/oxide-linux-arm64-musl@4.1.11: + resolution: {integrity: sha512-m/NVRFNGlEHJrNVk3O6I9ggVuNjXHIPoD6bqay/pubtYC9QIdAMpS+cswZQPBLvVvEF6GtSNONbDkZrjWZXYNQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -4949,8 +4932,8 @@ packages: dev: false optional: true - /@tailwindcss/oxide-linux-x64-gnu@4.1.14: - resolution: {integrity: sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==} + /@tailwindcss/oxide-linux-x64-gnu@4.1.11: + resolution: {integrity: sha512-YW6sblI7xukSD2TdbbaeQVDysIm/UPJtObHJHKxDEcW2exAtY47j52f8jZXkqE1krdnkhCMGqP3dbniu1Te2Fg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -4958,8 +4941,8 @@ packages: dev: false optional: true - /@tailwindcss/oxide-linux-x64-musl@4.1.14: - resolution: {integrity: sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==} + /@tailwindcss/oxide-linux-x64-musl@4.1.11: + resolution: {integrity: sha512-e3C/RRhGunWYNC3aSF7exsQkdXzQ/M+aYuZHKnw4U7KQwTJotnWsGOIVih0s2qQzmEzOFIJ3+xt7iq67K/p56Q==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -4967,8 +4950,8 @@ packages: dev: false optional: true - /@tailwindcss/oxide-wasm32-wasi@4.1.14: - resolution: {integrity: sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==} + /@tailwindcss/oxide-wasm32-wasi@4.1.11: + resolution: {integrity: sha512-Xo1+/GU0JEN/C/dvcammKHzeM6NqKovG+6921MR6oadee5XPBaKOumrJCXvopJ/Qb5TH7LX/UAywbqrP4lax0g==} engines: {node: '>=14.0.0'} cpu: [wasm32] requiresBuild: true @@ -4982,8 +4965,8 @@ packages: - '@emnapi/wasi-threads' - tslib - /@tailwindcss/oxide-win32-arm64-msvc@4.1.14: - resolution: {integrity: sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==} + /@tailwindcss/oxide-win32-arm64-msvc@4.1.11: + resolution: {integrity: sha512-UgKYx5PwEKrac3GPNPf6HVMNhUIGuUh4wlDFR2jYYdkX6pL/rn73zTq/4pzUm8fOjAn5L8zDeHp9iXmUGOXZ+w==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -4991,8 +4974,8 @@ packages: dev: false optional: true - /@tailwindcss/oxide-win32-x64-msvc@4.1.14: - resolution: {integrity: sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==} + /@tailwindcss/oxide-win32-x64-msvc@4.1.11: + resolution: {integrity: sha512-YfHoggn1j0LK7wR82TOucWc5LDCguHnoS879idHekmmiR7g9HUtMw9MI0NHatS28u/Xlkfi9w5RJWgz2Dl+5Qg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -5000,64 +4983,64 @@ packages: dev: false optional: true - /@tailwindcss/oxide@4.1.14: - resolution: {integrity: sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==} + /@tailwindcss/oxide@4.1.11: + resolution: {integrity: sha512-Q69XzrtAhuyfHo+5/HMgr1lAiPP/G40OMFAnws7xcFEYqcypZmdW8eGXaOUIeOl1dzPJBPENXgbjsOyhg2nkrg==} engines: {node: '>= 10'} requiresBuild: true dependencies: - detect-libc: 2.1.2 - tar: 7.5.1 + detect-libc: 2.0.4 + tar: 7.4.3 optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.1.14 - '@tailwindcss/oxide-darwin-arm64': 4.1.14 - '@tailwindcss/oxide-darwin-x64': 4.1.14 - '@tailwindcss/oxide-freebsd-x64': 4.1.14 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.14 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.14 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.14 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.14 - '@tailwindcss/oxide-linux-x64-musl': 4.1.14 - '@tailwindcss/oxide-wasm32-wasi': 4.1.14 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.14 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.14 + '@tailwindcss/oxide-android-arm64': 4.1.11 + '@tailwindcss/oxide-darwin-arm64': 4.1.11 + '@tailwindcss/oxide-darwin-x64': 4.1.11 + '@tailwindcss/oxide-freebsd-x64': 4.1.11 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.11 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.11 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.11 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.11 + '@tailwindcss/oxide-linux-x64-musl': 4.1.11 + '@tailwindcss/oxide-wasm32-wasi': 4.1.11 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.11 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.11 dev: false - /@tailwindcss/vite@4.1.14(vite@6.4.0): - resolution: {integrity: sha512-BoFUoU0XqgCUS1UXWhmDJroKKhNXeDzD7/XwabjkDIAbMnc4ULn5e2FuEuBbhZ6ENZoSYzKlzvZ44Yr6EUDUSA==} + /@tailwindcss/vite@4.1.11(vite@6.3.5): + resolution: {integrity: sha512-RHYhrR3hku0MJFRV+fN2gNbDNEh3dwKvY8XJvTxCSXeMOsCRSr+uKvDWQcbizrHgjML6ZmTE5OwMrl5wKcujCw==} peerDependencies: vite: ^5.2.0 || ^6 || ^7 dependencies: - '@tailwindcss/node': 4.1.14 - '@tailwindcss/oxide': 4.1.14 - tailwindcss: 4.1.14 - vite: 6.4.0(@types/node@22.18.11) + '@tailwindcss/node': 4.1.11 + '@tailwindcss/oxide': 4.1.11 + tailwindcss: 4.1.11 + vite: 6.3.5(@types/node@22.17.1) dev: false - /@tanstack/query-core@5.90.5: - resolution: {integrity: sha512-wLamYp7FaDq6ZnNehypKI5fNvxHPfTYylE0m/ZpuuzJfJqhR5Pxg9gvGBHZx4n7J+V5Rg5mZxHHTlv25Zt5u+w==} + /@tanstack/query-core@5.83.1: + resolution: {integrity: sha512-OG69LQgT7jSp+5pPuCfzltq/+7l2xoweggjme9vlbCPa/d7D7zaqv5vN/S82SzSYZ4EDLTxNO1PWrv49RAS64Q==} dev: false - /@tanstack/query-devtools@5.90.1: - resolution: {integrity: sha512-GtINOPjPUH0OegJExZ70UahT9ykmAhmtNVcmtdnOZbxLwT7R5OmRztR5Ahe3/Cu7LArEmR6/588tAycuaWb1xQ==} + /@tanstack/query-devtools@5.84.0: + resolution: {integrity: sha512-fbF3n+z1rqhvd9EoGp5knHkv3p5B2Zml1yNRjh7sNXklngYI5RVIWUrUjZ1RIcEoscarUb0+bOvIs5x9dwzOXQ==} dev: false - /@tanstack/react-query-devtools@5.90.2(@tanstack/react-query@5.90.5)(react@18.3.1): - resolution: {integrity: sha512-vAXJzZuBXtCQtrY3F/yUNJCV4obT/A/n81kb3+YqLbro5Z2+phdAbceO+deU3ywPw8B42oyJlp4FhO0SoivDFQ==} + /@tanstack/react-query-devtools@5.84.2(@tanstack/react-query@5.84.2)(react@18.3.1): + resolution: {integrity: sha512-ojJ66QoW9noqK35Lsmfqpfucj6wuOxLL2TYwEwpvU+iUQ5R/7TKpapWvpy9kZyNSl0mxv5mpS+ImfR8aL8/x3g==} peerDependencies: - '@tanstack/react-query': ^5.90.2 + '@tanstack/react-query': ^5.84.2 react: ^18.3.1 dependencies: - '@tanstack/query-devtools': 5.90.1 - '@tanstack/react-query': 5.90.5(react@18.3.1) + '@tanstack/query-devtools': 5.84.0 + '@tanstack/react-query': 5.84.2(react@18.3.1) react: 18.3.1 dev: false - /@tanstack/react-query@5.90.5(react@18.3.1): - resolution: {integrity: sha512-pN+8UWpxZkEJ/Rnnj2v2Sxpx1WFlaa9L6a4UO89p6tTQbeo+m0MS8oYDjbggrR8QcTyjKoYWKS3xJQGr3ExT8Q==} + /@tanstack/react-query@5.84.2(react@18.3.1): + resolution: {integrity: sha512-cZadySzROlD2+o8zIfbD978p0IphuQzRWiiH3I2ugnTmz4jbjc0+TdibpwqxlzynEen8OulgAg+rzdNF37s7XQ==} peerDependencies: react: ^18.3.1 dependencies: - '@tanstack/query-core': 5.90.5 + '@tanstack/query-core': 5.83.1 react: 18.3.1 dev: false @@ -5083,7 +5066,7 @@ packages: engines: {node: '>=18'} dependencies: '@babel/code-frame': 7.27.1 - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.2 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -5096,7 +5079,7 @@ packages: resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} dependencies: - '@adobe/css-tools': 4.4.4 + '@adobe/css-tools': 4.4.3 aria-query: 5.3.2 chalk: 3.0.0 css.escape: 1.5.1 @@ -5126,8 +5109,8 @@ packages: tinymce: 7.9.1 dev: false - /@tybys/wasm-util@0.10.1: - resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + /@tybys/wasm-util@0.10.0: + resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} requiresBuild: true dependencies: tslib: 2.8.1 @@ -5141,8 +5124,8 @@ packages: /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.2 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 @@ -5151,24 +5134,24 @@ packages: /@types/babel__generator@7.27.0: resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.2 dev: true /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.2 dev: true /@types/babel__traverse@7.28.0: resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.2 dev: true - /@types/d3-array@3.2.2: - resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} + /@types/d3-array@3.2.1: + resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} dev: false /@types/d3-color@3.1.3: @@ -5242,29 +5225,29 @@ packages: resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} dev: true - /@types/node@20.19.22: - resolution: {integrity: sha512-hRnu+5qggKDSyWHlnmThnUqg62l29Aj/6vcYgUaSFL9oc7DVjeWEQN3PRgdSc6F8d9QRMWkf36CLMch1Do/+RQ==} + /@types/node@20.19.10: + resolution: {integrity: sha512-iAFpG6DokED3roLSP0K+ybeDdIX6Bc0Vd3mLW5uDqThPWtNos3E+EqOM11mPQHKzfWHqEBuLjIlsBQQ8CsISmQ==} dependencies: undici-types: 6.21.0 dev: true - /@types/node@22.18.11: - resolution: {integrity: sha512-Gd33J2XIrXurb+eT2ktze3rJAfAp9ZNjlBdh4SVgyrKEOADwCbdUDaK7QgJno8Ue4kcajscsKqu6n8OBG3hhCQ==} + /@types/node@22.17.1: + resolution: {integrity: sha512-y3tBaz+rjspDTylNjAX37jEC3TETEFGNJL6uQDxwF9/8GLLIjW1rvVHlynyuUKMnMr1Roq8jOv3vkopBjC4/VA==} dependencies: undici-types: 6.21.0 /@types/prop-types@15.7.15: resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} - /@types/react-dom@18.3.7(@types/react@18.3.26): + /@types/react-dom@18.3.7(@types/react@18.3.23): resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} peerDependencies: '@types/react': ^18.3.18 dependencies: - '@types/react': 18.3.26 + '@types/react': 18.3.23 - /@types/react@18.3.26: - resolution: {integrity: sha512-RFA/bURkcKzx/X9oumPG9Vp3D3JUgus/d0b67KB0t5S/raciymilkOa66olh78MUI92QLbEJevO7rvqU/kjwKA==} + /@types/react@18.3.23: + resolution: {integrity: sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==} dependencies: '@types/prop-types': 15.7.15 csstype: 3.1.3 @@ -5280,9 +5263,9 @@ packages: /@types/webpack@5.28.5: resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==} dependencies: - '@types/node': 22.18.11 - tapable: 2.3.0 - webpack: 5.102.1 + '@types/node': 22.17.1 + tapable: 2.2.2 + webpack: 5.101.0 transitivePeerDependencies: - '@swc/core' - esbuild @@ -5290,21 +5273,21 @@ packages: - webpack-cli dev: true - /@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1)(eslint@9.37.0)(typescript@5.6.3): - resolution: {integrity: sha512-rUsLh8PXmBjdiPY+Emjz9NX2yHvhS11v0SR6xNJkm5GM1MO9ea/1GoDKlHHZGrOJclL/cZ2i/vRUYVtjRhrHVQ==} + /@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.39.0)(eslint@9.33.0)(typescript@5.6.3): + resolution: {integrity: sha512-bhEz6OZeUR+O/6yx9Jk6ohX6H9JSFTaiY0v9/PuKT3oGK0rn0jNplLmyFUGV+a9gfYnVNwGDwS/UkLIuXNb2Rw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.46.1 + '@typescript-eslint/parser': ^8.39.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.46.1(eslint@9.37.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.46.1 - '@typescript-eslint/type-utils': 8.46.1(eslint@9.37.0)(typescript@5.6.3) - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0)(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.46.1 - eslint: 9.37.0 + '@typescript-eslint/parser': 8.39.0(eslint@9.33.0)(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/type-utils': 8.39.0(eslint@9.33.0)(typescript@5.6.3) + '@typescript-eslint/utils': 8.39.0(eslint@9.33.0)(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.39.0 + eslint: 9.33.0 graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -5314,62 +5297,62 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@8.46.1(eslint@9.37.0)(typescript@5.6.3): - resolution: {integrity: sha512-6JSSaBZmsKvEkbRUkf7Zj7dru/8ZCrJxAqArcLaVMee5907JdtEbKGsZ7zNiIm/UAkpGUkaSMZEXShnN2D1HZA==} + /@typescript-eslint/parser@8.39.0(eslint@9.33.0)(typescript@5.6.3): + resolution: {integrity: sha512-g3WpVQHngx0aLXn6kfIYCZxM6rRJlWzEkVpqEFLT3SgEDsp9cpCbxxgwnE504q4H+ruSDh/VGS6nqZIDynP+vg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/scope-manager': 8.46.1 - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.46.1 - debug: 4.4.3 - eslint: 9.37.0 + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.39.0 + debug: 4.4.1 + eslint: 9.33.0 typescript: 5.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/project-service@8.46.1(typescript@5.6.3): - resolution: {integrity: sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==} + /@typescript-eslint/project-service@8.39.0(typescript@5.6.3): + resolution: {integrity: sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.6.3) - '@typescript-eslint/types': 8.46.1 - debug: 4.4.3 + '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.6.3) + '@typescript-eslint/types': 8.39.0 + debug: 4.4.1 typescript: 5.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/project-service@8.46.1(typescript@5.9.3): - resolution: {integrity: sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==} + /@typescript-eslint/project-service@8.39.0(typescript@5.9.2): + resolution: {integrity: sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) - '@typescript-eslint/types': 8.46.1 - debug: 4.4.3 - typescript: 5.9.3 + '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.9.2) + '@typescript-eslint/types': 8.39.0 + debug: 4.4.1 + typescript: 5.9.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@8.46.1: - resolution: {integrity: sha512-weL9Gg3/5F0pVQKiF8eOXFZp8emqWzZsOJuWRUNtHT+UNV2xSJegmpCNQHy37aEQIbToTq7RHKhWvOsmbM680A==} + /@typescript-eslint/scope-manager@8.39.0: + resolution: {integrity: sha512-8QOzff9UKxOh6npZQ/4FQu4mjdOCGSdO3p44ww0hk8Vu+IGbg0tB/H1LcTARRDzGCC8pDGbh2rissBuuoPgH8A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/visitor-keys': 8.46.1 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/visitor-keys': 8.39.0 dev: true - /@typescript-eslint/tsconfig-utils@8.46.1(typescript@5.6.3): - resolution: {integrity: sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==} + /@typescript-eslint/tsconfig-utils@8.39.0(typescript@5.6.3): + resolution: {integrity: sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -5377,102 +5360,102 @@ packages: typescript: 5.6.3 dev: true - /@typescript-eslint/tsconfig-utils@8.46.1(typescript@5.9.3): - resolution: {integrity: sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==} + /@typescript-eslint/tsconfig-utils@8.39.0(typescript@5.9.2): + resolution: {integrity: sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' dependencies: - typescript: 5.9.3 + typescript: 5.9.2 dev: true - /@typescript-eslint/type-utils@8.46.1(eslint@9.37.0)(typescript@5.6.3): - resolution: {integrity: sha512-+BlmiHIiqufBxkVnOtFwjah/vrkF4MtKKvpXrKSPLCkCtAp8H01/VV43sfqA98Od7nJpDcFnkwgyfQbOG0AMvw==} + /@typescript-eslint/type-utils@8.39.0(eslint@9.33.0)(typescript@5.6.3): + resolution: {integrity: sha512-6B3z0c1DXVT2vYA9+z9axjtc09rqKUPRmijD5m9iv8iQpHBRYRMBcgxSiKTZKm6FwWw1/cI4v6em35OsKCiN5Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.6.3) - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0)(typescript@5.6.3) - debug: 4.4.3 - eslint: 9.37.0 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.39.0(eslint@9.33.0)(typescript@5.6.3) + debug: 4.4.1 + eslint: 9.33.0 ts-api-utils: 2.1.0(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@8.46.1: - resolution: {integrity: sha512-C+soprGBHwWBdkDpbaRC4paGBrkIXxVlNohadL5o0kfhsXqOC6GYH2S/Obmig+I0HTDl8wMaRySwrfrXVP8/pQ==} + /@typescript-eslint/types@8.39.0: + resolution: {integrity: sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /@typescript-eslint/typescript-estree@8.46.1(typescript@5.6.3): - resolution: {integrity: sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==} + /@typescript-eslint/typescript-estree@8.39.0(typescript@5.6.3): + resolution: {integrity: sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/project-service': 8.46.1(typescript@5.6.3) - '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.6.3) - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/visitor-keys': 8.46.1 - debug: 4.4.3 + '@typescript-eslint/project-service': 8.39.0(typescript@5.6.3) + '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.6.3) + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/visitor-keys': 8.39.0 + debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.3 + semver: 7.7.2 ts-api-utils: 2.1.0(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@8.46.1(typescript@5.9.3): - resolution: {integrity: sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==} + /@typescript-eslint/typescript-estree@8.39.0(typescript@5.9.2): + resolution: {integrity: sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/project-service': 8.46.1(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/visitor-keys': 8.46.1 - debug: 4.4.3 + '@typescript-eslint/project-service': 8.39.0(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.9.2) + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/visitor-keys': 8.39.0 + debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.3 - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 + semver: 7.7.2 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@8.46.1(eslint@9.37.0)(typescript@5.6.3): - resolution: {integrity: sha512-vkYUy6LdZS7q1v/Gxb2Zs7zziuXN0wxqsetJdeZdRe/f5dwJFglmuvZBfTUivCtjH725C1jWCDfpadadD95EDQ==} + /@typescript-eslint/utils@8.39.0(eslint@9.33.0)(typescript@5.6.3): + resolution: {integrity: sha512-4GVSvNA0Vx1Ktwvf4sFE+exxJ3QGUorQG1/A5mRfRNZtkBT2xrA/BCO2H0eALx/PnvCS6/vmYwRdDA41EoffkQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0) - '@typescript-eslint/scope-manager': 8.46.1 - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.6.3) - eslint: 9.37.0 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0) + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.6.3) + eslint: 9.33.0 typescript: 5.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/visitor-keys@8.46.1: - resolution: {integrity: sha512-ptkmIf2iDkNUjdeu2bQqhFPV1m6qTnFFjg7PPDjxKWaMaP0Z6I9l30Jr3g5QqbZGdw8YdYvLp+XnqnWWZOg/NA==} + /@typescript-eslint/visitor-keys@8.39.0: + resolution: {integrity: sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/types': 8.39.0 eslint-visitor-keys: 4.2.1 dev: true @@ -5630,19 +5613,19 @@ packages: dev: true optional: true - /@vitejs/plugin-react@4.7.0(vite@6.4.0): + /@vitejs/plugin-react@4.7.0(vite@6.3.5): resolution: {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 dependencies: - '@babel/core': 7.28.4 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4) + '@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: 6.4.0(@types/node@22.18.11) + vite: 6.3.5(@types/node@22.17.1) transitivePeerDependencies: - supports-color dev: true @@ -5652,7 +5635,7 @@ packages: dependencies: '@vitest/spy': 2.0.5 '@vitest/utils': 2.0.5 - chai: 5.3.3 + chai: 5.2.1 tinyrainbow: 1.2.0 dev: true @@ -5679,7 +5662,7 @@ packages: dependencies: '@vitest/pretty-format': 2.0.5 estree-walker: 3.0.3 - loupe: 3.2.1 + loupe: 3.2.0 tinyrainbow: 1.2.0 dev: true @@ -5687,50 +5670,50 @@ packages: resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} dependencies: '@vitest/pretty-format': 2.1.9 - loupe: 3.2.1 + loupe: 3.2.0 tinyrainbow: 1.2.0 dev: true - /@vue/compiler-core@3.5.22: - resolution: {integrity: sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==} + /@vue/compiler-core@3.5.18: + resolution: {integrity: sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==} dependencies: - '@babel/parser': 7.28.4 - '@vue/shared': 3.5.22 + '@babel/parser': 7.28.0 + '@vue/shared': 3.5.18 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.1 dev: true - /@vue/compiler-dom@3.5.22: - resolution: {integrity: sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==} + /@vue/compiler-dom@3.5.18: + resolution: {integrity: sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==} dependencies: - '@vue/compiler-core': 3.5.22 - '@vue/shared': 3.5.22 + '@vue/compiler-core': 3.5.18 + '@vue/shared': 3.5.18 dev: true - /@vue/compiler-sfc@3.5.22: - resolution: {integrity: sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==} + /@vue/compiler-sfc@3.5.18: + resolution: {integrity: sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==} dependencies: - '@babel/parser': 7.28.4 - '@vue/compiler-core': 3.5.22 - '@vue/compiler-dom': 3.5.22 - '@vue/compiler-ssr': 3.5.22 - '@vue/shared': 3.5.22 + '@babel/parser': 7.28.0 + '@vue/compiler-core': 3.5.18 + '@vue/compiler-dom': 3.5.18 + '@vue/compiler-ssr': 3.5.18 + '@vue/shared': 3.5.18 estree-walker: 2.0.2 - magic-string: 0.30.19 + magic-string: 0.30.17 postcss: 8.5.6 source-map-js: 1.2.1 dev: true - /@vue/compiler-ssr@3.5.22: - resolution: {integrity: sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==} + /@vue/compiler-ssr@3.5.18: + resolution: {integrity: sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==} dependencies: - '@vue/compiler-dom': 3.5.22 - '@vue/shared': 3.5.22 + '@vue/compiler-dom': 3.5.18 + '@vue/shared': 3.5.18 dev: true - /@vue/shared@3.5.22: - resolution: {integrity: sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==} + /@vue/shared@3.5.18: + resolution: {integrity: sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==} dev: true /@webassemblyjs/ast@1.14.1: @@ -5892,7 +5875,7 @@ packages: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.0 + fast-uri: 3.0.6 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -5900,8 +5883,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - /ansi-regex@6.2.2: - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + /ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} /ansi-styles@4.3.0: @@ -5915,8 +5898,8 @@ packages: engines: {node: '>=10'} dev: true - /ansi-styles@6.2.3: - resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} /any-promise@1.3.0: @@ -6098,8 +6081,8 @@ packages: peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.26.3 - caniuse-lite: 1.0.30001751 + browserslist: 4.25.2 + caniuse-lite: 1.0.30001733 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -6114,8 +6097,8 @@ packages: possible-typed-array-names: 1.1.0 dev: true - /axe-core@4.11.0: - resolution: {integrity: sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==} + /axe-core@4.10.3: + resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} engines: {node: '>=4'} dev: true @@ -6142,10 +6125,6 @@ packages: engines: {node: '>= 0.6.0'} dev: false - /baseline-browser-mapping@2.8.17: - resolution: {integrity: sha512-j5zJcx6golJYTG6c05LUZ3Z8Gi+M62zRT/ycz4Xq4iCOdpcxwg7ngEYD4KA0eWZC7U17qh/Smq8bYbACJ0ipBA==} - hasBin: true - /better-opn@3.0.2: resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} engines: {node: '>=12.0.0'} @@ -6179,16 +6158,15 @@ packages: resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} dev: true - /browserslist@4.26.3: - resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==} + /browserslist@4.25.2: + resolution: {integrity: sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - baseline-browser-mapping: 2.8.17 - caniuse-lite: 1.0.30001751 - electron-to-chromium: 1.5.237 - node-releases: 2.0.25 - update-browserslist-db: 1.1.3(browserslist@4.26.3) + caniuse-lite: 1.0.30001733 + electron-to-chromium: 1.5.199 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.25.2) /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -6254,8 +6232,8 @@ packages: engines: {node: '>=6'} dev: false - /caniuse-lite@1.0.30001751: - resolution: {integrity: sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==} + /caniuse-lite@1.0.30001733: + resolution: {integrity: sha512-e4QKw/O2Kavj2VQTKZWrwzkt3IxOmIlU6ajRb6LP64LHpBo1J67k2Hi4Vu/TgJWsNtynurfS0uK3MaUTCPfu5Q==} /cfb@1.2.2: resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==} @@ -6265,14 +6243,14 @@ packages: crc-32: 1.2.2 dev: false - /chai@5.3.3: - resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + /chai@5.2.1: + resolution: {integrity: sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==} engines: {node: '>=18'} dependencies: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.2.1 + loupe: 3.2.0 pathval: 2.0.1 dev: true @@ -6292,8 +6270,8 @@ packages: supports-color: 7.2.0 dev: true - /chart.js@4.5.1: - resolution: {integrity: sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==} + /chart.js@4.5.0: + resolution: {integrity: sha512-aYeC/jDgSEx8SHWZvANYMioYMZ2KX02W6f6uVfyteuCGcadDLcYVHdfdygsTQkQ4TKn5lghoojAsPj5pu0SnvQ==} engines: {pnpm: '>=8'} dependencies: '@kurkle/color': 0.3.4 @@ -6366,7 +6344,7 @@ packages: engines: {node: '>=20'} dependencies: string-width: 7.2.0 - strip-ansi: 7.1.2 + strip-ansi: 7.1.0 wrap-ansi: 9.0.2 dev: false @@ -6394,7 +6372,7 @@ packages: requiresBuild: true dependencies: color-name: 1.1.4 - simple-swizzle: 0.2.4 + simple-swizzle: 0.2.2 dev: false optional: true @@ -6621,8 +6599,8 @@ packages: resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} dev: false - /dayjs@1.11.18: - resolution: {integrity: sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==} + /dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} dev: false /debug@3.2.7: @@ -6636,8 +6614,8 @@ packages: ms: 2.1.3 dev: true - /debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + /debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -6699,8 +6677,8 @@ packages: engines: {node: '>=6'} dev: true - /detect-libc@2.1.2: - resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + /detect-libc@2.0.4: + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} dev: false @@ -6766,34 +6744,34 @@ packages: engines: {node: '>=18'} dev: true - /detective-typescript@14.0.0(typescript@5.9.3): + /detective-typescript@14.0.0(typescript@5.9.2): resolution: {integrity: sha512-pgN43/80MmWVSEi5LUuiVvO/0a9ss5V7fwVfrJ4QzAQRd3cwqU1SfWGXJFcNKUqoD5cS+uIovhw5t/0rSeC5Mw==} engines: {node: '>=18'} peerDependencies: typescript: ^5.4.4 dependencies: - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) ast-module-types: 6.0.1 node-source-walk: 7.0.1 - typescript: 5.9.3 + typescript: 5.9.2 transitivePeerDependencies: - supports-color dev: true - /detective-vue2@2.2.0(typescript@5.9.3): + /detective-vue2@2.2.0(typescript@5.9.2): resolution: {integrity: sha512-sVg/t6O2z1zna8a/UIV6xL5KUa2cMTQbdTIIvqNM0NIPswp52fe43Nwmbahzj3ww4D844u/vC2PYfiGLvD3zFA==} engines: {node: '>=18'} peerDependencies: typescript: ^5.4.4 dependencies: '@dependents/detective-less': 5.0.1 - '@vue/compiler-sfc': 3.5.22 + '@vue/compiler-sfc': 3.5.18 detective-es6: 5.0.1 detective-sass: 6.0.1 detective-scss: 5.0.1 detective-stylus: 5.0.1 - detective-typescript: 14.0.0(typescript@5.9.3) - typescript: 5.9.3 + detective-typescript: 14.0.0(typescript@5.9.2) + typescript: 5.9.2 transitivePeerDependencies: - supports-color dev: true @@ -6849,7 +6827,7 @@ packages: /dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.2 csstype: 3.1.3 dev: false @@ -6868,13 +6846,13 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - /effector@23.4.4: - resolution: {integrity: sha512-QkZboRN28K/iwxigDhlJcI3ux3aNbt8kYGGH/GkqWG0OlGeyuBhb7PdM89Iu+ogV8Lmz16xIlwnXR2UNWI6psg==} + /effector@23.4.2: + resolution: {integrity: sha512-Uae07sVa6yilnO9FhjFvLVkuakpKTHqn4bIoFxEuDsvNKfFtidLHGi1mv3bjaoJUxj3ldqZDAg3kvELVgMWSjw==} engines: {node: '>=11.0.0'} dev: true - /electron-to-chromium@1.5.237: - resolution: {integrity: sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==} + /electron-to-chromium@1.5.199: + resolution: {integrity: sha512-3gl0S7zQd88kCAZRO/DnxtBKuhMO4h0EaQIN3YgZfV6+pW+5+bf2AdQeHNESCoaQqo/gjGVYEf2YM4O5HJQqpQ==} /embla-carousel-autoplay@8.6.0(embla-carousel@8.6.0): resolution: {integrity: sha512-OBu5G3nwaSXkZCo1A6LTaFMZ8EpkYbwIaH+bPqdBnDGQ2fh4+NbzjXjs2SktoPNKCtflfVMc75njaDHOYXcrsA==} @@ -6926,7 +6904,7 @@ packages: engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 - tapable: 2.3.0 + tapable: 2.2.2 /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} @@ -6938,8 +6916,8 @@ packages: engines: {node: '>=6'} dev: true - /error-ex@1.3.4: - resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 dev: true @@ -7068,13 +7046,13 @@ packages: is-symbol: 1.1.1 dev: true - /esbuild-register@3.6.0(esbuild@0.25.11): + /esbuild-register@3.6.0(esbuild@0.25.8): resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} peerDependencies: esbuild: '>=0.12 <1' dependencies: - debug: 4.4.3 - esbuild: 0.25.11 + debug: 4.4.1 + esbuild: 0.25.8 transitivePeerDependencies: - supports-color dev: true @@ -7143,38 +7121,38 @@ packages: '@esbuild/win32-x64': 0.24.2 dev: true - /esbuild@0.25.11: - resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==} + /esbuild@0.25.8: + resolution: {integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==} engines: {node: '>=18'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/aix-ppc64': 0.25.11 - '@esbuild/android-arm': 0.25.11 - '@esbuild/android-arm64': 0.25.11 - '@esbuild/android-x64': 0.25.11 - '@esbuild/darwin-arm64': 0.25.11 - '@esbuild/darwin-x64': 0.25.11 - '@esbuild/freebsd-arm64': 0.25.11 - '@esbuild/freebsd-x64': 0.25.11 - '@esbuild/linux-arm': 0.25.11 - '@esbuild/linux-arm64': 0.25.11 - '@esbuild/linux-ia32': 0.25.11 - '@esbuild/linux-loong64': 0.25.11 - '@esbuild/linux-mips64el': 0.25.11 - '@esbuild/linux-ppc64': 0.25.11 - '@esbuild/linux-riscv64': 0.25.11 - '@esbuild/linux-s390x': 0.25.11 - '@esbuild/linux-x64': 0.25.11 - '@esbuild/netbsd-arm64': 0.25.11 - '@esbuild/netbsd-x64': 0.25.11 - '@esbuild/openbsd-arm64': 0.25.11 - '@esbuild/openbsd-x64': 0.25.11 - '@esbuild/openharmony-arm64': 0.25.11 - '@esbuild/sunos-x64': 0.25.11 - '@esbuild/win32-arm64': 0.25.11 - '@esbuild/win32-ia32': 0.25.11 - '@esbuild/win32-x64': 0.25.11 + '@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: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} @@ -7197,7 +7175,7 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-next@15.1.7(eslint@9.37.0)(typescript@5.6.3): + /eslint-config-next@15.1.7(eslint@9.33.0)(typescript@5.6.3): resolution: {integrity: sha512-zXoMnYUIy3XHaAoOhrcYkT9UQWvXqWju2K7NNsmb5wd/7XESDwof61eUdW4QhERr3eJ9Ko/vnXqIrj8kk/drYw==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 @@ -7207,16 +7185,16 @@ packages: optional: true dependencies: '@next/eslint-plugin-next': 15.1.7 - '@rushstack/eslint-patch': 1.14.0 - '@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1)(eslint@9.37.0)(typescript@5.6.3) - '@typescript-eslint/parser': 8.46.1(eslint@9.37.0)(typescript@5.6.3) - eslint: 9.37.0 + '@rushstack/eslint-patch': 1.12.0 + '@typescript-eslint/eslint-plugin': 8.39.0(@typescript-eslint/parser@8.39.0)(eslint@9.33.0)(typescript@5.6.3) + '@typescript-eslint/parser': 8.39.0(eslint@9.33.0)(typescript@5.6.3) + eslint: 9.33.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.37.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.1)(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.37.0) - eslint-plugin-react: 7.37.5(eslint@9.37.0) - eslint-plugin-react-hooks: 5.2.0(eslint@9.37.0) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.33.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.39.0)(eslint-import-resolver-typescript@3.10.1)(eslint@9.33.0) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.33.0) + eslint-plugin-react: 7.37.5(eslint@9.33.0) + eslint-plugin-react-hooks: 5.2.0(eslint@9.33.0) typescript: 5.6.3 transitivePeerDependencies: - eslint-import-resolver-webpack @@ -7224,7 +7202,7 @@ packages: - supports-color dev: true - /eslint-config-next@15.2.3(eslint@9.37.0)(typescript@5.6.3): + /eslint-config-next@15.2.3(eslint@9.33.0)(typescript@5.6.3): resolution: {integrity: sha512-VDQwbajhNMFmrhLWVyUXCqsGPN+zz5G8Ys/QwFubfsxTIrkqdx3N3x3QPW+pERz8bzGPP0IgEm8cNbZcd8PFRQ==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 @@ -7234,16 +7212,16 @@ packages: optional: true dependencies: '@next/eslint-plugin-next': 15.2.3 - '@rushstack/eslint-patch': 1.14.0 - '@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1)(eslint@9.37.0)(typescript@5.6.3) - '@typescript-eslint/parser': 8.46.1(eslint@9.37.0)(typescript@5.6.3) - eslint: 9.37.0 + '@rushstack/eslint-patch': 1.12.0 + '@typescript-eslint/eslint-plugin': 8.39.0(@typescript-eslint/parser@8.39.0)(eslint@9.33.0)(typescript@5.6.3) + '@typescript-eslint/parser': 8.39.0(eslint@9.33.0)(typescript@5.6.3) + eslint: 9.33.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.37.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.1)(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.37.0) - eslint-plugin-react: 7.37.5(eslint@9.37.0) - eslint-plugin-react-hooks: 5.2.0(eslint@9.37.0) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.33.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.39.0)(eslint-import-resolver-typescript@3.10.1)(eslint@9.33.0) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.33.0) + eslint-plugin-react: 7.37.5(eslint@9.33.0) + eslint-plugin-react-hooks: 5.2.0(eslint@9.33.0) typescript: 5.6.3 transitivePeerDependencies: - eslint-import-resolver-webpack @@ -7261,7 +7239,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.37.0): + /eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.33.0): resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -7275,19 +7253,19 @@ packages: optional: true dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.3 - eslint: 9.37.0 - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.1)(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0) - get-tsconfig: 4.12.0 + debug: 4.4.1 + eslint: 9.33.0 + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.39.0)(eslint-import-resolver-typescript@3.10.1)(eslint@9.33.0) + get-tsconfig: 4.10.1 is-bun-module: 2.0.0 stable-hash: 0.0.5 - tinyglobby: 0.2.15 + tinyglobby: 0.2.14 unrs-resolver: 1.11.1 transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils@2.12.1(@typescript-eslint/parser@8.46.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0): + /eslint-module-utils@2.12.1(@typescript-eslint/parser@8.39.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.33.0): resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} engines: {node: '>=4'} peerDependencies: @@ -7308,16 +7286,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 8.46.1(eslint@9.37.0)(typescript@5.6.3) + '@typescript-eslint/parser': 8.39.0(eslint@9.33.0)(typescript@5.6.3) debug: 3.2.7 - eslint: 9.37.0 + eslint: 9.33.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.37.0) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.33.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1)(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0): + /eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.39.0)(eslint-import-resolver-typescript@3.10.1)(eslint@9.33.0): resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} engines: {node: '>=4'} peerDependencies: @@ -7328,16 +7306,16 @@ packages: optional: true dependencies: '@rtsao/scc': 1.1.0 - '@typescript-eslint/parser': 8.46.1(eslint@9.37.0)(typescript@5.6.3) + '@typescript-eslint/parser': 8.39.0(eslint@9.33.0)(typescript@5.6.3) array-includes: 3.1.9 array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.37.0 + eslint: 9.33.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.46.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.39.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.33.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -7354,7 +7332,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y@6.10.2(eslint@9.37.0): + /eslint-plugin-jsx-a11y@6.10.2(eslint@9.33.0): resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} engines: {node: '>=4.0'} peerDependencies: @@ -7364,11 +7342,11 @@ packages: array-includes: 3.1.9 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.11.0 + axe-core: 4.10.3 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.37.0 + eslint: 9.33.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -7378,24 +7356,24 @@ packages: string.prototype.includes: 2.0.1 dev: true - /eslint-plugin-react-hooks@5.2.0(eslint@9.37.0): + /eslint-plugin-react-hooks@5.2.0(eslint@9.33.0): resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 dependencies: - eslint: 9.37.0 + eslint: 9.33.0 dev: true - /eslint-plugin-react-refresh@0.4.24(eslint@9.37.0): - resolution: {integrity: sha512-nLHIW7TEq3aLrEYWpVaJ1dRgFR+wLDPN8e8FpYAql/bMV2oBEfC37K0gLEGgv9fy66juNShSMV8OkTqzltcG/w==} + /eslint-plugin-react-refresh@0.4.20(eslint@9.33.0): + resolution: {integrity: sha512-XpbHQ2q5gUF8BGOX4dHe+71qoirYMhApEPZ7sfhF/dNnOF1UXnCMGZf79SFTBO7Bz5YEIT4TMieSlJBWhP9WBA==} peerDependencies: eslint: '>=8.40' dependencies: - eslint: 9.37.0 + eslint: 9.33.0 dev: true - /eslint-plugin-react@7.37.5(eslint@9.37.0): + /eslint-plugin-react@7.37.5(eslint@9.33.0): resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} engines: {node: '>=4'} peerDependencies: @@ -7407,7 +7385,7 @@ packages: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.37.0 + eslint: 9.33.0 estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -7422,15 +7400,15 @@ packages: string.prototype.repeat: 1.0.0 dev: true - /eslint-plugin-storybook@0.11.6(eslint@9.37.0)(typescript@5.6.3): + /eslint-plugin-storybook@0.11.6(eslint@9.33.0)(typescript@5.6.3): resolution: {integrity: sha512-3WodYD6Bs9ACqnB+TP2TuLh774c/nacAjxSKOP9bHJ2c8rf+nrhocxjjeAWNmO9IPkFIzTKlcl0vNXI2yYpVOw==} engines: {node: '>= 18'} peerDependencies: eslint: '>=8' dependencies: '@storybook/csf': 0.1.13 - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0)(typescript@5.6.3) - eslint: 9.37.0 + '@typescript-eslint/utils': 8.39.0(eslint@9.33.0)(typescript@5.6.3) + eslint: 9.33.0 ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -7462,8 +7440,8 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /eslint@9.37.0: - resolution: {integrity: sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==} + /eslint@9.33.0: + resolution: {integrity: sha512-TS9bTNIryDzStCpJN93aC5VRSW3uTx9sClUn4B87pwiCaJh220otoI0X8mJKr+VcPtniMdN8GKjlwgWGUv5ZKA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -7472,15 +7450,15 @@ packages: jiti: optional: true dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.21.0 - '@eslint/config-helpers': 0.4.0 - '@eslint/core': 0.16.0 + '@eslint/config-helpers': 0.3.1 + '@eslint/core': 0.15.2 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.37.0 - '@eslint/plugin-kit': 0.4.0 - '@humanfs/node': 0.16.7 + '@eslint/js': 9.33.0 + '@eslint/plugin-kit': 0.3.5 + '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 @@ -7488,7 +7466,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.3 + debug: 4.4.1 escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -7573,8 +7551,8 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - /fast-equals@5.3.2: - resolution: {integrity: sha512-6rxyATwPCkaFIL3JLqw8qXqMpIZ942pTX/tbQFkRsDGblS8tNGtlUauA/+mt6RUfqn/4MoEr+WDkYoIQbibWuQ==} + /fast-equals@5.2.2: + resolution: {integrity: sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==} engines: {node: '>=6.0.0'} dev: false @@ -7607,8 +7585,8 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fast-uri@3.1.0: - resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + /fast-uri@3.0.6: + resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} /fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} @@ -7620,9 +7598,8 @@ packages: dependencies: reusify: 1.1.0 - /fdir@6.5.0(picomatch@4.0.3): - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} - engines: {node: '>=12.0.0'} + /fdir@6.4.6(picomatch@4.0.3): + resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -7770,11 +7747,6 @@ packages: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true - /generator-function@2.0.1: - resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} - engines: {node: '>= 0.4'} - dev: true - /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -7784,7 +7756,7 @@ packages: resolution: {integrity: sha512-PT6uoF5a1+kbC3tHmZSUsLHBp2QJlHasxxxxPW47QIY1VBKpFB+FcDvX+MxER6UzgLQZ0xDzJ9s48B9JbOCTqA==} engines: {node: '>=10.19'} dependencies: - '@petamoriken/float16': 3.9.3 + '@petamoriken/float16': 3.9.2 lerc: 3.0.0 pako: 2.1.0 parse-headers: 2.0.6 @@ -7847,8 +7819,8 @@ packages: get-intrinsic: 1.3.0 dev: true - /get-tsconfig@4.12.0: - resolution: {integrity: sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw==} + /get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} dependencies: resolve-pkg-maps: 1.0.0 dev: true @@ -7921,8 +7893,8 @@ packages: minimist: 1.2.8 dev: true - /goober@2.1.18(csstype@3.1.3): - resolution: {integrity: sha512-2vFqsaDVIT9Gz7N6kAL++pLpp41l3PfDuusHcjnGLfR6+huZkl6ziX+zgVC3ZxpqWhzH6pyDdGrCeDhMIvwaxw==} + /goober@2.1.16(csstype@3.1.3): + resolution: {integrity: sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==} peerDependencies: csstype: ^3.0.10 dependencies: @@ -7998,15 +7970,15 @@ packages: text-segmentation: 1.0.3 dev: false - /i18next@25.6.0(typescript@5.6.3): - resolution: {integrity: sha512-tTn8fLrwBYtnclpL5aPXK/tAYBLWVvoHM1zdfXoRNLcI+RvtMsoZRV98ePlaW3khHYKuNh/Q65W/+NVFUeIwVw==} + /i18next@25.3.2(typescript@5.6.3): + resolution: {integrity: sha512-JSnbZDxRVbphc5jiptxr3o2zocy5dEqpVm9qCGdJwRNO+9saUJS0/u4LnM/13C23fUEWxAylPqKU/NpMV/IjqA==} peerDependencies: typescript: ^5 peerDependenciesMeta: typescript: optional: true dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.2 typescript: 5.6.3 dev: false @@ -8028,8 +8000,8 @@ packages: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} dev: false - /immer@10.1.3: - resolution: {integrity: sha512-tmjF/k8QDKydUlm3mZU+tjM6zeq9/fFpPqH9SzWmBnVVKsPBg/V66qsMwb3/Bo90cgUN+ghdVBess+hPsxUyRw==} + /immer@10.1.1: + resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} dev: true /import-fresh@3.3.1: @@ -8092,8 +8064,8 @@ packages: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true - /is-arrayish@0.3.4: - resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} requiresBuild: true dev: false optional: true @@ -8133,7 +8105,7 @@ packages: /is-bun-module@2.0.0: resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} dependencies: - semver: 7.7.3 + semver: 7.7.2 dev: true /is-callable@1.2.7: @@ -8185,12 +8157,11 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - /is-generator-function@1.1.2: - resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + /is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} dependencies: call-bound: 1.0.4 - generator-function: 2.0.1 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -8349,7 +8320,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 22.18.11 + '@types/node': 22.17.1 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -8357,8 +8328,8 @@ packages: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true - /jiti@2.6.1: - resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + /jiti@2.5.1: + resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} hasBin: true dev: false @@ -8367,8 +8338,8 @@ packages: engines: {node: '>=10'} dev: true - /js-base64@3.7.8: - resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} + /js-base64@3.7.7: + resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} dev: false /js-cookie@3.0.5: @@ -8390,8 +8361,8 @@ packages: argparse: 2.0.1 dev: true - /jsdoc-type-pratt-parser@4.8.0: - resolution: {integrity: sha512-iZ8Bdb84lWRuGHamRXFyML07r21pcwBrLkHEuHgEY5UbCouBwv7ECknDRKzsQIXMiqpPymqtIf8TC/shYKB5rw==} + /jsdoc-type-pratt-parser@4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} dev: true @@ -8484,8 +8455,8 @@ packages: type-check: 0.4.0 dev: true - /libphonenumber-js@1.12.24: - resolution: {integrity: sha512-l5IlyL9AONj4voSd7q9xkuQOL4u8Ty44puTic7J88CmdXkxfGsRfoVLXHCxppwehgpb/Chdb80FFehHqjN3ItQ==} + /libphonenumber-js@1.12.10: + resolution: {integrity: sha512-E91vHJD61jekHHR/RF/E83T/CMoaLXT7cwYA75T4gim4FZjnM6hbJjVIGg7chqlSqRsSvQ3izGmOjHy1SQzcGQ==} dev: false /lie@3.3.0: @@ -8588,7 +8559,7 @@ packages: resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} engines: {node: '>= 12.0.0'} dependencies: - detect-libc: 2.1.2 + detect-libc: 2.0.4 optionalDependencies: lightningcss-darwin-arm64: 1.30.1 lightningcss-darwin-x64: 1.30.1 @@ -8614,8 +8585,8 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /loader-runner@4.3.1: - resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} + /loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} /locate-path@5.0.0: @@ -8716,8 +8687,8 @@ packages: dependencies: js-tokens: 4.0.0 - /loupe@3.2.1: - resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} + /loupe@3.2.0: + resolution: {integrity: sha512-2NCfZcT5VGVNX9mSZIxLRkEAegDGBpuQZBy13desuHeVORmBDyAET4TkJr4SjqQy3A8JDofMN6LpkK8Xcm/dlw==} dev: true /lru-cache@10.4.3: @@ -8746,13 +8717,13 @@ packages: resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} engines: {node: '>=12'} dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.5.4 dev: true - /magic-string@0.30.19: - resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} + /magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.5.4 /map-or-similar@1.5.0: resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} @@ -8824,13 +8795,19 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - /minizlib@3.1.0: - resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + /minizlib@3.0.2: + resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==} engines: {node: '>= 18'} dependencies: minipass: 7.1.2 dev: false + /mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + dev: false + /module-definition@6.0.1: resolution: {integrity: sha512-FeVc50FTfVVQnolk/WQT8MX+2WVcDnTGiq6Wo+/+lJ2ET1bRVi3HG3YlJUfqagNMc/kUlFSoR96AJkxGpKz13g==} engines: {node: '>=18'} @@ -8870,8 +8847,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /napi-postinstall@0.3.4: - resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + /napi-postinstall@0.3.3: + resolution: {integrity: sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} hasBin: true dev: true @@ -8928,7 +8905,7 @@ packages: '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001751 + caniuse-lite: 1.0.30001733 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -8973,7 +8950,7 @@ packages: '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001751 + caniuse-lite: 1.0.30001733 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -9018,7 +8995,7 @@ packages: '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001751 + caniuse-lite: 1.0.30001733 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -9032,20 +9009,20 @@ packages: '@next/swc-linux-x64-musl': 15.3.0 '@next/swc-win32-arm64-msvc': 15.3.0 '@next/swc-win32-x64-msvc': 15.3.0 - sharp: 0.34.4 + sharp: 0.34.3 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros dev: false - /node-releases@2.0.25: - resolution: {integrity: sha512-4auku8B/vw5psvTiiN9j1dAOsXvMoGqJuKJcR+dTdqiXEK20mMTk1UEo3HS16LeGQsVG6+qKTPM9u/qQ2LqATA==} + /node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} /node-source-walk@7.0.1: resolution: {integrity: sha512-3VW/8JpPqPvnJvseXowjZcirPisssnBuDikk6JIZ8jQzF7KJQX52iPFX4RYYxLycYH7IbMRSPUOga/esVjy5Yg==} engines: {node: '>=18'} dependencies: - '@babel/parser': 7.28.4 + '@babel/parser': 7.28.0 dev: true /normalize-path@3.0.0: @@ -9126,8 +9103,8 @@ packages: es-object-atoms: 1.1.1 dev: true - /ol-ext@4.0.35(ol@7.5.2): - resolution: {integrity: sha512-S0lG0K1q9Tx7jzNlSMJhX6+iNTXK3/D9xwwBS2uiM50ZJu9Q1U+wis9Y6YhvPM8gT4ICx40kyRXPPIvZtyo5WQ==} + /ol-ext@4.0.33(ol@7.5.2): + resolution: {integrity: sha512-aCbgYe4tScqBMMGnheK2eM9ArjHE1u5g2LzfHKVht/Ko1ylvFNFDkzEHSwPWEVSTrrgiDqy/vtDnrqLJ+OPozw==} peerDependencies: ol: '>= 5.3.0' dependencies: @@ -9242,7 +9219,7 @@ packages: engines: {node: '>=8'} dependencies: '@babel/code-frame': 7.27.1 - error-ex: 1.3.4 + error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 dev: true @@ -9282,12 +9259,12 @@ packages: engines: {node: '>= 14.16'} dev: true - /patronum@2.3.0(effector@23.4.4): + /patronum@2.3.0(effector@23.4.2): resolution: {integrity: sha512-BfKIOpoymVz6XnkOn8Fi5QZ1a3r/3lXdd8BcdHmYDbIXPTIRnD1EPFBFev/DheWnOge6/ZswEqgNF2ANLGOxLw==} peerDependencies: effector: ^23 dependencies: - effector: 23.4.4 + effector: 23.4.2 dev: true /pbf@3.2.1: @@ -9331,7 +9308,7 @@ packages: resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} engines: {node: '>=10'} dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.2 dev: true /possible-typed-array-names@1.1.0: @@ -9350,8 +9327,8 @@ packages: read-cache: 1.0.0 resolve: 1.22.10 - /postcss-js@4.1.0(postcss@8.5.6): - resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==} + /postcss-js@4.0.1(postcss@8.5.6): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 @@ -9359,7 +9336,23 @@ packages: camelcase-css: 2.0.1 postcss: 8.5.6 - /postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6): + /postcss-load-config@4.0.2(postcss@8.5.6): + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 3.1.3 + postcss: 8.5.6 + yaml: 2.8.1 + + /postcss-load-config@6.0.1(postcss@8.5.6): resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} engines: {node: '>= 18'} peerDependencies: @@ -9377,9 +9370,9 @@ packages: yaml: optional: true dependencies: - jiti: 1.21.7 lilconfig: 3.1.3 postcss: 8.5.6 + dev: true /postcss-nested@6.2.0(postcss@8.5.6): resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} @@ -9447,12 +9440,12 @@ packages: detective-sass: 6.0.1 detective-scss: 5.0.1 detective-stylus: 5.0.1 - detective-typescript: 14.0.0(typescript@5.9.3) - detective-vue2: 2.2.0(typescript@5.9.3) + detective-typescript: 14.0.0(typescript@5.9.2) + detective-vue2: 2.2.0(typescript@5.9.2) module-definition: 6.0.1 node-source-walk: 7.0.1 postcss: 8.5.6 - typescript: 5.9.3 + typescript: 5.9.2 transitivePeerDependencies: - supports-color dev: true @@ -9634,13 +9627,13 @@ packages: quickselect: 2.0.0 dev: false - /react-chartjs-2@5.3.0(chart.js@4.5.1)(react@18.3.1): + /react-chartjs-2@5.3.0(chart.js@4.5.0)(react@18.3.1): resolution: {integrity: sha512-UfZZFnDsERI3c3CZGxzvNJd02SHjaSJ8kgW1djn65H1KK8rehwTjyrRKOG3VTMG8wtHZ5rgAO5oTHtHi9GCCmw==} peerDependencies: chart.js: ^4.1.1 react: ^18.3.1 dependencies: - chart.js: 4.5.1 + chart.js: 4.5.0 react: 18.3.1 dev: false @@ -9654,13 +9647,13 @@ packages: react: 18.3.1 dev: false - /react-day-picker@9.11.1(react@18.3.1): - resolution: {integrity: sha512-l3ub6o8NlchqIjPKrRFUCkTUEq6KwemQlfv3XZzzwpUeGwmDJ+0u0Upmt38hJyd7D/vn2dQoOoLV/qAp0o3uUw==} + /react-day-picker@9.8.1(react@18.3.1): + resolution: {integrity: sha512-kMcLrp3PfN/asVJayVv82IjF3iLOOxuH5TNFWezX6lS/T8iVRFPTETpHl3TUSTH99IDMZLubdNPJr++rQctkEw==} engines: {node: '>=18'} peerDependencies: react: ^18.3.1 dependencies: - '@date-fns/tz': 1.4.1 + '@date-fns/tz': 1.3.1 date-fns: 4.1.0 date-fns-jalali: 4.1.0-0 react: 18.3.1 @@ -9679,7 +9672,7 @@ packages: dnd-core: 16.0.1 dev: false - /react-dnd@16.0.1(@types/node@22.18.11)(@types/react@18.3.26)(react@18.3.1): + /react-dnd@16.0.1(@types/node@22.17.1)(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q==} peerDependencies: '@types/hoist-non-react-statics': '>= 3.3.1' @@ -9696,8 +9689,8 @@ packages: dependencies: '@react-dnd/invariant': 4.0.2 '@react-dnd/shallowequal': 4.0.2 - '@types/node': 22.18.11 - '@types/react': 18.3.26 + '@types/node': 22.17.1 + '@types/react': 18.3.23 dnd-core: 16.0.1 fast-deep-equal: 3.1.3 hoist-non-react-statics: 3.3.2 @@ -9716,16 +9709,16 @@ packages: resolution: {integrity: sha512-hlSJDQ2synMPKFZOsKo9Hi8WWZTC7POR8EmWvTSjow+VDgKzkmjQvFm2fk0tmRw+f0vTOIYKlarR0iL4996pdg==} engines: {node: '>=16.14.0'} dependencies: - '@babel/core': 7.28.4 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/core': 7.28.0 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.2 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 '@types/doctrine': 0.0.9 '@types/resolve': 1.20.6 doctrine: 3.0.0 resolve: 1.22.10 - strip-indent: 4.1.1 + strip-indent: 4.0.0 transitivePeerDependencies: - supports-color dev: true @@ -9763,8 +9756,8 @@ packages: react: 18.3.1 dev: false - /react-hook-form@7.65.0(react@18.3.1): - resolution: {integrity: sha512-xtOzDz063WcXvGWaHgLNrNzlsdFgtUWcb32E6WFaGTd7kPZG3EeDusjdZfUsPwKCKVXy1ZlntifaHZ4l8pAsmw==} + /react-hook-form@7.62.0(react@18.3.1): + resolution: {integrity: sha512-7KWFejc98xqG/F4bAxpL41NB3o1nnvQO1RWZT3TqRZYL8RryQETGfEdVnJN2fy1crCiBLLjkRBVK05j24FxJGA==} engines: {node: '>=18.0.0'} peerDependencies: react: ^18.3.1 @@ -9772,23 +9765,23 @@ packages: react: 18.3.1 dev: false - /react-hot-toast@2.6.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-bH+2EBMZ4sdyou/DPrfgIouFpcRLCJ+HoCA32UoAYHn6T3Ur5yfcDCeSr5mwldl6pFOsiocmrXMuoCJ1vV8bWg==} + /react-hot-toast@2.5.2(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-Tun3BbCxzmXXM7C+NI4qiv6lT0uwGh4oAfeJyNOjYUejTsm35mK9iCaYLGv8cBz9L5YxZLx/2ii7zsIwPtPUdw==} engines: {node: '>=10'} peerDependencies: react: ^18.3.1 react-dom: ^18.3.1 dependencies: csstype: 3.1.3 - goober: 2.1.18(csstype@3.1.3) + goober: 2.1.16(csstype@3.1.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /react-i18next@15.7.4(i18next@25.6.0)(react-dom@18.3.1)(react@18.3.1)(typescript@5.6.3): - resolution: {integrity: sha512-nyU8iKNrI5uDJch0z9+Y5XEr34b0wkyYj3Rp+tfbahxtlswxSCjcUL9H0nqXo9IR3/t5Y5PKIA3fx3MfUyR9Xw==} + /react-i18next@15.6.1(i18next@25.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.6.3): + resolution: {integrity: sha512-uGrzSsOUUe2sDBG/+FJq2J1MM+Y4368/QW8OLEKSFvnDflHBbZhSd1u3UkW0Z06rMhZmnB/AQrhCpYfE5/5XNg==} peerDependencies: - i18next: '>= 23.4.0' + i18next: '>= 23.2.3' react: ^18.3.1 react-dom: '*' react-native: '*' @@ -9801,9 +9794,9 @@ packages: typescript: optional: true dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.2 html-parse-stringify: 3.0.1 - i18next: 25.6.0(typescript@5.6.3) + i18next: 25.3.2(typescript@5.6.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) typescript: 5.6.3 @@ -9835,7 +9828,7 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-remove-scroll-bar@2.3.8(@types/react@18.3.26)(react@18.3.1): + /react-remove-scroll-bar@2.3.8(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} engines: {node: '>=10'} peerDependencies: @@ -9845,13 +9838,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.26 + '@types/react': 18.3.23 react: 18.3.1 - react-style-singleton: 2.2.3(@types/react@18.3.26)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.23)(react@18.3.1) tslib: 2.8.1 dev: false - /react-remove-scroll@2.7.1(@types/react@18.3.26)(react@18.3.1): + /react-remove-scroll@2.7.1(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==} engines: {node: '>=10'} peerDependencies: @@ -9861,13 +9854,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.26 + '@types/react': 18.3.23 react: 18.3.1 - react-remove-scroll-bar: 2.3.8(@types/react@18.3.26)(react@18.3.1) - react-style-singleton: 2.2.3(@types/react@18.3.26)(react@18.3.1) + react-remove-scroll-bar: 2.3.8(@types/react@18.3.23)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.23)(react@18.3.1) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@18.3.26)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@18.3.26)(react@18.3.1) + use-callback-ref: 1.3.3(@types/react@18.3.23)(react@18.3.1) + use-sidecar: 1.1.3(@types/react@18.3.23)(react@18.3.1) dev: false /react-smooth@4.0.4(react-dom@18.3.1)(react@18.3.1): @@ -9876,14 +9869,14 @@ packages: react: ^18.3.1 react-dom: ^18.3.1 dependencies: - fast-equals: 5.3.2 + fast-equals: 5.2.2 prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-transition-group: 4.4.5(react-dom@18.3.1)(react@18.3.1) dev: false - /react-style-singleton@2.2.3(@types/react@18.3.26)(react@18.3.1): + /react-style-singleton@2.2.3(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} engines: {node: '>=10'} peerDependencies: @@ -9893,7 +9886,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.26 + '@types/react': 18.3.23 get-nonce: 1.0.1 react: 18.3.1 tslib: 2.8.1 @@ -9905,7 +9898,7 @@ packages: react: ^18.3.1 react-dom: ^18.3.1 dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.2 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -10007,7 +10000,7 @@ packages: /redux@4.2.1: resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==} dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.2 dev: false /reflect.getprototypeof@1.0.10: @@ -10099,35 +10092,33 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - /rollup@4.52.4: - resolution: {integrity: sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==} + /rollup@4.46.2: + resolution: {integrity: sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.52.4 - '@rollup/rollup-android-arm64': 4.52.4 - '@rollup/rollup-darwin-arm64': 4.52.4 - '@rollup/rollup-darwin-x64': 4.52.4 - '@rollup/rollup-freebsd-arm64': 4.52.4 - '@rollup/rollup-freebsd-x64': 4.52.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.52.4 - '@rollup/rollup-linux-arm-musleabihf': 4.52.4 - '@rollup/rollup-linux-arm64-gnu': 4.52.4 - '@rollup/rollup-linux-arm64-musl': 4.52.4 - '@rollup/rollup-linux-loong64-gnu': 4.52.4 - '@rollup/rollup-linux-ppc64-gnu': 4.52.4 - '@rollup/rollup-linux-riscv64-gnu': 4.52.4 - '@rollup/rollup-linux-riscv64-musl': 4.52.4 - '@rollup/rollup-linux-s390x-gnu': 4.52.4 - '@rollup/rollup-linux-x64-gnu': 4.52.4 - '@rollup/rollup-linux-x64-musl': 4.52.4 - '@rollup/rollup-openharmony-arm64': 4.52.4 - '@rollup/rollup-win32-arm64-msvc': 4.52.4 - '@rollup/rollup-win32-ia32-msvc': 4.52.4 - '@rollup/rollup-win32-x64-gnu': 4.52.4 - '@rollup/rollup-win32-x64-msvc': 4.52.4 + '@rollup/rollup-android-arm-eabi': 4.46.2 + '@rollup/rollup-android-arm64': 4.46.2 + '@rollup/rollup-darwin-arm64': 4.46.2 + '@rollup/rollup-darwin-x64': 4.46.2 + '@rollup/rollup-freebsd-arm64': 4.46.2 + '@rollup/rollup-freebsd-x64': 4.46.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.46.2 + '@rollup/rollup-linux-arm-musleabihf': 4.46.2 + '@rollup/rollup-linux-arm64-gnu': 4.46.2 + '@rollup/rollup-linux-arm64-musl': 4.46.2 + '@rollup/rollup-linux-loongarch64-gnu': 4.46.2 + '@rollup/rollup-linux-ppc64-gnu': 4.46.2 + '@rollup/rollup-linux-riscv64-gnu': 4.46.2 + '@rollup/rollup-linux-riscv64-musl': 4.46.2 + '@rollup/rollup-linux-s390x-gnu': 4.46.2 + '@rollup/rollup-linux-x64-gnu': 4.46.2 + '@rollup/rollup-linux-x64-musl': 4.46.2 + '@rollup/rollup-win32-arm64-msvc': 4.46.2 + '@rollup/rollup-win32-ia32-msvc': 4.46.2 + '@rollup/rollup-win32-x64-msvc': 4.46.2 fsevents: 2.3.3 /run-parallel@1.2.0: @@ -10183,8 +10174,8 @@ packages: dependencies: loose-envify: 1.4.0 - /schema-utils@4.3.3: - resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} + /schema-utils@4.3.2: + resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} engines: {node: '>= 10.13.0'} dependencies: '@types/json-schema': 7.0.15 @@ -10201,8 +10192,8 @@ packages: hasBin: true dev: true - /semver@7.7.3: - resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + /semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} engines: {node: '>=10'} hasBin: true @@ -10256,8 +10247,8 @@ packages: requiresBuild: true dependencies: color: 4.2.3 - detect-libc: 2.1.2 - semver: 7.7.3 + detect-libc: 2.0.4 + semver: 7.7.2 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 '@img/sharp-darwin-x64': 0.33.5 @@ -10281,37 +10272,37 @@ packages: dev: false optional: true - /sharp@0.34.4: - resolution: {integrity: sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==} + /sharp@0.34.3: + resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} requiresBuild: true dependencies: - '@img/colour': 1.0.0 - detect-libc: 2.1.2 - semver: 7.7.3 + color: 4.2.3 + detect-libc: 2.0.4 + semver: 7.7.2 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.4 - '@img/sharp-darwin-x64': 0.34.4 - '@img/sharp-libvips-darwin-arm64': 1.2.3 - '@img/sharp-libvips-darwin-x64': 1.2.3 - '@img/sharp-libvips-linux-arm': 1.2.3 - '@img/sharp-libvips-linux-arm64': 1.2.3 - '@img/sharp-libvips-linux-ppc64': 1.2.3 - '@img/sharp-libvips-linux-s390x': 1.2.3 - '@img/sharp-libvips-linux-x64': 1.2.3 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.3 - '@img/sharp-libvips-linuxmusl-x64': 1.2.3 - '@img/sharp-linux-arm': 0.34.4 - '@img/sharp-linux-arm64': 0.34.4 - '@img/sharp-linux-ppc64': 0.34.4 - '@img/sharp-linux-s390x': 0.34.4 - '@img/sharp-linux-x64': 0.34.4 - '@img/sharp-linuxmusl-arm64': 0.34.4 - '@img/sharp-linuxmusl-x64': 0.34.4 - '@img/sharp-wasm32': 0.34.4 - '@img/sharp-win32-arm64': 0.34.4 - '@img/sharp-win32-ia32': 0.34.4 - '@img/sharp-win32-x64': 0.34.4 + '@img/sharp-darwin-arm64': 0.34.3 + '@img/sharp-darwin-x64': 0.34.3 + '@img/sharp-libvips-darwin-arm64': 1.2.0 + '@img/sharp-libvips-darwin-x64': 1.2.0 + '@img/sharp-libvips-linux-arm': 1.2.0 + '@img/sharp-libvips-linux-arm64': 1.2.0 + '@img/sharp-libvips-linux-ppc64': 1.2.0 + '@img/sharp-libvips-linux-s390x': 1.2.0 + '@img/sharp-libvips-linux-x64': 1.2.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 + '@img/sharp-libvips-linuxmusl-x64': 1.2.0 + '@img/sharp-linux-arm': 0.34.3 + '@img/sharp-linux-arm64': 0.34.3 + '@img/sharp-linux-ppc64': 0.34.3 + '@img/sharp-linux-s390x': 0.34.3 + '@img/sharp-linux-x64': 0.34.3 + '@img/sharp-linuxmusl-arm64': 0.34.3 + '@img/sharp-linuxmusl-x64': 0.34.3 + '@img/sharp-wasm32': 0.34.3 + '@img/sharp-win32-arm64': 0.34.3 + '@img/sharp-win32-ia32': 0.34.3 + '@img/sharp-win32-x64': 0.34.3 dev: false optional: true @@ -10373,11 +10364,11 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - /simple-swizzle@0.2.4: - resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} requiresBuild: true dependencies: - is-arrayish: 0.3.4 + is-arrayish: 0.3.2 dev: false optional: true @@ -10459,14 +10450,14 @@ packages: '@feature-sliced/steiger-plugin': 0.5.7(typescript@5.6.3) chokidar: 4.0.3 cosmiconfig: 9.0.0(typescript@5.6.3) - effector: 23.4.4 + effector: 23.4.2 empathic: 1.1.0 fastest-levenshtein: 1.0.16 globby: 14.1.0 - immer: 10.1.3 + immer: 10.1.1 lodash-es: 4.17.21 micromatch: 4.0.8 - patronum: 2.3.0(effector@23.4.4) + patronum: 2.3.0(effector@23.4.2) picocolors: 1.1.1 prexit: 2.3.0 yargs: 17.7.2 @@ -10521,7 +10512,7 @@ packages: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.1.2 + strip-ansi: 7.1.0 /string-width@7.2.0: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} @@ -10529,7 +10520,7 @@ packages: dependencies: emoji-regex: 10.6.0 get-east-asian-width: 1.4.0 - strip-ansi: 7.1.2 + strip-ansi: 7.1.0 dev: false /string.prototype.includes@2.0.1: @@ -10611,11 +10602,11 @@ packages: dependencies: ansi-regex: 5.0.1 - /strip-ansi@7.1.2: - resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: - ansi-regex: 6.2.2 + ansi-regex: 6.1.0 /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} @@ -10629,9 +10620,11 @@ packages: min-indent: 1.0.1 dev: true - /strip-indent@4.1.1: - resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==} + /strip-indent@4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} engines: {node: '>=12'} + dependencies: + min-indent: 1.0.1 dev: true /strip-json-comments@3.1.1: @@ -10661,7 +10654,7 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: - '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/gen-mapping': 0.3.12 commander: 4.1.1 glob: 10.4.5 lines-and-columns: 1.2.4 @@ -10690,16 +10683,16 @@ packages: resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==} dev: false - /tailwindcss-animate@1.0.7(tailwindcss@3.4.18): + /tailwindcss-animate@1.0.7(tailwindcss@3.4.17): resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} peerDependencies: tailwindcss: '>=3.0.0 || insiders' dependencies: - tailwindcss: 3.4.18 + tailwindcss: 3.4.17 dev: false - /tailwindcss@3.4.18: - resolution: {integrity: sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ==} + /tailwindcss@3.4.17: + resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -10719,36 +10712,36 @@ packages: picocolors: 1.1.1 postcss: 8.5.6 postcss-import: 15.1.0(postcss@8.5.6) - postcss-js: 4.1.0(postcss@8.5.6) - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6) + postcss-js: 4.0.1(postcss@8.5.6) + postcss-load-config: 4.0.2(postcss@8.5.6) postcss-nested: 6.2.0(postcss@8.5.6) postcss-selector-parser: 6.1.2 resolve: 1.22.10 sucrase: 3.35.0 transitivePeerDependencies: - - tsx - - yaml + - ts-node - /tailwindcss@4.1.14: - resolution: {integrity: sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==} + /tailwindcss@4.1.11: + resolution: {integrity: sha512-2E9TBm6MDD/xKYe+dvJZAmg3yxIEDNRc0jwlNyDg/4Fil2QcSLjFKGVff0lAf1jjeaArlG/M75Ey/EYr/OJtBA==} dev: false - /tapable@2.3.0: - resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + /tapable@2.2.2: + resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} engines: {node: '>=6'} - /tar@7.5.1: - resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==} + /tar@7.4.3: + resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} engines: {node: '>=18'} dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 minipass: 7.1.2 - minizlib: 3.1.0 + minizlib: 3.0.2 + mkdirp: 3.0.1 yallist: 5.0.0 dev: false - /terser-webpack-plugin@5.3.14(webpack@5.102.1): + /terser-webpack-plugin@5.3.14(webpack@5.101.0): resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -10764,19 +10757,19 @@ packages: uglify-js: optional: true dependencies: - '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/trace-mapping': 0.3.29 jest-worker: 27.5.1 - schema-utils: 4.3.3 + schema-utils: 4.3.2 serialize-javascript: 6.0.2 - terser: 5.44.0 - webpack: 5.102.1 + terser: 5.43.1 + webpack: 5.101.0 - /terser@5.44.0: - resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==} + /terser@5.43.1: + resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==} engines: {node: '>=10'} hasBin: true dependencies: - '@jridgewell/source-map': 0.3.11 + '@jridgewell/source-map': 0.3.10 acorn: 8.15.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -10805,11 +10798,11 @@ packages: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} dev: true - /tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + /tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} dependencies: - fdir: 6.5.0(picomatch@4.0.3) + fdir: 6.4.6(picomatch@4.0.3) picomatch: 4.0.3 /tinymce@7.9.1: @@ -10852,13 +10845,13 @@ packages: typescript: 5.6.3 dev: true - /ts-api-utils@2.1.0(typescript@5.9.3): + /ts-api-utils@2.1.0(typescript@5.9.2): resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' dependencies: - typescript: 5.9.3 + typescript: 5.9.2 dev: true /ts-dedent@2.2.0: @@ -10926,18 +10919,18 @@ packages: cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.2 - debug: 4.4.3 + debug: 4.4.1 esbuild: 0.24.2 joycon: 3.1.1 picocolors: 1.1.1 postcss: 8.5.6 - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6) + postcss-load-config: 6.0.1(postcss@8.5.6) resolve-from: 5.0.0 - rollup: 4.52.4 + rollup: 4.46.2 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 - tinyglobby: 0.2.15 + tinyglobby: 0.2.14 tree-kill: 1.2.2 typescript: 5.6.3 transitivePeerDependencies: @@ -11014,7 +11007,7 @@ packages: buffer-from: 1.1.2 combine-errors: 3.0.3 is-stream: 2.0.1 - js-base64: 3.7.8 + js-base64: 3.7.7 lodash.throttle: 4.1.1 proper-lockfile: 4.1.2 url-parse: 1.5.10 @@ -11077,18 +11070,18 @@ packages: reflect.getprototypeof: 1.0.10 dev: true - /typescript-eslint@8.46.1(eslint@9.37.0)(typescript@5.6.3): - resolution: {integrity: sha512-VHgijW803JafdSsDO8I761r3SHrgk4T00IdyQ+/UsthtgPRsBWQLqoSxOolxTpxRKi1kGXK0bSz4CoAc9ObqJA==} + /typescript-eslint@8.39.0(eslint@9.33.0)(typescript@5.6.3): + resolution: {integrity: sha512-lH8FvtdtzcHJCkMOKnN73LIn6SLTpoojgJqDAxPm1jCR14eWSGPX8ul/gggBdPMk/d5+u9V854vTYQ8T5jF/1Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1)(eslint@9.37.0)(typescript@5.6.3) - '@typescript-eslint/parser': 8.46.1(eslint@9.37.0)(typescript@5.6.3) - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.6.3) - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0)(typescript@5.6.3) - eslint: 9.37.0 + '@typescript-eslint/eslint-plugin': 8.39.0(@typescript-eslint/parser@8.39.0)(eslint@9.33.0)(typescript@5.6.3) + '@typescript-eslint/parser': 8.39.0(eslint@9.33.0)(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.39.0(eslint@9.33.0)(typescript@5.6.3) + eslint: 9.33.0 typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -11099,8 +11092,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + /typescript@5.9.2: + resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} engines: {node: '>=14.17'} hasBin: true dev: true @@ -11135,7 +11128,7 @@ packages: resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} requiresBuild: true dependencies: - napi-postinstall: 0.3.4 + napi-postinstall: 0.3.3 optionalDependencies: '@unrs/resolver-binding-android-arm-eabi': 1.11.1 '@unrs/resolver-binding-android-arm64': 1.11.1 @@ -11158,13 +11151,13 @@ packages: '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 dev: true - /update-browserslist-db@1.1.3(browserslist@4.26.3): + /update-browserslist-db@1.1.3(browserslist@4.25.2): resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.26.3 + browserslist: 4.25.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -11181,7 +11174,7 @@ packages: requires-port: 1.0.0 dev: false - /use-callback-ref@1.3.3(@types/react@18.3.26)(react@18.3.1): + /use-callback-ref@1.3.3(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} peerDependencies: @@ -11191,12 +11184,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.26 + '@types/react': 18.3.23 react: 18.3.1 tslib: 2.8.1 dev: false - /use-sidecar@1.1.3(@types/react@18.3.26)(react@18.3.1): + /use-sidecar@1.1.3(@types/react@18.3.23)(react@18.3.1): resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} engines: {node: '>=10'} peerDependencies: @@ -11206,7 +11199,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.3.26 + '@types/react': 18.3.23 detect-node-es: 1.1.0 react: 18.3.1 tslib: 2.8.1 @@ -11226,7 +11219,7 @@ packages: dependencies: inherits: 2.0.4 is-arguments: 1.2.0 - is-generator-function: 1.1.2 + is-generator-function: 1.1.0 is-typed-array: 1.1.15 which-typed-array: 1.1.19 dev: true @@ -11245,7 +11238,7 @@ packages: /victory-vendor@36.9.2: resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==} dependencies: - '@types/d3-array': 3.2.2 + '@types/d3-array': 3.2.1 '@types/d3-ease': 3.0.2 '@types/d3-interpolate': 3.0.4 '@types/d3-scale': 4.0.9 @@ -11261,7 +11254,7 @@ packages: d3-timer: 3.0.1 dev: false - /vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@6.4.0): + /vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@6.3.5): resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: vite: '*' @@ -11269,17 +11262,17 @@ packages: vite: optional: true dependencies: - debug: 4.4.3 + debug: 4.4.1 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.6.3) - vite: 6.4.0(@types/node@22.18.11) + vite: 6.3.5(@types/node@22.17.1) transitivePeerDependencies: - supports-color - typescript dev: true - /vite@5.4.20(@types/node@22.18.11): - resolution: {integrity: sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==} + /vite@5.4.19(@types/node@22.17.1): + resolution: {integrity: sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -11309,16 +11302,16 @@ packages: terser: optional: true dependencies: - '@types/node': 22.18.11 + '@types/node': 22.17.1 esbuild: 0.21.5 postcss: 8.5.6 - rollup: 4.52.4 + rollup: 4.46.2 optionalDependencies: fsevents: 2.3.3 dev: true - /vite@6.4.0(@types/node@22.18.11): - resolution: {integrity: sha512-oLnWs9Hak/LOlKjeSpOwD6JMks8BeICEdYMJBf6P4Lac/pO9tKiv/XhXnAM7nNfSkZahjlCZu9sS50zL8fSnsw==} + /vite@6.3.5(@types/node@22.17.1): + resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -11357,13 +11350,13 @@ packages: yaml: optional: true dependencies: - '@types/node': 22.18.11 - esbuild: 0.25.11 - fdir: 6.5.0(picomatch@4.0.3) + '@types/node': 22.17.1 + esbuild: 0.25.8 + fdir: 6.4.6(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.52.4 - tinyglobby: 0.2.15 + rollup: 4.46.2 + tinyglobby: 0.2.14 optionalDependencies: fsevents: 2.3.3 @@ -11395,8 +11388,8 @@ packages: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} dev: true - /webpack@5.102.1: - resolution: {integrity: sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==} + /webpack@5.101.0: + resolution: {integrity: sha512-B4t+nJqytPeuZlHuIKTbalhljIFXeNRqrUGAQgTGlfOl2lXXKXw+yZu6bicycP+PUlM44CxBjCFD6aciKFT3LQ==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -11413,7 +11406,7 @@ packages: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.26.3 + browserslist: 4.25.2 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -11422,12 +11415,12 @@ packages: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.1 + loader-runner: 4.3.0 mime-types: 2.1.35 neo-async: 2.6.2 - schema-utils: 4.3.3 - tapable: 2.3.0 - terser-webpack-plugin: 5.3.14(webpack@5.102.1) + schema-utils: 4.3.2 + tapable: 2.2.2 + terser-webpack-plugin: 5.3.14(webpack@5.101.0) watchpack: 2.4.4 webpack-sources: 3.3.3 transitivePeerDependencies: @@ -11464,7 +11457,7 @@ packages: is-async-function: 2.1.1 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.2 + is-generator-function: 1.1.0 is-regex: 1.2.1 is-weakref: 1.1.1 isarray: 2.0.5 @@ -11547,17 +11540,17 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} dependencies: - ansi-styles: 6.2.3 + ansi-styles: 6.2.1 string-width: 5.1.2 - strip-ansi: 7.1.2 + strip-ansi: 7.1.0 /wrap-ansi@9.0.2: resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} engines: {node: '>=18'} dependencies: - ansi-styles: 6.2.3 + ansi-styles: 6.2.1 string-width: 7.2.0 - strip-ansi: 7.1.2 + strip-ansi: 7.1.0 dev: false /ws@8.18.3: @@ -11617,6 +11610,11 @@ packages: engines: {node: '>=18'} dev: false + /yaml@2.8.1: + resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + engines: {node: '>= 14.6'} + hasBin: true + /yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} @@ -11698,8 +11696,8 @@ packages: resolution: {integrity: sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==} dev: false - /zustand@5.0.8(@types/react@18.3.26)(react@18.3.1): - resolution: {integrity: sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw==} + /zustand@5.0.7(@types/react@18.3.23)(react@18.3.1): + resolution: {integrity: sha512-Ot6uqHDW/O2VdYsKLLU8GQu8sCOM1LcoE8RwvLv9uuRT9s6SOHCKs0ZEOhxg+I1Ld+A1Q5lwx+UlKXXUoCZITg==} engines: {node: '>=12.20.0'} peerDependencies: '@types/react': ^18.3.18 @@ -11716,6 +11714,6 @@ packages: use-sync-external-store: optional: true dependencies: - '@types/react': 18.3.26 + '@types/react': 18.3.23 react: 18.3.1 dev: false