Files
suwayomi-material-you-webui/package.json
schroda 9ed05f3fc0 Cache images via service worker
Improves the image request logic by making it possible to check if an image is cached.
In case an image is cached, it does not need to be put into the image queue because it won't be sent to the server.
2025-11-22 23:50:03 +01:00

135 lines
4.9 KiB
JSON

{
"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"
}
}