{ "name": "docs.github.com", "private": true, "main": "server.js", "author": { "email": "opensource+docs@github.com", "name": "GitHub", "url": "https://github.com/github/docs" }, "license": "(MIT AND CC-BY-4.0)", "dependencies": { "@babel/core": "^7.12.9", "@babel/plugin-proposal-class-properties": "^7.12.1", "@babel/plugin-syntax-class-properties": "^7.12.1", "@babel/plugin-transform-modules-amd": "^7.12.1", "@babel/plugin-transform-modules-commonjs": "^7.12.1", "@babel/plugin-transform-react-jsx": "^7.12.7", "@babel/plugin-transform-runtime": "^7.11.0", "@babel/preset-env": "^7.12.7", "@babel/preset-react": "^7.12.7", "@babel/runtime": "^7.11.2", "@github-docs/frontmatter": "^1.3.1", "@graphql-inspector/core": "^2.3.0", "@graphql-tools/load": "^6.2.5", "@octokit/rest": "^16.38.1", "@primer/css": "^15.1.0", "@primer/octicons": "^11.0.0", "algoliasearch": "^3.35.1", "babel-loader": "^8.1.0", "babel-preset-env": "^1.7.0", "browser-date-formatter": "^3.0.3", "change-case": "^3.1.0", "cheerio": "^1.0.0-rc.3", "compression": "^1.7.4", "connect-datadog": "0.0.9", "connect-slashes": "^1.4.0", "cookie-parser": "^1.4.5", "copy-webpack-plugin": "^6.0.3", "cors": "^2.8.5", "cross-env": "^7.0.2", "css-loader": "^4.3.0", "csurf": "^1.11.0", "directory-tree": "^2.2.5", "dotenv": "^8.2.0", "express": "^4.17.1", "express-rate-limit": "^5.1.3", "flat": "^5.0.0", "github-slugger": "^1.2.1", "got": "^9.6.0", "gray-matter": "^4.0.1", "hast-util-from-parse5": "^6.0.1", "hast-util-parse-selector": "^2.2.5", "hast-util-select": "^4.0.2", "hast-util-to-string": "^1.0.4", "hastscript": "^6.0.0", "helmet": "^3.21.2", "highlightjs-graphql": "^1.0.2", "hot-shots": "^8.2.0", "html-entities": "^1.2.1", "imurmurhash": "^0.1.4", "ioredis": "^4.19.4", "ioredis-mock": "^5.2.0", "is-url": "^1.2.4", "js-cookie": "^2.2.1", "js-yaml": "^3.14.0", "linkinator": "^2.13.1", "liquid": "^5.1.0", "lodash": "^4.17.19", "lunr": "^2.3.9", "lunr-languages": "^1.4.0", "mdast-util-from-markdown": "^0.8.4", "mini-css-extract-plugin": "^0.9.0", "mkdirp": "^1.0.3", "morgan": "^1.9.1", "node-fetch": "^2.6.1", "parse5": "^6.0.1", "port-used": "^2.0.8", "rate-limit-redis": "^2.0.0", "react": "^17.0.1", "react-dom": "^17.0.1", "readline-sync": "^1.4.10", "rehype-autolink-headings": "^2.0.5", "rehype-highlight": "^3.1.0", "rehype-raw": "^4.0.2", "rehype-slug": "^2.0.3", "rehype-stringify": "^6.0.1", "remark-code-extra": "^1.0.1", "remark-gemoji-to-emoji": "^1.1.0", "remark-parse": "^7.0.2", "remark-rehype": "^5.0.0", "resolve-url-loader": "^3.1.2", "rimraf": "^3.0.0", "sass": "^1.26.3", "sass-loader": "^9.0.2", "search-with-your-keyboard": "1.1.0", "semver": "^5.7.1", "slash": "^3.0.0", "strip-html-comments": "^1.0.0", "style-loader": "^1.2.1", "unified": "^8.4.2", "unist-util-visit": "^2.0.3", "uuid": "^8.3.0", "walk-sync": "^1.1.4", "webpack": "^4.44.0", "webpack-cli": "^3.3.12" }, "devDependencies": { "@actions/core": "^1.2.6", "ajv": "^6.11.0", "async": "^3.2.0", "await-sleep": "0.0.1", "aws-sdk": "^2.610.0", "babel-eslint": "^10.1.0", "chalk": "^4.0.0", "commander": "^6.2.0", "count-array-values": "^1.2.1", "csp-parse": "0.0.2", "csv-parse": "^4.8.8", "csv-parser": "^2.3.3", "dedent": "^0.7.0", "del": "^4.1.1", "dependency-check": "^4.1.0", "domwaiter": "^1.1.0", "eslint": "^7.13.0", "eslint-config-standard": "^16.0.1", "eslint-plugin-import": "^2.22.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^4.2.1", "event-to-promise": "^0.8.0", "friendly-errors-webpack-plugin": "^1.7.0", "graphql": "^14.5.8", "heroku-client": "^3.1.0", "http-status-code": "^2.1.0", "husky": "^4.2.1", "image-size": "^0.7.4", "japanese-characters": "^1.1.0", "javascript-stringify": "^2.0.1", "jest": "^26.0.1", "jest-expect-message": "^1.0.2", "jest-github-actions-reporter": "^1.0.2", "jest-puppeteer": "^4.4.0", "jest-silent-reporter": "^0.2.1", "jest-slow-test-reporter": "^1.0.0", "make-promises-safe": "^5.1.0", "mime": "^2.4.4", "mock-express-response": "^0.2.2", "mockdate": "^3.0.2", "nock": "^13.0.4", "nodemon": "^2.0.4", "npm-merge-driver-install": "^2.0.0", "object-hash": "^2.0.1", "pa11y-ci": "^2.4.0", "prettier": "^2.1.2", "puppeteer": "^5.5.0", "replace": "^1.2.0", "revalidator": "^0.3.1", "robots-parser": "^2.1.1", "start-server-and-test": "^1.12.0", "supertest": "^4.0.2", "url-template": "^2.0.8", "webpack-dev-middleware": "^3.7.2", "website-scraper": "^4.2.0" }, "scripts": { "start": "cross-env NODE_ENV=development ENABLED_LANGUAGES='en,cn' nodemon server.js", "dev": "npm start", "debug": "cross-env NODE_ENV=development ENABLED_LANGUAGES='en,ja' nodemon --inspect server.js", "rest-dev": "script/rest/update-files.js && npm run dev", "build": "cross-env NODE_ENV=production npx webpack --mode production", "start-all-languages": "cross-env NODE_ENV=development nodemon server.js", "lint": "eslint --fix . && prettier -w \"**/*.{yml,yaml}\"", "lint-translation": "TEST_TRANSLATION=true jest content/lint-files", "test": "jest && eslint . && prettier -c \"**/*.{yml,yaml}\" && npm run check-deps", "prebrowser-test": "npm run build", "browser-test": "start-server-and-test browser-test-server 4001 browser-test-tests", "browser-test-server": "cross-env NODE_ENV=production PORT=4001 node server.js", "browser-test-tests": "cross-env BROWSER=1 jest tests/browser/browser.js", "sync-search": "start-server-and-test sync-search-server 4002 sync-search-indices", "sync-search-dry-run": "DRY_RUN=1 npm run sync-search", "sync-search-server": "cross-env NODE_ENV=production PORT=4002 node server.js", "sync-search-indices": "script/sync-search-indices.js", "test-watch": "jest --watch --notify --notifyMode=change --coverage", "check-deps": "node script/check-deps.js", "prevent-pushes-to-main": "node script/prevent-pushes-to-main.js", "pa11y-ci": "pa11y-ci", "pa11y-test": "start-server-and-test browser-test-server 4001 pa11y-ci", "link-check": "start-server-and-test link-check-server 4002 link-check-test", "link-check-server": "cross-env NODE_ENV=development ENABLED_LANGUAGES='en' PORT=4002 node server.js", "link-check-test": "cross-env node script/check-internal-links.js", "heroku-postbuild": "node script/early-access/clone-for-build.js && npm run build" }, "engines": { "node": "12 - 14" }, "repository": "https://github.com/github/docs", "husky": { "hooks": { "pre-commit": "node script/prevent-translation-commits.js", "pre-push": "npm run prevent-pushes-to-main" } } }