{ "name": "boris", "version": "0.11.1", "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 } } ] } }