Resolve verified V1 frontend feedback by improving channel workflows, auth behavior, API key interactions, user filtering, layout persistence, subscription quota handling, i18n text, pricing metadata, and stale frontend cache recovery. - Add a global frontend cache version cleanup to prevent old frontend localStorage from causing page errors after upgrades. - Fix channel copy refresh, model mapping input focus loss, create-channel fetch-model title state, upstream model update confirmation, and batch test toast behavior. - Respect password login settings and improve Turnstile, forgot-password, registration, and invite-link flows. - Make user role/status filtering server-side and preserve table page size in URLs. - Improve API key edit validation feedback and prefetch real keys for reliable copy actions. - Fix rankings access fail-open behavior, double scrollbars, subscription received amount conversion/display, token i18n wording, model deletion confirmation grammar, and Claude pricing context inference. - Add clearer Playground model/group loading errors. Validation: - bun run typecheck - bun run i18n:sync - gofmt on modified Go files - go test ./controller ./model -run '^$'
114 lines
3.3 KiB
JSON
Vendored
114 lines
3.3 KiB
JSON
Vendored
{
|
|
"name": "newapi-web",
|
|
"private": false,
|
|
"version": "1.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "rsbuild dev",
|
|
"build": "rsbuild build",
|
|
"build:check": "tsc -b && rsbuild build",
|
|
"typecheck": "tsc -b",
|
|
"lint": "eslint .",
|
|
"preview": "rsbuild preview",
|
|
"format:check": "prettier --check .",
|
|
"format": "prettier --write .",
|
|
"copyright:check": "node scripts/add-copyright.mjs --check",
|
|
"copyright": "node scripts/add-copyright.mjs",
|
|
"i18n:sync": "node scripts/sync-i18n.mjs",
|
|
"knip": "knip"
|
|
},
|
|
"dependencies": {
|
|
"@base-ui/react": "^1.5.0",
|
|
"@fontsource-variable/public-sans": "^5.2.7",
|
|
"@hookform/resolvers": "^5.4.0",
|
|
"@hugeicons/core-free-icons": "^4.1.4",
|
|
"@hugeicons/react": "^1.1.6",
|
|
"@lobehub/icons": "^5.8.0",
|
|
"@tailwindcss/postcss": "^4.3.0",
|
|
"@tanstack/react-query": "^5.100.14",
|
|
"@tanstack/react-router": "^1.170.8",
|
|
"@tanstack/react-table": "^8.21.3",
|
|
"@tanstack/react-virtual": "^3.13.25",
|
|
"@visactor/react-vchart": "^2.0.22",
|
|
"@visactor/vchart": "^2.0.22",
|
|
"ai": "^6.0.191",
|
|
"auto-skeleton-react": "^1.0.5",
|
|
"axios": "^1.16.1",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cmdk": "^1.1.1",
|
|
"date-fns": "^4.3.0",
|
|
"dayjs": "^1.11.20",
|
|
"i18next": "^26.2.0",
|
|
"i18next-browser-languagedetector": "^8.2.1",
|
|
"input-otp": "^1.4.2",
|
|
"lucide-react": "^1.16.0",
|
|
"motion": "^12.40.0",
|
|
"nanoid": "^5.1.11",
|
|
"next-themes": "^0.4.6",
|
|
"qrcode.react": "^4.2.0",
|
|
"react": "^19.2.6",
|
|
"react-day-picker": "^10.0.1",
|
|
"react-dom": "^19.2.6",
|
|
"react-hook-form": "^7.76.1",
|
|
"react-i18next": "^17.0.8",
|
|
"react-icons": "^5.6.0",
|
|
"react-markdown": "^10.1.0",
|
|
"react-resizable-panels": "^4.11.2",
|
|
"react-top-loading-bar": "^3.0.2",
|
|
"recharts": "3.8.1",
|
|
"rehype-raw": "^7.0.0",
|
|
"remark-gfm": "^4.0.1",
|
|
"shiki": "^4.1.0",
|
|
"sonner": "^2.0.7",
|
|
"sse.js": "^2.8.0",
|
|
"streamdown": "^2.5.0",
|
|
"tailwind-merge": "^3.6.0",
|
|
"tailwindcss": "^4.3.0",
|
|
"tokenlens": "^1.3.1",
|
|
"tw-animate-css": "^1.4.0",
|
|
"use-stick-to-bottom": "^1.1.4",
|
|
"vaul": "^1.1.2",
|
|
"zod": "^4.4.3",
|
|
"zustand": "^5.0.13"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^10.0.1",
|
|
"@rsbuild/core": "^2.0.7",
|
|
"@rsbuild/plugin-react": "^2.0.0",
|
|
"@tanstack/eslint-plugin-query": "^5.100.14",
|
|
"@tanstack/react-query-devtools": "^5.100.14",
|
|
"@tanstack/react-router-devtools": "^1.167.0",
|
|
"@tanstack/router-plugin": "^1.168.11",
|
|
"@trivago/prettier-plugin-sort-imports": "^6.0.2",
|
|
"@types/node": "^25.9.1",
|
|
"@types/react": "^19.2.15",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@xyflow/react": "^12.10.2",
|
|
"embla-carousel-react": "^8.6.0",
|
|
"eslint": "^10.4.0",
|
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
"eslint-plugin-react-refresh": "^0.5.2",
|
|
"globals": "^17.6.0",
|
|
"knip": "^6.14.2",
|
|
"prettier": "^3.8.3",
|
|
"prettier-plugin-tailwindcss": "^0.8.0",
|
|
"shadcn": "^4.8.0",
|
|
"typescript": "~6.0.3",
|
|
"typescript-eslint": "^8.59.4"
|
|
},
|
|
"overrides": {
|
|
"brace-expansion": "5.0.6",
|
|
"dompurify": "3.4.5",
|
|
"fast-uri": "3.1.2",
|
|
"hono": "4.12.22",
|
|
"ip-address": "10.2.0",
|
|
"js-cookie": "3.0.7",
|
|
"mermaid": "11.15.0",
|
|
"minimist": "1.2.8",
|
|
"postcss": "8.5.15",
|
|
"qs": "6.15.2",
|
|
"uuid": "14.0.0"
|
|
}
|
|
}
|