package.json 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. {
  2. "name": "3x-ui-frontend",
  3. "private": true,
  4. "version": "0.3.1",
  5. "type": "module",
  6. "description": "3x-ui panel frontend (React 19 + Ant Design 6 + Vite 8).",
  7. "engines": {
  8. "node": ">=22.0.0",
  9. "npm": ">=10.0.0"
  10. },
  11. "scripts": {
  12. "dev": "vite",
  13. "build": "npm run gen:api && vite build",
  14. "preview": "vite preview",
  15. "lint": "eslint src",
  16. "typecheck": "tsc --noEmit",
  17. "test": "vitest run",
  18. "test:watch": "vitest",
  19. "gen": "npm run gen:zod && npm run gen:api",
  20. "gen:api": "node --experimental-strip-types --disable-warning=ExperimentalWarning scripts/build-openapi.mjs",
  21. "gen:zod": "cd .. && go run ./tools/openapigen"
  22. },
  23. "dependencies": {
  24. "@ant-design/icons": "^6.2.5",
  25. "@codemirror/lang-json": "^6.0.2",
  26. "@codemirror/theme-one-dark": "^6.1.3",
  27. "@tanstack/react-query": "^5.101.0",
  28. "@tanstack/react-query-devtools": "^5.101.0",
  29. "antd": "^6.4.3",
  30. "axios": "^1.17.0",
  31. "codemirror": "^6.0.2",
  32. "dayjs": "^1.11.21",
  33. "i18next": "^26.3.1",
  34. "otpauth": "^9.5.1",
  35. "persian-calendar-suite": "^1.5.5",
  36. "qs": "^6.15.2",
  37. "react": "^19.2.7",
  38. "react-dom": "^19.2.7",
  39. "react-i18next": "^17.0.8",
  40. "react-router-dom": "^7.16.0",
  41. "recharts": "^3.8.1",
  42. "swagger-ui-react": "^5.32.6",
  43. "zod": "^4.4.3"
  44. },
  45. "devDependencies": {
  46. "@eslint/js": "^10.0.1",
  47. "@testing-library/dom": "^10.4.1",
  48. "@testing-library/react": "^16.3.2",
  49. "@types/react": "^19.2.16",
  50. "@types/react-dom": "^19.2.3",
  51. "@types/swagger-ui-react": "^5.18.0",
  52. "@vitejs/plugin-react": "^6.0.2",
  53. "@vitest/coverage-v8": "^4.1.8",
  54. "eslint": "^10.4.1",
  55. "eslint-plugin-react-hooks": "^7.1.1",
  56. "globals": "^17.6.0",
  57. "jsdom": "^29.1.1",
  58. "typescript": "^6.0.3",
  59. "typescript-eslint": "^8.60.1",
  60. "vite": "8.0.16",
  61. "vitest": "^4.1.8"
  62. },
  63. "overrides": {
  64. "react-copy-to-clipboard": "^5.1.1",
  65. "react-inspector": "^9.0.0",
  66. "react-debounce-input": {
  67. "react": "^19.0.0"
  68. }
  69. },
  70. "allowScripts": {
  71. "@scarf/scarf": false,
  72. "@tree-sitter-grammars/tree-sitter-yaml": false,
  73. "tree-sitter": false,
  74. "core-js-pure": false,
  75. "tree-sitter-json": false
  76. }
  77. }