{ "name": "betterytm", "userscriptName": "BetterYTM", "version": "2.0.0", "description": "Lots of configurable layout and user experience improvements for YouTube Music™ and YouTube™", "homepage": "https://github.com/Sv443/BetterYTM", "main": "./src/index.ts", "type": "module", "scripts": { "dev": "concurrently \"nodemon --exec npm run build-dev\" \"npm run serve\"", "serve": "npm run node-ts -- ./src/tools/serve.ts", "lint": "tsc --noEmit && eslint .", "build": "rollup -c", "build-dev": "rollup -c --config-mode development --config-host github --config-branch develop --config-assetSource=local", "build-preview": "rollup -c --config-mode development --config-host github --config-branch develop", "preview": "npm run build-preview && npm run serve -- --auto-exit=3", "build-prod": "npm run build-prod-gh && npm run build-prod-gf && npm run build-prod-oujs", "build-prod-base": "rollup -c --config-mode production --config-branch main", "build-prod-gh": "npm run build-prod-base -- --config-host github", "build-prod-gf": "npm run build-prod-base -- --config-host greasyfork --config-suffix _gf", "build-prod-oujs": "npm run build-prod-base -- --config-host openuserjs --config-suffix _oujs", "post-build": "npm run node-ts -- ./src/tools/post-build.ts", "tr-progress": "npm run node-ts -- ./src/tools/tr-progress.ts", "tr-format": "npm run node-ts -- ./src/tools/tr-format.ts", "tr-prep": "npm run tr-format -- -p", "gen-readme": "npm run node-ts -- ./src/tools/gen-readme.ts", "node-ts": "node --no-warnings=ExperimentalWarning --enable-source-maps --loader ts-node/esm", "invisible": "node --enable-source-maps src/tools/run-invisible.mjs", "test": "npm run node-ts -- ./test.ts", "knip": "knip", "storybook": "storybook dev -p 6006", "build-storybook": "storybook build" }, "engines": { "node": ">=18 <22", "npm": ">=8" }, "repository": { "type": "git", "url": "git+https://github.com/Sv443/BetterYTM.git" }, "author": { "name": "Sv443", "url": "https://github.com/Sv443" }, "license": "AGPL-3.0-only", "bugs": { "url": "https://github.com/Sv443/BetterYTM/issues" }, "funding": { "type": "github", "url": "https://github.com/sponsors/Sv443" }, "hosts": { "github": "https://github.com/Sv443/BetterYTM", "greasyfork": "https://greasyfork.org/en/scripts/475682-betterytm", "openuserjs": "https://openuserjs.org/scripts/Sv443/BetterYTM" }, "updates": { "github": "https://github.com/Sv443/BetterYTM/releases", "greasyfork": "https://greasyfork.org/en/scripts/475682-betterytm", "openuserjs": "https://openuserjs.org/scripts/Sv443/BetterYTM" }, "dependencies": { "@sv443-network/userutils": "^6.3.0", "compare-versions": "^6.1.0", "fuse.js": "^7.0.0", "marked": "^12.0.0", "nanoevents": "^9.0.0" }, "devDependencies": { "@chromatic-com/storybook": "^1.5.0", "@rollup/plugin-json": "^6.0.1", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.5", "@storybook/addon-essentials": "^8.1.5", "@storybook/addon-interactions": "^8.1.5", "@storybook/addon-links": "^8.1.5", "@storybook/blocks": "^8.1.5", "@storybook/html": "^8.1.5", "@storybook/html-vite": "^8.1.5", "@storybook/test": "^8.1.5", "@types/express": "^4.17.17", "@types/greasemonkey": "^4.0.4", "@types/node": "^20.12.12", "@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/parser": "^6.7.4", "concurrently": "^8.1.0", "dotenv": "^16.4.1", "eslint": "^8.51.0", "eslint-plugin-require-extensions": "^0.1.3", "eslint-plugin-storybook": "^0.8.0", "express": "^4.18.2", "knip": "^5.15.1", "nodemon": "^3.0.1", "rollup": "^4.6.0", "rollup-plugin-execute": "^1.1.1", "rollup-plugin-import-css": "^3.3.5", "storybook": "^8.1.5", "storybook-dark-mode": "^4.0.1", "ts-node": "^10.9.1", "tslib": "^2.5.2", "typescript": "^5.4.5" }, "browserslist": [ "last 1 version", "> 1%", "not dead" ], "nodemonConfig": { "watch": [ "src/**", "assets/**", "rollup.config.mjs", ".env", "changelog.md", "package.json" ], "ext": "ts,mts,js,jsx,mjs,json,html,css,svg,png", "ignore": [ "dist/*", "dev/*", "*/stories/*" ] } }