158 lines
5.8 KiB
JSON
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/"
|
|
]
|
|
}
|
|
} |