CI / changes (push) Successful in 17s
CI / commitlint (push) Has been skipped
CI / openapi (push) Successful in 26s
CI / web (push) Successful in 46s
CI / go (push) Successful in 1m1s
CI / bird2 (push) Successful in 17s
CI / release (push) Failing after 2m22s
Web UI полностью переведён с SvelteKit на новый стек: React 19, TanStack Router/Query/Table/Virtual, shadcn/ui (base-nova) и ReUI enterprise-компоненты (data-grid, filters, autocomplete). Новый код разложен по слоям: packages/ui (shadcn-примитивы), apps/web (роуты, shared-обёртки, ReUI-адаптации). BREAKING CHANGE: меняется структура и инструментинг фронтенда. - apps/web/ — новый Vite + React-проект (@evobgp/web), file-based роуты TanStack Router; экраны dashboard, modules, monitoring, network, operations, schedule, settings, tenant-settings, access, directories. - packages/ui/ — shadcn/ui-примитивы (@evobgp/ui) с общими стилями globals.css и cn-утилитой; CLI shadcn запускается из apps/web. - apps/web/src/components/reui/ — enterprise-паттерны ReUI. - pnpm workspace (pnpm-workspace.yaml, pnpm-lock.yaml, tsconfig.base.json) заменяет npm-проект в web/. - web/ переименован в web-legacy-svelte/ (архив-референс для миграции); импорты оттуда запрещены правилом WEB-22. - CI (.gitea/workflows/ci.yaml): job web переведён на Node 22 + pnpm 10 (typecheck/lint/build через pnpm --filter @evobgp/web); пути триггеров обновлены под apps/web|packages/ui. - deploy/docker/evobgp-web/Dockerfile: сборка из корня репозитория, pnpm install --frozen-lockfile, выход dist из apps/web/dist. - .cursor/rules/web-shadcn.mdc, context7-stack.mdc, engineering.mdc, AGENTS.md — обновлены под React-стек (WEB-01..WEB-22, DOC-SYNC-06/07). Проверки WEB-19 локально: typecheck, lint, build — exit 0. Co-authored-by: Cursor <[email protected]>
63 lines
1.8 KiB
JSON
63 lines
1.8 KiB
JSON
{
|
|
"name": "@evobgp/web",
|
|
"private": true,
|
|
"version": "0.0.1",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsr generate && tsc -b && vite build",
|
|
"preview": "vite preview",
|
|
"typecheck": "tsr generate && tsc --noEmit",
|
|
"lint": "eslint .",
|
|
"test": "vitest run"
|
|
},
|
|
"dependencies": {
|
|
"@base-ui/react": "^1.0.0",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@dnd-kit/utilities": "^3.2.2",
|
|
"@evobgp/ui": "workspace:*",
|
|
"@hookform/resolvers": "^3.10.0",
|
|
"@tanstack/react-query": "^5.90.2",
|
|
"@tanstack/react-query-devtools": "^5.90.2",
|
|
"@tanstack/react-router": "^1.130.2",
|
|
"@tanstack/react-router-devtools": "^1.130.2",
|
|
"@tanstack/react-table": "^8.21.3",
|
|
"@tanstack/react-virtual": "^3.14.4",
|
|
"class-variance-authority": "^0.7.1",
|
|
"cmdk": "^1.1.1",
|
|
"date-fns": "^4.4.0",
|
|
"input-otp": "^1.4.2",
|
|
"lucide-react": "^0.468.0",
|
|
"next-themes": "^0.4.6",
|
|
"react": "^19.2.0",
|
|
"react-day-picker": "^10.0.1",
|
|
"react-dom": "^19.2.0",
|
|
"react-hook-form": "^7.60.0",
|
|
"recharts": "3.8.0",
|
|
"sonner": "^1.7.0",
|
|
"zod": "^3.25.0"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/vite": "^4.1.0",
|
|
"@tanstack/router-plugin": "^1.130.0",
|
|
"@tanstack/router-cli": "^1.130.0",
|
|
"@types/react": "^19.2.7",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@vitejs/plugin-react": "^5.1.1",
|
|
"eslint": "^9.0.0",
|
|
"@eslint/js": "^9.0.0",
|
|
"eslint-plugin-react-hooks": "^5.0.0",
|
|
"eslint-plugin-react-refresh": "^0.4.0",
|
|
"globals": "^15.0.0",
|
|
"typescript-eslint": "^8.0.0",
|
|
"happy-dom": "^18.0.0",
|
|
"tailwindcss": "^4.1.0",
|
|
"tw-animate-css": "^1.0.0",
|
|
"typescript": "^5.9.2",
|
|
"vite": "^7.3.1",
|
|
"vitest": "^3.0.0"
|
|
}
|
|
}
|