{ "name": "project", "version": "0.1.0", "private": true, "type": "module", "scripts": { "setup-env-files": "tsx tools/scripts/setupEnvFiles.ts", "setup": "pnpm i --frozen-lockfile && pnpm setup-env-files", "dev": "pnpm setup && vite", "preview": "pnpm setup && vite preview", "build": "pnpm setup && vite build", "test": "node -e \"console.log('imagine')\"", "build-md5": "find build -type f | sort | xargs md5sum | awk '{ print $1 }' | tr -d '\n' | md5sum| awk '{ print $1 }' > buildZip/md5sum ", "build-zip": "cd build && rev=$(git rev-list HEAD --count) && echo r$rev > revision && zip -9 -r ../buildZip/Suwayomi-WebUI-r$rev *", "lint": "oxlint src tools", "format": "oxfmt --write .", "format:check": "oxfmt --check .", "createCommitChangelog": "tsx tools/scripts/release/createCommitChangelog.ts", "createTranslationChangelog": "tsx tools/scripts/release/createTranslationChangelog.ts", "createReleaseChangelog": "tsx tools/scripts/release/createReleaseChangelog.ts", "updateDeps": "tsx tools/scripts/updateDependencies.ts", "gql:codegen-base": "graphql-codegen --config gql_codegen.ts", "gql:codegen-formatter": "tsx tools/scripts/codegenFormatter.ts", "gql:codegen": "pnpm gql:codegen-base && pnpm gql:codegen-formatter", "i18n:extract": "lingui extract --locale en --clean", "i18n:gen-resources": "tsx tools/scripts/weblate/generatei18nResources.ts", "dayjs:gen-locales-array": "tsx tools/scripts/dayjs/generateDayJsLocales.ts", "dayjs:gen-locales-import": "tsx tools/scripts/dayjs/generateDayJsLocalesImport.ts", "dayjs:gen-locales": "pnpm dayjs:gen-locales-array && pnpm dayjs:gen-locales-import", "manga:gen-type-tags": "tsx tools/scripts/manga/generateMangaTypeTags.ts", "tsc": "tsgo", "tsc:legacy": "tsc", "prepare": "husky" }, "dependencies": { "@apollo/client": "4.1.9", "@dnd-kit/core": "6.3.1", "@dnd-kit/sortable": "10.0.0", "@dnd-kit/utilities": "3.2.2", "@emotion/cache": "11.14.0", "@emotion/react": "11.14.0", "@emotion/styled": "11.14.1", "@juggle/resize-observer": "3.4.0", "@lingui/core": "6.0.0", "@lingui/react": "6.0.0", "@loadable/component": "5.16.7", "@mantine/hooks": "9.1.0", "@mui/icons-material": "9.0.0", "@mui/material": "9.0.0", "@mui/system": "9.0.0", "@mui/utils": "9.0.0", "@mui/x-date-pickers": "9.0.2", "@redux-devtools/extension": "4.0.0", "@vibrant/color": "4.0.4", "apollo-upload-client": "19.0.0", "awaitable-component": "1.0.0", "csstype": "3.2.3", "dayjs": "1.11.20", "fast-average-color": "9.5.2", "file-selector": "2.1.2", "graphql": "16.13.2", "graphql-sock": "1.0.1", "graphql-tag": "2.12.6", "graphql-ws": "6.0.8", "immer": "11.1.4", "jsonrepair": "3.14.0", "koration": "1.0.0", "lodash": "4.18.1", "material-ui-popup-state": "5.3.7", "mui-nested-menu": "4.0.3", "node-vibrant": "4.0.4", "notistack": "3.0.2", "p-limit": "7.3.0", "polished": "4.3.1", "react": "19.2.5", "react-dom": "19.2.5", "react-hotkeys-hook": "5.2.4", "react-lazily": "0.9.2", "react-router-dom": "6.26.1", "react-virtuoso": "4.18.6", "rxjs": "7.8.2", "stylis": "4.4.0", "stylis-plugin-rtl": "2.1.1", "use-long-press": "3.3.0", "use-query-params": "2.2.2", "webfontloader": "1.6.28", "zustand": "5.0.12" }, "devDependencies": { "@graphql-codegen/cli": "6.3.1", "@graphql-codegen/client-preset": "5.3.0", "@graphql-codegen/typescript-apollo-client-helpers": "4.0.1", "@graphql-codegen/typescript-operations": "5.1.0", "@lingui/cli": "6.0.0", "@lingui/format-po": "6.0.0", "@lingui/swc-plugin": "6.0.0", "@lingui/vite-plugin": "6.0.0", "@tony.ganchev/eslint-plugin-header": "3.4.4", "@types/lodash": "4.17.24", "@types/node": "24.10.1", "@types/react": "19.2.14", "@types/react-beautiful-dnd": "13.1.8", "@types/react-dom": "19.2.3", "@types/sanitize-html": "2.16.1", "@types/stylis": "4.2.7", "@types/webfontloader": "1.6.38", "@types/yargs": "17.0.35", "@typescript/native-preview": "7.0.0-dev.20260425.1", "@vitejs/plugin-legacy": "8.0.1", "@vitejs/plugin-react-swc": "4.3.0", "dotenv": "17.4.2", "eslint": "9.39.4", "eslint-plugin-lingui": "0.13.1", "eslint-plugin-no-only-tests": "3.3.0", "eslint-plugin-no-relative-import-paths": "1.6.1", "eslint-plugin-unused-imports": "4.4.1", "husky": "9.1.7", "lint-staged": "16.4.0", "oxfmt": "0.46.0", "oxlint": "1.61.0", "terser": "5.46.2", "tsx": "4.21.0", "typescript": "5.9.3", "vite": "8.0.10", "vite-plugin-node-polyfills": "0.26.0", "vite-plugin-pwa": "1.2.0", "workbox-build": "7.4.0", "workbox-window": "7.4.0", "yargs": "18.0.0" }, "resolutions": { "@swc/core": "1.15.11" }, "engines": { "node": ">=24" } }