{ "name": "jellyfin-web", "version": "10.10.0", "description": "Web interface for Jellyfin", "repository": "https://github.com/jellyfin/jellyfin-web", "license": "GPL-2.0-or-later", "devDependencies": { "@babel/core": "7.25.7", "@babel/plugin-transform-modules-umd": "7.25.7", "@babel/preset-env": "7.25.7", "@babel/preset-react": "7.25.7", "@eslint-community/eslint-plugin-eslint-comments": "4.4.0", "@stylistic/eslint-plugin": "2.8.0", "@types/dompurify": "3.0.5", "@types/escape-html": "1.0.4", "@types/loadable__component": "5.13.9", "@types/lodash-es": "4.17.12", "@types/markdown-it": "14.1.2", "@types/react": "18.3.11", "@types/react-dom": "18.3.0", "@types/sortablejs": "1.15.8", "@typescript-eslint/eslint-plugin": "5.62.0", "@typescript-eslint/parser": "5.62.0", "@uupaa/dynamic-import-polyfill": "1.0.2", "@vitest/coverage-v8": "2.1.1", "autoprefixer": "10.4.20", "babel-loader": "9.2.1", "clean-webpack-plugin": "4.0.0", "confusing-browser-globals": "1.0.11", "copy-webpack-plugin": "12.0.2", "cross-env": "7.0.3", "css-loader": "7.1.2", "cssnano": "7.0.6", "es-check": "7.2.1", "eslint": "8.57.1", "eslint-plugin-compat": "4.2.0", "eslint-plugin-import": "2.30.0", "eslint-plugin-jsx-a11y": "6.10.0", "eslint-plugin-react": "7.36.1", "eslint-plugin-react-hooks": "4.6.2", "eslint-plugin-sonarjs": "0.25.1", "expose-loader": "5.0.0", "fork-ts-checker-webpack-plugin": "9.0.2", "html-loader": "5.1.0", "html-webpack-plugin": "5.6.0", "jsdom": "25.0.1", "mini-css-extract-plugin": "2.9.1", "postcss": "8.4.47", "postcss-loader": "8.1.1", "postcss-preset-env": "10.0.5", "postcss-scss": "4.0.9", "sass": "1.79.4", "sass-loader": "16.0.2", "source-map-loader": "5.0.0", "speed-measure-webpack-plugin": "1.5.0", "style-loader": "4.0.0", "stylelint": "15.11.0", "stylelint-config-rational-order": "0.1.2", "stylelint-no-browser-hacks": "1.3.0", "stylelint-order": "6.0.4", "stylelint-scss": "5.3.2", "ts-loader": "9.5.1", "typescript": "5.6.2", "vitest": "2.1.1", "webpack": "5.94.0", "webpack-bundle-analyzer": "4.10.2", "webpack-cli": "5.1.4", "webpack-dev-server": "5.1.0", "webpack-merge": "6.0.1", "worker-loader": "3.0.8" }, "dependencies": { "@emotion/react": "11.13.3", "@emotion/styled": "11.13.0", "@fontsource/noto-sans": "5.1.0", "@fontsource/noto-sans-hk": "5.1.0", "@fontsource/noto-sans-jp": "5.1.0", "@fontsource/noto-sans-kr": "5.1.0", "@fontsource/noto-sans-sc": "5.1.0", "@fontsource/noto-sans-tc": "5.1.0", "@jellyfin/libass-wasm": "4.2.3", "@jellyfin/sdk": "0.0.0-unstable.202410090502", "@mui/icons-material": "5.16.7", "@mui/material": "5.16.7", "@mui/x-date-pickers": "7.18.0", "@react-hook/resize-observer": "2.0.2", "@tanstack/react-query": "5.56.2", "@tanstack/react-query-devtools": "5.56.2", "@types/react-lazy-load-image-component": "1.6.4", "abortcontroller-polyfill": "1.7.5", "blurhash": "2.0.5", "classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz", "classnames": "2.5.1", "core-js": "3.38.1", "date-fns": "2.30.0", "dompurify": "3.0.1", "epubjs": "0.3.93", "escape-html": "1.0.3", "fast-text-encoding": "1.0.6", "flv.js": "1.6.2", "headroom.js": "0.12.0", "history": "5.3.0", "hls.js": "1.5.15", "intersection-observer": "0.12.2", "jellyfin-apiclient": "1.11.0", "jquery": "3.7.1", "jstree": "3.3.17", "libarchive.js": "2.0.2", "libpgs": "0.6.0", "lodash-es": "4.17.21", "markdown-it": "14.1.0", "material-design-icons-iconfont": "6.7.0", "material-react-table": "2.13.3", "native-promise-only": "0.8.1", "pdfjs-dist": "3.11.174", "react": "18.3.1", "react-blurhash": "0.3.0", "react-dom": "18.3.1", "react-lazy-load-image-component": "1.6.2", "react-router-dom": "6.26.2", "resize-observer-polyfill": "1.5.1", "screenfull": "6.0.2", "sortablejs": "1.15.3", "swiper": "11.1.14", "usehooks-ts": "3.1.0", "webcomponents.js": "0.7.24", "whatwg-fetch": "3.6.20" }, "optionalDependencies": { "sass-embedded": "1.79.4" }, "browserslist": [ "last 2 Firefox versions", "last 2 Chrome versions", "last 2 ChromeAndroid versions", "last 2 Safari versions", "iOS > 10", "last 2 Edge versions", "Chrome 27", "Chrome 38", "Chrome 47", "Chrome 53", "Chrome 56", "Chrome 63", "Edge 18", "Firefox ESR" ], "scripts": { "start": "npm run serve", "serve": "webpack serve --config webpack.dev.js", "build:analyze": "cross-env NODE_ENV=\"production\" webpack --config webpack.analyze.js", "build:development": "webpack --config webpack.dev.js", "build:production": "cross-env NODE_ENV=\"production\" webpack --config webpack.prod.js", "build:check": "tsc --noEmit", "escheck": "es-check", "lint": "eslint \"./\"", "test": "vitest --watch=false --config vite.config.ts", "test:watch": "vitest --config vite.config.ts", "stylelint": "stylelint \"src/**/*.{css,scss}\"" }, "engines": { "node": ">=20.0.0", "npm": ">=9.6.4", "yarn": "YARN NO LONGER USED - use npm instead." } }