{ "author": { "name": "PrestonN", "email": "FreeTubeApp@protonmail.com", "url": "https://github.com/FreeTubeApp/FreeTube" }, "bugs": { "url": "https://github.com/FreeTubeApp/FreeTube/issues" }, "dependencies": { "@electron/remote": "^1.0.4", "@fortawesome/fontawesome-svg-core": "^1.2.34", "@fortawesome/free-brands-svg-icons": "^5.15.2", "@fortawesome/free-solid-svg-icons": "^5.15.2", "@fortawesome/vue-fontawesome": "^2.0.2", "@silvermine/videojs-quality-selector": "^1.2.4", "autolinker": "^3.14.2", "bulma-pro": "^0.2.0", "dateformat": "^4.5.1", "electron-context-menu": "^2.5.0", "http-proxy-agent": "^4.0.1", "https-proxy-agent": "^5.0.0", "jquery": "^3.6.0", "js-yaml": "^4.0.0", "lodash.debounce": "^4.0.8", "lodash.isequal": "^4.5.0", "lodash.uniqwith": "^4.5.0", "markdown": "^0.5.0", "material-design-icons": "^3.0.1", "nedb": "^1.8.0", "opml-to-json": "^1.0.1", "rss-parser": "^3.12.0", "socks-proxy-agent": "^5.0.0", "video.js": "^7.12.1", "videojs-abloop": "^1.2.0", "videojs-contrib-quality-levels": "^2.1.0", "videojs-http-source-selector": "^1.1.6", "videojs-overlay": "^2.1.4", "videojs-replay": "^1.1.0", "videojs-vtt-thumbnails-freetube": "0.0.15", "vue": "^2.6.12", "vue-electron": "^1.0.6", "vue-i18n": "^8.23.0", "vue-observe-visibility": "^1.0.0", "vue-router": "^3.5.1", "vuex": "^3.6.2", "xml2json": "^0.12.0", "youtube-chat": "git+https://github.com/IcedCoffeee/youtube-chat.git", "youtube-suggest": "^1.1.2", "yt-channel-info": "^2.1.1", "yt-comment-scraper": "^4.0.1", "yt-dash-manifest-generator": "1.1.0", "yt-trending-scraper": "^1.1.3", "ytdl-core": "^4.5.0", "ytpl": "^2.0.5", "ytsr": "^3.3.1" }, "description": "A private YouTube client", "devDependencies": { "@babel/core": "^7.13.8", "@babel/plugin-proposal-class-properties": "^7.13.0", "@babel/plugin-proposal-object-rest-spread": "^7.13.8", "@babel/preset-env": "^7.13.9", "@babel/preset-typescript": "^7.13.0", "@typescript-eslint/eslint-plugin": "^4.16.1", "@typescript-eslint/parser": "^4.16.1", "acorn": "^8.0.5", "babel-eslint": "^10.1.0", "babel-loader": "^8.2.2", "copy-webpack-plugin": "8.0.0", "css-loader": "^5.1.1", "electron": "^12.0.7", "electron-builder": "^22.10.5", "electron-builder-squirrel-windows": "^22.10.5", "electron-debug": "^3.2.0", "electron-rebuild": "^2.3.5", "eslint": "^7.21.0", "eslint-config-prettier": "^8.1.0", "eslint-config-standard": "^16.0.2", "eslint-plugin-import": "^2.22.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^3.3.1", "eslint-plugin-promise": "^4.3.1", "eslint-plugin-standard": "^5.0.0", "eslint-plugin-vue": "^7.7.0", "fast-glob": "^3.2.5", "file-loader": "^6.2.0", "html-webpack-plugin": "^5.2.0", "jest": "^26.6.3", "mini-css-extract-plugin": "^1.3.9", "node-abi": "^2.20.0", "node-loader": "^1.0.2", "npm-run-all": "^4.1.5", "prettier": "^2.2.1", "sass": "^1.32.8", "sass-loader": "^11.0.1", "style-loader": "^2.0.0", "tree-kill": "1.2.2", "typescript": "^4.2.2", "url-loader": "^4.1.1", "vue-devtools": "^5.1.4", "vue-eslint-parser": "^7.6.0", "vue-loader": "^15.9.6", "vue-style-loader": "^4.1.3", "vue-template-compiler": "^2.6.12", "webpack": "^5.24.3", "webpack-cli": "^4.5.0", "webpack-dev-server": "^3.11.2" }, "license": "AGPL-3.0-or-later", "main": "./dist/main.js", "name": "freetube", "private": true, "productName": "FreeTube", "repository": { "type": "git", "url": "git+https://github.com/FreeTubeApp/FreeTube.git" }, "scripts": { "build": "run-s rebuild:electron pack build-release", "build:arm64": "run-s rebuild:electron pack build-release:arm64", "build:arm32": "run-s rebuild:electron pack build-release:arm32", "build-release": "node _scripts/build.js", "build-release:arm64": "node _scripts/build.js arm64", "build-release:arm32": "node _scripts/build.js arm32", "debug": "run-s rebuild:electron debug-runner", "debug-runner": "node _scripts/dev-runner.js --remote-debug", "dev": "run-s rebuild:electron dev-runner", "dev-runner": "node _scripts/dev-runner.js", "electron-builder-install": "electron-builder install-app-deps", "electron-rebuild": "electron-rebuild", "jest": "jest", "jest:coverage": "jest --collect-coverage", "jest:watch": "jest --watch", "lint-fix": "eslint --fix --ext .js,.ts,.vue ./", "lint": "eslint --ext .js,.ts,.vue ./", "pack": "run-p pack:main pack:renderer pack:workers", "pack:main": "webpack --mode=production --node-env=production --config _scripts/webpack.main.config.js", "pack:renderer": "webpack --mode=production --node-env=production --config _scripts/webpack.renderer.config.js", "pack:web": "webpack --mode=production --node-env=production --config _scripts/webpack.web.config.js", "pack:workers": "webpack --mode=production --node-env=production --config _scripts/webpack.workers.config.js", "postinstall": "electron-rebuild", "prettier": "prettier --write \"{src,_scripts}/**/*.{js,ts,vue}\"", "rebuild:electron": "run-s electron-builder-install electron-rebuild", "rebuild:node": "npm rebuild", "release": "run-s test build", "test": "run-s rebuild:node pack:workers jest", "test:watch": "run-s rebuild:node pack:workers jest:watch" }, "version": "0.12.0" }