{ "name": "@follow/shared", "type": "module", "private": true, "author": "Follow Team", "license": "GPL-3.0-only", "homepage": "https://github.com/RSSNext", "repository": { "url": "https://github.com/RSSNext/follow", "type": "git" }, "exports": { ".": { "import": "./src/index.ts", "types": "./src/index.ts" }, "./interface/*": { "import": "./src/interface/*.ts", "types": "./src/interface/*.ts" }, "./*": { "import": "./src/*.ts", "types": "./src/*.ts" } }, "scripts": {}, "dependencies": { "@egjs/react-infinitegrid": "4.12.0", "@egoist/tipc": "0.3.2", "@electron-toolkit/preload": "^3.0.1", "@electron-toolkit/utils": "^3.0.0", "@fontsource/sn-pro": "5.1.0", "@hono/auth-js": "1.0.10", "@hookform/resolvers": "3.9.0", "@iconify/tools": "4.0.6", "@microflash/remark-callout-directives": "4.3.1", "@mozilla/readability": "^0.5.0", "@radix-ui/react-alert-dialog": "1.1.1", "@radix-ui/react-avatar": "1.1.0", "@radix-ui/react-checkbox": "1.1.1", "@radix-ui/react-context-menu": "2.2.1", "@radix-ui/react-dialog": "1.1.1", "@radix-ui/react-dropdown-menu": "2.1.1", "@radix-ui/react-hover-card": "1.1.1", "@radix-ui/react-label": "2.1.0", "@radix-ui/react-popover": "1.1.1", "@radix-ui/react-radio-group": "1.2.0", "@radix-ui/react-scroll-area": "1.1.0", "@radix-ui/react-select": "2.1.1", "@radix-ui/react-slider": "^1.2.0", "@radix-ui/react-slot": "1.1.0", "@radix-ui/react-switch": "1.1.0", "@radix-ui/react-tabs": "1.1.0", "@radix-ui/react-toast": "1.2.1", "@radix-ui/react-tooltip": "1.1.2", "@sentry/electron": "5.4.0", "@sentry/react": "8.30.0", "@sentry/vite-plugin": "2.22.4", "@shikijs/transformers": "1.17.7", "@t3-oss/env-core": "0.11.1", "@tanstack/query-sync-storage-persister": "5.56.2", "@tanstack/react-query": "5.56.2", "@tanstack/react-query-devtools": "5.56.2", "@tanstack/react-query-persist-client": "5.56.2", "@use-gesture/react": "10.3.1", "@yornaath/batshit": "0.10.1", "bufferutil": "4.0.8", "builder-util-runtime": "9.2.5", "class-variance-authority": "0.7.0", "click-to-react-component": "1.1.0", "clsx": "2.1.1", "cmdk": "1.0.0", "dayjs": "1.11.13", "dexie": "4.0.8", "dnum": "^2.13.1", "dotenv": "16.4.5", "electron-context-menu": "4.0.4", "electron-log": "5.2.0", "electron-squirrel-startup": "1.0.1", "electron-updater": "^6.3.4", "font-list": "1.5.1", "foxact": "0.2.38", "framer-motion": "11.5.4", "franc-min": "6.2.0", "fuse.js": "7.0.0", "hast-util-to-jsx-runtime": "2.3.0", "hast-util-to-text": "4.0.2", "i18next": "^23.15.1", "i18next-browser-languagedetector": "8.0.0", "idb-keyval": "6.2.1", "immer": "10.1.1", "jotai": "2.9.3", "lethargy": "1.0.9", "linkedom": "^0.18.4", "lodash-es": "4.17.21", "lowdb": "7.0.1", "msedge-tts": "1.3.4", "nanoid": "5.0.7", "ofetch": "1.3.4", "path-to-regexp": "8.1.0", "posthog-js": "1.161.5", "posthog-node": "4.2.0", "re-resizable": "6.9.18", "react-error-boundary": "4.0.13", "react-fast-marquee": "1.6.5", "react-hook-form": "7.53.0", "react-hotkeys-hook": "4.5.1", "react-i18next": "^15.0.2", "react-intersection-observer": "9.13.1", "react-resizable-layout": "npm:@innei/react-resizable-layout@0.7.3-fork.1", "react-router-dom": "6.26.2", "react-selecto": "1.26.3", "react-shadow": "20.5.0", "react-virtuoso": "4.10.4", "rehype-infer-description-meta": "2.0.0", "rehype-parse": "9.0.0", "rehype-sanitize": "6.0.0", "rehype-stringify": "10.0.0", "remark-directive": "3.0.0", "remark-gfm": "4.0.0", "remark-gh-alerts": "0.0.3", "remark-parse": "11.0.0", "remark-rehype": "11.1.0", "semver": "7.6.3", "shiki": "1.17.7", "sonner": "^1.5.0", "swiper": "11.1.14", "tailwind-merge": "2.5.2", "tldts": "6.1.46", "unified": "11.0.5", "use-context-selector": "2.0.0", "usehooks-ts": "3.1.0", "utf-8-validate": "6.0.4", "vfile": "6.0.3", "vscode-languagedetection": "npm:@vscode/vscode-languagedetection@^1.0.22", "zod": "3.23.8", "zustand": "4.5.5" }, "devDependencies": { "@babel/generator": "7.25.6", "@clack/prompts": "0.7.0", "@egoist/tailwindcss-icons": "1.8.1", "@electron-forge/cli": "7.4.0", "@electron-forge/maker-dmg": "7.4.0", "@electron-forge/maker-squirrel": "7.4.0", "@electron-forge/maker-zip": "7.4.0", "@electron-forge/plugin-fuses": "7.4.0", "@electron-forge/publisher-github": "7.4.0", "@electron-toolkit/tsconfig": "^1.0.1", "@hono/node-server": "1.13.0", "@iconify-json/logos": "1.2.0", "@iconify-json/mingcute": "1.2.0", "@iconify-json/simple-icons": "^1.2.3", "@pengx17/electron-forge-maker-appimage": "1.2.1", "@tailwindcss/container-queries": "0.1.1", "@tailwindcss/typography": "0.5.15", "@types/lodash-es": "4.17.12", "@types/node": "^22.5.5", "@types/react": "^18.3.7", "@types/react-dom": "^18.3.0", "@vercel/ncc": "0.38.1", "@vitejs/plugin-legacy": "5.4.2", "@vitejs/plugin-react": "^4.3.1", "cssnano": "7.0.6", "drizzle-orm": "0.33.0", "electron": "32.1.0", "electron-devtools-installer": "3.2.0", "electron-packager-languages": "0.5.0", "electron-vite": "^2.3.0", "eslint": "^9.10.0", "eslint-config-hyoban": "^3.1.6", "fake-indexeddb": "6.0.0", "hono": "4.6.2", "lint-staged": "15.2.10", "nbump": "2.0.4", "postcss": "8.4.47", "postcss-js": "4.0.1", "prettier": "3.3.3", "react": "^18.3.1", "react-dom": "^18.3.1", "rimraf": "6.0.1", "shx": "^0.3.4", "simple-git-hooks": "2.11.1", "tailwindcss": "3.4.11", "tailwindcss-animate": "1.0.7", "tsx": "4.19.1", "typescript": "^5.6.2", "vite": "^5.4.6", "vite-bundle-analyzer": "0.10.6", "vite-plugin-mkcert": "1.17.6", "vite-tsconfig-paths": "5.0.1", "vitest": "2.0.5" } }