From 0719c63ef13ed869dbf10c309ff9f9c1823444f3 Mon Sep 17 00:00:00 2001 From: Sakurasan <26715255+Sakurasan@users.noreply.github.com> Date: Mon, 6 Jul 2026 01:01:38 +0800 Subject: [PATCH] up --- Dockerfile | 28 ++++++---- backend/main.py | 9 +++- buildx-push.sh | 37 +++---------- docker-compose.yml | 25 ++------- nginx.conf | 16 ------ package.json | 96 ++++++++++++++++----------------- pnpm-lock.yaml | 132 ++++++++++++++++++++++----------------------- 7 files changed, 149 insertions(+), 194 deletions(-) delete mode 100644 nginx.conf diff --git a/Dockerfile b/Dockerfile index 8763846..73c0830 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,23 @@ -# ---- Build stage ---- -FROM node:22-alpine AS build - +# ---- Frontend build ---- +FROM node:22-alpine AS frontend-build WORKDIR /app -COPY . . +COPY package.json pnpm-lock.yaml .npmrc ./ RUN corepack enable && corepack prepare pnpm@10 --activate && pnpm install - +COPY . . RUN pnpm build -# ---- Serve stage ---- -FROM nginx:alpine +# ---- Backend runtime ---- +FROM python:3.11-slim +WORKDIR /app -COPY --from=build /app/dist /usr/share/nginx/html -COPY nginx.conf /etc/nginx/conf.d/default.conf +RUN apt-get update && apt-get install -y --no-install-recommends gcc \ + && rm -rf /var/lib/apt/lists/* -EXPOSE 3015 -CMD ["nginx", "-g", "daemon off;"] +COPY backend/requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +COPY backend/ . +COPY --from=frontend-build /app/dist ./dist + +EXPOSE 8000 +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] diff --git a/backend/main.py b/backend/main.py index 9daf0aa..5eff0ef 100644 --- a/backend/main.py +++ b/backend/main.py @@ -1,5 +1,7 @@ +import os from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware +from fastapi.staticfiles import StaticFiles from contextlib import asynccontextmanager from dotenv import load_dotenv @@ -15,7 +17,7 @@ async def lifespan(app: FastAPI): yield -app = FastAPI(title="A股走势追踪 API", version="1.0.0", lifespan=lifespan) +app = FastAPI(title="AUV API", version="1.0.0", lifespan=lifespan) app.add_middleware( CORSMiddleware, @@ -29,3 +31,8 @@ app.include_router(stock.router, prefix="/api/stock") app.include_router(collections.router, prefix="/api/collections") app.include_router(shares.router, prefix="/api/share") app.include_router(sectors.router, prefix="/api/sectors") + +# 生产模式:后端同时托管前端静态文件 +dist_path = os.path.join(os.path.dirname(__file__), "dist") +if os.path.isdir(dist_path): + app.mount("/", StaticFiles(directory=dist_path, html=True), name="static") diff --git a/buildx-push.sh b/buildx-push.sh index e749792..293b374 100755 --- a/buildx-push.sh +++ b/buildx-push.sh @@ -1,24 +1,15 @@ #!/usr/bin/env bash set -euo pipefail -# ============================================ -# 多架构构建 & 推送脚本 -# 用法: -# DOCKER_USER=yourname ./buildx-push.sh -# DOCKER_USER=yourname VERSION=v1.0.0 ./buildx-push.sh -# ============================================ - -DOCKER_USER="${DOCKER_USER:-DOCKER_USER}" +DOCKER_USER="${DOCKER_USER:-mirrors2}" VERSION="${VERSION:-$(git describe --tags --always 2>/dev/null || echo latest)}" PLATFORMS="linux/amd64,linux/arm64" -# 确保 buildx 可用 if ! docker buildx version &>/dev/null; then - echo "❌ docker buildx 不可用,请安装或升级 Docker" + echo "❌ docker buildx 不可用" exit 1 fi -# 创建/复用 multiarch builder if ! docker buildx inspect multiarch &>/dev/null 2>&1; then echo "🔧 创建 multiarch builder..." docker buildx create --name multiarch --driver docker-container --use @@ -29,29 +20,15 @@ docker buildx inspect --bootstrap echo "" echo "========================================" -echo "🚀 构建 backend (${PLATFORMS})" -echo " tag: ${DOCKER_USER}/meoo-backend:${VERSION}" +echo "🚀 构建 app (${PLATFORMS})" +echo " tag: ${DOCKER_USER}/auv:${VERSION}" echo "========================================" docker buildx build \ --platform "${PLATFORMS}" \ - -t "${DOCKER_USER}/meoo-backend:${VERSION}" \ - -t "${DOCKER_USER}/meoo-backend:latest" \ - --push \ - ./backend - -echo "" -echo "========================================" -echo "🚀 构建 frontend (${PLATFORMS})" -echo " tag: ${DOCKER_USER}/meoo-frontend:${VERSION}" -echo "========================================" -docker buildx build \ - --platform "${PLATFORMS}" \ - -t "${DOCKER_USER}/meoo-frontend:${VERSION}" \ - -t "${DOCKER_USER}/meoo-frontend:latest" \ + -t "${DOCKER_USER}/auv:${VERSION}" \ + -t "${DOCKER_USER}/auv:latest" \ --push \ . echo "" -echo "✅ 完成!" -echo " backend: ${DOCKER_USER}/meoo-backend:${VERSION}" -echo " frontend: ${DOCKER_USER}/meoo-frontend:${VERSION}" +echo "✅ 完成!${DOCKER_USER}/auv:${VERSION}" diff --git a/docker-compose.yml b/docker-compose.yml index d7fbd52..e854e1a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,29 +1,10 @@ services: - backend: + app: + image: ${DOCKER_USER:-mirrors2}/meoo:${VERSION:-latest} build: - context: ./backend - # 构建时指定架构,docker buildx 自动处理 - x-bake: - platforms: - - linux/amd64 - - linux/arm64 - image: ${DOCKER_USER:-DOCKER_USER}/meoo-backend:${VERSION:-latest} + context: . ports: - "8000:8000" env_file: - ./backend/.env restart: unless-stopped - - frontend: - build: - context: . - x-bake: - platforms: - - linux/amd64 - - linux/arm64 - image: ${DOCKER_USER:-DOCKER_USER}/meoo-frontend:${VERSION:-latest} - ports: - - "3015:3015" - depends_on: - - backend - restart: unless-stopped diff --git a/nginx.conf b/nginx.conf deleted file mode 100644 index 5e62066..0000000 --- a/nginx.conf +++ /dev/null @@ -1,16 +0,0 @@ -server { - listen 3015; - server_name localhost; - root /usr/share/nginx/html; - index index.html; - - location / { - try_files $uri $uri/ /index.html; - } - location /api/ { - proxy_pass http://backend:8000; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } -} diff --git a/package.json b/package.json index b36a759..4589426 100755 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "a-share-tracker", + "name": "auv", "version": "1.0.0", "private": true, "type": "module", @@ -10,65 +10,65 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@hookform/resolvers": "^5.2.2", - "@radix-ui/react-accordion": "^1.2.12", - "@radix-ui/react-alert-dialog": "^1.1.15", - "@radix-ui/react-aspect-ratio": "^1.1.8", - "@radix-ui/react-avatar": "^1.1.11", - "@radix-ui/react-checkbox": "^1.3.3", - "@radix-ui/react-collapsible": "^1.1.12", - "@radix-ui/react-context-menu": "^2.2.16", - "@radix-ui/react-dialog": "^1.1.15", - "@radix-ui/react-dropdown-menu": "^2.1.16", - "@radix-ui/react-hover-card": "^1.1.15", - "@radix-ui/react-label": "^2.1.8", - "@radix-ui/react-menubar": "^1.1.16", - "@radix-ui/react-navigation-menu": "^1.2.14", - "@radix-ui/react-popover": "^1.1.15", - "@radix-ui/react-progress": "^1.1.8", - "@radix-ui/react-radio-group": "^1.3.8", - "@radix-ui/react-scroll-area": "^1.2.10", - "@radix-ui/react-select": "^2.2.6", - "@radix-ui/react-separator": "^1.1.8", - "@radix-ui/react-slider": "^1.3.6", - "@radix-ui/react-slot": "^1.2.4", - "@radix-ui/react-switch": "^1.2.6", - "@radix-ui/react-tabs": "^1.1.13", - "@radix-ui/react-toggle": "^1.1.10", - "@radix-ui/react-toggle-group": "^1.1.11", - "@radix-ui/react-tooltip": "^1.2.8", - "@tailwindcss/vite": "^4.2.1", - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-router": "^1.168.25", - "@tanstack/router-plugin": "^1.167.28", + "@hookform/resolvers": "^5.4.0", + "@radix-ui/react-accordion": "^1.2.15", + "@radix-ui/react-alert-dialog": "^1.1.18", + "@radix-ui/react-aspect-ratio": "^1.1.11", + "@radix-ui/react-avatar": "^1.2.1", + "@radix-ui/react-checkbox": "^1.3.6", + "@radix-ui/react-collapsible": "^1.1.15", + "@radix-ui/react-context-menu": "^2.3.2", + "@radix-ui/react-dialog": "^1.1.18", + "@radix-ui/react-dropdown-menu": "^2.1.19", + "@radix-ui/react-hover-card": "^1.1.18", + "@radix-ui/react-label": "^2.1.11", + "@radix-ui/react-menubar": "^1.1.19", + "@radix-ui/react-navigation-menu": "^1.2.17", + "@radix-ui/react-popover": "^1.1.18", + "@radix-ui/react-progress": "^1.1.11", + "@radix-ui/react-radio-group": "^1.4.2", + "@radix-ui/react-scroll-area": "^1.2.13", + "@radix-ui/react-select": "^2.3.2", + "@radix-ui/react-separator": "^1.1.11", + "@radix-ui/react-slider": "^1.4.2", + "@radix-ui/react-slot": "^1.3.0", + "@radix-ui/react-switch": "^1.3.2", + "@radix-ui/react-tabs": "^1.1.16", + "@radix-ui/react-toggle": "^1.1.13", + "@radix-ui/react-toggle-group": "^1.1.14", + "@radix-ui/react-tooltip": "^1.2.11", + "@tailwindcss/vite": "^4.3.2", + "@tanstack/react-query": "^5.101.2", + "@tanstack/react-router": "^1.170.17", + "@tanstack/router-plugin": "^1.168.19", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", - "date-fns": "^4.1.0", + "date-fns": "^4.4.0", "embla-carousel-react": "^8.6.0", "framer-motion": "^11.18.2", "input-otp": "^1.4.2", "lucide-react": "^0.575.0", - "react": "^19.2.0", + "react": "^19.2.7", "react-day-picker": "^9.14.0", - "react-dom": "^19.2.0", - "react-hook-form": "^7.71.2", - "react-resizable-panels": "^4.6.5", + "react-dom": "^19.2.7", + "react-hook-form": "^7.81.0", + "react-resizable-panels": "^4.12.1", "recharts": "^2.15.4", "sonner": "^2.0.7", - "tailwind-merge": "^3.5.0", - "tailwindcss": "^4.2.1", - "tw-animate-css": "^1.3.4", + "tailwind-merge": "^3.6.0", + "tailwindcss": "^4.3.2", + "tw-animate-css": "^1.4.0", "vaul": "^1.1.2", - "vite-tsconfig-paths": "^6.0.2", - "zod": "^3.24.2" + "vite-tsconfig-paths": "^6.1.1", + "zod": "^3.25.76" }, "devDependencies": { - "@types/node": "^22.16.5", - "@types/react": "^19.2.0", - "@types/react-dom": "^19.2.0", - "@vitejs/plugin-react": "^5.0.4", - "typescript": "^5.8.3", - "vite": "^7.3.1" + "@types/node": "^22.20.0", + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^5.2.0", + "typescript": "^5.9.3", + "vite": "^7.3.6" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5088d1d..e2c4f2e 100755 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,97 +9,97 @@ importers: .: dependencies: '@hookform/resolvers': - specifier: ^5.2.2 - version: 5.4.0(react-hook-form@7.80.0(react@19.2.7)) + specifier: ^5.4.0 + version: 5.4.0(react-hook-form@7.81.0(react@19.2.7)) '@radix-ui/react-accordion': - specifier: ^1.2.12 + specifier: ^1.2.15 version: 1.2.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-alert-dialog': - specifier: ^1.1.15 + specifier: ^1.1.18 version: 1.1.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-aspect-ratio': - specifier: ^1.1.8 + specifier: ^1.1.11 version: 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-avatar': - specifier: ^1.1.11 + specifier: ^1.2.1 version: 1.2.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-checkbox': - specifier: ^1.3.3 + specifier: ^1.3.6 version: 1.3.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-collapsible': - specifier: ^1.1.12 + specifier: ^1.1.15 version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-context-menu': - specifier: ^2.2.16 + specifier: ^2.3.2 version: 2.3.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-dialog': - specifier: ^1.1.15 + specifier: ^1.1.18 version: 1.1.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-dropdown-menu': - specifier: ^2.1.16 + specifier: ^2.1.19 version: 2.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-hover-card': - specifier: ^1.1.15 + specifier: ^1.1.18 version: 1.1.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-label': - specifier: ^2.1.8 + specifier: ^2.1.11 version: 2.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-menubar': - specifier: ^1.1.16 + specifier: ^1.1.19 version: 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-navigation-menu': - specifier: ^1.2.14 + specifier: ^1.2.17 version: 1.2.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-popover': - specifier: ^1.1.15 + specifier: ^1.1.18 version: 1.1.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-progress': - specifier: ^1.1.8 + specifier: ^1.1.11 version: 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-radio-group': - specifier: ^1.3.8 + specifier: ^1.4.2 version: 1.4.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-scroll-area': - specifier: ^1.2.10 + specifier: ^1.2.13 version: 1.2.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-select': - specifier: ^2.2.6 + specifier: ^2.3.2 version: 2.3.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-separator': - specifier: ^1.1.8 + specifier: ^1.1.11 version: 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-slider': - specifier: ^1.3.6 + specifier: ^1.4.2 version: 1.4.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-slot': - specifier: ^1.2.4 + specifier: ^1.3.0 version: 1.3.0(@types/react@19.2.17)(react@19.2.7) '@radix-ui/react-switch': - specifier: ^1.2.6 + specifier: ^1.3.2 version: 1.3.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-tabs': - specifier: ^1.1.13 + specifier: ^1.1.16 version: 1.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-toggle': - specifier: ^1.1.10 + specifier: ^1.1.13 version: 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-toggle-group': - specifier: ^1.1.11 + specifier: ^1.1.14 version: 1.1.14(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-tooltip': - specifier: ^1.2.8 + specifier: ^1.2.11 version: 1.2.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@tailwindcss/vite': - specifier: ^4.2.1 + specifier: ^4.3.2 version: 4.3.2(vite@7.3.6(@types/node@22.20.0)(jiti@2.7.0)(lightningcss@1.32.0)(tsx@4.22.5)) '@tanstack/react-query': - specifier: ^5.83.0 + specifier: ^5.101.2 version: 5.101.2(react@19.2.7) '@tanstack/react-router': - specifier: ^1.168.25 + specifier: ^1.170.17 version: 1.170.17(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@tanstack/router-plugin': - specifier: ^1.167.28 + specifier: ^1.168.19 version: 1.168.19(@tanstack/react-router@1.170.17(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rollup@4.62.2)(vite@7.3.6(@types/node@22.20.0)(jiti@2.7.0)(lightningcss@1.32.0)(tsx@4.22.5)) class-variance-authority: specifier: ^0.7.1 @@ -111,7 +111,7 @@ importers: specifier: ^1.1.1 version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) date-fns: - specifier: ^4.1.0 + specifier: ^4.4.0 version: 4.4.0 embla-carousel-react: specifier: ^8.6.0 @@ -126,20 +126,20 @@ importers: specifier: ^0.575.0 version: 0.575.0(react@19.2.7) react: - specifier: ^19.2.0 + specifier: ^19.2.7 version: 19.2.7 react-day-picker: specifier: ^9.14.0 version: 9.14.0(react@19.2.7) react-dom: - specifier: ^19.2.0 + specifier: ^19.2.7 version: 19.2.7(react@19.2.7) react-hook-form: - specifier: ^7.71.2 - version: 7.80.0(react@19.2.7) + specifier: ^7.81.0 + version: 7.81.0(react@19.2.7) react-resizable-panels: - specifier: ^4.6.5 - version: 4.12.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^4.12.1 + version: 4.12.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7) recharts: specifier: ^2.15.4 version: 2.15.4(react-dom@19.2.7(react@19.2.7))(react@19.2.7) @@ -147,41 +147,41 @@ importers: specifier: ^2.0.7 version: 2.0.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7) tailwind-merge: - specifier: ^3.5.0 + specifier: ^3.6.0 version: 3.6.0 tailwindcss: - specifier: ^4.2.1 + specifier: ^4.3.2 version: 4.3.2 tw-animate-css: - specifier: ^1.3.4 + specifier: ^1.4.0 version: 1.4.0 vaul: specifier: ^1.1.2 version: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) vite-tsconfig-paths: - specifier: ^6.0.2 + specifier: ^6.1.1 version: 6.1.1(typescript@5.9.3)(vite@7.3.6(@types/node@22.20.0)(jiti@2.7.0)(lightningcss@1.32.0)(tsx@4.22.5)) zod: - specifier: ^3.24.2 + specifier: ^3.25.76 version: 3.25.76 devDependencies: '@types/node': - specifier: ^22.16.5 + specifier: ^22.20.0 version: 22.20.0 '@types/react': - specifier: ^19.2.0 + specifier: ^19.2.17 version: 19.2.17 '@types/react-dom': - specifier: ^19.2.0 + specifier: ^19.2.3 version: 19.2.3(@types/react@19.2.17) '@vitejs/plugin-react': - specifier: ^5.0.4 + specifier: ^5.2.0 version: 5.2.0(vite@7.3.6(@types/node@22.20.0)(jiti@2.7.0)(lightningcss@1.32.0)(tsx@4.22.5)) typescript: - specifier: ^5.8.3 + specifier: ^5.9.3 version: 5.9.3 vite: - specifier: ^7.3.1 + specifier: ^7.3.6 version: 7.3.6(@types/node@22.20.0)(jiti@2.7.0)(lightningcss@1.32.0)(tsx@4.22.5) packages: @@ -1448,8 +1448,8 @@ packages: babel-dead-code-elimination@1.0.12: resolution: {integrity: sha512-GERT7L2TiYcYDtYk1IpD+ASAYXjKbLTDPhBtYj7X1NuRMDTMtAx9kyBenub1Ev41lo91OHCKdmP+egTDmfQ7Ig==} - baseline-browser-mapping@2.10.41: - resolution: {integrity: sha512-WwS7MHhqGHHlaVsqRZnhvCEMS0owDX+SxRlve7JkuH7My1Ara3ZriTmCQupPfYjxMZ8I/tgxtJYr2t7taHaH4A==} + baseline-browser-mapping@2.10.42: + resolution: {integrity: sha512-c/jurFrDLyui7o1J86yLkRu4LMsTYcBohveus7/I2Hzdn9KIP2bdJPTue/lR1KH46enoPbD77GKeSYNdyPoD3Q==} engines: {node: '>=6.0.0'} hasBin: true @@ -1563,8 +1563,8 @@ packages: dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} - electron-to-chromium@1.5.385: - resolution: {integrity: sha512-78sa/M08MNAYHQfjoWMvOlKQqZ0ElhSm/L5HNUc96VZ3b+KvDVnngFm8sYQy0XrhTRgAhggHr5abA7yTvRdo4Q==} + electron-to-chromium@1.5.387: + resolution: {integrity: sha512-TaxwufTFDufvPEoXdhwVrA3UdFWBeWGkYoJ1K8ldF1xe6gKfth6iRNS5lTQ5JPNOHdGQm8PT1QYKUqFLCiUefQ==} embla-carousel-react@8.6.0: resolution: {integrity: sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==} @@ -1819,8 +1819,8 @@ packages: peerDependencies: react: ^19.2.7 - react-hook-form@7.80.0: - resolution: {integrity: sha512-4P+fk6oXsxY+6xSj7Euhc2sumQD8zQqCuVHoJwoyp9EchP+IUW9OESB7uHFJOKsIBQ4MQqYE84INJFqUCYNoOg==} + react-hook-form@7.81.0: + resolution: {integrity: sha512-ocbmr2p5KBMoAfj4WCUvped33lVi1Kd5DuDUvQDnB6VEAacOjPI/jMbtDdbhco4y9ct4xUuCmMY0b/C9L0QHjw==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 @@ -1855,8 +1855,8 @@ packages: '@types/react': optional: true - react-resizable-panels@4.12.0: - resolution: {integrity: sha512-t/Gp57qSCxGQ52ckhz+8lM7dnuymeU95TEzl2U203qEbGkSLHrtm7US2/ANzq/zOlja3CwPTAfCDuh1unv9mfw==} + react-resizable-panels@4.12.1: + resolution: {integrity: sha512-ElE/UpOvMLRWtAqbCgyizHXcbws8RPMyN3cBqmdY17Nxr5f01+DEwzOLqhgcy68GSnjtIUFgKWKl8aIgx5aypQ==} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 @@ -2322,10 +2322,10 @@ snapshots: '@floating-ui/utils@0.2.11': {} - '@hookform/resolvers@5.4.0(react-hook-form@7.80.0(react@19.2.7))': + '@hookform/resolvers@5.4.0(react-hook-form@7.81.0(react@19.2.7))': dependencies: '@standard-schema/utils': 0.3.0 - react-hook-form: 7.80.0(react@19.2.7) + react-hook-form: 7.81.0(react@19.2.7) '@jridgewell/gen-mapping@0.3.13': dependencies: @@ -3310,13 +3310,13 @@ snapshots: transitivePeerDependencies: - supports-color - baseline-browser-mapping@2.10.41: {} + baseline-browser-mapping@2.10.42: {} browserslist@4.28.4: dependencies: - baseline-browser-mapping: 2.10.41 + baseline-browser-mapping: 2.10.42 caniuse-lite: 1.0.30001800 - electron-to-chromium: 1.5.385 + electron-to-chromium: 1.5.387 node-releases: 2.0.50 update-browserslist-db: 1.2.3(browserslist@4.28.4) @@ -3409,7 +3409,7 @@ snapshots: '@babel/runtime': 7.29.7 csstype: 3.2.3 - electron-to-chromium@1.5.385: {} + electron-to-chromium@1.5.387: {} embla-carousel-react@8.6.0(react@19.2.7): dependencies: @@ -3618,7 +3618,7 @@ snapshots: react: 19.2.7 scheduler: 0.27.0 - react-hook-form@7.80.0(react@19.2.7): + react-hook-form@7.81.0(react@19.2.7): dependencies: react: 19.2.7 @@ -3647,7 +3647,7 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 - react-resizable-panels@4.12.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7): + react-resizable-panels@4.12.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7): dependencies: react: 19.2.7 react-dom: 19.2.7(react@19.2.7)