Files
owncast/web/package.json
T

158 lines
5.8 KiB
JSON

{
"name": "owncast-web",
"version": "0.1.0",
"private": true,
"resolutions": {
"babel-preset-current-node-syntax": "1.1.1"
},
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"check": "npm run check:lint && npm run check:format && npm run check:unused && npm test && npm run build",
"check:lint": "jsfiles=$(git diff --name-only origin/develop... | grep '^web/.*\\.[jt]sx\\?$' | sed 's|^web/||'); cssfiles=$(git diff --name-only origin/develop... | grep '^web/.*\\.s\\?css$' | sed 's|^web/||'); ([ -z \"$jsfiles\" ] || echo \"$jsfiles\" | xargs eslint) && ([ -z \"$cssfiles\" ] || echo \"$cssfiles\" | xargs stylelint)",
"check:format": "files=$(git diff --name-only origin/develop... | grep '^web/.*\\.\\(js\\|ts\\|jsx\\|tsx\\|css\\|scss\\)$' | sed 's|^web/||'); [ -z \"$files\" ] || echo \"$files\" | xargs prettier --check",
"check:unused": "knip --include dependencies,files,exports",
"lint": "eslint --fix --ext .js,.ts,.tsx types/ pages/ components/ && npm run stylelint",
"lint:changed": "files=$(git diff --name-only origin/develop... | grep '^web/.*\\.[jt]sx\\?$' | sed 's|^web/||'); [ -z \"$files\" ] || echo \"$files\" | xargs eslint --fix",
"stylelint": "stylelint --fix **/*.scss",
"stylelint:changed": "files=$(git diff --name-only origin/develop... | grep '^web/.*\\.s\\?css$' | sed 's|^web/||'); [ -z \"$files\" ] || echo \"$files\" | xargs stylelint --fix",
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build",
"build-styles": "cd ./style-definitions && style-dictionary build && ./build.sh && cd -",
"test": "jest",
"format": "prettier --write **/*.{js,ts,jsx,tsx,css,md,scss}",
"format:changed": "files=$(git diff --name-only origin/develop... | grep '^web/' | sed 's|^web/||'); [ -z \"$files\" ] || echo \"$files\" | xargs prettier --write",
"translate": "node scripts/i18n-extract.js"
},
"dependencies": {
"@ant-design/icons": "4.8.3",
"@babel/parser": "^7.28.0",
"@babel/traverse": "^7.28.0",
"@codemirror/lang-css": "6.3.1",
"@codemirror/lang-html": "^6.4.2",
"@codemirror/lang-javascript": "^6.1.2",
"@codemirror/lang-markdown": "6.5.0",
"@codemirror/language-data": "6.5.2",
"@emoji-mart/data": "^1.2.1",
"@emoji-mart/react": "^1.1.1",
"@fontsource/inter": "^5.0.0",
"@fontsource/poppins": "5.2.7",
"@next/bundle-analyzer": "^14.0.0",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.3.0",
"@uiw/codemirror-theme-bbedit": "4.25.8",
"@uiw/react-codemirror": "4.25.8",
"@xstate/react": "3.2.2",
"antd": "4.24.16",
"autoprefixer": "^10.4.14",
"babel-plugin-dynamic-import-node": "^2.3.3",
"chart.js": "^4.2.0",
"classnames": "2.5.1",
"date-fns": "^4.0.0",
"emoji-mart": "^5.2.2",
"glob": "^13.0.0",
"graphemer": "^1.4.0",
"i18next-scanner": "^4.6.0",
"interweave": "^13.0.0",
"interweave-autolink": "^5.1.0",
"lodash": "4.17.23",
"next": "14.2.35",
"next-export-i18n": "2.3.5",
"next-pwa": "^5.6.0",
"next-with-less": "3.0.1",
"postcss-flexbugs-fixes": "5.0.2",
"react": "18.3.1",
"react-chartjs-2": "^5.2.0",
"react-dom": "18.3.1",
"react-error-boundary": "^5.0.0",
"react-hotkeys-hook": "5.2.4",
"react-linkify": "1.0.0-alpha",
"react-markdown": "10.1.0",
"react-virtuoso": "4.18.3",
"recoil": "0.7.7",
"regexpu-core": "^5.3.2",
"sanitize-html": "^2.11.0",
"semver": "^7.6.3",
"sharp": "0.34.5",
"ua-parser-js": "1.0.41",
"video.js": "^8.3.0",
"workbox-precaching": "^7.0.0",
"workbox-window": "^7.0.0",
"xstate": "4.38.3",
"yaml": "2.8.2"
},
"devDependencies": {
"@babel/core": "7.29.0",
"@babel/preset-react": "^7.25.7",
"@commitlint/cli": "^20.0.0",
"@commitlint/config-conventional": "^20.0.0",
"@mdx-js/react": "3.1.1",
"@storybook/addon-a11y": "^9.1.13",
"@storybook/addon-docs": "^9.1.13",
"@storybook/addon-links": "^9.1.13",
"@storybook/cli": "^9.1.13",
"@storybook/mdx2-csf": "1.1.0",
"@storybook/nextjs": "^9.1.13",
"@svgr/webpack": "8.1.0",
"@testing-library/react": "^16.3.0",
"@types/jest": "^30.0.0",
"@types/markdown-it": "14.1.2",
"@types/node": "24.10.7",
"@types/prop-types": "15.7.15",
"@types/react": "18.3.28",
"@types/react-linkify": "1.0.4",
"@types/sanitize-html": "^2.9.0",
"@types/ua-parser-js": "0.7.39",
"@types/video.js": "^7.3.50",
"@typescript-eslint/eslint-plugin": "8.57.1",
"@typescript-eslint/parser": "8.57.1",
"babel-loader": "10.1.1",
"chromatic": "15.3.0",
"css-loader": "7.1.4",
"cypress": "^15.0.0",
"eslint": "8.57.1",
"eslint-config-airbnb": "19.0.4",
"eslint-config-next": "14.2.35",
"eslint-config-prettier": "10.1.8",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jsx-a11y": "6.10.2",
"eslint-plugin-prettier": "^5.0.0",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "4.6.2",
"eslint-plugin-storybook": "9.1.20",
"handlebars": "^4.7.7",
"html-webpack-plugin": "5.6.6",
"install": "^0.13.0",
"jest-environment-jsdom": "^30.0.4",
"knip": "^5.0.0",
"less": "4.6.4",
"less-loader": "12.3.2",
"mdx-mermaid": "^2.0.0",
"mermaid": "^11.10.0",
"msw": "^2.11.6",
"msw-storybook-addon": "^2.0.6",
"npm": "^11.0.0",
"postcss": "^8.4.31",
"prettier": "3.8.1",
"sass": "1.98.0",
"storybook": "^9.1.13",
"style-dictionary": "3.9.2",
"style-loader": "4.0.0",
"stylelint": "^16.0.0",
"stylelint-config-standard": "^39.0.0",
"stylelint-config-standard-scss": "^16.0.0",
"ts-jest": "^29.1.0",
"typescript": "^5.7.3"
},
"overrides": {
"@emoji-mart/react": {
"emoji-mart": "5.2.2"
}
},
"msw": {
"workerDirectory": [
"public/"
]
}
}