1
0
mirror of synced 2025-12-22 11:26:57 -05:00

Merge branch 'main' into enterprise-owners-do-not-consume-licenses

This commit is contained in:
Chiedo John
2021-02-01 10:09:20 -05:00
committed by GitHub
17 changed files with 249 additions and 65 deletions

View File

@@ -78,25 +78,23 @@ jobs:
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const changedFiles = ${{steps.filter.outputs.notAllowed_files}}
const restFiles = ${{steps.filter.outputs.openapi_files}}
const translationFiles = ${{steps.filter.outputs.translation_files}}
const markdownFiles = changedFiles.map(file => `- \`${file}\`\n`).join('')
constFilesArr = [
'translations/**',
'lib/rest/static/**',
'.github/workflows/**',
'.github/CODEOWNERS',
'translations/**',
'assets/fonts/**',
'data/graphql/**',
'lib/graphql/**',
'lib/redirects/**',
'lib/rest/**',
'lib/webhooks/**'
]
let reviewMessage = `👋 Hey there spelunker. It looks like you've modified some files that we can't accept as contributions.\n${markdownFiles}\n\nYou'll need to revert all of these ☝️ files using [GitHub Desktop](https://docs.github.com/en/free-pro-team@latest/desktop/contributing-and-collaborating-using-github-desktop/reverting-a-commit) or \`git checkout origin/main <file name>\`. Once you get those files reverted, we can continue with the review process. :octocat:`
const badFiles = badFilesArr.join('\n')
if (restFiles.length > 0) {
reviewMessage += "\n\nIt looks like you've modified the OpenAPI schema (`lib/rest/static/**`). While we aren't accepting changes to the schema directly, you can open an issue for any updates to the REST API docs. Head on over to the [`github/rest-api-description`](https://github.com/github/rest-api-description/issues/new?assignees=&labels=Inaccuracy&template=schema-inaccuracy.md&title=%5BSchema+Inaccuracy%5D+%3CDescribe+Problem%3E) repository to open an issue. ⚡"
}
if (translationFiles.length > 0) {
await github.issues.addLabels({
...context.repo,
issue_number: context.payload.number,
labels: ['localization']
})
reviewMessage += "\n\nIt looks like you've modified translated content. Unfortunately, we are not able to accept pull requests for translated content. Our translation process involves an integration with an external service at crowdin.com, where all translation activity happens. We hope to eventually open up the translation process to the open source community, but we're not there yet. See https://github.com/github/docs/blob/main/CONTRIBUTING.md#earth_asia-translations for more details."
}
let reviewMessage = `👋 Hey there spelunker. It looks like you've modified some files that we can't accept as contributions. The complete list of files we can't accept are:\n${badFiles}\n\nYou'll need to revert all of the files you changed in that list using [GitHub Desktop](https://docs.github.com/en/free-pro-team@latest/desktop/contributing-and-collaborating-using-github-desktop/reverting-a-commit) or \`git checkout origin/main <file name>\`. Once you get those files reverted, we can continue with the review process. :octocat:`
await github.pulls.createReview({
...context.repo,

View File

@@ -268,11 +268,19 @@ Creates or updates an environment variable for any actions running next in a job
#### Example
```bash
echo "action_state=yellow" >> $GITHUB_ENV
{% raw %}
```
Running `$action_state` in a future step will now return `yellow`
steps:
- name: Set the value
id: step_one
run: |
echo "action_state=yellow" >> $GITHUB_ENV
- name: Use the value
id: step_two
run: |
echo "${{ env.action_state }}" # This will output 'yellow'
```
{% endraw %}
#### Multiline strings

View File

@@ -1199,7 +1199,7 @@ For more information about branch, tag, and path filter syntax, see "[`on.<push|
| `'**'` | Matches all branch and tag names. This is the default behavior when you don't use a `branches` or `tags` filter. | `all/the/branches`<br/><br/>`every/tag` |
| `'*feature'` | The `*` character is a special character in YAML. When you start a pattern with `*`, you must use quotes. | `mona-feature`<br/><br/>`feature`<br/><br/>`ver-10-feature` |
| `v2*` | Matches branch and tag names that start with `v2`. | `v2`<br/><br/>`v2.0`<br/><br/>`v2.9` |
| `v[12].[0-9]+.[0-9]+` | Matches all semantic versioning tags with major version 1 or 2 | `v1.10.1`<br/><br/>`v2.0.0` |
| `v[12].[0-9]+.[0-9]+` | Matches all semantic versioning branches and tags with major version 1 or 2 | `v1.10.1`<br/><br/>`v2.0.0` |
#### Patterns to match file paths

View File

@@ -15,9 +15,9 @@ versions:
{% data variables.product.prodname_dependabot %} takes the effort out of maintaining your dependencies. You can use it to ensure that your repository automatically keeps up with the latest releases of the packages and applications it depends on.
You enable {% data variables.product.prodname_dependabot_version_updates %} by checking a configuration file in to your repository. The configuration file specifies the location of the manifest, or other package definition files, stored in your repository. {% data variables.product.prodname_dependabot %} uses this information to check for outdated packages and applications. {% data variables.product.prodname_dependabot %} determines if there is a new version of a dependency by looking at the semantic versioning ([semver](https://semver.org/)) of the dependency to decide whether it should update to that version. For certain package managers, {% data variables.product.prodname_dependabot_version_updates %} also supports vendoring. Vendored (or cached) dependencies are dependencies that are checked in to a specific directory in a repository, rather than referenced in a manifest. Vendored dependencies are available at build time even if package servers are unavailable. {% data variables.product.prodname_dependabot_version_updates %} can be configured to check vendored dependencies for new versions and update them if necessary.
You enable {% data variables.product.prodname_dependabot_version_updates %} by checking a configuration file into your repository. The configuration file specifies the location of the manifest, or of other package definition files, stored in your repository. {% data variables.product.prodname_dependabot %} uses this information to check for outdated packages and applications. {% data variables.product.prodname_dependabot %} determines if there is a new version of a dependency by looking at the semantic versioning ([semver](https://semver.org/)) of the dependency to decide whether it should update to that version. For certain package managers, {% data variables.product.prodname_dependabot_version_updates %} also supports vendoring. Vendored (or cached) dependencies are dependencies that are checked in to a specific directory in a repository rather than referenced in a manifest. Vendored dependencies are available at build time even if package servers are unavailable. {% data variables.product.prodname_dependabot_version_updates %} can be configured to check vendored dependencies for new versions and update them if necessary.
When {% data variables.product.prodname_dependabot %} identifies an outdated dependency, it raises a pull request to update the manifest to the latest version of the dependency. For vendored dependencies, {% data variables.product.prodname_dependabot %} raises a pull request to directly replace the outdated dependency with the new version. You check that your tests pass, review the changelog and release notes included in the pull request summary, and then merge it. For more information, see "[Enabling and disabling version updates](/github/administering-a-repository/enabling-and-disabling-version-updates)."
When {% data variables.product.prodname_dependabot %} identifies an outdated dependency, it raises a pull request to update the manifest to the latest version of the dependency. For vendored dependencies, {% data variables.product.prodname_dependabot %} raises a pull request to replace the outdated dependency with the new version directly. You check that your tests pass, review the changelog and release notes included in the pull request summary, and then merge it. For more information, see "[Enabling and disabling version updates](/github/administering-a-repository/enabling-and-disabling-version-updates)."
If you enable security updates, {% data variables.product.prodname_dependabot %} also raises pull requests to update vulnerable dependencies. For more information, see "[About {% data variables.product.prodname_dependabot_security_updates %}](/github/managing-security-vulnerabilities/about-dependabot-security-updates)."

View File

@@ -10,7 +10,7 @@ versions:
free-pro-team: '*'
---
Effective date: **January 21, 2021**
Effective date: **January 29, 2021**
GitHub provides a great deal of transparency regarding how we use your data, how we collect your data, and with whom we share your data. To that end, we provide this page, which details [our subprocessors](#github-subprocessors), and how we use [cookies](#cookies-on-github).
@@ -27,7 +27,6 @@ When we share your information with third party subprocessors, such as our vendo
| Discourse | Community forum software provider | United States | United States |
| Eloqua | Marketing campaign automation | United States | United States |
| Google Apps | Internal company infrastructure | United States | United States |
| Google Analytics | Analytics and performance | United States | United States |
| MailChimp | Customer ticketing mail services provider | United States | United States |
| Mailgun | Transactional mail services provider | United States | United States |
| Microsoft | Microsoft Services | United States | United States |

View File

@@ -1,6 +1,6 @@
date: '2021-01-12'
release_candidate: true
intro: Release notes are now published on the documentation site. The new location makes it easier to learn about new releases and features at the same time. Historical release notes are available on [GitHub Enterprise Releases](https://enterprise.github.com/releases).
intro: Release candidate versions should be tested on non-production environments. For more information about the Release Candidate Program, see the [GitHub Blog](https://github.blog/2020-12-03-improving-the-ghes-release-process-release-candidates/) or "[About upgrades to new releases](/admin/overview/about-upgrades-to-new-releases)".
sections:
features:
- heading: GitHub Actions

View File

@@ -0,0 +1,23 @@
date: '2021-01-29'
release_candidate: true
intro: Release candidate versions should be tested on non-production environments. For more information about the Release Candidate Program, see the [GitHub Blog](https://github.blog/2020-12-03-improving-the-ghes-release-process-release-candidates/) or "[About upgrades to new releases](/admin/overview/about-upgrades-to-new-releases)."
sections:
bugs:
- heading: Fixes for known issues from Release Candidate 1
notes:
- If you disabled GitHub Actions following an unsuccessful attempt to set up GitHub Actions, then you will not be able to create the first user and use the appliance.
- The "Mandatory message viewed" audit log event was not being saved.
- '`ghe-config-apply` needed to run on a replica during an initial setup before `ghe-repl-setup` could run to start replication.'
- Removing yourself as an enterprise owner returned a 404.
- heading: Fixes for other issues
notes:
- Issues with migrations and upgrades to 3.0.0 have been fixed.
- Backup Utilities versioning now works for release candidate versions.
- Generating a support bundle resulted in an error in the orchestrator logs.
- A large restore could result in Redis running out of memory.
- The checkbox to enable GitHub Actions in the Management Console is now visible with any authentication method.
- GitHub Actions can only be enabled if the required storage is also configured.
- '`ghe-repl-status` could silently fail if MSSQL replication is not configured.'
known_issues:
- The known issues for Release Candidate 1 still apply, excluding the bug fixes listed.

View File

@@ -1,3 +1,3 @@
Key | Type | Description
----|------|-------------
`action`|`string` | The action that was performed. Can be one of `opened`, `edited`, `closed`, `assigned`, `unassigned`, `review_requested`, `review_request_removed`, `ready_for_review`, `labeled`, `unlabeled`, `synchronize`, `locked`, `unlocked`, or `reopened`. If the action is `closed` and the `merged` key is `false`, the pull request was closed with unmerged commits. If the action is `closed` and the `merged` key is `true`, the pull request was merged.
`action`|`string` | The action that was performed. Can be one of `opened`, `edited`, `closed`, `assigned`, `unassigned`, `review_requested`, `review_request_removed`, `ready_for_review`, `converted_to_draft`, `labeled`, `unlabeled`, `synchronize`, `locked`, `unlocked`, or `reopened`. If the action is `closed` and the `merged` key is `false`, the pull request was closed with unmerged commits. If the action is `closed` and the `merged` key is `true`, the pull request was merged.

View File

@@ -4,12 +4,10 @@ const path = require('path')
const cheerio = require('cheerio')
const patterns = require('./patterns')
const getMapTopicContent = require('./get-map-topic-content')
const rewriteAssetPathsToS3 = require('./rewrite-asset-paths-to-s3')
const getApplicableVersions = require('./get-applicable-versions')
const encodeBracketedParentheses = require('./encode-bracketed-parentheses')
const generateRedirectsForPermalinks = require('./redirects/permalinks')
const getEnglishHeadings = require('./get-english-headings')
const useEnglishHeadings = require('./use-english-headings')
const getTocItems = require('./get-toc-items')
const pathUtils = require('./path-utils')
const Permalink = require('./permalink')
@@ -154,6 +152,12 @@ class Page {
this.markdown = await this.getMarkdown()
}
// use English IDs/anchors for translated headings, so links don't break (see #8572)
if (this.languageCode !== 'en') {
const englishHeadings = getEnglishHeadings(this, context.pages)
context.englishHeadings = englishHeadings
}
this.intro = await renderContent(this.rawIntro, context)
this.introPlainText = await renderContent(this.rawIntro, context, { textOnly: true })
this.title = await renderContent(this.rawTitle, context, { textOnly: true, encodeEntities: true })
@@ -185,6 +189,7 @@ class Page {
}))
}
context.relativePath = this.relativePath
const html = await renderContent(markdown, context)
// product frontmatter may contain liquid
@@ -227,29 +232,14 @@ class Page {
})
}
const $ = cheerio.load(html)
// set a flag so layout knows whether to render a mac/windows/linux switcher element
this.includesPlatformSpecificContent = $('[class^="platform-"], .mac, .windows, .linux').length > 0
this.includesPlatformSpecificContent = (
html.includes('extended-markdown mac') ||
html.includes('extended-markdown windows') ||
html.includes('extended-markdown linux')
)
// rewrite asset paths to s3 if it's a dotcom article on any GHE version
// or if it's an enterprise article on any GHE version EXCEPT latest version
rewriteAssetPathsToS3($, context.currentVersion, this.relativePath)
// use English IDs/anchors for translated headings, so links don't break (see #8572)
if (this.languageCode !== 'en') {
const englishHeadings = getEnglishHeadings(this, context.pages)
if (englishHeadings) useEnglishHeadings($, englishHeadings)
}
// wrap ordered list images in a container div
$('ol > li img').each((i, el) => {
$(el).wrap('<div class="procedural-image-wrapper" />')
})
const cleanedHTML = $('body').html()
return cleanedHTML
return html
}
// Allow other modules (like custom liquid tags) to make one-off requests

View File

@@ -11,6 +11,9 @@ const graphql = require('highlightjs-graphql').definer
const remarkCodeExtra = require('remark-code-extra')
const codeHeader = require('./plugins/code-header')
const rewriteLocalLinks = require('./plugins/rewrite-local-links')
const useEnglishHeadings = require('./plugins/use-english-headings')
const rewriteAssetPathsToS3 = require('./plugins/rewrite-asset-paths-to-s3')
const wrapInElement = require('./plugins/wrap-in-element')
module.exports = function createProcessor (context) {
return unified()
@@ -19,9 +22,12 @@ module.exports = function createProcessor (context) {
.use(emoji)
.use(remark2rehype, { allowDangerousHTML: true })
.use(slug)
.use(useEnglishHeadings, context)
.use(autolinkHeadings, { behavior: 'wrap' })
.use(highlight, { languages: { graphql }, subset: false })
.use(raw)
.use(rewriteAssetPathsToS3, context)
.use(wrapInElement, { selector: 'ol > li img', wrapper: 'div.procedural-image-wrapper' })
.use(rewriteLocalLinks, { languageCode: context.currentLanguage, version: context.currentVersion })
.use(html)
}

View File

@@ -0,0 +1,45 @@
const visit = require('unist-util-visit')
const latestEnterpriseRelease = require('../../enterprise-server-releases').latest
const nonEnterpriseDefaultVersion = require('../../non-enterprise-default-version')
const { getS3BucketPathFromVersion } = require('../../s3-bucket-path-utils')
const allVersions = require('../../all-versions')
const s3BasePath = 'https://github-images.s3.amazonaws.com'
const matcher = node => (
node.type === 'element' &&
node.tagName === 'img' &&
node.properties.src &&
node.properties.src.startsWith('/assets/images')
)
// This module rewrites asset paths on Enterprise versions to S3 paths.
// Source example: /assets/images/foo.png
// Rewritten: https://github-images.s3.amazonaws.com/enterprise/2.20/assets/images/foo.png
// The one exception is Admin pages on the latest GHES release.
module.exports = function rewriteAssetPathsToS3 ({ currentVersion, relativePath }) {
// Bail if we don't have a relativePath in this context
if (!relativePath) return
// skip if this is the homepage
if (relativePath === 'index.md') return
// if the current version is non-enterprise, do not rewrite
if (currentVersion === nonEnterpriseDefaultVersion) return
// the relativePath starts with the product, like /admin/foo or /github/foo
const product = relativePath.split('/')[0]
// if this is an Admin page on the latest GHES release, do not rewrite
if (product === 'admin' && allVersions[currentVersion].currentRelease === latestEnterpriseRelease) return
// if the version is enterprise-server@2.22, use `enterprise/2.22` as the bucket path
// otherwise, use the plan name, e.g., `github-ae`
const bucketPath = getS3BucketPathFromVersion(currentVersion)
return tree => {
visit(tree, matcher, node => {
// Rewrite the node's src
node.properties.src = `${s3BasePath}/${bucketPath}${node.properties.src}`
})
}
}

View File

@@ -26,8 +26,8 @@ module.exports = function rewriteLocalLinks ({ languageCode, version }) {
// There's no languageCode or version passed, so nothing to do
if (!languageCode || !version) return
return ast => {
visit(ast, matcher, node => {
return tree => {
visit(tree, matcher, node => {
const newHref = getNewHref(node, languageCode, version)
if (newHref) {
node.properties.href = newHref

View File

@@ -0,0 +1,29 @@
const GithubSlugger = require('github-slugger')
const Entities = require('html-entities').XmlEntities
const toString = require('hast-util-to-string')
const visit = require('unist-util-visit')
const slugger = new GithubSlugger()
const entities = new Entities()
const matcher = node => (
node.type === 'element' &&
['h2', 'h3', 'h4'].includes(node.tagName)
)
// replace translated IDs and links in headings with English
module.exports = function useEnglishHeadings ({ englishHeadings }) {
if (!englishHeadings) return
return tree => {
visit(tree, matcher, node => {
slugger.reset()
// Get the plain text content of the heading node
const text = toString(node)
// find English heading in the collection
const englishHeading = englishHeadings[entities.encode(text)]
// get English slug
const englishSlug = slugger.slug(englishHeading)
// use English slug for heading ID and link
node.properties.id = englishSlug
})
}
}

View File

@@ -0,0 +1,33 @@
const visit = require('unist-util-visit')
const { selectAll } = require('hast-util-select')
const parseSelector = require('hast-util-parse-selector')
/*
* Attacher
*/
module.exports = options => {
options = options || {}
const selector = options.selector || options.select || 'body'
const wrapper = options.wrapper || options.wrap
/*
* Transformer
*/
return tree => {
if (typeof wrapper !== 'string') {
throw new TypeError('Expected a `string` as wrapper')
}
if (typeof selector !== 'string') {
throw new TypeError('Expected a `string` as selector')
}
for (const match of selectAll(options.selector, tree)) {
visit(tree, match, (node, i, parent) => {
const wrapper = parseSelector('div')
wrapper.children = [node]
parent.children[i] = wrapper
})
}
}
}

View File

@@ -1,4 +1,3 @@
const semver = require('semver')
const renderContent = require('../../lib/render-content')
const patterns = require('../../lib/patterns')
const enterpriseReleases = require('../../lib/enterprise-server-releases').supported
@@ -20,8 +19,8 @@ function sortPatchKeys (release, version) {
})
return keys
.sort((a, b) => {
if (semver.gt(a.version, b.version)) return -1
if (semver.lt(a.version, b.version)) return 1
if (a.version > b.version) return -1
if (a.version < b.version) return 1
return 0
})
}

67
package-lock.json generated
View File

@@ -5275,7 +5275,7 @@
},
"agentkeepalive": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-2.2.0.tgz",
"resolved": "http://registry.npmjs.org/agentkeepalive/-/agentkeepalive-2.2.0.tgz",
"integrity": "sha1-xdG9SxKQCPEWPyNvhuX66iAm4u8="
},
"aggregate-error": {
@@ -5413,7 +5413,7 @@
"argparse": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=",
"requires": {
"sprintf-js": "~1.0.2"
}
@@ -6551,6 +6551,11 @@
"safe-buffer": "5.1.2"
}
},
"bcp-47-match": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-1.0.3.tgz",
"integrity": "sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w=="
},
"bcrypt-pbkdf": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
@@ -6796,7 +6801,7 @@
},
"brfs": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz",
"resolved": "http://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz",
"integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==",
"requires": {
"quote-stream": "^1.0.1",
@@ -8510,6 +8515,11 @@
"nth-check": "~1.0.1"
}
},
"css-selector-parser": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz",
"integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g=="
},
"css-url-parser": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/css-url-parser/-/css-url-parser-1.1.3.tgz",
@@ -9060,6 +9070,11 @@
}
}
},
"direction": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/direction/-/direction-1.0.4.tgz",
"integrity": "sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ=="
},
"directory-tree": {
"version": "2.2.5",
"resolved": "https://registry.npmjs.org/directory-tree/-/directory-tree-2.2.5.tgz",
@@ -9485,7 +9500,7 @@
"error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
"integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=",
"requires": {
"is-arrayish": "^0.2.1"
}
@@ -12466,9 +12481,9 @@
"integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ=="
},
"hast-util-parse-selector": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz",
"integrity": "sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA=="
"version": "2.2.5",
"resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz",
"integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ=="
},
"hast-util-raw": {
"version": "5.0.2",
@@ -12515,6 +12530,37 @@
}
}
},
"hast-util-select": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/hast-util-select/-/hast-util-select-4.0.2.tgz",
"integrity": "sha512-8EEG2//bN5rrzboPWD2HdS3ugLijNioS1pqOTIolXNf67xxShYw4SQEmVXd3imiBG+U2bC2nVTySr/iRAA7Cjg==",
"requires": {
"bcp-47-match": "^1.0.0",
"comma-separated-tokens": "^1.0.0",
"css-selector-parser": "^1.0.0",
"direction": "^1.0.0",
"hast-util-has-property": "^1.0.0",
"hast-util-is-element": "^1.0.0",
"hast-util-to-string": "^1.0.0",
"hast-util-whitespace": "^1.0.0",
"not": "^0.1.0",
"nth-check": "^2.0.0",
"property-information": "^5.0.0",
"space-separated-tokens": "^1.0.0",
"unist-util-visit": "^2.0.0",
"zwitch": "^1.0.0"
},
"dependencies": {
"nth-check": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz",
"integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==",
"requires": {
"boolbase": "^1.0.0"
}
}
}
},
"hast-util-to-html": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-6.1.0.tgz",
@@ -17852,7 +17898,7 @@
},
"magic-string": {
"version": "0.22.5",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz",
"resolved": "http://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz",
"integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==",
"requires": {
"vlq": "^0.2.2"
@@ -18942,6 +18988,11 @@
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.2.0.tgz",
"integrity": "sha512-n69+KXI+kZApR+sPwSkoAXpGlNkaiYyoHHqKOFPjJWvwZpew/EjKvuPE4+tStNgb42z5yLtdakgZCQI+LalSPg=="
},
"not": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/not/-/not-0.1.0.tgz",
"integrity": "sha1-yWkcF0bFXc++VMvYvU/wQbwrUZ0="
},
"npm-merge-driver-install": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/npm-merge-driver-install/-/npm-merge-driver-install-2.0.0.tgz",

View File

@@ -49,6 +49,9 @@
"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",
@@ -160,7 +163,7 @@
"website-scraper": "^4.2.0"
},
"scripts": {
"start": "cross-env NODE_ENV=development ENABLED_LANGUAGES='en,ja' nodemon server.js",
"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",