From f329a36737fb01dfb51091e0692d080f2e0f5404 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Mar 2022 22:42:47 +0300 Subject: [PATCH 01/34] chore: bump prettier from 2.5.1 to 2.6.0 in /website (#742) Bumps [prettier](https://github.com/prettier/prettier) from 2.5.1 to 2.6.0. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/2.5.1...2.6.0) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 17 ++++++++++------- website/package.json | 2 +- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 6507581509..58a200e715 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -25,7 +25,7 @@ "@types/react": "^17.0.40", "@types/react-helmet": "^6.1.5", "@types/react-router-dom": "^5.3.3", - "prettier": "2.5.1", + "prettier": "2.6.0", "typescript": "^4.6.2" } }, @@ -9452,15 +9452,18 @@ } }, "node_modules/prettier": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", - "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz", + "integrity": "sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==", "dev": true, "bin": { "prettier": "bin-prettier.js" }, "engines": { "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, "node_modules/pretty-error": { @@ -19509,9 +19512,9 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "prettier": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", - "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz", + "integrity": "sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==", "dev": true }, "pretty-error": { diff --git a/website/package.json b/website/package.json index 3a55da674a..f095881a23 100644 --- a/website/package.json +++ b/website/package.json @@ -31,7 +31,7 @@ "@types/react": "^17.0.40", "@types/react-helmet": "^6.1.5", "@types/react-router-dom": "^5.3.3", - "prettier": "2.5.1", + "prettier": "2.6.0", "typescript": "^4.6.2" } } From c50fffab04cdc200d9e9c7e4ef4552cceb7f76ab Mon Sep 17 00:00:00 2001 From: Dmitry Krutskikh Date: Sun, 20 Mar 2022 08:41:18 +0300 Subject: [PATCH 02/34] build: push master branch to azure --- .github/workflows/sync_with_azure.yaml | 31 ++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/sync_with_azure.yaml diff --git a/.github/workflows/sync_with_azure.yaml b/.github/workflows/sync_with_azure.yaml new file mode 100644 index 0000000000..30f0f6c773 --- /dev/null +++ b/.github/workflows/sync_with_azure.yaml @@ -0,0 +1,31 @@ +name: "Push to Azure" + +on: + push: + branches: + - master + +jobs: + repo-sync: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: "0" + ref: "master" + + - name: Install SSH key + uses: shimataro/ssh-key-action@v2.3.1 + with: + key: ${{ secrets.SSH_PRIVATE_RSA_KEY }} + name: id_rsa + known_hosts: ${{ secrets.KNOWN_HOSTS }} + + - run: | + git remote add azure git@ssh.dev.azure.com:v3/dmitrykrutskikhpersonal/dart-code-metrics/dart-code-metrics + git config --global user.email "dmitry.krutskikh@gmail.com" + git config --global user.name "Dmitry Krutskikh" + git checkout master + git push -u azure master From 6ae22115e77c2c7e617529c54c1ce25f7271c3b6 Mon Sep 17 00:00:00 2001 From: Dmitry Krutskikh Date: Sun, 20 Mar 2022 22:00:25 +0300 Subject: [PATCH 03/34] chore: bump dart-code-metrics-action (#751) * chore: bump dart-code-metrics-action * docs: update documentation --- .github/workflows/package_analyze.yaml | 7 ++++-- .vscode/settings.json | 1 + website/docs/integrations/github-action.md | 27 ++++++++++++++-------- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/.github/workflows/package_analyze.yaml b/.github/workflows/package_analyze.yaml index 70dbf6e314..aa36747ac4 100644 --- a/.github/workflows/package_analyze.yaml +++ b/.github/workflows/package_analyze.yaml @@ -61,13 +61,16 @@ jobs: run: dart analyze --fatal-warnings --fatal-infos . - name: Analyze by Dart Code Metrics - uses: dart-code-checker/dart-code-metrics-action@v1 + uses: dart-code-checker/dart-code-metrics-action@v1.5.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} folders: "bin, example, lib, test" + pull_request_comment: true + fatal_warnings: true + fatal_performance: true + fatal_style: true check_unused_files: true check_unused_files_folders: "bin, example, lib" - pull_request_comment: true - name: Verify formatting run: dart format --set-exit-if-changed . diff --git a/.vscode/settings.json b/.vscode/settings.json index 8db8a86ff7..ef13718748 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,6 +9,7 @@ "Checkstyle", "codeclimate", "codecov", + "codemagic", "codequality", "commitlint", "cyclomatic", diff --git a/website/docs/integrations/github-action.md b/website/docs/integrations/github-action.md index cd3d2ad1af..9fdcc2443e 100644 --- a/website/docs/integrations/github-action.md +++ b/website/docs/integrations/github-action.md @@ -1,6 +1,6 @@ # GitHub Action -Dart Code Metrics GitHub Action allows you to integrate Dart Code Metrics into your CI/CD process and get code quality reports inside PR's. +[Dart Code Metrics GitHub Action](https://github.com/marketplace/actions/dart-code-metrics-action) allows you to integrate Dart Code Metrics into your CI/CD process and get code quality reports inside PR's. ## Usage {#usage} @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: dart-code-metrics uses: dart-code-checker/dart-code-metrics-action@v1 @@ -28,13 +28,22 @@ jobs: ### Inputs {#inputs} -| Name | Required | Description | Default | -| :--------------------- | :------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------ | -| **github_token** | ☑️ | Required to post a report on GitHub. _Note:_ the secret [`GITHUB_TOKEN`](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token) is already provided by GitHub and you don't have to set it up yourself. | | -| **folders** | | List of folders whose contents will be scanned. | [`lib`] | -| **relative_path** | | If your package isn't at the root of the repository, set this input to indicate its location. | | -| **github_pat** | Required if you had private GitHub repository in the package dependencies | [**Personal access token**](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) must access to _repo_ and _read:user_ [scopes](https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes) | | -| **check_unused_files** | | Additional scan for find unused files in package. | `false` | +### Inputs + +| Name | Required | Description | Default | +| :------------------------------------ | :------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------ | +| **github_token** | ☑️ | Required to post a report on GitHub. *Note:* the secret [`GITHUB_TOKEN`](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token) is already provided by GitHub and you don't have to set it up yourself. | | +| **github_pat** | Required if you had private GitHub repository in the package dependencies | [**Personal access token**](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) must access to *repo* and *read:user* [scopes](https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes) | | +| **folders** | | List of folders whose contents will be scanned. | [`lib`] | +| **relative_path** | | If your package isn't at the root of the repository, set this input to indicate its location. | | +| **pull_request_comment** | | Publish detailed report commented directly into your pull request. | `false` | +| **analyze_report_title_pattern** | | Configurable analyze report title pattern. | `Dart Code Metrics analyze report of $packageName` | +| **fatal_warnings** | | Treat warning level issues as fatal. | `false` | +| **fatal_performance** | | Treat performance level issues as fatal. | `false` | +| **fatal_style** | | Treat style level issues as fatal. | `false` | +| **check_unused_files** | | Additional scan for find unused files in package. | `false` | +| **check_unused_files_folders** | | List of folders whose contents will be scanned for find unused files. | Taken from `folders` argument | +| **unused_files_report_title_pattern** | | Configurable unused files report title pattern. | `Dart Code Metrics unused files report of $packageName` | ### Output example {#output-example} From 76c64f71c762541be6fa7ca9ad7b719ce45bd95a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Mar 2022 06:43:02 +0300 Subject: [PATCH 04/34] chore: bump node-forge from 1.2.1 to 1.3.0 in /website (#765) Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.2.1 to 1.3.0. - [Release notes](https://github.com/digitalbazaar/forge/releases) - [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md) - [Commits](https://github.com/digitalbazaar/forge/compare/v1.2.1...v1.3.0) --- updated-dependencies: - dependency-name: node-forge dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 58a200e715..a452383011 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -8353,9 +8353,9 @@ } }, "node_modules/node-forge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", - "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.0.tgz", + "integrity": "sha512-08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA==", "engines": { "node": ">= 6.13.0" } @@ -18789,9 +18789,9 @@ } }, "node-forge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", - "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.0.tgz", + "integrity": "sha512-08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA==" }, "node-releases": { "version": "2.0.1", From 73fb3c9c962a916cdd34e4a342922d31c4455c06 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Mar 2022 06:57:47 +0300 Subject: [PATCH 05/34] chore: bump ansi-regex from 5.0.0 to 5.0.1 in /website (#767) Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 5.0.0 to 5.0.1. - [Release notes](https://github.com/chalk/ansi-regex/releases) - [Commits](https://github.com/chalk/ansi-regex/compare/v5.0.0...v5.0.1) --- updated-dependencies: - dependency-name: ansi-regex dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 38 ++++++-------------------------------- 1 file changed, 6 insertions(+), 32 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index a452383011..50d8e7a34f 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -3868,9 +3868,9 @@ } }, "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } @@ -9760,14 +9760,6 @@ "node": ">=14" } }, - "node_modules/react-dev-utils/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/react-dev-utils/node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -10353,14 +10345,6 @@ "strip-ansi": "^6.0.1" } }, - "node_modules/renderkid/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/renderkid/node_modules/css-select": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", @@ -15512,9 +15496,9 @@ "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "4.3.0", @@ -19748,11 +19732,6 @@ "text-table": "^0.2.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -20212,11 +20191,6 @@ "strip-ansi": "^6.0.1" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, "css-select": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", From 3eb4c036b19a016ab5a53439974eabb8197a963a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Mar 2022 07:03:04 +0300 Subject: [PATCH 06/34] chore: bump minimist from 1.2.5 to 1.2.6 in /website (#766) Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 50d8e7a34f..aa284432ba 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -8247,9 +8247,9 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/mkdirp": { "version": "0.5.5", @@ -18696,9 +18696,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "mkdirp": { "version": "0.5.5", From 01329f6c955fceac4e166873b9ac764dc2b11c32 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Mar 2022 07:06:15 +0300 Subject: [PATCH 07/34] chore: bump typescript from 4.6.2 to 4.6.3 in /website (#763) Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.6.2 to 4.6.3. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v4.6.2...v4.6.3) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 14 +++++++------- website/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index aa284432ba..2c80f30483 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -26,7 +26,7 @@ "@types/react-helmet": "^6.1.5", "@types/react-router-dom": "^5.3.3", "prettier": "2.6.0", - "typescript": "^4.6.2" + "typescript": "^4.6.3" } }, "node_modules/@algolia/autocomplete-core": { @@ -11657,9 +11657,9 @@ } }, "node_modules/typescript": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", - "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -21159,9 +21159,9 @@ } }, "typescript": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", - "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==" + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==" }, "ua-parser-js": { "version": "0.7.31", diff --git a/website/package.json b/website/package.json index f095881a23..e7c78b6390 100644 --- a/website/package.json +++ b/website/package.json @@ -32,6 +32,6 @@ "@types/react-helmet": "^6.1.5", "@types/react-router-dom": "^5.3.3", "prettier": "2.6.0", - "typescript": "^4.6.2" + "typescript": "^4.6.3" } } From 094a9c7fb9c650ff4dc48c603d58a92209a1292e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Mar 2022 07:11:36 +0300 Subject: [PATCH 08/34] chore: bump @types/react from 17.0.40 to 17.0.43 in /website (#762) Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 17.0.40 to 17.0.43. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 14 +++++++------- website/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 2c80f30483..41125ae094 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -22,7 +22,7 @@ "devDependencies": { "@docusaurus/module-type-aliases": "^2.0.0-beta.17", "@tsconfig/docusaurus": "^1.0.5", - "@types/react": "^17.0.40", + "@types/react": "^17.0.43", "@types/react-helmet": "^6.1.5", "@types/react-router-dom": "^5.3.3", "prettier": "2.6.0", @@ -3454,9 +3454,9 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "node_modules/@types/react": { - "version": "17.0.40", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.40.tgz", - "integrity": "sha512-UrXhD/JyLH+W70nNSufXqMZNuUD2cXHu6UjCllC6pmOQgBX4SGXOH8fjRka0O0Ee0HrFxapDD8Bwn81Kmiz6jQ==", + "version": "17.0.43", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.43.tgz", + "integrity": "sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -15127,9 +15127,9 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "@types/react": { - "version": "17.0.40", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.40.tgz", - "integrity": "sha512-UrXhD/JyLH+W70nNSufXqMZNuUD2cXHu6UjCllC6pmOQgBX4SGXOH8fjRka0O0Ee0HrFxapDD8Bwn81Kmiz6jQ==", + "version": "17.0.43", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.43.tgz", + "integrity": "sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", diff --git a/website/package.json b/website/package.json index e7c78b6390..b79532fff1 100644 --- a/website/package.json +++ b/website/package.json @@ -28,7 +28,7 @@ "devDependencies": { "@docusaurus/module-type-aliases": "^2.0.0-beta.17", "@tsconfig/docusaurus": "^1.0.5", - "@types/react": "^17.0.40", + "@types/react": "^17.0.43", "@types/react-helmet": "^6.1.5", "@types/react-router-dom": "^5.3.3", "prettier": "2.6.0", From c0613e5d9a1fb270db48495e56085031fc3f8a6b Mon Sep 17 00:00:00 2001 From: Dmitry Zhifarsky Date: Sat, 26 Mar 2022 15:32:47 +0300 Subject: [PATCH 09/34] fix: support index expressions for no-magic-number rule (#755) --- CHANGELOG.md | 6 +++- .../no_magic_number/no_magic_number_rule.dart | 3 ++ .../examples/exceptions_example.dart | 36 ++++++++++++------- 3 files changed, 32 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a53c514a72..02855710b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## Unreleased + +* fix: support index expressions for no-magic-number rule. + ## 4.13.0 * feat: add [Checkstyle](https://dartcodemetrics.dev/docs/cli/analyze#checkstyle) format reporter. @@ -67,7 +71,7 @@ * feat: add static code diagnostics [`avoid-global-state`](https://dartcodemetrics.dev/docs/rules/common/avoid-global-state), [`avoid-unrelated-type-assertions`](https://dartcodemetrics.dev/docs/rules/common/avoid-unrelated-type-assertions). * feat: support extensions and static getters for [`check-unused-l10n`](https://dartcodemetrics.dev/docs/cli/check-unused-l10n). -* feat: improve [ `prefer-correct-type-name`](https://dartcodemetrics.dev/docs/rules/common/prefer-correct-type-name), [`prefer-match-file-name`](https://dartcodemetrics.dev/docs/rules/common/prefer-match-file-name) rules. +* feat: improve [prefer-correct-type-name](https://dartcodemetrics.dev/docs/rules/common/prefer-correct-type-name), [`prefer-match-file-name`](https://dartcodemetrics.dev/docs/rules/common/prefer-match-file-name) rules. * feat: add `delete-files` flag to [`check-unused-files`](https://dartcodemetrics.dev/docs/cli/check-unused-files) command. * feat: facelift console reporters. * chore: restrict `analyzer` version to `>=2.4.0 <3.1.0`. diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/no_magic_number/no_magic_number_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/no_magic_number/no_magic_number_rule.dart index 71b6760e2a..08dc55c564 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/no_magic_number/no_magic_number_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/no_magic_number/no_magic_number_rule.dart @@ -43,6 +43,7 @@ class NoMagicNumberRule extends CommonRule { .where(_isNotInsideConstMap) .where(_isNotInsideConstConstructor) .where(_isNotInDateTime) + .where(_isNotInsideIndexExpression) .map((lit) => createIssue( rule: this, location: nodeLocation( @@ -86,4 +87,6 @@ class NoMagicNumberRule extends CommonRule { l.thisOrAncestorMatching((ancestor) => ancestor is InstanceCreationExpression && ancestor.isConst) == null; + + bool _isNotInsideIndexExpression(Literal l) => l.parent is! IndexExpression; } diff --git a/test/src/analyzers/lint_analyzer/rules/rules_list/no_magic_number/examples/exceptions_example.dart b/test/src/analyzers/lint_analyzer/rules/rules_list/no_magic_number/examples/exceptions_example.dart index e36e423c08..be03d55a46 100644 --- a/test/src/analyzers/lint_analyzer/rules/rules_list/no_magic_number/examples/exceptions_example.dart +++ b/test/src/analyzers/lint_analyzer/rules/rules_list/no_magic_number/examples/exceptions_example.dart @@ -1,12 +1,24 @@ -int good_f1(int x) => x + 1; -bool good_f2(int x) => x != 0; -bool good_f3(String x) => x.indexOf(str) != -1; -final someDay = DateTime(2006, 12, 1); -final anotherDay = DateTime.utc(2006, 12, 1); -final f = Intl.message(example: const {'Assigned': 3}); -final f = foo(const [32, 12]); -final f = Future.delayed(const Duration(seconds: 5)); -final f = foo(const Bar(5)); -final number = 500; -var number = 500; -var numbers = [100, 200, 300]; +void main() { + int good_f1(int x) => x + 1; + bool good_f2(int x) => x != 0; + bool good_f3(String x) => x.indexOf(str) != -1; + final someDay = DateTime(2006, 12, 1); + final anotherDay = DateTime.utc(2006, 12, 1); + final f = Intl.message(example: const {'Assigned': 3}); + final f = foo(const [32, 12]); + final f = Future.delayed(const Duration(seconds: 5)); + final f = foo(const Bar(5)); + final number = 500; + var number = 500; + var numbers = [100, 200, 300]; + numbers[0]; + + Map m = { + 1: '', + 2: '', + 3: '', + }; + String? mv = m[2]; + final mf = m[2]; + print(m[2]); +} From d8c502fc7385ec70edf24a161eadd67a127334cf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Mar 2022 20:32:56 +0300 Subject: [PATCH 10/34] chore: bump @docusaurus/preset-classic in /website (#764) Bumps [@docusaurus/preset-classic](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-preset-classic) from 2.0.0-beta.17 to 2.0.0-beta.18. - [Release notes](https://github.com/facebook/docusaurus/releases) - [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/docusaurus/commits/v2.0.0-beta.18/packages/docusaurus-preset-classic) --- updated-dependencies: - dependency-name: "@docusaurus/preset-classic" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 3065 +++++++++++++++---------------------- website/package.json | 2 +- 2 files changed, 1272 insertions(+), 1795 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 41125ae094..9bfc3806c2 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "dependencies": { "@docusaurus/core": "^2.0.0-beta.16", - "@docusaurus/preset-classic": "^2.0.0-beta.17", + "@docusaurus/preset-classic": "^2.0.0-beta.18", "@mdx-js/react": "^1.6.21", "@svgr/webpack": "^6.2.1", "clsx": "^1.1.1", @@ -55,74 +55,74 @@ "integrity": "sha512-ylQAYv5H0YKMfHgVWX0j0NmL8XBcAeeeVQUmppnnMtzDbDnca6CzhKj3Q8eF9cHCgcdTDdb5K+3aKyGWA0obug==" }, "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.12.2.tgz", - "integrity": "sha512-z8LjFsQc0B6h6LEE3pkUGM4ErVktn6bkFbhnYbTccjmFVQ+wXFJd/D63e0WtaC+hwRB1xq8uKhkz9oojEKEsGA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.13.0.tgz", + "integrity": "sha512-nj1vHRZauTqP/bluwkRIgEADEimqojJgoTRCel5f6q8WCa9Y8QeI4bpDQP28FoeKnDRYa3J5CauDlN466jqRhg==", "dependencies": { - "@algolia/cache-common": "4.12.2" + "@algolia/cache-common": "4.13.0" } }, "node_modules/@algolia/cache-common": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.12.2.tgz", - "integrity": "sha512-r//r7MF0Na0HxD2BHnjWsDKuI72Z5UEf/Rb/8MC08XKBsjCwBihGxWxycjRcNGjNEIxJBsvRMIEOipcd9qD54g==" + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.13.0.tgz", + "integrity": "sha512-f9mdZjskCui/dA/fA/5a+6hZ7xnHaaZI5tM/Rw9X8rRB39SUlF/+o3P47onZ33n/AwkpSbi5QOyhs16wHd55kA==" }, "node_modules/@algolia/cache-in-memory": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.12.2.tgz", - "integrity": "sha512-opWpbBUloP1fcTG3wBDnAfcoyNXW5GFDgGtLXrSANdfnelPKkr3O8j01ZTkRlPIuBDR0izGZG8MVWMDlTf71Bw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.13.0.tgz", + "integrity": "sha512-hHdc+ahPiMM92CQMljmObE75laYzNFYLrNOu0Q3/eyvubZZRtY2SUsEEgyUEyzXruNdzrkcDxFYa7YpWBJYHAg==", "dependencies": { - "@algolia/cache-common": "4.12.2" + "@algolia/cache-common": "4.13.0" } }, "node_modules/@algolia/client-account": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.12.2.tgz", - "integrity": "sha512-HZqEyeVVjzOlfoSUyc+7+ueEJmRgqSuC+hqQOGECYa5JVno4d8eRVuDAMOb87I2LOdg/WoFMcAtaaRq2gpfV/w==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.13.0.tgz", + "integrity": "sha512-FzFqFt9b0g/LKszBDoEsW+dVBuUe1K3scp2Yf7q6pgHWM1WqyqUlARwVpLxqyc+LoyJkTxQftOKjyFUqddnPKA==", "dependencies": { - "@algolia/client-common": "4.12.2", - "@algolia/client-search": "4.12.2", - "@algolia/transporter": "4.12.2" + "@algolia/client-common": "4.13.0", + "@algolia/client-search": "4.13.0", + "@algolia/transporter": "4.13.0" } }, "node_modules/@algolia/client-analytics": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.12.2.tgz", - "integrity": "sha512-7ktimzesu+vk3l+eG9w/nQh6/9AoIieCKmoiRIguKh6okGsaSBrcTHvUwIQEIiliqPuAFBk2M8eXYFqOZzwCZw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.13.0.tgz", + "integrity": "sha512-klmnoq2FIiiMHImkzOm+cGxqRLLu9CMHqFhbgSy9wtXZrqb8BBUIUE2VyBe7azzv1wKcxZV2RUyNOMpFqmnRZA==", "dependencies": { - "@algolia/client-common": "4.12.2", - "@algolia/client-search": "4.12.2", - "@algolia/requester-common": "4.12.2", - "@algolia/transporter": "4.12.2" + "@algolia/client-common": "4.13.0", + "@algolia/client-search": "4.13.0", + "@algolia/requester-common": "4.13.0", + "@algolia/transporter": "4.13.0" } }, "node_modules/@algolia/client-common": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.12.2.tgz", - "integrity": "sha512-+dTicT1lklwOpeoiDspUoRSQYHhrr2IzllrX89/WuTPEBm2eww1xurqrSTQYC0MuVeX1s9/i4k34Q0ZnspypWg==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.13.0.tgz", + "integrity": "sha512-GoXfTp0kVcbgfSXOjfrxx+slSipMqGO9WnNWgeMmru5Ra09MDjrcdunsiiuzF0wua6INbIpBQFTC2Mi5lUNqGA==", "dependencies": { - "@algolia/requester-common": "4.12.2", - "@algolia/transporter": "4.12.2" + "@algolia/requester-common": "4.13.0", + "@algolia/transporter": "4.13.0" } }, "node_modules/@algolia/client-personalization": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.12.2.tgz", - "integrity": "sha512-JBW3vYFGIm5sAAy3cLUdmUCpmSAdreo5S1fERg7xgF6KyxGrwyy5BViTNWrOKG+av2yusk1wKydOYJ1Fbpbaxw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.13.0.tgz", + "integrity": "sha512-KneLz2WaehJmNfdr5yt2HQETpLaCYagRdWwIwkTqRVFCv4DxRQ2ChPVW9jeTj4YfAAhfzE6F8hn7wkQ/Jfj6ZA==", "dependencies": { - "@algolia/client-common": "4.12.2", - "@algolia/requester-common": "4.12.2", - "@algolia/transporter": "4.12.2" + "@algolia/client-common": "4.13.0", + "@algolia/requester-common": "4.13.0", + "@algolia/transporter": "4.13.0" } }, "node_modules/@algolia/client-search": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.12.2.tgz", - "integrity": "sha512-JIqi14TgfEqAooNbSPBC1ZCk3Pnviqlaz9KofAqWBxSRTpPUFnU/XQCU5ihR0PC68SFVDnU/Y9cak/XotXPUeg==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.13.0.tgz", + "integrity": "sha512-blgCKYbZh1NgJWzeGf+caKE32mo3j54NprOf0LZVCubQb3Kx37tk1Hc8SDs9bCAE8hUvf3cazMPIg7wscSxspA==", "dependencies": { - "@algolia/client-common": "4.12.2", - "@algolia/requester-common": "4.12.2", - "@algolia/transporter": "4.12.2" + "@algolia/client-common": "4.13.0", + "@algolia/requester-common": "4.13.0", + "@algolia/transporter": "4.13.0" } }, "node_modules/@algolia/events": { @@ -131,47 +131,47 @@ "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" }, "node_modules/@algolia/logger-common": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.12.2.tgz", - "integrity": "sha512-iOiJAymLjq137G7+8EQuUEkrgta0cZGMg6scp8s4hJ+X6k+6By4nyptdkCWYwKLsW/Xy927QcIhGlkWV78vQIQ==" + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.13.0.tgz", + "integrity": "sha512-8yqXk7rMtmQJ9wZiHOt/6d4/JDEg5VCk83gJ39I+X/pwUPzIsbKy9QiK4uJ3aJELKyoIiDT1hpYVt+5ia+94IA==" }, "node_modules/@algolia/logger-console": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.12.2.tgz", - "integrity": "sha512-veuQZyTSqHoHJtr9mLMnYeal9Mee6hCie4eqY+645VbeOrgT9p/kCMbKg5GLJGoLPlXGu7C0XpHyUj5k7/NQyw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.13.0.tgz", + "integrity": "sha512-YepRg7w2/87L0vSXRfMND6VJ5d6699sFJBRWzZPOlek2p5fLxxK7O0VncYuc/IbVHEgeApvgXx0WgCEa38GVuQ==", "dependencies": { - "@algolia/logger-common": "4.12.2" + "@algolia/logger-common": "4.13.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.12.2.tgz", - "integrity": "sha512-FpFdHNd81tS3zj6Glqd+lt+RV0ljPExKtx+QB+gani6HWZ9YlSCM+Zl82T4ibxN+hmkrMeAyT+TMzS0jiGhGyQ==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.13.0.tgz", + "integrity": "sha512-Dj+bnoWR5MotrnjblzGKZ2kCdQi2cK/VzPURPnE616NU/il7Ypy6U6DLGZ/ZYz+tnwPa0yypNf21uqt84fOgrg==", "dependencies": { - "@algolia/requester-common": "4.12.2" + "@algolia/requester-common": "4.13.0" } }, "node_modules/@algolia/requester-common": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.12.2.tgz", - "integrity": "sha512-4szj/lvDQf/u8EyyRBBRZD1ZkKDyLBbckLj7meQDlnbfwnW1UpLwpB2l3XJ9wDmDSftGxUCeTl5oMFe4z9OEvQ==" + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.13.0.tgz", + "integrity": "sha512-BRTDj53ecK+gn7ugukDWOOcBRul59C4NblCHqj4Zm5msd5UnHFjd/sGX+RLOEoFMhetILAnmg6wMrRrQVac9vw==" }, "node_modules/@algolia/requester-node-http": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.12.2.tgz", - "integrity": "sha512-UXfJNZt2KMwjBjiOa3cJ/PyoXWZa/F1vy6rdyG4xQeZDcLbqKP3O2b+bOJcGPmFbmdwBhtAyMVLt+hvAvAVfOw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.13.0.tgz", + "integrity": "sha512-9b+3O4QFU4azLhGMrZAr/uZPydvzOR4aEZfSL8ZrpLZ7fbbqTO0S/5EVko+QIgglRAtVwxvf8UJ1wzTD2jvKxQ==", "dependencies": { - "@algolia/requester-common": "4.12.2" + "@algolia/requester-common": "4.13.0" } }, "node_modules/@algolia/transporter": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.12.2.tgz", - "integrity": "sha512-PUq79if4CukXsm27ymTQ3eD3juSvMcyJmt6mxCkSFE0zQRL4ert61HBlNH6S9y/quUVe3g7oggfHq3d5pdpqZA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.13.0.tgz", + "integrity": "sha512-8tSQYE+ykQENAdeZdofvtkOr5uJ9VcQSWgRhQ9h01AehtBIPAczk/b2CLrMsw5yQZziLs5cZ3pJ3478yI+urhA==", "dependencies": { - "@algolia/cache-common": "4.12.2", - "@algolia/logger-common": "4.12.2", - "@algolia/requester-common": "4.12.2" + "@algolia/cache-common": "4.13.0", + "@algolia/logger-common": "4.13.0", + "@algolia/requester-common": "4.13.0" } }, "node_modules/@ampproject/remapping": { @@ -197,25 +197,25 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.17.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", - "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", + "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.3", + "@babel/generator": "^7.17.7", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.8", + "@babel/parser": "^7.17.8", "@babel/template": "^7.16.7", "@babel/traverse": "^7.17.3", "@babel/types": "^7.17.0", @@ -242,9 +242,9 @@ } }, "node_modules/@babel/generator": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", - "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", "dependencies": { "@babel/types": "^7.17.0", "jsesc": "^2.5.1", @@ -278,11 +278,11 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", "dependencies": { - "@babel/compat-data": "^7.16.4", + "@babel/compat-data": "^7.17.7", "@babel/helper-validator-option": "^7.16.7", "browserslist": "^4.17.5", "semver": "^6.3.0" @@ -530,13 +530,13 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz", - "integrity": "sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", "dependencies": { "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", @@ -595,11 +595,11 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" @@ -658,12 +658,12 @@ } }, "node_modules/@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", + "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", "dependencies": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", + "@babel/traverse": "^7.17.3", "@babel/types": "^7.17.0" }, "engines": { @@ -748,9 +748,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", - "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1974,9 +1974,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", - "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", + "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -1985,9 +1985,9 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz", - "integrity": "sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz", + "integrity": "sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==", "dependencies": { "core-js-pure": "^3.20.2", "regenerator-runtime": "^0.13.4" @@ -2063,31 +2063,31 @@ } }, "node_modules/@docusaurus/core": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-beta.17.tgz", - "integrity": "sha512-iNdW7CsmHNOgc4PxD9BFxa+MD8+i7ln7erOBkF3FSMMPnsKUeVqsR3rr31aLmLZRlTXMITSPLxlXwtBZa3KPCw==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-beta.18.tgz", + "integrity": "sha512-puV7l+0/BPSi07Xmr8tVktfs1BzhC8P5pm6Bs2CfvysCJ4nefNCD1CosPc1PGBWy901KqeeEJ1aoGwj9tU3AUA==", "dependencies": { - "@babel/core": "^7.17.5", - "@babel/generator": "^7.17.3", + "@babel/core": "^7.17.8", + "@babel/generator": "^7.17.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-transform-runtime": "^7.17.0", "@babel/preset-env": "^7.16.11", "@babel/preset-react": "^7.16.7", "@babel/preset-typescript": "^7.16.7", - "@babel/runtime": "^7.17.2", - "@babel/runtime-corejs3": "^7.17.2", + "@babel/runtime": "^7.17.8", + "@babel/runtime-corejs3": "^7.17.8", "@babel/traverse": "^7.17.3", - "@docusaurus/cssnano-preset": "2.0.0-beta.17", - "@docusaurus/logger": "2.0.0-beta.17", - "@docusaurus/mdx-loader": "2.0.0-beta.17", + "@docusaurus/cssnano-preset": "2.0.0-beta.18", + "@docusaurus/logger": "2.0.0-beta.18", + "@docusaurus/mdx-loader": "2.0.0-beta.18", "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "2.0.0-beta.17", - "@docusaurus/utils-common": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", - "@slorber/static-site-generator-webpack-plugin": "^4.0.1", + "@docusaurus/utils": "2.0.0-beta.18", + "@docusaurus/utils-common": "2.0.0-beta.18", + "@docusaurus/utils-validation": "2.0.0-beta.18", + "@slorber/static-site-generator-webpack-plugin": "^4.0.4", "@svgr/webpack": "^6.2.1", - "autoprefixer": "^10.4.2", - "babel-loader": "^8.2.3", + "autoprefixer": "^10.4.4", + "babel-loader": "^8.2.4", "babel-plugin-dynamic-import-node": "2.3.0", "boxen": "^6.2.1", "chokidar": "^3.5.3", @@ -2097,9 +2097,9 @@ "commander": "^5.1.0", "copy-webpack-plugin": "^10.2.4", "core-js": "^3.21.1", - "css-loader": "^6.6.0", + "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^3.4.1", - "cssnano": "^5.0.17", + "cssnano": "^5.1.5", "del": "^6.0.0", "detect-port": "^1.3.0", "escape-html": "^1.0.3", @@ -2113,9 +2113,9 @@ "is-root": "^2.1.0", "leven": "^3.1.0", "lodash": "^4.17.21", - "mini-css-extract-plugin": "^2.5.3", + "mini-css-extract-plugin": "^2.6.0", "nprogress": "^0.2.0", - "postcss": "^8.4.7", + "postcss": "^8.4.12", "postcss-loader": "^6.2.1", "prompts": "^2.4.2", "react-dev-utils": "^12.0.0", @@ -2127,7 +2127,7 @@ "react-router-dom": "^5.2.0", "remark-admonitions": "^1.2.1", "rtl-detect": "^1.0.4", - "semver": "^7.3.4", + "semver": "^7.3.5", "serve-handler": "^6.1.3", "shelljs": "^0.8.5", "terser-webpack-plugin": "^5.3.1", @@ -2135,7 +2135,7 @@ "update-notifier": "^5.1.0", "url-loader": "^4.1.1", "wait-on": "^6.0.1", - "webpack": "^5.69.1", + "webpack": "^5.70.0", "webpack-bundle-analyzer": "^4.5.0", "webpack-dev-server": "^4.7.4", "webpack-merge": "^5.8.0", @@ -2291,19 +2291,19 @@ } }, "node_modules/@docusaurus/cssnano-preset": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.17.tgz", - "integrity": "sha512-DoBwtLjJ9IY9/lNMHIEdo90L4NDayvU28nLgtjR2Sc6aBIMEB/3a5Ndjehnp+jZAkwcDdNASA86EkZVUyz1O1A==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.18.tgz", + "integrity": "sha512-VxhYmpyx16Wv00W9TUfLVv0NgEK/BwP7pOdWoaiELEIAMV7SO1+6iB8gsFUhtfKZ31I4uPVLMKrCyWWakoFeFA==", "dependencies": { - "cssnano-preset-advanced": "^5.1.12", - "postcss": "^8.4.7", + "cssnano-preset-advanced": "^5.3.1", + "postcss": "^8.4.12", "postcss-sort-media-queries": "^4.2.1" } }, "node_modules/@docusaurus/logger": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.0.0-beta.17.tgz", - "integrity": "sha512-F9JDl06/VLg+ylsvnq9NpILSUeWtl0j4H2LtlLzX5gufEL4dGiCMlnUzYdHl7FSHSzYJ0A/R7vu0SYofsexC4w==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.0.0-beta.18.tgz", + "integrity": "sha512-frNe5vhH3mbPmH980Lvzaz45+n1PQl3TkslzWYXQeJOkFX17zUd3e3U7F9kR1+DocmAqHkgAoWuXVcvEoN29fg==", "dependencies": { "chalk": "^4.1.2", "tslib": "^2.3.1" @@ -2313,14 +2313,14 @@ } }, "node_modules/@docusaurus/mdx-loader": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.17.tgz", - "integrity": "sha512-AhJ3GWRmjQYCyINHE595pff5tn3Rt83oGpdev5UT9uvG9lPYPC8nEmh1LI6c0ogfw7YkNznzxWSW4hyyVbYQ3A==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.18.tgz", + "integrity": "sha512-pOmAQM4Y1jhuZTbEhjh4ilQa74Mh6Q0pMZn1xgIuyYDdqvIOrOlM/H0i34YBn3+WYuwsGim4/X0qynJMLDUA4A==", "dependencies": { - "@babel/parser": "^7.17.3", + "@babel/parser": "^7.17.8", "@babel/traverse": "^7.17.3", - "@docusaurus/logger": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", + "@docusaurus/logger": "2.0.0-beta.18", + "@docusaurus/utils": "2.0.0-beta.18", "@mdx-js/mdx": "^1.6.22", "escape-html": "^1.0.3", "file-loader": "^6.2.0", @@ -2332,7 +2332,7 @@ "tslib": "^2.3.1", "unist-util-visit": "^2.0.2", "url-loader": "^4.1.1", - "webpack": "^5.69.1" + "webpack": "^5.70.0" }, "engines": { "node": ">=14" @@ -2343,11 +2343,11 @@ } }, "node_modules/@docusaurus/module-type-aliases": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.0.0-beta.17.tgz", - "integrity": "sha512-Tu+8geC/wyygBudbSwvWIHEvt5RwyA7dEoE1JmPbgQtmqUxOZ9bgnfemwXpJW5mKuDiJASbN4of1DhbLqf4sPg==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.0.0-beta.18.tgz", + "integrity": "sha512-e6mples8FZRyT7QyqidGS6BgkROjM+gljJsdOqoctbtBp+SZ5YDjwRHOmoY7eqEfsQNOaFZvT2hK38ui87hCRA==", "dependencies": { - "@docusaurus/types": "2.0.0-beta.17", + "@docusaurus/types": "2.0.0-beta.18", "@types/react": "*", "@types/react-router-config": "*", "@types/react-router-dom": "*", @@ -2359,16 +2359,16 @@ } }, "node_modules/@docusaurus/plugin-content-blog": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.17.tgz", - "integrity": "sha512-gcX4UR+WKT4bhF8FICBQHy+ESS9iRMeaglSboTZbA/YHGax/3EuZtcPU3dU4E/HFJeZ866wgUdbLKpIpsZOidg==", - "dependencies": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/logger": "2.0.0-beta.17", - "@docusaurus/mdx-loader": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", - "@docusaurus/utils-common": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.18.tgz", + "integrity": "sha512-qzK83DgB+mxklk3PQC2nuTGPQD/8ogw1nXSmaQpyXAyhzcz4CXAZ9Swl/Ee9A/bvPwQGnSHSP3xqIYl8OkFtfw==", + "dependencies": { + "@docusaurus/core": "2.0.0-beta.18", + "@docusaurus/logger": "2.0.0-beta.18", + "@docusaurus/mdx-loader": "2.0.0-beta.18", + "@docusaurus/utils": "2.0.0-beta.18", + "@docusaurus/utils-common": "2.0.0-beta.18", + "@docusaurus/utils-validation": "2.0.0-beta.18", "cheerio": "^1.0.0-rc.10", "feed": "^4.2.2", "fs-extra": "^10.0.1", @@ -2377,7 +2377,7 @@ "remark-admonitions": "^1.2.1", "tslib": "^2.3.1", "utility-types": "^3.10.0", - "webpack": "^5.69.1" + "webpack": "^5.70.0" }, "engines": { "node": ">=14" @@ -2387,113 +2387,16 @@ "react-dom": "^16.8.4 || ^17.0.0" } }, - "node_modules/@docusaurus/plugin-content-blog/node_modules/cheerio": { - "version": "1.0.0-rc.10", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", - "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", - "dependencies": { - "cheerio-select": "^1.5.0", - "dom-serializer": "^1.3.2", - "domhandler": "^4.2.0", - "htmlparser2": "^6.1.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "tslib": "^2.2.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/@docusaurus/plugin-content-blog/node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/@docusaurus/plugin-content-blog/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/@docusaurus/plugin-content-blog/node_modules/domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/@docusaurus/plugin-content-blog/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/@docusaurus/plugin-content-blog/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/@docusaurus/plugin-content-blog/node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, "node_modules/@docusaurus/plugin-content-docs": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.17.tgz", - "integrity": "sha512-YYrBpuRfTfE6NtENrpSHTJ7K7PZifn6j6hcuvdC0QKE+WD8pS+O2/Ws30yoyvHwLnAnfhvaderh1v9Kaa0/ANg==", - "dependencies": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/logger": "2.0.0-beta.17", - "@docusaurus/mdx-loader": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.18.tgz", + "integrity": "sha512-z4LFGBJuzn4XQiUA7OEA2SZTqlp+IYVjd3NrCk/ZUfNi1tsTJS36ATkk9Y6d0Nsp7K2kRXqaXPsz4adDgeIU+Q==", + "dependencies": { + "@docusaurus/core": "2.0.0-beta.18", + "@docusaurus/logger": "2.0.0-beta.18", + "@docusaurus/mdx-loader": "2.0.0-beta.18", + "@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", "import-fresh": "^3.3.0", @@ -2502,7 +2405,7 @@ "remark-admonitions": "^1.2.1", "tslib": "^2.3.1", "utility-types": "^3.10.0", - "webpack": "^5.69.1" + "webpack": "^5.70.0" }, "engines": { "node": ">=14" @@ -2513,18 +2416,18 @@ } }, "node_modules/@docusaurus/plugin-content-pages": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.17.tgz", - "integrity": "sha512-d5x0mXTMJ44ojRQccmLyshYoamFOep2AnBe69osCDnwWMbD3Or3pnc2KMK9N7mVpQFnNFKbHNCLrX3Rv0uwEHA==", - "dependencies": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/mdx-loader": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.18.tgz", + "integrity": "sha512-CJ2Xeb9hQrMeF4DGywSDVX2TFKsQpc8ZA7czyeBAAbSFsoRyxXPYeSh8aWljqR4F1u/EKGSKy0Shk/D4wumaHw==", + "dependencies": { + "@docusaurus/core": "2.0.0-beta.18", + "@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", "remark-admonitions": "^1.2.1", "tslib": "^2.3.1", - "webpack": "^5.69.1" + "webpack": "^5.70.0" }, "engines": { "node": ">=14" @@ -2535,12 +2438,12 @@ } }, "node_modules/@docusaurus/plugin-debug": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.17.tgz", - "integrity": "sha512-p26fjYFRSC0esEmKo/kRrLVwXoFnzPCFDumwrImhPyqfVxbj+IKFaiXkayb2qHnyEGE/1KSDIgRF4CHt/pyhiw==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.18.tgz", + "integrity": "sha512-inLnLERgG7q0WlVmK6nYGHwVqREz13ivkynmNygEibJZToFRdgnIPW+OwD8QzgC5MpQTJw7+uYjcitpBumy1Gw==", "dependencies": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", + "@docusaurus/core": "2.0.0-beta.18", + "@docusaurus/utils": "2.0.0-beta.18", "fs-extra": "^10.0.1", "react-json-view": "^1.21.3", "tslib": "^2.3.1" @@ -2554,12 +2457,12 @@ } }, "node_modules/@docusaurus/plugin-google-analytics": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.17.tgz", - "integrity": "sha512-jvgYIhggYD1W2jymqQVAAyjPJUV1xMCn70bAzaCMxriureMWzhQ/kQMVQpop0ijTMvifOxaV9yTcL1VRXev++A==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.18.tgz", + "integrity": "sha512-s9dRBWDrZ1uu3wFXPCF7yVLo/+5LUFAeoxpXxzory8gn9GYDt8ZDj80h5DUyCLxiy72OG6bXWNOYS/Vc6cOPXQ==", "dependencies": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", + "@docusaurus/core": "2.0.0-beta.18", + "@docusaurus/utils-validation": "2.0.0-beta.18", "tslib": "^2.3.1" }, "engines": { @@ -2571,12 +2474,12 @@ } }, "node_modules/@docusaurus/plugin-google-gtag": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-beta.17.tgz", - "integrity": "sha512-1pnWHtIk1Jfeqwvr8PlcPE5SODWT1gW4TI+ptmJbJ296FjjyvL/pG0AcGEJmYLY/OQc3oz0VQ0W2ognw9jmFIw==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-beta.18.tgz", + "integrity": "sha512-h7vPuLVo/9pHmbFcvb4tCpjg4SxxX4k+nfVDyippR254FM++Z/nA5pRB0WvvIJ3ZTe0ioOb5Wlx2xdzJIBHUNg==", "dependencies": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", + "@docusaurus/core": "2.0.0-beta.18", + "@docusaurus/utils-validation": "2.0.0-beta.18", "tslib": "^2.3.1" }, "engines": { @@ -2588,14 +2491,14 @@ } }, "node_modules/@docusaurus/plugin-sitemap": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.17.tgz", - "integrity": "sha512-19/PaGCsap6cjUPZPGs87yV9e1hAIyd0CTSeVV6Caega8nmOKk20FTrQGFJjZPeX8jvD9QIXcdg6BJnPxcKkaQ==", - "dependencies": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", - "@docusaurus/utils-common": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.18.tgz", + "integrity": "sha512-Klonht0Ye3FivdBpS80hkVYNOH+8lL/1rbCPEV92rKhwYdwnIejqhdKct4tUTCl8TYwWiyeUFQqobC/5FNVZPQ==", + "dependencies": { + "@docusaurus/core": "2.0.0-beta.18", + "@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", "sitemap": "^7.1.1", "tslib": "^2.3.1" @@ -2609,21 +2512,21 @@ } }, "node_modules/@docusaurus/preset-classic": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.17.tgz", - "integrity": "sha512-7YUxPEgM09aZWr25/hpDEp1gPl+1KsCPV1ZTRW43sbQ9TinPm+9AKR3rHVDa8ea8MdiS7BpqCVyK+H/eiyQrUw==", - "dependencies": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/plugin-content-blog": "2.0.0-beta.17", - "@docusaurus/plugin-content-docs": "2.0.0-beta.17", - "@docusaurus/plugin-content-pages": "2.0.0-beta.17", - "@docusaurus/plugin-debug": "2.0.0-beta.17", - "@docusaurus/plugin-google-analytics": "2.0.0-beta.17", - "@docusaurus/plugin-google-gtag": "2.0.0-beta.17", - "@docusaurus/plugin-sitemap": "2.0.0-beta.17", - "@docusaurus/theme-classic": "2.0.0-beta.17", - "@docusaurus/theme-common": "2.0.0-beta.17", - "@docusaurus/theme-search-algolia": "2.0.0-beta.17" + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.18.tgz", + "integrity": "sha512-TfDulvFt/vLWr/Yy7O0yXgwHtJhdkZ739bTlFNwEkRMAy8ggi650e52I1I0T79s67llecb4JihgHPW+mwiVkCQ==", + "dependencies": { + "@docusaurus/core": "2.0.0-beta.18", + "@docusaurus/plugin-content-blog": "2.0.0-beta.18", + "@docusaurus/plugin-content-docs": "2.0.0-beta.18", + "@docusaurus/plugin-content-pages": "2.0.0-beta.18", + "@docusaurus/plugin-debug": "2.0.0-beta.18", + "@docusaurus/plugin-google-analytics": "2.0.0-beta.18", + "@docusaurus/plugin-google-gtag": "2.0.0-beta.18", + "@docusaurus/plugin-sitemap": "2.0.0-beta.18", + "@docusaurus/theme-classic": "2.0.0-beta.18", + "@docusaurus/theme-common": "2.0.0-beta.18", + "@docusaurus/theme-search-algolia": "2.0.0-beta.18" }, "engines": { "node": ">=14" @@ -2646,29 +2549,29 @@ } }, "node_modules/@docusaurus/theme-classic": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.17.tgz", - "integrity": "sha512-xfZ9kpgqo0lP9YO4rJj79wtiQJXU6ARo5wYy10IIwiWN+lg00scJHhkmNV431b05xIUjUr0cKeH9nqZmEsQRKg==", - "dependencies": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/plugin-content-blog": "2.0.0-beta.17", - "@docusaurus/plugin-content-docs": "2.0.0-beta.17", - "@docusaurus/plugin-content-pages": "2.0.0-beta.17", - "@docusaurus/theme-common": "2.0.0-beta.17", - "@docusaurus/theme-translations": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", - "@docusaurus/utils-common": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.18.tgz", + "integrity": "sha512-WJWofvSGKC4Luidk0lyUwkLnO3DDynBBHwmt4QrV+aAVWWSOHUjA2mPOF6GLGuzkZd3KfL9EvAfsU0aGE1Hh5g==", + "dependencies": { + "@docusaurus/core": "2.0.0-beta.18", + "@docusaurus/plugin-content-blog": "2.0.0-beta.18", + "@docusaurus/plugin-content-docs": "2.0.0-beta.18", + "@docusaurus/plugin-content-pages": "2.0.0-beta.18", + "@docusaurus/theme-common": "2.0.0-beta.18", + "@docusaurus/theme-translations": "2.0.0-beta.18", + "@docusaurus/utils": "2.0.0-beta.18", + "@docusaurus/utils-common": "2.0.0-beta.18", + "@docusaurus/utils-validation": "2.0.0-beta.18", "@mdx-js/react": "^1.6.22", "clsx": "^1.1.1", "copy-text-to-clipboard": "^3.0.1", - "infima": "0.2.0-alpha.37", + "infima": "0.2.0-alpha.38", "lodash": "^4.17.21", - "postcss": "^8.4.7", - "prism-react-renderer": "^1.2.1", + "postcss": "^8.4.12", + "prism-react-renderer": "^1.3.1", "prismjs": "^1.27.0", "react-router-dom": "^5.2.0", - "rtlcss": "^3.3.0" + "rtlcss": "^3.5.0" }, "engines": { "node": ">=14" @@ -2679,14 +2582,14 @@ } }, "node_modules/@docusaurus/theme-common": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.0.0-beta.17.tgz", - "integrity": "sha512-LJBDhx+Qexn1JHBqZbE4k+7lBaV1LgpE33enXf43ShB7ebhC91d5HLHhBwgt0pih4+elZU4rG+BG/roAmsNM0g==", - "dependencies": { - "@docusaurus/module-type-aliases": "2.0.0-beta.17", - "@docusaurus/plugin-content-blog": "2.0.0-beta.17", - "@docusaurus/plugin-content-docs": "2.0.0-beta.17", - "@docusaurus/plugin-content-pages": "2.0.0-beta.17", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.0.0-beta.18.tgz", + "integrity": "sha512-3pI2Q6ttScDVTDbuUKAx+TdC8wmwZ2hfWk8cyXxksvC9bBHcyzXhSgcK8LTsszn2aANyZ3e3QY2eNSOikTFyng==", + "dependencies": { + "@docusaurus/module-type-aliases": "2.0.0-beta.18", + "@docusaurus/plugin-content-blog": "2.0.0-beta.18", + "@docusaurus/plugin-content-docs": "2.0.0-beta.18", + "@docusaurus/plugin-content-pages": "2.0.0-beta.18", "clsx": "^1.1.1", "parse-numeric-range": "^1.3.0", "prism-react-renderer": "^1.3.1", @@ -2702,19 +2605,20 @@ } }, "node_modules/@docusaurus/theme-search-algolia": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.17.tgz", - "integrity": "sha512-W12XKM7QC5Jmrec359bJ7aDp5U8DNkCxjVKsMNIs8rDunBoI/N+R35ERJ0N7Bg9ONAWO6o7VkUERQsfGqdvr9w==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.18.tgz", + "integrity": "sha512-2w97KO/gnjI49WVtYQqENpQ8iO1Sem0yaTxw7/qv/ndlmIAQD0syU4yx6GsA7bTQCOGwKOWWzZSetCgUmTnWgA==", "dependencies": { "@docsearch/react": "^3.0.0", - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/logger": "2.0.0-beta.17", - "@docusaurus/theme-common": "2.0.0-beta.17", - "@docusaurus/theme-translations": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", - "algoliasearch": "^4.12.1", - "algoliasearch-helper": "^3.7.0", + "@docusaurus/core": "2.0.0-beta.18", + "@docusaurus/logger": "2.0.0-beta.18", + "@docusaurus/plugin-content-docs": "2.0.0-beta.18", + "@docusaurus/theme-common": "2.0.0-beta.18", + "@docusaurus/theme-translations": "2.0.0-beta.18", + "@docusaurus/utils": "2.0.0-beta.18", + "@docusaurus/utils-validation": "2.0.0-beta.18", + "algoliasearch": "^4.13.0", + "algoliasearch-helper": "^3.7.4", "clsx": "^1.1.1", "eta": "^1.12.3", "fs-extra": "^10.0.1", @@ -2731,9 +2635,9 @@ } }, "node_modules/@docusaurus/theme-translations": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.0.0-beta.17.tgz", - "integrity": "sha512-oxCX6khjZH3lgdRCL0DH06KkUM/kDr9+lzB35+vY8rpFeQruVgRdi8ekPqG3+Wr0U/N+LMhcYE5BmCb6D0Fv2A==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.0.0-beta.18.tgz", + "integrity": "sha512-1uTEUXlKC9nco1Lx9H5eOwzB+LP4yXJG5wfv1PMLE++kJEdZ40IVorlUi3nJnaa9/lJNq5vFvvUDrmeNWsxy/Q==", "dependencies": { "fs-extra": "^10.0.1", "tslib": "^2.3.1" @@ -2743,56 +2647,46 @@ } }, "node_modules/@docusaurus/types": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.0.0-beta.17.tgz", - "integrity": "sha512-4o7TXu5sKlQpybfFFtsGUElBXwSpiXKsQyyWaRKj7DRBkvMtkDX6ITZNnZO9+EHfLbP/cfrokB8C/oO7mCQ5BQ==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.0.0-beta.18.tgz", + "integrity": "sha512-zkuSmPQYP3+z4IjGHlW0nGzSSpY7Sit0Nciu/66zSb5m07TK72t6T1MlpCAn/XijcB9Cq6nenC3kJh66nGsKYg==", "dependencies": { "commander": "^5.1.0", "joi": "^17.6.0", - "querystring": "0.2.1", "utility-types": "^3.10.0", - "webpack": "^5.69.1", + "webpack": "^5.70.0", "webpack-merge": "^5.8.0" } }, - "node_modules/@docusaurus/types/node_modules/querystring": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", - "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/@docusaurus/utils": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.0.0-beta.17.tgz", - "integrity": "sha512-yRKGdzSc5v6M/6GyQ4omkrAHCleevwKYiIrufCJgRbOtkhYE574d8mIjjirOuA/emcyLxjh+TLtqAA5TwhIryA==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.0.0-beta.18.tgz", + "integrity": "sha512-v2vBmH7xSbPwx3+GB90HgLSQdj+Rh5ELtZWy7M20w907k0ROzDmPQ/8Ke2DK3o5r4pZPGnCrsB3SaYI83AEmAA==", "dependencies": { - "@docusaurus/logger": "2.0.0-beta.17", - "@svgr/webpack": "^6.0.0", + "@docusaurus/logger": "2.0.0-beta.18", + "@svgr/webpack": "^6.2.1", "file-loader": "^6.2.0", "fs-extra": "^10.0.1", "github-slugger": "^1.4.0", - "globby": "^11.0.4", + "globby": "^11.1.0", "gray-matter": "^4.0.3", "js-yaml": "^4.1.0", "lodash": "^4.17.21", - "micromatch": "^4.0.4", + "micromatch": "^4.0.5", "resolve-pathname": "^3.0.0", "shelljs": "^0.8.5", "tslib": "^2.3.1", "url-loader": "^4.1.1", - "webpack": "^5.69.1" + "webpack": "^5.70.0" }, "engines": { "node": ">=14" } }, "node_modules/@docusaurus/utils-common": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.0.0-beta.17.tgz", - "integrity": "sha512-90WCVdj6zYzs7neEIS594qfLO78cUL6EVK1CsRHJgVkkGjcYlCQ1NwkyO7bOb+nIAwdJrPJRc2FBSpuEGxPD3w==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.0.0-beta.18.tgz", + "integrity": "sha512-pK83EcOIiKCLGhrTwukZMo5jqd1sqqqhQwOVyxyvg+x9SY/lsnNzScA96OEfm+qQLBwK1OABA7Xc1wfkgkUxvw==", "dependencies": { "tslib": "^2.3.1" }, @@ -2801,13 +2695,14 @@ } }, "node_modules/@docusaurus/utils-validation": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.17.tgz", - "integrity": "sha512-5UjayUP16fDjgd52eSEhL7SlN9x60pIhyS+K7kt7RmpSLy42+4/bSr2pns2VlATmuaoNOO6iIFdB2jgSYJ6SGA==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.18.tgz", + "integrity": "sha512-3aDrXjJJ8Cw2MAYEk5JMNnr8UHPxmVNbPU/PIHFWmWK09nJvs3IQ8nc9+8I30aIjRdIyc/BIOCxgvAcJ4hsxTA==", "dependencies": { - "@docusaurus/logger": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", + "@docusaurus/logger": "2.0.0-beta.18", + "@docusaurus/utils": "2.0.0-beta.18", "joi": "^17.6.0", + "js-yaml": "^4.1.0", "tslib": "^2.3.1" }, "engines": { @@ -3013,17 +2908,118 @@ } }, "node_modules/@slorber/static-site-generator-webpack-plugin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.1.tgz", - "integrity": "sha512-PSv4RIVO1Y3kvHxjvqeVisk3E9XFoO04uwYBDWe217MFqKspplYswTuKLiJu0aLORQWzuQjfVsSlLPojwfYsLw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.4.tgz", + "integrity": "sha512-FvMavoWEIePps6/JwGCOLYKCRhuwIHhMtmbKpBFgzNkxwpa/569LfTkrbRk1m1I3n+ezJK4on9E1A6cjuZmD9g==", "dependencies": { "bluebird": "^3.7.1", "cheerio": "^0.22.0", - "eval": "^0.1.4", - "url": "^0.11.0", + "eval": "^0.1.8", "webpack-sources": "^1.4.3" } }, + "node_modules/@slorber/static-site-generator-webpack-plugin/node_modules/cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", + "dependencies": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash.assignin": "^4.0.9", + "lodash.bind": "^4.1.4", + "lodash.defaults": "^4.0.1", + "lodash.filter": "^4.4.0", + "lodash.flatten": "^4.2.0", + "lodash.foreach": "^4.3.0", + "lodash.map": "^4.4.0", + "lodash.merge": "^4.4.0", + "lodash.pick": "^4.2.1", + "lodash.reduce": "^4.4.0", + "lodash.reject": "^4.4.0", + "lodash.some": "^4.4.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@slorber/static-site-generator-webpack-plugin/node_modules/css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dependencies": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "node_modules/@slorber/static-site-generator-webpack-plugin/node_modules/css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "engines": { + "node": "*" + } + }, + "node_modules/@slorber/static-site-generator-webpack-plugin/node_modules/dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dependencies": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "node_modules/@slorber/static-site-generator-webpack-plugin/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/@slorber/static-site-generator-webpack-plugin/node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/@slorber/static-site-generator-webpack-plugin/node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/@slorber/static-site-generator-webpack-plugin/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "node_modules/@slorber/static-site-generator-webpack-plugin/node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/@slorber/static-site-generator-webpack-plugin/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz", @@ -3817,30 +3813,31 @@ } }, "node_modules/algoliasearch": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.12.2.tgz", - "integrity": "sha512-bn1P9+V415zeDQJtXn+1SwuwedEAv9/LJAxt8XwR6ygH/sMwaHSm2hpkz8wIbCBt/tKQ43TL672Kyxzv5PwGgQ==", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.12.2", - "@algolia/cache-common": "4.12.2", - "@algolia/cache-in-memory": "4.12.2", - "@algolia/client-account": "4.12.2", - "@algolia/client-analytics": "4.12.2", - "@algolia/client-common": "4.12.2", - "@algolia/client-personalization": "4.12.2", - "@algolia/client-search": "4.12.2", - "@algolia/logger-common": "4.12.2", - "@algolia/logger-console": "4.12.2", - "@algolia/requester-browser-xhr": "4.12.2", - "@algolia/requester-common": "4.12.2", - "@algolia/requester-node-http": "4.12.2", - "@algolia/transporter": "4.12.2" + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.13.0.tgz", + "integrity": "sha512-oHv4faI1Vl2s+YC0YquwkK/TsaJs79g2JFg5FDm2rKN12VItPTAeQ7hyJMHarOPPYuCnNC5kixbtcqvb21wchw==", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.13.0", + "@algolia/cache-common": "4.13.0", + "@algolia/cache-in-memory": "4.13.0", + "@algolia/client-account": "4.13.0", + "@algolia/client-analytics": "4.13.0", + "@algolia/client-common": "4.13.0", + "@algolia/client-personalization": "4.13.0", + "@algolia/client-search": "4.13.0", + "@algolia/logger-common": "4.13.0", + "@algolia/logger-console": "4.13.0", + "@algolia/requester-browser-xhr": "4.13.0", + "@algolia/requester-common": "4.13.0", + "@algolia/requester-node-http": "4.13.0", + "@algolia/transporter": "4.13.0" } }, "node_modules/algoliasearch-helper": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.7.0.tgz", - "integrity": "sha512-XJ3QfERBLfeVCyTVx80gon7r3/rgm/CE8Ha1H7cbablRe/X7SfYQ14g/eO+MhjVKIQp+gy9oC6G5ilmLwS1k6w==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.7.4.tgz", + "integrity": "sha512-KmJrsHVm5TmxZ9Oj53XdXuM4CQeu7eVFnB15tpSFt+7is1d1yVCv3hxCLMqYSw/rH42ccv013miQpRr268P8vw==", + "deprecated": "3.7.3", "dependencies": { "@algolia/events": "^4.0.1" }, @@ -3946,13 +3943,23 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", - "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", + "version": "10.4.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", + "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], "dependencies": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001297", - "fraction.js": "^4.1.2", + "browserslist": "^4.20.2", + "caniuse-lite": "^1.0.30001317", + "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -3963,10 +3970,6 @@ "engines": { "node": "^10 || ^12 || >=14" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": "^8.1.0" } @@ -3980,12 +3983,12 @@ } }, "node_modules/babel-loader": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz", + "integrity": "sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==", "dependencies": { "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", + "loader-utils": "^2.0.0", "make-dir": "^3.1.0", "schema-utils": "^2.6.5" }, @@ -3997,30 +4000,6 @@ "webpack": ">=2" } }, - "node_modules/babel-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/babel-plugin-apply-mdx-type-prop": { "version": "1.6.22", "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", @@ -4257,14 +4236,24 @@ } }, "node_modules/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", "escalade": "^3.1.1", - "node-releases": "^2.0.1", + "node-releases": "^2.0.2", "picocolors": "^1.0.0" }, "bin": { @@ -4272,10 +4261,6 @@ }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" } }, "node_modules/buffer-from": { @@ -4403,13 +4388,19 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001302", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001302.tgz", - "integrity": "sha512-YYTMO+tfwvgUN+1ZnRViE53Ma1S/oETg+J2lISsqi/ZTNThj3ZYBOKP2rHwJc37oCsPqAzJ3w2puZHn0xlLPPw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } + "version": "1.0.30001320", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001320.tgz", + "integrity": "sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] }, "node_modules/ccount": { "version": "1.1.0", @@ -4463,29 +4454,23 @@ } }, "node_modules/cheerio": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", - "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", + "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", "dependencies": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.0", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash.assignin": "^4.0.9", - "lodash.bind": "^4.1.4", - "lodash.defaults": "^4.0.1", - "lodash.filter": "^4.4.0", - "lodash.flatten": "^4.2.0", - "lodash.foreach": "^4.3.0", - "lodash.map": "^4.4.0", - "lodash.merge": "^4.4.0", - "lodash.pick": "^4.2.1", - "lodash.reduce": "^4.4.0", - "lodash.reject": "^4.4.0", - "lodash.some": "^4.4.0" + "cheerio-select": "^1.5.0", + "dom-serializer": "^1.3.2", + "domhandler": "^4.2.0", + "htmlparser2": "^6.1.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "tslib": "^2.2.0" }, "engines": { - "node": ">= 0.6" + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" } }, "node_modules/cheerio-select": { @@ -4503,102 +4488,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/cheerio-select/node_modules/css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cheerio-select/node_modules/css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cheerio-select/node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/cheerio-select/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/cheerio-select/node_modules/domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/cheerio-select/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/cheerio-select/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/cheerio-select/node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -5162,12 +5051,12 @@ } }, "node_modules/css-loader": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.6.0.tgz", - "integrity": "sha512-FK7H2lisOixPT406s5gZM1S3l8GrfhEBT3ZiL2UX1Ng1XWs0y2GPllz/OTyvbaHe12VgQrIXIzuEGVlbUhodqg==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.5", + "postcss": "^8.4.7", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", @@ -5281,14 +5170,18 @@ } }, "node_modules/css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "dependencies": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, "node_modules/css-tree": { @@ -5312,11 +5205,14 @@ } }, "node_modules/css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", "engines": { - "node": "*" + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, "node_modules/cssesc": { @@ -5331,11 +5227,11 @@ } }, "node_modules/cssnano": { - "version": "5.0.17", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.17.tgz", - "integrity": "sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.5.tgz", + "integrity": "sha512-VZO1e+bRRVixMeia1zKagrv0lLN1B/r/u12STGNNUFxnp97LIFgZHQa0JxqlwEkvzUyA9Oz/WnCTAFkdEbONmg==", "dependencies": { - "cssnano-preset-default": "^5.1.12", + "cssnano-preset-default": "^5.2.5", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, @@ -5351,15 +5247,15 @@ } }, "node_modules/cssnano-preset-advanced": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.2.1.tgz", - "integrity": "sha512-M/qkiVwnKfGiolf20yDeOWPDlIqf9NItkQYUYDQluBTUITCFnNfuFrAeRln0P6tSyDeCUOgmqQWW++B4A3gNgQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.1.tgz", + "integrity": "sha512-kfCknalY5VX/JKJ3Iri5/5rhZmQIqkbqgXsA6oaTnfA4flY/tt+w0hMxbExr0/fVuJL8w56j211op+pkQoNzoQ==", "dependencies": { "autoprefixer": "^10.3.7", - "cssnano-preset-default": "^5.2.0", + "cssnano-preset-default": "^5.2.5", "postcss-discard-unused": "^5.1.0", - "postcss-merge-idents": "^5.1.0", - "postcss-reduce-idents": "^5.1.0", + "postcss-merge-idents": "^5.1.1", + "postcss-reduce-idents": "^5.2.0", "postcss-zindex": "^5.1.0" }, "engines": { @@ -5370,24 +5266,24 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.0.tgz", - "integrity": "sha512-3N5Vcptj2pqVKpHVqH6ezOJvqikR2PdLTbTrsrhF61FbLRQuujAqZ2sKN5rvcMsb7hFjrNnjZT8CGEkxoN/Pwg==", + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.5.tgz", + "integrity": "sha512-WopL7PzN7sos3X8B54/QGl+CZUh1f0qN4ds+y2d5EPwRSSc3jsitVw81O+Uyop0pXyOfPfZxnc+LmA8w/Ki/WQ==", "dependencies": { "css-declaration-sorter": "^6.0.3", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", "postcss-colormin": "^5.3.0", "postcss-convert-values": "^5.1.0", - "postcss-discard-comments": "^5.1.0", + "postcss-discard-comments": "^5.1.1", "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.0", + "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.0", - "postcss-merge-rules": "^5.1.0", + "postcss-merge-longhand": "^5.1.3", + "postcss-merge-rules": "^5.1.1", "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.0", - "postcss-minify-params": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.2", "postcss-minify-selectors": "^5.2.0", "postcss-normalize-charset": "^5.1.0", "postcss-normalize-display-values": "^5.1.0", @@ -5397,12 +5293,12 @@ "postcss-normalize-timing-functions": "^5.1.0", "postcss-normalize-unicode": "^5.1.0", "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.0", - "postcss-ordered-values": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.1", "postcss-reduce-initial": "^5.1.0", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.0" + "postcss-unique-selectors": "^5.1.1" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -5683,34 +5579,54 @@ } }, "node_modules/dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", "dependencies": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] }, "node_modules/domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dependencies": { - "domelementtype": "1" + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, "node_modules/domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, "node_modules/dot-case": { @@ -5762,9 +5678,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "node_modules/electron-to-chromium": { - "version": "1.4.53", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.53.tgz", - "integrity": "sha512-rFveSKQczlcav+H3zkKqykU6ANseFwXwkl855jOIap5/0gnEcuIhv2ecz6aoTrXavF6I/CEBeRnBnkB51k06ew==" + "version": "1.4.94", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.94.tgz", + "integrity": "sha512-CoOKsuACoa0PAG3hQXxbh/XDiFcjGuSyGKUi09cjMHOt6RCi7/EXgXhaFF3I+aC89Omudqmkzd0YOQKxwtf/Bg==" }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -5805,9 +5721,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", - "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", + "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -5817,9 +5733,12 @@ } }, "node_modules/entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, "node_modules/error-ex": { "version": "1.3.2", @@ -5945,10 +5864,11 @@ } }, "node_modules/eval": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.6.tgz", - "integrity": "sha512-o0XUw+5OGkXw4pJZzQoXUk+H87DHuC+7ZE//oSrRGtatTmr12oTnLfg6QOq9DyTt0c/p4TwzgmkKrBzWTSizyQ==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", + "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", "dependencies": { + "@types/node": "*", "require-like": ">= 0.1.1" }, "engines": { @@ -6081,9 +6001,9 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -6092,7 +6012,7 @@ "micromatch": "^4.0.4" }, "engines": { - "node": ">=8" + "node": ">=8.6.0" } }, "node_modules/fast-json-stable-stringify": { @@ -6410,9 +6330,9 @@ } }, "node_modules/fraction.js": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.3.tgz", - "integrity": "sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", "engines": { "node": "*" }, @@ -6618,15 +6538,15 @@ } }, "node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" }, "engines": { @@ -7010,16 +6930,21 @@ } }, "node_modules/htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], "dependencies": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" } }, "node_modules/http-cache-semantics": { @@ -7200,9 +7125,9 @@ } }, "node_modules/infima": { - "version": "0.2.0-alpha.37", - "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.37.tgz", - "integrity": "sha512-4GX7Baw+/lwS4PPW/UJNY89tWSvYG1DL6baKVdpK6mC593iRgMssxNtORMTFArLPJ/A/lzsGhRmx+z6MaMxj0Q==", + "version": "0.2.0-alpha.38", + "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.38.tgz", + "integrity": "sha512-1WsmqSMI5IqzrUx3goq+miJznHBonbE3aoqZ1AR/i/oHhroxNeSV6Awv5VoVfXBhfTzLSnxkHaRI2qpAMYcCzw==", "engines": { "node": ">=12" } @@ -8093,12 +8018,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" @@ -8164,9 +8089,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz", - "integrity": "sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", + "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==", "dependencies": { "schema-utils": "^4.0.0" }, @@ -8182,9 +8107,9 @@ } }, "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -8361,9 +8286,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -8409,11 +8334,14 @@ "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" }, "node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", "dependencies": { - "boolbase": "~1.0.0" + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, "node_modules/object-assign": { @@ -8779,9 +8707,9 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "engines": { "node": ">=8.6" }, @@ -8889,9 +8817,19 @@ } }, "node_modules/postcss": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.7.tgz", - "integrity": "sha512-L9Ye3r6hkkCeOETQX6iOaWZgjp3LL6Lpqm6EtgbKrgqGGteRMNb9vzBfRL96YOSu8o7x3MfIH9Mo5cPJFGrW6A==", + "version": "8.4.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", + "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], "dependencies": { "nanoid": "^3.3.1", "picocolors": "^1.0.0", @@ -8899,10 +8837,6 @@ }, "engines": { "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-calc": { @@ -8949,9 +8883,9 @@ } }, "node_modules/postcss-discard-comments": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.0.tgz", - "integrity": "sha512-L0IKF4jAshRyn03SkEO6ar/Ipz2oLywVbg2THf2EqqdNkBwmVMxuTR/RoAltOw4piiaLt3gCAdrbAqmTBInmhg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", + "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==", "engines": { "node": "^10 || ^12 || >=14.0" }, @@ -8971,9 +8905,9 @@ } }, "node_modules/postcss-discard-empty": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.0.tgz", - "integrity": "sha512-782T/buGgb3HOuHOJAHpdyKzAAKsv/BxWqsutnZ+QsiHEcDkY7v+6WWdturuBiSal6XMOO1p1aJvwXdqLD5vhA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", "engines": { "node": "^10 || ^12 || >=14.0" }, @@ -9028,9 +8962,9 @@ } }, "node_modules/postcss-merge-idents": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.0.tgz", - "integrity": "sha512-l+awq6+uUiCILsHahWK5KE25495I4oCKlUrIA+EdBvklnVdWlBEsbkzq5+ouPKb8OAe4WwRBgFvaSq7f77FY+w==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz", + "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==", "dependencies": { "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" @@ -9043,9 +8977,9 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.0.tgz", - "integrity": "sha512-Gr46srN2tsLD8fudKYoHO56RG0BLQ2nsBRnSZGY04eNBPwTeWa9KeHrbL3tOLAHyB2aliikycPH2TMJG1U+W6g==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.3.tgz", + "integrity": "sha512-lX8GPGvZ0iGP/IboM7HXH5JwkXvXod1Rr8H8ixwiA372hArk0zP4ZcCy4z4Prg/bfNlbbTf0KCOjCF9kKnpP/w==", "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^5.1.0" @@ -9058,9 +8992,9 @@ } }, "node_modules/postcss-merge-rules": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.0.tgz", - "integrity": "sha512-NecukEJovQ0mG7h7xV8wbYAkXGTO3MPKnXvuiXzOKcxoOodfTTKYjeo8TMhAswlSkjcPIBlnKbSFcTuVSDaPyQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz", + "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==", "dependencies": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", @@ -9089,9 +9023,9 @@ } }, "node_modules/postcss-minify-gradients": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.0.tgz", - "integrity": "sha512-J/TMLklkONn3LuL8wCwfwU8zKC1hpS6VcxFkNUNjmVt53uKqrrykR3ov11mdUYyqVMEx67slMce0tE14cE4DTg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", "dependencies": { "colord": "^2.9.1", "cssnano-utils": "^3.1.0", @@ -9105,9 +9039,9 @@ } }, "node_modules/postcss-minify-params": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.0.tgz", - "integrity": "sha512-q67dcts4Hct6x8+JmhBgctHkbvUsqGIg2IItenjE63iZXMbhjr7AlVZkNnKtIGt/1Wsv7p/7YzeSII6Q+KPXRg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.2.tgz", + "integrity": "sha512-aEP+p71S/urY48HWaRHasyx4WHQJyOYaKpQ6eXl8k0kxg66Wt/30VR6/woh8THgcpRbonJD5IeD+CzNhPi1L8g==", "dependencies": { "browserslist": "^4.16.6", "cssnano-utils": "^3.1.0", @@ -9301,9 +9235,9 @@ } }, "node_modules/postcss-normalize-whitespace": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.0.tgz", - "integrity": "sha512-7O1FanKaJkpWFyCghFzIkLhehujV/frGkdofGLwhg5upbLyGsSfiTcZAdSzoPsSUgyPCkBkNMeWR8yVgPdQybg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -9315,9 +9249,9 @@ } }, "node_modules/postcss-ordered-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.0.tgz", - "integrity": "sha512-wU4Z4D4uOIH+BUKkYid36gGDJNQtkVJT7Twv8qH6UyfttbbJWyw4/xIPuVEkkCtQLAJ0EdsNSh8dlvqkXb49TA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", + "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", "dependencies": { "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" @@ -9330,9 +9264,9 @@ } }, "node_modules/postcss-reduce-idents": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.1.0.tgz", - "integrity": "sha512-2xDoPTzv98D/HFDrGTgVEBlcuS47wvua2oc4g2WoZdYPwzPWMWb2TCRruCyN7vbl+HAtVLGvEOMZIZb3wYgv7w==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz", + "integrity": "sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -9414,9 +9348,9 @@ } }, "node_modules/postcss-unique-selectors": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.0.tgz", - "integrity": "sha512-LmUhgGobtpeVJJHuogzjLRwJlN7VH+BL5c9GKMVJSS/ejoyePZkXvNsYUtk//F6vKOGK86gfRS0xH7fXQSDtvA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", "dependencies": { "postcss-selector-parser": "^6.0.5" }, @@ -9607,15 +9541,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/queue": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", @@ -10312,151 +10237,37 @@ "trim": "0.0.1", "trim-trailing-lines": "^1.0.0", "unherit": "^1.0.4", - "unist-util-remove-position": "^2.0.0", - "vfile-location": "^3.0.0", - "xtend": "^4.0.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", - "dependencies": { - "mdast-squeeze-paragraphs": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/renderkid/node_modules/css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/renderkid/node_modules/css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/renderkid/node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/renderkid/node_modules/domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" }, "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/renderkid/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "node_modules/remark-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "mdast-squeeze-paragraphs": "^4.0.0" }, "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/renderkid/node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" } }, "node_modules/renderkid/node_modules/strip-ansi": { @@ -11332,102 +11143,6 @@ "node": ">= 10" } }, - "node_modules/svgo/node_modules/css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/svgo/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/svgo/node_modules/domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/svgo/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/svgo/node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, "node_modules/tapable": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", @@ -11885,15 +11600,6 @@ "node": ">=6" } }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, "node_modules/url-loader": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", @@ -11948,11 +11654,6 @@ "node": ">=4" } }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, "node_modules/use-composed-ref": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.2.1.tgz", @@ -12127,9 +11828,9 @@ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, "node_modules/webpack": { - "version": "5.69.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.69.1.tgz", - "integrity": "sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A==", + "version": "5.70.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", + "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^0.0.51", @@ -12140,7 +11841,7 @@ "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.3", + "enhanced-resolve": "^5.9.2", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -12693,74 +12394,74 @@ "integrity": "sha512-ylQAYv5H0YKMfHgVWX0j0NmL8XBcAeeeVQUmppnnMtzDbDnca6CzhKj3Q8eF9cHCgcdTDdb5K+3aKyGWA0obug==" }, "@algolia/cache-browser-local-storage": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.12.2.tgz", - "integrity": "sha512-z8LjFsQc0B6h6LEE3pkUGM4ErVktn6bkFbhnYbTccjmFVQ+wXFJd/D63e0WtaC+hwRB1xq8uKhkz9oojEKEsGA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.13.0.tgz", + "integrity": "sha512-nj1vHRZauTqP/bluwkRIgEADEimqojJgoTRCel5f6q8WCa9Y8QeI4bpDQP28FoeKnDRYa3J5CauDlN466jqRhg==", "requires": { - "@algolia/cache-common": "4.12.2" + "@algolia/cache-common": "4.13.0" } }, "@algolia/cache-common": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.12.2.tgz", - "integrity": "sha512-r//r7MF0Na0HxD2BHnjWsDKuI72Z5UEf/Rb/8MC08XKBsjCwBihGxWxycjRcNGjNEIxJBsvRMIEOipcd9qD54g==" + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.13.0.tgz", + "integrity": "sha512-f9mdZjskCui/dA/fA/5a+6hZ7xnHaaZI5tM/Rw9X8rRB39SUlF/+o3P47onZ33n/AwkpSbi5QOyhs16wHd55kA==" }, "@algolia/cache-in-memory": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.12.2.tgz", - "integrity": "sha512-opWpbBUloP1fcTG3wBDnAfcoyNXW5GFDgGtLXrSANdfnelPKkr3O8j01ZTkRlPIuBDR0izGZG8MVWMDlTf71Bw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.13.0.tgz", + "integrity": "sha512-hHdc+ahPiMM92CQMljmObE75laYzNFYLrNOu0Q3/eyvubZZRtY2SUsEEgyUEyzXruNdzrkcDxFYa7YpWBJYHAg==", "requires": { - "@algolia/cache-common": "4.12.2" + "@algolia/cache-common": "4.13.0" } }, "@algolia/client-account": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.12.2.tgz", - "integrity": "sha512-HZqEyeVVjzOlfoSUyc+7+ueEJmRgqSuC+hqQOGECYa5JVno4d8eRVuDAMOb87I2LOdg/WoFMcAtaaRq2gpfV/w==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.13.0.tgz", + "integrity": "sha512-FzFqFt9b0g/LKszBDoEsW+dVBuUe1K3scp2Yf7q6pgHWM1WqyqUlARwVpLxqyc+LoyJkTxQftOKjyFUqddnPKA==", "requires": { - "@algolia/client-common": "4.12.2", - "@algolia/client-search": "4.12.2", - "@algolia/transporter": "4.12.2" + "@algolia/client-common": "4.13.0", + "@algolia/client-search": "4.13.0", + "@algolia/transporter": "4.13.0" } }, "@algolia/client-analytics": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.12.2.tgz", - "integrity": "sha512-7ktimzesu+vk3l+eG9w/nQh6/9AoIieCKmoiRIguKh6okGsaSBrcTHvUwIQEIiliqPuAFBk2M8eXYFqOZzwCZw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.13.0.tgz", + "integrity": "sha512-klmnoq2FIiiMHImkzOm+cGxqRLLu9CMHqFhbgSy9wtXZrqb8BBUIUE2VyBe7azzv1wKcxZV2RUyNOMpFqmnRZA==", "requires": { - "@algolia/client-common": "4.12.2", - "@algolia/client-search": "4.12.2", - "@algolia/requester-common": "4.12.2", - "@algolia/transporter": "4.12.2" + "@algolia/client-common": "4.13.0", + "@algolia/client-search": "4.13.0", + "@algolia/requester-common": "4.13.0", + "@algolia/transporter": "4.13.0" } }, "@algolia/client-common": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.12.2.tgz", - "integrity": "sha512-+dTicT1lklwOpeoiDspUoRSQYHhrr2IzllrX89/WuTPEBm2eww1xurqrSTQYC0MuVeX1s9/i4k34Q0ZnspypWg==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.13.0.tgz", + "integrity": "sha512-GoXfTp0kVcbgfSXOjfrxx+slSipMqGO9WnNWgeMmru5Ra09MDjrcdunsiiuzF0wua6INbIpBQFTC2Mi5lUNqGA==", "requires": { - "@algolia/requester-common": "4.12.2", - "@algolia/transporter": "4.12.2" + "@algolia/requester-common": "4.13.0", + "@algolia/transporter": "4.13.0" } }, "@algolia/client-personalization": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.12.2.tgz", - "integrity": "sha512-JBW3vYFGIm5sAAy3cLUdmUCpmSAdreo5S1fERg7xgF6KyxGrwyy5BViTNWrOKG+av2yusk1wKydOYJ1Fbpbaxw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.13.0.tgz", + "integrity": "sha512-KneLz2WaehJmNfdr5yt2HQETpLaCYagRdWwIwkTqRVFCv4DxRQ2ChPVW9jeTj4YfAAhfzE6F8hn7wkQ/Jfj6ZA==", "requires": { - "@algolia/client-common": "4.12.2", - "@algolia/requester-common": "4.12.2", - "@algolia/transporter": "4.12.2" + "@algolia/client-common": "4.13.0", + "@algolia/requester-common": "4.13.0", + "@algolia/transporter": "4.13.0" } }, "@algolia/client-search": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.12.2.tgz", - "integrity": "sha512-JIqi14TgfEqAooNbSPBC1ZCk3Pnviqlaz9KofAqWBxSRTpPUFnU/XQCU5ihR0PC68SFVDnU/Y9cak/XotXPUeg==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.13.0.tgz", + "integrity": "sha512-blgCKYbZh1NgJWzeGf+caKE32mo3j54NprOf0LZVCubQb3Kx37tk1Hc8SDs9bCAE8hUvf3cazMPIg7wscSxspA==", "requires": { - "@algolia/client-common": "4.12.2", - "@algolia/requester-common": "4.12.2", - "@algolia/transporter": "4.12.2" + "@algolia/client-common": "4.13.0", + "@algolia/requester-common": "4.13.0", + "@algolia/transporter": "4.13.0" } }, "@algolia/events": { @@ -12769,47 +12470,47 @@ "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" }, "@algolia/logger-common": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.12.2.tgz", - "integrity": "sha512-iOiJAymLjq137G7+8EQuUEkrgta0cZGMg6scp8s4hJ+X6k+6By4nyptdkCWYwKLsW/Xy927QcIhGlkWV78vQIQ==" + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.13.0.tgz", + "integrity": "sha512-8yqXk7rMtmQJ9wZiHOt/6d4/JDEg5VCk83gJ39I+X/pwUPzIsbKy9QiK4uJ3aJELKyoIiDT1hpYVt+5ia+94IA==" }, "@algolia/logger-console": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.12.2.tgz", - "integrity": "sha512-veuQZyTSqHoHJtr9mLMnYeal9Mee6hCie4eqY+645VbeOrgT9p/kCMbKg5GLJGoLPlXGu7C0XpHyUj5k7/NQyw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.13.0.tgz", + "integrity": "sha512-YepRg7w2/87L0vSXRfMND6VJ5d6699sFJBRWzZPOlek2p5fLxxK7O0VncYuc/IbVHEgeApvgXx0WgCEa38GVuQ==", "requires": { - "@algolia/logger-common": "4.12.2" + "@algolia/logger-common": "4.13.0" } }, "@algolia/requester-browser-xhr": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.12.2.tgz", - "integrity": "sha512-FpFdHNd81tS3zj6Glqd+lt+RV0ljPExKtx+QB+gani6HWZ9YlSCM+Zl82T4ibxN+hmkrMeAyT+TMzS0jiGhGyQ==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.13.0.tgz", + "integrity": "sha512-Dj+bnoWR5MotrnjblzGKZ2kCdQi2cK/VzPURPnE616NU/il7Ypy6U6DLGZ/ZYz+tnwPa0yypNf21uqt84fOgrg==", "requires": { - "@algolia/requester-common": "4.12.2" + "@algolia/requester-common": "4.13.0" } }, "@algolia/requester-common": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.12.2.tgz", - "integrity": "sha512-4szj/lvDQf/u8EyyRBBRZD1ZkKDyLBbckLj7meQDlnbfwnW1UpLwpB2l3XJ9wDmDSftGxUCeTl5oMFe4z9OEvQ==" + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.13.0.tgz", + "integrity": "sha512-BRTDj53ecK+gn7ugukDWOOcBRul59C4NblCHqj4Zm5msd5UnHFjd/sGX+RLOEoFMhetILAnmg6wMrRrQVac9vw==" }, "@algolia/requester-node-http": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.12.2.tgz", - "integrity": "sha512-UXfJNZt2KMwjBjiOa3cJ/PyoXWZa/F1vy6rdyG4xQeZDcLbqKP3O2b+bOJcGPmFbmdwBhtAyMVLt+hvAvAVfOw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.13.0.tgz", + "integrity": "sha512-9b+3O4QFU4azLhGMrZAr/uZPydvzOR4aEZfSL8ZrpLZ7fbbqTO0S/5EVko+QIgglRAtVwxvf8UJ1wzTD2jvKxQ==", "requires": { - "@algolia/requester-common": "4.12.2" + "@algolia/requester-common": "4.13.0" } }, "@algolia/transporter": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.12.2.tgz", - "integrity": "sha512-PUq79if4CukXsm27ymTQ3eD3juSvMcyJmt6mxCkSFE0zQRL4ert61HBlNH6S9y/quUVe3g7oggfHq3d5pdpqZA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.13.0.tgz", + "integrity": "sha512-8tSQYE+ykQENAdeZdofvtkOr5uJ9VcQSWgRhQ9h01AehtBIPAczk/b2CLrMsw5yQZziLs5cZ3pJ3478yI+urhA==", "requires": { - "@algolia/cache-common": "4.12.2", - "@algolia/logger-common": "4.12.2", - "@algolia/requester-common": "4.12.2" + "@algolia/cache-common": "4.13.0", + "@algolia/logger-common": "4.13.0", + "@algolia/requester-common": "4.13.0" } }, "@ampproject/remapping": { @@ -12829,22 +12530,22 @@ } }, "@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==" + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==" }, "@babel/core": { - "version": "7.17.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", - "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", + "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.3", + "@babel/generator": "^7.17.7", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.8", + "@babel/parser": "^7.17.8", "@babel/template": "^7.16.7", "@babel/traverse": "^7.17.3", "@babel/types": "^7.17.0", @@ -12863,9 +12564,9 @@ } }, "@babel/generator": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", - "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", "requires": { "@babel/types": "^7.17.0", "jsesc": "^2.5.1", @@ -12890,11 +12591,11 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", "requires": { - "@babel/compat-data": "^7.16.4", + "@babel/compat-data": "^7.17.7", "@babel/helper-validator-option": "^7.16.7", "browserslist": "^4.17.5", "semver": "^6.3.0" @@ -13076,13 +12777,13 @@ } }, "@babel/helper-module-transforms": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz", - "integrity": "sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", "requires": { "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", @@ -13126,11 +12827,11 @@ } }, "@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -13171,12 +12872,12 @@ } }, "@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", + "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", "requires": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", + "@babel/traverse": "^7.17.3", "@babel/types": "^7.17.0" } }, @@ -13242,9 +12943,9 @@ } }, "@babel/parser": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", - "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==" + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.16.7", @@ -14046,17 +13747,17 @@ } }, "@babel/runtime": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", - "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", + "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz", - "integrity": "sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz", + "integrity": "sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==", "requires": { "core-js-pure": "^3.20.2", "regenerator-runtime": "^0.13.4" @@ -14115,31 +13816,31 @@ } }, "@docusaurus/core": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-beta.17.tgz", - "integrity": "sha512-iNdW7CsmHNOgc4PxD9BFxa+MD8+i7ln7erOBkF3FSMMPnsKUeVqsR3rr31aLmLZRlTXMITSPLxlXwtBZa3KPCw==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-beta.18.tgz", + "integrity": "sha512-puV7l+0/BPSi07Xmr8tVktfs1BzhC8P5pm6Bs2CfvysCJ4nefNCD1CosPc1PGBWy901KqeeEJ1aoGwj9tU3AUA==", "requires": { - "@babel/core": "^7.17.5", - "@babel/generator": "^7.17.3", + "@babel/core": "^7.17.8", + "@babel/generator": "^7.17.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-transform-runtime": "^7.17.0", "@babel/preset-env": "^7.16.11", "@babel/preset-react": "^7.16.7", "@babel/preset-typescript": "^7.16.7", - "@babel/runtime": "^7.17.2", - "@babel/runtime-corejs3": "^7.17.2", + "@babel/runtime": "^7.17.8", + "@babel/runtime-corejs3": "^7.17.8", "@babel/traverse": "^7.17.3", - "@docusaurus/cssnano-preset": "2.0.0-beta.17", - "@docusaurus/logger": "2.0.0-beta.17", - "@docusaurus/mdx-loader": "2.0.0-beta.17", + "@docusaurus/cssnano-preset": "2.0.0-beta.18", + "@docusaurus/logger": "2.0.0-beta.18", + "@docusaurus/mdx-loader": "2.0.0-beta.18", "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "2.0.0-beta.17", - "@docusaurus/utils-common": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", - "@slorber/static-site-generator-webpack-plugin": "^4.0.1", + "@docusaurus/utils": "2.0.0-beta.18", + "@docusaurus/utils-common": "2.0.0-beta.18", + "@docusaurus/utils-validation": "2.0.0-beta.18", + "@slorber/static-site-generator-webpack-plugin": "^4.0.4", "@svgr/webpack": "^6.2.1", - "autoprefixer": "^10.4.2", - "babel-loader": "^8.2.3", + "autoprefixer": "^10.4.4", + "babel-loader": "^8.2.4", "babel-plugin-dynamic-import-node": "2.3.0", "boxen": "^6.2.1", "chokidar": "^3.5.3", @@ -14149,9 +13850,9 @@ "commander": "^5.1.0", "copy-webpack-plugin": "^10.2.4", "core-js": "^3.21.1", - "css-loader": "^6.6.0", + "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^3.4.1", - "cssnano": "^5.0.17", + "cssnano": "^5.1.5", "del": "^6.0.0", "detect-port": "^1.3.0", "escape-html": "^1.0.3", @@ -14165,9 +13866,9 @@ "is-root": "^2.1.0", "leven": "^3.1.0", "lodash": "^4.17.21", - "mini-css-extract-plugin": "^2.5.3", + "mini-css-extract-plugin": "^2.6.0", "nprogress": "^0.2.0", - "postcss": "^8.4.7", + "postcss": "^8.4.12", "postcss-loader": "^6.2.1", "prompts": "^2.4.2", "react-dev-utils": "^12.0.0", @@ -14179,7 +13880,7 @@ "react-router-dom": "^5.2.0", "remark-admonitions": "^1.2.1", "rtl-detect": "^1.0.4", - "semver": "^7.3.4", + "semver": "^7.3.5", "serve-handler": "^6.1.3", "shelljs": "^0.8.5", "terser-webpack-plugin": "^5.3.1", @@ -14187,7 +13888,7 @@ "update-notifier": "^5.1.0", "url-loader": "^4.1.1", "wait-on": "^6.0.1", - "webpack": "^5.69.1", + "webpack": "^5.70.0", "webpack-bundle-analyzer": "^4.5.0", "webpack-dev-server": "^4.7.4", "webpack-merge": "^5.8.0", @@ -14277,33 +13978,33 @@ } }, "@docusaurus/cssnano-preset": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.17.tgz", - "integrity": "sha512-DoBwtLjJ9IY9/lNMHIEdo90L4NDayvU28nLgtjR2Sc6aBIMEB/3a5Ndjehnp+jZAkwcDdNASA86EkZVUyz1O1A==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.18.tgz", + "integrity": "sha512-VxhYmpyx16Wv00W9TUfLVv0NgEK/BwP7pOdWoaiELEIAMV7SO1+6iB8gsFUhtfKZ31I4uPVLMKrCyWWakoFeFA==", "requires": { - "cssnano-preset-advanced": "^5.1.12", - "postcss": "^8.4.7", + "cssnano-preset-advanced": "^5.3.1", + "postcss": "^8.4.12", "postcss-sort-media-queries": "^4.2.1" } }, "@docusaurus/logger": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.0.0-beta.17.tgz", - "integrity": "sha512-F9JDl06/VLg+ylsvnq9NpILSUeWtl0j4H2LtlLzX5gufEL4dGiCMlnUzYdHl7FSHSzYJ0A/R7vu0SYofsexC4w==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.0.0-beta.18.tgz", + "integrity": "sha512-frNe5vhH3mbPmH980Lvzaz45+n1PQl3TkslzWYXQeJOkFX17zUd3e3U7F9kR1+DocmAqHkgAoWuXVcvEoN29fg==", "requires": { "chalk": "^4.1.2", "tslib": "^2.3.1" } }, "@docusaurus/mdx-loader": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.17.tgz", - "integrity": "sha512-AhJ3GWRmjQYCyINHE595pff5tn3Rt83oGpdev5UT9uvG9lPYPC8nEmh1LI6c0ogfw7YkNznzxWSW4hyyVbYQ3A==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.18.tgz", + "integrity": "sha512-pOmAQM4Y1jhuZTbEhjh4ilQa74Mh6Q0pMZn1xgIuyYDdqvIOrOlM/H0i34YBn3+WYuwsGim4/X0qynJMLDUA4A==", "requires": { - "@babel/parser": "^7.17.3", + "@babel/parser": "^7.17.8", "@babel/traverse": "^7.17.3", - "@docusaurus/logger": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", + "@docusaurus/logger": "2.0.0-beta.18", + "@docusaurus/utils": "2.0.0-beta.18", "@mdx-js/mdx": "^1.6.22", "escape-html": "^1.0.3", "file-loader": "^6.2.0", @@ -14315,15 +14016,15 @@ "tslib": "^2.3.1", "unist-util-visit": "^2.0.2", "url-loader": "^4.1.1", - "webpack": "^5.69.1" + "webpack": "^5.70.0" } }, "@docusaurus/module-type-aliases": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.0.0-beta.17.tgz", - "integrity": "sha512-Tu+8geC/wyygBudbSwvWIHEvt5RwyA7dEoE1JmPbgQtmqUxOZ9bgnfemwXpJW5mKuDiJASbN4of1DhbLqf4sPg==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.0.0-beta.18.tgz", + "integrity": "sha512-e6mples8FZRyT7QyqidGS6BgkROjM+gljJsdOqoctbtBp+SZ5YDjwRHOmoY7eqEfsQNOaFZvT2hK38ui87hCRA==", "requires": { - "@docusaurus/types": "2.0.0-beta.17", + "@docusaurus/types": "2.0.0-beta.18", "@types/react": "*", "@types/react-router-config": "*", "@types/react-router-dom": "*", @@ -14331,16 +14032,16 @@ } }, "@docusaurus/plugin-content-blog": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.17.tgz", - "integrity": "sha512-gcX4UR+WKT4bhF8FICBQHy+ESS9iRMeaglSboTZbA/YHGax/3EuZtcPU3dU4E/HFJeZ866wgUdbLKpIpsZOidg==", - "requires": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/logger": "2.0.0-beta.17", - "@docusaurus/mdx-loader": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", - "@docusaurus/utils-common": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.18.tgz", + "integrity": "sha512-qzK83DgB+mxklk3PQC2nuTGPQD/8ogw1nXSmaQpyXAyhzcz4CXAZ9Swl/Ee9A/bvPwQGnSHSP3xqIYl8OkFtfw==", + "requires": { + "@docusaurus/core": "2.0.0-beta.18", + "@docusaurus/logger": "2.0.0-beta.18", + "@docusaurus/mdx-loader": "2.0.0-beta.18", + "@docusaurus/utils": "2.0.0-beta.18", + "@docusaurus/utils-common": "2.0.0-beta.18", + "@docusaurus/utils-validation": "2.0.0-beta.18", "cheerio": "^1.0.0-rc.10", "feed": "^4.2.2", "fs-extra": "^10.0.1", @@ -14349,84 +14050,19 @@ "remark-admonitions": "^1.2.1", "tslib": "^2.3.1", "utility-types": "^3.10.0", - "webpack": "^5.69.1" - }, - "dependencies": { - "cheerio": { - "version": "1.0.0-rc.10", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", - "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", - "requires": { - "cheerio-select": "^1.5.0", - "dom-serializer": "^1.3.2", - "domhandler": "^4.2.0", - "htmlparser2": "^6.1.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "tslib": "^2.2.0" - } - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - }, - "domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - } + "webpack": "^5.70.0" } }, "@docusaurus/plugin-content-docs": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.17.tgz", - "integrity": "sha512-YYrBpuRfTfE6NtENrpSHTJ7K7PZifn6j6hcuvdC0QKE+WD8pS+O2/Ws30yoyvHwLnAnfhvaderh1v9Kaa0/ANg==", - "requires": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/logger": "2.0.0-beta.17", - "@docusaurus/mdx-loader": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.18.tgz", + "integrity": "sha512-z4LFGBJuzn4XQiUA7OEA2SZTqlp+IYVjd3NrCk/ZUfNi1tsTJS36ATkk9Y6d0Nsp7K2kRXqaXPsz4adDgeIU+Q==", + "requires": { + "@docusaurus/core": "2.0.0-beta.18", + "@docusaurus/logger": "2.0.0-beta.18", + "@docusaurus/mdx-loader": "2.0.0-beta.18", + "@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", "import-fresh": "^3.3.0", @@ -14435,86 +14071,86 @@ "remark-admonitions": "^1.2.1", "tslib": "^2.3.1", "utility-types": "^3.10.0", - "webpack": "^5.69.1" + "webpack": "^5.70.0" } }, "@docusaurus/plugin-content-pages": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.17.tgz", - "integrity": "sha512-d5x0mXTMJ44ojRQccmLyshYoamFOep2AnBe69osCDnwWMbD3Or3pnc2KMK9N7mVpQFnNFKbHNCLrX3Rv0uwEHA==", - "requires": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/mdx-loader": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.18.tgz", + "integrity": "sha512-CJ2Xeb9hQrMeF4DGywSDVX2TFKsQpc8ZA7czyeBAAbSFsoRyxXPYeSh8aWljqR4F1u/EKGSKy0Shk/D4wumaHw==", + "requires": { + "@docusaurus/core": "2.0.0-beta.18", + "@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", "remark-admonitions": "^1.2.1", "tslib": "^2.3.1", - "webpack": "^5.69.1" + "webpack": "^5.70.0" } }, "@docusaurus/plugin-debug": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.17.tgz", - "integrity": "sha512-p26fjYFRSC0esEmKo/kRrLVwXoFnzPCFDumwrImhPyqfVxbj+IKFaiXkayb2qHnyEGE/1KSDIgRF4CHt/pyhiw==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.18.tgz", + "integrity": "sha512-inLnLERgG7q0WlVmK6nYGHwVqREz13ivkynmNygEibJZToFRdgnIPW+OwD8QzgC5MpQTJw7+uYjcitpBumy1Gw==", "requires": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", + "@docusaurus/core": "2.0.0-beta.18", + "@docusaurus/utils": "2.0.0-beta.18", "fs-extra": "^10.0.1", "react-json-view": "^1.21.3", "tslib": "^2.3.1" } }, "@docusaurus/plugin-google-analytics": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.17.tgz", - "integrity": "sha512-jvgYIhggYD1W2jymqQVAAyjPJUV1xMCn70bAzaCMxriureMWzhQ/kQMVQpop0ijTMvifOxaV9yTcL1VRXev++A==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.18.tgz", + "integrity": "sha512-s9dRBWDrZ1uu3wFXPCF7yVLo/+5LUFAeoxpXxzory8gn9GYDt8ZDj80h5DUyCLxiy72OG6bXWNOYS/Vc6cOPXQ==", "requires": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", + "@docusaurus/core": "2.0.0-beta.18", + "@docusaurus/utils-validation": "2.0.0-beta.18", "tslib": "^2.3.1" } }, "@docusaurus/plugin-google-gtag": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-beta.17.tgz", - "integrity": "sha512-1pnWHtIk1Jfeqwvr8PlcPE5SODWT1gW4TI+ptmJbJ296FjjyvL/pG0AcGEJmYLY/OQc3oz0VQ0W2ognw9jmFIw==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-beta.18.tgz", + "integrity": "sha512-h7vPuLVo/9pHmbFcvb4tCpjg4SxxX4k+nfVDyippR254FM++Z/nA5pRB0WvvIJ3ZTe0ioOb5Wlx2xdzJIBHUNg==", "requires": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", + "@docusaurus/core": "2.0.0-beta.18", + "@docusaurus/utils-validation": "2.0.0-beta.18", "tslib": "^2.3.1" } }, "@docusaurus/plugin-sitemap": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.17.tgz", - "integrity": "sha512-19/PaGCsap6cjUPZPGs87yV9e1hAIyd0CTSeVV6Caega8nmOKk20FTrQGFJjZPeX8jvD9QIXcdg6BJnPxcKkaQ==", - "requires": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", - "@docusaurus/utils-common": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.18.tgz", + "integrity": "sha512-Klonht0Ye3FivdBpS80hkVYNOH+8lL/1rbCPEV92rKhwYdwnIejqhdKct4tUTCl8TYwWiyeUFQqobC/5FNVZPQ==", + "requires": { + "@docusaurus/core": "2.0.0-beta.18", + "@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", "sitemap": "^7.1.1", "tslib": "^2.3.1" } }, "@docusaurus/preset-classic": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.17.tgz", - "integrity": "sha512-7YUxPEgM09aZWr25/hpDEp1gPl+1KsCPV1ZTRW43sbQ9TinPm+9AKR3rHVDa8ea8MdiS7BpqCVyK+H/eiyQrUw==", - "requires": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/plugin-content-blog": "2.0.0-beta.17", - "@docusaurus/plugin-content-docs": "2.0.0-beta.17", - "@docusaurus/plugin-content-pages": "2.0.0-beta.17", - "@docusaurus/plugin-debug": "2.0.0-beta.17", - "@docusaurus/plugin-google-analytics": "2.0.0-beta.17", - "@docusaurus/plugin-google-gtag": "2.0.0-beta.17", - "@docusaurus/plugin-sitemap": "2.0.0-beta.17", - "@docusaurus/theme-classic": "2.0.0-beta.17", - "@docusaurus/theme-common": "2.0.0-beta.17", - "@docusaurus/theme-search-algolia": "2.0.0-beta.17" + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.18.tgz", + "integrity": "sha512-TfDulvFt/vLWr/Yy7O0yXgwHtJhdkZ739bTlFNwEkRMAy8ggi650e52I1I0T79s67llecb4JihgHPW+mwiVkCQ==", + "requires": { + "@docusaurus/core": "2.0.0-beta.18", + "@docusaurus/plugin-content-blog": "2.0.0-beta.18", + "@docusaurus/plugin-content-docs": "2.0.0-beta.18", + "@docusaurus/plugin-content-pages": "2.0.0-beta.18", + "@docusaurus/plugin-debug": "2.0.0-beta.18", + "@docusaurus/plugin-google-analytics": "2.0.0-beta.18", + "@docusaurus/plugin-google-gtag": "2.0.0-beta.18", + "@docusaurus/plugin-sitemap": "2.0.0-beta.18", + "@docusaurus/theme-classic": "2.0.0-beta.18", + "@docusaurus/theme-common": "2.0.0-beta.18", + "@docusaurus/theme-search-algolia": "2.0.0-beta.18" } }, "@docusaurus/react-loadable": { @@ -14527,40 +14163,40 @@ } }, "@docusaurus/theme-classic": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.17.tgz", - "integrity": "sha512-xfZ9kpgqo0lP9YO4rJj79wtiQJXU6ARo5wYy10IIwiWN+lg00scJHhkmNV431b05xIUjUr0cKeH9nqZmEsQRKg==", - "requires": { - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/plugin-content-blog": "2.0.0-beta.17", - "@docusaurus/plugin-content-docs": "2.0.0-beta.17", - "@docusaurus/plugin-content-pages": "2.0.0-beta.17", - "@docusaurus/theme-common": "2.0.0-beta.17", - "@docusaurus/theme-translations": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", - "@docusaurus/utils-common": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.18.tgz", + "integrity": "sha512-WJWofvSGKC4Luidk0lyUwkLnO3DDynBBHwmt4QrV+aAVWWSOHUjA2mPOF6GLGuzkZd3KfL9EvAfsU0aGE1Hh5g==", + "requires": { + "@docusaurus/core": "2.0.0-beta.18", + "@docusaurus/plugin-content-blog": "2.0.0-beta.18", + "@docusaurus/plugin-content-docs": "2.0.0-beta.18", + "@docusaurus/plugin-content-pages": "2.0.0-beta.18", + "@docusaurus/theme-common": "2.0.0-beta.18", + "@docusaurus/theme-translations": "2.0.0-beta.18", + "@docusaurus/utils": "2.0.0-beta.18", + "@docusaurus/utils-common": "2.0.0-beta.18", + "@docusaurus/utils-validation": "2.0.0-beta.18", "@mdx-js/react": "^1.6.22", "clsx": "^1.1.1", "copy-text-to-clipboard": "^3.0.1", - "infima": "0.2.0-alpha.37", + "infima": "0.2.0-alpha.38", "lodash": "^4.17.21", - "postcss": "^8.4.7", - "prism-react-renderer": "^1.2.1", + "postcss": "^8.4.12", + "prism-react-renderer": "^1.3.1", "prismjs": "^1.27.0", "react-router-dom": "^5.2.0", - "rtlcss": "^3.3.0" + "rtlcss": "^3.5.0" } }, "@docusaurus/theme-common": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.0.0-beta.17.tgz", - "integrity": "sha512-LJBDhx+Qexn1JHBqZbE4k+7lBaV1LgpE33enXf43ShB7ebhC91d5HLHhBwgt0pih4+elZU4rG+BG/roAmsNM0g==", - "requires": { - "@docusaurus/module-type-aliases": "2.0.0-beta.17", - "@docusaurus/plugin-content-blog": "2.0.0-beta.17", - "@docusaurus/plugin-content-docs": "2.0.0-beta.17", - "@docusaurus/plugin-content-pages": "2.0.0-beta.17", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.0.0-beta.18.tgz", + "integrity": "sha512-3pI2Q6ttScDVTDbuUKAx+TdC8wmwZ2hfWk8cyXxksvC9bBHcyzXhSgcK8LTsszn2aANyZ3e3QY2eNSOikTFyng==", + "requires": { + "@docusaurus/module-type-aliases": "2.0.0-beta.18", + "@docusaurus/plugin-content-blog": "2.0.0-beta.18", + "@docusaurus/plugin-content-docs": "2.0.0-beta.18", + "@docusaurus/plugin-content-pages": "2.0.0-beta.18", "clsx": "^1.1.1", "parse-numeric-range": "^1.3.0", "prism-react-renderer": "^1.3.1", @@ -14569,19 +14205,20 @@ } }, "@docusaurus/theme-search-algolia": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.17.tgz", - "integrity": "sha512-W12XKM7QC5Jmrec359bJ7aDp5U8DNkCxjVKsMNIs8rDunBoI/N+R35ERJ0N7Bg9ONAWO6o7VkUERQsfGqdvr9w==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.18.tgz", + "integrity": "sha512-2w97KO/gnjI49WVtYQqENpQ8iO1Sem0yaTxw7/qv/ndlmIAQD0syU4yx6GsA7bTQCOGwKOWWzZSetCgUmTnWgA==", "requires": { "@docsearch/react": "^3.0.0", - "@docusaurus/core": "2.0.0-beta.17", - "@docusaurus/logger": "2.0.0-beta.17", - "@docusaurus/theme-common": "2.0.0-beta.17", - "@docusaurus/theme-translations": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", - "@docusaurus/utils-validation": "2.0.0-beta.17", - "algoliasearch": "^4.12.1", - "algoliasearch-helper": "^3.7.0", + "@docusaurus/core": "2.0.0-beta.18", + "@docusaurus/logger": "2.0.0-beta.18", + "@docusaurus/plugin-content-docs": "2.0.0-beta.18", + "@docusaurus/theme-common": "2.0.0-beta.18", + "@docusaurus/theme-translations": "2.0.0-beta.18", + "@docusaurus/utils": "2.0.0-beta.18", + "@docusaurus/utils-validation": "2.0.0-beta.18", + "algoliasearch": "^4.13.0", + "algoliasearch-helper": "^3.7.4", "clsx": "^1.1.1", "eta": "^1.12.3", "fs-extra": "^10.0.1", @@ -14591,72 +14228,65 @@ } }, "@docusaurus/theme-translations": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.0.0-beta.17.tgz", - "integrity": "sha512-oxCX6khjZH3lgdRCL0DH06KkUM/kDr9+lzB35+vY8rpFeQruVgRdi8ekPqG3+Wr0U/N+LMhcYE5BmCb6D0Fv2A==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.0.0-beta.18.tgz", + "integrity": "sha512-1uTEUXlKC9nco1Lx9H5eOwzB+LP4yXJG5wfv1PMLE++kJEdZ40IVorlUi3nJnaa9/lJNq5vFvvUDrmeNWsxy/Q==", "requires": { "fs-extra": "^10.0.1", "tslib": "^2.3.1" } }, "@docusaurus/types": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.0.0-beta.17.tgz", - "integrity": "sha512-4o7TXu5sKlQpybfFFtsGUElBXwSpiXKsQyyWaRKj7DRBkvMtkDX6ITZNnZO9+EHfLbP/cfrokB8C/oO7mCQ5BQ==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.0.0-beta.18.tgz", + "integrity": "sha512-zkuSmPQYP3+z4IjGHlW0nGzSSpY7Sit0Nciu/66zSb5m07TK72t6T1MlpCAn/XijcB9Cq6nenC3kJh66nGsKYg==", "requires": { "commander": "^5.1.0", "joi": "^17.6.0", - "querystring": "0.2.1", "utility-types": "^3.10.0", - "webpack": "^5.69.1", + "webpack": "^5.70.0", "webpack-merge": "^5.8.0" - }, - "dependencies": { - "querystring": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", - "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==" - } } }, "@docusaurus/utils": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.0.0-beta.17.tgz", - "integrity": "sha512-yRKGdzSc5v6M/6GyQ4omkrAHCleevwKYiIrufCJgRbOtkhYE574d8mIjjirOuA/emcyLxjh+TLtqAA5TwhIryA==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.0.0-beta.18.tgz", + "integrity": "sha512-v2vBmH7xSbPwx3+GB90HgLSQdj+Rh5ELtZWy7M20w907k0ROzDmPQ/8Ke2DK3o5r4pZPGnCrsB3SaYI83AEmAA==", "requires": { - "@docusaurus/logger": "2.0.0-beta.17", - "@svgr/webpack": "^6.0.0", + "@docusaurus/logger": "2.0.0-beta.18", + "@svgr/webpack": "^6.2.1", "file-loader": "^6.2.0", "fs-extra": "^10.0.1", "github-slugger": "^1.4.0", - "globby": "^11.0.4", + "globby": "^11.1.0", "gray-matter": "^4.0.3", "js-yaml": "^4.1.0", "lodash": "^4.17.21", - "micromatch": "^4.0.4", + "micromatch": "^4.0.5", "resolve-pathname": "^3.0.0", "shelljs": "^0.8.5", "tslib": "^2.3.1", "url-loader": "^4.1.1", - "webpack": "^5.69.1" + "webpack": "^5.70.0" } }, "@docusaurus/utils-common": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.0.0-beta.17.tgz", - "integrity": "sha512-90WCVdj6zYzs7neEIS594qfLO78cUL6EVK1CsRHJgVkkGjcYlCQ1NwkyO7bOb+nIAwdJrPJRc2FBSpuEGxPD3w==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.0.0-beta.18.tgz", + "integrity": "sha512-pK83EcOIiKCLGhrTwukZMo5jqd1sqqqhQwOVyxyvg+x9SY/lsnNzScA96OEfm+qQLBwK1OABA7Xc1wfkgkUxvw==", "requires": { "tslib": "^2.3.1" } }, "@docusaurus/utils-validation": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.17.tgz", - "integrity": "sha512-5UjayUP16fDjgd52eSEhL7SlN9x60pIhyS+K7kt7RmpSLy42+4/bSr2pns2VlATmuaoNOO6iIFdB2jgSYJ6SGA==", + "version": "2.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.18.tgz", + "integrity": "sha512-3aDrXjJJ8Cw2MAYEk5JMNnr8UHPxmVNbPU/PIHFWmWK09nJvs3IQ8nc9+8I30aIjRdIyc/BIOCxgvAcJ4hsxTA==", "requires": { - "@docusaurus/logger": "2.0.0-beta.17", - "@docusaurus/utils": "2.0.0-beta.17", + "@docusaurus/logger": "2.0.0-beta.18", + "@docusaurus/utils": "2.0.0-beta.18", "joi": "^17.6.0", + "js-yaml": "^4.1.0", "tslib": "^2.3.1" } }, @@ -14819,15 +14449,112 @@ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" }, "@slorber/static-site-generator-webpack-plugin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.1.tgz", - "integrity": "sha512-PSv4RIVO1Y3kvHxjvqeVisk3E9XFoO04uwYBDWe217MFqKspplYswTuKLiJu0aLORQWzuQjfVsSlLPojwfYsLw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.4.tgz", + "integrity": "sha512-FvMavoWEIePps6/JwGCOLYKCRhuwIHhMtmbKpBFgzNkxwpa/569LfTkrbRk1m1I3n+ezJK4on9E1A6cjuZmD9g==", "requires": { "bluebird": "^3.7.1", "cheerio": "^0.22.0", - "eval": "^0.1.4", - "url": "^0.11.0", + "eval": "^0.1.8", "webpack-sources": "^1.4.3" + }, + "dependencies": { + "cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash.assignin": "^4.0.9", + "lodash.bind": "^4.1.4", + "lodash.defaults": "^4.0.1", + "lodash.filter": "^4.4.0", + "lodash.flatten": "^4.2.0", + "lodash.foreach": "^4.3.0", + "lodash.map": "^4.4.0", + "lodash.merge": "^4.4.0", + "lodash.pick": "^4.2.1", + "lodash.reduce": "^4.4.0", + "lodash.reject": "^4.4.0", + "lodash.some": "^4.4.0" + } + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "requires": { + "boolbase": "~1.0.0" + } + } } }, "@svgr/babel-plugin-add-jsx-attribute": { @@ -15454,30 +15181,30 @@ "requires": {} }, "algoliasearch": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.12.2.tgz", - "integrity": "sha512-bn1P9+V415zeDQJtXn+1SwuwedEAv9/LJAxt8XwR6ygH/sMwaHSm2hpkz8wIbCBt/tKQ43TL672Kyxzv5PwGgQ==", - "requires": { - "@algolia/cache-browser-local-storage": "4.12.2", - "@algolia/cache-common": "4.12.2", - "@algolia/cache-in-memory": "4.12.2", - "@algolia/client-account": "4.12.2", - "@algolia/client-analytics": "4.12.2", - "@algolia/client-common": "4.12.2", - "@algolia/client-personalization": "4.12.2", - "@algolia/client-search": "4.12.2", - "@algolia/logger-common": "4.12.2", - "@algolia/logger-console": "4.12.2", - "@algolia/requester-browser-xhr": "4.12.2", - "@algolia/requester-common": "4.12.2", - "@algolia/requester-node-http": "4.12.2", - "@algolia/transporter": "4.12.2" + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.13.0.tgz", + "integrity": "sha512-oHv4faI1Vl2s+YC0YquwkK/TsaJs79g2JFg5FDm2rKN12VItPTAeQ7hyJMHarOPPYuCnNC5kixbtcqvb21wchw==", + "requires": { + "@algolia/cache-browser-local-storage": "4.13.0", + "@algolia/cache-common": "4.13.0", + "@algolia/cache-in-memory": "4.13.0", + "@algolia/client-account": "4.13.0", + "@algolia/client-analytics": "4.13.0", + "@algolia/client-common": "4.13.0", + "@algolia/client-personalization": "4.13.0", + "@algolia/client-search": "4.13.0", + "@algolia/logger-common": "4.13.0", + "@algolia/logger-console": "4.13.0", + "@algolia/requester-browser-xhr": "4.13.0", + "@algolia/requester-common": "4.13.0", + "@algolia/requester-node-http": "4.13.0", + "@algolia/transporter": "4.13.0" } }, "algoliasearch-helper": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.7.0.tgz", - "integrity": "sha512-XJ3QfERBLfeVCyTVx80gon7r3/rgm/CE8Ha1H7cbablRe/X7SfYQ14g/eO+MhjVKIQp+gy9oC6G5ilmLwS1k6w==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.7.4.tgz", + "integrity": "sha512-KmJrsHVm5TmxZ9Oj53XdXuM4CQeu7eVFnB15tpSFt+7is1d1yVCv3hxCLMqYSw/rH42ccv013miQpRr268P8vw==", "requires": { "@algolia/events": "^4.0.1" } @@ -15556,13 +15283,13 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" }, "autoprefixer": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", - "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", + "version": "10.4.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", + "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", "requires": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001297", - "fraction.js": "^4.1.2", + "browserslist": "^4.20.2", + "caniuse-lite": "^1.0.30001317", + "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -15577,34 +15304,14 @@ } }, "babel-loader": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz", + "integrity": "sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==", + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" } }, "babel-plugin-apply-mdx-type-prop": { @@ -15803,14 +15510,14 @@ } }, "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", "escalade": "^3.1.1", - "node-releases": "^2.0.1", + "node-releases": "^2.0.2", "picocolors": "^1.0.0" } }, @@ -15908,9 +15615,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001302", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001302.tgz", - "integrity": "sha512-YYTMO+tfwvgUN+1ZnRViE53Ma1S/oETg+J2lISsqi/ZTNThj3ZYBOKP2rHwJc37oCsPqAzJ3w2puZHn0xlLPPw==" + "version": "1.0.30001320", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001320.tgz", + "integrity": "sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA==" }, "ccount": { "version": "1.1.0", @@ -15942,26 +15649,17 @@ "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" }, "cheerio": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", - "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", + "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.0", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash.assignin": "^4.0.9", - "lodash.bind": "^4.1.4", - "lodash.defaults": "^4.0.1", - "lodash.filter": "^4.4.0", - "lodash.flatten": "^4.2.0", - "lodash.foreach": "^4.3.0", - "lodash.map": "^4.4.0", - "lodash.merge": "^4.4.0", - "lodash.pick": "^4.2.1", - "lodash.reduce": "^4.4.0", - "lodash.reject": "^4.4.0", - "lodash.some": "^4.4.0" + "cheerio-select": "^1.5.0", + "dom-serializer": "^1.3.2", + "domhandler": "^4.2.0", + "htmlparser2": "^6.1.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "tslib": "^2.2.0" } }, "cheerio-select": { @@ -15974,71 +15672,6 @@ "domelementtype": "^2.2.0", "domhandler": "^4.2.0", "domutils": "^2.7.0" - }, - "dependencies": { - "css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - }, - "domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, - "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "requires": { - "boolbase": "^1.0.0" - } - } } }, "chokidar": { @@ -16436,12 +16069,12 @@ } }, "css-loader": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.6.0.tgz", - "integrity": "sha512-FK7H2lisOixPT406s5gZM1S3l8GrfhEBT3ZiL2UX1Ng1XWs0y2GPllz/OTyvbaHe12VgQrIXIzuEGVlbUhodqg==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", "requires": { "icss-utils": "^5.1.0", - "postcss": "^8.4.5", + "postcss": "^8.4.7", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", @@ -16506,14 +16139,15 @@ } }, "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" } }, "css-tree": { @@ -16533,9 +16167,9 @@ } }, "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" }, "cssesc": { "version": "3.0.0", @@ -16543,47 +16177,47 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" }, "cssnano": { - "version": "5.0.17", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.17.tgz", - "integrity": "sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.5.tgz", + "integrity": "sha512-VZO1e+bRRVixMeia1zKagrv0lLN1B/r/u12STGNNUFxnp97LIFgZHQa0JxqlwEkvzUyA9Oz/WnCTAFkdEbONmg==", "requires": { - "cssnano-preset-default": "^5.1.12", + "cssnano-preset-default": "^5.2.5", "lilconfig": "^2.0.3", "yaml": "^1.10.2" } }, "cssnano-preset-advanced": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.2.1.tgz", - "integrity": "sha512-M/qkiVwnKfGiolf20yDeOWPDlIqf9NItkQYUYDQluBTUITCFnNfuFrAeRln0P6tSyDeCUOgmqQWW++B4A3gNgQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.1.tgz", + "integrity": "sha512-kfCknalY5VX/JKJ3Iri5/5rhZmQIqkbqgXsA6oaTnfA4flY/tt+w0hMxbExr0/fVuJL8w56j211op+pkQoNzoQ==", "requires": { "autoprefixer": "^10.3.7", - "cssnano-preset-default": "^5.2.0", + "cssnano-preset-default": "^5.2.5", "postcss-discard-unused": "^5.1.0", - "postcss-merge-idents": "^5.1.0", - "postcss-reduce-idents": "^5.1.0", + "postcss-merge-idents": "^5.1.1", + "postcss-reduce-idents": "^5.2.0", "postcss-zindex": "^5.1.0" } }, "cssnano-preset-default": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.0.tgz", - "integrity": "sha512-3N5Vcptj2pqVKpHVqH6ezOJvqikR2PdLTbTrsrhF61FbLRQuujAqZ2sKN5rvcMsb7hFjrNnjZT8CGEkxoN/Pwg==", + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.5.tgz", + "integrity": "sha512-WopL7PzN7sos3X8B54/QGl+CZUh1f0qN4ds+y2d5EPwRSSc3jsitVw81O+Uyop0pXyOfPfZxnc+LmA8w/Ki/WQ==", "requires": { "css-declaration-sorter": "^6.0.3", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", "postcss-colormin": "^5.3.0", "postcss-convert-values": "^5.1.0", - "postcss-discard-comments": "^5.1.0", + "postcss-discard-comments": "^5.1.1", "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.0", + "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.0", - "postcss-merge-rules": "^5.1.0", + "postcss-merge-longhand": "^5.1.3", + "postcss-merge-rules": "^5.1.1", "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.0", - "postcss-minify-params": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.2", "postcss-minify-selectors": "^5.2.0", "postcss-normalize-charset": "^5.1.0", "postcss-normalize-display-values": "^5.1.0", @@ -16593,12 +16227,12 @@ "postcss-normalize-timing-functions": "^5.1.0", "postcss-normalize-unicode": "^5.1.0", "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.0", - "postcss-ordered-values": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.1", "postcss-reduce-initial": "^5.1.0", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.0" + "postcss-unique-selectors": "^5.1.1" } }, "cssnano-utils": { @@ -16810,34 +16444,36 @@ } }, "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" } }, "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" }, "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "requires": { - "domelementtype": "1" + "domelementtype": "^2.2.0" } }, "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" } }, "dot-case": { @@ -16885,9 +16521,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.4.53", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.53.tgz", - "integrity": "sha512-rFveSKQczlcav+H3zkKqykU6ANseFwXwkl855jOIap5/0gnEcuIhv2ecz6aoTrXavF6I/CEBeRnBnkB51k06ew==" + "version": "1.4.94", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.94.tgz", + "integrity": "sha512-CoOKsuACoa0PAG3hQXxbh/XDiFcjGuSyGKUi09cjMHOt6RCi7/EXgXhaFF3I+aC89Omudqmkzd0YOQKxwtf/Bg==" }, "emoji-regex": { "version": "9.2.2", @@ -16918,18 +16554,18 @@ } }, "enhanced-resolve": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", - "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", + "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" }, "error-ex": { "version": "1.3.2", @@ -17014,10 +16650,11 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "eval": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.6.tgz", - "integrity": "sha512-o0XUw+5OGkXw4pJZzQoXUk+H87DHuC+7ZE//oSrRGtatTmr12oTnLfg6QOq9DyTt0c/p4TwzgmkKrBzWTSizyQ==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", + "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", "requires": { + "@types/node": "*", "require-like": ">= 0.1.1" } }, @@ -17123,9 +16760,9 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -17360,9 +16997,9 @@ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" }, "fraction.js": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.3.tgz", - "integrity": "sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" }, "fresh": { "version": "0.5.2", @@ -17510,15 +17147,15 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" } }, @@ -17812,16 +17449,14 @@ } }, "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" } }, "http-cache-semantics": { @@ -17942,9 +17577,9 @@ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, "infima": { - "version": "0.2.0-alpha.37", - "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.37.tgz", - "integrity": "sha512-4GX7Baw+/lwS4PPW/UJNY89tWSvYG1DL6baKVdpK6mC593iRgMssxNtORMTFArLPJ/A/lzsGhRmx+z6MaMxj0Q==" + "version": "0.2.0-alpha.38", + "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.38.tgz", + "integrity": "sha512-1WsmqSMI5IqzrUx3goq+miJznHBonbE3aoqZ1AR/i/oHhroxNeSV6Awv5VoVfXBhfTzLSnxkHaRI2qpAMYcCzw==" }, "inflight": { "version": "1.0.6", @@ -18592,12 +18227,12 @@ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, "mime": { @@ -18638,17 +18273,17 @@ } }, "mini-css-extract-plugin": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz", - "integrity": "sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", + "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==", "requires": { "schema-utils": "^4.0.0" }, "dependencies": { "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -18778,9 +18413,9 @@ "integrity": "sha512-08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA==" }, "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" }, "normalize-path": { "version": "3.0.0", @@ -18811,11 +18446,11 @@ "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" }, "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", "requires": { - "boolbase": "~1.0.0" + "boolbase": "^1.0.0" } }, "object-assign": { @@ -19082,9 +18717,9 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pkg-dir": { "version": "4.2.0", @@ -19163,9 +18798,9 @@ } }, "postcss": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.7.tgz", - "integrity": "sha512-L9Ye3r6hkkCeOETQX6iOaWZgjp3LL6Lpqm6EtgbKrgqGGteRMNb9vzBfRL96YOSu8o7x3MfIH9Mo5cPJFGrW6A==", + "version": "8.4.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", + "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", "requires": { "nanoid": "^3.3.1", "picocolors": "^1.0.0", @@ -19201,9 +18836,9 @@ } }, "postcss-discard-comments": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.0.tgz", - "integrity": "sha512-L0IKF4jAshRyn03SkEO6ar/Ipz2oLywVbg2THf2EqqdNkBwmVMxuTR/RoAltOw4piiaLt3gCAdrbAqmTBInmhg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", + "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==", "requires": {} }, "postcss-discard-duplicates": { @@ -19213,9 +18848,9 @@ "requires": {} }, "postcss-discard-empty": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.0.tgz", - "integrity": "sha512-782T/buGgb3HOuHOJAHpdyKzAAKsv/BxWqsutnZ+QsiHEcDkY7v+6WWdturuBiSal6XMOO1p1aJvwXdqLD5vhA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", "requires": {} }, "postcss-discard-overridden": { @@ -19243,27 +18878,27 @@ } }, "postcss-merge-idents": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.0.tgz", - "integrity": "sha512-l+awq6+uUiCILsHahWK5KE25495I4oCKlUrIA+EdBvklnVdWlBEsbkzq5+ouPKb8OAe4WwRBgFvaSq7f77FY+w==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz", + "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==", "requires": { "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" } }, "postcss-merge-longhand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.0.tgz", - "integrity": "sha512-Gr46srN2tsLD8fudKYoHO56RG0BLQ2nsBRnSZGY04eNBPwTeWa9KeHrbL3tOLAHyB2aliikycPH2TMJG1U+W6g==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.3.tgz", + "integrity": "sha512-lX8GPGvZ0iGP/IboM7HXH5JwkXvXod1Rr8H8ixwiA372hArk0zP4ZcCy4z4Prg/bfNlbbTf0KCOjCF9kKnpP/w==", "requires": { "postcss-value-parser": "^4.2.0", "stylehacks": "^5.1.0" } }, "postcss-merge-rules": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.0.tgz", - "integrity": "sha512-NecukEJovQ0mG7h7xV8wbYAkXGTO3MPKnXvuiXzOKcxoOodfTTKYjeo8TMhAswlSkjcPIBlnKbSFcTuVSDaPyQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz", + "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==", "requires": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", @@ -19280,9 +18915,9 @@ } }, "postcss-minify-gradients": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.0.tgz", - "integrity": "sha512-J/TMLklkONn3LuL8wCwfwU8zKC1hpS6VcxFkNUNjmVt53uKqrrykR3ov11mdUYyqVMEx67slMce0tE14cE4DTg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", "requires": { "colord": "^2.9.1", "cssnano-utils": "^3.1.0", @@ -19290,9 +18925,9 @@ } }, "postcss-minify-params": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.0.tgz", - "integrity": "sha512-q67dcts4Hct6x8+JmhBgctHkbvUsqGIg2IItenjE63iZXMbhjr7AlVZkNnKtIGt/1Wsv7p/7YzeSII6Q+KPXRg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.2.tgz", + "integrity": "sha512-aEP+p71S/urY48HWaRHasyx4WHQJyOYaKpQ6eXl8k0kxg66Wt/30VR6/woh8THgcpRbonJD5IeD+CzNhPi1L8g==", "requires": { "browserslist": "^4.16.6", "cssnano-utils": "^3.1.0", @@ -19404,26 +19039,26 @@ } }, "postcss-normalize-whitespace": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.0.tgz", - "integrity": "sha512-7O1FanKaJkpWFyCghFzIkLhehujV/frGkdofGLwhg5upbLyGsSfiTcZAdSzoPsSUgyPCkBkNMeWR8yVgPdQybg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-ordered-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.0.tgz", - "integrity": "sha512-wU4Z4D4uOIH+BUKkYid36gGDJNQtkVJT7Twv8qH6UyfttbbJWyw4/xIPuVEkkCtQLAJ0EdsNSh8dlvqkXb49TA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", + "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", "requires": { "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" } }, "postcss-reduce-idents": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.1.0.tgz", - "integrity": "sha512-2xDoPTzv98D/HFDrGTgVEBlcuS47wvua2oc4g2WoZdYPwzPWMWb2TCRruCyN7vbl+HAtVLGvEOMZIZb3wYgv7w==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz", + "integrity": "sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==", "requires": { "postcss-value-parser": "^4.2.0" } @@ -19472,9 +19107,9 @@ } }, "postcss-unique-selectors": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.0.tgz", - "integrity": "sha512-LmUhgGobtpeVJJHuogzjLRwJlN7VH+BL5c9GKMVJSS/ejoyePZkXvNsYUtk//F6vKOGK86gfRS0xH7fXQSDtvA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", "requires": { "postcss-selector-parser": "^6.0.5" } @@ -19614,11 +19249,6 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, "queue": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", @@ -20191,80 +19821,6 @@ "strip-ansi": "^6.0.1" }, "dependencies": { - "css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - }, - "domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "requires": { - "boolbase": "^1.0.0" - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -20935,69 +20491,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - }, - "css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - } - }, - "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - }, - "domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, - "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "requires": { - "boolbase": "^1.0.0" - } } } }, @@ -21307,22 +20800,6 @@ } } }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - } - } - }, "url-loader": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", @@ -21473,9 +20950,9 @@ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, "webpack": { - "version": "5.69.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.69.1.tgz", - "integrity": "sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A==", + "version": "5.70.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", + "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", "requires": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^0.0.51", @@ -21486,7 +20963,7 @@ "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.3", + "enhanced-resolve": "^5.9.2", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", diff --git a/website/package.json b/website/package.json index b79532fff1..7df6016596 100644 --- a/website/package.json +++ b/website/package.json @@ -15,7 +15,7 @@ }, "dependencies": { "@docusaurus/core": "^2.0.0-beta.16", - "@docusaurus/preset-classic": "^2.0.0-beta.17", + "@docusaurus/preset-classic": "^2.0.0-beta.18", "@mdx-js/react": "^1.6.21", "@svgr/webpack": "^6.2.1", "clsx": "^1.1.1", From 2878d0f073a504642598d7bf0c2e6ee865178171 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Mar 2022 20:57:11 +0300 Subject: [PATCH 11/34] chore: bump prettier from 2.6.0 to 2.6.1 in /website (#768) Bumps [prettier](https://github.com/prettier/prettier) from 2.6.0 to 2.6.1. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/2.6.0...2.6.1) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 14 +++++++------- website/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 9bfc3806c2..2d4029ab8b 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -25,7 +25,7 @@ "@types/react": "^17.0.43", "@types/react-helmet": "^6.1.5", "@types/react-router-dom": "^5.3.3", - "prettier": "2.6.0", + "prettier": "2.6.1", "typescript": "^4.6.3" } }, @@ -9386,9 +9386,9 @@ } }, "node_modules/prettier": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz", - "integrity": "sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.1.tgz", + "integrity": "sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -19131,9 +19131,9 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "prettier": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz", - "integrity": "sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.1.tgz", + "integrity": "sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==", "dev": true }, "pretty-error": { diff --git a/website/package.json b/website/package.json index 7df6016596..dae9e4dc83 100644 --- a/website/package.json +++ b/website/package.json @@ -31,7 +31,7 @@ "@types/react": "^17.0.43", "@types/react-helmet": "^6.1.5", "@types/react-router-dom": "^5.3.3", - "prettier": "2.6.0", + "prettier": "2.6.1", "typescript": "^4.6.3" } } From 76705e598f9229daedfb61134423cd0b6198b70a Mon Sep 17 00:00:00 2001 From: Dmitry Krutskikh Date: Sat, 26 Mar 2022 22:44:34 +0300 Subject: [PATCH 12/34] =?UTF-8?q?refactor:=20remove=20useless=20calculate?= =?UTF-8?q?=20node=20location=20with=20with=20comment=20or=E2=80=A6=20(#76?= =?UTF-8?q?9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor: remove useless calculate node location with with comment or metadata --- CHANGELOG.md | 2 +- .../avoid_border_all/avoid_border_all_rule.dart | 6 +----- .../avoid_preserve_whitespace_false_rule.dart | 6 +----- .../avoid_unused_parameters_rule.dart | 6 +----- .../binary_expression_operand_order_rule.dart | 6 +----- ...component_annotation_arguments_ordering_rule.dart | 6 +----- .../no_boolean_literal_compare_rule.dart | 6 +----- .../no_empty_block/no_empty_block_rule.dart | 6 +----- .../no_equal_arguments/no_equal_arguments_rule.dart | 6 +----- .../no_equal_then_else/no_equal_then_else_rule.dart | 6 +----- .../no_magic_number/no_magic_number_rule.dart | 6 +----- .../no_object_declaration_rule.dart | 6 +----- .../prefer_conditional_expressions_rule.dart | 6 +----- .../prefer_const_border_radius_rule.dart | 6 +----- .../rules_list/prefer_first/prefer_first_rule.dart | 6 +----- .../prefer_immediate_return_rule.dart | 6 +----- .../prefer_intl_name/prefer_intl_name_rule.dart | 12 ++---------- .../rules_list/prefer_last/prefer_last_rule.dart | 6 +----- .../prefer_on_push_cd_strategy_rule.dart | 6 +----- .../prefer_trailing_comma_rule.dart | 6 +----- .../provide_correct_intl_args_rule.dart | 6 +----- .../lint_analyzer/rules/rules_factory_test.dart | 10 ++++++++++ 22 files changed, 32 insertions(+), 106 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 02855710b7..cf07f5fb2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## Unreleased -* fix: support index expressions for no-magic-number rule. +* fix: support index expressions for [`no-magic-number`](https://dartcodemetrics.dev/docs/rules/common/no-magic-number) rule. ## 4.13.0 diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_border_all/avoid_border_all_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_border_all/avoid_border_all_rule.dart index 2104772df8..b53690436e 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_border_all/avoid_border_all_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_border_all/avoid_border_all_rule.dart @@ -36,11 +36,7 @@ class AvoidBorderAllRule extends FlutterRule { return visitor.expressions .map((expression) => createIssue( rule: this, - location: nodeLocation( - node: expression, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: expression, source: source), message: _issueMessage, replacement: _createReplacement(expression), )) diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_preserve_whitespace_false/avoid_preserve_whitespace_false_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_preserve_whitespace_false/avoid_preserve_whitespace_false_rule.dart index df1d3dce82..964eabd35f 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_preserve_whitespace_false/avoid_preserve_whitespace_false_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_preserve_whitespace_false/avoid_preserve_whitespace_false_rule.dart @@ -36,11 +36,7 @@ class AvoidPreserveWhitespaceFalseRule extends AngularRule { return visitor.expression .map((expression) => createIssue( rule: this, - location: nodeLocation( - node: expression, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: expression, source: source), message: _warning, )) .toList(growable: false); diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unused_parameters/avoid_unused_parameters_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unused_parameters/avoid_unused_parameters_rule.dart index 18751273d0..6820401c5d 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unused_parameters/avoid_unused_parameters_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unused_parameters/avoid_unused_parameters_rule.dart @@ -39,11 +39,7 @@ class AvoidUnusedParametersRule extends CommonRule { return visitor.unusedParameters .map((parameter) => createIssue( rule: this, - location: nodeLocation( - node: parameter, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: parameter, source: source), message: _warningMessage, )) .toList(growable: false); diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/binary_expression_operand_order/binary_expression_operand_order_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/binary_expression_operand_order/binary_expression_operand_order_rule.dart index 5959375d6a..6ced03a95a 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/binary_expression_operand_order/binary_expression_operand_order_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/binary_expression_operand_order/binary_expression_operand_order_rule.dart @@ -38,11 +38,7 @@ class BinaryExpressionOperandOrderRule extends CommonRule { return visitor.binaryExpressions .map((lit) => createIssue( rule: this, - location: nodeLocation( - node: lit, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: lit, source: source), message: _warningMessage, replacement: Replacement( comment: _correctionComment, diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/component_annotation_arguments_ordering/component_annotation_arguments_ordering_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/component_annotation_arguments_ordering/component_annotation_arguments_ordering_rule.dart index 30a939e1ad..93ecd43ad4 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/component_annotation_arguments_ordering/component_annotation_arguments_ordering_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/component_annotation_arguments_ordering/component_annotation_arguments_ordering_rule.dart @@ -45,11 +45,7 @@ class ComponentAnnotationArgumentsOrderingRule extends AngularRule { return argumentsInfo.where((info) => info.argumentOrder.isWrong).map( (info) => createIssue( rule: this, - location: nodeLocation( - node: info.argument, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: info.argument, source: source), message: 'Arguments group ${info.argumentOrder.argumentGroup.name} $_warningMessage ${info.argumentOrder.previousArgumentGroup?.name}.', ), diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/no_boolean_literal_compare/no_boolean_literal_compare_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/no_boolean_literal_compare/no_boolean_literal_compare_rule.dart index 4325665cb4..bfe14545ed 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/no_boolean_literal_compare/no_boolean_literal_compare_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/no_boolean_literal_compare/no_boolean_literal_compare_rule.dart @@ -66,11 +66,7 @@ class NoBooleanLiteralCompareRule extends CommonRule { issues.add(createIssue( rule: this, - location: nodeLocation( - node: expression, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: expression, source: source), message: _warning, replacement: Replacement( comment: useDirect ? _useItDirectly : _negate, diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/no_empty_block/no_empty_block_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/no_empty_block/no_empty_block_rule.dart index 9f1b1a37c0..18ffdcad88 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/no_empty_block/no_empty_block_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/no_empty_block/no_empty_block_rule.dart @@ -37,11 +37,7 @@ class NoEmptyBlockRule extends CommonRule { return visitor.emptyBlocks .map((block) => createIssue( rule: this, - location: nodeLocation( - node: block, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: block, source: source), message: _warning, )) .toList(growable: false); diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/no_equal_arguments/no_equal_arguments_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/no_equal_arguments/no_equal_arguments_rule.dart index e2bf1cc5fe..4c3f0b679b 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/no_equal_arguments/no_equal_arguments_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/no_equal_arguments/no_equal_arguments_rule.dart @@ -38,11 +38,7 @@ class NoEqualArgumentsRule extends CommonRule { return visitor.arguments .map((argument) => createIssue( rule: this, - location: nodeLocation( - node: argument, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: argument, source: source), message: _warningMessage, )) .toList(growable: false); diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/no_equal_then_else/no_equal_then_else_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/no_equal_then_else/no_equal_then_else_rule.dart index 92b5e59031..72741ed352 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/no_equal_then_else/no_equal_then_else_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/no_equal_then_else/no_equal_then_else_rule.dart @@ -37,11 +37,7 @@ class NoEqualThenElseRule extends CommonRule { .map( (node) => createIssue( rule: this, - location: nodeLocation( - node: node, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: node, source: source), message: _warningMessage, ), ) diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/no_magic_number/no_magic_number_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/no_magic_number/no_magic_number_rule.dart index 08dc55c564..b230e78e11 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/no_magic_number/no_magic_number_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/no_magic_number/no_magic_number_rule.dart @@ -46,11 +46,7 @@ class NoMagicNumberRule extends CommonRule { .where(_isNotInsideIndexExpression) .map((lit) => createIssue( rule: this, - location: nodeLocation( - node: lit, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: lit, source: source), message: _warningMessage, )) .toList(growable: false); diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/no_object_declaration/no_object_declaration_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/no_object_declaration/no_object_declaration_rule.dart index 9b1874e57d..e0bfdea654 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/no_object_declaration/no_object_declaration_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/no_object_declaration/no_object_declaration_rule.dart @@ -36,11 +36,7 @@ class NoObjectDeclarationRule extends CommonRule { .map( (member) => createIssue( rule: this, - location: nodeLocation( - node: member, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: member, source: source), message: _warningMessage, ), ) diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_conditional_expressions/prefer_conditional_expressions_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_conditional_expressions/prefer_conditional_expressions_rule.dart index 564d5e64bf..53b4ba36e3 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_conditional_expressions/prefer_conditional_expressions_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_conditional_expressions/prefer_conditional_expressions_rule.dart @@ -40,11 +40,7 @@ class PreferConditionalExpressionsRule extends CommonRule { .map( (info) => createIssue( rule: this, - location: nodeLocation( - node: info.statement, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: info.statement, source: source), message: _warningMessage, replacement: _createReplacement(info), ), diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_const_border_radius/prefer_const_border_radius_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_const_border_radius/prefer_const_border_radius_rule.dart index d37da535b7..f44639f078 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_const_border_radius/prefer_const_border_radius_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_const_border_radius/prefer_const_border_radius_rule.dart @@ -36,11 +36,7 @@ class PreferConstBorderRadiusRule extends FlutterRule { return visitor.expressions .map((expression) => createIssue( rule: this, - location: nodeLocation( - node: expression, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: expression, source: source), message: _issueMessage, replacement: _createReplacement(expression), )) diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_first/prefer_first_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_first/prefer_first_rule.dart index e2a7f422ab..56716efa73 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_first/prefer_first_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_first/prefer_first_rule.dart @@ -36,11 +36,7 @@ class PreferFirstRule extends CommonRule { return visitor.expressions .map((expression) => createIssue( rule: this, - location: nodeLocation( - node: expression, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: expression, source: source), message: _warningMessage, replacement: _createReplacement(expression), )) diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/prefer_immediate_return_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/prefer_immediate_return_rule.dart index bbed2e0fbc..22198378a5 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/prefer_immediate_return_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/prefer_immediate_return_rule.dart @@ -36,11 +36,7 @@ class PreferImmediateReturnRule extends CommonRule { .map( (issue) => createIssue( rule: this, - location: nodeLocation( - node: issue.returnStatement, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: issue.returnStatement, source: source), message: _warningMessage, replacement: Replacement( comment: _replaceComment, diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_intl_name/prefer_intl_name_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_intl_name/prefer_intl_name_rule.dart index 5c8a43f379..e96788e252 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_intl_name/prefer_intl_name_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_intl_name/prefer_intl_name_rule.dart @@ -51,11 +51,7 @@ class PreferIntlNameRule extends IntlRule { return createIssue( rule: this, - location: nodeLocation( - node: issue.node, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: issue.node, source: source), message: '$_notCorrectNameFailure $correction.', replacement: Replacement( comment: _notCorrectNameCorrectionComment, @@ -67,11 +63,7 @@ class PreferIntlNameRule extends IntlRule { .whereType<_NotExistNameIssue>() .map((issue) => createIssue( rule: this, - location: nodeLocation( - node: issue.node, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: issue.node, source: source), message: _notExistsNameFailure, )), ]; diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_last/prefer_last_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_last/prefer_last_rule.dart index 6f67504a47..25d957b113 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_last/prefer_last_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_last/prefer_last_rule.dart @@ -38,11 +38,7 @@ class PreferLastRule extends CommonRule { return visitor.expressions .map((expression) => createIssue( rule: this, - location: nodeLocation( - node: expression, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: expression, source: source), message: _warningMessage, replacement: _createReplacement(expression), )) diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_on_push_cd_strategy/prefer_on_push_cd_strategy_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_on_push_cd_strategy/prefer_on_push_cd_strategy_rule.dart index b4269e19be..61a907d1f8 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_on_push_cd_strategy/prefer_on_push_cd_strategy_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_on_push_cd_strategy/prefer_on_push_cd_strategy_rule.dart @@ -36,11 +36,7 @@ class PreferOnPushCdStrategyRule extends AngularRule { return visitor.expression .map((expression) => createIssue( rule: this, - location: nodeLocation( - node: expression, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: expression, source: source), message: _failure, )) .toList(growable: false); diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_trailing_comma/prefer_trailing_comma_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_trailing_comma/prefer_trailing_comma_rule.dart index 69c342be7d..b947c8c741 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_trailing_comma/prefer_trailing_comma_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_trailing_comma/prefer_trailing_comma_rule.dart @@ -44,11 +44,7 @@ class PreferTrailingCommaRule extends CommonRule { .map( (node) => createIssue( rule: this, - location: nodeLocation( - node: node, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: node, source: source), message: _warningMessage, replacement: Replacement( comment: _correctionMessage, diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/provide_correct_intl_args/provide_correct_intl_args_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/provide_correct_intl_args/provide_correct_intl_args_rule.dart index b21bc48941..775489b821 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/provide_correct_intl_args/provide_correct_intl_args_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/provide_correct_intl_args/provide_correct_intl_args_rule.dart @@ -43,11 +43,7 @@ class ProvideCorrectIntlArgsRule extends IntlRule { return visitor.issues .map((issue) => createIssue( rule: this, - location: nodeLocation( - node: issue.node, - source: source, - withCommentOrMetadata: true, - ), + location: nodeLocation(node: issue.node, source: source), message: issue.nameFailure!, )) .toList(); diff --git a/test/src/analyzers/lint_analyzer/rules/rules_factory_test.dart b/test/src/analyzers/lint_analyzer/rules/rules_factory_test.dart index 49c487e820..9fe88246d5 100644 --- a/test/src/analyzers/lint_analyzer/rules/rules_factory_test.dart +++ b/test/src/analyzers/lint_analyzer/rules/rules_factory_test.dart @@ -43,9 +43,15 @@ void main() { 'avoid-throw-in-catch-block': {}, 'prefer-correct-type-name': {}, 'avoid-unrelated-type-assertions': {}, + 'avoid-border-all': {}, + 'ban-name': {}, + 'format-comment': {}, + 'prefer-immediate-return': {}, + 'tag-name': {}, }).map((rule) => rule.id), equals([ 'always-remove-listener', + 'avoid-border-all', 'avoid-ignoring-return-values', 'avoid-late-keyword', 'avoid-missing-enum-constant-in-map', @@ -58,9 +64,11 @@ void main() { 'avoid-unrelated-type-assertions', 'avoid-unused-parameters', 'avoid-wrapping-in-padding', + 'ban-name', 'binary-expression-operand-order', 'component-annotation-arguments-ordering', 'double-literal-format', + 'format-comment', 'member-ordering', 'member-ordering-extended', 'newline-before-return', @@ -75,12 +83,14 @@ void main() { 'prefer-correct-identifier-length', 'prefer-correct-type-name', 'prefer-extracting-callbacks', + 'prefer-immediate-return', 'prefer-intl-name', 'prefer-match-file-name', 'prefer-on-push-cd-strategy', 'prefer-single-widget-per-file', 'prefer-trailing-comma', 'provide-correct-intl-args', + 'tag-name', ]), ); }); From 8b16cbbf3e64e495f72d34e6e253cf39e9137850 Mon Sep 17 00:00:00 2001 From: Roman Petrov Date: Sun, 27 Mar 2022 21:15:25 +0300 Subject: [PATCH 13/34] fix: cover more cases in "prefer-immediate-return" rule (#760) Co-authored-by: Dmitry Krutskikh --- CHANGELOG.md | 3 +- .../prefer_immediate_return/visitor.dart | 10 +++---- .../examples/example.dart | 28 +++++++++++++++++++ .../prefer_immediate_return_rule_test.dart | 24 ++++++++++++++++ 4 files changed, 59 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf07f5fb2b..e190cd2283 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,12 +2,13 @@ ## Unreleased +* fix: cover more cases in [`prefer-immediate-return`](https://dartcodemetrics.dev/docs/rules/common/prefer-immediate-return) rule * fix: support index expressions for [`no-magic-number`](https://dartcodemetrics.dev/docs/rules/common/no-magic-number) rule. ## 4.13.0 * feat: add [Checkstyle](https://dartcodemetrics.dev/docs/cli/analyze#checkstyle) format reporter. -* feat: add [prefer-immediate-return](https://dartcodemetrics.dev/docs/rules/common/prefer-immediate-return) rule +* feat: add [`prefer-immediate-return`](https://dartcodemetrics.dev/docs/rules/common/prefer-immediate-return) rule ## 4.12.0 diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/visitor.dart index c55172e4be..e9133c198f 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/visitor.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/visitor.dart @@ -6,16 +6,16 @@ class _Visitor extends RecursiveAstVisitor { Iterable<_IssueDetails> get issues => _issues; @override - void visitBlockFunctionBody(BlockFunctionBody node) { - super.visitBlockFunctionBody(node); + void visitBlock(Block node) { + super.visitBlock(node); - if (node.block.statements.length < 2) { + if (node.statements.length < 2) { return; } final variableDeclarationStatement = - node.block.statements[node.block.statements.length - 2]; - final returnStatement = node.block.statements.last; + node.statements[node.statements.length - 2]; + final returnStatement = node.statements.last; if (variableDeclarationStatement is! VariableDeclarationStatement || returnStatement is! ReturnStatement) { return; diff --git a/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/examples/example.dart b/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/examples/example.dart index 44735e3884..8a1c3b1531 100644 --- a/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/examples/example.dart +++ b/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/examples/example.dart @@ -41,3 +41,31 @@ int calculateSum(int a, int b) { return sum; // OK, "sum" variable not immediately preceding return statement } + +void calculateSum(int a, int b) { + try { + final sum = a + b; + + return sum; // LINT + } catch (e) { + final sum = 0; + + return sum; // LINT + } + + return 0; +} + +void calculateSomething(bool condition, int a, int b) { + for (var i = 0; i < 10; i++) { + final result = a * b; + + return result; // LINT + } + if (condition) { + final result = a + b; + + return result; // LINT + } + return 0; +} diff --git a/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/prefer_immediate_return_rule_test.dart b/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/prefer_immediate_return_rule_test.dart index c3bd1f750b..080a897d95 100644 --- a/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/prefer_immediate_return_rule_test.dart +++ b/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/prefer_immediate_return_rule_test.dart @@ -33,6 +33,10 @@ void main() { 16, 23, 30, + 49, + 53, + 63, + 68, ], startColumns: [ 3, @@ -40,6 +44,10 @@ void main() { 3, 5, 3, + 5, + 5, + 5, + 5, ], messages: [ 'Prefer returning the result immediately instead of declaring an intermediate variable right before the return statement.', @@ -47,6 +55,10 @@ void main() { 'Prefer returning the result immediately instead of declaring an intermediate variable right before the return statement.', 'Prefer returning the result immediately instead of declaring an intermediate variable right before the return statement.', 'Prefer returning the result immediately instead of declaring an intermediate variable right before the return statement.', + 'Prefer returning the result immediately instead of declaring an intermediate variable right before the return statement.', + 'Prefer returning the result immediately instead of declaring an intermediate variable right before the return statement.', + 'Prefer returning the result immediately instead of declaring an intermediate variable right before the return statement.', + 'Prefer returning the result immediately instead of declaring an intermediate variable right before the return statement.', ], replacementComments: [ 'Replace with immediate return.', @@ -54,6 +66,10 @@ void main() { 'Replace with immediate return.', 'Replace with immediate return.', 'Replace with immediate return.', + 'Replace with immediate return.', + 'Replace with immediate return.', + 'Replace with immediate return.', + 'Replace with immediate return.', ], replacements: [ 'return a + b;', @@ -61,6 +77,10 @@ void main() { 'return a + b;', 'return width * height;', 'return null;', + 'return a + b;', + 'return 0;', + 'return a * b;', + 'return a + b;', ], locationTexts: [ 'return sum;', @@ -68,6 +88,10 @@ void main() { 'return sum;', 'return result;', 'return x;', + 'return sum;', + 'return sum;', + 'return result;', + 'return result;', ], ); }); From 8e82138440a1ba95f2c0b917497025478abd1db4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Mar 2022 22:17:33 +0300 Subject: [PATCH 14/34] chore: bump toshimaru/auto-author-assign from 1.4.0 to 1.5.0 (#773) Bumps [toshimaru/auto-author-assign](https://github.com/toshimaru/auto-author-assign) from 1.4.0 to 1.5.0. - [Release notes](https://github.com/toshimaru/auto-author-assign/releases) - [Changelog](https://github.com/toshimaru/auto-author-assign/blob/main/CHANGELOG.md) - [Commits](https://github.com/toshimaru/auto-author-assign/compare/v1.4.0...v1.5.0) --- updated-dependencies: - dependency-name: toshimaru/auto-author-assign dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/pr_author_auto_assign.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr_author_auto_assign.yaml b/.github/workflows/pr_author_auto_assign.yaml index e73287529b..5754d8df6d 100644 --- a/.github/workflows/pr_author_auto_assign.yaml +++ b/.github/workflows/pr_author_auto_assign.yaml @@ -13,6 +13,6 @@ jobs: assign-author: runs-on: ubuntu-latest steps: - - uses: toshimaru/auto-author-assign@v1.4.0 + - uses: toshimaru/auto-author-assign@v1.5.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} From 12d0727d84b648effc95ec543f11cc1335b27de2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Mar 2022 13:52:28 +0400 Subject: [PATCH 15/34] chore: bump react-github-btn from 1.2.1 to 1.2.2 in /website (#774) Bumps [react-github-btn](https://github.com/ntkme/react-github-btn) from 1.2.1 to 1.2.2. - [Release notes](https://github.com/ntkme/react-github-btn/releases) - [Commits](https://github.com/ntkme/react-github-btn/compare/v1.2.1...v1.2.2) --- updated-dependencies: - dependency-name: react-github-btn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 30 +++++++++++++++--------------- website/package.json | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 2d4029ab8b..a810d3d2d5 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -16,7 +16,7 @@ "file-loader": "^6.2.0", "react": "^17.0.1", "react-dom": "^17.0.1", - "react-github-btn": "^1.2.1", + "react-github-btn": "^1.2.2", "url-loader": "^4.1.1" }, "devDependencies": { @@ -6428,9 +6428,9 @@ } }, "node_modules/github-buttons": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/github-buttons/-/github-buttons-2.18.1.tgz", - "integrity": "sha512-s3I3D3d0lNIflVBRFHsCoIkNfSZqBO6ivzWjNdoefBf+7TPMLgXiFoezr8M6SABiYCjZ8UXB3sIxa+ZxTKmWHw==" + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/github-buttons/-/github-buttons-2.21.1.tgz", + "integrity": "sha512-n9bCQ8sj+5oX1YH5NeyWGbAclRDtHEhMBzqw2ctsWpdEHOwVgfruRu0VIVy01Ah10dd/iFajMHYU71L7IBWBOw==" }, "node_modules/github-slugger": { "version": "1.4.0", @@ -9771,11 +9771,11 @@ "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" }, "node_modules/react-github-btn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/react-github-btn/-/react-github-btn-1.2.1.tgz", - "integrity": "sha512-/gXD01mHAOhW0xYuNJFDn08OGjaMXOjcg6GCKVPdHvQcWzswH4aT85DLDAAJ6Zhw/71veSIH4Kx1BTBfy69SsA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/react-github-btn/-/react-github-btn-1.2.2.tgz", + "integrity": "sha512-X4IcX2qwaLciSa4wcUsrFgF2PcT+ukMbZZRBT50ZvO2HJMyqQJNYNHErCN2R0sgZfSFQHUuUHlGndF15VQUhPA==", "dependencies": { - "github-buttons": "^2.8.0" + "github-buttons": "^2.21.1" } }, "node_modules/react-helmet-async": { @@ -17063,9 +17063,9 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, "github-buttons": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/github-buttons/-/github-buttons-2.18.1.tgz", - "integrity": "sha512-s3I3D3d0lNIflVBRFHsCoIkNfSZqBO6ivzWjNdoefBf+7TPMLgXiFoezr8M6SABiYCjZ8UXB3sIxa+ZxTKmWHw==" + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/github-buttons/-/github-buttons-2.21.1.tgz", + "integrity": "sha512-n9bCQ8sj+5oX1YH5NeyWGbAclRDtHEhMBzqw2ctsWpdEHOwVgfruRu0VIVy01Ah10dd/iFajMHYU71L7IBWBOw==" }, "github-slugger": { "version": "1.4.0", @@ -19423,11 +19423,11 @@ "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" }, "react-github-btn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/react-github-btn/-/react-github-btn-1.2.1.tgz", - "integrity": "sha512-/gXD01mHAOhW0xYuNJFDn08OGjaMXOjcg6GCKVPdHvQcWzswH4aT85DLDAAJ6Zhw/71veSIH4Kx1BTBfy69SsA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/react-github-btn/-/react-github-btn-1.2.2.tgz", + "integrity": "sha512-X4IcX2qwaLciSa4wcUsrFgF2PcT+ukMbZZRBT50ZvO2HJMyqQJNYNHErCN2R0sgZfSFQHUuUHlGndF15VQUhPA==", "requires": { - "github-buttons": "^2.8.0" + "github-buttons": "^2.21.1" } }, "react-helmet-async": { diff --git a/website/package.json b/website/package.json index dae9e4dc83..b617c82cb7 100644 --- a/website/package.json +++ b/website/package.json @@ -22,7 +22,7 @@ "file-loader": "^6.2.0", "react": "^17.0.1", "react-dom": "^17.0.1", - "react-github-btn": "^1.2.1", + "react-github-btn": "^1.2.2", "url-loader": "^4.1.1" }, "devDependencies": { From c490ed9431cc8fbfccc2558274c066908d3bf216 Mon Sep 17 00:00:00 2001 From: Dmitry Krutskikh Date: Wed, 30 Mar 2022 22:06:21 +0300 Subject: [PATCH 16/34] chore: restrict analyzer version (#778) * chore: restrict `analyzer` version to `>=2.4.0 <3.5.0`. --- CHANGELOG.md | 1 + lib/src/analyzer_plugin/analyzer_plugin.dart | 3 ++- .../analyzers/unused_code_analyzer/unused_code_analyzer.dart | 1 + .../analyzers/unused_l10n_analyzer/unused_l10n_analyzer.dart | 2 ++ pubspec.yaml | 4 ++-- 5 files changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e190cd2283..d3205eb5fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ * fix: cover more cases in [`prefer-immediate-return`](https://dartcodemetrics.dev/docs/rules/common/prefer-immediate-return) rule * fix: support index expressions for [`no-magic-number`](https://dartcodemetrics.dev/docs/rules/common/no-magic-number) rule. +* chore: restrict `analyzer` version to `>=2.4.0 <3.5.0`. ## 4.13.0 diff --git a/lib/src/analyzer_plugin/analyzer_plugin.dart b/lib/src/analyzer_plugin/analyzer_plugin.dart index 8879f8b9a7..62f54c6b8f 100644 --- a/lib/src/analyzer_plugin/analyzer_plugin.dart +++ b/lib/src/analyzer_plugin/analyzer_plugin.dart @@ -147,7 +147,8 @@ class AnalyzerPlugin extends ServerPlugin { ) async { try { final driver = driverForPath(parameters.file) as AnalysisDriver; - final analysisResult = await driver.getResult(parameters.file); + // ignore: deprecated_member_use + final analysisResult = await driver.getResult2(parameters.file); if (analysisResult is! ResolvedUnitResult) { return plugin.EditGetFixesResult([]); diff --git a/lib/src/analyzers/unused_code_analyzer/unused_code_analyzer.dart b/lib/src/analyzers/unused_code_analyzer/unused_code_analyzer.dart index 39d12e654b..610560b1f0 100644 --- a/lib/src/analyzers/unused_code_analyzer/unused_code_analyzer.dart +++ b/lib/src/analyzers/unused_code_analyzer/unused_code_analyzer.dart @@ -198,6 +198,7 @@ class UnusedCodeAnalyzer { ) { final offset = element.codeOffset!; + // ignore: unnecessary_non_null_assertion final lineInfo = unit.lineInfo!; final offsetLocation = lineInfo.getLocation(offset); diff --git a/lib/src/analyzers/unused_l10n_analyzer/unused_l10n_analyzer.dart b/lib/src/analyzers/unused_l10n_analyzer/unused_l10n_analyzer.dart index 046aeadcf3..44ab327a09 100644 --- a/lib/src/analyzers/unused_l10n_analyzer/unused_l10n_analyzer.dart +++ b/lib/src/analyzers/unused_l10n_analyzer/unused_l10n_analyzer.dart @@ -171,6 +171,7 @@ class UnusedL10nAnalyzer { } final lineInfo = unit.lineInfo; + // ignore: unnecessary_null_comparison if (lineInfo == null) { return null; } @@ -232,6 +233,7 @@ class UnusedL10nAnalyzer { ) { final offset = element.codeOffset!; + // ignore: unnecessary_non_null_assertion final lineInfo = unit.lineInfo!; final offsetLocation = lineInfo.getLocation(offset); diff --git a/pubspec.yaml b/pubspec.yaml index 3f395a37a1..00e961efd7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,8 +10,8 @@ environment: sdk: ">=2.14.0 <3.0.0" dependencies: - analyzer: ">=3.0.0 <3.4.0" - analyzer_plugin: ^0.9.0 + analyzer: ">=2.4.0 <3.5.0" + analyzer_plugin: ">=0.8.0 <0.10.0" ansicolor: ^2.0.1 args: ^2.0.0 collection: ^1.15.0 From 6d9e78e857b8b03acefc87592e718363b643ecf0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Apr 2022 06:04:00 +0300 Subject: [PATCH 17/34] chore: bump actions/setup-node from 3.0.0 to 3.1.0 (#782) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/website_check.yaml | 2 +- .github/workflows/website_deploy.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/website_check.yaml b/.github/workflows/website_check.yaml index baf9f0db9b..29c9c8dff5 100644 --- a/.github/workflows/website_check.yaml +++ b/.github/workflows/website_check.yaml @@ -14,7 +14,7 @@ jobs: steps: - uses: actions/checkout@v3 - - uses: actions/setup-node@v3.0.0 + - uses: actions/setup-node@v3.1.0 with: node-version: "16" - name: Test Build diff --git a/.github/workflows/website_deploy.yaml b/.github/workflows/website_deploy.yaml index 14fe9e85cc..9826551378 100644 --- a/.github/workflows/website_deploy.yaml +++ b/.github/workflows/website_deploy.yaml @@ -14,7 +14,7 @@ jobs: steps: - uses: actions/checkout@v3 - - uses: actions/setup-node@v3.0.0 + - uses: actions/setup-node@v3.1.0 with: node-version: "16" - name: Deploy to GitHub Pages From d4a081ef08454c73fcf07ec994404a7067fc74e2 Mon Sep 17 00:00:00 2001 From: Dmitry Zhifarsky Date: Sat, 2 Apr 2022 19:44:06 +0400 Subject: [PATCH 18/34] fix: add check for supertypes (#775) Co-authored-by: Dmitry Krutskikh --- CHANGELOG.md | 1 + .../avoid_non_null_assertion_rule.dart | 1 + .../avoid_non_null_assertion/visitor.dart | 7 ++++++- .../avoid_non_null_assertion/examples/example.dart | 14 ++++++++++++++ 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d3205eb5fb..b33e864677 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased +* fix: add check for supertypes for [`avoid-non-null-assertions`](https://dartcodemetrics.dev/docs/rules/common/avoid-non-null-assertion) rule. * fix: cover more cases in [`prefer-immediate-return`](https://dartcodemetrics.dev/docs/rules/common/prefer-immediate-return) rule * fix: support index expressions for [`no-magic-number`](https://dartcodemetrics.dev/docs/rules/common/no-magic-number) rule. * chore: restrict `analyzer` version to `>=2.4.0 <3.5.0`. diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_non_null_assertion/avoid_non_null_assertion_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_non_null_assertion/avoid_non_null_assertion_rule.dart index bea21d5ac9..6964ef5407 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_non_null_assertion/avoid_non_null_assertion_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_non_null_assertion/avoid_non_null_assertion_rule.dart @@ -3,6 +3,7 @@ import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/ast/token.dart'; import 'package:analyzer/dart/ast/visitor.dart'; +import 'package:analyzer/dart/element/type.dart'; import '../../../../../utils/node_utils.dart'; import '../../../lint_utils.dart'; diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_non_null_assertion/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_non_null_assertion/visitor.dart index 4761787a57..76ea50b31d 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_non_null_assertion/visitor.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_non_null_assertion/visitor.dart @@ -19,9 +19,14 @@ class _Visitor extends RecursiveAstVisitor { if (operand is IndexExpression) { final type = operand.target?.staticType; - return type != null && type.isDartCoreMap; + return type is InterfaceType && + (_isMapOrSubclassOfMap(type) || + type.allSupertypes.any(_isMapOrSubclassOfMap)); } return false; } + + bool _isMapOrSubclassOfMap(DartType? type) => + type != null && type.isDartCoreMap; } diff --git a/test/src/analyzers/lint_analyzer/rules/rules_list/avoid_non_null_assertion/examples/example.dart b/test/src/analyzers/lint_analyzer/rules/rules_list/avoid_non_null_assertion/examples/example.dart index a5f43627f2..e846a1478a 100644 --- a/test/src/analyzers/lint_analyzer/rules/rules_list/avoid_non_null_assertion/examples/example.dart +++ b/test/src/analyzers/lint_analyzer/rules/rules_list/avoid_non_null_assertion/examples/example.dart @@ -27,5 +27,19 @@ class Test { object!.method(); // LINT object?.method(); + + final myMap = MyMap(); + myMap['key']!.contains('other'); + + final myOtherMap = MyAnotherMap(); + myOtherMap['key']!.contains('other'); } } + +class MyMap extends Map { + void doNothing() {} +} + +class MyAnotherMap implements Map { + void doNothing() {} +} From 728b9791e0aa8f1a6c75dac2d04a9ada83cc7d06 Mon Sep 17 00:00:00 2001 From: Dmitry Zhifarsky Date: Sun, 3 Apr 2022 13:26:10 +0400 Subject: [PATCH 19/34] feat: add static code diagnostic prefer-commenting-analyzer-ignores (#776) * feat: add static code diagnostic prefer-commenting-analyzer-ignores * fix: add new rule to factory * test: update suppression test Co-authored-by: Dmitry Krutskikh --- CHANGELOG.md | 1 + .../lint_analyzer/rules/rules_factory.dart | 3 + .../prefer_commenting_analyzer_ignores.dart | 41 +++++++++++++ .../visitor.dart | 59 +++++++++++++++++++ test/resources/suppression_example.dart | 3 +- .../models/suppression_test.dart | 14 ++--- .../examples/example.dart | 18 ++++++ ...commenting_analyzer_ignores_rule_test.dart | 41 +++++++++++++ .../prefer-commenting-analyzer-ignores.md | 41 +++++++++++++ website/docs/rules/overview.md | 4 ++ 10 files changed, 217 insertions(+), 8 deletions(-) create mode 100644 lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/prefer_commenting_analyzer_ignores.dart create mode 100644 lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/visitor.dart create mode 100644 test/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/examples/example.dart create mode 100644 test/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/prefer_commenting_analyzer_ignores_rule_test.dart create mode 100644 website/docs/rules/common/prefer-commenting-analyzer-ignores.md diff --git a/CHANGELOG.md b/CHANGELOG.md index b33e864677..ae76407bc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased +* feat: add static code diagnostic [`prefer-commenting-analyzer-ignores`](https://dartcodemetrics.dev/docs/rules/common/prefer-commenting-analyzer-ignores). * fix: add check for supertypes for [`avoid-non-null-assertions`](https://dartcodemetrics.dev/docs/rules/common/avoid-non-null-assertion) rule. * fix: cover more cases in [`prefer-immediate-return`](https://dartcodemetrics.dev/docs/rules/common/prefer-immediate-return) rule * fix: support index expressions for [`no-magic-number`](https://dartcodemetrics.dev/docs/rules/common/no-magic-number) rule. diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_factory.dart b/lib/src/analyzers/lint_analyzer/rules/rules_factory.dart index dfb6810c76..1661c43604 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_factory.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_factory.dart @@ -33,6 +33,7 @@ import 'rules_list/no_equal_then_else/no_equal_then_else_rule.dart'; import 'rules_list/no_magic_number/no_magic_number_rule.dart'; import 'rules_list/no_object_declaration/no_object_declaration_rule.dart'; import 'rules_list/prefer_async_await/prefer_async_await_rule.dart'; +import 'rules_list/prefer_commenting_analyzer_ignores/prefer_commenting_analyzer_ignores.dart'; import 'rules_list/prefer_conditional_expressions/prefer_conditional_expressions_rule.dart'; import 'rules_list/prefer_const_border_radius/prefer_const_border_radius_rule.dart'; import 'rules_list/prefer_correct_identifier_length/prefer_correct_identifier_length_rule.dart'; @@ -102,6 +103,8 @@ final _implementedRules = )>{ NoMagicNumberRule.ruleId: (config) => NoMagicNumberRule(config), NoObjectDeclarationRule.ruleId: (config) => NoObjectDeclarationRule(config), PreferAsyncAwaitRule.ruleId: (config) => PreferAsyncAwaitRule(config), + PreferCommentingAnalyzerIgnores.ruleId: (config) => + PreferCommentingAnalyzerIgnores(config), PreferConditionalExpressionsRule.ruleId: (config) => PreferConditionalExpressionsRule(config), PreferConstBorderRadiusRule.ruleId: (config) => diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/prefer_commenting_analyzer_ignores.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/prefer_commenting_analyzer_ignores.dart new file mode 100644 index 0000000000..38f172dc75 --- /dev/null +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/prefer_commenting_analyzer_ignores.dart @@ -0,0 +1,41 @@ +import 'package:analyzer/dart/ast/ast.dart'; +import 'package:analyzer/dart/ast/token.dart'; +import 'package:analyzer/dart/ast/visitor.dart'; +import 'package:analyzer/source/line_info.dart'; + +import '../../../../../utils/node_utils.dart'; +import '../../../lint_utils.dart'; +import '../../../models/internal_resolved_unit_result.dart'; +import '../../../models/issue.dart'; +import '../../../models/severity.dart'; +import '../../models/common_rule.dart'; +import '../../rule_utils.dart'; + +part 'visitor.dart'; + +class PreferCommentingAnalyzerIgnores extends CommonRule { + static const String ruleId = 'prefer-commenting-analyzer-ignores'; + + static const _warning = 'Prefer commenting analyzer ignores.'; + + PreferCommentingAnalyzerIgnores([Map config = const {}]) + : super( + id: ruleId, + severity: readSeverity(config, Severity.warning), + excludes: readExcludes(config), + ); + + @override + Iterable check(InternalResolvedUnitResult source) { + final visitor = _Visitor(source.lineInfo)..checkComments(source.unit.root); + + return visitor.comments.map((comment) => createIssue( + rule: this, + location: nodeLocation( + node: comment, + source: source, + ), + message: _warning, + )); + } +} diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/visitor.dart new file mode 100644 index 0000000000..fcf2cd1c30 --- /dev/null +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/visitor.dart @@ -0,0 +1,59 @@ +part of 'prefer_commenting_analyzer_ignores.dart'; + +class _Visitor extends RecursiveAstVisitor { + final LineInfo _lineInfo; + + final _comments = []; + + Iterable get comments => _comments; + + _Visitor(this._lineInfo); + + void checkComments(AstNode node) { + Token? token = node.beginToken; + while (token != null) { + Token? commentToken = token.precedingComments; + while (commentToken != null) { + _visitCommentToken(commentToken); + commentToken = commentToken.next; + } + + if (token == token.next) { + break; + } + + token = token.next; + } + } + + void _visitCommentToken(Token node) { + if (node.type == TokenType.SINGLE_LINE_COMMENT) { + final comment = node.toString(); + + final matches = _getIgnoreMatches(comment); + if (_hasNoDescription(matches, comment) && _hasNoPreviousComment(node)) { + _comments.add(node); + } + } + } + + bool _hasNoDescription(Iterable matches, String comment) => + matches.isNotEmpty && + matches.first.groupCount > 0 && + comment.trim().endsWith(matches.first.group(0)?.trim() ?? ''); + + bool _hasNoPreviousComment(Token node) { + final previous = node.previous; + + return previous == null || + (previous.type != TokenType.SINGLE_LINE_COMMENT || + _lineInfo.getLocation(node.offset).lineNumber - 1 != + _lineInfo.getLocation(previous.offset).lineNumber); + } + + Iterable _getIgnoreMatches(String comment) { + final regExp = RegExp(r'ignore:[a-z_,-\s]*([a-z]*(-|_)[a-z]*)+'); + + return regExp.allMatches(comment); + } +} diff --git a/test/resources/suppression_example.dart b/test/resources/suppression_example.dart index 39a83c9b34..fb48bc739b 100644 --- a/test/resources/suppression_example.dart +++ b/test/resources/suppression_example.dart @@ -4,7 +4,8 @@ void main() { // ignore: rule_id4 const a = 5; // ignore: RULE_ID5 - // ignore:rule_id6 ,rule_id7 + // ignore comment + // ignore:rule_id6 ,rule_id7, some comment about ignores const b = a + 5; // ignore: RULE_ID8, rule_id9, unused_local_variable } diff --git a/test/src/analyzers/lint_analyzer/models/suppression_test.dart b/test/src/analyzers/lint_analyzer/models/suppression_test.dart index bfc6cb49ae..0f5ea52614 100644 --- a/test/src/analyzers/lint_analyzer/models/suppression_test.dart +++ b/test/src/analyzers/lint_analyzer/models/suppression_test.dart @@ -19,14 +19,14 @@ void main() { expect(suppression.isSuppressed('rule_id3'), isTrue); expect(suppression.isSuppressed('rule_id4'), isFalse); - expect(suppression.isSuppressedAt('rule_id1', 5), isTrue); - expect(suppression.isSuppressedAt('rule_id2', 8), isTrue); - expect(suppression.isSuppressedAt('rule_id3', 2), isTrue); + expect(suppression.isSuppressedAt('rule_id1', null), isTrue); + expect(suppression.isSuppressedAt('rule_id2', null), isTrue); + expect(suppression.isSuppressedAt('rule_id3', null), isTrue); expect(suppression.isSuppressedAt('rule_id4', 5), isTrue); expect(suppression.isSuppressedAt('rule_id5', 5), isTrue); - expect(suppression.isSuppressedAt('rule_id6', 8), isTrue); - expect(suppression.isSuppressedAt('rule_id7', 8), isTrue); - expect(suppression.isSuppressedAt('rule_id8', 8), isTrue); - expect(suppression.isSuppressedAt('rule_id9', 8), isTrue); + expect(suppression.isSuppressedAt('rule_id6', 9), isTrue); + expect(suppression.isSuppressedAt('rule_id7', 9), isTrue); + expect(suppression.isSuppressedAt('rule_id8', 9), isTrue); + expect(suppression.isSuppressedAt('rule_id9', 9), isTrue); }); } diff --git a/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/examples/example.dart b/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/examples/example.dart new file mode 100644 index 0000000000..93300bb9f3 --- /dev/null +++ b/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/examples/example.dart @@ -0,0 +1,18 @@ +// ignore_for_file: some_rule +void main() { + // ignore: deprecated_member_use + final map = Map(); // LINT + + // ignore: deprecated_member_use, long-method + final set = Set(); // LINT + + // Ignored for some reasons + // ignore: deprecated_member_use + final list = List(); + + // ignore: deprecated_member_use same line ignore + final queue = Queue(); + + // ignore: deprecated_member_use, long-method multiple same line ignore + final linkedList = LinkedList(); +} diff --git a/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/prefer_commenting_analyzer_ignores_rule_test.dart b/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/prefer_commenting_analyzer_ignores_rule_test.dart new file mode 100644 index 0000000000..e9619e7425 --- /dev/null +++ b/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/prefer_commenting_analyzer_ignores_rule_test.dart @@ -0,0 +1,41 @@ +import 'package:dart_code_metrics/src/analyzers/lint_analyzer/models/severity.dart'; +import 'package:dart_code_metrics/src/analyzers/lint_analyzer/rules/rules_list/prefer_commenting_analyzer_ignores/prefer_commenting_analyzer_ignores.dart'; +import 'package:test/test.dart'; + +import '../../../../../helpers/rule_test_helper.dart'; + +const _examplePath = 'prefer_commenting_analyzer_ignores/examples/example.dart'; + +void main() { + group('PreferCommentingAnalyzerIgnores', () { + test('initialization', () async { + final unit = await RuleTestHelper.resolveFromFile(_examplePath); + final issues = PreferCommentingAnalyzerIgnores().check(unit); + + RuleTestHelper.verifyInitialization( + issues: issues, + ruleId: 'prefer-commenting-analyzer-ignores', + severity: Severity.warning, + ); + }); + + test('reports about found issues', () async { + final unit = await RuleTestHelper.resolveFromFile(_examplePath); + final issues = PreferCommentingAnalyzerIgnores().check(unit); + + RuleTestHelper.verifyIssues( + issues: issues, + startLines: [3, 6], + startColumns: [3, 3], + locationTexts: [ + '// ignore: deprecated_member_use', + '// ignore: deprecated_member_use, long-method', + ], + messages: [ + 'Prefer commenting analyzer ignores.', + 'Prefer commenting analyzer ignores.', + ], + ); + }); + }); +} diff --git a/website/docs/rules/common/prefer-commenting-analyzer-ignores.md b/website/docs/rules/common/prefer-commenting-analyzer-ignores.md new file mode 100644 index 0000000000..75bbaad6f6 --- /dev/null +++ b/website/docs/rules/common/prefer-commenting-analyzer-ignores.md @@ -0,0 +1,41 @@ +# Prefer commenting analyzer ignores + +## Rule id + +prefer-commenting-analyzer-ignores + +## Severity {#severity} + +Warning + +## Description + +Warns when `// ignore:` comments are left without any additional description why this ignore is applied. + +This rule doesn't trigger on global `ignore_for_file:` comments. + +### Example + +Bad: + +```dart +// ignore: deprecated_member_use +final map = Map(); // LINT + +// ignore: deprecated_member_use, long-method +final set = Set(); // LINT +``` + +Good: + +```dart +// Ignored for some reasons +// ignore: deprecated_member_use +final list = List(); + +// ignore: deprecated_member_use same line ignore +final queue = Queue(); + +// ignore: deprecated_member_use, long-method multiple same line ignore +final linkedList = LinkedList(); +``` diff --git a/website/docs/rules/overview.md b/website/docs/rules/overview.md index 3f94349684..b013c8afdb 100644 --- a/website/docs/rules/overview.md +++ b/website/docs/rules/overview.md @@ -119,6 +119,10 @@ Rules configuration is [described here](../getting-started/configuration#configu Recommends to use async/await syntax to handle Futures result instead of `.then()` invocation. +- [prefer-commenting-analyzer-ignores](./common/prefer-commenting-analyzer-ignores.md) + + Warns when `// ignore:` comments are left without any additional description why this ignore is applied. + - [prefer-conditional-expressions](./common/prefer-conditional-expressions.md)   ![Has auto-fix](https://img.shields.io/badge/-has%20auto--fix-success) Recommends to use a conditional expression instead of assigning to the same thing or return statement in each branch of an if statement. From 3397933b3f6b3d507c5115d54f89dde355c0a1de Mon Sep 17 00:00:00 2001 From: Dmitry Zhifarsky Date: Sun, 3 Apr 2022 14:10:49 +0400 Subject: [PATCH 20/34] fix: correctly split exclude path (#780) * fix: correcly split exclude path * chore: update changelog * test: update tests * chore: review fixes --- CHANGELOG.md | 1 + .../analyzers/lint_analyzer/lint_config.dart | 4 ++-- .../unused_code_config.dart | 5 +++-- .../unused_files_config.dart | 5 +++-- .../unused_l10n_config.dart | 5 +++-- .../commands/check_unused_code_command.dart | 2 +- .../commands/check_unused_files_command.dart | 2 +- .../commands/check_unused_l10n_command.dart | 2 +- lib/src/config_builder/config_builder.dart | 18 +++++++++--------- lib/src/utils/exclude_utils.dart | 3 +++ .../unused_code_config_test.dart | 2 +- .../unused_files_config_test.dart | 2 +- .../unused_l10n_config_test.dart | 2 +- 13 files changed, 30 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae76407bc8..9e131f1cb8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ * fix: add check for supertypes for [`avoid-non-null-assertions`](https://dartcodemetrics.dev/docs/rules/common/avoid-non-null-assertion) rule. * fix: cover more cases in [`prefer-immediate-return`](https://dartcodemetrics.dev/docs/rules/common/prefer-immediate-return) rule * fix: support index expressions for [`no-magic-number`](https://dartcodemetrics.dev/docs/rules/common/no-magic-number) rule. +* fix: correctly split exclude path * chore: restrict `analyzer` version to `>=2.4.0 <3.5.0`. ## 4.13.0 diff --git a/lib/src/analyzers/lint_analyzer/lint_config.dart b/lib/src/analyzers/lint_analyzer/lint_config.dart index 5eebbcf8cb..48f9f3f5ad 100644 --- a/lib/src/analyzers/lint_analyzer/lint_config.dart +++ b/lib/src/analyzers/lint_analyzer/lint_config.dart @@ -1,6 +1,7 @@ import '../../cli/models/parsed_arguments.dart'; import '../../config_builder/analysis_options_utils.dart'; import '../../config_builder/models/analysis_options.dart'; +import '../../utils/exclude_utils.dart'; import 'metrics/metrics_factory.dart'; /// Represents raw lint config which can be merged with other raw configs. @@ -39,8 +40,7 @@ class LintConfig { /// Creates the config from cli [arguments]. factory LintConfig.fromArgs(ParsedArguments arguments) => LintConfig( - excludePatterns: - arguments.excludePath.isNotEmpty ? [arguments.excludePath] : [], + excludePatterns: extractExcludes(arguments.excludePath), excludeForMetricsPatterns: const [], metrics: { for (final metric in getMetrics(config: {})) diff --git a/lib/src/analyzers/unused_code_analyzer/unused_code_config.dart b/lib/src/analyzers/unused_code_analyzer/unused_code_config.dart index 1e0ad8194d..d2c55e015d 100644 --- a/lib/src/analyzers/unused_code_analyzer/unused_code_config.dart +++ b/lib/src/analyzers/unused_code_analyzer/unused_code_config.dart @@ -1,4 +1,5 @@ import '../../config_builder/models/analysis_options.dart'; +import '../../utils/exclude_utils.dart'; /// Represents raw unused code config which can be merged with other raw configs. class UnusedCodeConfig { @@ -23,11 +24,11 @@ class UnusedCodeConfig { /// Creates the config from cli args. factory UnusedCodeConfig.fromArgs( - Iterable excludePatterns, { + String excludePath, { required bool isMonorepo, }) => UnusedCodeConfig( - excludePatterns: excludePatterns, + excludePatterns: extractExcludes(excludePath), analyzerExcludePatterns: const [], isMonorepo: isMonorepo, ); diff --git a/lib/src/analyzers/unused_files_analyzer/unused_files_config.dart b/lib/src/analyzers/unused_files_analyzer/unused_files_config.dart index a160cc9cb9..5556a70377 100644 --- a/lib/src/analyzers/unused_files_analyzer/unused_files_config.dart +++ b/lib/src/analyzers/unused_files_analyzer/unused_files_config.dart @@ -1,4 +1,5 @@ import '../../config_builder/models/analysis_options.dart'; +import '../../utils/exclude_utils.dart'; /// Represents raw unused files config which can be merged with other raw configs. class UnusedFilesConfig { @@ -23,11 +24,11 @@ class UnusedFilesConfig { /// Creates the config from cli args. factory UnusedFilesConfig.fromArgs( - Iterable excludePatterns, { + String excludePath, { required bool isMonorepo, }) => UnusedFilesConfig( - excludePatterns: excludePatterns, + excludePatterns: extractExcludes(excludePath), analyzerExcludePatterns: const [], isMonorepo: isMonorepo, ); diff --git a/lib/src/analyzers/unused_l10n_analyzer/unused_l10n_config.dart b/lib/src/analyzers/unused_l10n_analyzer/unused_l10n_config.dart index 74c4869b97..c0f4e30684 100644 --- a/lib/src/analyzers/unused_l10n_analyzer/unused_l10n_config.dart +++ b/lib/src/analyzers/unused_l10n_analyzer/unused_l10n_config.dart @@ -1,4 +1,5 @@ import '../../config_builder/models/analysis_options.dart'; +import '../../utils/exclude_utils.dart'; /// Represents raw unused files config which can be merged with other raw configs. class UnusedL10nConfig { @@ -25,11 +26,11 @@ class UnusedL10nConfig { /// Creates the config from cli args. factory UnusedL10nConfig.fromArgs( - Iterable excludePatterns, + String excludePath, String classPattern, ) => UnusedL10nConfig( - excludePatterns: excludePatterns, + excludePatterns: extractExcludes(excludePath), analyzerExcludePatterns: const [], classPattern: classPattern, ); diff --git a/lib/src/cli/commands/check_unused_code_command.dart b/lib/src/cli/commands/check_unused_code_command.dart index cceb684f15..bff1163d37 100644 --- a/lib/src/cli/commands/check_unused_code_command.dart +++ b/lib/src/cli/commands/check_unused_code_command.dart @@ -35,7 +35,7 @@ class CheckUnusedCodeCommand extends BaseCommand { final noCongratulate = argResults[FlagNames.noCongratulate] as bool; final config = ConfigBuilder.getUnusedCodeConfigFromArgs( - [excludePath], + excludePath, isMonorepo: isMonorepo, ); diff --git a/lib/src/cli/commands/check_unused_files_command.dart b/lib/src/cli/commands/check_unused_files_command.dart index 7171ef4dbb..cb1a71acce 100644 --- a/lib/src/cli/commands/check_unused_files_command.dart +++ b/lib/src/cli/commands/check_unused_files_command.dart @@ -36,7 +36,7 @@ class CheckUnusedFilesCommand extends BaseCommand { final deleteFiles = argResults[FlagNames.deleteFiles] as bool; final config = ConfigBuilder.getUnusedFilesConfigFromArgs( - [excludePath], + excludePath, isMonorepo: isMonorepo, ); diff --git a/lib/src/cli/commands/check_unused_l10n_command.dart b/lib/src/cli/commands/check_unused_l10n_command.dart index e399b1b87c..7c680c2ace 100644 --- a/lib/src/cli/commands/check_unused_l10n_command.dart +++ b/lib/src/cli/commands/check_unused_l10n_command.dart @@ -37,7 +37,7 @@ class CheckUnusedL10nCommand extends BaseCommand { final folders = argResults.rest; final config = ConfigBuilder.getUnusedL10nConfigFromArgs( - [excludePath], + excludePath, classPattern, ); diff --git a/lib/src/config_builder/config_builder.dart b/lib/src/config_builder/config_builder.dart index 1596cb16bc..14c81bd002 100644 --- a/lib/src/config_builder/config_builder.dart +++ b/lib/src/config_builder/config_builder.dart @@ -68,12 +68,12 @@ class ConfigBuilder { ); } - /// Creates a raw unused files config from given [excludePatterns]. + /// Creates a raw unused files config from given [excludePath]. static UnusedFilesConfig getUnusedFilesConfigFromArgs( - Iterable excludePatterns, { + String excludePath, { required bool isMonorepo, }) => - UnusedFilesConfig.fromArgs(excludePatterns, isMonorepo: isMonorepo); + UnusedFilesConfig.fromArgs(excludePath, isMonorepo: isMonorepo); /// Creates a raw unused files config from given [options]. static UnusedFilesConfig getUnusedFilesConfigFromOption( @@ -91,12 +91,12 @@ class ConfigBuilder { prepareExcludes(config.analyzerExcludePatterns, rootPath), ); - /// Creates a raw unused code config from given [excludePatterns]. + /// Creates a raw unused code config from given [excludePath]. static UnusedCodeConfig getUnusedCodeConfigFromArgs( - Iterable excludePatterns, { + String excludePath, { required bool isMonorepo, }) => - UnusedCodeConfig.fromArgs(excludePatterns, isMonorepo: isMonorepo); + UnusedCodeConfig.fromArgs(excludePath, isMonorepo: isMonorepo); /// Creates a raw unused code config from given [options]. static UnusedCodeConfig getUnusedCodeConfigFromOption( @@ -114,12 +114,12 @@ class ConfigBuilder { prepareExcludes(config.analyzerExcludePatterns, rootPath), ); - /// Creates a raw unused localization config from given [excludePatterns] and [classPattern]. + /// Creates a raw unused localization config from given [excludePath] and [classPattern]. static UnusedL10nConfig getUnusedL10nConfigFromArgs( - Iterable excludePatterns, + String excludePath, String classPattern, ) => - UnusedL10nConfig.fromArgs(excludePatterns, classPattern); + UnusedL10nConfig.fromArgs(excludePath, classPattern); /// Creates a raw unused localization config from given [options]. static UnusedL10nConfig getUnusedL10nConfigFromOption( diff --git a/lib/src/utils/exclude_utils.dart b/lib/src/utils/exclude_utils.dart index 5212ec4026..e7273faf0c 100644 --- a/lib/src/utils/exclude_utils.dart +++ b/lib/src/utils/exclude_utils.dart @@ -15,3 +15,6 @@ Iterable prepareExcludes( .map((exclude) => Glob(p.normalize(p.join(root, exclude)).replaceAll(r'\', '/'))) .toList(); + +Iterable extractExcludes(String excludePath) => + excludePath.split(',').map((path) => path.trim()); diff --git a/test/src/analyzers/unused_code_analyzer/unused_code_config_test.dart b/test/src/analyzers/unused_code_analyzer/unused_code_config_test.dart index ebdb0afef7..158cc304bd 100644 --- a/test/src/analyzers/unused_code_analyzer/unused_code_config_test.dart +++ b/test/src/analyzers/unused_code_analyzer/unused_code_config_test.dart @@ -56,7 +56,7 @@ void main() { group('fromArgs constructs instance from passed', () { test('data', () { - final config = UnusedCodeConfig.fromArgs(['hello'], isMonorepo: true); + final config = UnusedCodeConfig.fromArgs('hello', isMonorepo: true); expect(config.excludePatterns, equals(['hello'])); expect(config.analyzerExcludePatterns, isEmpty); diff --git a/test/src/analyzers/unused_files_analyzer/unused_files_config_test.dart b/test/src/analyzers/unused_files_analyzer/unused_files_config_test.dart index 0bab3e1177..828a53ea20 100644 --- a/test/src/analyzers/unused_files_analyzer/unused_files_config_test.dart +++ b/test/src/analyzers/unused_files_analyzer/unused_files_config_test.dart @@ -56,7 +56,7 @@ void main() { group('fromArgs constructs instance from passed', () { test('data', () { - final config = UnusedFilesConfig.fromArgs(['hello'], isMonorepo: true); + final config = UnusedFilesConfig.fromArgs('hello', isMonorepo: true); expect(config.excludePatterns, equals(['hello'])); expect(config.analyzerExcludePatterns, isEmpty); diff --git a/test/src/analyzers/unused_l10n_analyzer/unused_l10n_config_test.dart b/test/src/analyzers/unused_l10n_analyzer/unused_l10n_config_test.dart index 3b8ec6a43e..0218c46a4a 100644 --- a/test/src/analyzers/unused_l10n_analyzer/unused_l10n_config_test.dart +++ b/test/src/analyzers/unused_l10n_analyzer/unused_l10n_config_test.dart @@ -56,7 +56,7 @@ void main() { group('fromArgs constructs instance from passed', () { test('data', () { - final config = UnusedL10nConfig.fromArgs(['hello'], 'pattern1'); + final config = UnusedL10nConfig.fromArgs('hello', 'pattern1'); expect(config.excludePatterns, equals(['hello'])); expect(config.analyzerExcludePatterns, isEmpty); From 9d4c29803d6a3d4be9b8349e27dd5505c2baf243 Mon Sep 17 00:00:00 2001 From: Dmitry Zhifarsky Date: Sun, 3 Apr 2022 18:41:18 +0400 Subject: [PATCH 21/34] fix: correctly handle nullable types of collections (#786) --- CHANGELOG.md | 1 + ...ion_methods_with_unrelated_types_rule.dart | 1 + .../visitor.dart | 4 ++- ...ethods_with_unrelated_types_rule_test.dart | 29 +++++++++++++++++ .../examples/nullable_example.dart | 32 +++++++++++++++++++ 5 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 test/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/examples/nullable_example.dart diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e131f1cb8..37d74f39a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ * fix: support index expressions for [`no-magic-number`](https://dartcodemetrics.dev/docs/rules/common/no-magic-number) rule. * fix: correctly split exclude path * chore: restrict `analyzer` version to `>=2.4.0 <3.5.0`. +* fix: correctly handle nullable types of collections for [`avoid-collection-methods-with-unrelated-types`](https://dartcodemetrics.dev/docs/rules/common/avoid-collection-methods-with-unrelated-types) ## 4.13.0 diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/avoid_collection_methods_with_unrelated_types_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/avoid_collection_methods_with_unrelated_types_rule.dart index 72a0fa9e15..c63431e439 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/avoid_collection_methods_with_unrelated_types_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/avoid_collection_methods_with_unrelated_types_rule.dart @@ -3,6 +3,7 @@ import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/ast/visitor.dart'; import 'package:analyzer/dart/element/element.dart'; +import 'package:analyzer/dart/element/nullability_suffix.dart'; import 'package:analyzer/dart/element/type.dart'; import 'package:collection/collection.dart'; diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/visitor.dart index 9469595398..9b8f2d3a47 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/visitor.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/visitor.dart @@ -64,7 +64,9 @@ class _Visitor extends RecursiveAstVisitor { ) { if (parentElement != null && childType != null && - childType.asInstanceOf(parentElement.element) == null) { + childType.asInstanceOf(parentElement.element) == null && + !(parentElement.type.nullabilitySuffix == NullabilitySuffix.question && + childType.isDartCoreNull)) { _expressions.add(node); } } diff --git a/test/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/avoid_collection_methods_with_unrelated_types_rule_test.dart b/test/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/avoid_collection_methods_with_unrelated_types_rule_test.dart index 1925c8babb..c61520fea7 100644 --- a/test/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/avoid_collection_methods_with_unrelated_types_rule_test.dart +++ b/test/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/avoid_collection_methods_with_unrelated_types_rule_test.dart @@ -6,6 +6,8 @@ import '../../../../../helpers/rule_test_helper.dart'; const _examplePath = 'avoid_collection_methods_with_unrelated_types/examples/example.dart'; +const _nullableExamplePath = + 'avoid_collection_methods_with_unrelated_types/examples/nullable_example.dart'; void main() { group('AvoidCollectionMethodsWithUnrelatedTypesRule', () { @@ -132,5 +134,32 @@ void main() { ], ); }); + + test('reports about found issues for nullable collections', () async { + final unit = await RuleTestHelper.resolveFromFile(_nullableExamplePath); + final issues = AvoidCollectionMethodsWithUnrelatedTypesRule().check(unit); + + RuleTestHelper.verifyIssues( + issues: issues, + startLines: [4, 10, 15, 20, 25, 30], + startColumns: [5, 5, 5, 5, 5, 5], + locationTexts: [ + 'regularMap[null]', + 'nullableMap["str"]', + 'regularList.remove(null)', + 'nullableList.remove("str")', + 'regularSet.contains(null)', + 'nullableSet.contains("str")', + ], + messages: [ + 'Avoid collection methods with unrelated types.', + 'Avoid collection methods with unrelated types.', + 'Avoid collection methods with unrelated types.', + 'Avoid collection methods with unrelated types.', + 'Avoid collection methods with unrelated types.', + 'Avoid collection methods with unrelated types.', + ], + ); + }); }); } diff --git a/test/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/examples/nullable_example.dart b/test/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/examples/nullable_example.dart new file mode 100644 index 0000000000..fccdde0c7d --- /dev/null +++ b/test/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/examples/nullable_example.dart @@ -0,0 +1,32 @@ +void main() { + { + final regularMap = Map(); + regularMap[null] = "value"; // LINT + + final nullableMap = Map(); + nullableMap[42] = "value"; + nullableMap[null] = "value"; + final value = nullableMap[null]; + nullableMap["str"] = "value"; // LINT + } + + { + final regularList = [10, 20, 30]; + regularList.remove(null); // LINT + + final nullableList = [10, 20, 30, null]; + nullableList.remove(null); + nullableList.remove(20); + nullableList.remove("str"); // LINT + } + + { + final regularSet = {10, 20, 30}; + regularSet.contains(null); // LINT + + final nullableSet = {10, 20, 30, null}; + nullableSet.contains(null); + nullableSet.contains(42); + nullableSet.contains("str"); // LINT + } +} From d7829737d7852c4d33999fb975b5a14c3a1bc714 Mon Sep 17 00:00:00 2001 From: Dmitry Krutskikh Date: Sun, 3 Apr 2022 19:40:12 +0300 Subject: [PATCH 22/34] fix: unit test --- CHANGELOG.md | 2 +- lib/src/utils/exclude_utils.dart | 5 +++-- pubspec.yaml | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37d74f39a1..e181448e8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ * fix: cover more cases in [`prefer-immediate-return`](https://dartcodemetrics.dev/docs/rules/common/prefer-immediate-return) rule * fix: support index expressions for [`no-magic-number`](https://dartcodemetrics.dev/docs/rules/common/no-magic-number) rule. * fix: correctly split exclude path -* chore: restrict `analyzer` version to `>=2.4.0 <3.5.0`. +* chore: restrict `analyzer` version to `>=2.4.0 <3.4.0`. * fix: correctly handle nullable types of collections for [`avoid-collection-methods-with-unrelated-types`](https://dartcodemetrics.dev/docs/rules/common/avoid-collection-methods-with-unrelated-types) ## 4.13.0 diff --git a/lib/src/utils/exclude_utils.dart b/lib/src/utils/exclude_utils.dart index e7273faf0c..a18cec17b9 100644 --- a/lib/src/utils/exclude_utils.dart +++ b/lib/src/utils/exclude_utils.dart @@ -16,5 +16,6 @@ Iterable prepareExcludes( Glob(p.normalize(p.join(root, exclude)).replaceAll(r'\', '/'))) .toList(); -Iterable extractExcludes(String excludePath) => - excludePath.split(',').map((path) => path.trim()); +Iterable extractExcludes(String excludePath) => excludePath.isNotEmpty + ? excludePath.split(',').map((path) => path.trim()) + : []; diff --git a/pubspec.yaml b/pubspec.yaml index 00e961efd7..c23f7c24d4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,7 +10,7 @@ environment: sdk: ">=2.14.0 <3.0.0" dependencies: - analyzer: ">=2.4.0 <3.5.0" + analyzer: ">=2.4.0 <3.4.0" analyzer_plugin: ">=0.8.0 <0.10.0" ansicolor: ^2.0.1 args: ^2.0.0 From 34fe95f9cd8518fd3fcc091284094b61439cad70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Apr 2022 22:31:38 +0300 Subject: [PATCH 23/34] chore: bump prettier from 2.6.1 to 2.6.2 in /website (#789) Bumps [prettier](https://github.com/prettier/prettier) from 2.6.1 to 2.6.2. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/2.6.1...2.6.2) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 14 +++++++------- website/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index a810d3d2d5..6c00c159fe 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -25,7 +25,7 @@ "@types/react": "^17.0.43", "@types/react-helmet": "^6.1.5", "@types/react-router-dom": "^5.3.3", - "prettier": "2.6.1", + "prettier": "2.6.2", "typescript": "^4.6.3" } }, @@ -9386,9 +9386,9 @@ } }, "node_modules/prettier": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.1.tgz", - "integrity": "sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -19131,9 +19131,9 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "prettier": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.1.tgz", - "integrity": "sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", "dev": true }, "pretty-error": { diff --git a/website/package.json b/website/package.json index b617c82cb7..a512ae65a4 100644 --- a/website/package.json +++ b/website/package.json @@ -31,7 +31,7 @@ "@types/react": "^17.0.43", "@types/react-helmet": "^6.1.5", "@types/react-router-dom": "^5.3.3", - "prettier": "2.6.1", + "prettier": "2.6.2", "typescript": "^4.6.3" } } From 847e7a30e818b5607e72738ef680b0bc127055db Mon Sep 17 00:00:00 2001 From: Dmitry Krutskikh Date: Wed, 6 Apr 2022 20:48:40 +0300 Subject: [PATCH 24/34] chore: tune dependabot (#790) --- .github/dependabot.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 2a174516a6..3d1d3b931c 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,6 +4,7 @@ # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates version: 2 +enable-beta-ecosystems: true updates: # Maintain dependencies for GitHub Actions - package-ecosystem: "github-actions" @@ -30,3 +31,9 @@ updates: - "dkrutskikh" commit-message: prefix: "chore: " + + # Maintain dependencies for Dart pub + - package-ecosystem: "pub" + directory: "/" + schedule: + interval: "daily" From ced8074334efd65b739bc95a6c282145cf2d2872 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 10 Apr 2022 11:39:50 +0300 Subject: [PATCH 25/34] chore: bump xml from 5.4.1 to 6.0.1 (#792) Bumps [xml](https://github.com/renggli/dart-xml) from 5.4.1 to 6.0.1. - [Release notes](https://github.com/renggli/dart-xml/releases) - [Changelog](https://github.com/renggli/dart-xml/blob/main/CHANGELOG.md) - [Commits](https://github.com/renggli/dart-xml/compare/5.4.1...6.0.1) --- updated-dependencies: - dependency-name: xml dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index c23f7c24d4..fcd65f19bf 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -22,7 +22,7 @@ dependencies: meta: ^1.3.0 path: ^1.8.0 source_span: ^1.8.0 - xml: ^5.3.0 + xml: ">=5.3.0 <7.0.0" yaml: ^3.1.0 dev_dependencies: From c27725242baa314673199b674e185467b4bc0a32 Mon Sep 17 00:00:00 2001 From: Dmitry Krutskikh Date: Sun, 10 Apr 2022 13:19:05 +0300 Subject: [PATCH 26/34] revert fix: correctly split exclude path This reverts commit 3397933b3f6b3d507c5115d54f89dde355c0a1de --- CHANGELOG.md | 1 - .../analyzers/lint_analyzer/lint_config.dart | 4 ++-- .../unused_code_config.dart | 5 ++--- .../unused_files_config.dart | 5 ++--- .../unused_l10n_config.dart | 5 ++--- .../commands/check_unused_code_command.dart | 2 +- .../commands/check_unused_files_command.dart | 2 +- .../commands/check_unused_l10n_command.dart | 2 +- lib/src/config_builder/config_builder.dart | 18 +++++++++--------- lib/src/utils/exclude_utils.dart | 4 ---- .../unused_code_config_test.dart | 2 +- .../unused_files_config_test.dart | 2 +- .../unused_l10n_config_test.dart | 2 +- 13 files changed, 23 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e181448e8d..d6c0e5825a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,6 @@ * fix: add check for supertypes for [`avoid-non-null-assertions`](https://dartcodemetrics.dev/docs/rules/common/avoid-non-null-assertion) rule. * fix: cover more cases in [`prefer-immediate-return`](https://dartcodemetrics.dev/docs/rules/common/prefer-immediate-return) rule * fix: support index expressions for [`no-magic-number`](https://dartcodemetrics.dev/docs/rules/common/no-magic-number) rule. -* fix: correctly split exclude path * chore: restrict `analyzer` version to `>=2.4.0 <3.4.0`. * fix: correctly handle nullable types of collections for [`avoid-collection-methods-with-unrelated-types`](https://dartcodemetrics.dev/docs/rules/common/avoid-collection-methods-with-unrelated-types) diff --git a/lib/src/analyzers/lint_analyzer/lint_config.dart b/lib/src/analyzers/lint_analyzer/lint_config.dart index 48f9f3f5ad..5eebbcf8cb 100644 --- a/lib/src/analyzers/lint_analyzer/lint_config.dart +++ b/lib/src/analyzers/lint_analyzer/lint_config.dart @@ -1,7 +1,6 @@ import '../../cli/models/parsed_arguments.dart'; import '../../config_builder/analysis_options_utils.dart'; import '../../config_builder/models/analysis_options.dart'; -import '../../utils/exclude_utils.dart'; import 'metrics/metrics_factory.dart'; /// Represents raw lint config which can be merged with other raw configs. @@ -40,7 +39,8 @@ class LintConfig { /// Creates the config from cli [arguments]. factory LintConfig.fromArgs(ParsedArguments arguments) => LintConfig( - excludePatterns: extractExcludes(arguments.excludePath), + excludePatterns: + arguments.excludePath.isNotEmpty ? [arguments.excludePath] : [], excludeForMetricsPatterns: const [], metrics: { for (final metric in getMetrics(config: {})) diff --git a/lib/src/analyzers/unused_code_analyzer/unused_code_config.dart b/lib/src/analyzers/unused_code_analyzer/unused_code_config.dart index d2c55e015d..1e0ad8194d 100644 --- a/lib/src/analyzers/unused_code_analyzer/unused_code_config.dart +++ b/lib/src/analyzers/unused_code_analyzer/unused_code_config.dart @@ -1,5 +1,4 @@ import '../../config_builder/models/analysis_options.dart'; -import '../../utils/exclude_utils.dart'; /// Represents raw unused code config which can be merged with other raw configs. class UnusedCodeConfig { @@ -24,11 +23,11 @@ class UnusedCodeConfig { /// Creates the config from cli args. factory UnusedCodeConfig.fromArgs( - String excludePath, { + Iterable excludePatterns, { required bool isMonorepo, }) => UnusedCodeConfig( - excludePatterns: extractExcludes(excludePath), + excludePatterns: excludePatterns, analyzerExcludePatterns: const [], isMonorepo: isMonorepo, ); diff --git a/lib/src/analyzers/unused_files_analyzer/unused_files_config.dart b/lib/src/analyzers/unused_files_analyzer/unused_files_config.dart index 5556a70377..a160cc9cb9 100644 --- a/lib/src/analyzers/unused_files_analyzer/unused_files_config.dart +++ b/lib/src/analyzers/unused_files_analyzer/unused_files_config.dart @@ -1,5 +1,4 @@ import '../../config_builder/models/analysis_options.dart'; -import '../../utils/exclude_utils.dart'; /// Represents raw unused files config which can be merged with other raw configs. class UnusedFilesConfig { @@ -24,11 +23,11 @@ class UnusedFilesConfig { /// Creates the config from cli args. factory UnusedFilesConfig.fromArgs( - String excludePath, { + Iterable excludePatterns, { required bool isMonorepo, }) => UnusedFilesConfig( - excludePatterns: extractExcludes(excludePath), + excludePatterns: excludePatterns, analyzerExcludePatterns: const [], isMonorepo: isMonorepo, ); diff --git a/lib/src/analyzers/unused_l10n_analyzer/unused_l10n_config.dart b/lib/src/analyzers/unused_l10n_analyzer/unused_l10n_config.dart index c0f4e30684..74c4869b97 100644 --- a/lib/src/analyzers/unused_l10n_analyzer/unused_l10n_config.dart +++ b/lib/src/analyzers/unused_l10n_analyzer/unused_l10n_config.dart @@ -1,5 +1,4 @@ import '../../config_builder/models/analysis_options.dart'; -import '../../utils/exclude_utils.dart'; /// Represents raw unused files config which can be merged with other raw configs. class UnusedL10nConfig { @@ -26,11 +25,11 @@ class UnusedL10nConfig { /// Creates the config from cli args. factory UnusedL10nConfig.fromArgs( - String excludePath, + Iterable excludePatterns, String classPattern, ) => UnusedL10nConfig( - excludePatterns: extractExcludes(excludePath), + excludePatterns: excludePatterns, analyzerExcludePatterns: const [], classPattern: classPattern, ); diff --git a/lib/src/cli/commands/check_unused_code_command.dart b/lib/src/cli/commands/check_unused_code_command.dart index bff1163d37..cceb684f15 100644 --- a/lib/src/cli/commands/check_unused_code_command.dart +++ b/lib/src/cli/commands/check_unused_code_command.dart @@ -35,7 +35,7 @@ class CheckUnusedCodeCommand extends BaseCommand { final noCongratulate = argResults[FlagNames.noCongratulate] as bool; final config = ConfigBuilder.getUnusedCodeConfigFromArgs( - excludePath, + [excludePath], isMonorepo: isMonorepo, ); diff --git a/lib/src/cli/commands/check_unused_files_command.dart b/lib/src/cli/commands/check_unused_files_command.dart index cb1a71acce..7171ef4dbb 100644 --- a/lib/src/cli/commands/check_unused_files_command.dart +++ b/lib/src/cli/commands/check_unused_files_command.dart @@ -36,7 +36,7 @@ class CheckUnusedFilesCommand extends BaseCommand { final deleteFiles = argResults[FlagNames.deleteFiles] as bool; final config = ConfigBuilder.getUnusedFilesConfigFromArgs( - excludePath, + [excludePath], isMonorepo: isMonorepo, ); diff --git a/lib/src/cli/commands/check_unused_l10n_command.dart b/lib/src/cli/commands/check_unused_l10n_command.dart index 7c680c2ace..e399b1b87c 100644 --- a/lib/src/cli/commands/check_unused_l10n_command.dart +++ b/lib/src/cli/commands/check_unused_l10n_command.dart @@ -37,7 +37,7 @@ class CheckUnusedL10nCommand extends BaseCommand { final folders = argResults.rest; final config = ConfigBuilder.getUnusedL10nConfigFromArgs( - excludePath, + [excludePath], classPattern, ); diff --git a/lib/src/config_builder/config_builder.dart b/lib/src/config_builder/config_builder.dart index 14c81bd002..1596cb16bc 100644 --- a/lib/src/config_builder/config_builder.dart +++ b/lib/src/config_builder/config_builder.dart @@ -68,12 +68,12 @@ class ConfigBuilder { ); } - /// Creates a raw unused files config from given [excludePath]. + /// Creates a raw unused files config from given [excludePatterns]. static UnusedFilesConfig getUnusedFilesConfigFromArgs( - String excludePath, { + Iterable excludePatterns, { required bool isMonorepo, }) => - UnusedFilesConfig.fromArgs(excludePath, isMonorepo: isMonorepo); + UnusedFilesConfig.fromArgs(excludePatterns, isMonorepo: isMonorepo); /// Creates a raw unused files config from given [options]. static UnusedFilesConfig getUnusedFilesConfigFromOption( @@ -91,12 +91,12 @@ class ConfigBuilder { prepareExcludes(config.analyzerExcludePatterns, rootPath), ); - /// Creates a raw unused code config from given [excludePath]. + /// Creates a raw unused code config from given [excludePatterns]. static UnusedCodeConfig getUnusedCodeConfigFromArgs( - String excludePath, { + Iterable excludePatterns, { required bool isMonorepo, }) => - UnusedCodeConfig.fromArgs(excludePath, isMonorepo: isMonorepo); + UnusedCodeConfig.fromArgs(excludePatterns, isMonorepo: isMonorepo); /// Creates a raw unused code config from given [options]. static UnusedCodeConfig getUnusedCodeConfigFromOption( @@ -114,12 +114,12 @@ class ConfigBuilder { prepareExcludes(config.analyzerExcludePatterns, rootPath), ); - /// Creates a raw unused localization config from given [excludePath] and [classPattern]. + /// Creates a raw unused localization config from given [excludePatterns] and [classPattern]. static UnusedL10nConfig getUnusedL10nConfigFromArgs( - String excludePath, + Iterable excludePatterns, String classPattern, ) => - UnusedL10nConfig.fromArgs(excludePath, classPattern); + UnusedL10nConfig.fromArgs(excludePatterns, classPattern); /// Creates a raw unused localization config from given [options]. static UnusedL10nConfig getUnusedL10nConfigFromOption( diff --git a/lib/src/utils/exclude_utils.dart b/lib/src/utils/exclude_utils.dart index a18cec17b9..5212ec4026 100644 --- a/lib/src/utils/exclude_utils.dart +++ b/lib/src/utils/exclude_utils.dart @@ -15,7 +15,3 @@ Iterable prepareExcludes( .map((exclude) => Glob(p.normalize(p.join(root, exclude)).replaceAll(r'\', '/'))) .toList(); - -Iterable extractExcludes(String excludePath) => excludePath.isNotEmpty - ? excludePath.split(',').map((path) => path.trim()) - : []; diff --git a/test/src/analyzers/unused_code_analyzer/unused_code_config_test.dart b/test/src/analyzers/unused_code_analyzer/unused_code_config_test.dart index 158cc304bd..ebdb0afef7 100644 --- a/test/src/analyzers/unused_code_analyzer/unused_code_config_test.dart +++ b/test/src/analyzers/unused_code_analyzer/unused_code_config_test.dart @@ -56,7 +56,7 @@ void main() { group('fromArgs constructs instance from passed', () { test('data', () { - final config = UnusedCodeConfig.fromArgs('hello', isMonorepo: true); + final config = UnusedCodeConfig.fromArgs(['hello'], isMonorepo: true); expect(config.excludePatterns, equals(['hello'])); expect(config.analyzerExcludePatterns, isEmpty); diff --git a/test/src/analyzers/unused_files_analyzer/unused_files_config_test.dart b/test/src/analyzers/unused_files_analyzer/unused_files_config_test.dart index 828a53ea20..0bab3e1177 100644 --- a/test/src/analyzers/unused_files_analyzer/unused_files_config_test.dart +++ b/test/src/analyzers/unused_files_analyzer/unused_files_config_test.dart @@ -56,7 +56,7 @@ void main() { group('fromArgs constructs instance from passed', () { test('data', () { - final config = UnusedFilesConfig.fromArgs('hello', isMonorepo: true); + final config = UnusedFilesConfig.fromArgs(['hello'], isMonorepo: true); expect(config.excludePatterns, equals(['hello'])); expect(config.analyzerExcludePatterns, isEmpty); diff --git a/test/src/analyzers/unused_l10n_analyzer/unused_l10n_config_test.dart b/test/src/analyzers/unused_l10n_analyzer/unused_l10n_config_test.dart index 0218c46a4a..3b8ec6a43e 100644 --- a/test/src/analyzers/unused_l10n_analyzer/unused_l10n_config_test.dart +++ b/test/src/analyzers/unused_l10n_analyzer/unused_l10n_config_test.dart @@ -56,7 +56,7 @@ void main() { group('fromArgs constructs instance from passed', () { test('data', () { - final config = UnusedL10nConfig.fromArgs('hello', 'pattern1'); + final config = UnusedL10nConfig.fromArgs(['hello'], 'pattern1'); expect(config.excludePatterns, equals(['hello'])); expect(config.analyzerExcludePatterns, isEmpty); From e197826c1238c293ad72518fc498a19b4bac6539 Mon Sep 17 00:00:00 2001 From: Dmitry Krutskikh Date: Sun, 10 Apr 2022 14:12:12 +0300 Subject: [PATCH 27/34] chore: up threshold for technical debt --- analysis_options.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analysis_options.yaml b/analysis_options.yaml index f278a44945..25094d3874 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -27,7 +27,7 @@ dart_code_metrics: number-of-parameters: 5 source-lines-of-code: 50 technical-debt: - threshold: 1 + threshold: 16 todo-cost: 4 ignore-cost: 8 ignore-for-file-cost: 16 From ccbc0b5d033255b975b04c5d44e300c6e91cf2a1 Mon Sep 17 00:00:00 2001 From: Dmitry Zhifarsky Date: Sun, 10 Apr 2022 18:52:01 +0400 Subject: [PATCH 28/34] feat: add static code diagnostic prefer-moving-to-variable (#781) * feat: add static code diagnostic prefer-moving-to-variable * fix: cover edge-cases * Update CHANGELOG.md Co-authored-by: Dmitry Krutskikh --- CHANGELOG.md | 1 + .../lint_analyzer/rules/rules_factory.dart | 3 + .../prefer_moving_to_variable_rule.dart | 43 +++++++ .../prefer_moving_to_variable/visitor.dart | 118 +++++++++++++++++ .../examples/cascade_example.dart | 52 ++++++++ .../examples/example.dart | 49 +++++++ .../prefer_moving_to_variable_rule_test.dart | 120 ++++++++++++++++++ .../rules/common/prefer-moving-to-variable.md | 50 ++++++++ 8 files changed, 436 insertions(+) create mode 100644 lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/prefer_moving_to_variable_rule.dart create mode 100644 lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/visitor.dart create mode 100644 test/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/examples/cascade_example.dart create mode 100644 test/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/examples/example.dart create mode 100644 test/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/prefer_moving_to_variable_rule_test.dart create mode 100644 website/docs/rules/common/prefer-moving-to-variable.md diff --git a/CHANGELOG.md b/CHANGELOG.md index d6c0e5825a..9a0cb770b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## Unreleased * feat: add static code diagnostic [`prefer-commenting-analyzer-ignores`](https://dartcodemetrics.dev/docs/rules/common/prefer-commenting-analyzer-ignores). +* feat: add static code diagnostic [`prefer-moving-to-variable`](https://dartcodemetrics.dev/docs/rules/common/prefer-moving-to-variable). * fix: add check for supertypes for [`avoid-non-null-assertions`](https://dartcodemetrics.dev/docs/rules/common/avoid-non-null-assertion) rule. * fix: cover more cases in [`prefer-immediate-return`](https://dartcodemetrics.dev/docs/rules/common/prefer-immediate-return) rule * fix: support index expressions for [`no-magic-number`](https://dartcodemetrics.dev/docs/rules/common/no-magic-number) rule. diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_factory.dart b/lib/src/analyzers/lint_analyzer/rules/rules_factory.dart index 1661c43604..d42a755268 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_factory.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_factory.dart @@ -44,6 +44,7 @@ import 'rules_list/prefer_immediate_return/prefer_immediate_return_rule.dart'; import 'rules_list/prefer_intl_name/prefer_intl_name_rule.dart'; import 'rules_list/prefer_last/prefer_last_rule.dart'; import 'rules_list/prefer_match_file_name/prefer_match_file_name_rule.dart'; +import 'rules_list/prefer_moving_to_variable/prefer_moving_to_variable_rule.dart'; import 'rules_list/prefer_on_push_cd_strategy/prefer_on_push_cd_strategy_rule.dart'; import 'rules_list/prefer_single_widget_per_file/prefer_single_widget_per_file_rule.dart'; import 'rules_list/prefer_trailing_comma/prefer_trailing_comma_rule.dart'; @@ -121,6 +122,8 @@ final _implementedRules = )>{ PreferIntlNameRule.ruleId: (config) => PreferIntlNameRule(config), PreferLastRule.ruleId: (config) => PreferLastRule(config), PreferMatchFileNameRule.ruleId: (config) => PreferMatchFileNameRule(config), + PreferMovingToVariableRule.ruleId: (config) => + PreferMovingToVariableRule(config), PreferOnPushCdStrategyRule.ruleId: (config) => PreferOnPushCdStrategyRule(config), PreferSingleWidgetPerFileRule.ruleId: (config) => diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/prefer_moving_to_variable_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/prefer_moving_to_variable_rule.dart new file mode 100644 index 0000000000..27c020e89e --- /dev/null +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/prefer_moving_to_variable_rule.dart @@ -0,0 +1,43 @@ +// ignore_for_file: public_member_api_docs + +import 'package:analyzer/dart/ast/ast.dart'; +import 'package:analyzer/dart/ast/visitor.dart'; + +import '../../../../../utils/node_utils.dart'; +import '../../../lint_utils.dart'; +import '../../../models/internal_resolved_unit_result.dart'; +import '../../../models/issue.dart'; +import '../../../models/severity.dart'; +import '../../models/common_rule.dart'; +import '../../rule_utils.dart'; + +part 'visitor.dart'; + +class PreferMovingToVariableRule extends CommonRule { + static const String ruleId = 'prefer-moving-to-variable'; + + static const _warningMessage = + 'Prefer moving repeated invocations to variable and use it instead.'; + + PreferMovingToVariableRule([Map config = const {}]) + : super( + id: ruleId, + severity: readSeverity(config, Severity.warning), + excludes: readExcludes(config), + ); + + @override + Iterable check(InternalResolvedUnitResult source) { + final visitor = _Visitor(); + + source.unit.visitChildren(visitor); + + return visitor.nodes + .map((node) => createIssue( + rule: this, + location: nodeLocation(node: node, source: source), + message: _warningMessage, + )) + .toList(growable: false); + } +} diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/visitor.dart new file mode 100644 index 0000000000..f86ff0ac0f --- /dev/null +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/visitor.dart @@ -0,0 +1,118 @@ +part of 'prefer_moving_to_variable_rule.dart'; + +class _Visitor extends RecursiveAstVisitor { + final _nodes = []; + + Iterable get nodes => _nodes; + + @override + void visitBlockFunctionBody(BlockFunctionBody node) { + super.visitBlockFunctionBody(node); + + final visitor = _BlockVisitor(); + node.visitChildren(visitor); + + _nodes.addAll(visitor.duplicates); + } +} + +class _BlockVisitor extends RecursiveAstVisitor { + final Map _visitedInvocations = {}; + final Set _visitedNodes = {}; + final Set _duplicates = {}; + + Set get duplicates => _duplicates; + + _BlockVisitor(); + + @override + void visitPropertyAccess(PropertyAccess node) { + if (node.target == null) { + return; + } + + final hasDuplicates = _checkForDuplicates(node, node.target); + if (!hasDuplicates) { + super.visitPropertyAccess(node); + } + } + + @override + void visitMethodInvocation(MethodInvocation node) { + if (node.parent is CascadeExpression) { + return; + } + + final hasDuplicates = _checkForDuplicates(node, node.target); + if (!hasDuplicates) { + super.visitMethodInvocation(node); + } + } + + bool _checkForDuplicates(AstNode node, Expression? target) { + final access = node.toString(); + final visitedInvocation = _visitedInvocations[access]; + final isDuplicate = + visitedInvocation != null && _isDuplicate(visitedInvocation, node); + if (isDuplicate) { + _duplicates.addAll([visitedInvocation!, node]); + } + + if (_visitedNodes.contains(node)) { + return isDuplicate; + } + + _visitedInvocations[access] = node; + _visitAllTargets(target); + + return false; + } + + bool _isDuplicate(AstNode visitedInvocation, AstNode node) { + final visitedSwitch = + visitedInvocation.thisOrAncestorOfType(); + + final visitedBlock = visitedInvocation.thisOrAncestorOfType(); + final parentBlock = node.thisOrAncestorOfType(); + + // ignore: avoid-late-keyword + late final grandParentBlock = parentBlock?.thisOrAncestorMatching( + (block) => block is Block && block != parentBlock, + ); + + final visitedFunctionExpression = visitedInvocation.thisOrAncestorMatching( + (astNode) => + astNode is FunctionExpression || astNode is FunctionDeclaration, + ); + final parentFunctionExpression = node.thisOrAncestorMatching((astNode) => + astNode is FunctionExpression || astNode is FunctionDeclaration); + + return visitedInvocation != node && + visitedSwitch == null && + (visitedBlock == parentBlock || visitedBlock == grandParentBlock) && + (visitedFunctionExpression == null && + parentFunctionExpression == null || + visitedFunctionExpression == parentFunctionExpression); + } + + void _visitAllTargets(Expression? target) { + var realTarget = target; + + while (realTarget != null) { + _visitedNodes.add(realTarget); + + final access = realTarget.toString(); + if (!_visitedInvocations.containsKey(access)) { + _visitedInvocations[access] = realTarget; + } + + if (realTarget is MethodInvocation) { + realTarget = realTarget.realTarget; + } else if (realTarget is PropertyAccess) { + realTarget = realTarget.realTarget; + } else { + realTarget = null; + } + } + } +} diff --git a/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/examples/cascade_example.dart b/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/examples/cascade_example.dart new file mode 100644 index 0000000000..1ae5ccd41c --- /dev/null +++ b/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/examples/cascade_example.dart @@ -0,0 +1,52 @@ +void main() { + final cyclomaticValues = Element.tag('td') + ..classes.add('metrics-source-code__complexity'); + + final tooltip = Element.tag('div') + ..classes.add('metrics-source-code__tooltip') + ..append(Element.tag('div') + ..classes.add('metrics-source-code__tooltip-title') + ..text = title) + ..append(Element.tag('p') + ..classes.add('metrics-source-code__tooltip-section') + ..text = issue.message); + + final html = Element.tag('html') + ..attributes['lang'] = 'en' + ..append(Element.tag('head') + ..append(Element.tag('title')..text = 'Metrics report') + ..append(Element.tag('meta')..attributes['charset'] = 'utf-8') + ..append(Element.tag('link') + ..attributes['rel'] = 'stylesheet' + ..attributes['href'] = 'variables.css') + ..append(Element.tag('link') + ..attributes['rel'] = 'stylesheet' + ..attributes['href'] = 'normalize.css') + ..append(Element.tag('link') + ..attributes['rel'] = 'stylesheet' + ..attributes['href'] = 'base.css') + ..append(Element.tag('link') + ..attributes['rel'] = 'stylesheet' + ..attributes['href'] = 'main.css')) + ..append(Element.tag('body') + ..append(Element.tag('h1') + ..classes.add('metric-header') + ..text = 'All files') + ..append(_generateTable('Directory', tableRecords))); +} + +class Element { + final String localName; + + final nodes = []; + + Set get classes => {}; + + String text; + + LinkedHashMap attributes = LinkedHashMap(); + + Element.tag(this.localName); + + void append(Element node) => nodes.add(node); +} diff --git a/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/examples/example.dart b/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/examples/example.dart new file mode 100644 index 0000000000..4a1dfd6371 --- /dev/null +++ b/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/examples/example.dart @@ -0,0 +1,49 @@ +void main() { + final isEmpty = Theme.of('color').trim().isEmpty; // LINT + final isNotEmpty = Theme.of('color').trim().isNotEmpty; // LINT + + final string = 'str'; + + string.indexOf('').sign.bitLength.isEven; // LINT + string.indexOf('').sign.isOdd; // LINT + + getValue().isNotEmpty; // LINT + getValue().length; // LINT + + getValue().contains('').toString(); // LINT + getValue().contains('asd').toString(); // LINT + + string.length; + string.isEmpty; + + Theme.after().value.runtimeType; // LINT + Theme.after().value.length; // LINT + + Theme.from().value.runtimeType; // LINT + Theme.from().value.length; // LINT + + Theme.from().someMethod(); // LINT + Theme.from().someMethod(); // LINT + + getValue(); // LINT + getValue(); // LINT +} + +class Theme { + const value = '123'; + + static String of(String value) => value; + + factory Theme.from() => Theme(); + + Theme.after() {} + + void someMethod() { + final string = 'str'; + + string.indexOf('').sign.bitLength.isEven; // LINT + string.indexOf('').sign.isOdd; // LINT + } +} + +String getValue() => 'hello'; diff --git a/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/prefer_moving_to_variable_rule_test.dart b/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/prefer_moving_to_variable_rule_test.dart new file mode 100644 index 0000000000..c49f068d6b --- /dev/null +++ b/test/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/prefer_moving_to_variable_rule_test.dart @@ -0,0 +1,120 @@ +import 'package:dart_code_metrics/src/analyzers/lint_analyzer/models/severity.dart'; +import 'package:dart_code_metrics/src/analyzers/lint_analyzer/rules/rules_list/prefer_moving_to_variable/prefer_moving_to_variable_rule.dart'; +import 'package:test/test.dart'; + +import '../../../../../helpers/rule_test_helper.dart'; + +const _examplePath = 'prefer_moving_to_variable/examples/example.dart'; +const _cascadeExamplePath = + 'prefer_moving_to_variable/examples/cascade_example.dart'; + +void main() { + group('PreferMovingToVariableRule', () { + test('initialization', () async { + final unit = await RuleTestHelper.resolveFromFile(_examplePath); + final issues = PreferMovingToVariableRule().check(unit); + + RuleTestHelper.verifyInitialization( + issues: issues, + ruleId: 'prefer-moving-to-variable', + severity: Severity.warning, + ); + }); + + test('reports about found issues', () async { + final unit = await RuleTestHelper.resolveFromFile(_examplePath); + final issues = PreferMovingToVariableRule().check(unit); + + RuleTestHelper.verifyIssues( + issues: issues, + startLines: [ + 2, + 3, + 7, + 8, + 10, + 11, + 13, + 14, + 19, + 20, + 22, + 23, + 25, + 26, + 28, + 29, + 44, + 45, + ], + startColumns: [ + 19, + 22, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 5, + 5, + ], + locationTexts: [ + "Theme.of('color').trim()", + "Theme.of('color').trim()", + "string.indexOf('').sign", + "string.indexOf('').sign", + 'getValue()', + 'getValue()', + 'getValue()', + 'getValue()', + 'Theme.after().value', + 'Theme.after().value', + 'Theme.from().value', + 'Theme.from().value', + 'Theme.from().someMethod()', + 'Theme.from().someMethod()', + 'getValue()', + 'getValue()', + "string.indexOf('').sign", + "string.indexOf('').sign", + ], + messages: [ + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + 'Prefer moving repeated invocations to variable and use it instead.', + ], + ); + }); + + test('reports no issues for cascade', () async { + final unit = await RuleTestHelper.resolveFromFile(_cascadeExamplePath); + final issues = PreferMovingToVariableRule().check(unit); + + RuleTestHelper.verifyNoIssues(issues); + }); + }); +} diff --git a/website/docs/rules/common/prefer-moving-to-variable.md b/website/docs/rules/common/prefer-moving-to-variable.md new file mode 100644 index 0000000000..73d6c1cb77 --- /dev/null +++ b/website/docs/rules/common/prefer-moving-to-variable.md @@ -0,0 +1,50 @@ +# Prefer moving to variable + +## Rule id {#rule-id} + +prefer-moving-to-variable + +## Severity {#severity} + +Warning + +## Description {#description} + +Warns when a property access or a method invocation start with duplicated chains of other invocations / accesses inside a single function or method block. + +For instance, you have a function `getUser()` that returns a class instance with two fields: `name` and `age`. If you call this function twice inside another function body, like: + +```dart +final name = getUser().name; +final age = getUser().age; +``` + +the rule will suggest to move `getUser()` call to a single variable. + +### Example {#example} + +Bad: + +```dart +return Container( + color: Theme.of(context).colorScheme.secondary, // LINT + child: Text( + 'Text with a background color', + style: Theme.of(context).textTheme.headline6, // LINT + ), +); +``` + +Good: + +```dart +final theme = Theme.of(context); + +return Container( + color: theme.colorScheme.secondary, + child: Text( + 'Text with a background color', + style: theme.textTheme.headline6, + ), +); +``` From 5e0317a3c7997ecd6b90267cbe472a117b9b1d73 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 10 Apr 2022 19:50:18 +0400 Subject: [PATCH 29/34] chore: bump @types/react from 17.0.43 to 18.0.0 in /website (#793) Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 17.0.43 to 18.0.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 92 ++++++++++++++++++++++++--------------- website/package.json | 2 +- 2 files changed, 59 insertions(+), 35 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 6c00c159fe..3cd8df095e 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -22,7 +22,7 @@ "devDependencies": { "@docusaurus/module-type-aliases": "^2.0.0-beta.17", "@tsconfig/docusaurus": "^1.0.5", - "@types/react": "^17.0.43", + "@types/react": "^18.0.0", "@types/react-helmet": "^6.1.5", "@types/react-router-dom": "^5.3.3", "prettier": "2.6.2", @@ -2046,22 +2046,6 @@ "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.0.0.tgz", "integrity": "sha512-1kkV7tkAsiuEd0shunYRByKJe3xQDG2q7wYg24SOw1nV9/2lwEd4WrUYRJC/ukGTl2/kHeFxsaUvtiOy0y6fFA==" }, - "node_modules/@docsearch/react": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.0.0.tgz", - "integrity": "sha512-yhMacqS6TVQYoBh/o603zszIb5Bl8MIXuOc6Vy617I74pirisDzzcNh0NEaYQt50fVVR3khUbeEhUEWEWipESg==", - "dependencies": { - "@algolia/autocomplete-core": "1.5.2", - "@algolia/autocomplete-preset-algolia": "1.5.2", - "@docsearch/css": "3.0.0", - "algoliasearch": "^4.0.0" - }, - "peerDependencies": { - "@types/react": ">= 16.8.0 < 18.0.0", - "react": ">= 16.8.0 < 18.0.0", - "react-dom": ">= 16.8.0 < 18.0.0" - } - }, "node_modules/@docusaurus/core": { "version": "2.0.0-beta.18", "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-beta.18.tgz", @@ -2634,6 +2618,33 @@ "react-dom": "^16.8.4 || ^17.0.0" } }, + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docsearch/react": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.0.0.tgz", + "integrity": "sha512-yhMacqS6TVQYoBh/o603zszIb5Bl8MIXuOc6Vy617I74pirisDzzcNh0NEaYQt50fVVR3khUbeEhUEWEWipESg==", + "dependencies": { + "@algolia/autocomplete-core": "1.5.2", + "@algolia/autocomplete-preset-algolia": "1.5.2", + "@docsearch/css": "3.0.0", + "algoliasearch": "^4.0.0" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 18.0.0", + "react": ">= 16.8.0 < 18.0.0", + "react-dom": ">= 16.8.0 < 18.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia/node_modules/@types/react": { + "version": "17.0.44", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.44.tgz", + "integrity": "sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g==", + "peer": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, "node_modules/@docusaurus/theme-translations": { "version": "2.0.0-beta.18", "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.0.0-beta.18.tgz", @@ -3450,9 +3461,9 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "node_modules/@types/react": { - "version": "17.0.43", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.43.tgz", - "integrity": "sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.0.tgz", + "integrity": "sha512-7+K7zEQYu7NzOwQGLR91KwWXXDzmTFODRVizJyIALf6RfLv2GDpqpknX64pvRVILXCpXi7O/pua8NGk44dLvJw==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -13804,17 +13815,6 @@ "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.0.0.tgz", "integrity": "sha512-1kkV7tkAsiuEd0shunYRByKJe3xQDG2q7wYg24SOw1nV9/2lwEd4WrUYRJC/ukGTl2/kHeFxsaUvtiOy0y6fFA==" }, - "@docsearch/react": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.0.0.tgz", - "integrity": "sha512-yhMacqS6TVQYoBh/o603zszIb5Bl8MIXuOc6Vy617I74pirisDzzcNh0NEaYQt50fVVR3khUbeEhUEWEWipESg==", - "requires": { - "@algolia/autocomplete-core": "1.5.2", - "@algolia/autocomplete-preset-algolia": "1.5.2", - "@docsearch/css": "3.0.0", - "algoliasearch": "^4.0.0" - } - }, "@docusaurus/core": { "version": "2.0.0-beta.18", "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-beta.18.tgz", @@ -14225,6 +14225,30 @@ "lodash": "^4.17.21", "tslib": "^2.3.1", "utility-types": "^3.10.0" + }, + "dependencies": { + "@docsearch/react": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.0.0.tgz", + "integrity": "sha512-yhMacqS6TVQYoBh/o603zszIb5Bl8MIXuOc6Vy617I74pirisDzzcNh0NEaYQt50fVVR3khUbeEhUEWEWipESg==", + "requires": { + "@algolia/autocomplete-core": "1.5.2", + "@algolia/autocomplete-preset-algolia": "1.5.2", + "@docsearch/css": "3.0.0", + "algoliasearch": "^4.0.0" + } + }, + "@types/react": { + "version": "17.0.44", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.44.tgz", + "integrity": "sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g==", + "peer": true, + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + } } }, "@docusaurus/theme-translations": { @@ -14854,9 +14878,9 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "@types/react": { - "version": "17.0.43", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.43.tgz", - "integrity": "sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.0.tgz", + "integrity": "sha512-7+K7zEQYu7NzOwQGLR91KwWXXDzmTFODRVizJyIALf6RfLv2GDpqpknX64pvRVILXCpXi7O/pua8NGk44dLvJw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", diff --git a/website/package.json b/website/package.json index a512ae65a4..e1e92315d4 100644 --- a/website/package.json +++ b/website/package.json @@ -28,7 +28,7 @@ "devDependencies": { "@docusaurus/module-type-aliases": "^2.0.0-beta.17", "@tsconfig/docusaurus": "^1.0.5", - "@types/react": "^17.0.43", + "@types/react": "^18.0.0", "@types/react-helmet": "^6.1.5", "@types/react-router-dom": "^5.3.3", "prettier": "2.6.2", From 44ff11999e70e13babf209d0f9850266a3d3ad7a Mon Sep 17 00:00:00 2001 From: Dmitry Zhifarsky Date: Sun, 10 Apr 2022 20:00:37 +0400 Subject: [PATCH 30/34] docs: update prefer-async-await rule (#795) --- CHANGELOG.md | 1 + website/docs/rules/common/prefer-async-await.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a0cb770b5..17e2bcb11a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ * fix: support index expressions for [`no-magic-number`](https://dartcodemetrics.dev/docs/rules/common/no-magic-number) rule. * chore: restrict `analyzer` version to `>=2.4.0 <3.4.0`. * fix: correctly handle nullable types of collections for [`avoid-collection-methods-with-unrelated-types`](https://dartcodemetrics.dev/docs/rules/common/avoid-collection-methods-with-unrelated-types) +* docs: update `prefer-async-await` rule. ## 4.13.0 diff --git a/website/docs/rules/common/prefer-async-await.md b/website/docs/rules/common/prefer-async-await.md index 7aadd5b465..9dc6714688 100644 --- a/website/docs/rules/common/prefer-async-await.md +++ b/website/docs/rules/common/prefer-async-await.md @@ -28,7 +28,7 @@ Good: ```dart Future main() async { - final result = await someFuture; (result) => handleResult(result)); + final result = await someFuture; handleResult(result); final anotherResult = await foo.asyncMethod(); From 9bb534b23f7d55ec37bba95810d2f0d7f68926a1 Mon Sep 17 00:00:00 2001 From: Dmitry Zhifarsky Date: Sun, 10 Apr 2022 20:12:43 +0400 Subject: [PATCH 31/34] chore: fix prefer moving to variable issues (#787) * feat: add static code diagnostic prefer-moving-to-variable * fix: cover edge-cases * chore: fix new rule issue * chore: fix analyzer issues * Update CHANGELOG.md Co-authored-by: Dmitry Krutskikh --- CHANGELOG.md | 5 +-- lib/src/analyzer_plugin/analyzer_plugin.dart | 16 ++++----- .../analyzer_plugin_utils.dart | 19 ++++++----- .../halstead_volume_ast_visitor.dart | 3 +- .../nesting_level_visitor.dart | 12 ++++--- .../lint_analyzer/models/suppression.dart | 7 ++-- .../checkstyle/lint_checkstyle_reporter.dart | 7 ++-- .../console/lint_console_reporter_helper.dart | 3 +- .../html/lint_html_reporter.dart | 28 +++++++-------- .../html/utility_functions.dart | 34 +++++++++++-------- .../reporters/utility_selector.dart | 9 +++-- .../always_remove_listener/visitor.dart | 8 +++-- .../visitor.dart | 10 +++--- .../avoid_unnecessary_setstate/visitor.dart | 5 +-- .../visitor.dart | 13 ++++--- .../avoid_unnecessary_type_casts/visitor.dart | 7 ++-- .../visitor.dart | 11 +++--- .../format_comment/format_comment_rule.dart | 15 ++++---- .../rules_list/format_comment/visitor.dart | 5 +-- .../member_ordering/member_ordering_rule.dart | 24 +++++++------ .../rules_list/member_ordering/visitor.dart | 5 +-- .../member_ordering_extended_rule.dart | 24 +++++++------ .../newline_before_return_rule.dart | 2 ++ .../no_boolean_literal_compare_rule.dart | 8 ++--- .../prefer_const_border_radius/visitor.dart | 6 ++-- .../prefer_immediate_return/visitor.dart | 6 ++-- .../prefer_match_file_name_rule.dart | 19 ++++++----- .../provide_correct_intl_args/visitor.dart | 6 ++-- lib/src/cli/commands/base_command.dart | 5 +-- lib/src/utils/analyzer_utils.dart | 4 +-- 30 files changed, 176 insertions(+), 150 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 17e2bcb11a..a31e0cb9c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,11 +5,12 @@ * feat: add static code diagnostic [`prefer-commenting-analyzer-ignores`](https://dartcodemetrics.dev/docs/rules/common/prefer-commenting-analyzer-ignores). * feat: add static code diagnostic [`prefer-moving-to-variable`](https://dartcodemetrics.dev/docs/rules/common/prefer-moving-to-variable). * fix: add check for supertypes for [`avoid-non-null-assertions`](https://dartcodemetrics.dev/docs/rules/common/avoid-non-null-assertion) rule. +* fix: correctly handle nullable types of collections for [`avoid-collection-methods-with-unrelated-types`](https://dartcodemetrics.dev/docs/rules/common/avoid-collection-methods-with-unrelated-types). * fix: cover more cases in [`prefer-immediate-return`](https://dartcodemetrics.dev/docs/rules/common/prefer-immediate-return) rule * fix: support index expressions for [`no-magic-number`](https://dartcodemetrics.dev/docs/rules/common/no-magic-number) rule. -* chore: restrict `analyzer` version to `>=2.4.0 <3.4.0`. -* fix: correctly handle nullable types of collections for [`avoid-collection-methods-with-unrelated-types`](https://dartcodemetrics.dev/docs/rules/common/avoid-collection-methods-with-unrelated-types) * docs: update `prefer-async-await` rule. +* chore: `fix prefer-moving-to-variable` issues. +* chore: restrict `analyzer` version to `>=2.4.0 <3.4.0`. ## 4.13.0 diff --git a/lib/src/analyzer_plugin/analyzer_plugin.dart b/lib/src/analyzer_plugin/analyzer_plugin.dart index 62f54c6b8f..1d728c39e9 100644 --- a/lib/src/analyzer_plugin/analyzer_plugin.dart +++ b/lib/src/analyzer_plugin/analyzer_plugin.dart @@ -154,14 +154,14 @@ class AnalyzerPlugin extends ServerPlugin { return plugin.EditGetFixesResult([]); } - final fixes = _check(driver, analysisResult) - .where((fix) => - fix.error.location.file == parameters.file && - fix.error.location.offset <= parameters.offset && - parameters.offset <= - fix.error.location.offset + fix.error.location.length && - fix.fixes.isNotEmpty) - .toList(); + final fixes = _check(driver, analysisResult).where((fix) { + final location = fix.error.location; + + return location.file == parameters.file && + location.offset <= parameters.offset && + parameters.offset <= location.offset + location.length && + fix.fixes.isNotEmpty; + }).toList(); return plugin.EditGetFixesResult(fixes); } on Exception catch (e, stackTrace) { diff --git a/lib/src/analyzer_plugin/analyzer_plugin_utils.dart b/lib/src/analyzer_plugin/analyzer_plugin_utils.dart index 5123a80225..e2e0678df7 100644 --- a/lib/src/analyzer_plugin/analyzer_plugin_utils.dart +++ b/lib/src/analyzer_plugin/analyzer_plugin_utils.dart @@ -14,6 +14,9 @@ plugin.AnalysisErrorFixes codeIssueToAnalysisErrorFixes( ResolvedUnitResult? unitResult, ) { final fileWithIssue = uriToPath(issue.location.sourceUrl) ?? ''; + final location = issue.location; + final locationStart = location.start; + final locationEnd = location.end; return plugin.AnalysisErrorFixes( plugin.AnalysisError( @@ -21,12 +24,12 @@ plugin.AnalysisErrorFixes codeIssueToAnalysisErrorFixes( plugin.AnalysisErrorType.LINT, plugin.Location( fileWithIssue, - issue.location.start.offset, - issue.location.length, - issue.location.start.line, - issue.location.start.column, - endLine: issue.location.end.line, - endColumn: issue.location.end.column, + locationStart.offset, + location.length, + locationStart.line, + locationStart.column, + endLine: locationEnd.line, + endColumn: locationEnd.column, ), issue.message, issue.ruleId, @@ -47,8 +50,8 @@ plugin.AnalysisErrorFixes codeIssueToAnalysisErrorFixes( unitResult.exists ? 0 : -1, edits: [ plugin.SourceEdit( - issue.location.start.offset, - issue.location.length, + locationStart.offset, + location.length, issue.suggestion!.replacement, ), ], diff --git a/lib/src/analyzers/lint_analyzer/metrics/metrics_list/halstead_volume/halstead_volume_ast_visitor.dart b/lib/src/analyzers/lint_analyzer/metrics/metrics_list/halstead_volume/halstead_volume_ast_visitor.dart index 167bc62329..6b99ce2832 100644 --- a/lib/src/analyzers/lint_analyzer/metrics/metrics_list/halstead_volume/halstead_volume_ast_visitor.dart +++ b/lib/src/analyzers/lint_analyzer/metrics/metrics_list/halstead_volume/halstead_volume_ast_visitor.dart @@ -45,7 +45,8 @@ class HalsteadVolumeAstVisitor extends RecursiveAstVisitor { var token = firstToken; while (token != lastToken && token != null) { if (token.isOperator) { - _operators[token.type.name] = (_operators[token.type.name] ?? 0) + 1; + final name = token.type.name; + _operators[name] = (_operators[name] ?? 0) + 1; } if (token.isIdentifier) { diff --git a/lib/src/analyzers/lint_analyzer/metrics/metrics_list/maximum_nesting_level/nesting_level_visitor.dart b/lib/src/analyzers/lint_analyzer/metrics/metrics_list/maximum_nesting_level/nesting_level_visitor.dart index 32015d98e9..9b9b06df91 100644 --- a/lib/src/analyzers/lint_analyzer/metrics/metrics_list/maximum_nesting_level/nesting_level_visitor.dart +++ b/lib/src/analyzers/lint_analyzer/metrics/metrics_list/maximum_nesting_level/nesting_level_visitor.dart @@ -20,15 +20,17 @@ class NestingLevelVisitor extends RecursiveAstVisitor { AstNode? astNode = node; do { + final parent = astNode?.parent; + final grandParent = parent?.parent; if (astNode is Block && - (astNode.parent is! BlockFunctionBody || - astNode.parent?.parent is ConstructorDeclaration || - astNode.parent?.parent is FunctionExpression || - astNode.parent?.parent is MethodDeclaration)) { + (parent is! BlockFunctionBody || + grandParent is ConstructorDeclaration || + grandParent is FunctionExpression || + grandParent is MethodDeclaration)) { nestedNodesChain.add(astNode); } - astNode = astNode?.parent; + astNode = parent; } while (astNode?.parent != _functionNode); if (nestedNodesChain.length > _deepestNestedNodesChain.length) { diff --git a/lib/src/analyzers/lint_analyzer/models/suppression.dart b/lib/src/analyzers/lint_analyzer/models/suppression.dart index 714a493dce..896b7d9b59 100644 --- a/lib/src/analyzers/lint_analyzer/models/suppression.dart +++ b/lib/src/analyzers/lint_analyzer/models/suppression.dart @@ -24,10 +24,9 @@ class Suppression { final ids = match.group(1)!.split(',').map(_canonicalize); final location = info.getLocation(match.start); final lineNumber = location.lineNumber; - final beforeMatch = content.substring( - info.getOffsetOfLine(lineNumber - 1), - info.getOffsetOfLine(lineNumber - 1) + location.columnNumber - 1, - ); + final offset = info.getOffsetOfLine(lineNumber - 1); + final beforeMatch = + content.substring(offset, offset + location.columnNumber - 1); // If comment sits next to code, so it refers to its own line, otherwise it refers to the next line. final ignoredNextLine = beforeMatch.trim().isEmpty; diff --git a/lib/src/analyzers/lint_analyzer/reporters/reporters_list/checkstyle/lint_checkstyle_reporter.dart b/lib/src/analyzers/lint_analyzer/reporters/reporters_list/checkstyle/lint_checkstyle_reporter.dart index 2ea4d923fb..41c86d5a38 100644 --- a/lib/src/analyzers/lint_analyzer/reporters/reporters_list/checkstyle/lint_checkstyle_reporter.dart +++ b/lib/src/analyzers/lint_analyzer/reporters/reporters_list/checkstyle/lint_checkstyle_reporter.dart @@ -42,12 +42,13 @@ class LintCheckstyleReporter extends CheckstyleReporter 0) - 'column': '${issue.location.start.column}', + 'line': '${locationStart.line}', + if (locationStart.column > 0) + 'column': '${locationStart.column}', 'severity': _severityMapping[issue.severity] ?? 'ignore', 'message': issue.message, 'source': issue.ruleId, diff --git a/lib/src/analyzers/lint_analyzer/reporters/reporters_list/console/lint_console_reporter_helper.dart b/lib/src/analyzers/lint_analyzer/reporters/reporters_list/console/lint_console_reporter_helper.dart index e639acaf5c..2f5971f2b1 100644 --- a/lib/src/analyzers/lint_analyzer/reporters/reporters_list/console/lint_console_reporter_helper.dart +++ b/lib/src/analyzers/lint_analyzer/reporters/reporters_list/console/lint_console_reporter_helper.dart @@ -32,8 +32,9 @@ class LintConsoleReporterHelper { /// Converts an [issue] to the issue message string. Iterable getIssueMessage(Issue issue, String relativePath) { final severity = _getSeverity(issue.severity); + final locationStart = issue.location.start; final location = _linkPen( - '$relativePath:${issue.location.start.line}:${issue.location.start.column}', + '$relativePath:${locationStart.line}:${locationStart.column}', ); final tabulation = _normalize(''); diff --git a/lib/src/analyzers/lint_analyzer/reporters/reporters_list/html/lint_html_reporter.dart b/lib/src/analyzers/lint_analyzer/reporters/reporters_list/html/lint_html_reporter.dart index 10dadc4ea5..074b336874 100644 --- a/lib/src/analyzers/lint_analyzer/reporters/reporters_list/html/lint_html_reporter.dart +++ b/lib/src/analyzers/lint_analyzer/reporters/reporters_list/html/lint_html_reporter.dart @@ -349,9 +349,12 @@ class LintHtmlReporter extends HtmlReporter - report.value.location.start.line <= lineIndex && - report.value.location.end.line >= lineIndex); + final classReport = record.classes.entries.firstWhereOrNull((report) { + final location = report.value.location; + + return location.start.line <= lineIndex && + location.end.line >= lineIndex; + }); if (classReport != null && classReport.value.location.start.line == lineIndex) { complexityValueElement @@ -435,6 +438,8 @@ class LintHtmlReporter extends HtmlReporter 0; + report.cyclomaticComplexityViolations > 0; final recordHaveSourceLinesOfCodeViolations = - record.report.sourceLinesOfCodeViolations > 0; + report.sourceLinesOfCodeViolations > 0; final recordHaveMaintainabilityIndexViolations = - record.report.maintainabilityIndexViolations > 0; + report.maintainabilityIndexViolations > 0; final recordHaveArgumentsCountViolations = - record.report.argumentsCountViolations > 0; + report.argumentsCountViolations > 0; final recordHaveMaximumNestingLevelViolations = - record.report.maximumNestingLevelViolations > 0; + report.maximumNestingLevelViolations > 0; final recordHaveTechDebtViolations = record.report.technicalDebtViolations > 0; + final averageMaintainabilityIndex = + report.averageMaintainabilityIndex.toInt(); + return Element.tag('tr') ..append(Element.tag('td') ..append(Element.tag('a') @@ -63,35 +67,35 @@ Element renderTableRecord(ReportTableRecord record) { ..text = record.title)) ..append(Element.tag('td') ..text = recordHaveCyclomaticComplexityViolations - ? '${record.report.totalCyclomaticComplexity} / ${record.report.cyclomaticComplexityViolations}' - : '${record.report.totalCyclomaticComplexity}' + ? '${report.totalCyclomaticComplexity} / ${report.cyclomaticComplexityViolations}' + : '${report.totalCyclomaticComplexity}' ..classes.add( recordHaveCyclomaticComplexityViolations ? 'with-violations' : '', )) ..append(Element.tag('td') ..text = recordHaveSourceLinesOfCodeViolations - ? '${record.report.totalSourceLinesOfCode} / ${record.report.sourceLinesOfCodeViolations}' - : '${record.report.totalSourceLinesOfCode}' + ? '${report.totalSourceLinesOfCode} / ${report.sourceLinesOfCodeViolations}' + : '${report.totalSourceLinesOfCode}' ..classes.add( recordHaveSourceLinesOfCodeViolations ? 'with-violations' : '', )) ..append(Element.tag('td') ..text = recordHaveMaintainabilityIndexViolations - ? '${record.report.averageMaintainabilityIndex.toInt()} / ${record.report.maintainabilityIndexViolations}' - : '${record.report.averageMaintainabilityIndex.toInt()}' + ? '$averageMaintainabilityIndex / ${record.report.maintainabilityIndexViolations}' + : '$averageMaintainabilityIndex' ..classes.add( recordHaveMaintainabilityIndexViolations ? 'with-violations' : '', )) ..append(Element.tag('td') ..text = recordHaveArgumentsCountViolations - ? '${record.report.averageArgumentsCount} / ${record.report.argumentsCountViolations}' - : '${record.report.averageArgumentsCount}' + ? '${report.averageArgumentsCount} / ${report.argumentsCountViolations}' + : '${report.averageArgumentsCount}' ..classes .add(recordHaveArgumentsCountViolations ? 'with-violations' : '')) ..append(Element.tag('td') ..text = recordHaveMaximumNestingLevelViolations - ? '${record.report.averageMaximumNestingLevel} / ${record.report.maximumNestingLevelViolations}' - : '${record.report.averageMaximumNestingLevel}' + ? '${report.averageMaximumNestingLevel} / ${report.maximumNestingLevelViolations}' + : '${report.averageMaximumNestingLevel}' ..classes.add( recordHaveMaximumNestingLevelViolations ? 'with-violations' : '', )) diff --git a/lib/src/analyzers/lint_analyzer/reporters/utility_selector.dart b/lib/src/analyzers/lint_analyzer/reporters/utility_selector.dart index fbc3f65ecd..f52387881d 100644 --- a/lib/src/analyzers/lint_analyzer/reporters/utility_selector.dart +++ b/lib/src/analyzers/lint_analyzer/reporters/utility_selector.dart @@ -59,16 +59,15 @@ class UtilitySelector { .where((r) => isReportLevel(r.maximumNestingLevel.level)) .length; - final technicalDebt = - record.file.metric(TechnicalDebtMetric.metricId)?.value.toDouble() ?? - 0.0; + final technicalDeptMetric = + record.file.metric(TechnicalDebtMetric.metricId); + final technicalDebt = technicalDeptMetric?.value.toDouble() ?? 0.0; final technicalDebtViolations = record.file.metrics .where((value) => value.metricsId == TechnicalDebtMetric.metricId && isReportLevel(value.level)) .length; - final technicalDebtUnitType = - record.file.metric(TechnicalDebtMetric.metricId)?.unitType; + final technicalDebtUnitType = technicalDeptMetric?.unitType; return FileMetricsReport( averageArgumentsCount: averageArgumentCount.round(), diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/always_remove_listener/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/always_remove_listener/visitor.dart index ed11777c94..bd53166368 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/always_remove_listener/visitor.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/always_remove_listener/visitor.dart @@ -193,17 +193,19 @@ class _ListenableVisitor extends RecursiveAstVisitor { void visitMethodInvocation(MethodInvocation node) { super.visitMethodInvocation(node); - if (node.methodName.name == 'addListener') { + final name = node.methodName.name; + + if (name == 'addListener') { final type = node.realTarget?.staticType; if (isSubclassOfListenable(type)) { _addedListeners.add(node); } - } else if (node.methodName.name == 'removeListener') { + } else if (name == 'removeListener') { final type = node.realTarget?.staticType; if (isSubclassOfListenable(type)) { _removedListeners.add(node); } - } else if (node.methodName.name == 'dispose') { + } else if (name == 'dispose') { final type = node.realTarget?.staticType; if (isSubclassOfListenable(type)) { _disposedListeners.add(node); diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/visitor.dart index 9b8f2d3a47..f6b146974e 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/visitor.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_collection_methods_with_unrelated_types/visitor.dart @@ -19,10 +19,12 @@ class _Visitor extends RecursiveAstVisitor { void visitMethodInvocation(MethodInvocation node) { super.visitMethodInvocation(node); - final mapType = _getMapTypeElement(node.target?.staticType); - final listType = _getListTypeElement(node.target?.staticType); - final setType = _getSetTypeElement(node.target?.staticType); - final iterableType = _getIterableTypeElement(node.target?.staticType); + final staticType = node.target?.staticType; + + final mapType = _getMapTypeElement(staticType); + final listType = _getListTypeElement(staticType); + final setType = _getSetTypeElement(staticType); + final iterableType = _getIterableTypeElement(staticType); final argType = node.argumentList.arguments.singleOrNull?.staticType; switch (node.methodName.name) { diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unnecessary_setstate/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unnecessary_setstate/visitor.dart index 710d99ea18..9a5ca78f96 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unnecessary_setstate/visitor.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unnecessary_setstate/visitor.dart @@ -97,11 +97,12 @@ class _MethodVisitor extends RecursiveAstVisitor { super.visitMethodInvocation(node); final name = node.methodName.name; + final notInBody = _isNotInFunctionBody(node); - if (name == 'setState' && _isNotInFunctionBody(node)) { + if (name == 'setState' && notInBody) { _setStateInvocations.add(node); } else if (classMethodsNames.contains(name) && - _isNotInFunctionBody(node) && + notInBody && node.realTarget == null) { _classMethodsInvocations.add(node); } diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unnecessary_type_assertions/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unnecessary_type_assertions/visitor.dart index 082ccf987b..7e2c22b3cd 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unnecessary_type_assertions/visitor.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unnecessary_type_assertions/visitor.dart @@ -19,14 +19,14 @@ class _Visitor extends RecursiveAstVisitor { isWhereTypeInvocation && targetType is ParameterizedType) { final isTargetTypeHasGeneric = targetType.typeArguments.isNotEmpty; - final isWhereTypeHasGeneric = - node.typeArguments?.arguments.isNotEmpty ?? false; + final arguments = node.typeArguments?.arguments; + final isWhereTypeHasGeneric = arguments?.isNotEmpty ?? false; if (isTargetTypeHasGeneric && isWhereTypeHasGeneric && _isUselessTypeCheck( targetType.typeArguments.first, - node.typeArguments?.arguments.first.type, + arguments?.first.type, )) { _expressions[node] = '${node.methodName}${node.typeArguments ?? ''}${node.argumentList}'; @@ -99,13 +99,12 @@ class _Visitor extends RecursiveAstVisitor { return false; } - if (objectType.typeArguments.length != castedType.typeArguments.length) { + final length = objectType.typeArguments.length; + if (length != castedType.typeArguments.length) { return false; } - for (var argumentIndex = 0; - argumentIndex < objectType.typeArguments.length; - argumentIndex++) { + for (var argumentIndex = 0; argumentIndex < length; argumentIndex++) { if (!_isUselessTypeCheck( objectType.typeArguments[argumentIndex], castedType.typeArguments[argumentIndex], diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unnecessary_type_casts/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unnecessary_type_casts/visitor.dart index 0e8a7e9463..6fa0e5c54f 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unnecessary_type_casts/visitor.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unnecessary_type_casts/visitor.dart @@ -69,13 +69,12 @@ class _Visitor extends RecursiveAstVisitor { return false; } - if (objectType.typeArguments.length != castedType.typeArguments.length) { + final length = objectType.typeArguments.length; + if (length != castedType.typeArguments.length) { return false; } - for (var argumentIndex = 0; - argumentIndex < objectType.typeArguments.length; - argumentIndex++) { + for (var argumentIndex = 0; argumentIndex < length; argumentIndex++) { if (!_isUselessTypeCheck( objectType.typeArguments[argumentIndex], castedType.typeArguments[argumentIndex], diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unrelated_type_assertions/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unrelated_type_assertions/visitor.dart index ea8b35de4b..5e66468f92 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unrelated_type_assertions/visitor.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/avoid_unrelated_type_assertions/visitor.dart @@ -9,12 +9,12 @@ class _Visitor extends RecursiveAstVisitor { void visitIsExpression(IsExpression node) { super.visitIsExpression(node); - if (node.notOperator != null || node.type.type is TypeParameterType) { + final castedType = node.type.type; + if (node.notOperator != null || castedType is TypeParameterType) { return; } final objectType = node.expression.staticType; - final castedType = node.type.type; if (_isUnrelatedTypeCheck(objectType, castedType)) { _expressions[node] = @@ -90,13 +90,12 @@ class _Visitor extends RecursiveAstVisitor { return false; } - if (objectType.typeArguments.length != castedType.typeArguments.length) { + final length = objectType.typeArguments.length; + if (length != castedType.typeArguments.length) { return false; } - for (var argumentIndex = 0; - argumentIndex < objectType.typeArguments.length; - argumentIndex++) { + for (var argumentIndex = 0; argumentIndex < length; argumentIndex++) { final objectGenericType = objectType.typeArguments[argumentIndex]; final castedGenericType = castedType.typeArguments[argumentIndex]; diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/format_comment/format_comment_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/format_comment/format_comment_rule.dart index 7813d4b7bc..b3c2cf6ec4 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/format_comment/format_comment_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/format_comment/format_comment_rule.dart @@ -54,23 +54,24 @@ class FormatCommentRule extends CommonRule { switch (commentInfo.type) { case _CommentType.base: - String subString; + String commentText; final isHasNextComment = commentToken.next != null && commentToken.next!.type == TokenType.SINGLE_LINE_COMMENT && commentToken.next!.offset == commentToken.offset + resultString.length + 1; + final subString = resultString.substring(2, resultString.length); - subString = isHasNextComment - ? resultString.substring(2, resultString.length).trim().capitalize() - : formatComment(resultString.substring(2, resultString.length)); + commentText = isHasNextComment + ? subString.trim().capitalize() + : formatComment(subString); - resultString = '// $subString'; + resultString = '// $commentText'; break; case _CommentType.documentation: - final subString = + final commentText = formatComment(resultString.substring(3, resultString.length)); - resultString = '/// $subString'; + resultString = '/// $commentText'; break; } diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/format_comment/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/format_comment/visitor.dart index 6446bf2b25..69485f21ce 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/format_comment/visitor.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/format_comment/visitor.dart @@ -29,9 +29,10 @@ class _Visitor extends RecursiveAstVisitor { void _commentValidation(Token commentToken) { if (commentToken.type == TokenType.SINGLE_LINE_COMMENT) { - if (commentToken.toString().startsWith('///')) { + final token = commentToken.toString(); + if (token.startsWith('///')) { _checkCommentByType(commentToken, _CommentType.documentation); - } else if (commentToken.toString().startsWith('//')) { + } else if (token.startsWith('//')) { _checkCommentByType(commentToken, _CommentType.base); } } diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/member_ordering/member_ordering_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/member_ordering/member_ordering_rule.dart index baaec78d86..38f5b8cbb3 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/member_ordering/member_ordering_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/member_ordering/member_ordering_rule.dart @@ -61,18 +61,20 @@ class MemberOrderingRule extends CommonRule { if (_alphabetize) ...membersInfo .where((info) => info.memberOrder.isAlphabeticallyWrong) - .map( - (info) => createIssue( - rule: this, - location: nodeLocation( - node: info.classMember, - source: source, - withCommentOrMetadata: true, - ), - message: - '${info.memberOrder.memberNames.currentName} $_warningAlphabeticalMessage ${info.memberOrder.memberNames.previousName}.', - ), + .map((info) { + final names = info.memberOrder.memberNames; + + return createIssue( + rule: this, + location: nodeLocation( + node: info.classMember, + source: source, + withCommentOrMetadata: true, ), + message: + '${names.currentName} $_warningAlphabeticalMessage ${names.previousName}.', + ); + }), ]; } } diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/member_ordering/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/member_ordering/visitor.dart index 7f0eb9c77e..73ff47906f 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/member_ordering/visitor.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/member_ordering/visitor.dart @@ -31,14 +31,15 @@ class _Visitor extends RecursiveAstVisitor> { } for (final variable in fieldDeclaration.fields.variables) { - final membersGroup = Identifier.isPrivateName(variable.name.name) + final name = variable.name.name; + final membersGroup = Identifier.isPrivateName(name) ? _MembersGroup.privateFields : _MembersGroup.publicFields; if (_groupsOrder.contains(membersGroup)) { _membersInfo.add(_MemberInfo( classMember: fieldDeclaration, - memberOrder: _getOrder(membersGroup, variable.name.name), + memberOrder: _getOrder(membersGroup, name), )); } } diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/member_ordering_extended/member_ordering_extended_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/member_ordering_extended/member_ordering_extended_rule.dart index 3ceca85038..cb64255ef6 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/member_ordering_extended/member_ordering_extended_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/member_ordering_extended/member_ordering_extended_rule.dart @@ -68,18 +68,20 @@ class MemberOrderingExtendedRule extends CommonRule { if (_alphabetize) ...membersInfo .where((info) => info.memberOrder.isAlphabeticallyWrong) - .map( - (info) => createIssue( - rule: this, - location: nodeLocation( - node: info.classMember, - source: source, - withCommentOrMetadata: true, - ), - message: - '${info.memberOrder.memberNames.currentName} $_warningAlphabeticalMessage ${info.memberOrder.memberNames.previousName}.', - ), + .map((info) { + final names = info.memberOrder.memberNames; + + return createIssue( + rule: this, + location: nodeLocation( + node: info.classMember, + source: source, + withCommentOrMetadata: true, ), + message: + '${names.currentName} $_warningAlphabeticalMessage ${names.previousName}.', + ); + }), if (!_alphabetize && _alphabetizeByType) ...membersInfo.where((info) => info.memberOrder.isByTypeWrong).map( (info) => createIssue( diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/newline_before_return/newline_before_return_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/newline_before_return/newline_before_return_rule.dart index 7f7f6db1f5..5b27f1e6f3 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/newline_before_return/newline_before_return_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/newline_before_return/newline_before_return_rule.dart @@ -80,7 +80,9 @@ Token _optimalToken(Token token, LineInfo lineInfo) { Token? _latestCommentToken(Token token) { Token? latestCommentToken = token.precedingComments; + // ignore: prefer-moving-to-variable while (latestCommentToken?.next != null) { + // ignore: prefer-moving-to-variable latestCommentToken = latestCommentToken?.next; } diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/no_boolean_literal_compare/no_boolean_literal_compare_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/no_boolean_literal_compare/no_boolean_literal_compare_rule.dart index bfe14545ed..d5e24b414a 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/no_boolean_literal_compare/no_boolean_literal_compare_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/no_boolean_literal_compare/no_boolean_literal_compare_rule.dart @@ -59,10 +59,10 @@ class NoBooleanLiteralCompareRule extends CommonRule { : expression.leftOperand) .toString(); - final useDirect = (expression.operator.type == TokenType.EQ_EQ && - booleanLiteralOperand == 'true') || - (expression.operator.type == TokenType.BANG_EQ && - booleanLiteralOperand == 'false'); + final type = expression.operator.type; + final useDirect = + (type == TokenType.EQ_EQ && booleanLiteralOperand == 'true') || + (type == TokenType.BANG_EQ && booleanLiteralOperand == 'false'); issues.add(createIssue( rule: this, diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_const_border_radius/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_const_border_radius/visitor.dart index 58680db772..e269d7bd61 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_const_border_radius/visitor.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_const_border_radius/visitor.dart @@ -12,11 +12,13 @@ class _Visitor extends RecursiveAstVisitor { void visitInstanceCreationExpression(InstanceCreationExpression expression) { super.visitInstanceCreationExpression(expression); + final arguments = expression.argumentList.arguments; + if (expression.staticType?.getDisplayString(withNullability: true) == _borderRadiusClassName && expression.constructorName.name?.name == _borderRadiusConstructorName && - expression.argumentList.arguments.length == 1) { - final arg = expression.argumentList.arguments.first; + arguments.length == 1) { + final arg = arguments.first; if (arg is Literal) { _expressions.add(expression); diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/visitor.dart index e9133c198f..006fba2472 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/visitor.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_immediate_return/visitor.dart @@ -9,12 +9,12 @@ class _Visitor extends RecursiveAstVisitor { void visitBlock(Block node) { super.visitBlock(node); - if (node.statements.length < 2) { + final length = node.statements.length; + if (length < 2) { return; } - final variableDeclarationStatement = - node.statements[node.statements.length - 2]; + final variableDeclarationStatement = node.statements[length - 2]; final returnStatement = node.statements.last; if (variableDeclarationStatement is! VariableDeclarationStatement || returnStatement is! ReturnStatement) { diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_match_file_name/prefer_match_file_name_rule.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_match_file_name/prefer_match_file_name_rule.dart index 5fef7084b7..dc17fb0448 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_match_file_name/prefer_match_file_name_rule.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/prefer_match_file_name/prefer_match_file_name_rule.dart @@ -33,18 +33,19 @@ class PreferMatchFileNameRule extends CommonRule { final issues = []; - if (visitor.declaration.isNotEmpty && - !_hasMatchName(source.path, visitor.declaration.first.name)) { + if (visitor.declaration.isNotEmpty) { final node = visitor.declaration.first; - final nodeType = humanReadableNodeType(node.parent).toLowerCase(); + if (!_hasMatchName(source.path, node.name)) { + final nodeType = humanReadableNodeType(node.parent).toLowerCase(); - final issue = createIssue( - rule: this, - location: nodeLocation(node: node, source: source), - message: 'File name does not match with first $nodeType name.', - ); + final issue = createIssue( + rule: this, + location: nodeLocation(node: node, source: source), + message: 'File name does not match with first $nodeType name.', + ); - issues.add(issue); + issues.add(issue); + } } return issues; diff --git a/lib/src/analyzers/lint_analyzer/rules/rules_list/provide_correct_intl_args/visitor.dart b/lib/src/analyzers/lint_analyzer/rules/rules_list/provide_correct_intl_args/visitor.dart index 3deb5050bd..004a2546f0 100644 --- a/lib/src/analyzers/lint_analyzer/rules/rules_list/provide_correct_intl_args/visitor.dart +++ b/lib/src/analyzers/lint_analyzer/rules/rules_list/provide_correct_intl_args/visitor.dart @@ -23,7 +23,8 @@ class _Visitor extends IntlBaseVisitor { MethodInvocation methodInvocation, FormalParameterList? parameterList, ) { - final argsArgument = methodInvocation.argumentList.arguments + final arguments = methodInvocation.argumentList.arguments; + final argsArgument = arguments .whereType() .where((argument) => argument.name.label.name == 'args') .firstOrNull @@ -60,8 +61,7 @@ class _Visitor extends IntlBaseVisitor { parameterSimpleIdentifiers, ); - final messageArgument = - methodInvocation.argumentList.arguments.first.as(); + final messageArgument = arguments.first.as(); if (messageArgument != null) { final interpolationExpressions = messageArgument.elements diff --git a/lib/src/cli/commands/base_command.dart b/lib/src/cli/commands/base_command.dart index defab6dc8e..c2a1d1b129 100644 --- a/lib/src/cli/commands/base_command.dart +++ b/lib/src/cli/commands/base_command.dart @@ -14,11 +14,12 @@ import '../utils/detect_sdk_path.dart'; abstract class BaseCommand extends Command { @override ArgResults get argResults { - if (super.argResults == null) { + final results = super.argResults; + if (results == null) { throw StateError('Unexpected empty args parse result'); } - return super.argResults!; + return results; } @override diff --git a/lib/src/utils/analyzer_utils.dart b/lib/src/utils/analyzer_utils.dart index 5fa9c967c1..fb3f246c64 100644 --- a/lib/src/utils/analyzer_utils.dart +++ b/lib/src/utils/analyzer_utils.dart @@ -34,9 +34,9 @@ Set getFilePaths( ) { final contextFolders = folders.where((path) { final newPath = normalize(join(rootFolder, path)); + final rootPath = context.contextRoot.root.path; - return newPath == context.contextRoot.root.path || - context.contextRoot.root.path.startsWith('$newPath/'); + return newPath == rootPath || rootPath.startsWith('$newPath/'); }).toList(); return extractDartFilesFromFolders(contextFolders, rootFolder, excludes); From 958d36112605d7fe3f98d5c94afae38ea4122b8d Mon Sep 17 00:00:00 2001 From: Dmitry Krutskikh Date: Sun, 10 Apr 2022 19:19:10 +0300 Subject: [PATCH 32/34] chore: activate `prefer-moving-to-variable` rule --- CHANGELOG.md | 9 ++++----- analysis_options.yaml | 3 +++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a31e0cb9c5..44ca7b9cd1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,12 +5,11 @@ * feat: add static code diagnostic [`prefer-commenting-analyzer-ignores`](https://dartcodemetrics.dev/docs/rules/common/prefer-commenting-analyzer-ignores). * feat: add static code diagnostic [`prefer-moving-to-variable`](https://dartcodemetrics.dev/docs/rules/common/prefer-moving-to-variable). * fix: add check for supertypes for [`avoid-non-null-assertions`](https://dartcodemetrics.dev/docs/rules/common/avoid-non-null-assertion) rule. -* fix: correctly handle nullable types of collections for [`avoid-collection-methods-with-unrelated-types`](https://dartcodemetrics.dev/docs/rules/common/avoid-collection-methods-with-unrelated-types). -* fix: cover more cases in [`prefer-immediate-return`](https://dartcodemetrics.dev/docs/rules/common/prefer-immediate-return) rule +* fix: correctly handle nullable types of collections for [`avoid-collection-methods-with-unrelated-types`](https://dartcodemetrics.dev/docs/rules/common/avoid-collection-methods-with-unrelated-types) rule. +* fix: cover more cases in [`prefer-immediate-return`](https://dartcodemetrics.dev/docs/rules/common/prefer-immediate-return) rule. * fix: support index expressions for [`no-magic-number`](https://dartcodemetrics.dev/docs/rules/common/no-magic-number) rule. -* docs: update `prefer-async-await` rule. -* chore: `fix prefer-moving-to-variable` issues. -* chore: restrict `analyzer` version to `>=2.4.0 <3.4.0`. +* docs: update [`prefer-async-await`](https://dartcodemetrics.dev/docs/rules/common/prefer-async-await) rule. +* chore: restrict [`analyzer`](https://pub.dev/packages/analyzer) version to `>=2.4.0 <3.4.0`. ## 4.13.0 diff --git a/analysis_options.yaml b/analysis_options.yaml index 25094d3874..c31719840f 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -78,6 +78,9 @@ dart_code_metrics: - prefer-match-file-name: exclude: - test/** + - prefer-moving-to-variable: + exclude: + - test/** - prefer-trailing-comma linter: From 5265c1b7ab36ec1c25ce50bf90cce808c3c8ba01 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Apr 2022 06:27:07 +0300 Subject: [PATCH 33/34] chore: bump actions/setup-node from 3.1.0 to 3.1.1 (#796) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v3.1.0...v3.1.1) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/website_check.yaml | 2 +- .github/workflows/website_deploy.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/website_check.yaml b/.github/workflows/website_check.yaml index 29c9c8dff5..04e067d790 100644 --- a/.github/workflows/website_check.yaml +++ b/.github/workflows/website_check.yaml @@ -14,7 +14,7 @@ jobs: steps: - uses: actions/checkout@v3 - - uses: actions/setup-node@v3.1.0 + - uses: actions/setup-node@v3.1.1 with: node-version: "16" - name: Test Build diff --git a/.github/workflows/website_deploy.yaml b/.github/workflows/website_deploy.yaml index 9826551378..9c02aac1fc 100644 --- a/.github/workflows/website_deploy.yaml +++ b/.github/workflows/website_deploy.yaml @@ -14,7 +14,7 @@ jobs: steps: - uses: actions/checkout@v3 - - uses: actions/setup-node@v3.1.0 + - uses: actions/setup-node@v3.1.1 with: node-version: "16" - name: Deploy to GitHub Pages From 240d3179f7b3fd5ddc47eb2beb994272838a9d1d Mon Sep 17 00:00:00 2001 From: Dmitry Krutskikh Date: Wed, 13 Apr 2022 07:49:20 +0300 Subject: [PATCH 34/34] build: update version --- CHANGELOG.md | 2 +- CONTRIBUTING.md | 2 +- README.md | 2 +- lib/src/version.dart | 2 +- pubspec.yaml | 2 +- tools/analyzer_plugin/pubspec.yaml | 4 ++-- website/docs/getting-started/installation.md | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44ca7b9cd1..f4160df380 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## Unreleased +## 4.14.0 * feat: add static code diagnostic [`prefer-commenting-analyzer-ignores`](https://dartcodemetrics.dev/docs/rules/common/prefer-commenting-analyzer-ignores). * feat: add static code diagnostic [`prefer-moving-to-variable`](https://dartcodemetrics.dev/docs/rules/common/prefer-moving-to-variable). diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 548a125b20..7c9ae17fa2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -89,7 +89,7 @@ To set this up: ```yaml name: dart_code_metrics_plugin_loader description: This pubspec determines the version of the analyzer plugin to load. - version: 4.13.0 + version: 4.14.0 environment: sdk: ">=2.14.0 <3.0.0" diff --git a/README.md b/README.md index bff6b042a9..c549e145cb 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ add it manually to `pubspec.yaml` ```yaml dev_dependencies: - dart_code_metrics: ^4.13.0 + dart_code_metrics: ^4.14.0 ``` and then run diff --git a/lib/src/version.dart b/lib/src/version.dart index 04dbe96f5f..b6fe0173f5 100644 --- a/lib/src/version.dart +++ b/lib/src/version.dart @@ -1 +1 @@ -const packageVersion = '4.13.0'; +const packageVersion = '4.14.0'; diff --git a/pubspec.yaml b/pubspec.yaml index fcd65f19bf..7ee616593b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: dart_code_metrics -version: 4.13.0 +version: 4.14.0 description: Software analytics tool that helps developers analyse and improve software quality. homepage: https://dartcodemetrics.dev repository: https://github.com/dart-code-checker/dart-code-metrics diff --git a/tools/analyzer_plugin/pubspec.yaml b/tools/analyzer_plugin/pubspec.yaml index 2f874620e3..4afd6f5182 100644 --- a/tools/analyzer_plugin/pubspec.yaml +++ b/tools/analyzer_plugin/pubspec.yaml @@ -1,12 +1,12 @@ name: dart_code_metrics_plugin_loader description: This pubspec determines the version of the analyzer plugin to load. -version: 4.13.0 +version: 4.14.0 environment: sdk: ">=2.14.0 <3.0.0" dependencies: - dart_code_metrics: ^4.13.0 + dart_code_metrics: ^4.14.0 dev_dependencies: lints: ^1.0.1 diff --git a/website/docs/getting-started/installation.md b/website/docs/getting-started/installation.md index ddfb800274..0f0b16ced8 100644 --- a/website/docs/getting-started/installation.md +++ b/website/docs/getting-started/installation.md @@ -23,7 +23,7 @@ environment: sdk: '>=2.12.0 <3.0.0' dev_dependencies: - dart_code_metrics: ^4.13.0 + dart_code_metrics: ^4.14.0 ``` and then run