Merge branch 'main' into enterprise-owners-do-not-consume-licenses
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)."
|
||||
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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
|
||||
|
||||
23
data/release-notes/3-0/0-rc2.yml
Normal file
23
data/release-notes/3-0/0-rc2.yml
Normal 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.
|
||||
@@ -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.
|
||||
|
||||
36
lib/page.js
36
lib/page.js
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
45
lib/render-content/plugins/rewrite-asset-paths-to-s3.js
Normal file
45
lib/render-content/plugins/rewrite-asset-paths-to-s3.js
Normal 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}`
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
29
lib/render-content/plugins/use-english-headings.js
Normal file
29
lib/render-content/plugins/use-english-headings.js
Normal 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
|
||||
})
|
||||
}
|
||||
}
|
||||
33
lib/render-content/plugins/wrap-in-element.js
Normal file
33
lib/render-content/plugins/wrap-in-element.js
Normal 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
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
67
package-lock.json
generated
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user