code.pablomurad.com

mymusics

Retro web player for random tracks from the Myspace Dragon Hoard

package.json raw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
{
  "name": "mymusics",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "concurrently -k \"npm run dev:api\" \"npm run dev:web\"",
    "dev:api": "tsx watch server/index.ts",
    "dev:web": "vite",
    "dev:vite": "vite",
    "build:server": "tsc -p tsconfig.server.json",
    "index-metadata": "tsx scripts/index-metadata.ts",
    "index-metadata:force": "tsx scripts/index-metadata.ts --force",
    "sample-metadata": "tsx scripts/sample-metadata.ts",
    "verify-tracks": "tsx scripts/verify-tracks.ts",
    "test": "vitest run",
    "test:watch": "vitest",
    "build": "npm run index-metadata -- --if-stale && npm run build:server && tsc -b && vite build",
    "lint": "eslint .",
    "preview": "vite preview",
    "start": "node dist-server/server/index.js",
    "pm2:prod": "npm run build && pm2 start ecosystem.config.cjs --env production"
  },
  "dependencies": {
    "@fastify/cors": "^11.2.0",
    "@fastify/static": "^9.1.3",
    "better-sqlite3": "^12.6.2",
    "dotenv": "^17.4.2",
    "fastify": "^5.8.5",
    "react": "^19.2.5",
    "react-dom": "^19.2.5",
    "react-router-dom": "^7.14.2"
  },
  "devDependencies": {
    "@eslint/js": "^10.0.1",
    "@types/better-sqlite3": "^7.6.13",
    "@types/node": "^24.12.2",
    "vitest": "^4.1.0",
    "@types/react": "^19.2.14",
    "@types/react-dom": "^19.2.3",
    "@vitejs/plugin-react": "^6.0.1",
    "concurrently": "^9.2.1",
    "eslint": "^10.2.1",
    "eslint-plugin-react-hooks": "^7.1.1",
    "eslint-plugin-react-refresh": "^0.5.2",
    "globals": "^17.5.0",
    "tsx": "^4.21.0",
    "typescript": "~6.0.2",
    "typescript-eslint": "^8.58.2",
    "vite": "^8.0.10"
  }
}