{
  "name": "spbdrive",
  "version": "2.1.0",
  "description": "SPB Drive — Personal Cloud Drive for Simon-Pierre Boucher",
  "author": "Simon-Pierre Boucher <contact@spboucher.ai>",
  "license": "MIT",
  "type": "module",
  "engines": {
    "node": ">=20"
  },
  "bin": {
    "spbdrive": "cli/spbdrive.mjs"
  },
  "scripts": {
    "start": "node src/server.mjs",
    "dev": "SPBDRIVE_DATA_DIR=./data node src/server.mjs",
    "test": "vitest run",
    "lint": "eslint src cli scripts test",
    "check:headers": "node scripts/check-headers.mjs",
    "check:secrets": "node scripts/check-secrets.mjs",
    "check": "npm run lint && npm run check:headers && npm run check:secrets && npm run test"
  },
  "dependencies": {
    "@fastify/cookie": "^11.0.2",
    "@fastify/formbody": "^8.0.2",
    "@fastify/static": "^8.1.1",
    "@fontsource/inter": "^5.2.5",
    "@fontsource/jetbrains-mono": "^5.2.5",
    "archiver": "^7.0.1",
    "argon2": "^0.44.0",
    "better-sqlite3": "^12.2.0",
    "commander": "^14.0.0",
    "exif-reader": "^2.0.2",
    "fastify": "^5.4.0",
    "markdown-it": "^14.1.0",
    "markdown-it-anchor": "^9.2.0",
    "markdown-it-task-lists": "^2.1.1",
    "mime": "^4.0.7",
    "nunjucks": "^3.2.4",
    "pdfjs-dist": "^4.10.38",
    "pino": "^9.7.0",
    "postal-mime": "^2.4.3",
    "qrcode": "^1.5.4",
    "sharp": "^0.34.2",
    "shiki": "^3.7.0",
    "tar-stream": "^3.1.7",
    "wavesurfer.js": "^7.9.5",
    "xlsx": "^0.18.5",
    "yauzl": "^3.2.0",
    "zod": "^3.25.67"
  },
  "devDependencies": {
    "@eslint/js": "^9.39.5",
    "eslint": "^9.30.0",
    "pino-pretty": "^13.0.0",
    "vitest": "^3.2.4"
  }
}
