diff --git a/.github/workflows/build-blog-only.yml b/.github/workflows/build-blog-only.yml index 3e28728c85aa..8c112331e269 100644 --- a/.github/workflows/build-blog-only.yml +++ b/.github/workflows/build-blog-only.yml @@ -16,8 +16,10 @@ jobs: timeout-minutes: 30 runs-on: ubuntu-latest steps: - - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3 - - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3 + - name: Checkout + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 # v3 + - name: Set up Node + uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # v3 with: node-version: '16' cache: yarn diff --git a/.github/workflows/build-perf.yml b/.github/workflows/build-perf.yml index a5838cd7b858..779c41c45788 100644 --- a/.github/workflows/build-perf.yml +++ b/.github/workflows/build-perf.yml @@ -26,12 +26,15 @@ jobs: timeout-minutes: 30 runs-on: ubuntu-latest steps: - - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3 - - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3 + - name: Checkout + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 # v3 + - name: Set up Node + uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # v3 with: node-version: '16' cache: yarn - - uses: preactjs/compressed-size-action@8119d3d31b6e57b167e09c81dfa877eada3bcb35 # v2 + - name: Track build size changes + uses: preactjs/compressed-size-action@8119d3d31b6e57b167e09c81dfa877eada3bcb35 # v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} build-script: build:website:en @@ -45,8 +48,8 @@ jobs: timeout-minutes: 30 runs-on: ubuntu-latest steps: - - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3 - - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3 + - uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 # v3 + - uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # v3 with: cache: yarn - name: Installation diff --git a/.github/workflows/canary-release.yml b/.github/workflows/canary-release.yml index 9b6b8829ea22..4711e4d3a4ed 100644 --- a/.github/workflows/canary-release.yml +++ b/.github/workflows/canary-release.yml @@ -15,11 +15,12 @@ jobs: name: Publish Canary runs-on: ubuntu-latest steps: - - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3 + - name: Checkout + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 # v3 with: fetch-depth: 0 # Needed to get the commit number with "git rev-list --count HEAD" - name: Set up Node - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3 + uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # v3 with: node-version: '16' cache: yarn diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 0958cf4ebca1..c4d2cc1df3cb 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -26,13 +26,13 @@ jobs: - javascript steps: - - name: Checkout repository - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3 + - name: Checkout + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 # v3 - name: Initialize CodeQL - uses: github/codeql-action/init@883476649888a9e8e219d5b2e6b789dc024f690c # v1 + uses: github/codeql-action/init@1ed1437484560351c5be56cf73a48a279d116b78 # v1 with: languages: ${{ matrix.language }} - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@883476649888a9e8e219d5b2e6b789dc024f690c # v1 + uses: github/codeql-action/analyze@1ed1437484560351c5be56cf73a48a279d116b78 # v1 diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index dcd2a1dfcc0a..302303abdd5b 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -1,4 +1,4 @@ -name: 'Dependency Review' +name: Dependency Review on: [pull_request] permissions: @@ -8,6 +8,7 @@ jobs: dependency-review: runs-on: ubuntu-latest steps: - - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 #v3 - - name: 'Dependency Review' + - name: Checkout + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 #v3 + - name: Dependency Review uses: actions/dependency-review-action@3f943b86c9a289f4e632c632695e2e0898d9d67d # v1 diff --git a/.github/workflows/lighthouse-report.yml b/.github/workflows/lighthouse-report.yml index c4c0eb830380..cef4ee2beb9c 100644 --- a/.github/workflows/lighthouse-report.yml +++ b/.github/workflows/lighthouse-report.yml @@ -10,9 +10,10 @@ jobs: name: Lighthouse Report runs-on: ubuntu-latest steps: - - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3 + - name: Checkout + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 # v3 - name: Wait for the Netlify Preview - uses: jakepartusch/wait-for-netlify-action@7dcdeb40c6bc3710a8099702a1fa1ce2c5e322a6 # v1 + uses: jakepartusch/wait-for-netlify-action@7ccf91c9ba3d64aa4389c0d3adcba0a6e77e5421 # v1 id: netlify with: site_name: docusaurus-2 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 1622d0f8e0ad..4a614bdc26d3 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -14,8 +14,10 @@ jobs: timeout-minutes: 30 runs-on: ubuntu-latest steps: - - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3 - - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3 + - name: Checkout + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 # v3 + - name: Set up Node + uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # v3 with: node-version: '16' cache: yarn diff --git a/.github/workflows/showcase-test.yml b/.github/workflows/showcase-test.yml index b019e67cbd01..e51b9561d518 100644 --- a/.github/workflows/showcase-test.yml +++ b/.github/workflows/showcase-test.yml @@ -16,9 +16,10 @@ jobs: timeout-minutes: 30 runs-on: ubuntu-latest steps: - - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3 + - name: Checkout + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 # v3 - name: Set up Node - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3 + uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # v3 with: node-version: '16' cache: yarn diff --git a/.github/workflows/tests-e2e.yml b/.github/workflows/tests-e2e.yml index 8ba4f0500ca2..b05f8983bef3 100644 --- a/.github/workflows/tests-e2e.yml +++ b/.github/workflows/tests-e2e.yml @@ -24,9 +24,10 @@ jobs: matrix: node: ['14', '16', '17'] steps: - - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3 + - name: Checkout + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 # v3 - name: Use Node.js ${{ matrix.node }} - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3 + uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # v3 with: node-version: ${{ matrix.node }} cache: yarn @@ -62,9 +63,10 @@ jobs: - variant: -st nodeLinker: pnp steps: - - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3 + - name: Checkout + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 # v3 - name: Use Node.js 16 - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3 + uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # v3 with: node-version: '16' cache: yarn @@ -107,9 +109,10 @@ jobs: timeout-minutes: 30 runs-on: ubuntu-latest steps: - - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 #v3 + - name: Checkout + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 #v3 - name: Use Node.js 16 - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3 + uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # v3 with: node-version: '16' cache: yarn @@ -136,9 +139,10 @@ jobs: timeout-minutes: 30 runs-on: ubuntu-latest steps: - - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 #v3 + - name: Checkout + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 #v3 - name: Use Node.js 16 - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3 + uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # v3 with: node-version: '16' cache: yarn diff --git a/.github/workflows/tests-swizzle.yml b/.github/workflows/tests-swizzle.yml index 058b927b7cae..755312a8bbde 100644 --- a/.github/workflows/tests-swizzle.yml +++ b/.github/workflows/tests-swizzle.yml @@ -20,11 +20,12 @@ jobs: action: ['eject', 'wrap'] variant: ['js', 'ts'] steps: - - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3 - - name: Use Node.js - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3 + - name: Checkout + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 # v3 + - name: Set up Node + uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # v3 with: - node-version: 14 + node-version: '16' cache: yarn - name: Installation run: yarn diff --git a/.github/workflows/tests-windows.yml b/.github/workflows/tests-windows.yml index 96a3969876e4..2611bfa5fc02 100644 --- a/.github/workflows/tests-windows.yml +++ b/.github/workflows/tests-windows.yml @@ -21,9 +21,10 @@ jobs: steps: - name: Support longpaths run: git config --system core.longpaths true - - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3 + - name: Checkout + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 # v3 - name: Use Node.js ${{ matrix.node }} - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3 + uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # v3 with: node-version: ${{ matrix.node }} - name: Installation diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a8dbafc13bb5..42a4f9bb7bb7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -19,9 +19,10 @@ jobs: matrix: node: ['14', '16', '17'] steps: - - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3 + - name: Checkout + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 # v3 - name: Use Node.js ${{ matrix.node }} - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3 + uses: actions/setup-node@56337c425554a6be30cdef71bf441f15be286854 # v3 with: node-version: ${{ matrix.node }} cache: yarn diff --git a/README.md b/README.md index 310374e7621a..3aa39767c89f 100644 --- a/README.md +++ b/README.md @@ -47,17 +47,13 @@ Short on time? Check out our [5-minute tutorial ⏱️](https://tutorial.docusau ## Installation -Use the initialization cli to create your site: +Use the initialization CLI to create your site: ```bash -npm init docusaurus@latest [name] [template] +npm init docusaurus@latest ``` -Example: - -```bash -npm init docusaurus@latest my-website classic -``` +[Read the docs](https://docusaurus.io/docs/installation) for any further information. ## Contributing diff --git a/__tests__/validate-package-json.test.ts b/__tests__/validate-package-json.test.ts index 5f3d605d5a35..8598d7b89247 100644 --- a/__tests__/validate-package-json.test.ts +++ b/__tests__/validate-package-json.test.ts @@ -27,12 +27,8 @@ type PackageJsonFile = { async function getPackagesJsonFiles(): Promise { const files = await Globby('packages/*/package.json'); - return Promise.all( - files.map(async (file) => ({ - file, - content: JSON.parse(await fs.readFile(file, 'utf8')), - })), + files.map((file) => fs.readJSON(file).then((content) => ({file, content}))), ); } diff --git a/admin/new.docusaurus.io/functionUtils/playgroundUtils.ts b/admin/new.docusaurus.io/functionUtils/playgroundUtils.ts index 85bd7ef4bd81..c5fdbdf2d7c0 100644 --- a/admin/new.docusaurus.io/functionUtils/playgroundUtils.ts +++ b/admin/new.docusaurus.io/functionUtils/playgroundUtils.ts @@ -16,9 +16,12 @@ const PlaygroundConfigs = { codesandbox: 'https://codesandbox.io/s/github/facebook/docusaurus/tree/main/examples/classic', - // stackblitz: 'https://stackblitz.com/fork/docusaurus', // not updated - // stackblitz: 'https://stackblitz.com/github/facebook/docusaurus/tree/main/examples/classic', // slow to load - stackblitz: 'https://stackblitz.com/github/facebook/docusaurus/tree/starter', // dedicated branch: faster load + // Not updated + // stackblitz: 'https://stackblitz.com/fork/docusaurus', + // Slow to load + // stackblitz: 'https://stackblitz.com/github/facebook/docusaurus/tree/main/examples/classic', + // Dedicated branch: faster load + stackblitz: 'https://stackblitz.com/github/facebook/docusaurus/tree/starter', }; const PlaygroundDocumentationUrl = 'https://docusaurus.io/docs/playground'; diff --git a/admin/new.docusaurus.io/package.json b/admin/new.docusaurus.io/package.json index 296c5f981db3..eebe7ceebd64 100644 --- a/admin/new.docusaurus.io/package.json +++ b/admin/new.docusaurus.io/package.json @@ -9,6 +9,6 @@ "@netlify/functions": "^1.0.0" }, "devDependencies": { - "netlify-cli": "^9.16.4" + "netlify-cli": "^9.16.6" } } diff --git a/admin/scripts/generateExamples.mjs b/admin/scripts/generateExamples.mjs index 748640ae0dcb..0c29c39bba31 100644 --- a/admin/scripts/generateExamples.mjs +++ b/admin/scripts/generateExamples.mjs @@ -24,27 +24,26 @@ async function generateTemplateExample(template) { `generating ${template} template for codesandbox in the examples folder...`, ); - // run the docusaurus script to create the template in the examples folder + // Run the docusaurus script to create the template in the examples folder const command = template.endsWith('-typescript') ? template.replace('-typescript', ' -- --typescript') : template; shell.exec( - // /!\ we use the published init script on purpose, - // because using the local init script is too early and could generate - // upcoming/unavailable config options. Remember CodeSandbox templates - // will use the published version, not the repo version + // We use the published init script on purpose, because the local init is + // too new and could generate upcoming/unavailable config options. + // Remember CodeSandbox templates will use the published version, + // not the repo version. `npm init docusaurus@latest examples/${template} ${command}`, ); - // read the content of the package.json - const templatePackageJson = JSON.parse( - await fs.readFile(`examples/${template}/package.json`, 'utf8'), + const templatePackageJson = await fs.readJSON( + `examples/${template}/package.json`, ); - // attach the dev script which would be used in code sandbox by default + // Attach the dev script which would be used in code sandbox by default templatePackageJson.scripts.dev = 'docusaurus start'; - // these example projects are not meant to be published to npm + // These example projects are not meant to be published to npm templatePackageJson.private = true; // Make sure package.json name is not "examples-classic". The package.json @@ -58,13 +57,12 @@ async function generateTemplateExample(template) { ? 'Docusaurus example project' : `Docusaurus example project (${template} template)`; - // rewrite the package.json file with the new edit await fs.writeFile( `./examples/${template}/package.json`, `${JSON.stringify(templatePackageJson, null, 2)}\n`, ); - // create sandbox.config.json file at the root of template + // Create sandbox/stackblitz config file at the root of template const codeSandboxConfig = { infiniteLoopProtection: true, hardReloadOnChange: true, @@ -162,7 +160,7 @@ console.log(` # Generate examples start! `); -// delete the examples directories if they exists +// Delete the examples directories if they exist console.log(`------- ## Removing example folders... `); @@ -170,7 +168,7 @@ await fs.rm('./examples/classic', {recursive: true, force: true}); await fs.rm('./examples/classic-typescript', {recursive: true, force: true}); await fs.rm('./examples/facebook', {recursive: true, force: true}); -// get the list of all available templates +// Get the list of all available templates console.log(` ------- ## Generate example folders... @@ -187,7 +185,7 @@ console.log('Committing changes'); shell.exec('git add examples'); shell.exec("git commit -am 'update examples' --allow-empty"); -// update starters +// Update starters console.log(` ------- # Updating starter repos and branches ... diff --git a/jest/snapshotPathNormalizer.ts b/jest/snapshotPathNormalizer.ts index 084abc14a6cc..485c70b4b1b2 100644 --- a/jest/snapshotPathNormalizer.ts +++ b/jest/snapshotPathNormalizer.ts @@ -90,7 +90,7 @@ function normalizePaths(value: T): T { (val) => val.split(homeDirReal).join(''), (val) => val.split(homeDir).join(''), - // handle HOME_DIR nested inside TEMP_DIR + // Handle HOME_DIR nested inside TEMP_DIR (val) => val .split(`${path.sep + homeRelativeToTemp}`) @@ -98,7 +98,7 @@ function normalizePaths(value: T): T { (val) => val .split(`${path.sep + homeRelativeToTempReal}`) - .join(''), // untested + .join(''), (val) => val .split(`${path.sep + homeRealRelativeToTempReal}`) @@ -106,7 +106,7 @@ function normalizePaths(value: T): T { (val) => val .split(`${path.sep + homeRealRelativeToTemp}`) - .join(''), // untested + .join(''), // Replace the Docusaurus version with a stub (val) => val.split(version).join(''), @@ -134,7 +134,6 @@ function normalizePaths(value: T): T { } function shouldUpdate(value: unknown) { - // return true if value is different from normalized value return typeof value === 'string' && normalizePaths(value) !== value; } diff --git a/package.json b/package.json index dfe748669349..bfdd2febe924 100644 --- a/package.json +++ b/package.json @@ -61,24 +61,24 @@ }, "devDependencies": { "@crowdin/cli": "^3.7.8", - "@swc/core": "^1.2.164", + "@swc/core": "^1.2.167", "@swc/jest": "^0.2.20", - "@testing-library/react-hooks": "^7.0.2", + "@testing-library/react-hooks": "^8.0.0", "@types/fs-extra": "^9.0.13", "@types/jest": "^27.4.1", "@types/lodash": "^4.14.181", - "@types/node": "^17.0.23", + "@types/node": "^17.0.24", "@types/prompts": "^2.0.14", - "@types/react": "^18.0.0", + "@types/react": "^18.0.5", "@types/react-dev-utils": "^9.0.10", - "@types/react-test-renderer": "^17.0.1", + "@types/react-test-renderer": "^18.0.0", "@types/semver": "^7.3.9", "@types/shelljs": "^0.8.11", - "@typescript-eslint/eslint-plugin": "^5.18.0", - "@typescript-eslint/parser": "^5.18.0", + "@typescript-eslint/eslint-plugin": "^5.19.0", + "@typescript-eslint/parser": "^5.19.0", "concurrently": "^7.1.0", "cross-env": "^7.0.3", - "cspell": "^5.19.6", + "cspell": "^5.19.7", "eslint": "^8.13.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-prettier": "^8.5.0", @@ -95,8 +95,8 @@ "jest-serializer-react-helmet-async": "^1.0.21", "lerna": "^4.0.0", "lerna-changelog": "^2.2.0", - "lint-staged": "^12.3.7", - "netlify-cli": "^9.16.4", + "lint-staged": "^12.3.8", + "netlify-cli": "^9.16.6", "nodemon": "^2.0.15", "prettier": "^2.6.2", "react": "^17.0.2", diff --git a/packages/create-docusaurus/package.json b/packages/create-docusaurus/package.json index e38f4f51cdec..7773671b8cd5 100755 --- a/packages/create-docusaurus/package.json +++ b/packages/create-docusaurus/package.json @@ -24,10 +24,10 @@ "dependencies": { "@docusaurus/logger": "2.0.0-beta.18", "commander": "^5.1.0", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "lodash": "^4.17.21", "prompts": "^2.4.2", - "semver": "^7.3.6", + "semver": "^7.3.7", "shelljs": "^0.8.5", "supports-color": "^9.2.2", "tslib": "^2.3.1" diff --git a/packages/create-docusaurus/src/index.ts b/packages/create-docusaurus/src/index.ts index 4358ee020303..e913de7ef3da 100755 --- a/packages/create-docusaurus/src/index.ts +++ b/packages/create-docusaurus/src/index.ts @@ -103,8 +103,7 @@ function isValidGitRepoUrl(gitRepoUrl: string) { } async function updatePkg(pkgPath: string, obj: {[key: string]: unknown}) { - const content = await fs.readFile(pkgPath, 'utf-8'); - const pkg = JSON.parse(content); + const pkg = await fs.readJSON(pkgPath); const newPkg = Object.assign(pkg, obj); await fs.outputFile(pkgPath, `${JSON.stringify(newPkg, null, 2)}\n`); diff --git a/packages/create-docusaurus/templates/facebook/package.json b/packages/create-docusaurus/templates/facebook/package.json index 73ccac8dda3e..1263e547c870 100644 --- a/packages/create-docusaurus/templates/facebook/package.json +++ b/packages/create-docusaurus/templates/facebook/package.json @@ -36,7 +36,7 @@ "eslint-plugin-react": "^7.29.4", "eslint-plugin-react-hooks": "^4.4.0", "prettier": "^2.6.2", - "stylelint": "^14.6.1" + "stylelint": "^14.7.0" }, "browserslist": { "production": [ diff --git a/packages/docusaurus-logger/src/index.ts b/packages/docusaurus-logger/src/index.ts index 08e985e77ed4..7d5b577dff26 100644 --- a/packages/docusaurus-logger/src/index.ts +++ b/packages/docusaurus-logger/src/index.ts @@ -5,16 +5,16 @@ * LICENSE file in the root directory of this source tree. */ -import chalk, {type Chalk} from 'chalk'; +import chalk from 'chalk'; type InterpolatableValue = string | number | (string | number)[]; -const path = (msg: unknown): string => chalk.cyan(chalk.underline(`"${msg}"`)); -const url = (msg: unknown): string => chalk.cyan(chalk.underline(msg)); -const name = (msg: unknown): string => chalk.blue(chalk.bold(msg)); +const path = (msg: unknown): string => chalk.cyan.underline(`"${msg}"`); +const url = (msg: unknown): string => chalk.cyan.underline(msg); +const name = (msg: unknown): string => chalk.blue.bold(msg); const code = (msg: unknown): string => chalk.cyan(`\`${msg}\``); -const subdue: Chalk = chalk.gray; -const num: Chalk = chalk.yellow; +const subdue = (msg: unknown): string => chalk.gray(msg); +const num = (msg: unknown): string => chalk.yellow(msg); function interpolate( msgs: TemplateStringsArray, @@ -69,7 +69,7 @@ function info( ): void; function info(msg: unknown, ...values: InterpolatableValue[]): void { console.info( - `${chalk.cyan(chalk.bold('[INFO]'))} ${ + `${chalk.cyan.bold('[INFO]')} ${ values.length === 0 ? stringify(msg) : interpolate(msg as TemplateStringsArray, ...values) @@ -115,7 +115,7 @@ function success( ): void; function success(msg: unknown, ...values: InterpolatableValue[]): void { console.log( - `${chalk.green(chalk.bold('[SUCCESS]'))} ${ + `${chalk.green.bold('[SUCCESS]')} ${ values.length === 0 ? stringify(msg) : interpolate(msg as TemplateStringsArray, ...values) diff --git a/packages/docusaurus-mdx-loader/package.json b/packages/docusaurus-mdx-loader/package.json index f4d0e25a4af8..9e54ef6633d1 100644 --- a/packages/docusaurus-mdx-loader/package.json +++ b/packages/docusaurus-mdx-loader/package.json @@ -25,7 +25,7 @@ "@mdx-js/mdx": "^1.6.22", "escape-html": "^1.0.3", "file-loader": "^6.2.0", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "image-size": "^1.0.1", "mdast-util-to-string": "^2.0.0", "remark-emoji": "^2.2.0", @@ -37,7 +37,7 @@ }, "devDependencies": { "@docusaurus/types": "2.0.0-beta.18", - "@types/escape-html": "^1.0.1", + "@types/escape-html": "^1.0.2", "@types/mdast": "^3.0.10", "@types/stringify-object": "^3.3.1", "@types/unist": "^2.0.6", diff --git a/packages/docusaurus-mdx-loader/src/deps.d.ts b/packages/docusaurus-mdx-loader/src/deps.d.ts index 510bfc74e092..d27fd5334b9e 100644 --- a/packages/docusaurus-mdx-loader/src/deps.d.ts +++ b/packages/docusaurus-mdx-loader/src/deps.d.ts @@ -8,14 +8,14 @@ // TODO Types provided by MDX 2.0 https://github.com/mdx-js/mdx/blob/main/packages/mdx/types/index.d.ts declare module '@mdx-js/mdx' { import type {Processor} from 'unified'; - import type {RemarkOrRehypePlugin} from '@docusaurus/mdx-loader'; + import type {MDXPlugin} from '@docusaurus/mdx-loader'; export type Options = { filepath?: string; skipExport?: boolean; wrapExport?: string; - remarkPlugins?: RemarkOrRehypePlugin[]; - rehypePlugins?: RemarkOrRehypePlugin[]; + remarkPlugins?: MDXPlugin[]; + rehypePlugins?: MDXPlugin[]; }; export function sync(content: string, options?: Options): string; @@ -23,6 +23,6 @@ declare module '@mdx-js/mdx' { export function createCompiler(options?: Options): Processor; export default function mdx( content: string, - options?: mdx.Options, + options?: Options, ): Promise; } diff --git a/packages/docusaurus-mdx-loader/src/remark/toc/index.ts b/packages/docusaurus-mdx-loader/src/remark/toc/index.ts index e10dbe70a3f3..8f5626de5abb 100644 --- a/packages/docusaurus-mdx-loader/src/remark/toc/index.ts +++ b/packages/docusaurus-mdx-loader/src/remark/toc/index.ts @@ -79,7 +79,7 @@ export default function plugin(options: PluginOptions = {}): Transformer { visit(root, 'heading', (child: Heading, index, parent) => { const value = toString(child); - // depth:1 headings are titles and not included in the TOC + // depth: 1 headings are titles and not included in the TOC if (parent !== root || !value || child.depth < 2) { return; } diff --git a/packages/docusaurus-mdx-loader/src/remark/transformImage/index.ts b/packages/docusaurus-mdx-loader/src/remark/transformImage/index.ts index 8dc6bbca3e50..691c42703922 100644 --- a/packages/docusaurus-mdx-loader/src/remark/transformImage/index.ts +++ b/packages/docusaurus-mdx-loader/src/remark/transformImage/index.ts @@ -103,7 +103,7 @@ async function getImageAbsolutePath( await ensureImageFileExist(imageFilePath, filePath); return imageFilePath; } else if (path.isAbsolute(imagePath)) { - // absolute paths are expected to exist in the static folder + // Absolute paths are expected to exist in the static folder. const possiblePaths = staticDirs.map((dir) => path.join(dir, imagePath)); const imageFilePath = await findAsyncSequential( possiblePaths, @@ -120,7 +120,7 @@ async function getImageAbsolutePath( } return imageFilePath; } - // relative paths are resolved against the source file's folder + // Relative paths are resolved against the source file's folder. const imageFilePath = path.join( path.dirname(filePath), decodeURIComponent(imagePath), diff --git a/packages/docusaurus-mdx-loader/src/remark/transformLinks/index.ts b/packages/docusaurus-mdx-loader/src/remark/transformLinks/index.ts index b1e7d1467ed9..24a04805a89b 100644 --- a/packages/docusaurus-mdx-loader/src/remark/transformLinks/index.ts +++ b/packages/docusaurus-mdx-loader/src/remark/transformLinks/index.ts @@ -34,7 +34,9 @@ type Context = PluginOptions & { filePath: string; }; -// transform the link node to a jsx link with a require() call +/** + * Transforms the link node to a JSX `` element with a `require()` call. + */ function toAssetRequireNode(node: Link, assetPath: string, filePath: string) { const jsxNode = node as Literal & Partial; let relativeAssetPath = posixPath( @@ -106,7 +108,7 @@ async function getAssetAbsolutePath( async function processLinkNode(node: Link, context: Context) { if (!node.url) { - // try to improve error feedback + // Try to improve error feedback // see https://github.com/facebook/docusaurus/issues/3309#issuecomment-690371675 const title = node.title || (node.children[0] as Literal)?.value || '?'; const line = node?.position?.start?.line || '?'; diff --git a/packages/docusaurus-migrate/package.json b/packages/docusaurus-migrate/package.json index 6cda40d3bcd6..8a54c2aa68d3 100644 --- a/packages/docusaurus-migrate/package.json +++ b/packages/docusaurus-migrate/package.json @@ -28,7 +28,7 @@ "@mapbox/hast-util-to-jsx": "^2.0.0", "color": "^4.2.3", "commander": "^5.1.0", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "hast-util-to-string": "^1.0.4", "html-tags": "^3.2.0", "import-fresh": "^3.3.0", @@ -36,13 +36,13 @@ "rehype-parse": "^7.0.1", "remark-parse": "^8.0.2", "remark-stringify": "^8.1.0", - "semver": "^7.3.6", + "semver": "^7.3.7", "tslib": "^2.3.1", "unified": "^9.2.2", "unist-util-visit": "^2.0.3" }, "devDependencies": { "@types/color": "^3.0.3", - "@types/jscodeshift": "^0.11.3" + "@types/jscodeshift": "^0.11.4" } } diff --git a/packages/docusaurus-migrate/src/index.ts b/packages/docusaurus-migrate/src/index.ts index 764718fc5441..e1e0bcf4d665 100644 --- a/packages/docusaurus-migrate/src/index.ts +++ b/packages/docusaurus-migrate/src/index.ts @@ -207,7 +207,7 @@ export function createConfigFile({ >): VersionTwoConfig { const siteConfig = v1Config; const customConfigFields: {[key: string]: unknown} = {}; - // add fields that are unknown to v2 to customConfigFields + // Add fields that are unknown to v2 to customConfigFields Object.keys(siteConfig).forEach((key) => { const knownFields = [ 'title', @@ -443,8 +443,8 @@ async function migrateBlogFiles(context: MigrationContext) { async function handleVersioning(context: MigrationContext) { const {siteDir, newDir} = context; if (await fs.pathExists(path.join(siteDir, 'versions.json'))) { - const loadedVersions: string[] = JSON.parse( - await fs.readFile(path.join(siteDir, 'versions.json'), 'utf-8'), + const loadedVersions: string[] = await fs.readJSON( + path.join(siteDir, 'versions.json'), ); await fs.copyFile( path.join(siteDir, 'versions.json'), @@ -542,7 +542,7 @@ async function migrateVersionedSidebar( `version-${version}-sidebars.json`, ); try { - sidebarEntries = JSON.parse(await fs.readFile(sidebarPath, 'utf-8')); + sidebarEntries = await fs.readJSON(sidebarPath); } catch { sidebars.push({version, entries: sidebars[i - 1]!.entries}); return; diff --git a/packages/docusaurus-module-type-aliases/src/index.d.ts b/packages/docusaurus-module-type-aliases/src/index.d.ts index dc196b86f210..b4a243ee96fb 100644 --- a/packages/docusaurus-module-type-aliases/src/index.d.ts +++ b/packages/docusaurus-module-type-aliases/src/index.d.ts @@ -152,9 +152,7 @@ declare module '@docusaurus/Link' { readonly href?: string; readonly autoAddBaseUrl?: boolean; - /** - * escape hatch in case broken links check is annoying for a specific link - */ + /** Escape hatch in case broken links check doesn't make sense. */ readonly 'data-noBrokenLinkCheck'?: boolean; }; export default function Link(props: Props): JSX.Element; diff --git a/packages/docusaurus-plugin-client-redirects/package.json b/packages/docusaurus-plugin-client-redirects/package.json index 3bee353ebe93..32ec18590e1e 100644 --- a/packages/docusaurus-plugin-client-redirects/package.json +++ b/packages/docusaurus-plugin-client-redirects/package.json @@ -24,7 +24,7 @@ "@docusaurus/utils-common": "2.0.0-beta.18", "@docusaurus/utils-validation": "2.0.0-beta.18", "eta": "^1.12.3", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "lodash": "^4.17.21", "tslib": "^2.3.1" }, diff --git a/packages/docusaurus-plugin-client-redirects/src/collectRedirects.ts b/packages/docusaurus-plugin-client-redirects/src/collectRedirects.ts index 1ffb8e568eca..9fb14e85a239 100644 --- a/packages/docusaurus-plugin-client-redirects/src/collectRedirects.ts +++ b/packages/docusaurus-plugin-client-redirects/src/collectRedirects.ts @@ -96,8 +96,8 @@ function filterUnwantedRedirects( redirects: RedirectMetadata[], pluginContext: PluginContext, ): RedirectMetadata[] { - // we don't want to create twice the same redirect - // that would lead to writing twice the same html redirection file + // We don't want to create the same redirect twice, since that would lead to + // writing the same html redirection file twice. Object.entries(_.groupBy(redirects, (redirect) => redirect.from)).forEach( ([from, groupedFromRedirects]) => { if (groupedFromRedirects.length > 1) { diff --git a/packages/docusaurus-plugin-content-blog/package.json b/packages/docusaurus-plugin-content-blog/package.json index ae003bb574b8..8ab159fa48fa 100644 --- a/packages/docusaurus-plugin-content-blog/package.json +++ b/packages/docusaurus-plugin-content-blog/package.json @@ -26,7 +26,7 @@ "@docusaurus/utils-validation": "2.0.0-beta.18", "cheerio": "^1.0.0-rc.10", "feed": "^4.2.2", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "lodash": "^4.17.21", "reading-time": "^1.5.0", "remark-admonitions": "^1.2.1", diff --git a/packages/docusaurus-plugin-content-blog/src/__tests__/index.test.ts b/packages/docusaurus-plugin-content-blog/src/__tests__/index.test.ts index 79ec1bb2b010..7d47e0027ab6 100644 --- a/packages/docusaurus-plugin-content-blog/src/__tests__/index.test.ts +++ b/packages/docusaurus-plugin-content-blog/src/__tests__/index.test.ts @@ -158,7 +158,6 @@ describe('blog plugin', () => { readingTime: 0.015, source: path.posix.join( '@site', - // pluginPath, path.posix.join('i18n', 'en', 'docusaurus-plugin-content-blog'), '2018-12-14-Happy-First-Birthday-Slash.md', ), @@ -421,7 +420,7 @@ describe('blog plugin', () => { const blogPosts = await getBlogPosts(siteDir); const noDateSource = path.posix.join('@site', PluginPath, 'no date.md'); const noDateSourceFile = path.posix.join(siteDir, PluginPath, 'no date.md'); - // we know the file exist and we know we have git + // We know the file exists and we know we have git const result = getFileCommitDate(noDateSourceFile, {age: 'oldest'}); const noDateSourceTime = result.date; const formattedDate = Intl.DateTimeFormat('en', { diff --git a/packages/docusaurus-plugin-content-blog/src/__tests__/options.test.ts b/packages/docusaurus-plugin-content-blog/src/__tests__/options.test.ts index 2b375f7cee52..8c8cbf92172c 100644 --- a/packages/docusaurus-plugin-content-blog/src/__tests__/options.test.ts +++ b/packages/docusaurus-plugin-content-blog/src/__tests__/options.test.ts @@ -13,7 +13,7 @@ function testValidate(options: Options) { return validateOptions({validate: normalizePluginOptions, options}); } -// the type of remark/rehype plugins can be either function, object or array +// The type of remark/rehype plugins can be either function, object or array const markdownPluginsFunctionStub = () => {}; const markdownPluginsObjectStub = {}; diff --git a/packages/docusaurus-plugin-content-blog/src/feed.ts b/packages/docusaurus-plugin-content-blog/src/feed.ts index fa546fbf0f18..af453979243c 100644 --- a/packages/docusaurus-plugin-content-blog/src/feed.ts +++ b/packages/docusaurus-plugin-content-blog/src/feed.ts @@ -7,11 +7,7 @@ import {Feed, type Author as FeedAuthor, type Item as FeedItem} from 'feed'; import type {BlogPost} from './types'; -import { - normalizeUrl, - mapAsyncSequential, - readOutputHTMLFile, -} from '@docusaurus/utils'; +import {normalizeUrl, readOutputHTMLFile} from '@docusaurus/utils'; import {load as cheerioLoad} from 'cheerio'; import type {DocusaurusConfig} from '@docusaurus/types'; import path from 'path'; @@ -61,46 +57,48 @@ async function generateBlogFeed({ return {name: author.name, link: author.url, email: author.email}; } - await mapAsyncSequential(blogPosts, async (post) => { - const { - id, - metadata: { + await Promise.all( + blogPosts.map(async (post) => { + const { + id, + metadata: { + title: metadataTitle, + permalink, + date, + description, + authors, + tags, + }, + } = post; + + const content = await readOutputHTMLFile( + permalink.replace(siteConfig.baseUrl, ''), + outDir, + siteConfig.trailingSlash, + ); + const $ = cheerioLoad(content); + + const feedItem: FeedItem = { title: metadataTitle, - permalink, + id, + link: normalizeUrl([siteUrl, permalink]), date, description, - authors, - tags, - }, - } = post; - - const content = await readOutputHTMLFile( - permalink.replace(siteConfig.baseUrl, ''), - outDir, - siteConfig.trailingSlash, - ); - const $ = cheerioLoad(content); - - const feedItem: FeedItem = { - title: metadataTitle, - id, - link: normalizeUrl([siteUrl, permalink]), - date, - description, - // Atom feed demands the "term", while other feeds use "name" - category: tags.map((tag) => ({name: tag.label, term: tag.label})), - content: $(`#${blogPostContainerID}`).html()!, - }; - - // json1() method takes the first item of authors array - // it causes an error when authors array is empty - const feedItemAuthors = authors.map(toFeedAuthor); - if (feedItemAuthors.length > 0) { - feedItem.author = feedItemAuthors; - } - - feed.addItem(feedItem); - }); + // Atom feed demands the "term", while other feeds use "name" + category: tags.map((tag) => ({name: tag.label, term: tag.label})), + content: $(`#${blogPostContainerID}`).html()!, + }; + + // json1() method takes the first item of authors array + // it causes an error when authors array is empty + const feedItemAuthors = authors.map(toFeedAuthor); + if (feedItemAuthors.length > 0) { + feedItem.author = feedItemAuthors; + } + + return feedItem; + }), + ).then((items) => items.forEach(feed.addItem)); return feed; } diff --git a/packages/docusaurus-plugin-content-blog/src/index.ts b/packages/docusaurus-plugin-content-blog/src/index.ts index c5538be08235..1bcfb028261b 100644 --- a/packages/docusaurus-plugin-content-blog/src/index.ts +++ b/packages/docusaurus-plugin-content-blog/src/index.ts @@ -218,7 +218,7 @@ export default async function pluginContentBlog( routeBasePath, archiveBasePath, ]); - // creates a blog archive route + // Create a blog archive route const archiveProp = await createData( `${docuHash(archiveUrl)}.json`, JSON.stringify({blogPosts}, null, 2), diff --git a/packages/docusaurus-plugin-content-blog/src/options.ts b/packages/docusaurus-plugin-content-blog/src/options.ts index c4c344116324..baf927b8c671 100644 --- a/packages/docusaurus-plugin-content-blog/src/options.ts +++ b/packages/docusaurus-plugin-content-blog/src/options.ts @@ -111,7 +111,7 @@ const PluginOptionSchema = Joi.object({ .default(DEFAULT_OPTIONS.feedOptions.type), title: Joi.string().allow(''), description: Joi.string().allow(''), - // only add default value when user actually wants a feed (type is not null) + // Only add default value when user actually wants a feed (type is not null) copyright: Joi.when('type', { is: Joi.any().valid(null), then: Joi.string().optional(), diff --git a/packages/docusaurus-plugin-content-docs/package.json b/packages/docusaurus-plugin-content-docs/package.json index 2d75a9561f43..b36a12eff49c 100644 --- a/packages/docusaurus-plugin-content-docs/package.json +++ b/packages/docusaurus-plugin-content-docs/package.json @@ -30,7 +30,7 @@ "@docusaurus/utils": "2.0.0-beta.18", "@docusaurus/utils-validation": "2.0.0-beta.18", "combine-promises": "^1.1.0", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21", diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/docs.test.ts b/packages/docusaurus-plugin-content-docs/src/__tests__/docs.test.ts index 5eee85412c4d..bceca516cbfc 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/docs.test.ts +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/docs.test.ts @@ -849,7 +849,6 @@ describe('versioned site', () => { const {siteDir, context, options, version100} = await loadSite({ options: { editUrl: 'https://github.com/facebook/docusaurus/edit/main/website', - // editCurrentVersion: true, }, }); diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/index.test.ts b/packages/docusaurus-plugin-content-docs/src/__tests__/index.test.ts index 46d87d936ef9..0a0627c735a2 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/index.test.ts +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/index.test.ts @@ -68,8 +68,8 @@ const createFakeActions = (contentDir: string) => { }, }; - // query by prefix, because files have a hash at the end - // so it's not convenient to query by full filename + // Query by prefix, because files have a hash at the end so it's not + // convenient to query by full filename const getCreatedDataByPrefix = (prefix: string) => { const entry = Object.entries(dataContainer).find(([key]) => key.startsWith(prefix), diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/numberPrefix.test.ts b/packages/docusaurus-plugin-content-docs/src/__tests__/numberPrefix.test.ts index e1b7afd4c8a5..cf8b7e0ca7bb 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/numberPrefix.test.ts +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/numberPrefix.test.ts @@ -23,7 +23,7 @@ const IgnoredNumberPrefixPatterns = [ '00abc01-My Doc', 'My 001- Doc', 'My -001 Doc', - // ignore common date-like patterns: https://github.com/facebook/docusaurus/issues/4640 + // Ignore common date-like patterns: https://github.com/facebook/docusaurus/issues/4640 '2021-01-31 - Doc', '31-01-2021 - Doc', '2021_01_31 - Doc', @@ -36,7 +36,7 @@ const IgnoredNumberPrefixPatterns = [ '01-2021 - Doc', '01_2021 - Doc', '01.2021 - Doc', - // date patterns without suffix + // Date patterns without suffix '2021-01-31', '2021-01', '21-01-31', @@ -49,7 +49,7 @@ const IgnoredNumberPrefixPatterns = [ '01', '2021', '01', - // ignore common versioning patterns: https://github.com/facebook/docusaurus/issues/4653 + // Ignore common versioning patterns: https://github.com/facebook/docusaurus/issues/4653 '8.0', '8.0.0', '14.2.16', diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/options.test.ts b/packages/docusaurus-plugin-content-docs/src/__tests__/options.test.ts index eec906acb515..5d5e330c50c8 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/options.test.ts +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/options.test.ts @@ -15,7 +15,7 @@ import { import {GlobExcludeDefault} from '@docusaurus/utils'; import type {Options} from '@docusaurus/plugin-content-docs'; -// the type of remark/rehype plugins is function +// The type of remark/rehype plugins can be function/object const markdownPluginsFunctionStub = () => {}; const markdownPluginsObjectStub = {}; diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/props.test.ts b/packages/docusaurus-plugin-content-docs/src/__tests__/props.test.ts index db2648c5e5d7..9db11b7cdddb 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/props.test.ts +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/props.test.ts @@ -57,7 +57,7 @@ describe('toTagDocListProp', () => { count: 2, label: tag.label, permalink: tag.permalink, - items: [doc3, doc1], // docs sorted by title, ignore "id5" absence + items: [doc3, doc1], // Docs sorted by title, ignore "id5" absence }); }); }); diff --git a/packages/docusaurus-plugin-content-docs/src/client/__tests__/docsClientUtils.test.ts b/packages/docusaurus-plugin-content-docs/src/client/__tests__/docsClientUtils.test.ts index 5ca427b76621..e663dbd43349 100644 --- a/packages/docusaurus-plugin-content-docs/src/client/__tests__/docsClientUtils.test.ts +++ b/packages/docusaurus-plugin-content-docs/src/client/__tests__/docsClientUtils.test.ts @@ -226,7 +226,7 @@ describe('docsClientUtils', () => { ], }; - // shuffle, because order shouldn't matter + // Shuffle, because order shouldn't matter const versions: GlobalVersion[] = _.shuffle([ versionNext, version2, @@ -355,7 +355,7 @@ describe('docsClientUtils', () => { ], }; - // shuffle, because order shouldn't matter + // Shuffle, because order shouldn't matter const versions: GlobalVersion[] = _.shuffle([ versionNext, version2, @@ -395,7 +395,7 @@ describe('docsClientUtils', () => { latestVersionSuggestion: version2, }); expect(getDocVersionSuggestions(data, '/docs/version1/doc2')).toEqual({ - latestDocSuggestion: undefined, // because /docs/version1/doc2 does not exist + latestDocSuggestion: undefined, // Because /docs/version1/doc2 does not exist latestVersionSuggestion: version2, }); }); diff --git a/packages/docusaurus-plugin-content-docs/src/docs.ts b/packages/docusaurus-plugin-content-docs/src/docs.ts index d7eae5bd74d9..1c04edc05efe 100644 --- a/packages/docusaurus-plugin-content-docs/src/docs.ts +++ b/packages/docusaurus-plugin-content-docs/src/docs.ts @@ -156,15 +156,13 @@ function doProcessDocMetadata({ parse_number_prefixes: parseNumberPrefixes = true, } = frontMatter; - // ex: api/plugins/myDoc -> myDoc - // ex: myDoc -> myDoc + // E.g. api/plugins/myDoc -> myDoc; myDoc -> myDoc const sourceFileNameWithoutExtension = path.basename( source, path.extname(source), ); - // ex: api/plugins/myDoc -> api/plugins - // ex: myDoc -> . + // E.g. api/plugins/myDoc -> api/plugins; myDoc -> . const sourceDirName = path.dirname(source); const {filename: unprefixedFileName, numberPrefix} = parseNumberPrefixes @@ -347,7 +345,7 @@ export function addDocNavigation( } const docsWithNavigation = docsBase.map(addNavData); - // sort to ensure consistent output for tests + // Sort to ensure consistent output for tests docsWithNavigation.sort((a, b) => a.id.localeCompare(b.id)); return docsWithNavigation; } @@ -434,7 +432,7 @@ export function getDocIds(doc: DocMetadataBase): [string, string] { return [doc.unversionedId, doc.id]; } -// docs are indexed by both versioned and unversioned ids at the same time +// Docs are indexed by both versioned and unversioned ids at the same time // TODO legacy retro-compatibility due to old versioned sidebars using // versioned doc ids ("id" should be removed & "versionedId" should be renamed // to "id") diff --git a/packages/docusaurus-plugin-content-docs/src/frontMatter.ts b/packages/docusaurus-plugin-content-docs/src/frontMatter.ts index 5c7d3bc97dba..de944a6b1716 100644 --- a/packages/docusaurus-plugin-content-docs/src/frontMatter.ts +++ b/packages/docusaurus-plugin-content-docs/src/frontMatter.ts @@ -20,12 +20,14 @@ import type {DocFrontMatter} from '@docusaurus/plugin-content-docs'; // We use default values in code instead const DocFrontMatterSchema = Joi.object({ id: Joi.string(), - title: Joi.string().allow(''), // see https://github.com/facebook/docusaurus/issues/4591#issuecomment-822372398 + // See https://github.com/facebook/docusaurus/issues/4591#issuecomment-822372398 + title: Joi.string().allow(''), hide_title: Joi.boolean(), hide_table_of_contents: Joi.boolean(), keywords: Joi.array().items(Joi.string().required()), image: URISchema, - description: Joi.string().allow(''), // see https://github.com/facebook/docusaurus/issues/4591#issuecomment-822372398 + // See https://github.com/facebook/docusaurus/issues/4591#issuecomment-822372398 + description: Joi.string().allow(''), slug: Joi.string(), sidebar_label: Joi.string(), sidebar_position: Joi.number(), diff --git a/packages/docusaurus-plugin-content-docs/src/plugin-content-docs.d.ts b/packages/docusaurus-plugin-content-docs/src/plugin-content-docs.d.ts index 2d23b7d51a90..97e8c46b0ea7 100644 --- a/packages/docusaurus-plugin-content-docs/src/plugin-content-docs.d.ts +++ b/packages/docusaurus-plugin-content-docs/src/plugin-content-docs.d.ts @@ -19,7 +19,7 @@ declare module '@docusaurus/plugin-content-docs' { * Custom callback for parsing number prefixes from file/folder names. */ export type NumberPrefixParser = (filename: string) => { - /** file name without number prefix, without any other modification. */ + /** File name without number prefix, without any other modification. */ filename: string; /** The number prefix. Can be float, integer, negative, or anything. */ numberPrefix?: number; @@ -621,9 +621,9 @@ declare module '@docusaurus/plugin-content-docs/client' { breadcrumbs: boolean; }; export type DocVersionSuggestions = { - /** suggest the latest version */ + /** Suggest the latest version */ latestVersionSuggestion: GlobalVersion; - /** suggest the same doc, in latest version (if exist) */ + /** Suggest the same doc, in latest version (if one exists) */ latestDocSuggestion?: GlobalDoc; }; diff --git a/packages/docusaurus-plugin-content-docs/src/routes.ts b/packages/docusaurus-plugin-content-docs/src/routes.ts index 3ef6e60ba146..739003737f32 100644 --- a/packages/docusaurus-plugin-content-docs/src/routes.ts +++ b/packages/docusaurus-plugin-content-docs/src/routes.ts @@ -139,11 +139,9 @@ export async function createVersionRoutes({ actions.addRoute({ path: version.path, - // allow matching /docs/* as well + // Allow matching /docs/* since this is the wrapping route exact: false, - // main docs component (DocPage) component: docLayoutComponent, - // sub-routes for each doc routes: await createVersionSubRoutes(), modules: { versionMetadata: aliasedSource(versionMetadataPropPath), diff --git a/packages/docusaurus-plugin-content-docs/src/sidebars/generator.ts b/packages/docusaurus-plugin-content-docs/src/sidebars/generator.ts index 4642897f3df4..67320e7888d5 100644 --- a/packages/docusaurus-plugin-content-docs/src/sidebars/generator.ts +++ b/packages/docusaurus-plugin-content-docs/src/sidebars/generator.ts @@ -76,9 +76,9 @@ Available doc IDs: return ( // Doc at the root of the autogenerated sidebar dir doc.sourceDirName === autogenDir || - // autogen dir is . and doc is in subfolder + // Autogen dir is . and doc is in subfolder autogenDir === '.' || - // autogen dir is not . and doc is in subfolder + // Autogen dir is not . and doc is in subfolder // "api/myDoc" startsWith "api/" (note "api2/myDoc" is not included) doc.sourceDirName.startsWith(addTrailingSlash(autogenDir)) ); diff --git a/packages/docusaurus-plugin-content-docs/src/sidebars/postProcessor.ts b/packages/docusaurus-plugin-content-docs/src/sidebars/postProcessor.ts index 363c731696b9..ac662291d343 100644 --- a/packages/docusaurus-plugin-content-docs/src/sidebars/postProcessor.ts +++ b/packages/docusaurus-plugin-content-docs/src/sidebars/postProcessor.ts @@ -22,7 +22,7 @@ function normalizeCategoryLink( params: SidebarProcessorParams, ): SidebarItemCategoryLink | undefined { if (category.link?.type === 'generated-index') { - // default slug logic can be improved + // Default slug logic can be improved const getDefaultSlug = () => `/category/${params.categoryLabelSlugger.slug(category.label)}`; const slug = category.link.slug ?? getDefaultSlug(); diff --git a/packages/docusaurus-plugin-content-docs/src/sidebars/types.ts b/packages/docusaurus-plugin-content-docs/src/sidebars/types.ts index 17d94b8ca3b7..8284f09048ee 100644 --- a/packages/docusaurus-plugin-content-docs/src/sidebars/types.ts +++ b/packages/docusaurus-plugin-content-docs/src/sidebars/types.ts @@ -180,7 +180,6 @@ export type PropSidebarItemCategory = Expand< } >; -// we may want to use a union type in props instead of this generic link? export type PropSidebarItemLink = SidebarItemLink & { docId?: string; }; @@ -245,7 +244,7 @@ export type SidebarItemsGeneratorArgs = { /** The default category index matcher which you can override. */ isCategoryIndex: CategoryIndexMatcher; /** - * key is the path relative to the doc content directory, value is the + * Key is the path relative to the doc content directory, value is the * category metadata file's content. */ categoriesMetadata: {[filePath: string]: CategoryMetadataFile}; diff --git a/packages/docusaurus-plugin-content-docs/src/translations.ts b/packages/docusaurus-plugin-content-docs/src/translations.ts index 4289f3579adf..10b058defa57 100644 --- a/packages/docusaurus-plugin-content-docs/src/translations.ts +++ b/packages/docusaurus-plugin-content-docs/src/translations.ts @@ -53,50 +53,6 @@ function getNormalizedSidebarName({ return rest.join('/'); } -/* -// Do we need to translate doc metadata? -// It seems translating front matter labels is good enough -function getDocTranslations(doc: DocMetadata): TranslationFileContent { - return { - [`${doc.unversionedId}.title`]: { - message: doc.title, - description: `The title for doc with id=${doc.unversionedId}`, - }, - ...(doc.sidebar_label - ? { - [`${doc.unversionedId}.sidebar_label`]: { - message: doc.sidebar_label, - description: - `The sidebar label for doc with id=${doc.unversionedId}`, - }, - } - : undefined), - }; -} -function translateDoc( - doc: DocMetadata, - docsTranslations: TranslationFileContent, -): DocMetadata { - return { - ...doc, - title: docsTranslations[`${doc.unversionedId}.title`]?.message ?? doc.title, - sidebar_label: - docsTranslations[`${doc.unversionedId}.sidebar_label`]?.message ?? - doc.sidebar_label, - }; -} - -function getDocsTranslations(version: LoadedVersion): TranslationFileContent { - return mergeTranslations(version.docs.map(getDocTranslations)); -} -function translateDocs( - docs: DocMetadata[], - docsTranslations: TranslationFileContent, -): DocMetadata[] { - return docs.map((doc) => translateDoc(doc, docsTranslations)); -} - */ - function getSidebarTranslationFileContent( sidebar: Sidebar, sidebarName: string, @@ -252,17 +208,10 @@ function getVersionTranslationFiles(version: LoadedVersion): TranslationFile[] { const sidebarsTranslations: TranslationFileContent = getSidebarsTranslations(version); - // const docsTranslations: TranslationFileContent = - // getDocsTranslations(version); - return [ { path: getVersionFileName(version.versionName), - content: mergeTranslations([ - versionTranslations, - sidebarsTranslations, - // docsTranslations, - ]), + content: mergeTranslations([versionTranslations, sidebarsTranslations]), }, ]; } @@ -276,7 +225,6 @@ function translateVersion( ...version, label: versionTranslations['version.label']?.message ?? version.label, sidebars: translateSidebars(version, versionTranslations), - // docs: translateDocs(version.docs, versionTranslations), }; } diff --git a/packages/docusaurus-plugin-content-docs/src/types.ts b/packages/docusaurus-plugin-content-docs/src/types.ts index 49156b2514ac..713b8a9a35c7 100644 --- a/packages/docusaurus-plugin-content-docs/src/types.ts +++ b/packages/docusaurus-plugin-content-docs/src/types.ts @@ -30,7 +30,7 @@ export type SourceToPermalink = { }; export type VersionTag = Tag & { - /** all doc ids having this tag. */ + /** All doc ids having this tag. */ docIds: string[]; }; export type VersionTags = { diff --git a/packages/docusaurus-plugin-content-pages/package.json b/packages/docusaurus-plugin-content-pages/package.json index b19cd4bca9b8..1f00a1a007fd 100644 --- a/packages/docusaurus-plugin-content-pages/package.json +++ b/packages/docusaurus-plugin-content-pages/package.json @@ -22,7 +22,7 @@ "@docusaurus/mdx-loader": "2.0.0-beta.18", "@docusaurus/utils": "2.0.0-beta.18", "@docusaurus/utils-validation": "2.0.0-beta.18", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "remark-admonitions": "^1.2.1", "tslib": "^2.3.1", "webpack": "^5.72.0" diff --git a/packages/docusaurus-plugin-debug/package.json b/packages/docusaurus-plugin-debug/package.json index 3a99d1b859a3..601a277439f6 100644 --- a/packages/docusaurus-plugin-debug/package.json +++ b/packages/docusaurus-plugin-debug/package.json @@ -20,7 +20,7 @@ "dependencies": { "@docusaurus/core": "2.0.0-beta.18", "@docusaurus/utils": "2.0.0-beta.18", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "react-json-view": "^1.21.3", "tslib": "^2.3.1" }, diff --git a/packages/docusaurus-plugin-debug/src/theme/DebugContent/index.tsx b/packages/docusaurus-plugin-debug/src/theme/DebugContent/index.tsx index ceac7dea5d19..185c453d7cba 100644 --- a/packages/docusaurus-plugin-debug/src/theme/DebugContent/index.tsx +++ b/packages/docusaurus-plugin-debug/src/theme/DebugContent/index.tsx @@ -38,7 +38,7 @@ function PluginContent({

