{ "name": "lnreader-plugins", "version": "3.0.0", "description": "Plugins repo for LNReader", "main": "index.js", "type": "module", "scripts": { "clean:multisrc": "find . -type f -wholename \"*plugins*\\[*\\]*.[t,j]s\" -delete", "clean:multisrc:windows": "powershell -Command \"Get-ChildItem -Recurse -Include \\\"*].ts\\\",\\\"*].js\\\" | Where-Object { $_.FullName -like \\\"*plugins*\\\" } | Remove-Item\"", "dev": "vite", "dev:start": "node ./plugins/multisrc/generate-multisrc-plugins.js && vite", "build:multisrc": "node ./plugins/multisrc/generate-multisrc-plugins.js", "build:compile": "npx tsc --project tsconfig.production.json", "build:manifest": "node ./scripts/build-plugin-manifest.js", "build:manifest:dev": "node --env-file=.env ./scripts/build-plugin-manifest.js", "build:icons": "npm run clean:multisrc && npm run build:multisrc && npm run build:compile && npm run build:manifest && node ./scripts/download-plugin-icons.js", "build:full": "npm run clean:multisrc && npm run build:multisrc && npm run build:compile && npm run build:manifest", "publish:plugins": "chmod +x ./scripts/publish-plugins.sh && ./scripts/publish-plugins.sh", "publish:plugins:windows": "powershell ./scripts/publish-plugins.ps1", "serve:dev": "npm run build:compile && npm run build:manifest:dev && serve", "lint": "npx eslint .", "lint:fix": "npx eslint . --fix", "format": "prettier --write \"./**/*.{js,ts}\"", "format:check": "prettier --check \"./**/*.{js,ts}\"", "check:sites": "node scripts/check-plugin-sites.js", "check:plugin": "node scripts/live-check-plugin.js", "prepare": "husky", "publish:gitea": "./scripts/publish-gitea.sh" }, "author": "LNReader", "license": "MIT", "dependencies": { "@fontsource/geist-mono": "^5.2.7", "@fontsource/geist-sans": "^5.2.5", "@noble/ciphers": "^2.1.1", "@radix-ui/react-checkbox": "^1.3.3", "@radix-ui/react-dialog": "^1.1.5", "@radix-ui/react-label": "^2.1.7", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-switch": "^1.1.4", "@radix-ui/react-tabs": "^1.1.13", "@radix-ui/react-tooltip": "^1.2.8", "@tailwindcss/vite": "^4.1.14", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "jszip": "^3.10.1", "lucide-react": "^0.546.0", "sonner": "^2.0.7", "tailwind-merge": "^3.3.1", "tailwindcss": "^4.1.14", "terser": "^5.36.0", "typescript": "^5.7.2" }, "devDependencies": { "@emotion/react": "^11.13.5", "@emotion/styled": "^11.13.5", "@eslint/js": "^9.5.0", "@fontsource/roboto": "^5.1.0", "@mui/icons-material": "^6.1.9", "@mui/material": "^6.1.9", "@reduxjs/toolkit": "^2.4.0", "@types/eslint__js": "^8.42.3", "@types/eslint-config-prettier": "^6.11.3", "@types/http-proxy": "^1.17.16", "@types/node": "^24.8.1", "@types/react": "^18.2.66", "@types/react-dom": "^18.2.22", "@types/react-window": "^1.8.8", "@vitejs/plugin-react-swc": "^3.9.0", "cheerio": "^1.0.0", "dayjs": "^1.11.13", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "esbuild": "^0.25.3", "globals": "^15.6.0", "htmlparser2": "^9.1.0", "http-proxy": "^1.18.1", "husky": "^9.0.11", "image-size": "^1.1.1", "lint-staged": "^15.2.2", "prettier": "^3.2.5", "protobufjs": "^7.4.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-redux": "^9.1.2", "react-virtuoso": "^4.12.2", "react-window": "^1.8.10", "sanitize-html": "^2.13.1", "serve": "^14.2.4", "tw-animate-css": "^1.4.0", "typescript-eslint": "^7.14.1", "urlencode": "^2.0.0", "vite": "^6.3.2", "vite-plugin-node-polyfills": "^0.26.0", "zustand": "^5.0.1" }, "lint-staged": { "**/*.{js,ts,jsx,tsx}": "prettier --write" } }