{ "name": "OrangeTV", "version": "0.1.0", "private": true, "scripts": { "dev": "pnpm gen:manifest && node simple-dev.js", "dev:complex": "pnpm gen:manifest && node dev-server.js", "dev:ws": "node standalone-websocket.js", "test:ws": "node test-websocket-connection.js", "debug:api": "node debug-api.js", "build": "pnpm gen:manifest && next build", "start": "NODE_ENV=production node server.js", "prod": "NODE_ENV=production node production.js", "prod:final": "NODE_ENV=production node production-final.js", "lint": "next lint", "lint:fix": "eslint src --fix && pnpm format", "lint:strict": "eslint --max-warnings=0 src", "typecheck": "tsc --noEmit --incremental false", "test:watch": "jest --watch", "test": "jest", "format": "prettier -w .", "format:check": "prettier -c .", "gen:manifest": "node scripts/generate-manifest.js", "postbuild": "echo 'Build completed - sitemap generation disabled'", "prepare": "husky install" }, "dependencies": { "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@headlessui/react": "^2.2.4", "@heroicons/react": "^2.2.0", "@types/crypto-js": "^4.2.2", "@types/ws": "^8.18.1", "@upstash/redis": "^1.25.0", "@vidstack/react": "^1.12.13", "artplayer": "^5.2.5", "artplayer-plugin-danmuku": "^5.2.0", "bs58": "^6.0.0", "clsx": "^2.0.0", "crypto-js": "^4.2.0", "framer-motion": "^12.18.1", "he": "^1.2.0", "hls.js": "^1.6.10", "lucide-react": "^0.438.0", "media-icons": "^1.1.5", "next": "^14.2.30", "next-pwa": "^5.6.0", "next-themes": "^0.4.6", "react": "^18.2.0", "react-dom": "^18.2.0", "react-icons": "^5.4.0", "react-image-crop": "^11.0.10", "redis": "^4.6.7", "swiper": "^11.2.8", "tailwind-merge": "^2.6.0", "vidstack": "^0.6.15", "ws": "^8.18.3", "zod": "^3.24.1" }, "devDependencies": { "@commitlint/cli": "^16.3.0", "@commitlint/config-conventional": "^16.2.4", "@svgr/webpack": "^8.1.0", "@tailwindcss/forms": "^0.5.10", "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^15.0.7", "@types/bs58": "^5.0.0", "@types/he": "^1.2.3", "@types/node": "24.0.3", "@types/react": "^18.3.18", "@types/react-dom": "^19.1.6", "@types/testing-library__jest-dom": "^5.14.9", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "autoprefixer": "^10.4.20", "eslint": "^8.57.1", "eslint-config-next": "^14.2.23", "eslint-config-prettier": "^8.10.0", "eslint-plugin-simple-import-sort": "^7.0.0", "eslint-plugin-unused-imports": "^2.0.0", "husky": "^7.0.4", "jest": "^27.5.1", "lint-staged": "^12.5.0", "next-router-mock": "^0.9.0", "postcss": "^8.5.1", "prettier": "^2.8.8", "prettier-plugin-tailwindcss": "^0.5.0", "tailwindcss": "^3.4.17", "typescript": "^4.9.5", "webpack-obfuscator": "^3.5.1" }, "lint-staged": { "**/*.{js,jsx,ts,tsx}": [ "eslint --max-warnings=0", "prettier -w" ], "**/*.{json,css,scss,md,webmanifest}": [ "prettier -w" ] }, "packageManager": "pnpm@10.14.0" }