{
  "name": "frankerfacez",
  "author": "Dan Salvato LLC",
  "version": "4.20.71",
  "description": "FrankerFaceZ is a Twitch enhancement suite.",
  "license": "Apache-2.0",
  "scripts": {
    "start": "webpack-dev-server --config webpack.web.dev.js",
    "eslint": "eslint \"src/**/*.{js,jsx,vue}\"",
    "clean": "rimraf dist",
    "dev": "webpack-dev-server --config webpack.web.dev.js",
    "dev:clips": "webpack-dev-server --config webpack.clips.dev.js",
    "dev:prod": "webpack-dev-server --config webpack.web.dev.prod.js",
    "build:all": "npm run build && npm run build:clips",
    "build": "npm run build:prod",
    "build:clips": "cross-env NODE_ENV=production webpack --config webpack.clips.prod.js",
    "build:clips:dev": "npm run clean && webpack --config webpack.clips.dev.js",
    "build:stats": "cross-env NODE_ENV=production webpack --config webpack.web.prod.js --json > stats.json",
    "build:prod": "cross-env NODE_ENV=production webpack --config webpack.web.prod.js",
    "build:dev": "npm run clean && webpack --config webpack.web.dev.js",
    "font": "npm run font:edit",
    "font:edit": "fontello-cli --cli-config fontello.client.json edit",
    "font:save": "fontello-cli --cli-config fontello.client.json save && npm run font:update",
    "font:update": "node bin/update_fonts"
  },
  "devDependencies": {
    "@babel/core": "^7.10.4",
    "@babel/plugin-proposal-class-properties": "^7.12.13",
    "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4",
    "@babel/plugin-proposal-object-rest-spread": "^7.10.4",
    "@babel/plugin-proposal-optional-chaining": "^7.10.4",
    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
    "@babel/plugin-transform-react-jsx": "^7.10.4",
    "@ffz/fontello-cli": "^1.0.4",
    "babel-eslint": "^10.1.0",
    "babel-loader": "^8.1.0",
    "clean-webpack-plugin": "^3.0.0",
    "copy-webpack-plugin": "^5.1.1",
    "cross-env": "^7.0.2",
    "css-loader": "^3.1.0",
    "eslint": "^7.3.1",
    "eslint-plugin-react": "^7.20.3",
    "eslint-plugin-vue": "^6.2.2",
    "extract-loader": "^2.0.1",
    "file-loader": "^4.1.0",
    "json-loader": "^0.5.7",
    "jszip": "^3.6.0",
    "node-sass": "^4.14.1",
    "raw-loader": "^3.1.0",
    "rimraf": "^3.0.2",
    "sass-loader": "^7.1.0",
    "semver": "^7.3.2",
    "terser-webpack-plugin": "^3.0.6",
    "vue": "^2.6.11",
    "vue-loader": "^15.8.3",
    "vue-observe-visibility": "^0.4.6",
    "vue-template-compiler": "^2.6.11",
    "webpack": "^4.43.0",
    "webpack-cli": "^3.3.12",
    "webpack-dev-server": "^3.11.0",
    "webpack-manifest-plugin": "^2.2.0",
    "webpack-merge": "^4.2.2"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/FrankerFaceZ/FrankerFaceZ.git"
  },
  "dependencies": {
    "@ffz/icu-msgparser": "^1.0.2",
    "chartjs": "^0.3.24",
    "chartjs-plugin-waterfall": "^1.0.3",
    "chartjs-plugin-zoom": "^0.7.7",
    "crypto-js": "^3.1.9-1",
    "dayjs": "^1.8.29",
    "displacejs": "^1.4.1",
    "emoji-regex": "^9.0.0",
    "file-saver": "^2.0.1",
    "graphql": "^15.2.0",
    "graphql-tag": "^2.10.3",
    "js-cookie": "^2.2.1",
    "markdown-it": "^11.0.0",
    "markdown-it-link-attributes": "^3.0.0",
    "mnemonist": "^0.38.0",
    "path-to-regexp": "^3.0.0",
    "popper.js": "^1.14.3",
    "raven-js": "^3.24.2",
    "react": "^16.13.1",
    "safe-regex": "^2.1.1",
    "sortablejs": "^1.10.2",
    "sourcemapped-stacktrace": "^1.1.11",
    "text-diff": "^1.0.1",
    "vue-clickaway": "^2.2.2",
    "vue-color": "^2.7.1",
    "vuedraggable": "^2.23.2"
  }
}
