{ "name": "unraid-appops-gateway-frontend", "version": "1.8.0", "private": true, "type": "module", "scripts": { "dev": "vite", "build": "vite build", "lint": "eslint .", "test": "tsx --test src/**/*.test.ts", "test:frontend": "tsx --test src/**/*.test.ts", "test:backend": "python -m pytest backend/tests -q", "verify": "pnpm run check-types && pnpm run lint && pnpm run test:frontend && pnpm run build && pnpm run test:backend", "audit:dependencies": "pnpm audit --prod --audit-level=high", "sbom": "pnpm sbom --sbom-format cyclonedx --sbom-spec-version 1.6 --prod > appops-gateway.cdx.json", "preview": "vite preview", "check-types": "tsc -p tsconfig.app.json --noEmit", "typecheck": "pnpm run check-types" }, "dependencies": { "@fontsource/jetbrains-mono": "^5.2.8", "@fontsource/manrope": "^5.2.8", "@fontsource/space-grotesk": "^5.2.10", "@hookform/resolvers": "^3.9.0", "@radix-ui/react-accordion": "^1.2.0", "@radix-ui/react-alert-dialog": "^1.1.1", "@radix-ui/react-aspect-ratio": "^1.1.0", "@radix-ui/react-avatar": "^1.1.0", "@radix-ui/react-checkbox": "^1.1.1", "@radix-ui/react-collapsible": "^1.1.0", "@radix-ui/react-context-menu": "^2.2.1", "@radix-ui/react-dialog": "^1.1.2", "@radix-ui/react-dropdown-menu": "^2.1.1", "@radix-ui/react-hover-card": "^1.1.1", "@radix-ui/react-label": "^2.1.0", "@radix-ui/react-menubar": "^1.1.1", "@radix-ui/react-navigation-menu": "^1.2.0", "@radix-ui/react-popover": "^1.1.1", "@radix-ui/react-primitive": "^2.0.0", "@radix-ui/react-progress": "^1.1.0", "@radix-ui/react-radio-group": "^1.2.0", "@radix-ui/react-scroll-area": "^1.1.0", "@radix-ui/react-select": "^2.1.1", "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slider": "^1.2.0", "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-switch": "^1.1.0", "@radix-ui/react-tabs": "^1.1.0", "@radix-ui/react-toast": "^1.2.1", "@radix-ui/react-toggle": "^1.1.0", "@radix-ui/react-toggle-group": "^1.1.0", "@radix-ui/react-tooltip": "^1.1.4", "@tanstack/query-core": "^5.56.2", "@tanstack/react-query": "^5.56.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.0.0", "date-fns": "^3.6.0", "embla-carousel-react": "^8.3.0", "input-otp": "^1.2.4", "lucide-react": "^0.462.0", "next-themes": "^0.4.6", "react": "^19.0.0", "react-day-picker": "^9.13.0", "react-dom": "^19.0.0", "react-hook-form": "^7.53.0", "react-resizable-panels": "^2.1.3", "react-router-dom": "^7.18.2", "recharts": "^2.12.7", "sonner": "^1.5.0", "tailwind-merge": "^2.5.2", "tailwindcss-animate": "^1.0.7", "vaul": "^1.1.2", "zod": "^3.25.0" }, "devDependencies": { "@eslint/js": "^9.39.5", "@tailwindcss/typography": "^0.5.15", "@types/node": "^22.5.5", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", "@vitejs/plugin-react-swc": "^4.3.1", "autoprefixer": "^10.4.20", "eslint": "^9.39.5", "eslint-plugin-react-hooks": "^5.1.0-rc.0", "eslint-plugin-react-refresh": "^0.4.9", "globals": "^15.9.0", "postcss": "8.5.26", "tailwindcss": "^3.4.11", "tsx": "^4.23.1", "typescript": "^5.5.3", "typescript-eslint": "^8.64.0", "vite": "6.4.3" }, "packageManager": "pnpm@11.15.0+sha512.266f8957a30d2be6e9468e5e66bcdedd35a794175f71b067ba8504d686cce1d0c0f429b33c323c3c569ad4891e667574a49ff71d1b89a22cc66f13c65818c578" }