{ "author": { "email": "opensource+docs@github.com", "name": "GitHub", "url": "https://github.com/github/docs" }, "cacheDirectories": [ "node_modules", ".next/cache" ], "dependencies": { "@github/failbot": "0.8.0", "@primer/css": "^19.4.0", "@primer/octicons": "17.0.0", "@primer/octicons-react": "17.0.0", "@primer/react": "^34.7.1", "@react-aria/ssr": "^3.1.0", "accept-language-parser": "^1.5.0", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "cheerio": "^1.0.0-rc.10", "classnames": "^2.3.1", "connect-datadog": "0.0.9", "connect-slashes": "^1.4.0", "cookie-parser": "^1.4.6", "cors": "^2.8.5", "csurf": "^1.11.0", "dayjs": "^1.10.7", "dotenv": "^10.0.0", "express": "^4.17.2", "express-timeout-handler": "^2.2.2", "flat": "^5.0.2", "github-slugger": "^1.4.0", "got": "^11.8.2", "gray-matter": "^4.0.3", "hast-util-from-parse5": "^7.1.0", "hast-util-parse-selector": "^3.1.0", "hast-util-select": "^5.0.1", "hast-util-to-string": "^2.0.0", "hastscript": "^7.0.2", "helmet": "^4.6.0", "highlight.js": "11.4.0", "highlightjs-curl": "^1.3.0", "highlightjs-graphql": "^1.0.2", "hot-shots": "^9.0.0", "html-entities": "^2.3.2", "imurmurhash": "^0.1.4", "js-cookie": "^3.0.1", "js-yaml": "^4.1.0", "kleur": "4.1.4", "liquidjs": "^9.22.1", "lodash": "^4.17.21", "lodash-es": "^4.17.21", "lunr": "^2.3.9", "lunr-languages": "^1.9.0", "mdast-util-from-markdown": "^1.2.0", "mdast-util-to-string": "^3.1.0", "morgan": "^1.10.0", "next": "^11.1.3", "parse5": "^6.0.1", "port-used": "^2.0.8", "react": "^17.0.2", "react-dom": "^17.0.2", "react-markdown": "^8.0.0", "react-syntax-highlighter": "^15.5.0", "rehype-autolink-headings": "^6.1.1", "rehype-highlight": "^5.0.2", "rehype-raw": "^6.1.1", "rehype-slug": "^5.0.1", "rehype-stringify": "^9.0.2", "remark-code-extra": "^1.0.1", "remark-gemoji-to-emoji": "^1.1.0", "remark-gfm": "^3.0.1", "remark-parse": "^10.0.1", "remark-parse-no-trim": "^8.0.4", "remark-rehype": "^10.1.0", "revalidator": "^0.3.1", "rss-parser": "^3.12.0", "scroll-anchoring": "^0.1.0", "semver": "^7.3.5", "slash": "^4.0.0", "strip-html-comments": "^1.0.0", "styled-components": "^5.3.3", "swr": "1.2.2", "ts-dedent": "^2.2.0", "unified": "^10.1.0", "unist-util-visit": "^4.1.0", "uuid": "^8.3.2", "walk-sync": "^3.0.0" }, "devDependencies": { "@actions/core": "^1.6.0", "@actions/github": "^5.0.0", "@alex_neo/jest-expect-message": "^1.0.5", "@babel/core": "^7.16.12", "@babel/eslint-parser": "^7.16.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-transform-runtime": "^7.16.10", "@babel/preset-env": "^7.16.11", "@graphql-inspector/core": "^3.1.1", "@graphql-tools/load": "^7.4.1", "@jest/globals": "^27.4.6", "@octokit/graphql": "4.8.0", "@octokit/rest": "^18.12.0", "@types/github-slugger": "^1.3.0", "@types/imurmurhash": "^0.1.1", "@types/js-cookie": "^3.0.1", "@types/lodash": "^4.14.178", "@types/react": "^17.0.38", "@types/react-dom": "^17.0.11", "@types/react-syntax-highlighter": "^13.5.2", "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "5.16.0", "@typescript-eslint/parser": "5.16.0", "async": "^3.2.3", "babel-loader": "^8.2.3", "babel-plugin-styled-components": "^2.0.2", "babel-preset-env": "^1.7.0", "chalk": "^5.0.0", "change-case": "^4.1.2", "commander": "^8.3.0", "cross-env": "^7.0.3", "csp-parse": "0.0.2", "dedent": "^0.7.0", "domwaiter": "^1.3.0", "eslint": "8.11.0", "eslint-config-prettier": "^8.3.0", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.25.4", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.0.0", "event-to-promise": "^0.8.0", "git-diff": "^2.0.6", "glob": "^7.2.0", "graphql": "^16.3.0", "http-status-code": "^2.1.0", "husky": "^7.0.4", "japanese-characters": "^1.1.0", "javascript-stringify": "^2.1.0", "jest": "^27.4.7", "jest-environment-puppeteer": "5.0.4", "jest-fail-on-console": "^2.2.3", "jest-github-actions-reporter": "^1.0.3", "jest-slow-test-reporter": "^1.0.0", "kill-port": "1.6.1", "linkinator": "^3.0.3", "lint-staged": "^12.3.3", "make-promises-safe": "^5.1.0", "minimatch": "^5.0.0", "mkdirp": "^1.0.4", "mockdate": "^3.0.5", "nock": "^13.2.2", "nodemon": "^2.0.15", "npm-merge-driver-install": "^3.0.0", "postcss": "^8.4.6", "prettier": "^2.5.1", "replace": "^1.2.1", "rimraf": "^3.0.2", "robots-parser": "^3.0.0", "sass": "^1.49.0", "start-server-and-test": "^1.14.0", "strip-ansi": "^7.0.1", "supertest": "^6.2.2", "typescript": "^4.5.5", "url-template": "^3.0.0" }, "engines": { "node": "16.x" }, "exports": "./server.mjs", "license": "(MIT AND CC-BY-4.0)", "name": "docs.github.com", "optionalDependencies": { "bottleneck": "^2.19.5", "esm": "^3.2.25", "image-size": "^1.0.0", "jest-puppeteer": "^5.0.4", "jimp": "^0.16.1", "pa11y-ci": "^2.4.2", "puppeteer": "^9.1.1", "website-scraper": "^5.0.0", "xlsx-populate": "^1.21.0" }, "private": true, "repository": "https://github.com/github/docs", "scripts": { "browser-test": "cross-env BROWSER=1 NODE_OPTIONS=--experimental-vm-modules jest tests/browser/browser.js", "build": "next build", "debug": "cross-env NODE_ENV=development ENABLED_LANGUAGES='en,ja' nodemon --inspect server.mjs", "dev": "npm start", "lint": "eslint '**/*.{js,mjs,ts,tsx}'", "lint-translation": "cross-env NODE_OPTIONS=--experimental-vm-modules TEST_TRANSLATION=true jest tests/linting/lint-files.js", "pa11y-ci": "pa11y-ci", "pa11y-test": "start-server-and-test browser-test-server 4001 pa11y-ci", "prepare": "husky install", "prettier": "prettier -w \"**/*.{ts,tsx,js,mjs,scss,yml,yaml}\"", "prettier-check": "prettier -c \"**/*.{ts,tsx,js,mjs,scss,yml,yaml}\"", "prevent-pushes-to-main": "node script/prevent-pushes-to-main.js", "rest-dev": "script/rest/update-files.js && npm run dev", "start": "cross-env NODE_ENV=development ENABLED_LANGUAGES='en,ja' nodemon server.mjs", "start-all-languages": "cross-env NODE_ENV=development nodemon server.mjs", "sync-search": "cross-env NODE_OPTIONS='--max_old_space_size=8192' start-server-and-test sync-search-server 4002 sync-search-indices", "sync-search-ghes-release": "cross-env GHES_RELEASE=1 start-server-and-test sync-search-server 4002 sync-search-indices", "sync-search-indices": "script/sync-search-indices.js", "sync-search-server": "cross-env NODE_ENV=production PORT=4002 node server.mjs", "translation-check": "start-server-and-test translation-check-server 4002 translation-check-test", "translation-check-server": "cross-env NODE_ENV=test PORT=4002 node server.mjs", "translation-check-test": "script/i18n/test-html-pages.js", "test": "cross-env NODE_OPTIONS='--max_old_space_size=4096 --experimental-vm-modules' jest --logHeapUsage", "test-watch": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --watch --notify --notifyMode=change --coverage", "tsc": "tsc --noEmit" }, "lint-staged": { "*.{js,mjs,ts,tsx}": "eslint --cache --fix", "*.{js,mjs,scss,ts,tsx,yml,yaml}": "prettier --write" } }