{ "name": "droppy", "version": "1.0.0", "description": "Local web-based content casting system - like AirPlay/Chromecast but browser-based", "type": "module", "scripts": { "dev": "concurrently -n server,client -c blue,green \"npm run dev:server\" \"npm run dev:client\"", "dev:server": "tsx watch server/index.ts", "dev:client": "vite dev", "build": "vite build", "preview": "vite preview", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "start": "NODE_ENV=production tsx server/index.ts" }, "dependencies": { "three": "^0.170.0", "express": "^4.21.0", "express-rate-limit": "^7.5.0", "express-static-gzip": "^2.1.8", "helmet": "^8.0.0", "hls.js": "^1.5.0", "multer": "^1.4.5-lts.1", "qrcode": "^1.5.4", "socket.io": "^4.8.0", "socket.io-client": "^4.8.0", "tsx": "^4.19.0", "youtube-dl-exec": "^3.0.0" }, "devDependencies": { "@types/three": "^0.170.0", "@sveltejs/adapter-static": "^3.0.0", "@sveltejs/kit": "^2.15.0", "@sveltejs/vite-plugin-svelte": "^4.0.0", "@types/express": "^5.0.0", "@types/multer": "^1.4.12", "@types/node": "^22.0.0", "concurrently": "^9.0.0", "svelte": "^5.0.0", "svelte-check": "^4.0.0", "typescript": "^5.6.0", "vite": "^5.4.0" } }