{ "name": "scriptcat", "version": "1.5.0-beta", "description": "脚本猫,一个可以执行用户脚本的浏览器扩展,万物皆可脚本化,让你的浏览器可以做更多的事情!", "author": "CodFrm", "license": "GPLv3", "private": true, "scripts": { "preinstall": "pnpm dlx only-allow pnpm", "prepare": "husky", "dev": "cross-env NODE_ENV=development rspack", "dev:react-devtools": "cross-env NODE_ENV=development REACT_DEVTOOLS=true rspack", "dev:noMap": "cross-env NODE_ENV=development NO_MAP=true rspack", "build": "cross-env NODE_ENV=production rspack build", "pack": "node ./scripts/pack.js", "typecheck": "tsc --noEmit", "lint": "concurrently -g \"prettier --check --cache \\\"**/*.{ts,tsx,js,jsx,mjs}\\\"\" \"tsc --noEmit\" \"pnpm run check:i18n\" \"pnpm run check:issue-templates\" && eslint . --cache --cache-location .eslintcache", "lint:ci": "concurrently -g \"prettier --check --cache \\\"**/*.{ts,tsx,js,jsx,mjs}\\\"\" \"tsc --noEmit\" \"pnpm run check:i18n\" \"pnpm run check:issue-templates\" && eslint . --cache --cache-location .eslintcache", "lint-fix": "concurrently -g \"prettier --write --cache \\\"**/*.{ts,tsx,js,jsx,mjs}\\\"\" \"tsc --noEmit\" && eslint --fix . --cache --cache-location .eslintcache", "test": "vitest --no-coverage --reporter=verbose", "test:ci": "vitest run --no-coverage --reporter=default --reporter.summary=false", "coverage": "vitest run --coverage", "coverage:ci": "vitest run --coverage --silent --reporter=default --reporter.default.summary=false", "test:e2e:install": "pnpm exec playwright install chromium", "test:e2e": "pnpm exec playwright test", "test:e2e:ui": "pnpm exec playwright test --ui", "validate:yaml": "node ./scripts/validate-yaml.mjs", "validate:yaml:all": "node ./scripts/validate-yaml.mjs --all", "check:i18n": "node ./scripts/check-i18n.mjs", "check:issue-templates": "node ./scripts/check-issue-templates.mjs" }, "dependencies": { "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "chardet": "^2.1.1", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cron": "^4.4.0", "crypto-js": "^4.2.0", "dexie": "^4.0.10", "dompurify": "^3.4.11", "eslint-linter-browserify": "9.26.0", "eventemitter3": "^5.0.1", "fast-xml-parser": "^5.7.0", "highlight.js": "^11.11.1", "i18next": "^26.0.3", "lucide-react": "^1.7.0", "monaco-editor": "^0.52.2", "radix-ui": "^1.4.3", "react": "^19.2.7", "react-dom": "^19.2.7", "react-i18next": "^17.0.8", "react-markdown": "^9.1.0", "react-router-dom": "^7.14.0", "rehype-highlight": "^7.0.2", "remark-gfm": "^4.0.1", "sonner": "^2.0.7", "string-similarity-js": "^2.1.4", "tailwind-merge": "^3.6.0", "uuid": "^11.1.1", "web-jszipp": "^1.0.8", "webdav": "^5.9.0", "yaml": "^2.8.3" }, "devDependencies": { "@eslint/compat": "^1.4.1", "@eslint/js": "9.39.2", "@playwright/test": "^1.60.0", "@rspack/cli": "^1.7.11", "@rspack/core": "^1.7.11", "@swc/helpers": "^0.5.17", "@tailwindcss/postcss": "^4.2.4", "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@types/chrome": "^0.1.39", "@types/crypto-js": "^4.2.2", "@types/node": "^22.12.0", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@types/semver": "^7.7.1", "@types/serviceworker": "^0.0.120", "@types/ws": "^8.18.1", "@vitest/coverage-v8": "^4.1.9", "acorn": "^8.16.0", "concurrently": "^10.0.3", "cross-env": "^10.1.0", "crx": "^5.0.1", "eslint": "^9.39.2", "eslint-config-prettier": "^10.1.8", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-userscripts": "^0.5.6", "globals": "^16.5.0", "happy-dom": "^20.10.2", "husky": "^9.1.7", "magic-string": "^0.30.21", "mock-xmlhttprequest": "^8.4.1", "postcss": "^8.5.10", "postcss-loader": "^8.2.0", "prettier": "^3.6.2", "semver": "^7.7.1", "tailwindcss": "^4.2.4", "tw-animate-css": "^1.4.0", "typescript": "^6.0.3", "typescript-eslint": "^8.62.1", "uglify-js": "^3.19.3", "vitest": "^4.1.9", "ws": "^8.21.0" }, "packageManager": "pnpm@10.34.1", "sideEffects": [ "**/*.css", "**/*.scss", "**/*.less" ] }