### Why: A lot of content gets mistranslated, some common patterns are: frontmatter date and enums getting translated, liquid tags get translated or go missing during the translation process. These translation errors are tough to catch, especially when they often come in huge PRs. ### What's being changed: - Frontmatter is also getting linted against schema as part of `lint-files` - When an environment variable `TEST_TRANSLATION` is passed, - `lint-files` will run its tests against all files that have been newly translated (by git-diffing between `translations` branch and `main` branch), and - results are outputted using a custom jest reporter. The output is formatted in a way that makes it easy to exclude the problematic translated files from being merged, and to share the errors with [localization support](https://github.com/github/localization-support/issues/489). - Run the implemented translation test as part of the existing `Node.js Tests - Translations` workflow
204 lines
7.0 KiB
JSON
204 lines
7.0 KiB
JSON
{
|
|
"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",
|
|
"html-truncate": "^1.2.2",
|
|
"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.11.3",
|
|
"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"
|
|
}
|
|
}
|
|
}
|