{
  "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"
  }
}
