{ "name": "qtube", "private": true, "version": "2.1.0", "type": "module", "scripts": { "dev": "vite", "build": "vite build", "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview" }, "dependencies": { "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", "@mui/icons-material": "^7.1.0", "@mui/lab": "^7.0.0-beta.12", "@mui/material": "^7.1.0", "compressorjs": "^1.2.1", "dompurify": "^3.2.3", "framer-motion": "^12.23.6", "i18n": "^0.15.1", "idb-keyval": "^6.2.2", "jotai": "^2.12.4", "localforage": "^1.10.0", "mediainfo.js": "^0.3.5", "moment": "^2.30.1", "qapp-core": "^1.0.50", "quill": "^2.0.2", "quill-image-resize-module-react": "^3.0.0", "react": "^19.0.0", "react-dom": "^19.1.0", "react-dropzone": "^14.3.5", "react-i18next": "^15.5.3", "react-idle-timer": "^5.7.2", "react-intersection-observer": "^9.14.0", "react-quill-new": "^3.3.3", "react-rnd": "^10.4.14", "react-router-dom": "^7.6.2", "react-toastify": "^11.0.2", "short-unique-id": "^5.2.0" }, "devDependencies": { "@types/node": "^24.0.0", "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", "@typescript-eslint/eslint-plugin": "^8.18.2", "@typescript-eslint/parser": "^8.18.2", "@vitejs/plugin-react": "^4.3.4", "eslint": "^9.17.0", "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-refresh": "^0.4.16", "globals": "^15.15.0", "prettier": "^3.4.2", "typescript": "^5.7.2", "vite": "^6.3.5", "vite-plugin-static-copy": "^3.0.0" } }