{ "name": "project", "version": "0.1.0", "private": true, "type": "module", "scripts": { "ci": "yarn install --frozen-lockfile", "setup-env-files": "tsx tools/scripts/setupEnvFiles.ts", "setup": "yarn ci && yarn setup-env-files", "dev": "yarn setup && vite", "preview": "yarn setup && vite preview", "build": "yarn 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": "eslint src --ext .ts,.tsx,.js,.jsx --max-warnings=0 --cache", "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": "yarn gql:codegen-base && yarn gql:codegen-formatter", "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": "yarn dayjs:gen-locales-array && yarn dayjs:gen-locales-import", "prepare": "husky" }, "engines": { "node": "22.12.0" }, "lint-staged": { "*.{ts,tsx,js,jsx}": "eslint --fix" }, "dependencies": { "@apollo/client": "3.13.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", "@loadable/component": "5.16.7", "@mantine/hooks": "8.3.8", "@mui/icons-material": "7.3.5", "@mui/material": "7.3.5", "@mui/system": "7.3.5", "@mui/utils": "7.3.5", "@mui/x-date-pickers": "8.18.0", "@redux-devtools/extension": "3.3.0", "@vibrant/color": "4.0.0", "apollo-upload-client": "18.0.1", "awaitable-component": "1.0.0", "csstype": "3.2.2", "dayjs": "1.11.19", "fast-average-color": "9.5.0", "file-selector": "2.1.2", "graphql": "16.12.0", "graphql-sock": "1.0.1", "graphql-tag": "2.12.6", "graphql-ws": "6.0.6", "i18next": "25.6.2", "i18next-browser-languagedetector": "8.2.0", "i18next-http-backend": "3.0.2", "immer": "10.2.0", "jsonrepair": "3.13.1", "koration": "1.0.0", "material-ui-popup-state": "5.3.6", "mui-nested-menu": "4.0.1", "node-vibrant": "4.0.3", "notistack": "3.0.2", "p-limit": "7.2.0", "react": "19.2.0", "react-dom": "19.2.0", "react-hotkeys-hook": "5.2.1", "react-i18next": "16.3.3", "react-lazily": "0.9.2", "react-router-dom": "6.26.1", "react-virtuoso": "4.14.1", "stylis": "4.3.6", "stylis-plugin-rtl": "2.1.1", "use-long-press": "3.3.0", "use-query-params": "2.2.1", "webfontloader": "1.6.28", "zustand": "5.0.8" }, "devDependencies": { "@graphql-codegen/cli": "5.0.7", "@graphql-codegen/client-preset": "4.8.3", "@graphql-codegen/typescript-apollo-client-helpers": "3.0.1", "@graphql-codegen/typescript-operations": "4.6.1", "@types/apollo-upload-client": "18.0.0", "@types/node": "24.10.1", "@types/react": "19.2.5", "@types/react-beautiful-dnd": "13.1.8", "@types/react-dom": "19.2.3", "@types/sanitize-html": "2.16.0", "@types/stylis": "4.2.7", "@types/webfontloader": "1.6.38", "@types/yargs": "17.0.35", "@typescript-eslint/eslint-plugin": "7.16.1", "@typescript-eslint/parser": "7.16.1", "@vitejs/plugin-legacy": "7.2.1", "@vitejs/plugin-react-swc": "4.2.2", "dotenv": "17.2.3", "eslint": "8.57.0", "eslint-config-airbnb": "19.0.4", "eslint-config-airbnb-typescript": "18.0.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-header": "3.1.1", "eslint-plugin-import": "2.32.0", "eslint-plugin-jsx-a11y": "6.10.2", "eslint-plugin-no-relative-import-paths": "1.6.1", "eslint-plugin-prettier": "5.5.4", "eslint-plugin-react": "7.37.5", "eslint-plugin-react-hooks": "4.6.2", "eslint-plugin-unused-imports": "3.2.0", "husky": "9.1.7", "lint-staged": "16.2.6", "prettier": "3.6.2", "syncyarnlock": "1.0.19", "terser": "5.44.1", "tsx": "4.20.6", "typescript": "5.9.3", "vite": "7.2.2", "vite-plugin-node-polyfills": "0.24.0", "vite-plugin-pwa": "1.1.0", "vite-tsconfig-paths": "5.1.4", "workbox-window": "7.4.0", "yargs": "18.0.0" } }