{
  "name": "dev.to",
  "version": "1.0.0",
  "description": "Where programmers share ideas and help each other grow",
  "engines": {
    "yarn": ">=1.21.x"
  },
  "main": "index.js",
  "directories": {
    "doc": "docs",
    "lib": "lib",
    "test": "test"
  },
  "scripts": {
    "api-docs:lint": "spectral lint -F hint -v docs/api_v0.yml && lint-openapi -e docs/api_v0.yml",
    "api-docs:serve": "redoc-cli serve docs/api_v0.yml --options.pathInMiddlePanel --options.jsonSampleExpandLevel=all --options.menuToggle -t docs/api_template.hbs --watch",
    "generate-themes-storybook": "node-sass app/assets/stylesheets/themes -o storybook-static/themes",
    "build-storybook": "build-storybook -c app/javascript/.storybook -s app/assets --quiet",
    "postbuild-storybook": "npm run generate-themes-storybook",
    "prestorybook": "npm run generate-themes-storybook",
    "storybook": "start-storybook -p 6006 -c app/javascript/.storybook -s app/assets,storybook-static",
    "test": "jest app/javascript/ --coverage",
    "test:watch": "jest app/javascript/ --watch"
  },
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "app/assets/config/manifest.js": [
      "prettier --write",
      "eslint --fix -c app/assets/javascripts/.eslintrc.js"
    ],
    "docs/api_v0.yml": [
      "spectral lint -F hint",
      "lint-openapi -e"
    ],
    "*.{js,jsx}": [
      "prettier --write",
      "eslint --fix"
    ],
    "{app,spec,config,lib}/**/*.rb": [
      "bundle exec rubocop --require rubocop-rspec --safe-auto-correct"
    ],
    "Gemfile": [
      "bundle exec rubocop --require rubocop-rspec --safe-auto-correct"
    ],
    "app/**/*.html.erb": [
      "bundle exec erblint --autocorrect"
    ],
    "*.json": [
      "prettier --write"
    ],
    "*.scss": [
      "prettier --write"
    ],
    "*.md": [
      "prettier --write --prose-wrap always"
    ],
    "*.svg": [
      "svgo --disable=removeViewBox --pretty"
    ]
  },
  "prettier": {
    "singleQuote": true,
    "trailingComma": "all",
    "printWidth": 80
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/thepracticaldev/dev.to.git"
  },
  "author": "",
  "license": "AGPL-3.0-or-later",
  "bugs": {
    "url": "https://github.com/thepracticaldev/dev.to/issues"
  },
  "homepage": "https://github.com/thepracticaldev/dev.to#readme",
  "devDependencies": {
    "@stoplight/spectral": "5.3.0",
    "@storybook/addon-actions": "^5.3.18",
    "@storybook/addon-knobs": "^5.3.18",
    "@storybook/addon-links": "^5.3.18",
    "@storybook/addons": "^5.3.18",
    "@storybook/preact": "^5.3.18",
    "babel-core": "^7.0.0-bridge.0",
    "babel-eslint": "^10.1.0",
    "babel-jest": "^26.0.1",
    "babel-loader": "^8.1.0",
    "css-loader": "^3.5.3",
    "eslint": "^6.8.0",
    "eslint-config-airbnb": "^17.1.1",
    "eslint-config-airbnb-base": "^14.1.0",
    "eslint-config-prettier": "^6.11.0",
    "eslint-plugin-babel": "^5.3.0",
    "eslint-plugin-ignore-erb": "^0.1.1",
    "eslint-plugin-import": "^2.20.2",
    "eslint-plugin-jsx-a11y": "^6.2.3",
    "eslint-plugin-react": "^7.20.0",
    "faker": "^4.1.0",
    "husky": "^4.2.5",
    "ibm-openapi-validator": "0.27.1",
    "jest": "26.0.1",
    "jest-axe": "^3.4.0",
    "jest-fetch-mock": "^3.0.3",
    "jsdom": "^16.2.2",
    "lint-staged": "^10.2.2",
    "node-sass": "^4.14.1",
    "preact-render-spy": "1.3.0",
    "preact-render-to-json": "^3.6.6",
    "prettier": "^2.0.5",
    "redoc-cli": "0.9.8",
    "sass-loader": "^8.0.2",
    "style-loader": "^1.2.1",
    "svgo": "1.3.2",
    "webpack-dev-server": "^3.11.0"
  },
  "dependencies": {
    "@babel/core": "^7.9.6",
    "@babel/plugin-proposal-class-properties": "^7.8.3",
    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
    "@babel/plugin-transform-react-jsx": "^7.9.4",
    "@babel/preset-env": "^7.9.6",
    "@github/clipboard-copy-element": "^1.1.2",
    "@rails/webpacker": "5.1.1",
    "babel-preset-preact": "^2.0.0",
    "chart.js": "^2.9.3",
    "clipboard-polyfill": "^2.8.6",
    "core-js": "3",
    "file-loader": "^6.0.0",
    "focus-visible": "^5.1.0",
    "he": "^1.2.0",
    "honeybadger-js": "2.2.1",
    "intersection-observer": "^0.10.0",
    "linkstate": "^1.1.1",
    "lodash.debounce": "4.0.8",
    "postscribe": "^2.0.8",
    "preact": "^8.5.3",
    "preact-compat": "^3.19.0",
    "preact-textarea-autosize": "^4.0.7",
    "prop-types": "^15.7.2",
    "pusher-js": "^5.1.1",
    "rails-erb-loader": "^5.5.2",
    "stimulus": "^1.1.1",
    "twilio-video": "^2.4.0",
    "web-share-wrapper": "^0.2.1"
  },
  "jest": {
    "setupFiles": [
      "jest-localstorage-mock"
    ]
  }
}
