mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-07-31 20:32:23 +03:00
Frontend deps: @hookform/resolvers 5.4.3 -> 5.5.7, Storybook 10.5.4 -> 10.5.5 across the four packages we declare, globals 17.7.0 -> 17.8.0, and jsdom 29.1.1 -> 30.0.1. The jsdom major replaces its CSS and selector stack -- @asamuzakjp/css-color 5 -> 6, @asamuzakjp/dom-selector 7 -> 8, undici 7 -> 8, nwsapi and generational-cache folded into their parents, whatwg-url 17 nested underneath. Nothing in the Vitest suites reaches those directly and the whole frontend gate (typecheck, lint, tests, build, Storybook compile) is green. Panel frontend version to 0.6.0. Backend deps: mattn/go-sqlite3 1.14.48 -> 1.14.49 and valyala/fasthttp 1.72.0 -> 1.73.0, plus the golang.org/x/exp and genproto/googleapis/rpc indirect bumps that came with them. Go tests: modernize -fix output, covering range-over-int, sync.WaitGroup.Go in place of manual Add/Done pairs, maps.Copy, and Go 1.26 new(expr) for pointer-to-value in the forwarded-trust table. The storedAs helper is deleted instead of being left behind a //go:fix inline directive -- keeping it that way fails govet on the one call site the rewrite did not reach, and every caller now takes new(...) directly. Behaviour is unchanged. DnsTab: the hosts-sync effect tested dns while declaring dnsEnabled in its dependency array. Both carry the same truth value, so this is exhaustive-deps hygiene rather than a behaviour change.
113 lines
3.0 KiB
JSON
113 lines
3.0 KiB
JSON
{
|
|
"name": "3x-ui-frontend",
|
|
"private": true,
|
|
"version": "0.6.0",
|
|
"type": "module",
|
|
"description": "3x-ui panel frontend (React 19 + Ant Design 6 + Vite 8).",
|
|
"engines": {
|
|
"node": ">=24.0.0",
|
|
"npm": ">=10.0.0"
|
|
},
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "npm run gen:api && vite build",
|
|
"preview": "vite preview",
|
|
"lint": "eslint src",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"storybook": "storybook dev -p 6006",
|
|
"build-storybook": "storybook build",
|
|
"gen": "npm run gen:zod && npm run gen:api",
|
|
"gen:api": "node scripts/build-openapi.mjs",
|
|
"gen:zod": "cd .. && go run ./tools/openapigen",
|
|
"prepare": "cd .. && husky frontend/.husky || true"
|
|
},
|
|
"lint-staged": {
|
|
"src/**/*.{ts,tsx}": "eslint --fix"
|
|
},
|
|
"dependencies": {
|
|
"@ant-design/icons": "^6.3.2",
|
|
"@codemirror/lang-json": "^6.0.2",
|
|
"@codemirror/theme-one-dark": "^6.1.3",
|
|
"@hookform/resolvers": "^5.5.7",
|
|
"@noble/hashes": "^2.2.0",
|
|
"@tanstack/react-query": "^5.101.4",
|
|
"@tanstack/react-query-devtools": "^5.101.4",
|
|
"antd": "^6.5.2",
|
|
"codemirror": "^6.0.2",
|
|
"dayjs": "^1.11.21",
|
|
"i18next": "^26.3.6",
|
|
"otpauth": "^9.5.1",
|
|
"persian-calendar-suite": "^1.5.5",
|
|
"react": "^19.2.8",
|
|
"react-dom": "^19.2.8",
|
|
"react-hook-form": "^7.83.0",
|
|
"react-i18next": "^17.0.11",
|
|
"react-router": "^8.3.0",
|
|
"swagger-ui-react": "^5.32.11",
|
|
"uplot": "^1.6.32",
|
|
"zod": "^4.4.3"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^10.0.1",
|
|
"@storybook/addon-a11y": "^10.5.5",
|
|
"@storybook/addon-docs": "^10.5.5",
|
|
"@storybook/addon-vitest": "^10.5.5",
|
|
"@storybook/react-vite": "^10.5.5",
|
|
"@testing-library/dom": "^10.4.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@types/react": "^19.2.17",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@types/swagger-ui-react": "^5.18.0",
|
|
"@vitejs/plugin-react": "^6.0.4",
|
|
"@vitest/browser-playwright": "4.1.10",
|
|
"@vitest/coverage-v8": "^4.1.10",
|
|
"eslint": "^10.8.0",
|
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
"globals": "^17.8.0",
|
|
"husky": "^9.1.7",
|
|
"jsdom": "^30.0.1",
|
|
"lint-staged": "^17.2.0",
|
|
"msw": "^2.15.0",
|
|
"playwright": "^1.62.0",
|
|
"storybook": "^10.5.5",
|
|
"typescript": "6.0.3",
|
|
"typescript-eslint": "^8.65.0",
|
|
"vite": "8.1.5",
|
|
"vitest": "^4.1.10"
|
|
},
|
|
"overrides": {
|
|
"eslint-plugin-jsx-a11y": {
|
|
"eslint": "$eslint"
|
|
},
|
|
"dompurify": "^3.4.11",
|
|
"react-copy-to-clipboard": "^5.1.1",
|
|
"react-inspector": "^9.0.0",
|
|
"react-debounce-input": {
|
|
"react": "^19.0.0"
|
|
},
|
|
"swagger-ui-react": {
|
|
"js-yaml": "^4.2.0"
|
|
},
|
|
"@typeschema/valibot": {
|
|
"valibot": "^1.1.0"
|
|
}
|
|
},
|
|
"allowScripts": {
|
|
"@scarf/scarf": false,
|
|
"@tree-sitter-grammars/tree-sitter-yaml": false,
|
|
"tree-sitter": false,
|
|
"core-js-pure": false,
|
|
"tree-sitter-json": false,
|
|
"msw": false,
|
|
"esbuild": false
|
|
},
|
|
"msw": {
|
|
"workerDirectory": [
|
|
"public"
|
|
]
|
|
}
|
|
}
|