{pluginName}

{Object.entries(pluginContent) - // filter plugin instances with no content + // Filter plugin instances with no content .filter(([, pluginInstanceContent]) => !!pluginInstanceContent) .map(([pluginId, pluginInstanceContent]) => ( Plugin content
{Object.entries(allContent) - // filter plugins with no content + // Filter plugins with no content .filter(([, pluginContent]) => Object.values(pluginContent).some( (instanceContent) => !!instanceContent, diff --git a/packages/docusaurus-plugin-debug/src/theme/DebugJsonView/index.tsx b/packages/docusaurus-plugin-debug/src/theme/DebugJsonView/index.tsx index 783928cb7afc..5724365b5f2b 100644 --- a/packages/docusaurus-plugin-debug/src/theme/DebugJsonView/index.tsx +++ b/packages/docusaurus-plugin-debug/src/theme/DebugJsonView/index.tsx @@ -10,7 +10,7 @@ import BrowserOnly from '@docusaurus/BrowserOnly'; import type {Props} from '@theme/DebugJsonView'; import type {ReactJsonViewProps} from 'react-json-view'; -// avoids "react-json-view" to display "root" +// Avoids "react-json-view" to display "root" const RootName = null; // Seems ReactJson does not work with SSR diff --git a/packages/docusaurus-plugin-ideal-image/package.json b/packages/docusaurus-plugin-ideal-image/package.json index a532cee6ccf6..52cfbc752cb5 100644 --- a/packages/docusaurus-plugin-ideal-image/package.json +++ b/packages/docusaurus-plugin-ideal-image/package.json @@ -35,7 +35,7 @@ "devDependencies": { "@docusaurus/module-type-aliases": "2.0.0-beta.18", "@docusaurus/types": "2.0.0-beta.18", - "fs-extra": "^10.0.1" + "fs-extra": "^10.1.0" }, "peerDependencies": { "jimp": "*", diff --git a/packages/docusaurus-plugin-ideal-image/src/deps.d.ts b/packages/docusaurus-plugin-ideal-image/src/deps.d.ts index 839a35fac984..f5a6da75b378 100644 --- a/packages/docusaurus-plugin-ideal-image/src/deps.d.ts +++ b/packages/docusaurus-plugin-ideal-image/src/deps.d.ts @@ -42,7 +42,8 @@ declare module '@endiliey/react-ideal-image' { type ThemeKey = 'placeholder' | 'img' | 'icon' | 'noscript'; - export interface ImageProps extends ComponentProps<'img'> { + export interface ImageProps + extends Omit, 'srcSet' | 'placeholder'> { /** * This function decides what icon to show based on the current state of the * component. diff --git a/packages/docusaurus-plugin-ideal-image/src/index.ts b/packages/docusaurus-plugin-ideal-image/src/index.ts index 4ea9fa4675c7..727eb1adc51c 100644 --- a/packages/docusaurus-plugin-ideal-image/src/index.ts +++ b/packages/docusaurus-plugin-ideal-image/src/index.ts @@ -59,7 +59,8 @@ export default function pluginIdealImage( { loader: require.resolve('@docusaurus/responsive-loader'), options: { - emitFile: !isServer, // don't emit for server-side rendering + // Don't emit for server-side rendering + emitFile: !isServer, // eslint-disable-next-line global-require adapter: require('@docusaurus/responsive-loader/sharp'), name: 'assets/ideal-img/[name].[hash:hex:7].[width].[ext]', diff --git a/packages/docusaurus-plugin-ideal-image/src/theme/IdealImage/index.tsx b/packages/docusaurus-plugin-ideal-image/src/theme/IdealImage/index.tsx index 6bc259b2b1ba..ff8ea85f6f2b 100644 --- a/packages/docusaurus-plugin-ideal-image/src/theme/IdealImage/index.tsx +++ b/packages/docusaurus-plugin-ideal-image/src/theme/IdealImage/index.tsx @@ -40,7 +40,7 @@ function getMessage(icon: IconKey, state: State) { description: 'When the full-scale image is loading', }); case 'load': { - // we can show `alt` here + // We can show `alt` here const {pickedSrc} = state; const {size} = pickedSrc; const sizeMessage = size ? ` (${bytesToSize(size)})` : ''; diff --git a/packages/docusaurus-plugin-pwa/package.json b/packages/docusaurus-plugin-pwa/package.json index 678358193247..ccdb0630fa90 100644 --- a/packages/docusaurus-plugin-pwa/package.json +++ b/packages/docusaurus-plugin-pwa/package.json @@ -29,18 +29,18 @@ "@docusaurus/utils-validation": "2.0.0-beta.18", "babel-loader": "^8.2.4", "clsx": "^1.1.1", - "core-js": "^3.21.1", + "core-js": "^3.22.0", "terser-webpack-plugin": "^5.3.1", "tslib": "^2.3.1", "webpack": "^5.72.0", "webpack-merge": "^5.8.0", - "workbox-build": "^6.5.2", - "workbox-precaching": "^6.5.2", - "workbox-window": "^6.5.2" + "workbox-build": "^6.5.3", + "workbox-precaching": "^6.5.3", + "workbox-window": "^6.5.3" }, "devDependencies": { "@docusaurus/module-type-aliases": "2.0.0-beta.18", - "fs-extra": "^10.0.1" + "fs-extra": "^10.1.0" }, "peerDependencies": { "react": "^16.8.4 || ^17.0.0", diff --git a/packages/docusaurus-plugin-pwa/src/index.ts b/packages/docusaurus-plugin-pwa/src/index.ts index 044f05c5492d..7150eae5f609 100644 --- a/packages/docusaurus-plugin-pwa/src/index.ts +++ b/packages/docusaurus-plugin-pwa/src/index.ts @@ -150,7 +150,7 @@ export default function pluginPWA( optimization: { splitChunks: false, minimize: !debug, - // see https://developers.google.com/web/tools/workbox/guides/using-bundlers#webpack + // See https://developers.google.com/web/tools/workbox/guides/using-bundlers#webpack minimizer: debug ? [] : [ @@ -161,7 +161,8 @@ export default function pluginPWA( }, plugins: [ new webpack.EnvironmentPlugin({ - PWA_SW_CUSTOM: swCustom || '', // fallback value required with Webpack 5 + // Fallback value required with Webpack 5 + PWA_SW_CUSTOM: swCustom || '', }), new LogPlugin({ name: 'Service Worker', @@ -192,7 +193,7 @@ export default function pluginPWA( // @ts-expect-error: internal API? ...(injectManifest.globPatterns ?? []), ], - // those attributes are not overrideable + // Those attributes are not overrideable swDest, swSrc: swDest, globDirectory: props.outDir, diff --git a/packages/docusaurus-plugin-pwa/src/plugin-pwa.d.ts b/packages/docusaurus-plugin-pwa/src/plugin-pwa.d.ts index 1e0128331039..9633e9e4e43a 100644 --- a/packages/docusaurus-plugin-pwa/src/plugin-pwa.d.ts +++ b/packages/docusaurus-plugin-pwa/src/plugin-pwa.d.ts @@ -66,7 +66,7 @@ declare module '@docusaurus/plugin-pwa' { tagName: string; href?: string; content?: string; - [attributeName: string]: string | boolean; + [attributeName: string]: string | boolean | undefined; }[]; /** * Useful for additional Workbox rules. You can do whatever a service worker @@ -81,6 +81,8 @@ declare module '@docusaurus/plugin-pwa' { */ swRegister: string | false; }; + + export type Options = Partial; } declare module '@theme/PwaReloadPopup' { diff --git a/packages/docusaurus-plugin-pwa/src/registerSw.js b/packages/docusaurus-plugin-pwa/src/registerSw.js index 36fc55c5a857..9226d9a6f054 100644 --- a/packages/docusaurus-plugin-pwa/src/registerSw.js +++ b/packages/docusaurus-plugin-pwa/src/registerSw.js @@ -16,7 +16,7 @@ const PWA_OFFLINE_MODE_ACTIVATION_STRATEGIES = const PWA_DEBUG = process.env.PWA_DEBUG; /* eslint-enable prefer-destructuring */ -const debug = PWA_DEBUG; // shortcut +const debug = PWA_DEBUG; // Shortcut const MAX_MOBILE_WIDTH = 940; @@ -101,7 +101,7 @@ async function getActiveStrategies() { return isActive ? strategyName : undefined; }), ); - return activeStrategies.filter(Boolean); // remove undefined values + return activeStrategies.filter(Boolean); } async function isOfflineModeEnabled() { diff --git a/packages/docusaurus-plugin-pwa/src/sw.js b/packages/docusaurus-plugin-pwa/src/sw.js index 6c30f239616f..de5d83e6317d 100644 --- a/packages/docusaurus-plugin-pwa/src/sw.js +++ b/packages/docusaurus-plugin-pwa/src/sw.js @@ -18,7 +18,7 @@ function parseSwParams() { return params; } -// doc advises against dynamic imports in SW +// Doc advises against dynamic imports in SW // https://developers.google.com/web/tools/workbox/guides/using-bundlers#code_splitting_and_dynamic_imports // https://twitter.com/sebastienlorber/status/1280155204575518720 // but looks it's working fine as it's inlined by webpack, need to double check @@ -73,7 +73,8 @@ function getPossibleURLs(url) { // eslint-disable-next-line no-underscore-dangle const precacheManifest = self.__WB_MANIFEST; const controller = new PrecacheController({ - fallbackToNetwork: true, // safer to turn this true? + // Safer to turn this true? + fallbackToNetwork: true, }); if (params.offlineMode) { diff --git a/packages/docusaurus-plugin-sitemap/package.json b/packages/docusaurus-plugin-sitemap/package.json index 9eb611ed0126..155fab17366a 100644 --- a/packages/docusaurus-plugin-sitemap/package.json +++ b/packages/docusaurus-plugin-sitemap/package.json @@ -22,7 +22,7 @@ "@docusaurus/utils": "2.0.0-beta.18", "@docusaurus/utils-common": "2.0.0-beta.18", "@docusaurus/utils-validation": "2.0.0-beta.18", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "sitemap": "^7.1.1", "tslib": "^2.3.1" }, diff --git a/packages/docusaurus-remark-plugin-npm2yarn/src/__tests__/index.test.ts b/packages/docusaurus-remark-plugin-npm2yarn/src/__tests__/index.test.ts index 4887b0ac9d23..6b6ff1ada900 100644 --- a/packages/docusaurus-remark-plugin-npm2yarn/src/__tests__/index.test.ts +++ b/packages/docusaurus-remark-plugin-npm2yarn/src/__tests__/index.test.ts @@ -6,7 +6,7 @@ */ import remark from 'remark'; -// import from the transpiled lib because Babel can't transpile `export =` +// Import from the transpiled lib because Babel can't transpile `export =` // TODO change to `../index` after migrating to ESM import npm2yarn from '../../lib/index'; import vfile from 'to-vfile'; diff --git a/packages/docusaurus-theme-classic/package.json b/packages/docusaurus-theme-classic/package.json index b89e7965815b..d5215a7d6df0 100644 --- a/packages/docusaurus-theme-classic/package.json +++ b/packages/docusaurus-theme-classic/package.json @@ -49,9 +49,9 @@ "@docusaurus/types": "2.0.0-beta.18", "@types/mdx-js__react": "^1.5.5", "@types/prismjs": "^1.26.0", - "@types/rtlcss": "^3.1.3", + "@types/rtlcss": "^3.1.4", "cross-env": "^7.0.3", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "react-test-renderer": "^17.0.2", "utility-types": "^3.10.0" }, diff --git a/packages/docusaurus-theme-classic/src/__tests__/translations.test.ts b/packages/docusaurus-theme-classic/src/__tests__/translations.test.ts index 66d738519e1e..ebb3040de540 100644 --- a/packages/docusaurus-theme-classic/src/__tests__/translations.test.ts +++ b/packages/docusaurus-theme-classic/src/__tests__/translations.test.ts @@ -125,7 +125,7 @@ describe('getTranslationFiles and translateThemeConfig isomorphism', () => { verifyIsomorphism(ThemeConfigSampleSimpleFooter); }); - // undefined footer should not make the translation code crash + // Undefined footer should not make the translation code crash // See https://github.com/facebook/docusaurus/issues/3936 it('is verified for sample without footer', () => { verifyIsomorphism({...ThemeConfigSample, footer: undefined}); diff --git a/packages/docusaurus-theme-classic/src/getSwizzleConfig.ts b/packages/docusaurus-theme-classic/src/getSwizzleConfig.ts index 13b9fde846f9..9e73ef9a17e4 100644 --- a/packages/docusaurus-theme-classic/src/getSwizzleConfig.ts +++ b/packages/docusaurus-theme-classic/src/getSwizzleConfig.ts @@ -30,7 +30,7 @@ export default function getSwizzleConfig(): SwizzleConfig { }, DocSidebar: { actions: { - eject: 'unsafe', // too much technical code in sidebar, not very safe atm + eject: 'unsafe', // Too much technical code in sidebar, not very safe atm wrap: 'safe', }, description: 'The sidebar component on docs pages', @@ -234,7 +234,7 @@ export default function getSwizzleConfig(): SwizzleConfig { 'prism-include-languages': { actions: { eject: 'safe', - wrap: 'forbidden', // not a component! + wrap: 'forbidden', // Not a component! }, description: 'The Prism languages to include for code block syntax highlighting. Meant to be ejected.', diff --git a/packages/docusaurus-theme-classic/src/theme-classic.d.ts b/packages/docusaurus-theme-classic/src/theme-classic.d.ts index 5a919024bb10..a3388507acc3 100644 --- a/packages/docusaurus-theme-classic/src/theme-classic.d.ts +++ b/packages/docusaurus-theme-classic/src/theme-classic.d.ts @@ -1022,8 +1022,8 @@ declare module '@theme/TOCItems' { declare module '@theme/TOC' { import type {TOCItem} from '@docusaurus/types'; - // minHeadingLevel only exists as a per-doc option, and won't have a default - // set by Joi. See TOC, TOCInline, TOCCollapsible for examples + // `minHeadingLevel` only comes from doc/post front matter, and won't have a + // default set by Joi. See TOC, TOCInline, TOCCollapsible for examples. export interface Props { readonly toc: readonly TOCItem[]; readonly minHeadingLevel?: number; diff --git a/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category.tsx b/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category.tsx index 202a9dae09c3..c3d5ed9fc41c 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category.tsx @@ -111,8 +111,8 @@ export default function DocSidebarItemCategory({ const isCurrentPage = isSamePath(href, activePath); const {collapsed, setCollapsed} = useCollapsible({ - // active categories are always initialized as expanded - // the default (item.collapsed) is only used for non-active categories + // Active categories are always initialized as expanded. The default + // (`item.collapsed`) is only used for non-active categories. initialState: () => { if (!collapsible) { return false; diff --git a/packages/docusaurus-theme-classic/src/theme/DocSidebarItems/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocSidebarItems/index.tsx index 9d611912642c..fbced08e1416 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocSidebarItems/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocSidebarItems/index.tsx @@ -17,12 +17,7 @@ function DocSidebarItems({items, ...props}: Props): JSX.Element { return ( {items.map((item, index) => ( - + ))} ); diff --git a/packages/docusaurus-theme-classic/src/theme/DocVersionBanner/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocVersionBanner/index.tsx index daadce8000be..dd87a4d3673b 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocVersionBanner/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocVersionBanner/index.tsx @@ -136,8 +136,8 @@ function DocVersionBannerEnabled({ const {latestDocSuggestion, latestVersionSuggestion} = useDocVersionSuggestions(pluginId); - // try to link to same doc in latest version (not always possible) - // fallback to main doc of latest version + // Try to link to same doc in latest version (not always possible), falling + // back to main doc of latest version const latestVersionSuggestedDoc = latestDocSuggestion ?? getVersionMainDoc(latestVersionSuggestion); diff --git a/packages/docusaurus-theme-classic/src/theme/Heading/index.tsx b/packages/docusaurus-theme-classic/src/theme/Heading/index.tsx index 51e1ee7d9377..7f8f80876475 100644 --- a/packages/docusaurus-theme-classic/src/theme/Heading/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Heading/index.tsx @@ -13,13 +13,13 @@ import {useThemeConfig} from '@docusaurus/theme-common'; import styles from './styles.module.css'; -function AnchorHeading({as: As, id, ...props}: Props) { +export default function Heading({as: As, id, ...props}: Props): JSX.Element { const { navbar: {hideOnScroll}, } = useThemeConfig(); - - if (!id) { - return ; + // H1 headings do not need an id because they don't appear in the TOC. + if (As === 'h1' || !id) { + return ; } return ( @@ -46,17 +46,3 @@ function AnchorHeading({as: As, id, ...props}: Props) { ); } - -export default function Heading({as, ...props}: Props): JSX.Element { - if (as === 'h1') { - return ( -

- {props.children} -

- ); - } - return ; -} diff --git a/packages/docusaurus-theme-classic/src/theme/Layout/index.tsx b/packages/docusaurus-theme-classic/src/theme/Layout/index.tsx index 35592ef869f7..47ed451b55d9 100644 --- a/packages/docusaurus-theme-classic/src/theme/Layout/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Layout/index.tsx @@ -27,7 +27,7 @@ export default function Layout(props: Props): JSX.Element { children, noFooter, wrapperClassName, - // not really layout-related, but kept for convenience/retro-compatibility + // Not really layout-related, but kept for convenience/retro-compatibility title, description, } = props; diff --git a/packages/docusaurus-theme-classic/src/theme/SiteMetadata/index.tsx b/packages/docusaurus-theme-classic/src/theme/SiteMetadata/index.tsx index e21668aa90f2..ce53ddf1d9e5 100644 --- a/packages/docusaurus-theme-classic/src/theme/SiteMetadata/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/SiteMetadata/index.tsx @@ -109,16 +109,16 @@ export default function SiteMetadata(): JSX.Element { - element here, - // as it allows react-helmet to override values set in previous - // ie we can override default metadata such as "twitter:card" - // In same Head, the same meta would appear twice instead of overriding - // See react-helmet doc - > + {/* + It's important to have an additional element here, as it allows + react-helmet to override default metadata values set in previous + like "twitter:card". In same Head, the same meta would appear twice + instead of overriding. + */} + {/* Yes, "metadatum" is the grammatically correct term */} {metadata.map((metadatum, i) => ( - + ))} diff --git a/packages/docusaurus-theme-classic/src/validateThemeConfig.ts b/packages/docusaurus-theme-classic/src/validateThemeConfig.ts index 6708539c2730..9a5cd826cc43 100644 --- a/packages/docusaurus-theme-classic/src/validateThemeConfig.ts +++ b/packages/docusaurus-theme-classic/src/validateThemeConfig.ts @@ -100,7 +100,7 @@ const HtmlNavbarItemSchema = Joi.object({ }); const itemWithType = (type: string | undefined) => { - // because equal(undefined) is not supported :/ + // Because equal(undefined) is not supported :/ const typeSchema = type ? Joi.string().required().equal(type) : Joi.string().forbidden(); @@ -241,7 +241,6 @@ const ColorModeSchema = Joi.object({ }), }).default(DEFAULT_COLOR_MODE_CONFIG); -// schema can probably be improved const HtmlMetadataSchema = Joi.object({ id: Joi.string(), name: Joi.string(), diff --git a/packages/docusaurus-theme-common/package.json b/packages/docusaurus-theme-common/package.json index 23e0625a1e31..eee0fb55d112 100644 --- a/packages/docusaurus-theme-common/package.json +++ b/packages/docusaurus-theme-common/package.json @@ -39,7 +39,7 @@ "devDependencies": { "@docusaurus/core": "2.0.0-beta.18", "@docusaurus/types": "2.0.0-beta.18", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "lodash": "^4.17.21" }, "peerDependencies": { diff --git a/packages/docusaurus-theme-common/src/components/Collapsible/index.tsx b/packages/docusaurus-theme-common/src/components/Collapsible/index.tsx index 9185ac91c16f..48ff620fbab7 100644 --- a/packages/docusaurus-theme-common/src/components/Collapsible/index.tsx +++ b/packages/docusaurus-theme-common/src/components/Collapsible/index.tsx @@ -224,6 +224,8 @@ function CollapsibleBase({ function CollapsibleLazy({collapsed, ...props}: CollapsibleBaseProps) { const [mounted, setMounted] = useState(!collapsed); + // Updated in effect so that first expansion transition can work + const [lazyCollapsed, setLazyCollapsed] = useState(collapsed); useLayoutEffect(() => { if (!collapsed) { @@ -231,8 +233,6 @@ function CollapsibleLazy({collapsed, ...props}: CollapsibleBaseProps) { } }, [collapsed]); - // lazyCollapsed updated in effect so that first expansion transition can work - const [lazyCollapsed, setLazyCollapsed] = useState(collapsed); useLayoutEffect(() => { if (mounted) { setLazyCollapsed(collapsed); diff --git a/packages/docusaurus-theme-common/src/components/Details/index.tsx b/packages/docusaurus-theme-common/src/components/Details/index.tsx index ccf7e10b7fb4..1f330edec9a7 100644 --- a/packages/docusaurus-theme-common/src/components/Details/index.tsx +++ b/packages/docusaurus-theme-common/src/components/Details/index.tsx @@ -87,7 +87,8 @@ export function Details({ setOpen(true); } else { setCollapsed(true); - // setOpen(false); // Don't do this, it breaks close animation! + // Don't do this, it breaks close animation! + // setOpen(false); } }}> {summary} diff --git a/packages/docusaurus-theme-common/src/contexts/announcementBar.tsx b/packages/docusaurus-theme-common/src/contexts/announcementBar.tsx index f244be2bee2e..1adf70b3f279 100644 --- a/packages/docusaurus-theme-common/src/contexts/announcementBar.tsx +++ b/packages/docusaurus-theme-common/src/contexts/announcementBar.tsx @@ -72,7 +72,7 @@ function useContextValue(): ContextValue { let viewedId = IdStorage.get(); - // retrocompatibility due to spelling mistake of default id + // Retrocompatibility due to spelling mistake of default id // see https://github.com/facebook/docusaurus/issues/3338 // cSpell:ignore annoucement if (viewedId === 'annoucement-bar') { diff --git a/packages/docusaurus-theme-common/src/contexts/navbarMobileSidebar.tsx b/packages/docusaurus-theme-common/src/contexts/navbarMobileSidebar.tsx index c798605edb6c..d6e717564986 100644 --- a/packages/docusaurus-theme-common/src/contexts/navbarMobileSidebar.tsx +++ b/packages/docusaurus-theme-common/src/contexts/navbarMobileSidebar.tsx @@ -58,9 +58,9 @@ function useContextValue(): ContextValue { useHistoryPopHandler(() => { if (shown) { setShown(false); - // Should we prevent the navigation here? + // Prevent pop navigation; seems desirable enough // See https://github.com/facebook/docusaurus/pull/5462#issuecomment-911699846 - return false; // prevent pop navigation + return false; } return undefined; }); diff --git a/packages/docusaurus-theme-common/src/hooks/useTOCHighlight.ts b/packages/docusaurus-theme-common/src/hooks/useTOCHighlight.ts index afd6a12b173f..fca0174fe644 100644 --- a/packages/docusaurus-theme-common/src/hooks/useTOCHighlight.ts +++ b/packages/docusaurus-theme-common/src/hooks/useTOCHighlight.ts @@ -81,8 +81,8 @@ function getActiveAnchor( // https://github.com/facebook/docusaurus/issues/5318 return anchors[anchors.indexOf(nextVisibleAnchor) - 1] ?? null; } - // no anchor under viewport top? (ie we are at the bottom of the page) - // => highlight the last anchor found + // No anchor under viewport top (i.e. we are at the bottom of the page), + // highlight the last anchor found return anchors[anchors.length - 1] ?? null; } @@ -140,7 +140,7 @@ export function useTOCHighlight(config: TOCHighlightConfig | undefined): void { useEffect(() => { if (!config) { - // no-op, highlighting is disabled + // No-op, highlighting is disabled return () => {}; } diff --git a/packages/docusaurus-theme-common/src/utils/codeBlockUtils.ts b/packages/docusaurus-theme-common/src/utils/codeBlockUtils.ts index 8dd5108d93f1..f542f1386555 100644 --- a/packages/docusaurus-theme-common/src/utils/codeBlockUtils.ts +++ b/packages/docusaurus-theme-common/src/utils/codeBlockUtils.ts @@ -30,14 +30,14 @@ const magicCommentDirectives = [ ]; function getCommentPattern(languages: CommentType[]) { - // to be more reliable, the opening and closing comment must match + // To be more reliable, the opening and closing comment must match const commentPattern = languages .map((lang) => { const {start, end} = commentPatterns[lang]; return `(?:${start}\\s*(${magicCommentDirectives.join('|')})\\s*${end})`; }) .join('|'); - // white space is allowed, but otherwise it should be on it's own line + // White space is allowed, but otherwise it should be on it's own line return new RegExp(`^\\s*(?:${commentPattern})\\s*$`); } @@ -70,7 +70,7 @@ function getAllMagicCommentDirectiveStyles(lang: string) { return getCommentPattern(['html', 'jsx', 'bash']); default: - // all comment types + // All comment types return getCommentPattern(Object.keys(commentPatterns) as CommentType[]); } } @@ -139,16 +139,15 @@ export function parseLines( return {highlightLines: [], code}; } const directiveRegex = getAllMagicCommentDirectiveStyles(language); - // go through line by line + // Go through line by line const lines = code.split('\n'); let highlightBlockStart: number; let highlightRange = ''; - // loop through lines for (let lineNumber = 0; lineNumber < lines.length; ) { const line = lines[lineNumber]!; const match = line.match(directiveRegex); if (!match) { - // lines without directives are unchanged + // Lines without directives are unchanged lineNumber += 1; continue; } diff --git a/packages/docusaurus-theme-common/src/utils/docsUtils.tsx b/packages/docusaurus-theme-common/src/utils/docsUtils.tsx index c3d169c3e836..8ee82d5eb2e4 100644 --- a/packages/docusaurus-theme-common/src/utils/docsUtils.tsx +++ b/packages/docusaurus-theme-common/src/utils/docsUtils.tsx @@ -92,13 +92,8 @@ export function findFirstCategoryLink( if (categoryLink) { return categoryLink; } - } else if (subItem.type === 'html') { - // skip - } else { - throw new Error( - `Unexpected category item type for ${JSON.stringify(subItem)}`, - ); } + // Could be "html" items } return undefined; } @@ -271,7 +266,7 @@ export function useLayoutDoc( const isDraft = versions .flatMap((version) => version.draftIds) .includes(docId); - // drafts should be silently filtered instead of throwing + // Drafts should be silently filtered instead of throwing if (isDraft) { return null; } diff --git a/packages/docusaurus-theme-common/src/utils/tocUtils.ts b/packages/docusaurus-theme-common/src/utils/tocUtils.ts index 2b83f1a2f920..0d1ee35df1f9 100644 --- a/packages/docusaurus-theme-common/src/utils/tocUtils.ts +++ b/packages/docusaurus-theme-common/src/utils/tocUtils.ts @@ -30,11 +30,11 @@ function treeifyTOC(flatTOC: readonly TOCItem[]): TOCTreeNode[] { const prevIndexForLevel = Array(7).fill(-1); headings.forEach((curr, currIndex) => { - // take the last seen index for each ancestor level. the highest - // index will be the direct ancestor of the current heading. + // Take the last seen index for each ancestor level. the highest index will + // be the direct ancestor of the current heading. const ancestorLevelIndexes = prevIndexForLevel.slice(2, curr.level); curr.parentIndex = Math.max(...ancestorLevelIndexes); - // mark that curr.level was last seen at the current index + // Mark that curr.level was last seen at the current index. prevIndexForLevel[curr.level] = currIndex; }); diff --git a/packages/docusaurus-theme-live-codeblock/package.json b/packages/docusaurus-theme-live-codeblock/package.json index 04f9125977a9..96d2f941dee8 100644 --- a/packages/docusaurus-theme-live-codeblock/package.json +++ b/packages/docusaurus-theme-live-codeblock/package.json @@ -30,7 +30,7 @@ "@docusaurus/utils-validation": "2.0.0-beta.18", "@philpl/buble": "^0.19.7", "clsx": "^1.1.1", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "react-live": "2.2.3", "tslib": "^2.3.1" }, diff --git a/packages/docusaurus-theme-live-codeblock/src/types.d.ts b/packages/docusaurus-theme-live-codeblock/src/types.d.ts index 9ae9bb21cef3..47200c50ab58 100644 --- a/packages/docusaurus-theme-live-codeblock/src/types.d.ts +++ b/packages/docusaurus-theme-live-codeblock/src/types.d.ts @@ -9,7 +9,8 @@ /// declare module '@theme-init/CodeBlock' { - import type CodeBlock, {Props as BaseProps} from '@theme/CodeBlock'; + import type CodeBlock from '@theme/CodeBlock'; + import type {Props as BaseProps} from '@theme/CodeBlock'; export interface Props extends BaseProps { live?: boolean; diff --git a/packages/docusaurus-theme-search-algolia/package.json b/packages/docusaurus-theme-search-algolia/package.json index 296bd35a51c6..2ecd58700a61 100644 --- a/packages/docusaurus-theme-search-algolia/package.json +++ b/packages/docusaurus-theme-search-algolia/package.json @@ -40,7 +40,7 @@ "algoliasearch-helper": "^3.8.2", "clsx": "^1.1.1", "eta": "^1.12.3", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "lodash": "^4.17.21", "tslib": "^2.3.1", "utility-types": "^3.10.0" diff --git a/packages/docusaurus-theme-search-algolia/src/client/useAlgoliaContextualFacetFilters.ts b/packages/docusaurus-theme-search-algolia/src/client/useAlgoliaContextualFacetFilters.ts index 343f613145c1..212c03b4321b 100644 --- a/packages/docusaurus-theme-search-algolia/src/client/useAlgoliaContextualFacetFilters.ts +++ b/packages/docusaurus-theme-search-algolia/src/client/useAlgoliaContextualFacetFilters.ts @@ -11,7 +11,7 @@ import {useContextualSearchFilters} from '@docusaurus/theme-common'; export function useAlgoliaContextualFacetFilters(): [string, string[]] { const {locale, tags} = useContextualSearchFilters(); - // seems safe to convert locale->language, see AlgoliaSearchMetadata comment + // Seems safe to convert locale->language, see AlgoliaSearchMetadata comment const languageFilter = `language:${locale}`; const tagsFilter = tags.map((tag) => `docusaurus_tag:${tag}`); diff --git a/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.tsx b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.tsx index 864bac42add3..6217dbf50b41 100644 --- a/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.tsx +++ b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.tsx @@ -99,7 +99,7 @@ function DocSearch({ : // ... or use config facetFilters configFacetFilters; - // we let user override default searchParameters if he wants to + // We let user override default searchParameters if she wants to const searchParameters: DocSearchProps['searchParameters'] = { ...props.searchParameters, facetFilters, diff --git a/packages/docusaurus-theme-search-algolia/src/validateThemeConfig.ts b/packages/docusaurus-theme-search-algolia/src/validateThemeConfig.ts index 95ff9e9f7cb4..68bd60d163a1 100644 --- a/packages/docusaurus-theme-search-algolia/src/validateThemeConfig.ts +++ b/packages/docusaurus-theme-search-algolia/src/validateThemeConfig.ts @@ -12,7 +12,7 @@ import type { } from '@docusaurus/types'; export const DEFAULT_CONFIG = { - // enabled by default, as it makes sense in most cases + // Enabled by default, as it makes sense in most cases // see also https://github.com/facebook/docusaurus/issues/5880 contextualSearch: true, diff --git a/packages/docusaurus-theme-translations/locales/__tests__/locales.test.ts b/packages/docusaurus-theme-translations/locales/__tests__/locales.test.ts index 0dc8db25977f..7bf0bf22a430 100644 --- a/packages/docusaurus-theme-translations/locales/__tests__/locales.test.ts +++ b/packages/docusaurus-theme-translations/locales/__tests__/locales.test.ts @@ -17,22 +17,24 @@ jest.setTimeout(15000); describe('theme translations', () => { it('has base messages files contain EXACTLY all the translations extracted from the theme. Please run "yarn workspace @docusaurus/theme-translations update" to keep base messages files up-to-date', async () => { const baseMessagesDirPath = path.join(__dirname, '../base'); - const baseMessages = Object.fromEntries( - await Promise.all( - ( - await fs.readdir(baseMessagesDirPath) - ).map(async (baseMessagesFile) => - Object.entries( - (await fs.readJSON( - path.join(baseMessagesDirPath, baseMessagesFile), - 'utf-8', - )) as {[key: string]: string}, + const baseMessages = await fs + .readdir(baseMessagesDirPath) + .then((files) => + Promise.all( + files.map( + (baseMessagesFile): Promise<{[key: string]: string}> => + fs.readJSON(path.join(baseMessagesDirPath, baseMessagesFile)), ), ), - ).then((translations) => - translations.flat().filter(([key]) => !key.endsWith('___DESCRIPTION')), - ), - ); + ) + .then((translations) => + Object.fromEntries( + translations + .map(Object.entries) + .flat() + .filter(([key]) => !key.endsWith('___DESCRIPTION')), + ), + ); const codeMessages = _.mapValues( await extractThemeCodeMessages(), (translation) => translation.message, diff --git a/packages/docusaurus-theme-translations/package.json b/packages/docusaurus-theme-translations/package.json index 64b10648c7a5..e0f41532a05a 100644 --- a/packages/docusaurus-theme-translations/package.json +++ b/packages/docusaurus-theme-translations/package.json @@ -19,7 +19,7 @@ "update": "node ./update.mjs" }, "dependencies": { - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "tslib": "^2.3.1" }, "devDependencies": { diff --git a/packages/docusaurus-theme-translations/src/index.ts b/packages/docusaurus-theme-translations/src/index.ts index 3f75c3d22ec2..f6b7e7303e19 100644 --- a/packages/docusaurus-theme-translations/src/index.ts +++ b/packages/docusaurus-theme-translations/src/index.ts @@ -16,18 +16,19 @@ function getDefaultLocalesDirPath(): string { // Return an ordered list of locales we should try export function codeTranslationLocalesToTry(locale: string): string[] { const intlLocale = new Intl.Locale(locale); - // if locale is just a simple language like "pt", we want to fallback to pt-BR - // (not pt-PT!) See https://github.com/facebook/docusaurus/pull/4536#issuecomment-810088783 - const maximizedLocale = intlLocale.maximize(); // pt-Latn-BR + // If locale is just a simple language like "pt", we want to fallback to + // "pt-BR" (not "pt-PT"!) + // See https://github.com/facebook/docusaurus/pull/4536#issuecomment-810088783 + const maximizedLocale = intlLocale.maximize(); // "pt-Latn-BR" return [ // May be "zh", "zh-CN", "zh-Hans", "zh-cn", or anything: very likely to be // unresolved except for simply locales locale, - // zh-CN / pt-BR + // "zh-CN" / "pt-BR" `${maximizedLocale.language}-${maximizedLocale.region}`, - // zh-Hans / pt-Latn + // "zh-Hans" / "pt-Latn" `${maximizedLocale.language}-${maximizedLocale.script}`, - // zh / pt + // "zh" / "pt" maximizedLocale.language!, ]; } @@ -50,8 +51,7 @@ export async function readDefaultCodeTranslationMessages({ const filePath = path.resolve(dirPath, localeToTry, `${name}.json`); if (await fs.pathExists(filePath)) { - const fileContent = await fs.readFile(filePath, 'utf8'); - return JSON.parse(fileContent); + return fs.readJSON(filePath); } } diff --git a/packages/docusaurus-theme-translations/update.mjs b/packages/docusaurus-theme-translations/update.mjs index de7a0960ad7f..85736bf696e4 100644 --- a/packages/docusaurus-theme-translations/update.mjs +++ b/packages/docusaurus-theme-translations/update.mjs @@ -55,7 +55,7 @@ async function readMessagesFile(filePath) { logger.info`File path=${filePath} not found. Creating new translation base file.`; await fs.outputFile(filePath, '{}\n'); } - return JSON.parse((await fs.readFile(filePath)).toString()); + return fs.readJSON(filePath); } /** diff --git a/packages/docusaurus-types/package.json b/packages/docusaurus-types/package.json index 1fc67b649de6..3beb093c882d 100644 --- a/packages/docusaurus-types/package.json +++ b/packages/docusaurus-types/package.json @@ -19,7 +19,7 @@ "commander": "^5.1.0", "history": "^4.9.0", "joi": "^17.6.0", - "react-helmet-async": "^1.2.3", + "react-helmet-async": "^1.3.0", "utility-types": "^3.10.0", "webpack": "^5.72.0", "webpack-merge": "^5.8.0" diff --git a/packages/docusaurus-types/src/index.d.ts b/packages/docusaurus-types/src/index.d.ts index 189c5ef3ebeb..a3663572b9e0 100644 --- a/packages/docusaurus-types/src/index.d.ts +++ b/packages/docusaurus-types/src/index.d.ts @@ -313,9 +313,9 @@ export type Plugin = { name: string; loadContent?: () => Promise | Content; contentLoaded?: (args: { - /** the content loaded by this plugin instance */ + /** The content loaded by this plugin instance */ content: Content; // - /** content loaded by ALL the plugins */ + /** Content loaded by ALL the plugins */ allContent: AllContent; actions: PluginContentLoadedActions; }) => Promise | void; diff --git a/packages/docusaurus-utils/package.json b/packages/docusaurus-utils/package.json index f24fdf6028ce..27e950f782ac 100644 --- a/packages/docusaurus-utils/package.json +++ b/packages/docusaurus-utils/package.json @@ -21,7 +21,7 @@ "@docusaurus/logger": "2.0.0-beta.18", "@svgr/webpack": "^6.2.1", "file-loader": "^6.2.0", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "github-slugger": "^1.4.0", "globby": "^11.1.0", "gray-matter": "^4.0.3", @@ -42,7 +42,7 @@ "@types/dedent": "^0.7.0", "@types/github-slugger": "^1.3.0", "@types/micromatch": "^4.0.2", - "@types/react-dom": "^18.0.0", + "@types/react-dom": "^18.0.1", "dedent": "^0.7.0" } } diff --git a/packages/docusaurus-utils/src/__tests__/globUtils.test.ts b/packages/docusaurus-utils/src/__tests__/globUtils.test.ts index e2f3d52f2c1f..c35e164920ba 100644 --- a/packages/docusaurus-utils/src/__tests__/globUtils.test.ts +++ b/packages/docusaurus-utils/src/__tests__/globUtils.test.ts @@ -12,9 +12,8 @@ import { } from '../globUtils'; describe('createMatcher', () => { - const matcher = createMatcher(GlobExcludeDefault); - it('match default exclude MD/MDX partials correctly', () => { + const matcher = createMatcher(GlobExcludeDefault); expect(matcher('doc.md')).toBe(false); expect(matcher('category/doc.md')).toBe(false); expect(matcher('category/subcategory/doc.md')).toBe(false); @@ -32,6 +31,7 @@ describe('createMatcher', () => { }); it('match default exclude tests correctly', () => { + const matcher = createMatcher(GlobExcludeDefault); expect(matcher('xyz.js')).toBe(false); expect(matcher('xyz.ts')).toBe(false); expect(matcher('xyz.jsx')).toBe(false); @@ -63,6 +63,13 @@ describe('createMatcher', () => { expect(matcher('folder/__tests__/xyz.jsx')).toBe(true); expect(matcher('folder/__tests__/xyz.tsx')).toBe(true); }); + + it('matches nothing given nothing', () => { + const matcher = createMatcher([]); + expect(matcher('foo')).toBe(false); + expect(matcher('')).toBe(false); + expect(matcher('we/are/the/champions')).toBe(false); + }); }); describe('createAbsoluteFilePathMatcher', () => { diff --git a/packages/docusaurus-utils/src/__tests__/i18nUtils.test.ts b/packages/docusaurus-utils/src/__tests__/i18nUtils.test.ts index 6e66d7e4a056..c0a458d3a8ec 100644 --- a/packages/docusaurus-utils/src/__tests__/i18nUtils.test.ts +++ b/packages/docusaurus-utils/src/__tests__/i18nUtils.test.ts @@ -156,7 +156,6 @@ describe('localizePath', () => { currentLocale: 'en', localeConfigs: {}, }, - // options: {localizePath: true}, }), ).toBe('/baseUrl/'); }); @@ -172,7 +171,6 @@ describe('localizePath', () => { currentLocale: 'en', localeConfigs: {}, }, - // options: {localizePath: true}, }), ).toBe('/baseUrl/'); }); diff --git a/packages/docusaurus-utils/src/__tests__/markdownUtils.test.ts b/packages/docusaurus-utils/src/__tests__/markdownUtils.test.ts index 5d32b07f1702..09488bc4a6c0 100644 --- a/packages/docusaurus-utils/src/__tests__/markdownUtils.test.ts +++ b/packages/docusaurus-utils/src/__tests__/markdownUtils.test.ts @@ -38,7 +38,7 @@ describe('createExcerpt', () => { Nunc porttitor libero nec vulputate venenatis. Nam nec rhoncus mauris. Morbi tempus est et nibh maximus, tempus venenatis arcu lobortis. `), ).toBe( - // h1 title is skipped on purpose, because we don't want the page to have + // H1 title is skipped on purpose, because we don't want the page to have // SEO metadata title === description 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ex urna, molestie et sagittis ut, varius ac justo.', ); @@ -56,7 +56,7 @@ describe('createExcerpt', () => { Nunc porttitor libero nec vulputate venenatis. Nam nec rhoncus mauris. Morbi tempus est et nibh maximus, tempus venenatis arcu lobortis. `), ).toBe( - // h1 title is skipped on purpose, because we don't want the page to have + // H1 title is skipped on purpose, because we don't want the page to have // SEO metadata title === description 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ex urna, molestie et sagittis ut, varius ac justo.', ); @@ -377,7 +377,7 @@ Lorem Ipsum `; - // remove the useless line breaks? Does not matter too much + // Remove the useless line breaks? Does not matter too much expect(parseMarkdownContentTitle(markdown)).toEqual({ content: markdown, contentTitle: 'Markdown Title', diff --git a/packages/docusaurus-utils/src/gitUtils.ts b/packages/docusaurus-utils/src/gitUtils.ts index e2f155bb3e05..2c7d73768d82 100644 --- a/packages/docusaurus-utils/src/gitUtils.ts +++ b/packages/docusaurus-utils/src/gitUtils.ts @@ -112,7 +112,7 @@ export function getFileCommitDate( const result = shell.exec( `git log ${extraArgs} ${formatArg} -- "${path.basename(file)}"`, { - // cwd is important, see: https://github.com/facebook/docusaurus/pull/5048 + // Setting cwd is important, see: https://github.com/facebook/docusaurus/pull/5048 cwd: path.dirname(file), silent: true, }, diff --git a/packages/docusaurus-utils/src/i18nUtils.ts b/packages/docusaurus-utils/src/i18nUtils.ts index 950f3719a7b0..e7e29815beb2 100644 --- a/packages/docusaurus-utils/src/i18nUtils.ts +++ b/packages/docusaurus-utils/src/i18nUtils.ts @@ -61,7 +61,7 @@ export function getPluginI18nPath({ return path.join( siteDir, I18N_DIR_NAME, - // namespace first by locale: convenient to work in a single folder for a + // Namespace first by locale: convenient to work in a single folder for a // translator locale, // Make it convenient to use for single-instance diff --git a/packages/docusaurus-utils/src/pathUtils.ts b/packages/docusaurus-utils/src/pathUtils.ts index 30db78bd7bfb..a9fbb0bd98f7 100644 --- a/packages/docusaurus-utils/src/pathUtils.ts +++ b/packages/docusaurus-utils/src/pathUtils.ts @@ -21,8 +21,10 @@ const isWindows = () => process.platform === 'win32'; export const isNameTooLong = (str: string): boolean => // Not entirely correct: we can't assume FS from OS. But good enough? isMacOs() || isWindows() - ? str.length + SPACE_FOR_APPENDING > MAX_PATH_SEGMENT_CHARS // macOS (APFS) and Windows (NTFS) filename length limit (255 chars) - : Buffer.from(str).length + SPACE_FOR_APPENDING > MAX_PATH_SEGMENT_BYTES; // Other (255 bytes) + ? // Windows (NTFS) and macOS (APFS) filename length limit (255 chars) + str.length + SPACE_FOR_APPENDING > MAX_PATH_SEGMENT_CHARS + : // Other (255 bytes) + Buffer.from(str).length + SPACE_FOR_APPENDING > MAX_PATH_SEGMENT_BYTES; export function shortName(str: string): string { if (isMacOs() || isWindows()) { diff --git a/packages/docusaurus-utils/src/tags.ts b/packages/docusaurus-utils/src/tags.ts index e3eb2933e6f0..88408ef110a4 100644 --- a/packages/docusaurus-utils/src/tags.ts +++ b/packages/docusaurus-utils/src/tags.ts @@ -24,7 +24,7 @@ function normalizeFrontMatterTag( // TODO maybe make ensure the permalink is valid url path? function normalizeTagPermalink(permalink: string): string { - // note: we always apply tagsPath on purpose. For versioned docs, v1/doc.md + // Note: we always apply tagsPath on purpose. For versioned docs, v1/doc.md // and v2/doc.md tags with custom permalinks don't lead to the same created // page. tagsPath is different for each doc version return normalizeUrl([tagsPath, permalink]); diff --git a/packages/docusaurus-utils/src/urlUtils.ts b/packages/docusaurus-utils/src/urlUtils.ts index 1c6f6f5c8591..c6ad13d2d88e 100644 --- a/packages/docusaurus-utils/src/urlUtils.ts +++ b/packages/docusaurus-utils/src/urlUtils.ts @@ -158,7 +158,6 @@ export function isValidPathname(str: string): boolean { return false; } try { - // weird, but is there a better way? const parsedPathname = new URL(str, 'https://domain.com').pathname; return parsedPathname === str || parsedPathname === encodeURI(str); } catch { diff --git a/packages/docusaurus-utils/src/webpackUtils.ts b/packages/docusaurus-utils/src/webpackUtils.ts index 608e384d50d0..4116867c9dff 100644 --- a/packages/docusaurus-utils/src/webpackUtils.ts +++ b/packages/docusaurus-utils/src/webpackUtils.ts @@ -37,11 +37,10 @@ type FileLoaderUtils = { * Inspired by https://github.com/gatsbyjs/gatsby/blob/8e6e021014da310b9cc7d02e58c9b3efe938c665/packages/gatsby/src/utils/webpack-utils.ts#L447 */ export function getFileLoaderUtils(): FileLoaderUtils { - // files/images < urlLoaderLimit will be inlined as base64 strings directly in + // Files/images < urlLoaderLimit will be inlined as base64 strings directly in // the html const urlLoaderLimit = WEBPACK_URL_LOADER_LIMIT; - // defines the path/pattern of the assets handled by webpack const fileLoaderFileName = (folder: AssetFolder) => path.posix.join( OUTPUT_STATIC_ASSETS_DIR_NAME, diff --git a/packages/docusaurus/bin/beforeCli.mjs b/packages/docusaurus/bin/beforeCli.mjs index 53c5ee9e84d3..522867ec1b55 100644 --- a/packages/docusaurus/bin/beforeCli.mjs +++ b/packages/docusaurus/bin/beforeCli.mjs @@ -45,7 +45,6 @@ export default async function beforeCli() { // Check is in background so it's fine to use a small value like 1h // Use 0 for debugging updateCheckInterval: 1000 * 60 * 60, - // updateCheckInterval: 0 }); // Hacky way to ensure we check for updates on first run @@ -124,7 +123,7 @@ export default async function beforeCli() { console.log(docusaurusUpdateMessage); } - // notify user if node version needs to be updated + // Notify user if node version needs to be updated if (!semver.satisfies(process.version, requiredVersion)) { logger.error('Minimum Node.js version not met :('); logger.info`You are using Node.js number=${process.version}, Requirement: Node.js number=${requiredVersion}.`; diff --git a/packages/docusaurus/package.json b/packages/docusaurus/package.json index e0ca3c827ed2..14ccfac40fa0 100644 --- a/packages/docusaurus/package.json +++ b/packages/docusaurus/package.json @@ -56,11 +56,11 @@ "boxen": "^6.2.1", "chokidar": "^3.5.3", "clean-css": "^5.3.0", - "cli-table3": "^0.6.1", + "cli-table3": "^0.6.2", "combine-promises": "^1.1.0", "commander": "^5.1.0", "copy-webpack-plugin": "^10.2.4", - "core-js": "^3.21.1", + "core-js": "^3.22.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^3.4.1", "cssnano": "^5.1.7", @@ -69,7 +69,7 @@ "escape-html": "^1.0.3", "eta": "^1.12.3", "file-loader": "^6.2.0", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "html-minifier-terser": "^6.1.0", "html-tags": "^3.2.0", "html-webpack-plugin": "^5.5.0", @@ -81,8 +81,8 @@ "postcss": "^8.4.12", "postcss-loader": "^6.2.1", "prompts": "^2.4.2", - "react-dev-utils": "^12.0.0", - "react-helmet-async": "^1.2.3", + "react-dev-utils": "^12.0.1", + "react-helmet-async": "^1.3.0", "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", "react-loadable-ssr-addon-v5-slorber": "^1.0.1", "react-router": "^5.2.0", @@ -90,7 +90,7 @@ "react-router-dom": "^5.2.0", "remark-admonitions": "^1.2.1", "rtl-detect": "^1.0.4", - "semver": "^7.3.6", + "semver": "^7.3.7", "serve-handler": "^6.1.3", "shelljs": "^0.8.5", "terser-webpack-plugin": "^5.3.1", @@ -109,7 +109,7 @@ "@docusaurus/types": "2.0.0-beta.18", "@types/detect-port": "^1.3.2", "@types/nprogress": "^0.2.0", - "@types/react-dom": "^18.0.0", + "@types/react-dom": "^18.0.1", "@types/react-router-config": "^5.0.6", "@types/rtl-detect": "^1.0.0", "@types/serve-handler": "^6.1.1", diff --git a/packages/docusaurus/src/client/.eslintrc.js b/packages/docusaurus/src/client/.eslintrc.js index 5dce52424e15..cbef5af73663 100644 --- a/packages/docusaurus/src/client/.eslintrc.js +++ b/packages/docusaurus/src/client/.eslintrc.js @@ -11,12 +11,11 @@ module.exports = { 'error', { patterns: [ - // prevent importing lodash in client bundle - // prefer shipping vanilla JS + // Prevent importing lodash in client bundle for bundle size 'lodash', 'lodash.**', 'lodash/**', - // prevent importing server code in client bundle + // Prevent importing server code in client bundle '**/../babel/**', '**/../server/**', '**/../commands/**', diff --git a/packages/docusaurus/src/client/BaseUrlIssueBanner/index.tsx b/packages/docusaurus/src/client/BaseUrlIssueBanner/index.tsx index 3ddfaa5ed9d7..3b0621cfc029 100644 --- a/packages/docusaurus/src/client/BaseUrlIssueBanner/index.tsx +++ b/packages/docusaurus/src/client/BaseUrlIssueBanner/index.tsx @@ -41,7 +41,7 @@ function createInlineHtmlBanner(baseUrl: string) { `; } -// fn needs to work for older browsers! +// Needs to work for older browsers! function createInlineScript(baseUrl: string) { return ` window['${InsertBannerWindowAttribute}'] = true; @@ -119,7 +119,6 @@ export default function MaybeBaseUrlIssueBanner(): JSX.Element | null { siteConfig: {baseUrl, baseUrlIssueBanner}, } = useDocusaurusContext(); const {pathname} = useLocation(); - // returns true for the homepage during SSR const isHomePage = pathname === baseUrl; const enabled = baseUrlIssueBanner && isHomePage; return enabled ? : null; diff --git a/packages/docusaurus/src/client/LinksCollector.tsx b/packages/docusaurus/src/client/LinksCollector.tsx index 2df9a8618a2a..d0fb33b9ec03 100644 --- a/packages/docusaurus/src/client/LinksCollector.tsx +++ b/packages/docusaurus/src/client/LinksCollector.tsx @@ -28,8 +28,7 @@ export const createStatefulLinksCollector = (): StatefulLinksCollector => { const Context = React.createContext({ collectLink: () => { - // noop by default for client - // we only use the broken links checker server-side + // No-op for client. We only use the broken links checker server-side. }, }); diff --git a/packages/docusaurus/src/client/clientEntry.tsx b/packages/docusaurus/src/client/clientEntry.tsx index 939769aa31c4..8e53d92e1021 100644 --- a/packages/docusaurus/src/client/clientEntry.tsx +++ b/packages/docusaurus/src/client/clientEntry.tsx @@ -33,7 +33,6 @@ if (ExecutionEnvironment.canUseDOM) { process.env.NODE_ENV === 'production' ? ReactDOM.hydrate : ReactDOM.render; preload(window.location.pathname).then(() => { renderMethod( - // @ts-expect-error: https://github.com/staylor/react-helmet-async/pull/165 diff --git a/packages/docusaurus/src/client/exports/Link.tsx b/packages/docusaurus/src/client/exports/Link.tsx index 53da88a7913d..a6760e7fdfce 100644 --- a/packages/docusaurus/src/client/exports/Link.tsx +++ b/packages/docusaurus/src/client/exports/Link.tsx @@ -174,7 +174,7 @@ function Link( onMouseEnter={onMouseEnter} innerRef={handleRef} to={targetLink} - // avoid "React does not recognize the `activeClassName` prop on a DOM + // Avoid "React does not recognize the `activeClassName` prop on a DOM // element" {...(isNavLink && {isActive, activeClassName})} /> diff --git a/packages/docusaurus/src/client/exports/__tests__/Interpolate.test.tsx b/packages/docusaurus/src/client/exports/__tests__/Interpolate.test.tsx index ac9d430955c7..57f944d58b8f 100644 --- a/packages/docusaurus/src/client/exports/__tests__/Interpolate.test.tsx +++ b/packages/docusaurus/src/client/exports/__tests__/Interpolate.test.tsx @@ -132,5 +132,10 @@ describe('', () => { ).toThrowErrorMatchingInlineSnapshot( `"The Docusaurus component only accept simple string values. Received: React element"`, ); + expect(() => + renderer.create({null}), + ).toThrowErrorMatchingInlineSnapshot( + `"The Docusaurus component only accept simple string values. Received: object"`, + ); }); }); diff --git a/packages/docusaurus/src/client/exports/useBaseUrl.ts b/packages/docusaurus/src/client/exports/useBaseUrl.ts index 5ae4640a150c..174ea539c1b7 100644 --- a/packages/docusaurus/src/client/exports/useBaseUrl.ts +++ b/packages/docusaurus/src/client/exports/useBaseUrl.ts @@ -15,17 +15,9 @@ function addBaseUrl( url: string, {forcePrependBaseUrl = false, absolute = false}: BaseUrlOptions = {}, ): string { - if (!url) { - return url; - } - - // it never makes sense to add a base url to a local anchor url - if (url.startsWith('#')) { - return url; - } - - // it never makes sense to add a base url to an url with a protocol - if (hasProtocol(url)) { + // It never makes sense to add base url to a local anchor url, or one with a + // protocol + if (!url || url.startsWith('#') || hasProtocol(url)) { return url; } diff --git a/packages/docusaurus/src/client/routeContext.tsx b/packages/docusaurus/src/client/routeContext.tsx index 1b285859b841..2738eba7c502 100644 --- a/packages/docusaurus/src/client/routeContext.tsx +++ b/packages/docusaurus/src/client/routeContext.tsx @@ -32,7 +32,7 @@ function mergeContexts({ const data = {...parent.data, ...value?.data}; return { - // nested routes are not supposed to override plugin attribute + // Nested routes are not supposed to override plugin attribute plugin: parent.plugin, data, }; diff --git a/packages/docusaurus/src/client/serverEntry.tsx b/packages/docusaurus/src/client/serverEntry.tsx index c2c57e9348aa..ec01d1b9b441 100644 --- a/packages/docusaurus/src/client/serverEntry.tsx +++ b/packages/docusaurus/src/client/serverEntry.tsx @@ -85,7 +85,6 @@ async function doRender(locals: Locals & {path: string}) { const appHtml = ReactDOMServer.renderToString( // @ts-expect-error: we are migrating away from react-loadable anyways modules.add(moduleName)}> - {/* @ts-expect-error: https://github.com/staylor/react-helmet-async/pull/165 */} @@ -111,9 +110,7 @@ async function doRender(locals: Locals & {path: string}) { const {generatedFilesDir} = locals; const manifestPath = path.join(generatedFilesDir, 'client-manifest.json'); - const manifest: Manifest = JSON.parse( - await fs.readFile(manifestPath, 'utf8'), - ); + const manifest: Manifest = await fs.readJSON(manifestPath); // Get all required assets for this particular page based on client // manifest information. diff --git a/packages/docusaurus/src/commands/build.ts b/packages/docusaurus/src/commands/build.ts index 98f7d2bf85fc..8c211c225fba 100644 --- a/packages/docusaurus/src/commands/build.ts +++ b/packages/docusaurus/src/commands/build.ts @@ -145,7 +145,7 @@ async function buildLocale({ new ReactLoadableSSRAddon({ filename: clientManifestPath, }), - ].filter(Boolean), + ].filter((x: T | undefined | false): x is T => Boolean(x)), }, ); diff --git a/packages/docusaurus/src/commands/deploy.ts b/packages/docusaurus/src/commands/deploy.ts index 2de40addb16e..2382c696a889 100644 --- a/packages/docusaurus/src/commands/deploy.ts +++ b/packages/docusaurus/src/commands/deploy.ts @@ -113,8 +113,9 @@ This behavior can have SEO impacts and create relative link issues. shell.exit(0); } - // github.io indicates organization repos that deploy via default branch. - // All others use gh-pages. Organization deploys looks like: + // github.io indicates organization repos that deploy via default branch. All + // others use gh-pages (either case can be configured actually, but we can + // make educated guesses). Organization deploys look like: // - Git repo: https://github.com//.github.io // - Site url: https://.github.io const isGitHubPagesOrganizationDeploy = projectName.includes('.github.io'); @@ -235,7 +236,7 @@ You can also set the deploymentBranch property in docusaurus.config.js .`); if (!cliOptions.skipBuild) { // Build site, then push to deploymentBranch branch of specified repo. try { - await runDeploy(await build(siteDir, cliOptions, false)); + await build(siteDir, cliOptions, false).then(runDeploy); } catch (err) { logger.error('Deployment of the build output failed.'); throw err; diff --git a/packages/docusaurus/src/commands/start.ts b/packages/docusaurus/src/commands/start.ts index 39da01713433..0b9b8f2e179f 100644 --- a/packages/docusaurus/src/commands/start.ts +++ b/packages/docusaurus/src/commands/start.ts @@ -41,7 +41,7 @@ export async function start( siteDir, customConfigFilePath: cliOptions.config, locale: cliOptions.locale, - localizePath: undefined, // should this be configurable? + localizePath: undefined, // Should this be configurable? }); } diff --git a/packages/docusaurus/src/commands/swizzle/__tests__/actions.test.ts b/packages/docusaurus/src/commands/swizzle/__tests__/actions.test.ts index 90ef17ba783e..159318f62395 100644 --- a/packages/docusaurus/src/commands/swizzle/__tests__/actions.test.ts +++ b/packages/docusaurus/src/commands/swizzle/__tests__/actions.test.ts @@ -13,7 +13,7 @@ import tree from 'tree-node-cli'; import {eject, wrap} from '../actions'; import {posixPath} from '@docusaurus/utils'; -// use relative paths and sort files for tests +// Use relative paths and sort files for tests function stableCreatedFiles( siteThemePath: string, createdFiles: string[], diff --git a/packages/docusaurus/src/commands/swizzle/actions.ts b/packages/docusaurus/src/commands/swizzle/actions.ts index 5e4592ff544f..8bff8fc92873 100644 --- a/packages/docusaurus/src/commands/swizzle/actions.ts +++ b/packages/docusaurus/src/commands/swizzle/actions.ts @@ -53,7 +53,7 @@ export async function eject({ const fromPath = path.join(themePath, componentName); const isDirectory = await isDir(fromPath); const globPattern = isDirectory - ? // do we really want to copy all components? + ? // Do we really want to copy all components? path.join(fromPath, '*') : `${fromPath}.*`; diff --git a/packages/docusaurus/src/deps.d.ts b/packages/docusaurus/src/deps.d.ts index fe48ab85493b..c2dc3ccd1fd4 100644 --- a/packages/docusaurus/src/deps.d.ts +++ b/packages/docusaurus/src/deps.d.ts @@ -8,6 +8,8 @@ declare module 'remark-admonitions'; declare module 'react-loadable-ssr-addon-v5-slorber' { + import type {WebpackPluginInstance, Compiler} from 'webpack'; + type Asset = { file: string; hash: string; @@ -26,15 +28,14 @@ declare module 'react-loadable-ssr-addon-v5-slorber' { modulesToBeLoaded: string[], ): {js: Asset[]; css: Asset[]}; - type ReactLoadableSSRAddon = { - new (props: {filename: string}); - }; - - const plugin: ReactLoadableSSRAddon; - export default plugin; + export default class ReactLoadableSSRAddon implements WebpackPluginInstance { + constructor(props: {filename: string}); + apply(compiler: Compiler): void; + } } declare module '@slorber/static-site-generator-webpack-plugin' { + import type {WebpackPluginInstance, Compiler} from 'webpack'; import type {HelmetServerState} from 'react-helmet-async'; export type Locals = { @@ -53,18 +54,18 @@ declare module '@slorber/static-site-generator-webpack-plugin' { noIndex: boolean; }; - type StaticSiteGeneratorPlugin = { - new (props: { + export default class StaticSiteGeneratorPlugin + implements WebpackPluginInstance + { + constructor(props: { entry: string; locals: Locals; paths: string[]; preferFoldersOutput?: boolean; globals: {[key: string]: unknown}; }); - }; - - const plugin: StaticSiteGeneratorPlugin; - export default plugin; + apply(compiler: Compiler): void; + } } declare module 'webpack/lib/HotModuleReplacementPlugin' { diff --git a/packages/docusaurus/src/server/__tests__/brokenLinks.test.ts b/packages/docusaurus/src/server/__tests__/brokenLinks.test.ts index d1e29b619faf..1226142f972a 100644 --- a/packages/docusaurus/src/server/__tests__/brokenLinks.test.ts +++ b/packages/docusaurus/src/server/__tests__/brokenLinks.test.ts @@ -51,13 +51,13 @@ describe('handleBrokenLinks', () => { const linkToEmptyFolder2 = '/emptyFolder/'; const allCollectedLinks = { '/docs/good doc with space': [ - // good - valid file with spaces in name + // Good - valid file with spaces in name './another%20good%20doc%20with%20space', - // good - valid file with percent-20 in its name + // Good - valid file with percent-20 in its name './weird%20but%20good', - // bad - non-existent file with spaces in name + // Bad - non-existent file with spaces in name './some%20other%20non-existent%20doc1', - // evil - trying to use ../../ but '/' won't get decoded + // Evil - trying to use ../../ but '/' won't get decoded // cSpell:ignore Fout './break%2F..%2F..%2Fout2', ], @@ -91,11 +91,11 @@ describe('handleBrokenLinks', () => { linkToHtmlFile2, linkToJavadoc3, linkToJavadoc4, - linkToEmptyFolder1, // not filtered! + linkToEmptyFolder1, // Not filtered! ], '/page2': [ link2, - linkToEmptyFolder2, // not filtered! + linkToEmptyFolder2, // Not filtered! linkToJavadoc2, link3, linkToJavadoc3, diff --git a/packages/docusaurus/src/server/__tests__/configValidation.test.ts b/packages/docusaurus/src/server/__tests__/configValidation.test.ts index 3a564f9ce3f3..008f71c71588 100644 --- a/packages/docusaurus/src/server/__tests__/configValidation.test.ts +++ b/packages/docusaurus/src/server/__tests__/configValidation.test.ts @@ -287,15 +287,14 @@ describe('normalizeConfig', () => { }); it('throws error for required fields', () => { - expect( - () => - validateConfig({ - invalidField: true, - presets: {}, - stylesheets: {}, - themes: {}, - scripts: {}, - } as unknown as DocusaurusConfig), // to fields not in the type + expect(() => + validateConfig({ + invalidField: true, + presets: {}, + stylesheets: {}, + themes: {}, + scripts: {}, + }), ).toThrowErrorMatchingSnapshot(); }); }); diff --git a/packages/docusaurus/src/server/brokenLinks.ts b/packages/docusaurus/src/server/brokenLinks.ts index c8806fa842af..4ce32b2deaf5 100644 --- a/packages/docusaurus/src/server/brokenLinks.ts +++ b/packages/docusaurus/src/server/brokenLinks.ts @@ -84,7 +84,6 @@ function getAllBrokenLinks({ getPageBrokenLinks({pageLinks, pagePath, routes: filteredRoutes}), ); - // remove pages without any broken link return _.pickBy(allBrokenLinks, (brokenLinks) => brokenLinks.length > 0); } diff --git a/packages/docusaurus/src/server/choosePort.ts b/packages/docusaurus/src/server/choosePort.ts index 11f06ea0c9e2..53a5b5c3cf84 100644 --- a/packages/docusaurus/src/server/choosePort.ts +++ b/packages/docusaurus/src/server/choosePort.ts @@ -5,58 +5,38 @@ * LICENSE file in the root directory of this source tree. */ -import {execSync} from 'child_process'; +import {execSync, type ExecSyncOptionsWithStringEncoding} from 'child_process'; import detect from 'detect-port'; import logger from '@docusaurus/logger'; import prompts from 'prompts'; -const execOptions = { - encoding: 'utf8' as const, - stdio: [ - 'pipe' as const, // stdin (default) - 'pipe' as const, // stdout (default) - 'ignore' as const, // stderr - ], +const execOptions: ExecSyncOptionsWithStringEncoding = { + encoding: 'utf8', + stdio: [/* stdin */ 'pipe', /* stdout */ 'pipe', /* stderr */ 'ignore'], }; -// Clears console function clearConsole(): void { process.stdout.write( process.platform === 'win32' ? '\x1B[2J\x1B[0f' : '\x1B[2J\x1B[3J\x1B[H', ); } -// Gets process id of what is on port -function getProcessIdOnPort(port: number): string { - return execSync(`lsof -i:${port} -P -t -sTCP:LISTEN`, execOptions) - .split('\n')[0]! - .trim(); -} - -// Gets process command -function getProcessCommand(processId: string): string { - const command = execSync( - `ps -o command -p ${processId} | sed -n 2p`, - execOptions, - ); - - return command.replace(/\n$/, ''); -} - -// Gets directory of a process from its process id -function getDirectoryOfProcessById(processId: string): string { - return execSync( - `lsof -p ${processId} | awk '$4=="cwd" {for (i=9; i<=NF; i++) printf "%s ", $i}'`, - execOptions, - ).trim(); -} - -// Gets process on port function getProcessForPort(port: number): string | null { try { - const processId = getProcessIdOnPort(port); - const directory = getDirectoryOfProcessById(processId); - const command = getProcessCommand(processId); + const processId = execSync( + `lsof -i:${port} -P -t -sTCP:LISTEN`, + execOptions, + ) + .split('\n')[0]! + .trim(); + const directory = execSync( + `lsof -p ${processId} | awk '$4=="cwd" {for (i=9; i<=NF; i++) printf "%s ", $i}'`, + execOptions, + ).trim(); + const command = execSync( + `ps -o command -p ${processId} | sed -n 2p`, + execOptions, + ).replace(/\n$/, ''); return logger.interpolate`code=${command} subdue=${`(pid ${processId})`} in path=${directory}`; } catch { return null; diff --git a/packages/docusaurus/src/server/index.ts b/packages/docusaurus/src/server/index.ts index e971d1326313..0ada575f811f 100644 --- a/packages/docusaurus/src/server/index.ts +++ b/packages/docusaurus/src/server/index.ts @@ -166,8 +166,8 @@ export default ${JSON.stringify(siteConfig, null, 2)}; 'client-modules.js', `export default [ ${clientModules - // import() is async so we use require() because client modules can have - // CSS and the order matters for loading CSS. + // Use `require()` because `import()` is async but client modules can have CSS + // and the order matters for loading CSS. .map((clientModule) => ` require('${escapePath(clientModule)}'),`) .join('\n')} ]; diff --git a/packages/docusaurus/src/server/plugins/__tests__/__snapshots__/index.test.ts.snap b/packages/docusaurus/src/server/plugins/__tests__/__snapshots__/index.test.ts.snap index 688eaa837af2..76e6a9bee903 100644 --- a/packages/docusaurus/src/server/plugins/__tests__/__snapshots__/index.test.ts.snap +++ b/packages/docusaurus/src/server/plugins/__tests__/__snapshots__/index.test.ts.snap @@ -63,6 +63,20 @@ exports[`loadPlugins loads plugins 1`] = ` }, }, ], - "pluginsRouteConfigs": [], + "pluginsRouteConfigs": [ + { + "component": "Comp", + "context": { + "data": { + "content": "path", + }, + "plugin": "/packages/docusaurus/src/server/plugins/__tests__/__fixtures__/site-with-plugin/.docusaurus/test1/default/plugin-route-context-module-100.json", + }, + "modules": { + "content": "path", + }, + "path": "foo/", + }, + ], } `; diff --git a/packages/docusaurus/src/server/plugins/__tests__/index.test.ts b/packages/docusaurus/src/server/plugins/__tests__/index.test.ts index d585d644c4af..7e3ae0f428e2 100644 --- a/packages/docusaurus/src/server/plugins/__tests__/index.test.ts +++ b/packages/docusaurus/src/server/plugins/__tests__/index.test.ts @@ -31,6 +31,12 @@ describe('loadPlugins', () => { return this.prop; }, async contentLoaded({content, actions}) { + actions.addRoute({ + path: 'foo', + component: 'Comp', + modules: {content: 'path'}, + context: {content: 'path'}, + }); actions.setGlobalData({content, prop: this.prop}); }, }), diff --git a/packages/docusaurus/src/server/plugins/__tests__/presets.test.ts b/packages/docusaurus/src/server/plugins/__tests__/presets.test.ts index a50117e371c6..10d50a29506a 100644 --- a/packages/docusaurus/src/server/plugins/__tests__/presets.test.ts +++ b/packages/docusaurus/src/server/plugins/__tests__/presets.test.ts @@ -129,6 +129,9 @@ describe('loadPresets', () => { path.join(__dirname, '__fixtures__/presets/preset-plugins.js'), {docs: {path: '../'}}, ], + false, + null, + undefined, path.join(__dirname, '__fixtures__/presets/preset-themes.js'), path.join(__dirname, '__fixtures__/presets/preset-mixed.js'), ], diff --git a/packages/docusaurus/src/server/plugins/index.ts b/packages/docusaurus/src/server/plugins/index.ts index c87c99dc9ef0..82c3a53c89fe 100644 --- a/packages/docusaurus/src/server/plugins/index.ts +++ b/packages/docusaurus/src/server/plugins/index.ts @@ -98,7 +98,7 @@ export async function loadPlugins(context: LoadContext): Promise<{ return; } const pluginId = plugin.options.id; - // plugins data files are namespaced by pluginName/pluginId + // Plugins data files are namespaced by pluginName/pluginId const dataDir = path.join( context.generatedFilesDir, plugin.name, diff --git a/packages/docusaurus/src/server/plugins/init.ts b/packages/docusaurus/src/server/plugins/init.ts index 14c01f2ace20..46a010324c2f 100644 --- a/packages/docusaurus/src/server/plugins/init.ts +++ b/packages/docusaurus/src/server/plugins/init.ts @@ -28,7 +28,7 @@ function getOptionValidationFunction( normalizedPluginConfig: NormalizedPluginConfig, ): PluginModule['validateOptions'] { if (normalizedPluginConfig.pluginModule) { - // support both commonjs and ES modules + // Support both CommonJS and ES modules return ( normalizedPluginConfig.pluginModule.module?.default?.validateOptions ?? normalizedPluginConfig.pluginModule.module?.validateOptions @@ -41,7 +41,7 @@ function getThemeValidationFunction( normalizedPluginConfig: NormalizedPluginConfig, ): PluginModule['validateThemeConfig'] { if (normalizedPluginConfig.pluginModule) { - // support both commonjs and ES modules + // Support both CommonJS and ES modules return ( normalizedPluginConfig.pluginModule.module.default?.validateThemeConfig ?? normalizedPluginConfig.pluginModule.module.validateThemeConfig @@ -65,7 +65,6 @@ export async function initPlugins( async function doGetPluginVersion( normalizedPluginConfig: NormalizedPluginConfig, ): Promise { - // get plugin version if (normalizedPluginConfig.pluginModule?.path) { const pluginPath = pluginRequire.resolve( normalizedPluginConfig.pluginModule?.path, diff --git a/packages/docusaurus/src/server/routes.ts b/packages/docusaurus/src/server/routes.ts index 733bf0bc2f51..87cfedf87a82 100644 --- a/packages/docusaurus/src/server/routes.ts +++ b/packages/docusaurus/src/server/routes.ts @@ -272,9 +272,8 @@ ${JSON.stringify(routeConfig)}`, res.routesChunkNames[`${routePath}-${routeHash}`] = { // Avoid clash with a prop called "component" ...genChunkNames({__comp: component}, 'component', component, res), - ...(context - ? genChunkNames({__context: context}, 'context', routePath, res) - : {}), + ...(context && + genChunkNames({__context: context}, 'context', routePath, res)), ...genChunkNames(modules, 'module', routePath, res), }; diff --git a/packages/docusaurus/src/server/translations/translations.ts b/packages/docusaurus/src/server/translations/translations.ts index 4d0bcb24740f..3e768b8a9041 100644 --- a/packages/docusaurus/src/server/translations/translations.ts +++ b/packages/docusaurus/src/server/translations/translations.ts @@ -58,7 +58,7 @@ async function readTranslationFileContent( ): Promise { if (await fs.pathExists(filePath)) { try { - const content = JSON.parse(await fs.readFile(filePath, 'utf8')); + const content = await fs.readJSON(filePath); ensureTranslationFileContent(content); return content; } catch (err) { @@ -94,7 +94,7 @@ function mergeTranslationFileContent({ message: options.override ? message : existingContent[key]?.message ?? message, - description, // description + description, }; }, ); @@ -143,7 +143,7 @@ Maybe you should remove them? ${unknownKeys}`; } } -// should we make this configurable? +// Should we make this configurable? export function getTranslationsLocaleDirPath( context: TranslationContext, ): string { @@ -248,7 +248,7 @@ export async function localizePluginTranslationFile({ const localizedContent = await readTranslationFileContent(filePath); if (localizedContent) { - // localized messages "override" default unlocalized messages + // Localized messages "override" default unlocalized messages return { path: translationFile.path, content: { diff --git a/packages/docusaurus/src/webpack/__tests__/utils.test.ts b/packages/docusaurus/src/webpack/__tests__/utils.test.ts index afcc1477f782..410824ec6584 100644 --- a/packages/docusaurus/src/webpack/__tests__/utils.test.ts +++ b/packages/docusaurus/src/webpack/__tests__/utils.test.ts @@ -52,7 +52,7 @@ describe('customize JS loader', () => { describe('extending generated webpack config', () => { it('direct mutation on generated webpack config object', async () => { - // fake generated webpack config + // Fake generated webpack config let config: Configuration = { output: { path: __dirname, diff --git a/packages/docusaurus/src/webpack/base.ts b/packages/docusaurus/src/webpack/base.ts index 2c59b7d6a873..45a81c1031a4 100644 --- a/packages/docusaurus/src/webpack/base.ts +++ b/packages/docusaurus/src/webpack/base.ts @@ -24,7 +24,7 @@ const CSS_MODULE_REGEX = /\.module\.css$/i; export const clientDir = path.join(__dirname, '..', 'client'); const LibrariesToTranspile = [ - 'copy-text-to-clipboard', // contains optional catch binding, incompatible with recent versions of Edge + 'copy-text-to-clipboard', // Contains optional catch binding, incompatible with recent versions of Edge ]; const LibrariesToTranspileRegex = new RegExp( @@ -32,7 +32,7 @@ const LibrariesToTranspileRegex = new RegExp( ); export function excludeJS(modulePath: string): boolean { - // always transpile client dir + // Always transpile client dir if (modulePath.startsWith(clientDir)) { return false; } @@ -118,9 +118,9 @@ export async function createBaseConfig( }, devtool: isProd ? undefined : 'eval-cheap-module-source-map', resolve: { - unsafeCache: false, // not enabled, does not seem to improve perf much + unsafeCache: false, // Not enabled, does not seem to improve perf much extensions: ['.wasm', '.mjs', '.js', '.jsx', '.ts', '.tsx', '.json'], - symlinks: true, // see https://github.com/facebook/docusaurus/issues/3272 + symlinks: true, // See https://github.com/facebook/docusaurus/issues/3272 roots: [ // Allow resolution of url("/fonts/xyz.ttf") by webpack // See https://webpack.js.org/configuration/resolve/#resolveroots @@ -167,7 +167,7 @@ export async function createBaseConfig( // include [name] in the filenames name: false, cacheGroups: { - // disable the built-in cacheGroups + // Disable the built-in cacheGroups default: false, common: { name: 'common', @@ -238,7 +238,7 @@ export async function createBaseConfig( chunkFilename: isProd ? 'assets/css/[name].[contenthash:8].css' : '[name].css', - // remove css order warnings if css imports are not sorted + // Remove css order warnings if css imports are not sorted // alphabetically. See https://github.com/webpack-contrib/mini-css-extract-plugin/pull/422 // for more reasoning ignoreOrder: true, diff --git a/packages/docusaurus/src/webpack/client.ts b/packages/docusaurus/src/webpack/client.ts index ffe0a704eb95..f7ca7de770b2 100644 --- a/packages/docusaurus/src/webpack/client.ts +++ b/packages/docusaurus/src/webpack/client.ts @@ -23,7 +23,7 @@ export default async function createClientConfig( const config = await createBaseConfig(props, false, minify); const clientConfig = merge(config, { - // useless, disabled on purpose (errors on existing sites with no + // Useless, disabled on purpose (errors on existing sites with no // browserslist config) // target: 'browserslist', entry: path.resolve(__dirname, '../client/clientEntry.js'), diff --git a/packages/docusaurus/src/webpack/utils.ts b/packages/docusaurus/src/webpack/utils.ts index 85345c201b0a..1e823c6943fb 100644 --- a/packages/docusaurus/src/webpack/utils.ts +++ b/packages/docusaurus/src/webpack/utils.ts @@ -204,7 +204,7 @@ export function applyConfigurePostCss( options: {postcssOptions: PostCssOptions}; }; - // not ideal heuristic but good enough for our use-case? + // Not ideal heuristic but good enough for our use-case? function isPostCssLoader(loader: unknown): loader is LocalPostCSSLoader { return !!(loader as LocalPostCSSLoader)?.options?.postcssOptions; } @@ -249,7 +249,7 @@ export function compile(config: Configuration[]): Promise { } reject(err); } - // let plugins consume all the stats + // Let plugins consume all the stats const errorsWarnings = stats?.toJson('errors-warnings'); if (stats?.hasErrors()) { reject(new Error('Failed to compile with errors.')); @@ -363,7 +363,7 @@ export function getMinimizer( parallel: getTerserParallel(), terserOptions: { parse: { - // we want uglify-js to parse ecma 8 code. However, we don't want it + // We want uglify-js to parse ecma 8 code. However, we don't want it // to apply any minification steps that turns valid ecma 5 code // into invalid ecma 5 code. This is why the 'compress' and 'output' // sections only apply transformations that are ecma 5 safe diff --git a/packages/lqip-loader/package.json b/packages/lqip-loader/package.json index 39bd019437d4..b7a932509c89 100644 --- a/packages/lqip-loader/package.json +++ b/packages/lqip-loader/package.json @@ -27,6 +27,6 @@ "node": ">=14" }, "devDependencies": { - "@types/sharp": "^0.30.1" + "@types/sharp": "^0.30.2" } } diff --git a/packages/lqip-loader/src/lqip.ts b/packages/lqip-loader/src/lqip.ts index f6ab095a1868..b6286872b44d 100644 --- a/packages/lqip-loader/src/lqip.ts +++ b/packages/lqip-loader/src/lqip.ts @@ -21,8 +21,8 @@ const SUPPORTED_MIMES: {[ext: string]: string} = { }; /** - * it returns a Base64 image string with required formatting - * to work on the web ( or in CSS url('..')) + * It returns a Base64 image string with required formatting to work on the web + * ( or in CSS url('..')) */ const toBase64 = (extMimeType: string, data: Buffer): string => `data:${extMimeType};base64,${data.toString('base64')}`; diff --git a/packages/stylelint-copyright/package.json b/packages/stylelint-copyright/package.json index 8c669225c399..6ed530fc18c2 100644 --- a/packages/stylelint-copyright/package.json +++ b/packages/stylelint-copyright/package.json @@ -10,6 +10,6 @@ "directory": "packages/stylelint-copyright" }, "dependencies": { - "stylelint": "^14.6.1" + "stylelint": "^14.7.0" } } diff --git a/project-words.txt b/project-words.txt index 1c730dc2c574..5bd78cccc06e 100644 --- a/project-words.txt +++ b/project-words.txt @@ -21,6 +21,7 @@ backticks bartosz beforeinstallprompt bhatt +blocklist blockquotes browserslist browserstack diff --git a/website/_dogfooding/docs-tests-sidebars.js b/website/_dogfooding/docs-tests-sidebars.js index 0143596f80a1..6b8b8f9c4365 100644 --- a/website/_dogfooding/docs-tests-sidebars.js +++ b/website/_dogfooding/docs-tests-sidebars.js @@ -87,7 +87,7 @@ const sidebars = { collapsed: false, collapsible: false, items: [ - // title + // Title { type: 'html', value: 'Some Text', diff --git a/website/_dogfooding/dogfooding.config.js b/website/_dogfooding/dogfooding.config.js index 5d7cea7670ee..95c1d5161843 100644 --- a/website/_dogfooding/dogfooding.config.js +++ b/website/_dogfooding/dogfooding.config.js @@ -22,7 +22,7 @@ exports.dogfoodingThemeInstances = dogfoodingThemeInstances; /** @type {import('@docusaurus/types').PluginConfig[]} */ const dogfoodingPluginInstances = [ [ - 'content-docs', // dogfood shorthand + 'content-docs', // Shorthand /** @type {import('@docusaurus/plugin-content-docs').Options} */ ({ id: 'docs-tests', @@ -52,7 +52,7 @@ const dogfoodingPluginInstances = [ ], [ - '@docusaurus/plugin-content-blog', // dogfood longhand + '@docusaurus/plugin-content-blog', // Longhand /** @type {import('@docusaurus/plugin-content-blog').Options} */ ({ id: 'blog-tests', @@ -75,7 +75,7 @@ const dogfoodingPluginInstances = [ ], [ - require.resolve('@docusaurus/plugin-content-pages'), // dogfood longhand resolve + require.resolve('@docusaurus/plugin-content-pages'), // Full path /** @type {import('@docusaurus/plugin-content-pages').Options} */ ({ id: 'pages-tests', diff --git a/website/_dogfooding/testSwizzleThemeClassic.mjs b/website/_dogfooding/testSwizzleThemeClassic.mjs index 61f1162b9848..b8b4a4cb1a76 100644 --- a/website/_dogfooding/testSwizzleThemeClassic.mjs +++ b/website/_dogfooding/testSwizzleThemeClassic.mjs @@ -68,16 +68,16 @@ Please double-check or clean up these components from the config: // TODO temp workaround: non-comps should be forbidden to wrap if (action === 'wrap') { - const WrapBlacklist = [ - 'Layout', // due to theme-fallback? + const WrapBlocklist = [ + 'Layout', // Due to theme-fallback? ]; componentNames = componentNames.filter((componentName) => { - const blacklisted = WrapBlacklist.includes(componentName); - if (!WrapBlacklist) { - logger.warn(`${componentName} is blacklisted and will not be wrapped`); + const blocked = WrapBlocklist.includes(componentName); + if (blocked) { + logger.warn(`${componentName} is blocked and will not be wrapped`); } - return !blacklisted; + return !blocked; }); } diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 8e396e641b41..df57e09ac88c 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -170,8 +170,8 @@ const config = { ({ fromExtensions: ['html'], createRedirects(routePath) { - // redirect to /docs from /docs/introduction, - // as introduction has been made the home doc + // Redirect to /docs from /docs/introduction, as introduction has been + // made the home doc if (allDocHomesPaths.includes(routePath)) { return [`${routePath}/introduction`]; } @@ -195,13 +195,15 @@ const config = { ], [ 'ideal-image', - { + /** @type {import('@docusaurus/plugin-ideal-image').PluginOptions} */ + ({ quality: 70, - max: 1030, // max resized image's size. - min: 640, // min resized image's size. if original is lower, use that size. - steps: 2, // the max number of images generated between min and max (inclusive) - // disableInDev: false, - }, + max: 1030, + min: 640, + steps: 2, + // Use false to debug, but it incurs huge perf costs + disableInDev: true, + }), ], [ 'pwa', @@ -413,7 +415,7 @@ const config = { label: 'Tests', docsPluginId: 'docs-tests', }, - // right + // Right { type: 'docsVersionDropdown', position: 'right', diff --git a/website/package.json b/website/package.json index e3e347c3a3ce..fb2e68ec7840 100644 --- a/website/package.json +++ b/website/package.json @@ -35,7 +35,7 @@ }, "dependencies": { "@crowdin/cli": "^3.7.8", - "@crowdin/crowdin-api-client": "^1.16.0", + "@crowdin/crowdin-api-client": "^1.17.0", "@docusaurus/core": "2.0.0-beta.18", "@docusaurus/logger": "2.0.0-beta.18", "@docusaurus/plugin-client-redirects": "2.0.0-beta.18", @@ -49,10 +49,10 @@ "@docusaurus/utils": "2.0.0-beta.18", "@docusaurus/utils-common": "2.0.0-beta.18", "@popperjs/core": "^2.11.5", - "@swc/core": "^1.2.164", + "@swc/core": "^1.2.167", "clsx": "^1.1.1", "color": "^4.2.3", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "netlify-plugin-cache": "^1.0.3", "raw-loader": "^4.0.2", "react": "^17.0.2", @@ -61,10 +61,10 @@ "react-popper": "^2.2.5", "rehype-katex": "^6.0.2", "remark-math": "^3.0.1", - "swc-loader": "^0.1.15", + "swc-loader": "^0.2.0", "unist-util-visit": "^2.0.3", - "workbox-routing": "^6.5.2", - "workbox-strategies": "^6.5.2" + "workbox-routing": "^6.5.3", + "workbox-strategies": "^6.5.3" }, "browserslist": { "production": [ diff --git a/website/src/data/showcase/cloudywithachanceofbigdata.png b/website/src/data/showcase/cloudywithachanceofbigdata.png deleted file mode 100644 index a9780332d122..000000000000 Binary files a/website/src/data/showcase/cloudywithachanceofbigdata.png and /dev/null differ diff --git a/website/src/data/showcase/easy-dates.png b/website/src/data/showcase/easy-dates.png new file mode 100644 index 000000000000..cd33387dc235 Binary files /dev/null and b/website/src/data/showcase/easy-dates.png differ diff --git a/website/src/data/showcase/fullstackchronicles.png b/website/src/data/showcase/fullstackchronicles.png new file mode 100644 index 000000000000..ceb830ff7ea6 Binary files /dev/null and b/website/src/data/showcase/fullstackchronicles.png differ diff --git a/website/src/data/users.tsx b/website/src/data/users.tsx index f7ef26693542..5ffa30c7a3cb 100644 --- a/website/src/data/users.tsx +++ b/website/src/data/users.tsx @@ -331,13 +331,12 @@ const Users: User[] = [ tags: ['opensource'], }, { - title: 'Cloudy with a chance of Big Data', + title: 'Full Stack Chronicles', description: 'A blog only Docusaurus site showcasing cloud, data and full stack design patterns and tutorials', - preview: require('./showcase/cloudywithachanceofbigdata.png'), - website: 'https://cloudywithachanceofbigdata.com/', - source: - 'https://github.com/cloudywithachanceofbigdata/cloudywithachanceofbigdata.github.io', + preview: require('./showcase/fullstackchronicles.png'), + website: 'https://fullstackchronicles.io/', + source: 'https://github.com/stackql/fullstackchronicles.io', tags: ['opensource', 'personal'], }, { @@ -516,6 +515,14 @@ const Users: User[] = [ 'opensource', ], }, + { + title: 'easy-dates', + description: 'JavaScript dates library', + preview: require('./showcase/easy-dates.png'), + website: 'https://easy-dates.dev', + source: 'https://github.com/sandypockets/easy-dates/tree/main/docs', + tags: ['opensource'], + }, { title: 'Easyjwt', description: 'JWT creation and validation library', diff --git a/website/testCSSOrder.mjs b/website/testCSSOrder.mjs index e177eef75d93..0b1aaa7129a7 100644 --- a/website/testCSSOrder.mjs +++ b/website/testCSSOrder.mjs @@ -47,7 +47,7 @@ const EXPECTED_CSS_MARKERS = [ '.test-marker-theme-layout', '.test-marker-site-index-page', - // lazy loaded lib + // Lazy-loaded lib '.DocSearch-Modal', ]; diff --git a/website/waitForCrowdin.mjs b/website/waitForCrowdin.mjs index 577abf38cc3a..d8e2823b5008 100644 --- a/website/waitForCrowdin.mjs +++ b/website/waitForCrowdin.mjs @@ -24,7 +24,7 @@ const pollInterval = 5000; const timeout = 5 * 60 * 1000; const projectId = 428890; -const token = process.env.CROWDIN_PERSONAL_TOKEN; // set on Netlify +const token = process.env.CROWDIN_PERSONAL_TOKEN; // Set on Netlify const translations = new Translations({token}); diff --git a/yarn.lock b/yarn.lock index 2051469fd2b1..cc8f2b73b8fd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1317,17 +1317,17 @@ njre "^0.2.0" shelljs "^0.8.4" -"@crowdin/crowdin-api-client@^1.16.0": - version "1.16.0" - resolved "https://registry.yarnpkg.com/@crowdin/crowdin-api-client/-/crowdin-api-client-1.16.0.tgz#d6cdc70d8805bab2b426e71dfa85dafab410444b" - integrity sha512-3WLBN4kuxQ3blvTUh3HMFKStnUDrMYXJ1jpmvCMB/qG7BhczGeqcYpv0ugGvb0almuGmd4wNu+WfK+aAJxigHw== +"@crowdin/crowdin-api-client@^1.17.0": + version "1.17.0" + resolved "https://registry.yarnpkg.com/@crowdin/crowdin-api-client/-/crowdin-api-client-1.17.0.tgz#ff9ee259af52fee83a00beb2510f16130fb5c8aa" + integrity sha512-sc/9GqreWCBUfeENnovETvdtldptCBZ4BMGHQePnf8SJazcuCCZCpxspBX6Gj7Kt5cyqmC0ZywYF8j5jD32+PQ== dependencies: axios "0.21.3" -"@cspell/cspell-bundled-dicts@^5.19.6": - version "5.19.6" - resolved "https://registry.yarnpkg.com/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-5.19.6.tgz#219727c0c7464c202a6c8688b55272a6be5a18a1" - integrity sha512-eNh7swKZvfI8UELOGvCuV0Y4m979tyA4yI4B4LuM71xhMp2zzybtsz23R65couyM2yIUpUhIm31uxzzzlaEWtg== +"@cspell/cspell-bundled-dicts@^5.19.7": + version "5.19.7" + resolved "https://registry.yarnpkg.com/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-5.19.7.tgz#7e6f6990bbc73ff9b5c0b7ca17cb693c58ae06ee" + integrity sha512-9h2KdI3yKODc8rAxkgB5UZb6RLwwEO25Fo91vnOtM1xfwLhX/scMACU1DoqtnTVaE73HoQ46DYAZAAq/OloRFQ== dependencies: "@cspell/dict-ada" "^2.0.0" "@cspell/dict-aws" "^2.0.0" @@ -1370,15 +1370,15 @@ "@cspell/dict-typescript" "^2.0.0" "@cspell/dict-vue" "^2.0.2" -"@cspell/cspell-pipe@^5.19.6": - version "5.19.6" - resolved "https://registry.yarnpkg.com/@cspell/cspell-pipe/-/cspell-pipe-5.19.6.tgz#4b43d4f97c7f21286b7a5deed1a6d043a23444f8" - integrity sha512-KHGyPnr7uJ4buBEh5Tptd5kpgsIzgtEjz07Uk2RpSJ1oBVNheGprQ4EuwSWuFRYzm4e3Dk1OSgH5Lavfh6JjZA== +"@cspell/cspell-pipe@^5.19.7": + version "5.19.7" + resolved "https://registry.yarnpkg.com/@cspell/cspell-pipe/-/cspell-pipe-5.19.7.tgz#398bf6452ce83144f716b60f0f03bd8fb6f80774" + integrity sha512-C2+qovrXyZtoM+IcyMuwwYieoGBwwnWORat+j7bkIkVHf6Pa9spxY3D1IdLt04PqWBKWKHb1g9KzJzw5grBqZw== -"@cspell/cspell-types@^5.19.6": - version "5.19.6" - resolved "https://registry.yarnpkg.com/@cspell/cspell-types/-/cspell-types-5.19.6.tgz#ad2cfaeddead59ce3e1bf08379e0c234c0041c1b" - integrity sha512-/JJ7lyfbqkHFJPc4IAgtLnBaFLW2FVlThkag/B//QAMUBpSO4Q4vaBT6ehBONuxBPPy0wnPKyVzPcdUo5M7ptA== +"@cspell/cspell-types@^5.19.7": + version "5.19.7" + resolved "https://registry.yarnpkg.com/@cspell/cspell-types/-/cspell-types-5.19.7.tgz#9888598b976451df61cc980f0b3cc74379d7a358" + integrity sha512-xL9a0oE8kPQ/GCkE/bxE5DTCMTctCpk7tdrhYG26wVbMK1VRGo8fv9w+vRVzXgTfF5jTxolEA1LTtfVBuik1MA== "@cspell/dict-ada@^2.0.0": version "2.0.0" @@ -1401,9 +1401,9 @@ integrity sha512-O622rMAaHm85AmqNyMki5je8HB/1XlTKbGOXh2UUhooI5qdgdfrjTQ6VBuHwHrfEfuODBHYTNYXVB2m23XqHCg== "@cspell/dict-cpp@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@cspell/dict-cpp/-/dict-cpp-2.0.2.tgz#201b247f4a238e891b69ff32e737332570cccfa7" - integrity sha512-2Z2mOFQ4pSBoQeUaa/Cn0KBwkcRDdWSdBMj8bjGlhl9hXI342drAJMXg8tWsQa4l6J0GJUdmxz6RHmYRSzZJoQ== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-cpp/-/dict-cpp-2.0.3.tgz#551bec166c4520f7ba36f8d263fb885d19f98db0" + integrity sha512-aWRvI3CQW2M3XeJpDVffItw/9n4hxsN5EPwyBa6Po6EnCxZZZLOqpieZk4JNz4pH0/xbnOX+sMMuSeKWr71r/w== "@cspell/dict-cryptocurrencies@^2.0.0": version "2.0.0" @@ -2654,10 +2654,10 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@netlify/build@^26.5.2": - version "26.5.2" - resolved "https://registry.yarnpkg.com/@netlify/build/-/build-26.5.2.tgz#e10794bd4e144cc769d7dc3107468bf2e9878e6b" - integrity sha512-b/movOQmBIw9ghNDdo4jviZGQRYMBzcGTN1BcoWgK649Whj1KfqEWpL+JBeqnCCNUQpfhfE9o284o6Ql37k8jQ== +"@netlify/build@^26.5.3": + version "26.5.3" + resolved "https://registry.yarnpkg.com/@netlify/build/-/build-26.5.3.tgz#68f8ea15ba48cd0ecdbe239462ae6cecfd57c5cd" + integrity sha512-O16lFUI6/uooWIvgrO/fQphx4vAGTW9GDAQ3hvo5M64XFdu+9W/OU0fB0fAPAJp+wGM+/hZI5JSS6rCG+TWifg== dependencies: "@bugsnag/js" "^7.0.0" "@netlify/cache-utils" "^4.0.0" @@ -2665,7 +2665,7 @@ "@netlify/functions-utils" "^4.0.0" "@netlify/git-utils" "^4.0.0" "@netlify/plugin-edge-handlers" "^3.0.7" - "@netlify/plugins-list" "^6.18.1" + "@netlify/plugins-list" "^6.19.0" "@netlify/run-utils" "^4.0.0" "@netlify/zip-it-and-ship-it" "5.9.0" "@sindresorhus/slugify" "^2.0.0" @@ -2908,7 +2908,7 @@ rollup-plugin-node-polyfills "^0.2.1" rollup-plugin-terser "^7.0.2" -"@netlify/plugins-list@^6.18.1", "@netlify/plugins-list@^6.19.0": +"@netlify/plugins-list@^6.19.0": version "6.19.0" resolved "https://registry.yarnpkg.com/@netlify/plugins-list/-/plugins-list-6.19.0.tgz#6618803445e5ad7f7f1fadb576cf7783160102b9" integrity sha512-EuRZgOhP7QE0H5Sn4+LvsOKL+rcUn+ny6dzwK1V+Rj2HV0cBW2JMGxWj2IEAI1Qb0xU/Gy+Ib+bX23dCvm5LdQ== @@ -3223,9 +3223,9 @@ "@rollup/pluginutils" "^3.1.0" "@rollup/plugin-commonjs@^21.0.0": - version "21.0.3" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.3.tgz#287896c64926ef3d7f0013708dcdcc1223576ef0" - integrity sha512-ThGfwyvcLc6cfP/MWxA5ACF+LZCvsuhUq7V5134Az1oQWsiC7lNpLT4mJI86WQunK7BYmpUiHmMk2Op6OAHs0g== + version "21.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-21.1.0.tgz#45576d7b47609af2db87f55a6d4b46e44fc3a553" + integrity sha512-6ZtHx3VHIp2ReNNDxHjuUml6ur+WcQ28N1yHgCQwsbNkQg2suhxGMDQGJOn/KuDxKtd1xuZP5xSTwBA4GQ8hbA== dependencies: "@rollup/pluginutils" "^3.1.0" commondir "^1.0.1" @@ -3489,89 +3489,89 @@ "@svgr/plugin-jsx" "^6.2.1" "@svgr/plugin-svgo" "^6.2.0" -"@swc/core-android-arm-eabi@1.2.164": - version "1.2.164" - resolved "https://registry.yarnpkg.com/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.164.tgz#91dade277d6ff3017df0f08c48acef6c6f094129" - integrity sha512-TdVOB3SJEpcBr+AfWXtK/r8GWJjddLD2bVHZe5wcN+GOGFZpkDTvhT66neK3Z13IBOMWkc5HckjdZ+Rfj+n3Ew== - -"@swc/core-android-arm64@1.2.164": - version "1.2.164" - resolved "https://registry.yarnpkg.com/@swc/core-android-arm64/-/core-android-arm64-1.2.164.tgz#8a1542788c37f0c0f7ccae78338276c735ebc560" - integrity sha512-nAl9QFzA94ESL+UL+UvPywuEjHIADHBCurIVOHMg4XIrgNQwRlbi7RQDKtLyhsTSmZoGoP4bGt5dRnKEyiSzNg== - -"@swc/core-darwin-arm64@1.2.164": - version "1.2.164" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.164.tgz#dc005f9ad96418d9aed8258b4c4e0932b665a488" - integrity sha512-OOsZybjAqcvsV/foB0K3RN6SEDJPb9UEJAYtKGeL1sae1vDq4JyuUhgWhGNmLJy4W1yeMCaDXLFSa9c/YN9pEg== - -"@swc/core-darwin-x64@1.2.164": - version "1.2.164" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.2.164.tgz#dafff10f4850b2251c3786292665ce917954f8e2" - integrity sha512-nKh3qoM4V60NruuY+GZgVwS7aGOjRxovakT84L3ELVCoa1Z/1qnLy5Lq3b1wW+PICxCjapqFGQAu3TQ8IRUNEg== - -"@swc/core-freebsd-x64@1.2.164": - version "1.2.164" - resolved "https://registry.yarnpkg.com/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.164.tgz#4be6a52f43022df409d964ae2f920e0eeb8f3955" - integrity sha512-yawmWGxFmFHMXc40ojmN4yXNXdNBGiauf1ZgF8VQK1Zqn+hcUaSIpNGJ4V9cDX97QKMmTJSEoeUbPGR5cIqEzQ== - -"@swc/core-linux-arm-gnueabihf@1.2.164": - version "1.2.164" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.164.tgz#a6dac7f9654bdf863cdcc3143dc2abfb8faffeea" - integrity sha512-8U85zH0hIbgqFe/71ocDatvCLDzIv/GIIzcuuoTFsdPCDDUzxRjmyZqQfVdwqrbk/j4MiV+iSFnM86VQYs1fRQ== - -"@swc/core-linux-arm64-gnu@1.2.164": - version "1.2.164" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.164.tgz#26684021f8f2d974045ce29b3f4e17e441f6e964" - integrity sha512-NT3IuJGstGnAbBXxE2O2LrMlVUDUFVyybXoklNSL811Y1g6HPPbnGl+by1iEFyMHxSPnn5d6R5dvpvezMwBUDA== - -"@swc/core-linux-arm64-musl@1.2.164": - version "1.2.164" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.164.tgz#88731dfa9d61162710849383d0cd24f6a2e97335" - integrity sha512-L/he+XSa1oQ7V95kbjrcmef8fxTZFA6RMj9bbGk62Nj/kQFOyUpXKVvWD+kQkLxqPeN9s7OV6fCyBwRly2SpNQ== - -"@swc/core-linux-x64-gnu@1.2.164": - version "1.2.164" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.164.tgz#bbe19048a58a5f639fccec47fde26c79d154b476" - integrity sha512-FiNan0A3zkgpMqhWMUvJ1QmpJlpPwkQ4OhERgyos1ZiTnF8PuTcN4kUqV0Pc4mrX5bfSeHRbrYr4owa2PjHv8w== - -"@swc/core-linux-x64-musl@1.2.164": - version "1.2.164" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.164.tgz#dfbf220f3552e0d10a59c2aaad24a299145d3f11" - integrity sha512-yN8GLowpJAlKFnxfVEOEwHIVK3wC587Hyo+MwYx8dDDaQS/n4GQ9XyHjbEDVyf2thGtr3C+2umozi19AgbIs5g== - -"@swc/core-win32-arm64-msvc@1.2.164": - version "1.2.164" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.164.tgz#4164831f8af2da39461d2374bc784667f188d96a" - integrity sha512-Hdt+Q2kAPNjLfVj+xHbtjDNJjQNtktb3s+CrGhYkz9iW6w3qb7wO8i18yu6gUVH6HgVYuyDK56oRxOX7T7iP8w== - -"@swc/core-win32-ia32-msvc@1.2.164": - version "1.2.164" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.164.tgz#f647cc5de26e5eef464325a145b9a37044813f4d" - integrity sha512-+nNJMnFNQBUPoA3Zu/v9pBn1ZD13b0vHLrPhg6qDAkXCZJJYpr6jUvEcED4F/9sjQs3S+JrH47S6DtkuBn+TzQ== - -"@swc/core-win32-x64-msvc@1.2.164": - version "1.2.164" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.164.tgz#e5268d50d300fc863f2d7c146b8d41d338bf7ac9" - integrity sha512-qoE7VNS5Fo6BrmSCtVumrp0v86xoQtHIgCymymjF7C/DQ/lbVDdZ7kSREMnJD2OujKstsJmfiJiRdQcpEJKoAw== - -"@swc/core@^1.2.164": - version "1.2.164" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.2.164.tgz#158f49cf262357cdbae590a14c7a690b89e6e22a" - integrity sha512-vw+jzMIVNzSK+lURMH3kANNRLPGROMvw3NpNm9vbtyjgKz9k/qf5ULCq96mayTPB5yXa9bWGBvzvhy6PtsKtqA== +"@swc/core-android-arm-eabi@1.2.167": + version "1.2.167" + resolved "https://registry.yarnpkg.com/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.167.tgz#113b5c003237b15f1a5aa3881118a59cf56cd4cf" + integrity sha512-eu8RAPKWLC5i9b1NShXhKtu3b5qvv/XtdkKpXuAkb8Kjr6qQs3PwuWl+xw8tsuyOc8FVaEy70Bj2QtckvSk2SA== + +"@swc/core-android-arm64@1.2.167": + version "1.2.167" + resolved "https://registry.yarnpkg.com/@swc/core-android-arm64/-/core-android-arm64-1.2.167.tgz#90c16ca26e4d5a9b60120167e640ed1c2b8ed275" + integrity sha512-L6DEHm4Ki+lMokOXg/Q5kHtOXrGJZf4pHNk1UL9uOW56n602uSBn9u8AXPmKV3VBmDa+xEsFbNUUkDrfRT+txg== + +"@swc/core-darwin-arm64@1.2.167": + version "1.2.167" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.167.tgz#6b8eaa69e51957d0ae1c8326d8b158d5d000ee5d" + integrity sha512-LayaG1CMsrTxUYH6GLA6gRUzEgu2/CrIboUgx/8CoGHSFY2Acqr1CZgE9oJ16DeVud8RX6Y1DkTcrDM5P8566w== + +"@swc/core-darwin-x64@1.2.167": + version "1.2.167" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.2.167.tgz#176675e44c9318c4696302e4da39e90e9502b457" + integrity sha512-2n7bb6iqdgOiLXuS/r0MXsbZl4jGvMi+4l5Vl/6tCqyRB5SoT1gZIVDjAg4NHZYAgWMQUB1jBkSoiXkBN7kXww== + +"@swc/core-freebsd-x64@1.2.167": + version "1.2.167" + resolved "https://registry.yarnpkg.com/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.167.tgz#23da7fe2aa1b8075304b9fdc83d031571f160d7b" + integrity sha512-gEqCULsZhmNRl0SB1RWmhSne6vQDY72Q0LhT7A9Y4Qdnk32hQ+Fp5a6nhqGT+vD9SbPk0VG4VtQWivmxV2dfUg== + +"@swc/core-linux-arm-gnueabihf@1.2.167": + version "1.2.167" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.167.tgz#d61c1507d2303fd3476101a7008058b5cfd17362" + integrity sha512-P+pW01nGwItOPIeMVnOCEBYrOxOc7pnfGb1+EPjasJfyQBkvUKL1K8vo02cLYqaFgsbkDDo1zkzlxXyb52wpGg== + +"@swc/core-linux-arm64-gnu@1.2.167": + version "1.2.167" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.167.tgz#83be1b6458b3cc82a72f605e0446d5e8b376d679" + integrity sha512-tHdQH23Pc7zS8EBm5pEZ/f0SFSP9RVvL4ReWZJRkEcC8sOIazgT9vd7CJwKwQwi5pt+hKxbK2tP94oX+VP/w5A== + +"@swc/core-linux-arm64-musl@1.2.167": + version "1.2.167" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.167.tgz#1c468ef5d2e1e079c578d4127500acd1c1843a44" + integrity sha512-avEcEq7GJ/wZAo4DLDxn+ZRoXA/VUj6yVw4oNjESG3tLY5SE17pFj5Wg3TS2SRuCaG2GJhegmogKUIKJ8be/Lg== + +"@swc/core-linux-x64-gnu@1.2.167": + version "1.2.167" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.167.tgz#1644467a7234e94044ee630551ed10b24871f36f" + integrity sha512-OGnQ/YpHAvUOV4NJzRa9QlIC/IyXtDA2667Loexoru9nr+QM75JzfOBu4SbBllmBHDV0fJ5SDGFRZJfWj1Jr7w== + +"@swc/core-linux-x64-musl@1.2.167": + version "1.2.167" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.167.tgz#6ad80f3d940af991b24216ccd173dda2be2249e7" + integrity sha512-o9x1qGdriSSqJ9jTgBvbCRhsG6FqVIeEzz7failEF1rg2/RUz7r0T+Cjj8WAU6Z724GHSqQKP3U1NVMZRmrvzg== + +"@swc/core-win32-arm64-msvc@1.2.167": + version "1.2.167" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.167.tgz#e73b6cbce71883dce81b501ce25bf9cd18c16f4b" + integrity sha512-hOuO/uZCqCjZHt60NzWInv3miMNF4vunWmkCzdnfrqbZJjl5jid8Gi5NffT3E+kjJM8EwG1I/HTtpeGI11Y5SA== + +"@swc/core-win32-ia32-msvc@1.2.167": + version "1.2.167" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.167.tgz#30ed781e8980e7451f989525d8762625c407cee9" + integrity sha512-/qY4PR5SmfEFmiyeqcHQKxn+4J2Ovvw4ProSZeC83V2WTt85Cqe6nL788vRlgHXx4FIwOXYmVxUtShA9PeiLoQ== + +"@swc/core-win32-x64-msvc@1.2.167": + version "1.2.167" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.167.tgz#927778825a4ea9e9e769b144b109f31b45300444" + integrity sha512-wHhqYZG6kcEkiCJ1lGQJ4FykEYn/JLqftCTyeb6TZx9k3BcLN3RCkQrjGCX8gLclIRcKav9UhATZKEVaDfimag== + +"@swc/core@^1.2.167": + version "1.2.167" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.2.167.tgz#4e81b34b0a9d5d21fb4c1b4676880f90c40f8cee" + integrity sha512-O7o7lw4JizrNe23ozYrN0eSXEZvoD0orERc6N56R75oAvIMPIl6pqm/QoRgpA/H41MD9DD1LkF5jmZOa/UB0OA== optionalDependencies: - "@swc/core-android-arm-eabi" "1.2.164" - "@swc/core-android-arm64" "1.2.164" - "@swc/core-darwin-arm64" "1.2.164" - "@swc/core-darwin-x64" "1.2.164" - "@swc/core-freebsd-x64" "1.2.164" - "@swc/core-linux-arm-gnueabihf" "1.2.164" - "@swc/core-linux-arm64-gnu" "1.2.164" - "@swc/core-linux-arm64-musl" "1.2.164" - "@swc/core-linux-x64-gnu" "1.2.164" - "@swc/core-linux-x64-musl" "1.2.164" - "@swc/core-win32-arm64-msvc" "1.2.164" - "@swc/core-win32-ia32-msvc" "1.2.164" - "@swc/core-win32-x64-msvc" "1.2.164" + "@swc/core-android-arm-eabi" "1.2.167" + "@swc/core-android-arm64" "1.2.167" + "@swc/core-darwin-arm64" "1.2.167" + "@swc/core-darwin-x64" "1.2.167" + "@swc/core-freebsd-x64" "1.2.167" + "@swc/core-linux-arm-gnueabihf" "1.2.167" + "@swc/core-linux-arm64-gnu" "1.2.167" + "@swc/core-linux-arm64-musl" "1.2.167" + "@swc/core-linux-x64-gnu" "1.2.167" + "@swc/core-linux-x64-musl" "1.2.167" + "@swc/core-win32-arm64-msvc" "1.2.167" + "@swc/core-win32-ia32-msvc" "1.2.167" + "@swc/core-win32-x64-msvc" "1.2.167" "@swc/jest@^0.2.20": version "0.2.20" @@ -3594,15 +3594,12 @@ dependencies: defer-to-connect "^2.0.0" -"@testing-library/react-hooks@^7.0.2": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-7.0.2.tgz#3388d07f562d91e7f2431a4a21b5186062ecfee0" - integrity sha512-dYxpz8u9m4q1TuzfcUApqi8iFfR6R0FaMbr2hjZJy1uC8z+bO/K4v8Gs9eogGKYQop7QsrBTFkv/BCF7MzD2Cg== +"@testing-library/react-hooks@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-8.0.0.tgz#7d0164bffce4647f506039de0a97f6fcbd20f4bf" + integrity sha512-uZqcgtcUUtw7Z9N32W13qQhVAD+Xki2hxbTR461MKax8T6Jr8nsUvZB+vcBTkzY2nFvsUet434CsgF0ncW2yFw== dependencies: "@babel/runtime" "^7.12.5" - "@types/react" ">=16.9.0" - "@types/react-dom" ">=16.9.0" - "@types/react-test-renderer" ">=16.9.0" react-error-boundary "^3.1.0" "@tootallnate/once@1": @@ -3667,9 +3664,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== + version "7.17.0" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.0.tgz#7a9b80f712fe2052bc20da153ff1e552404d8e4b" + integrity sha512-r8aveDbd+rzGP+ykSdF3oPuTVRWRfbBiHl0rVDM2yNEmSMXfkObQLV46b4RnCv3Lra51OlfnZhkkFaDl2MIRaA== dependencies: "@babel/types" "^7.3.0" @@ -3783,10 +3780,10 @@ "@types/got" "^8" "@types/node" "*" -"@types/escape-html@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/escape-html/-/escape-html-1.0.1.tgz#b19b4646915f0ae2c306bf984dc0a59c5cfc97ba" - integrity sha512-4mI1FuUUZiuT95fSVqvZxp/ssQK9zsa86S43h9x3zPOSU9BBJ+BfDkXwuaU7BfsD+e7U0/cUUfJFk3iW2M4okA== +"@types/escape-html@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/escape-html/-/escape-html-1.0.2.tgz#072b7b13784fb3cee9c2450c22f36405983f5e3c" + integrity sha512-gaBLT8pdcexFztLSPRtriHeXY/Kn4907uOCZ4Q3lncFBkheAWOuNt53ypsF8szgxbEJ513UeBzcf4utN0EzEwA== "@types/eslint-scope@^3.7.3": version "3.7.3" @@ -3959,10 +3956,10 @@ resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== -"@types/jscodeshift@^0.11.3": - version "0.11.3" - resolved "https://registry.yarnpkg.com/@types/jscodeshift/-/jscodeshift-0.11.3.tgz#8dcab24ced39dcab1c8ff3461b3d171aafee3d48" - integrity sha512-pM0JD9kWVDH9DQp5Y6td16924V3MwZHei8P3cTeuFhXpzpk0K+iWraBZz8wF61QkFs9fZeAQNX0q8SG0+TFm2w== +"@types/jscodeshift@^0.11.4": + version "0.11.4" + resolved "https://registry.yarnpkg.com/@types/jscodeshift/-/jscodeshift-0.11.4.tgz#adb0c806df6224911a0886220c6da9689eaf9405" + integrity sha512-9VYMEWsjpYgCe3DhHbr6JhdWjUZ2yAP7BQ4MpxLogyDW2K+PW+mGzaPeS/h+hCRkebiOw6NpF3V+gKY30kjOoA== dependencies: ast-types "^0.14.1" recast "^0.20.3" @@ -4043,15 +4040,15 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@^17.0.23", "@types/node@^17.0.5": - version "17.0.23" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.23.tgz#3b41a6e643589ac6442bdbd7a4a3ded62f33f7da" - integrity sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw== +"@types/node@*", "@types/node@^17.0.24", "@types/node@^17.0.5": + version "17.0.24" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.24.tgz#20ba1bf69c1b4ab405c7a01e950c4f446b05029f" + integrity sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g== "@types/node@^16.0.0": - version "16.11.26" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.26.tgz#63d204d136c9916fb4dcd1b50f9740fe86884e47" - integrity sha512-GZ7bu5A6+4DtG7q9GsoHXy3ALcgeIHP4NnL0Vv2wu0uUB/yQex26v0tf6/na1mm0+bS9Uw+0DFex7aaKr2qawQ== + version "16.11.27" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.27.tgz#5da19383bdbeda99bc0d09cfbb88cab7297ebc51" + integrity sha512-C1pD3kgLoZ56Uuy5lhfOxie4aZlA3UMGLX9rXteq4WitEZH6Rl80mwactt9QG0w0gLFlN/kLBTFnGXtDVWvWQw== "@types/normalize-package-data@^2.4.0", "@types/normalize-package-data@^2.4.1": version "2.4.1" @@ -4084,9 +4081,9 @@ integrity sha512-O397rnSS9iQI4OirieAtsDqvCj4+3eY1J+EPdNTKuHuRWIfUoGyzX294o8C4KJYaLqgSrd2o60c5EqCU8Zv02g== "@types/prettier@^2.1.5": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.4.tgz#5d9b63132df54d8909fce1c3f8ca260fdd693e17" - integrity sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA== + version "2.6.0" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.0.tgz#efcbd41937f9ae7434c714ab698604822d890759" + integrity sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw== "@types/prismjs@^1.26.0": version "1.26.0" @@ -4126,10 +4123,10 @@ "@types/webpack" "^4" "@types/webpack-dev-server" "3" -"@types/react-dom@>=16.9.0", "@types/react-dom@^18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.0.tgz#b13f8d098e4b0c45df4f1ed123833143b0c71141" - integrity sha512-49897Y0UiCGmxZqpC8Blrf6meL8QUla6eb+BBhn69dTXlmuOlzkfr7HHY/O8J25e1lTUMs+YYxSlVDAaGHCOLg== +"@types/react-dom@^18.0.1": + version "18.0.1" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.1.tgz#cb3cc10ea91141b12c71001fede1017acfbce4db" + integrity sha512-jCwTXvHtRLiyVvKm9aEdHXs8rflVOGd5Sl913JZrPshfXjn8NYsTNZOz70bCsA31IR0TOqwi3ad+X4tSCBoMTw== dependencies: "@types/react" "*" @@ -4159,17 +4156,17 @@ "@types/history" "^4.7.11" "@types/react" "*" -"@types/react-test-renderer@>=16.9.0", "@types/react-test-renderer@^17.0.1": - version "17.0.1" - resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-17.0.1.tgz#3120f7d1c157fba9df0118dae20cb0297ee0e06b" - integrity sha512-3Fi2O6Zzq/f3QR9dRnlnHso9bMl7weKCviFmfF6B4LS1Uat6Hkm15k0ZAQuDz+UBq6B3+g+NM6IT2nr5QgPzCw== +"@types/react-test-renderer@^18.0.0": + version "18.0.0" + resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-18.0.0.tgz#7b7f69ca98821ea5501b21ba24ea7b6139da2243" + integrity sha512-C7/5FBJ3g3sqUahguGi03O79b8afNeSD6T8/GU50oQrJCU0bVCCGQHaGKUbg2Ce8VQEEqTw8/HiS6lXHHdgkdQ== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@>=16.9.0", "@types/react@^18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.0.tgz#4be8aa3a2d04afc3ac2cc1ca43d39b0bd412890c" - integrity sha512-7+K7zEQYu7NzOwQGLR91KwWXXDzmTFODRVizJyIALf6RfLv2GDpqpknX64pvRVILXCpXi7O/pua8NGk44dLvJw== +"@types/react@*", "@types/react@^18.0.5": + version "18.0.5" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.5.tgz#1a4d4b705ae6af5aed369dec22800b20f89f5301" + integrity sha512-UPxNGInDCIKlfqBrm8LDXYWNfLHwIdisWcsH5GpMyGjhEDLFgTtlRBaoWuCua9HcyuE0rMkmAeZ3FXV1pYLIYQ== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -4204,10 +4201,10 @@ resolved "https://registry.yarnpkg.com/@types/rtl-detect/-/rtl-detect-1.0.0.tgz#5791e18a111f2b8b5b328160af97f3991a5697a5" integrity sha512-lyYh44YgrejEK9/5rhASghvRUOxrSJyyyQmqK7L6F/V5qs6PY1RfCi1VbjSkY6kuDt7lzQyhd006slhda4Oypg== -"@types/rtlcss@^3.1.3": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@types/rtlcss/-/rtlcss-3.1.3.tgz#c73f372ec6b94c6b8d7652588559ee88da4f92a8" - integrity sha512-4bYHYzUeHMqnWKDxjJZfriqKJC+KZ91xyB+HoyPCiCzHfvUFcUZZ1SWvsIosPz/E0zsLgR11KHQgZs8fwqkI4Q== +"@types/rtlcss@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/rtlcss/-/rtlcss-3.1.4.tgz#8b67938356507f68f1b529396a70f586f6eff2a7" + integrity sha512-R+iDmWdCzCp/6T2vOC3GpCbhPArvShXlStAxcw0UcocS/7GTREHcFyH6+xFlXAXMSgp6F+Ab9Q26Fjdu+2a4ww== dependencies: postcss "^8.2.x" @@ -4250,10 +4247,10 @@ "@types/mime" "^1" "@types/node" "*" -"@types/sharp@^0.30.1": - version "0.30.1" - resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.30.1.tgz#31bd128f2437e8fc31424eb23d8284aa127bfa8d" - integrity sha512-LxzQsKo2YtvA2DlqACNXmlbLGMVJCSU/HhV4N9RrStClUEf02iN+AakD/zUOpZkbo1OG+lHk2LeqoHedLwln2w== +"@types/sharp@^0.30.2": + version "0.30.2" + resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.30.2.tgz#df5ff34140b3bad165482e6f3d26b08e42a0503a" + integrity sha512-uLCBwjDg/BTcQit0dpNGvkIjvH3wsb8zpaJePCjvONBBSfaKHoxXBIuq1MT8DMQEfk2fKYnpC9QExCgFhkGkMQ== dependencies: "@types/node" "*" @@ -4396,14 +4393,14 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.18.0.tgz#950df411cec65f90d75d6320a03b2c98f6c3af7d" - integrity sha512-tzrmdGMJI/uii9/V6lurMo4/o+dMTKDH82LkNjhJ3adCW22YQydoRs5MwTiqxGF9CSYxPxQ7EYb4jLNlIs+E+A== +"@typescript-eslint/eslint-plugin@^5.19.0": + version "5.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.19.0.tgz#9608a4b6d0427104bccf132f058cba629a6553c0" + integrity sha512-w59GpFqDYGnWFim9p6TGJz7a3qWeENJuAKCqjGSx+Hq/bwq3RZwXYqy98KIfN85yDqz9mq6QXiY5h0FjGQLyEg== dependencies: - "@typescript-eslint/scope-manager" "5.18.0" - "@typescript-eslint/type-utils" "5.18.0" - "@typescript-eslint/utils" "5.18.0" + "@typescript-eslint/scope-manager" "5.19.0" + "@typescript-eslint/type-utils" "5.19.0" + "@typescript-eslint/utils" "5.19.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -4411,30 +4408,30 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.18.0.tgz#2bcd4ff21df33621df33e942ccb21cb897f004c6" - integrity sha512-+08nYfurBzSSPndngnHvFw/fniWYJ5ymOrn/63oMIbgomVQOvIDhBoJmYZ9lwQOCnQV9xHGvf88ze3jFGUYooQ== +"@typescript-eslint/parser@^5.19.0": + version "5.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.19.0.tgz#05e587c1492868929b931afa0cb5579b0f728e75" + integrity sha512-yhktJjMCJX8BSBczh1F/uY8wGRYrBeyn84kH6oyqdIJwTGKmzX5Qiq49LRQ0Jh0LXnWijEziSo6BRqny8nqLVQ== dependencies: - "@typescript-eslint/scope-manager" "5.18.0" - "@typescript-eslint/types" "5.18.0" - "@typescript-eslint/typescript-estree" "5.18.0" + "@typescript-eslint/scope-manager" "5.19.0" + "@typescript-eslint/types" "5.19.0" + "@typescript-eslint/typescript-estree" "5.19.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.18.0.tgz#a7d7b49b973ba8cebf2a3710eefd457ef2fb5505" - integrity sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ== +"@typescript-eslint/scope-manager@5.19.0": + version "5.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz#97e59b0bcbcb54dbcdfba96fc103b9020bbe9cb4" + integrity sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g== dependencies: - "@typescript-eslint/types" "5.18.0" - "@typescript-eslint/visitor-keys" "5.18.0" + "@typescript-eslint/types" "5.19.0" + "@typescript-eslint/visitor-keys" "5.19.0" -"@typescript-eslint/type-utils@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.18.0.tgz#62dbfc8478abf36ba94a90ddf10be3cc8e471c74" - integrity sha512-vcn9/6J5D6jtHxpEJrgK8FhaM8r6J1/ZiNu70ZUJN554Y3D9t3iovi6u7JF8l/e7FcBIxeuTEidZDR70UuCIfA== +"@typescript-eslint/type-utils@5.19.0": + version "5.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.19.0.tgz#80f2125b0dfe82494bbae1ea99f1c0186d420282" + integrity sha512-O6XQ4RI4rQcBGshTQAYBUIGsKqrKeuIOz9v8bckXZnSeXjn/1+BDZndHLe10UplQeJLXDNbaZYrAytKNQO2T4Q== dependencies: - "@typescript-eslint/utils" "5.18.0" + "@typescript-eslint/utils" "5.19.0" debug "^4.3.2" tsutils "^3.21.0" @@ -4443,18 +4440,18 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== -"@typescript-eslint/types@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.18.0.tgz#4f0425d85fdb863071680983853c59a62ce9566e" - integrity sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw== +"@typescript-eslint/types@5.19.0": + version "5.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.19.0.tgz#12d3d600d754259da771806ee8b2c842d3be8d12" + integrity sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w== -"@typescript-eslint/typescript-estree@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz#6498e5ee69a32e82b6e18689e2f72e4060986474" - integrity sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ== +"@typescript-eslint/typescript-estree@5.19.0": + version "5.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz#fc987b8f62883f9ea6a5b488bdbcd20d33c0025f" + integrity sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw== dependencies: - "@typescript-eslint/types" "5.18.0" - "@typescript-eslint/visitor-keys" "5.18.0" + "@typescript-eslint/types" "5.19.0" + "@typescript-eslint/visitor-keys" "5.19.0" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" @@ -4474,15 +4471,15 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.18.0", "@typescript-eslint/utils@^5.10.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.18.0.tgz#27fc84cf95c1a96def0aae31684cb43a37e76855" - integrity sha512-+hFGWUMMri7OFY26TsOlGa+zgjEy1ssEipxpLjtl4wSll8zy85x0GrUSju/FHdKfVorZPYJLkF3I4XPtnCTewA== +"@typescript-eslint/utils@5.19.0", "@typescript-eslint/utils@^5.10.0": + version "5.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.19.0.tgz#fe87f1e3003d9973ec361ed10d36b4342f1ded1e" + integrity sha512-ZuEckdupXpXamKvFz/Ql8YnePh2ZWcwz7APICzJL985Rp5C2AYcHO62oJzIqNhAMtMK6XvrlBTZeNG8n7gS3lQ== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.18.0" - "@typescript-eslint/types" "5.18.0" - "@typescript-eslint/typescript-estree" "5.18.0" + "@typescript-eslint/scope-manager" "5.19.0" + "@typescript-eslint/types" "5.19.0" + "@typescript-eslint/typescript-estree" "5.19.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" @@ -4494,12 +4491,12 @@ "@typescript-eslint/types" "4.33.0" eslint-visitor-keys "^2.0.0" -"@typescript-eslint/visitor-keys@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.18.0.tgz#c7c07709823804171d569017f3b031ced7253e60" - integrity sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg== +"@typescript-eslint/visitor-keys@5.19.0": + version "5.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz#c84ebc7f6c744707a361ca5ec7f7f64cd85b8af6" + integrity sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ== dependencies: - "@typescript-eslint/types" "5.18.0" + "@typescript-eslint/types" "5.19.0" eslint-visitor-keys "^3.0.0" "@vercel/nft@^0.17.0": @@ -4664,9 +4661,9 @@ JSONStream@^1.0.4: through ">=2.2.7 <3" abab@^2.0.3, abab@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" - integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== abbrev@1: version "1.1.1" @@ -5008,12 +5005,12 @@ archiver-utils@^2.1.0: readable-stream "^2.0.0" archiver@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.0.tgz#dd3e097624481741df626267564f7dd8640a45ba" - integrity sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg== + version "5.3.1" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6" + integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w== dependencies: archiver-utils "^2.1.0" - async "^3.2.0" + async "^3.2.3" buffer-crc32 "^0.2.1" readable-stream "^3.6.0" readdir-glob "^1.0.0" @@ -5145,22 +5142,24 @@ array-unique@^0.3.2: integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== array.prototype.flat@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" - integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== + version "1.3.0" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b" + integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.19.0" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" array.prototype.flatmap@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz#908dc82d8a406930fdf38598d51e7411d18d4446" - integrity sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA== + version "1.3.0" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" + integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.19.0" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" arrify@^1.0.1: version "1.0.1" @@ -5232,13 +5231,13 @@ async@0.9.x: integrity sha512-l6ToIJIotphWahxxHyzK9bnLR6kM4jJIIgLShZeqLY7iboHoGkdgFl7W2/Ivi4SkMJYGKqW8vSuk0uKUj6qsSw== async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + version "2.6.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" -async@^3.2.0, async@^3.2.3: +async@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== @@ -5683,7 +5682,7 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.17.5, browserslist@^4.18.1, browserslist@^4.19.1, browserslist@^4.20.2: +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.17.5, browserslist@^4.18.1, browserslist@^4.20.2: version "4.20.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== @@ -5963,9 +5962,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001317: - version "1.0.30001327" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001327.tgz#c1546d7d7bb66506f0ccdad6a7d07fc6d668c858" - integrity sha512-1/Cg4jlD9qjZzhbzkzEaAC2JHsP0WrOc8Rd/3a3LuajGzGWR/hD7TVyvq99VqmTy99eVh8Zkmdq213OgvgXx7w== + version "1.0.30001332" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz#39476d3aa8d83ea76359c70302eafdd4a1d727dd" + integrity sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw== caseless@~0.12.0: version "0.12.0" @@ -6258,14 +6257,14 @@ cli-spinners@^2.5.0: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== -cli-table3@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.1.tgz#36ce9b7af4847f288d3cdd081fbd09bf7bd237b8" - integrity sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA== +cli-table3@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a" + integrity sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw== dependencies: string-width "^4.2.0" optionalDependencies: - colors "1.4.0" + "@colors/colors" "1.5.0" cli-truncate@^0.2.1: version "0.2.1" @@ -6530,9 +6529,9 @@ commander@^8.0.0, commander@^8.3.0: integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== commander@^9.0.0, commander@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.1.0.tgz#a6b263b2327f2e188c6402c42623327909f2dbec" - integrity sha512-i0/MaqBtdbnJ4XQs4Pmyb+oFQl+q0lsAmokVUH92SlSw4fkeAcG3bVon+Qt7hmtF+u3Het6o4VgrcY3qAoEB6w== + version "9.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.2.0.tgz#6e21014b2ed90d8b7c9647230d8b7a94a4a419a9" + integrity sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w== comment-json@^4.2.2: version "4.2.2" @@ -6875,27 +6874,27 @@ copy-webpack-plugin@^10.2.4: serialize-javascript "^6.0.0" core-js-compat@^3.20.2, core-js-compat@^3.21.0: - version "3.21.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.1.tgz#cac369f67c8d134ff8f9bd1623e3bc2c42068c82" - integrity sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g== + version "3.22.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.0.tgz#7ce17ab57c378be2c717c7c8ed8f82a50a25b3e4" + integrity sha512-WwA7xbfRGrk8BGaaHlakauVXrlYmAIkk8PNGb1FDQS+Rbrewc3pgFfwJFRw6psmJVAll7Px9UHRYE16oRQnwAQ== dependencies: - browserslist "^4.19.1" + browserslist "^4.20.2" semver "7.0.0" core-js-pure@^3.20.2: - version "3.21.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.21.1.tgz#8c4d1e78839f5f46208de7230cebfb72bc3bdb51" - integrity sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ== + version "3.22.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.22.0.tgz#0eaa54b6d1f4ebb4d19976bb4916dfad149a3747" + integrity sha512-ylOC9nVy0ak1N+fPIZj00umoZHgUVqmucklP5RT5N+vJof38klKn8Ze6KGyvchdClvEBr6LcQqJpI216LUMqYA== core-js@^2.4.1: version "2.6.12" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-js@^3.21.1: - version "3.21.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94" - integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig== +core-js@^3.22.0: + version "3.22.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.0.tgz#b52007870c5e091517352e833b77f0b2d2b259f3" + integrity sha512-8h9jBweRjMiY+ORO7bdWSeWfHhLPO7whobj7Z2Bl0IDo00C228EdGgH7FE4jGumbEjzcFfkfW8bXgdkEDhnwHQ== core-util-is@1.0.2: version "1.0.2" @@ -7017,41 +7016,41 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== -cspell-gitignore@^5.19.6: - version "5.19.6" - resolved "https://registry.yarnpkg.com/cspell-gitignore/-/cspell-gitignore-5.19.6.tgz#e87575906a7d79c8536de4c63fe3416614718329" - integrity sha512-ZhrJyGb5xMZAP0laGbG6ihmngWWGJoTwpIbe9lh4XyceyZ4NfIEewu0xii9eCqM7iedLDgZ86UF45MTCwgo3Ag== +cspell-gitignore@^5.19.7: + version "5.19.7" + resolved "https://registry.yarnpkg.com/cspell-gitignore/-/cspell-gitignore-5.19.7.tgz#08c073fd3fda72760816c2283822170f4c102720" + integrity sha512-rEqlN6wigNj4P/4Z3QCI1P56KhKkPtXNBpGMXC5CbxIK/NTtn3cLaqHKIZp92pypEnU077lxSCSqRRYCPbg/6A== dependencies: - cspell-glob "^5.19.6" + cspell-glob "^5.19.7" find-up "^5.0.0" -cspell-glob@^5.19.6: - version "5.19.6" - resolved "https://registry.yarnpkg.com/cspell-glob/-/cspell-glob-5.19.6.tgz#0bb4d79fdacf6e400ac2aed5639ebdf7a77e75a6" - integrity sha512-NwTjdIAdNi2E8YEgUKg5OO9mjeaL423eMC1/NNgKi/Eb1cdHAImEORk+L9Vd0wvppAc+54hJ0slSroqfXkPUvw== +cspell-glob@^5.19.7: + version "5.19.7" + resolved "https://registry.yarnpkg.com/cspell-glob/-/cspell-glob-5.19.7.tgz#67a43c566addd2f6cba579f6eae4bbefbf9eb364" + integrity sha512-fqlF7oqYTT2A3SRfQr7gzN21fwPoRO9IGKec1L3QeGkni5UPDxGrM2a5z+oLaYs2GN5pEf29BXVlN7dq0jVxIg== dependencies: micromatch "^4.0.5" -cspell-io@^5.19.6: - version "5.19.6" - resolved "https://registry.yarnpkg.com/cspell-io/-/cspell-io-5.19.6.tgz#c9b2103d9a623bac2af7034b726b28f3a2e5c60b" - integrity sha512-rHjGoa26XGeGtFSrOaFfI7cLVcYRhtairvmn6u+C4WDJ5hak/mZ0J8Dpt0pOZCZb/U4EBOox+9GU1+s8IYLaJQ== +cspell-io@^5.19.7: + version "5.19.7" + resolved "https://registry.yarnpkg.com/cspell-io/-/cspell-io-5.19.7.tgz#ce49d4aaeae19206ccd29c5d90599fa675ea5bac" + integrity sha512-SEy8XkuOhvwleGjh336EBYj5HlH1J5FrCI5GxxGiU2g8zvWlBPQmaCfQPPO4tnDrrXtK76rZvolBu1jfCmWwQA== -cspell-lib@^5.19.6: - version "5.19.6" - resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-5.19.6.tgz#777a582b21fba40cdc8539b6d2b8f937a4158302" - integrity sha512-gZZ0VDBr6iZrQJ2SFhZ2NaXLIPiP6lNHqB1kn8Gv7irglG8YU2aKdu3E3yAwfDyxEOmBq+1ZoazCZdn1Lvt32g== +cspell-lib@^5.19.7: + version "5.19.7" + resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-5.19.7.tgz#91edde38af793bcfb69f5fddf59db6ce5e6fe0cb" + integrity sha512-d4ewH1RBgcBE9NqAh0FexmVQ6YvkDQv9XOysskeDH+G9wm975owENUU/mBd8AyBt2b4YXL/FoLtaKd/7MRoNDA== dependencies: - "@cspell/cspell-bundled-dicts" "^5.19.6" - "@cspell/cspell-pipe" "^5.19.6" - "@cspell/cspell-types" "^5.19.6" + "@cspell/cspell-bundled-dicts" "^5.19.7" + "@cspell/cspell-pipe" "^5.19.7" + "@cspell/cspell-types" "^5.19.7" clear-module "^4.1.2" comment-json "^4.2.2" configstore "^5.0.1" cosmiconfig "^7.0.1" - cspell-glob "^5.19.6" - cspell-io "^5.19.6" - cspell-trie-lib "^5.19.6" + cspell-glob "^5.19.7" + cspell-io "^5.19.7" + cspell-trie-lib "^5.19.7" fast-equals "^3.0.1" find-up "^5.0.0" fs-extra "^10.0.1" @@ -7062,26 +7061,26 @@ cspell-lib@^5.19.6: vscode-languageserver-textdocument "^1.0.4" vscode-uri "^3.0.3" -cspell-trie-lib@^5.19.6: - version "5.19.6" - resolved "https://registry.yarnpkg.com/cspell-trie-lib/-/cspell-trie-lib-5.19.6.tgz#76a94b9138e6ae2e8b3b5d12408558b22caab7c0" - integrity sha512-2nICB3sa10B+U9kUPP66Lr1vbu97VFiyz2eYaFCP+n19H2MlrCybgmdGU8F4f5l/CWVxri3HNYpdoqGfzR9h3w== +cspell-trie-lib@^5.19.7: + version "5.19.7" + resolved "https://registry.yarnpkg.com/cspell-trie-lib/-/cspell-trie-lib-5.19.7.tgz#ce3841f95ace03730ce896089d34c92b5e2d343d" + integrity sha512-qr0HS2hGuyIQhDGG5li0nqIjVi039iPRHR8wpeDoSO0YIBCll22i/VlvW3CSmqXLaP5RRoAc9txiZkIGob6DkQ== dependencies: - "@cspell/cspell-pipe" "^5.19.6" + "@cspell/cspell-pipe" "^5.19.7" fs-extra "^10.0.1" gensequence "^3.1.1" -cspell@^5.19.6: - version "5.19.6" - resolved "https://registry.yarnpkg.com/cspell/-/cspell-5.19.6.tgz#8f68ab2a0569110630d1e0f74e8782fd947f1900" - integrity sha512-oEKyQSkYOO34VldGZ/0+u+IrJWZvsyosize9VSz6Wz/wbp/k4KdFy9oA/u4bZlYa5S4v/CgIGpWK26agcveHUg== +cspell@^5.19.7: + version "5.19.7" + resolved "https://registry.yarnpkg.com/cspell/-/cspell-5.19.7.tgz#4f6c6ff8baac1f3ace6693c63280a3b7a6b669ff" + integrity sha512-7/y+k708tv68+5lpN23Ew1/djx/EnG838zZ8W2ZDWCc6uRHutqRhpxsjMZr/MT3RHN44iKUj2MgT5+sfnhr4eg== dependencies: - "@cspell/cspell-pipe" "^5.19.6" + "@cspell/cspell-pipe" "^5.19.7" chalk "^4.1.2" commander "^9.1.0" - cspell-gitignore "^5.19.6" - cspell-glob "^5.19.6" - cspell-lib "^5.19.6" + cspell-gitignore "^5.19.7" + cspell-glob "^5.19.7" + cspell-lib "^5.19.7" fast-json-stable-stringify "^2.1.0" file-entry-cache "^6.0.1" fs-extra "^10.0.1" @@ -7508,11 +7507,12 @@ define-lazy-prop@^2.0.0: integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== dependencies: - object-keys "^1.0.12" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" define-property@^0.2.5: version "0.2.5" @@ -7790,9 +7790,9 @@ dom-serializer@0: entities "^2.0.0" dom-serializer@^1.0.1, dom-serializer@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" - integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== dependencies: domelementtype "^2.0.1" domhandler "^4.2.0" @@ -7963,9 +7963,9 @@ ejs@^3.1.6: jake "^10.6.1" electron-to-chromium@^1.4.84: - version "1.4.106" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.106.tgz#e7a3bfa9d745dd9b9e597616cb17283cc349781a" - integrity sha512-ZYfpVLULm67K7CaaGP7DmjyeMY4naxsbTy+syVVxT6QHI1Ww8XbJjmr9fDckrhq44WzCrcC5kH3zGpdusxwwqg== + version "1.4.111" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.111.tgz#897613f6504f3f17c9381c7499a635b413e4df4e" + integrity sha512-/s3+fwhKf1YK4k7btOImOzCQLpUjS6MaPf0ODTNuT4eTM1Bg4itBpLkydhOzJmpmH6Z9eXFyuuK5czsmzRzwtw== elegant-spinner@^1.0.1: version "1.0.1" @@ -8027,9 +8027,9 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1, end-of-stream@ once "^1.4.0" enhanced-resolve@^5.9.2: - version "5.9.2" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz#0224dcd6a43389ebfb2d55efee517e5466772dd9" - integrity sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA== + version "5.9.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88" + integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -8078,10 +8078,10 @@ error-stack-parser@^2.0.2, error-stack-parser@^2.0.3, error-stack-parser@^2.0.6: dependencies: stackframe "^1.1.1" -es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.2.tgz#8f7b696d8f15b167ae3640b4060670f3d054143f" - integrity sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w== +es-abstract@^1.19.1, es-abstract@^1.19.2: + version "1.19.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.5.tgz#a2cb01eb87f724e815b278b0dd0d00f36ca9a7f1" + integrity sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -8094,7 +8094,7 @@ es-abstract@^1.19.0, es-abstract@^1.19.1: is-callable "^1.2.4" is-negative-zero "^2.0.2" is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" + is-shared-array-buffer "^1.0.2" is-string "^1.0.7" is-weakref "^1.0.2" object-inspect "^1.12.0" @@ -8109,6 +8109,13 @@ es-module-lexer@^0.9.0: resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -8780,9 +8787,9 @@ fd-slicer@~1.1.0: pend "~1.2.0" fecha@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce" - integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q== + version "4.2.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== feed@^4.2.2: version "4.2.2" @@ -9037,9 +9044,9 @@ flatten@^1.0.2: integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== flow-parser@0.*: - version "0.175.1" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.175.1.tgz#835a0ea46346c8bdd947e70b2814c2b613beb238" - integrity sha512-gYes5/nxeLYiu02MMb+WH4KaOIYrVcTVIuV9M4aP/4hqJ+zULxxS/In+WEj/tEBsQ+8/wSHo9IDWKQL1FhrLmA== + version "0.176.2" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.176.2.tgz#e04ac9f766ea9491fd515c84a82ef360e3a0c659" + integrity sha512-unqoh60i18C67h2rvK0SCFUBac/waUcx7CF1a5E4D0Cwj1NErTP42RF7yb7+dy25Tpyzt7uwVtXw13Wr17VzWA== flush-write-stream@^2.0.0: version "2.0.0" @@ -9175,10 +9182,10 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.1.tgz#27de43b4320e833f6867cc044bfce29fdf0ef3b8" - integrity sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag== +fs-extra@^10.0.1, fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -9248,6 +9255,11 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== +functions-have-names@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21" + integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA== + fuzzy@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8" @@ -9813,6 +9825,13 @@ has-own-prop@^2.0.0: resolved "https://registry.yarnpkg.com/has-own-prop/-/has-own-prop-2.0.0.tgz#f0f95d58f65804f5d218db32563bb85b8e0417af" integrity sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ== +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + has-symbol-support-x@^1.4.1: version "1.4.2" resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" @@ -10124,7 +10143,7 @@ html-minifier-terser@^6.0.2, html-minifier-terser@^6.1.0: relateurl "^0.2.7" terser "^5.10.0" -html-tags@^3.1.0, html-tags@^3.2.0: +html-tags@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.2.0.tgz#dbb3518d20b726524e4dd43de397eb0a95726961" integrity sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg== @@ -10269,9 +10288,9 @@ http-signature@~1.2.0: sshpk "^1.7.0" https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" debug "4" @@ -10956,7 +10975,7 @@ is-root@^2.1.0: resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== -is-shared-array-buffer@^1.0.1: +is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== @@ -12074,10 +12093,10 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -lint-staged@^12.3.7: - version "12.3.7" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.3.7.tgz#ad0e2014302f704f9cf2c0ebdb97ac63d0f17be0" - integrity sha512-/S4D726e2GIsDVWIk1XGvheCaDm1SJRQp8efamZFWJxQMVEbOwSysp7xb49Oo73KYCdy97mIWinhlxcoNqIfIQ== +lint-staged@^12.3.8: + version "12.3.8" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.3.8.tgz#ee3fe2e16c9d76f99d8348072900b017d6d76901" + integrity sha512-0+UpNaqIwKRSGAFOCcpuYNIv/j5QGVC+xUVvmSdxHO+IfIGoHbFLo3XcPmV/LLnsVj5EAncNHVtlITSoY5qWGQ== dependencies: cli-truncate "^3.1.0" colorette "^2.0.16" @@ -12178,9 +12197,9 @@ load-json-file@^6.2.0: type-fest "^0.6.0" loader-runner@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" - integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== loader-utils@^2.0.0: version "2.0.2" @@ -12532,11 +12551,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.4.0: - version "7.8.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.8.0.tgz#649aaeb294a56297b5cbc5d70f198dcc5ebe5747" - integrity sha512-AmXqneQZL3KZMIgBpaPTeI6pfwh+xQ2vutMsyqOu1TBdEXFZgpG/80wuJ531w2ZN7TI0/oc8CPxzh/DKQudZqg== - luxon@^1.28.0: version "1.28.0" resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.28.0.tgz#e7f96daad3938c06a62de0fb027115d251251fbf" @@ -13258,12 +13272,12 @@ nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0: resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz#26c8a3cee6cc05fbcf1e333cd2fc3e003326c0b5" integrity sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw== -netlify-cli@^9.16.4: - version "9.16.4" - resolved "https://registry.yarnpkg.com/netlify-cli/-/netlify-cli-9.16.4.tgz#69f43a4b52442c6457d1cc62325873bf1581d1fb" - integrity sha512-sTIo3GpwnxFl23xNBLTfqRGcboOt/RKLFPUwUVhQjf6wzk6vLpFjmqHgN9sBx9y/m2E6m8UZ5PZ69m4Hb8z96A== +netlify-cli@^9.16.6: + version "9.16.6" + resolved "https://registry.yarnpkg.com/netlify-cli/-/netlify-cli-9.16.6.tgz#66521c21c8a79cdfedd807416983f9403086415b" + integrity sha512-JXi/ei/E0fHKf5ThtPfqxiV3lD+k/k+/iKtcrMki9rCLWW8MZwO/VvM7mfCOpx77+gRHvgwumrb7yaFwYW48DQ== dependencies: - "@netlify/build" "^26.5.2" + "@netlify/build" "^26.5.3" "@netlify/config" "^17.0.20" "@netlify/framework-info" "^9.0.2" "@netlify/local-functions-proxy" "^1.1.1" @@ -13556,9 +13570,9 @@ node-pre-gyp@^0.13.0: tar "^4" node-releases@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" - integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.3.tgz#225ee7488e4a5e636da8da52854844f9d716ca96" + integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw== node-source-walk@^4.0.0, node-source-walk@^4.2.0, node-source-walk@^4.2.2: version "4.3.0" @@ -13882,7 +13896,7 @@ object-inspect@^1.12.0, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== -object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -14976,7 +14990,7 @@ postcss-safe-parser@^6.0.0: resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz#bb4c29894171a94bc5c996b9a30317ef402adaa1" integrity sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ== -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: version "6.0.10" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== @@ -15442,10 +15456,10 @@ react-base16-styling@^0.6.0: lodash.flow "^3.3.0" pure-color "^1.2.0" -react-dev-utils@^12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.0.tgz#4eab12cdb95692a077616770b5988f0adf806526" - integrity sha512-xBQkitdxozPxt1YZ9O1097EJiVpwHr9FoAuEVURCKV0Av8NBERovJauzP7bo1ThvuhZ4shsQ1AJiu4vQpoT1AQ== +react-dev-utils@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" + integrity sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ== dependencies: "@babel/code-frame" "^7.16.0" address "^1.1.2" @@ -15466,7 +15480,7 @@ react-dev-utils@^12.0.0: open "^8.4.0" pkg-up "^3.1.0" prompts "^2.4.2" - react-error-overlay "^6.0.10" + react-error-overlay "^6.0.11" recursive-readdir "^2.2.2" shell-quote "^1.7.3" strip-ansi "^6.0.1" @@ -15488,20 +15502,20 @@ react-error-boundary@^3.1.0: dependencies: "@babel/runtime" "^7.12.5" -react-error-overlay@^6.0.10: - version "6.0.10" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.10.tgz#0fe26db4fa85d9dbb8624729580e90e7159a59a6" - integrity sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA== +react-error-overlay@^6.0.11: + version "6.0.11" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" + integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== react-fast-compare@^3.0.1, react-fast-compare@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== -react-helmet-async@*, react-helmet-async@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.2.3.tgz#57326a69304ea3293036eafb49475e9ba454cb37" - integrity sha512-mCk2silF53Tq/YaYdkl2sB+/tDoPnaxN7dFS/6ZLJb/rhUY2EWGI5Xj2b4jHppScMqY45MbgPSwTxDchKpZ5Kw== +react-helmet-async@*, react-helmet-async@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz#7bd5bf8c5c69ea9f02f6083f14ce33ef545c222e" + integrity sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg== dependencies: "@babel/runtime" "^7.12.5" invariant "^2.2.4" @@ -15561,7 +15575,7 @@ react-loadable-ssr-addon-v5-slorber@^1.0.1: react-medium-image-zoom@^4.3.7: version "4.3.7" - resolved "https://registry.npmmirror.com/react-medium-image-zoom/-/react-medium-image-zoom-4.3.7.tgz#06c0771401c6de312a85843d1feebd15641a969b" + resolved "https://registry.yarnpkg.com/react-medium-image-zoom/-/react-medium-image-zoom-4.3.7.tgz#06c0771401c6de312a85843d1feebd15641a969b" integrity sha512-Vg1M8CIX1EfhfSsmNc2tHP+8KjPDo9e5/zEDaSsfeTBHI82wjEvW3Lgb4k3jdWILPZVOWhM+7QHyDaAzghlvaQ== dependencies: focus-options-polyfill "1.2.0" @@ -15956,12 +15970,13 @@ regexp-ast-analysis@^0.3.0: regexpp "^3.2.0" regexp.prototype.flags@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307" - integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ== + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" + functions-have-names "^1.2.2" regexpp@^3.2.0: version "3.2.0" @@ -16432,9 +16447,9 @@ rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2: estree-walker "^0.6.1" rollup@^2.23.1, rollup@^2.43.1: - version "2.70.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.70.1.tgz#824b1f1f879ea396db30b0fc3ae8d2fead93523e" - integrity sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA== + version "2.70.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.70.2.tgz#808d206a8851628a065097b7ba2053bd83ba0c0d" + integrity sha512-EitogNZnfku65I1DD5Mxe8JYRUCy0hkK5X84IlDtUs+O6JRMpRciXTzyCUuX11b5L5pvjH+OmFXiQ3XjabcXgg== optionalDependencies: fsevents "~2.3.2" @@ -16638,12 +16653,12 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.0.0, semver@^7.1.1, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6: - version "7.3.6" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.6.tgz#5d73886fb9c0c6602e79440b97165c29581cbb2b" - integrity sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w== +semver@^7.0.0, semver@^7.1.1, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: - lru-cache "^7.4.0" + lru-cache "^6.0.0" send@0.17.2: version "0.17.2" @@ -17296,9 +17311,9 @@ statuses@2.0.1: integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== std-env@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.0.1.tgz#bc4cbc0e438610197e34c2d79c3df30b491f5182" - integrity sha512-mC1Ps9l77/97qeOZc+HrOL7TIaOboHqMZ24dGVQrlxFcpPpfCHpH+qfUT7Dz+6mlG8+JPA1KfBQo19iC/+Ngcw== + version "3.1.1" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.1.1.tgz#1f19c4d3f6278c52efd08a94574a2a8d32b7d092" + integrity sha512-/c645XdExBypL01TpFKiG/3RAa/Qmu+zRi0MwAmrdEkwHNuN0ebo8ccAXBBDa5Z0QOJgBskUIbuCK91x0sCVEw== strict-uri-encode@^1.0.0: version "1.1.0" @@ -17579,10 +17594,10 @@ stylelint-config-standard@^25.0.0: dependencies: stylelint-config-recommended "^7.0.0" -stylelint@^14.6.1: - version "14.6.1" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.6.1.tgz#aff137b0254515fc36b91921d88a3eb2edc194bf" - integrity sha512-FfNdvZUZdzh9KDQxDnO7Opp+prKh8OQVuSW8S13cBtxrooCbm6J6royhUeb++53WPMt04VB+ZbOz/QmzAijs6Q== +stylelint@^14.6.1, stylelint@^14.7.0: + version "14.7.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.7.0.tgz#f2c4457a63ba813d72856818ab7d4141d2bdd6ab" + integrity sha512-vAVPAYaHhcexOiuvym0S64UWIIonMKgYz1Eh+SZgXKkKFLL+wwBzzWGH7Bdnk/HLyH3KlrX+tlisFdEG8ik+Lw== dependencies: balanced-match "^2.0.0" colord "^2.9.2" @@ -17597,7 +17612,7 @@ stylelint@^14.6.1: global-modules "^2.0.0" globby "^11.1.0" globjoin "^0.1.4" - html-tags "^3.1.0" + html-tags "^3.2.0" ignore "^5.2.0" import-lazy "^4.0.0" imurmurhash "^0.1.4" @@ -17605,7 +17620,7 @@ stylelint@^14.6.1: known-css-properties "^0.24.0" mathml-tag-names "^2.1.3" meow "^9.0.0" - micromatch "^4.0.4" + micromatch "^4.0.5" normalize-path "^3.0.0" normalize-selector "^0.2.0" picocolors "^1.0.0" @@ -17613,7 +17628,7 @@ stylelint@^14.6.1: postcss-media-query-parser "^0.2.3" postcss-resolve-nested-selector "^0.1.1" postcss-safe-parser "^6.0.0" - postcss-selector-parser "^6.0.9" + postcss-selector-parser "^6.0.10" postcss-value-parser "^4.2.0" resolve-from "^5.0.0" specificity "^0.4.1" @@ -17703,12 +17718,10 @@ svgo@^2.5.0, svgo@^2.7.0: picocolors "^1.0.0" stable "^0.1.8" -swc-loader@^0.1.15: - version "0.1.15" - resolved "https://registry.yarnpkg.com/swc-loader/-/swc-loader-0.1.15.tgz#cb9c630ccfbb46dabc5aebc5560cced658e32992" - integrity sha512-cn1WPIeQJvXM4bbo3OwdEIapsQ4uUGOfyFj0h2+2+brT0k76DCGnZXDE2KmcqTd2JSQ+b61z2NPMib7eEwMYYw== - dependencies: - loader-utils "^2.0.0" +swc-loader@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/swc-loader/-/swc-loader-0.2.0.tgz#c26621f9fdeb5e28ba4a8ec19e25b1f3d03791c6" + integrity sha512-HefatIgiOaAekVcUPwT5hRNrWF3nULGv5nqGuXeHR7wz1HNN/VGlgmJE830yhIA7X3dHPln4yUTPnZ3ws7B5Fg== symbol-observable@^1.1.0: version "1.2.0" @@ -18381,9 +18394,9 @@ ua-parser-js@^0.7.30: integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ== uglify-js@^3.1.4: - version "3.15.3" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.15.3.tgz#9aa82ca22419ba4c0137642ba0df800cb06e0471" - integrity sha512-6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg== + version "3.15.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.15.4.tgz#fa95c257e88f85614915b906204b9623d4fa340d" + integrity sha512-vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA== uid-number@0.0.6: version "0.0.6" @@ -19331,25 +19344,25 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -workbox-background-sync@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.5.2.tgz#28be9bf89b8e4e0379d45903280c7c12f4df836f" - integrity sha512-EjG37LSMDJ1TFlFg56wx6YXbH4/NkG09B9OHvyxx+cGl2gP5OuOzsCY3rOPJSpbcz6jpuA40VIC3HzSD4OvE1g== +workbox-background-sync@6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.5.3.tgz#7c66c1836aeca6f3762dc48d17a1852a33b3168c" + integrity sha512-0DD/V05FAcek6tWv9XYj2w5T/plxhDSpclIcAGjA/b7t/6PdaRkQ7ZgtAX6Q/L7kV7wZ8uYRJUoH11VjNipMZw== dependencies: idb "^6.1.4" - workbox-core "6.5.2" + workbox-core "6.5.3" -workbox-broadcast-update@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.5.2.tgz#b1f32bb40a9dcb5b05ca27e09fb7c01a0a126182" - integrity sha512-DjJYraYnprTZE/AQNoeogaxI1dPuYmbw+ZJeeP8uXBSbg9SNv5wLYofQgywXeRepv4yr/vglMo9yaHUmBMc+4Q== +workbox-broadcast-update@6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.5.3.tgz#fc2ad79cf507e22950cda9baf1e9a0ccc43f31bc" + integrity sha512-4AwCIA5DiDrYhlN+Miv/fp5T3/whNmSL+KqhTwRBTZIL6pvTgE4lVuRzAt1JltmqyMcQ3SEfCdfxczuI4kwFQg== dependencies: - workbox-core "6.5.2" + workbox-core "6.5.3" -workbox-build@^6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.5.2.tgz#774faafd84b1dc94b74739ceb5d8ff367748523b" - integrity sha512-TVi4Otf6fgwikBeMpXF9n0awHfZTMNu/nwlMIT9W+c13yvxkmDFMPb7vHYK6RUmbcxwPnz4I/R+uL76+JxG4JQ== +workbox-build@^6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.5.3.tgz#38e3f286d63d2745bff4d1478bb3a6ab5c8b1170" + integrity sha512-8JNHHS7u13nhwIYCDea9MNXBNPHXCs5KDZPKI/ZNTr3f4sMGoD7hgFGecbyjX1gw4z6e9bMpMsOEJNyH5htA/w== dependencies: "@apideck/better-ajv-errors" "^0.3.1" "@babel/core" "^7.11.1" @@ -19373,121 +19386,121 @@ workbox-build@^6.5.2: strip-comments "^2.0.1" tempy "^0.6.0" upath "^1.2.0" - workbox-background-sync "6.5.2" - workbox-broadcast-update "6.5.2" - workbox-cacheable-response "6.5.2" - workbox-core "6.5.2" - workbox-expiration "6.5.2" - workbox-google-analytics "6.5.2" - workbox-navigation-preload "6.5.2" - workbox-precaching "6.5.2" - workbox-range-requests "6.5.2" - workbox-recipes "6.5.2" - workbox-routing "6.5.2" - workbox-strategies "6.5.2" - workbox-streams "6.5.2" - workbox-sw "6.5.2" - workbox-window "6.5.2" - -workbox-cacheable-response@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.5.2.tgz#d9252eb99f0d0fceb70f63866172f4eaac56a3e8" - integrity sha512-UnHGih6xqloV808T7ve1iNKZMbpML0jGLqkkmyXkJbZc5j16+HRSV61Qrh+tiq3E3yLvFMGJ3AUBODOPNLWpTg== + workbox-background-sync "6.5.3" + workbox-broadcast-update "6.5.3" + workbox-cacheable-response "6.5.3" + workbox-core "6.5.3" + workbox-expiration "6.5.3" + workbox-google-analytics "6.5.3" + workbox-navigation-preload "6.5.3" + workbox-precaching "6.5.3" + workbox-range-requests "6.5.3" + workbox-recipes "6.5.3" + workbox-routing "6.5.3" + workbox-strategies "6.5.3" + workbox-streams "6.5.3" + workbox-sw "6.5.3" + workbox-window "6.5.3" + +workbox-cacheable-response@6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.5.3.tgz#b1f8c2bc599a7be8f7e3c262535629c558738e47" + integrity sha512-6JE/Zm05hNasHzzAGKDkqqgYtZZL2H06ic2GxuRLStA4S/rHUfm2mnLFFXuHAaGR1XuuYyVCEey1M6H3PdZ7SQ== dependencies: - workbox-core "6.5.2" + workbox-core "6.5.3" -workbox-core@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.5.2.tgz#f5e06a22c6cb4651d3e13107443d972fdbd47364" - integrity sha512-IlxLGQf+wJHCR+NM0UWqDh4xe/Gu6sg2i4tfZk6WIij34IVk9BdOQgi6WvqSHd879jbQIUgL2fBdJUJyAP5ypQ== +workbox-core@6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.5.3.tgz#bca038a9ef0d7a634a6db2a60f45313ed22ac249" + integrity sha512-Bb9ey5n/M9x+l3fBTlLpHt9ASTzgSGj6vxni7pY72ilB/Pb3XtN+cZ9yueboVhD5+9cNQrC9n/E1fSrqWsUz7Q== -workbox-expiration@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.5.2.tgz#ee6ed755a220a0b375d67831f9237e4dcbccb59c" - integrity sha512-5Hfp0uxTZJrgTiy9W7AjIIec+9uTOtnxY/tRBm4DbqcWKaWbVTa+izrKzzOT4MXRJJIJUmvRhWw4oo8tpmMouw== +workbox-expiration@6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.5.3.tgz#efc0811f371a2ede1052b9de1c4f072b71d50503" + integrity sha512-jzYopYR1zD04ZMdlbn/R2Ik6ixiXbi15c9iX5H8CTi6RPDz7uhvMLZPKEndZTpfgmUk8mdmT9Vx/AhbuCl5Sqw== dependencies: idb "^6.1.4" - workbox-core "6.5.2" + workbox-core "6.5.3" -workbox-google-analytics@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.5.2.tgz#a79fa7a40824873baaa333dcd72d1fdf1c53adf5" - integrity sha512-8SMar+N0xIreP5/2we3dwtN1FUmTMScoopL86aKdXBpio8vXc8Oqb5fCJG32ialjN8BAOzDqx/FnGeCtkIlyvw== +workbox-google-analytics@6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.5.3.tgz#cc8c3a61f449131660a4ed2f5362d9a3599b18fe" + integrity sha512-3GLCHotz5umoRSb4aNQeTbILETcrTVEozSfLhHSBaegHs1PnqCmN0zbIy2TjTpph2AGXiNwDrWGF0AN+UgDNTw== dependencies: - workbox-background-sync "6.5.2" - workbox-core "6.5.2" - workbox-routing "6.5.2" - workbox-strategies "6.5.2" + workbox-background-sync "6.5.3" + workbox-core "6.5.3" + workbox-routing "6.5.3" + workbox-strategies "6.5.3" -workbox-navigation-preload@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.5.2.tgz#ffb3d9d5cdb881a3824851707da221dbb0bb3f23" - integrity sha512-iqDNWWMswjCsZuvGFDpcX1Z8InBVAlVBELJ28xShsWWntALzbtr0PXMnm2WHkXCc56JimmGldZi1N5yDPiTPOg== +workbox-navigation-preload@6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.5.3.tgz#81b74f598b11aa07e2cf1c21af7a826a4f0f70b3" + integrity sha512-bK1gDFTc5iu6lH3UQ07QVo+0ovErhRNGvJJO/1ngknT0UQ702nmOUhoN9qE5mhuQSrnK+cqu7O7xeaJ+Rd9Tmg== dependencies: - workbox-core "6.5.2" + workbox-core "6.5.3" -workbox-precaching@6.5.2, workbox-precaching@^6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.5.2.tgz#a3117b4d3eb61ce8d01b9dfc063c48155bd7f9d3" - integrity sha512-OZAlQ8AAT20KugGKKuJMHdQ8X1IyNQaLv+mPTHj+8Dmv8peBq5uWNzs4g/1OSFmXsbXZ6a1CBC6YtQWVPhJQ9w== +workbox-precaching@6.5.3, workbox-precaching@^6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.5.3.tgz#c870312b2ef901d790ab9e48da084e776c62af47" + integrity sha512-sjNfgNLSsRX5zcc63H/ar/hCf+T19fRtTqvWh795gdpghWb5xsfEkecXEvZ8biEi1QD7X/ljtHphdaPvXDygMQ== dependencies: - workbox-core "6.5.2" - workbox-routing "6.5.2" - workbox-strategies "6.5.2" + workbox-core "6.5.3" + workbox-routing "6.5.3" + workbox-strategies "6.5.3" -workbox-range-requests@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.5.2.tgz#b8b7e5b5830fecc22f0a1d8815457921df2e5bf9" - integrity sha512-zi5VqF1mWqfCyJLTMXn1EuH/E6nisqWDK1VmOJ+TnjxGttaQrseOhMn+BMvULFHeF8AvrQ0ogfQ6bSv0rcfAlg== +workbox-range-requests@6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.5.3.tgz#e624ac82ff266a5e4f236d055797def07949d941" + integrity sha512-pGCP80Bpn/0Q0MQsfETSfmtXsQcu3M2QCJwSFuJ6cDp8s2XmbUXkzbuQhCUzKR86ZH2Vex/VUjb2UaZBGamijA== dependencies: - workbox-core "6.5.2" + workbox-core "6.5.3" -workbox-recipes@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.5.2.tgz#19f47ec25a8788c65d0cc8d217cbebc0bbbb5c63" - integrity sha512-2lcUKMYDiJKvuvRotOxLjH2z9K7jhj8GNUaHxHNkJYbTCUN3LsX1cWrsgeJFDZ/LgI565t3fntpbG9J415ZBXA== +workbox-recipes@6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.5.3.tgz#15beac9d8ae7a3a1c100218094a824b4dd3fd59a" + integrity sha512-IcgiKYmbGiDvvf3PMSEtmwqxwfQ5zwI7OZPio3GWu4PfehA8jI8JHI3KZj+PCfRiUPZhjQHJ3v1HbNs+SiSkig== dependencies: - workbox-cacheable-response "6.5.2" - workbox-core "6.5.2" - workbox-expiration "6.5.2" - workbox-precaching "6.5.2" - workbox-routing "6.5.2" - workbox-strategies "6.5.2" + workbox-cacheable-response "6.5.3" + workbox-core "6.5.3" + workbox-expiration "6.5.3" + workbox-precaching "6.5.3" + workbox-routing "6.5.3" + workbox-strategies "6.5.3" -workbox-routing@6.5.2, workbox-routing@^6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.5.2.tgz#e0ad46246ba51224fd57eff0dd46891b3220cb9a" - integrity sha512-nR1w5PjF6IVwo0SX3oE88LhmGFmTnqqU7zpGJQQPZiKJfEKgDENQIM9mh3L1ksdFd9Y3CZVkusopHfxQvit/BA== +workbox-routing@6.5.3, workbox-routing@^6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.5.3.tgz#a0a699d8cc90b5692bd3df24679acbbda3913777" + integrity sha512-DFjxcuRAJjjt4T34RbMm3MCn+xnd36UT/2RfPRfa8VWJGItGJIn7tG+GwVTdHmvE54i/QmVTJepyAGWtoLPTmg== dependencies: - workbox-core "6.5.2" + workbox-core "6.5.3" -workbox-strategies@6.5.2, workbox-strategies@^6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.5.2.tgz#56b02e6959c6391351011fc2e5b0829aff1ed859" - integrity sha512-fgbwaUMxbG39BHjJIs2y2X21C0bmf1Oq3vMQxJ1hr6y5JMJIm8rvKCcf1EIdAr+PjKdSk4ddmgyBQ4oO8be4Uw== +workbox-strategies@6.5.3, workbox-strategies@^6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.5.3.tgz#4bea9a48fee16cf43766e0d8138296773c8a9783" + integrity sha512-MgmGRrDVXs7rtSCcetZgkSZyMpRGw8HqL2aguszOc3nUmzGZsT238z/NN9ZouCxSzDu3PQ3ZSKmovAacaIhu1w== dependencies: - workbox-core "6.5.2" + workbox-core "6.5.3" -workbox-streams@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.5.2.tgz#2fb6ba307f7d2cbda63f64522a197be868b4ea25" - integrity sha512-ovD0P4UrgPtZ2Lfc/8E8teb1RqNOSZr+1ZPqLR6sGRZnKZviqKbQC3zVvvkhmOIwhWbpL7bQlWveLVONHjxd5w== +workbox-streams@6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.5.3.tgz#b6860290031caa7d0e46ad7142315c94359c780b" + integrity sha512-vN4Qi8o+b7zj1FDVNZ+PlmAcy1sBoV7SC956uhqYvZ9Sg1fViSbOpydULOssVJ4tOyKRifH/eoi6h99d+sJ33w== dependencies: - workbox-core "6.5.2" - workbox-routing "6.5.2" + workbox-core "6.5.3" + workbox-routing "6.5.3" -workbox-sw@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.5.2.tgz#2f5dca0e96c61a450fccf0405095ddf1b6f43bc7" - integrity sha512-2KhlYqtkoqlnPdllj2ujXUKRuEFsRDIp6rdE4l1PsxiFHRAFaRTisRQpGvRem5yxgXEr+fcEKiuZUW2r70KZaw== +workbox-sw@6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.5.3.tgz#cd2f0c086f4496acd25774ed02c48504189bebdd" + integrity sha512-BQBzm092w+NqdIEF2yhl32dERt9j9MDGUTa2Eaa+o3YKL4Qqw55W9yQC6f44FdAHdAJrJvp0t+HVrfh8AiGj8A== -workbox-window@6.5.2, workbox-window@^6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.5.2.tgz#46d6412cd57039bdf3d5dd914ad21fb3f98fe980" - integrity sha512-2kZH37r9Wx8swjEOL4B8uGM53lakMxsKkQ7mOKzGA/QAn/DQTEZGrdHWtypk2tbhKY5S0jvPS+sYDnb2Z3378A== +workbox-window@6.5.3, workbox-window@^6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.5.3.tgz#4ade70056cb73477ef1cd8fea7cfd0ecbd825c7f" + integrity sha512-GnJbx1kcKXDtoJBVZs/P7ddP0Yt52NNy4nocjBpYPiRhMqTpJCNrSL+fGHZ/i/oP6p/vhE8II0sA6AZGKGnssw== dependencies: "@types/trusted-types" "^2.0.2" - workbox-core "6.5.2" + workbox-core "6.5.3" wrap-ansi@^3.0.1: version "3.0.1" @@ -19675,9 +19688,9 @@ yargs@^16.0.0, yargs@^16.2.0: yargs-parser "^20.2.2" yargs@^17.1.0, yargs@^17.3.1: - version "17.4.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.4.0.tgz#9fc9efc96bd3aa2c1240446af28499f0e7593d00" - integrity sha512-WJudfrk81yWFSOkZYpAZx4Nt7V4xp7S/uJkX0CnxovMCt1wCE8LNftPpNuF9X/u9gN5nsD7ycYtRcDf2pL3UiA== + version "17.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.4.1.tgz#ebe23284207bb75cee7c408c33e722bfb27b5284" + integrity sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g== dependencies: cliui "^7.0.2" escalade "^3.1.1"