{ "name": "jellyfin-web", "version": "10.9.6", "description": "Web interface for Jellyfin", "repository": "https://github.com/jellyfin/jellyfin-web", "license": "GPL-2.0-or-later", "devDependencies": { "@babel/core": "7.24.3", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-proposal-private-methods": "7.18.6", "@babel/plugin-transform-modules-umd": "7.24.1", "@babel/preset-env": "7.24.3", "@babel/preset-react": "7.24.1", "@types/escape-html": "1.0.4", "@types/loadable__component": "5.13.9", "@types/lodash-es": "4.17.12", "@types/markdown-it": "13.0.7", "@types/react": "17.0.79", "@types/react-dom": "17.0.25", "@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", "autoprefixer": "10.4.19", "babel-loader": "9.1.3", "babel-plugin-dynamic-import-polyfill": "1.0.0", "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": "6.10.0", "cssnano": "6.1.2", "es-check": "7.1.1", "eslint": "8.57.0", "eslint-plugin-compat": "4.2.0", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-import": "2.29.1", "eslint-plugin-jsx-a11y": "6.8.0", "eslint-plugin-react": "7.34.1", "eslint-plugin-react-hooks": "4.6.0", "eslint-plugin-sonarjs": "0.24.0", "expose-loader": "4.1.0", "fork-ts-checker-webpack-plugin": "9.0.2", "html-loader": "4.2.0", "html-webpack-plugin": "5.6.0", "jsdom": "23.2.0", "mini-css-extract-plugin": "2.8.1", "postcss": "8.4.38", "postcss-loader": "7.3.4", "postcss-preset-env": "9.5.2", "postcss-scss": "4.0.9", "sass": "1.72.0", "sass-loader": "13.3.3", "source-map-loader": "4.0.2", "speed-measure-webpack-plugin": "1.5.0", "style-loader": "3.3.4", "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.4.3", "vitest": "1.4.0", "webpack": "5.91.0", "webpack-bundle-analyzer": "4.10.1", "webpack-cli": "5.1.4", "webpack-dev-server": "4.15.2", "webpack-merge": "5.10.0", "worker-loader": "3.0.8" }, "dependencies": { "@emotion/react": "11.11.4", "@emotion/styled": "11.11.0", "@fontsource/noto-sans": "5.0.21", "@fontsource/noto-sans-hk": "5.0.18", "@fontsource/noto-sans-jp": "5.0.18", "@fontsource/noto-sans-kr": "5.0.18", "@fontsource/noto-sans-sc": "5.0.18", "@fontsource/noto-sans-tc": "5.0.18", "@jellyfin/libass-wasm": "4.2.1", "@jellyfin/sdk": "0.9.0", "@loadable/component": "5.16.3", "@mui/icons-material": "5.15.11", "@mui/material": "5.15.11", "@mui/x-data-grid": "6.19.5", "@react-hook/resize-observer": "1.2.6", "@tanstack/react-query": "4.36.1", "@tanstack/react-query-devtools": "4.36.1", "@types/react-lazy-load-image-component": "1.6.3", "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.36.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.7", "intersection-observer": "0.12.2", "jellyfin-apiclient": "1.11.0", "jquery": "3.7.1", "jstree": "3.3.16", "libarchive.js": "1.3.0", "lodash-es": "4.17.21", "markdown-it": "14.1.0", "material-design-icons-iconfont": "6.7.0", "native-promise-only": "0.8.1", "pdfjs-dist": "3.11.174", "react": "17.0.2", "react-blurhash": "0.3.0", "react-dom": "17.0.2", "react-lazy-load-image-component": "1.6.0", "react-router-dom": "6.22.3", "resize-observer-polyfill": "1.5.1", "screenfull": "6.0.2", "sortablejs": "1.15.2", "swiper": "11.0.7", "usehooks-ts": "2.16.0", "webcomponents.js": "0.7.24", "whatwg-fetch": "3.6.20" }, "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." } }