{
  "name": "freetube",
  "productName": "FreeTube",
  "description": "A private YouTube client",
  "version": "0.24.0",
  "license": "AGPL-3.0-or-later",
  "main": "./dist/main.js",
  "private": true,
  "author": {
    "name": "FreeTube Team",
    "email": "FreeTubeApp@protonmail.com",
    "url": "https://github.com/FreeTubeApp/FreeTube"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/FreeTubeApp/FreeTube.git"
  },
  "bugs": {
    "url": "https://github.com/FreeTubeApp/FreeTube/issues"
  },
  "scripts": {
    "build": "run-s pack build-release",
    "build:arm64": "run-s pack build-release:arm64",
    "build:arm32": "run-s pack build-release:arm32",
    "build-release": "node _scripts/build.mjs",
    "build-release:arm64": "node _scripts/build.mjs arm64",
    "build-release:arm32": "node _scripts/build.mjs arm32",
    "clean": "node _scripts/clean.mjs",
    "debug": "node _scripts/dev-runner.js --remote-debug",
    "dev": "node _scripts/dev-runner.js",
    "dev:web": "node _scripts/dev-runner.js --web",
    "get-instances": "node _scripts/getInstances.js",
    "get-regions": "node _scripts/getRegions.mjs",
    "lint-all": "run-p lint lint-json",
    "lint": "run-p eslint-lint lint-style",
    "lint-fix": "run-p eslint-lint-fix lint-style-fix",
    "eslint-lint": "eslint --config eslint.config.mjs \"src/**/*.js\" \"src/renderer/**/*.vue\" \"static/*.js\" \"_scripts/*.js\" \"_scripts/**/*.mjs\"",
    "eslint-lint-fix": "eslint --config eslint.config.mjs --fix \"src/**/*.js\" \"src/renderer/**/*.vue\" \"static/*.js\" \"_scripts/*.js\" \"_scripts/**/*.mjs\"",
    "lint-json": "eslint --config eslint.config.mjs \"static/**/*.json\"",
    "lint-style": "stylelint \"src/**/*.{css,scss}\"",
    "lint-style-fix": "stylelint --fix \"src/**/*.{css,scss}\"",
    "lint-yml": "eslint --config eslint.config.mjs \"**/*.yml\" \"**/*.yaml\"",
    "pack": "run-p pack:main pack:renderer pack:preload pack:botGuardScript && node _scripts/injectAllowedPaths.mjs",
    "pack:main": "webpack --mode=production --config-node-env=production --config _scripts/webpack.main.config.js",
    "pack:renderer": "webpack --mode=production --config-node-env=production --config _scripts/webpack.renderer.config.js",
    "pack:preload": "webpack --mode=production --config-node-env=production --config _scripts/webpack.preload.config.js",
    "pack:web": "webpack --mode=production --config-node-env=production --config _scripts/webpack.web.config.js",
    "pack:botGuardScript": "webpack --config _scripts/webpack.botGuardScript.config.js",
    "pack:botGuardScript:android": "webpack --config _scripts/webpack.botGuardScript.android.config.js",
    "pack:android:core": "webpack --mode=production --config-node-env=production --config _scripts/webpack.android.config.js",
    "pack:android:dev:core": "webpack --mode=development --config-node-env=development --config _scripts/webpack.android.config.js",
    "pack:android": "run-s pack:botGuardScript:android pack:android:core",
    "pack:android:dev": "run-s pack:botGuardScript:android pack:android:dev:core",
    "checkforbadtemplates": "node _scripts/findMissingTemplates.mjs",
    "ci": "yarn install --silent --frozen-lockfile --network-concurrency 1"
  },
  "dependencies": {
    "@fortawesome/fontawesome-svg-core": "^7.2.0",
    "@fortawesome/free-brands-svg-icons": "^7.2.0",
    "@fortawesome/free-regular-svg-icons": "^7.2.0",
    "@fortawesome/free-solid-svg-icons": "^7.2.0",
    "@fortawesome/vue-fontawesome": "^3.1.3",
    "@seald-io/nedb": "https://github.com/MarmadileManteater/nedb.git",
    "autolinker": "^4.1.5",
    "bgutils-js": "^3.2.0",
    "core-js": "^3.41.0",
    "dompurify": "^3.3.3",
    "electron-context-menu": "^4.1.2",
    "googlevideo": "^4.0.4",
    "marked": "^17.0.5",
    "process": "^0.11.10",
    "shaka-player": "^5.0.8",
    "swiper": "^12.1.3",
    "vue": "^3.5.31",
    "vue-i18n": "^11.3.0",
    "vue-observe-visibility": "^2.0.0-alpha.1",
    "vue-router": "^5.0.4",
    "vuex": "^4.1.0",
    "youtubei.js": "^17.0.1"
  },
  "devDependencies": {
    "@babel/core": "^7.29.0",
    "@babel/preset-env": "^7.29.2",
    "@double-great/stylelint-a11y": "^3.4.8",
    "@eslint/js": "^10.0.1",
    "@intlify/eslint-plugin-vue-i18n": "^4.3.0",
    "@stylistic/eslint-plugin": "^5.10.0",
    "babel-loader": "^10.1.1",
    "copy-webpack-plugin": "^14.0.0",
    "css-loader": "^7.1.4",
    "css-minimizer-webpack-plugin": "^8.0.0",
    "electron": "^41.1.0",
    "electron-builder": "^26.8.1",
    "eslint": "^10.1.0",
    "eslint-plugin-import-x": "^4.16.2",
    "eslint-plugin-jsdoc": "^62.8.1",
    "eslint-plugin-jsonc": "^3.1.2",
    "eslint-plugin-n": "^17.24.0",
    "eslint-plugin-promise": "^7.2.1",
    "eslint-plugin-unicorn": "^63.0.0",
    "eslint-plugin-vue": "^10.8.0",
    "eslint-plugin-vuejs-accessibility": "^2.5.0",
    "eslint-plugin-yml": "^3.3.1",
    "globals": "^17.4.0",
    "html-webpack-plugin": "^5.6.6",
    "js-yaml": "^4.1.1",
    "json-minimizer-webpack-plugin": "^5.0.1",
    "lefthook": "^2.1.4",
    "mini-css-extract-plugin": "^2.10.2",
    "npm-run-all2": "^8.0.4",
    "postcss": "^8.5.8",
    "postcss-scss": "^4.0.9",
    "sass": "^1.98.0",
    "sass-loader": "^16.0.7",
    "stylelint": "^17.6.0",
    "stylelint-config-sass-guidelines": "^13.0.0",
    "stylelint-config-standard": "^40.0.0",
    "stylelint-high-performance-animation": "^2.0.0",
    "stylelint-use-logical-spec": "^5.0.1",
    "tree-kill": "1.2.2",
    "vue-eslint-parser": "^10.2.0",
    "vue-loader": "^17.4.2",
    "webpack": "^5.105.4",
    "webpack-cli": "^7.0.2",
    "webpack-dev-server": "^5.2.3"
  }
}
