{ "name": "dev.to", "version": "1.0.0", "description": "Where programmers share ideas and help each other grow", "engines": { "yarn": ">=1.21.x", "node": "14.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", "storybook-prerequisites": "sass -q app/assets/stylesheets/themes:app/javascript/storybook-static/themes && bin/generate-css-utility-classes-docs.js", "prebuild-storybook": "yarn run storybook-prerequisites", "build-storybook": "build-storybook -c app/javascript/.storybook -s app/assets -o app/javascript/storybook-static --quiet", "prestorybook": "yarn run storybook-prerequisites", "storybook": "start-storybook -p 6006 -c app/javascript/.storybook -s app/assets,app/javascript/storybook-static", "lint:frontend": "eslint app/assets/javascripts/**/*.js app/javascript/**/*.jsx app/javascript/**/*.js cypress/**/*.js", "pretest": "yarn run lint:frontend", "test": "jest app/javascript/ bin/ --coverage", "test:watch": "jest app/javascript/ bin/ --watch", "postcss": "postcss public/assets/*.css -d public/assets 2> postcss_error.log", "e2e": "bin/e2e" }, "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", "jest --findRelatedTests" ], "{app,spec,config,lib}/**/*.rb": [ "bundle exec rubocop --require rubocop-rspec --auto-correct" ], "app/views/**/*.jbuilder": [ "bundle exec rubocop --require rubocop-rspec --auto-correct" ], "./Gemfile": [ "bundle exec rubocop --require rubocop-rspec --auto-correct" ], "docs/Gemfile": [ "bundle exec rubocop --require rubocop-rspec --auto-correct" ], "*.rake": [ "bundle exec rubocop --require rubocop-rspec --auto-correct" ], "app/**/*.html.erb": [ "bundle exec erblint --autocorrect" ], "*.json": [ "prettier --write" ], "*.scss": [ "prettier --write" ], "*.md": [ "prettier --write --prose-wrap always" ], "*.svg": [ "svgo --pretty" ] }, "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.9.0", "@storybook/addon-a11y": "^6.2.1", "@storybook/addon-actions": "^6.2.1", "@storybook/addon-docs": "^6.2.1", "@storybook/addon-knobs": "^6.2.1", "@storybook/addon-links": "^6.2.1", "@storybook/addon-notes": "^5.3.21", "@storybook/addon-storyshots": "^6.1.8", "@storybook/addon-storysource": "^6.2.1", "@storybook/addons": "^6.1.16", "@storybook/preact": "^6.2.1", "@testing-library/cypress": "^7.0.5", "@testing-library/dom": "^7.30.3", "@testing-library/jest-dom": "^5.11.10", "@testing-library/preact": "^2.0.1", "@testing-library/preact-hooks": "^1.1.0", "@testing-library/user-event": "^13.1.1", "babel-core": "^7.0.0-bridge.0", "babel-eslint": "^10.1.0", "babel-jest": "^26.6.3", "babel-loader": "^8.2.2", "css-loader": "^5.2.0", "cssom": "^0.4.4", "cypress": "^6.8.0", "cypress-file-upload": "^5.0.3", "eslint": "^7.23.0", "eslint-config-preact": "^1.1.3", "eslint-config-prettier": "^8.1.0", "eslint-import-resolver-webpack": "^0.13.0", "eslint-plugin-babel": "^5.3.1", "eslint-plugin-cypress": "^2.11.2", "eslint-plugin-ignore-erb": "^0.1.1", "eslint-plugin-import": "^2.22.1", "eslint-plugin-jsx-a11y": "^6.3.1", "eslint-plugin-no-only-tests": "^2.4.0", "eslint-plugin-react": "^7.23.1", "faker": "^5.5.2", "gitdocs": "^2.0.0", "husky": "^4.3.8", "ibm-openapi-validator": "0.39.0", "jest": "26.6.3", "jest-axe": "^4.1.0", "jest-fetch-mock": "^3.0.3", "jest-watch-typeahead": "^0.6.1", "jsdom": "^16.5.2", "lint-staged": "^10.5.4", "markdown-loader": "^6.0.0", "prettier": "^2.2.1", "redoc-cli": "0.10.4", "sass": "1.32.8", "sass-loader": "^10.1.1", "style-loader": "^2.0.0", "svgo": "2.3.0", "webpack-bundle-analyzer": "^4.4.0", "webpack-dev-server": "^3.11.2" }, "dependencies": { "@babel/core": "^7.13.14", "@babel/plugin-proposal-class-properties": "^7.13.0", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-transform-react-jsx": "^7.13.12", "@babel/preset-env": "^7.13.12", "@github/clipboard-copy-element": "^1.1.2", "@honeybadger-io/webpack": "^1.2.0", "@rails/webpacker": "5.2.1", "@reach/combobox": "^0.14.0", "ahoy.js": "^0.3.8", "autoprefixer": "^10.2.5", "babel-preset-preact": "^2.0.0", "canvas": "^2.7.0", "chart.js": "^2.9.4", "clipboard-polyfill": "^3.0.2", "core-js": "3", "file-loader": "^6.2.0", "focus-trap": "^6.3.0", "focus-visible": "^5.2.0", "he": "^1.2.0", "honeybadger-js": "2.3.0", "intersection-observer": "^0.12.0", "linkstate": "^2.0.1", "lodash.debounce": "4.0.8", "postcss": "^8.2.9", "postcss-cli": "^8.3.1", "postcss-cssnext": "^3.1.0", "postcss-smart-import": "^0.7.6", "postscribe": "^2.0.8", "preact": "^10.5.13", "prop-types": "^15.7.2", "pusher-js": "^7.0.3", "rails-erb-loader": "^5.5.2", "stimulus": "^2.0.0", "web-share-wrapper": "^0.2.1" }, "resolutions": { "gitdocs/markdown-to-jsx": "^6.11.4", "gitdocs/prismjs": "^1.23.0", "gitdocs/axios": "^0.21.1" }, "jest": { "setupFiles": [ "jest-localstorage-mock" ] } }