{
  "name": "boris",
  "version": "0.10.33",
  "description": "A minimal nostr client for bookmark management",
  "homepage": "https://read.withboris.com/",
  "type": "module",
  "engines": {
    "node": "22.x"
  },
  "scripts": {
    "dev": "vite",
    "build": "tsc && vite build",
    "preview": "vite preview",
    "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
    "publish:test:markdown": "./scripts/publish-markdown.sh"
  },
  "dependencies": {
    "@fortawesome/fontawesome-svg-core": "^7.1.0",
    "@fortawesome/free-regular-svg-icons": "^7.1.0",
    "@fortawesome/free-solid-svg-icons": "^7.1.0",
    "@fortawesome/react-fontawesome": "^3.0.2",
    "@treeee/youtube-caption-extractor": "^1.5.5",
    "@upstash/redis": "^1.35.6",
    "@vercel/node": "^5.3.26",
    "applesauce-accounts": "^4.0.0",
    "applesauce-content": "^4.0.0",
    "applesauce-core": "^4.0.0",
    "applesauce-factory": "^4.0.0",
    "applesauce-loaders": "^4.0.0",
    "applesauce-react": "^4.0.0",
    "applesauce-relay": "^4.0.0",
    "date-fns": "^4.1.0",
    "fast-average-color": "^9.5.0",
    "fetch-opengraph": "^1.0.36",
    "nostr-tools": "^2.4.0",
    "prismjs": "^1.30.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-loading-skeleton": "^3.5.0",
    "react-markdown": "^10.1.0",
    "react-player": "^2.16.0",
    "react-router-dom": "^7.9.3",
    "reading-time-estimator": "^1.14.0",
    "rehype-prism-plus": "^2.0.1",
    "rehype-raw": "^7.0.0",
    "remark-gfm": "^4.0.1",
    "tinyld": "^1.3.4",
    "use-pull-to-refresh": "^2.4.1",
    "ws": "^8.18.3"
  },
  "devDependencies": {
    "@tailwindcss/postcss": "^4.1.14",
    "@types/react": "^18.2.43",
    "@types/react-dom": "^18.2.17",
    "@types/ws": "^8.18.1",
    "@typescript-eslint/eslint-plugin": "^6.14.0",
    "@typescript-eslint/parser": "^6.14.0",
    "@vitejs/plugin-react": "^4.2.1",
    "autoprefixer": "^10.4.21",
    "eslint": "^8.55.0",
    "eslint-plugin-react-hooks": "^4.6.0",
    "eslint-plugin-react-refresh": "^0.4.5",
    "postcss": "^8.5.6",
    "tailwindcss": "^4.1.14",
    "typescript": "^5.2.2",
    "vite": "^5.0.8",
    "vite-plugin-pwa": "^1.0.3",
    "workbox-window": "^7.3.0"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "browser": true,
      "es2020": true
    },
    "extends": [
      "eslint:recommended"
    ],
    "ignorePatterns": [
      "dist",
      ".eslintrc.cjs",
      "applesauce"
    ],
    "parser": "@typescript-eslint/parser",
    "plugins": [
      "@typescript-eslint",
      "react-refresh",
      "react-hooks"
    ],
    "rules": {
      "react-refresh/only-export-components": [
        "warn",
        {
          "allowConstantExport": true
        }
      ],
      "react-hooks/exhaustive-deps": "warn",
      "@typescript-eslint/no-unused-vars": [
        "error",
        {
          "argsIgnorePattern": "^_"
        }
      ],
      "@typescript-eslint/no-explicit-any": "warn",
      "prefer-const": "error",
      "no-var": "error"
    },
    "overrides": [
      {
        "files": ["api/**/*.ts"],
        "env": {
          "node": true,
          "browser": false
        }
      }
    ]
  }
}
